diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index c61a64404a345..c52c92d824ad4 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -5293,6 +5293,8 @@ message PluginSpecV1 { PluginJamfSettings jamf = 5; // Settings for the PagerDuty plugin PluginPagerDutySettings pager_duty = 6; + // Settings for the Mattermost plugin + PluginMattermostSettings mattermost = 7; } } @@ -5336,6 +5338,22 @@ message PluginOpenAISettings { option (gogoproto.equal) = true; } +// Defines settings for the Mattermost plugin. +message PluginMattermostSettings { + option (gogoproto.equal) = true; + // serverURL is the URL to access Mattermost. + string server_url = 1; + // team is the Mattermost workspace. + string team = 2; + // channel is the Mattermost channel in the workspace + // (team) to send notifications to. + string channel = 3; + // report_to_email is an optional email address of a Mattermost user + // to notify via a direct message when the plugin receives an + // Access Request event. + string report_to_email = 4; +} + // Defines settings for Jamf plugin. message PluginJamfSettings { option (gogoproto.equal) = true; diff --git a/api/types/plugin.go b/api/types/plugin.go index 223d6778e6939..cb5eb5926d117 100644 --- a/api/types/plugin.go +++ b/api/types/plugin.go @@ -42,6 +42,8 @@ const ( PluginTypeOpsgenie = "opsgenie" // PluginTypePagerDuty is the PagerDuty access plugin PluginTypePagerDuty = "pagerduty" + // PluginTypeMattermost is the PagerDuty access plugin + PluginTypeMattermost = "mattermost" ) // PluginSubkind represents the type of the plugin, e.g., access request, MDM etc. @@ -148,6 +150,21 @@ func (p *PluginV1) CheckAndSetDefaults() error { if len(staticCreds.Labels) == 0 { return trace.BadParameter("labels must be specified") } + case *PluginSpecV1_Mattermost: + if settings.Mattermost == nil { + return trace.BadParameter("missing Mattermost settings") + } + if err := settings.Mattermost.CheckAndSetDefaults(); err != nil { + return trace.Wrap(err) + } + + staticCreds := p.Credentials.GetStaticCredentialsRef() + if staticCreds == nil { + return trace.BadParameter("Mattermost plugin must be used with the static credentials ref type") + } + if len(staticCreds.Labels) == 0 { + return trace.BadParameter("labels must be specified") + } case *PluginSpecV1_Jamf: // Check Jamf settings. if settings.Jamf == nil { @@ -332,6 +349,8 @@ func (p *PluginV1) GetType() PluginType { return PluginTypeOpsgenie case *PluginSpecV1_PagerDuty: return PluginTypePagerDuty + case *PluginSpecV1_Mattermost: + return PluginTypeMattermost default: return PluginTypeUnknown } @@ -372,6 +391,20 @@ func (s *PluginJamfSettings) CheckAndSetDefaults() error { return nil } +// CheckAndSetDefaults validates and set the default values +func (s *PluginMattermostSettings) CheckAndSetDefaults() error { + if s.ServerUrl == "" { + return trace.BadParameter("server url is required") + } + if s.Team == "" { + return trace.BadParameter("team is required") + } + if s.Channel == "" { + return trace.BadParameter("channel is required") + } + return nil +} + // CheckAndSetDefaults validates and set the default values func (c *PluginOAuth2AuthorizationCodeCredentials) CheckAndSetDefaults() error { if c.AuthorizationCode == "" { diff --git a/api/types/plugin_test.go b/api/types/plugin_test.go index d46f755bc32f6..e4a4a5198a0e7 100644 --- a/api/types/plugin_test.go +++ b/api/types/plugin_test.go @@ -426,3 +426,130 @@ func TestPluginJamfValidation(t *testing.T) { }) } } + +func TestPluginMattermostValidation(t *testing.T) { + defaultSettings := &PluginSpecV1_Mattermost{ + Mattermost: &PluginMattermostSettings{ + ServerUrl: "https://test.mattermost.com", + Team: "team-llama", + Channel: "teleport", + }, + } + + testCases := []struct { + name string + settings *PluginSpecV1_Mattermost + creds *PluginCredentialsV1 + assertErr require.ErrorAssertionFunc + }{ + { + name: "no settings", + settings: &PluginSpecV1_Mattermost{ + Mattermost: nil, + }, + creds: nil, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "missing Mattermost settings") + }, + }, + { + name: "no server url", + settings: &PluginSpecV1_Mattermost{ + Mattermost: &PluginMattermostSettings{}, + }, + creds: nil, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "server url is required") + }, + }, + { + name: "no team", + settings: &PluginSpecV1_Mattermost{ + Mattermost: &PluginMattermostSettings{ + ServerUrl: "https://test.mattermost.com", + }, + }, + creds: nil, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "team is required") + }, + }, + { + name: "no channel", + settings: &PluginSpecV1_Mattermost{ + Mattermost: &PluginMattermostSettings{ + ServerUrl: "https://test.mattermost.com", + Team: "team-llama", + }, + }, + creds: nil, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "channel is required") + }, + }, + { + name: "no credentials inner", + settings: defaultSettings, + creds: &PluginCredentialsV1{}, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "must be used with the static credentials ref type") + }, + }, + { + name: "invalid credential type (oauth2)", + settings: defaultSettings, + creds: &PluginCredentialsV1{ + Credentials: &PluginCredentialsV1_Oauth2AccessToken{}, + }, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "must be used with the static credentials ref type") + }, + }, + { + name: "no labels for credentials", + settings: defaultSettings, + creds: &PluginCredentialsV1{ + Credentials: &PluginCredentialsV1_StaticCredentialsRef{ + &PluginStaticCredentialsRef{ + Labels: map[string]string{}, + }, + }, + }, + assertErr: func(t require.TestingT, err error, args ...any) { + require.True(t, trace.IsBadParameter(err)) + require.Contains(t, err.Error(), "labels must be specified") + }, + }, + { + name: "valid settings", + settings: defaultSettings, + creds: &PluginCredentialsV1{ + Credentials: &PluginCredentialsV1_StaticCredentialsRef{ + &PluginStaticCredentialsRef{ + Labels: map[string]string{ + "label1": "value1", + }, + }, + }, + }, + assertErr: func(t require.TestingT, err error, args ...any) { + require.NoError(t, err) + }, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + plugin := NewPluginV1(Metadata{Name: "foobar"}, PluginSpecV1{ + Settings: tc.settings, + }, tc.creds) + tc.assertErr(t, plugin.CheckAndSetDefaults()) + }) + } +} diff --git a/api/types/types.pb.go b/api/types/types.pb.go index 4677276d3aa75..1047b901a39ad 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -752,7 +752,7 @@ func (x OktaAssignmentSpecV1_OktaAssignmentStatus) String() string { } func (OktaAssignmentSpecV1_OktaAssignmentStatus) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{277, 0} + return fileDescriptor_9198ee693835762e, []int{278, 0} } // OktaAssignmentTargetType is the type of Okta object that an assignment is targeting. @@ -784,7 +784,7 @@ func (x OktaAssignmentTargetV1_OktaAssignmentTargetType) String() string { } func (OktaAssignmentTargetV1_OktaAssignmentTargetType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{278, 0} + return fileDescriptor_9198ee693835762e, []int{279, 0} } type KeepAlive struct { @@ -13420,6 +13420,7 @@ type PluginSpecV1 struct { // *PluginSpecV1_Okta // *PluginSpecV1_Jamf // *PluginSpecV1_PagerDuty + // *PluginSpecV1_Mattermost Settings isPluginSpecV1_Settings `protobuf_oneof:"settings"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -13484,6 +13485,9 @@ type PluginSpecV1_Jamf struct { type PluginSpecV1_PagerDuty struct { PagerDuty *PluginPagerDutySettings `protobuf:"bytes,6,opt,name=pager_duty,json=pagerDuty,proto3,oneof" json:"pager_duty,omitempty"` } +type PluginSpecV1_Mattermost struct { + Mattermost *PluginMattermostSettings `protobuf:"bytes,7,opt,name=mattermost,proto3,oneof" json:"mattermost,omitempty"` +} func (*PluginSpecV1_SlackAccessPlugin) isPluginSpecV1_Settings() {} func (*PluginSpecV1_Opsgenie) isPluginSpecV1_Settings() {} @@ -13491,6 +13495,7 @@ func (*PluginSpecV1_Openai) isPluginSpecV1_Settings() {} func (*PluginSpecV1_Okta) isPluginSpecV1_Settings() {} func (*PluginSpecV1_Jamf) isPluginSpecV1_Settings() {} func (*PluginSpecV1_PagerDuty) isPluginSpecV1_Settings() {} +func (*PluginSpecV1_Mattermost) isPluginSpecV1_Settings() {} func (m *PluginSpecV1) GetSettings() isPluginSpecV1_Settings { if m != nil { @@ -13541,6 +13546,13 @@ func (m *PluginSpecV1) GetPagerDuty() *PluginPagerDutySettings { return nil } +func (m *PluginSpecV1) GetMattermost() *PluginMattermostSettings { + if x, ok := m.GetSettings().(*PluginSpecV1_Mattermost); ok { + return x.Mattermost + } + return nil +} + // XXX_OneofWrappers is for the internal use of the proto package. func (*PluginSpecV1) XXX_OneofWrappers() []interface{} { return []interface{}{ @@ -13550,6 +13562,7 @@ func (*PluginSpecV1) XXX_OneofWrappers() []interface{} { (*PluginSpecV1_Okta)(nil), (*PluginSpecV1_Jamf)(nil), (*PluginSpecV1_PagerDuty)(nil), + (*PluginSpecV1_Mattermost)(nil), } } @@ -13726,6 +13739,57 @@ func (m *PluginOpenAISettings) XXX_DiscardUnknown() { var xxx_messageInfo_PluginOpenAISettings proto.InternalMessageInfo +// Defines settings for the Mattermost plugin. +type PluginMattermostSettings struct { + // serverURL is the URL to access Mattermost. + ServerUrl string `protobuf:"bytes,1,opt,name=server_url,json=serverUrl,proto3" json:"server_url,omitempty"` + // team is the Mattermost workspace. + Team string `protobuf:"bytes,2,opt,name=team,proto3" json:"team,omitempty"` + // channel is the Mattermost channel in the workspace + // (team) to send notifications to. + Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` + // report_to_email is an optional email address of a Mattermost user + // to notify via a direct message when the plugin receives an + // Access Request event. + ReportToEmail string `protobuf:"bytes,4,opt,name=report_to_email,json=reportToEmail,proto3" json:"report_to_email,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginMattermostSettings) Reset() { *m = PluginMattermostSettings{} } +func (m *PluginMattermostSettings) String() string { return proto.CompactTextString(m) } +func (*PluginMattermostSettings) ProtoMessage() {} +func (*PluginMattermostSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{244} +} +func (m *PluginMattermostSettings) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PluginMattermostSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PluginMattermostSettings.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *PluginMattermostSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginMattermostSettings.Merge(m, src) +} +func (m *PluginMattermostSettings) XXX_Size() int { + return m.Size() +} +func (m *PluginMattermostSettings) XXX_DiscardUnknown() { + xxx_messageInfo_PluginMattermostSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginMattermostSettings proto.InternalMessageInfo + // Defines settings for Jamf plugin. type PluginJamfSettings struct { // Jamf service spec @@ -13739,7 +13803,7 @@ func (m *PluginJamfSettings) Reset() { *m = PluginJamfSettings{} } func (m *PluginJamfSettings) String() string { return proto.CompactTextString(m) } func (*PluginJamfSettings) ProtoMessage() {} func (*PluginJamfSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{244} + return fileDescriptor_9198ee693835762e, []int{245} } func (m *PluginJamfSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13781,7 +13845,7 @@ func (m *PluginOktaSettings) Reset() { *m = PluginOktaSettings{} } func (m *PluginOktaSettings) String() string { return proto.CompactTextString(m) } func (*PluginOktaSettings) ProtoMessage() {} func (*PluginOktaSettings) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{245} + return fileDescriptor_9198ee693835762e, []int{246} } func (m *PluginOktaSettings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13826,7 +13890,7 @@ func (m *PluginBootstrapCredentialsV1) Reset() { *m = PluginBootstrapCre func (m *PluginBootstrapCredentialsV1) String() string { return proto.CompactTextString(m) } func (*PluginBootstrapCredentialsV1) ProtoMessage() {} func (*PluginBootstrapCredentialsV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{246} + return fileDescriptor_9198ee693835762e, []int{247} } func (m *PluginBootstrapCredentialsV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13926,7 +13990,7 @@ func (m *PluginIdSecretCredential) Reset() { *m = PluginIdSecretCredenti func (m *PluginIdSecretCredential) String() string { return proto.CompactTextString(m) } func (*PluginIdSecretCredential) ProtoMessage() {} func (*PluginIdSecretCredential) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{247} + return fileDescriptor_9198ee693835762e, []int{248} } func (m *PluginIdSecretCredential) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -13969,7 +14033,7 @@ func (m *PluginOAuth2AuthorizationCodeCredentials) Reset() { func (m *PluginOAuth2AuthorizationCodeCredentials) String() string { return proto.CompactTextString(m) } func (*PluginOAuth2AuthorizationCodeCredentials) ProtoMessage() {} func (*PluginOAuth2AuthorizationCodeCredentials) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{248} + return fileDescriptor_9198ee693835762e, []int{249} } func (m *PluginOAuth2AuthorizationCodeCredentials) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14010,7 +14074,7 @@ func (m *PluginStatusV1) Reset() { *m = PluginStatusV1{} } func (m *PluginStatusV1) String() string { return proto.CompactTextString(m) } func (*PluginStatusV1) ProtoMessage() {} func (*PluginStatusV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{249} + return fileDescriptor_9198ee693835762e, []int{250} } func (m *PluginStatusV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14058,7 +14122,7 @@ func (m *PluginCredentialsV1) Reset() { *m = PluginCredentialsV1{} } func (m *PluginCredentialsV1) String() string { return proto.CompactTextString(m) } func (*PluginCredentialsV1) ProtoMessage() {} func (*PluginCredentialsV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{250} + return fileDescriptor_9198ee693835762e, []int{251} } func (m *PluginCredentialsV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14169,7 +14233,7 @@ func (m *PluginOAuth2AccessTokenCredentials) Reset() { *m = PluginOAuth2 func (m *PluginOAuth2AccessTokenCredentials) String() string { return proto.CompactTextString(m) } func (*PluginOAuth2AccessTokenCredentials) ProtoMessage() {} func (*PluginOAuth2AccessTokenCredentials) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{251} + return fileDescriptor_9198ee693835762e, []int{252} } func (m *PluginOAuth2AccessTokenCredentials) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14210,7 +14274,7 @@ func (m *PluginBearerTokenCredentials) Reset() { *m = PluginBearerTokenC func (m *PluginBearerTokenCredentials) String() string { return proto.CompactTextString(m) } func (*PluginBearerTokenCredentials) ProtoMessage() {} func (*PluginBearerTokenCredentials) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{252} + return fileDescriptor_9198ee693835762e, []int{253} } func (m *PluginBearerTokenCredentials) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14252,7 +14316,7 @@ func (m *PluginStaticCredentialsRef) Reset() { *m = PluginStaticCredenti func (m *PluginStaticCredentialsRef) String() string { return proto.CompactTextString(m) } func (*PluginStaticCredentialsRef) ProtoMessage() {} func (*PluginStaticCredentialsRef) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{253} + return fileDescriptor_9198ee693835762e, []int{254} } func (m *PluginStaticCredentialsRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14294,7 +14358,7 @@ func (m *PluginListV1) Reset() { *m = PluginListV1{} } func (m *PluginListV1) String() string { return proto.CompactTextString(m) } func (*PluginListV1) ProtoMessage() {} func (*PluginListV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{254} + return fileDescriptor_9198ee693835762e, []int{255} } func (m *PluginListV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14337,7 +14401,7 @@ type PluginStaticCredentialsV1 struct { func (m *PluginStaticCredentialsV1) Reset() { *m = PluginStaticCredentialsV1{} } func (*PluginStaticCredentialsV1) ProtoMessage() {} func (*PluginStaticCredentialsV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{255} + return fileDescriptor_9198ee693835762e, []int{256} } func (m *PluginStaticCredentialsV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14383,7 +14447,7 @@ func (m *PluginStaticCredentialsSpecV1) Reset() { *m = PluginStaticCrede func (m *PluginStaticCredentialsSpecV1) String() string { return proto.CompactTextString(m) } func (*PluginStaticCredentialsSpecV1) ProtoMessage() {} func (*PluginStaticCredentialsSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{256} + return fileDescriptor_9198ee693835762e, []int{257} } func (m *PluginStaticCredentialsSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14485,7 +14549,7 @@ func (m *PluginStaticCredentialsBasicAuth) Reset() { *m = PluginStaticCr func (m *PluginStaticCredentialsBasicAuth) String() string { return proto.CompactTextString(m) } func (*PluginStaticCredentialsBasicAuth) ProtoMessage() {} func (*PluginStaticCredentialsBasicAuth) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{257} + return fileDescriptor_9198ee693835762e, []int{258} } func (m *PluginStaticCredentialsBasicAuth) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14531,7 +14595,7 @@ func (m *PluginStaticCredentialsOAuthClientSecret) Reset() { func (m *PluginStaticCredentialsOAuthClientSecret) String() string { return proto.CompactTextString(m) } func (*PluginStaticCredentialsOAuthClientSecret) ProtoMessage() {} func (*PluginStaticCredentialsOAuthClientSecret) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{258} + return fileDescriptor_9198ee693835762e, []int{259} } func (m *PluginStaticCredentialsOAuthClientSecret) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14574,7 +14638,7 @@ type SAMLIdPServiceProviderV1 struct { func (m *SAMLIdPServiceProviderV1) Reset() { *m = SAMLIdPServiceProviderV1{} } func (*SAMLIdPServiceProviderV1) ProtoMessage() {} func (*SAMLIdPServiceProviderV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{259} + return fileDescriptor_9198ee693835762e, []int{260} } func (m *SAMLIdPServiceProviderV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14620,7 +14684,7 @@ func (m *SAMLIdPServiceProviderSpecV1) Reset() { *m = SAMLIdPServiceProv func (m *SAMLIdPServiceProviderSpecV1) String() string { return proto.CompactTextString(m) } func (*SAMLIdPServiceProviderSpecV1) ProtoMessage() {} func (*SAMLIdPServiceProviderSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{260} + return fileDescriptor_9198ee693835762e, []int{261} } func (m *SAMLIdPServiceProviderSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14662,7 +14726,7 @@ func (m *IdPOptions) Reset() { *m = IdPOptions{} } func (m *IdPOptions) String() string { return proto.CompactTextString(m) } func (*IdPOptions) ProtoMessage() {} func (*IdPOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{261} + return fileDescriptor_9198ee693835762e, []int{262} } func (m *IdPOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14704,7 +14768,7 @@ func (m *IdPSAMLOptions) Reset() { *m = IdPSAMLOptions{} } func (m *IdPSAMLOptions) String() string { return proto.CompactTextString(m) } func (*IdPSAMLOptions) ProtoMessage() {} func (*IdPSAMLOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{262} + return fileDescriptor_9198ee693835762e, []int{263} } func (m *IdPSAMLOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14754,7 +14818,7 @@ func (m *KubernetesResourceV1) Reset() { *m = KubernetesResourceV1{} } func (m *KubernetesResourceV1) String() string { return proto.CompactTextString(m) } func (*KubernetesResourceV1) ProtoMessage() {} func (*KubernetesResourceV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{263} + return fileDescriptor_9198ee693835762e, []int{264} } func (m *KubernetesResourceV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14796,7 +14860,7 @@ func (m *KubernetesResourceSpecV1) Reset() { *m = KubernetesResourceSpec func (m *KubernetesResourceSpecV1) String() string { return proto.CompactTextString(m) } func (*KubernetesResourceSpecV1) ProtoMessage() {} func (*KubernetesResourceSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{264} + return fileDescriptor_9198ee693835762e, []int{265} } func (m *KubernetesResourceSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14842,7 +14906,7 @@ func (m *ClusterMaintenanceConfigV1) Reset() { *m = ClusterMaintenanceCo func (m *ClusterMaintenanceConfigV1) String() string { return proto.CompactTextString(m) } func (*ClusterMaintenanceConfigV1) ProtoMessage() {} func (*ClusterMaintenanceConfigV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{265} + return fileDescriptor_9198ee693835762e, []int{266} } func (m *ClusterMaintenanceConfigV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14884,7 +14948,7 @@ func (m *ClusterMaintenanceConfigSpecV1) Reset() { *m = ClusterMaintenan func (m *ClusterMaintenanceConfigSpecV1) String() string { return proto.CompactTextString(m) } func (*ClusterMaintenanceConfigSpecV1) ProtoMessage() {} func (*ClusterMaintenanceConfigSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{266} + return fileDescriptor_9198ee693835762e, []int{267} } func (m *ClusterMaintenanceConfigSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14930,7 +14994,7 @@ func (m *AgentUpgradeWindow) Reset() { *m = AgentUpgradeWindow{} } func (m *AgentUpgradeWindow) String() string { return proto.CompactTextString(m) } func (*AgentUpgradeWindow) ProtoMessage() {} func (*AgentUpgradeWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{267} + return fileDescriptor_9198ee693835762e, []int{268} } func (m *AgentUpgradeWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -14977,7 +15041,7 @@ func (m *ScheduledAgentUpgradeWindow) Reset() { *m = ScheduledAgentUpgra func (m *ScheduledAgentUpgradeWindow) String() string { return proto.CompactTextString(m) } func (*ScheduledAgentUpgradeWindow) ProtoMessage() {} func (*ScheduledAgentUpgradeWindow) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{268} + return fileDescriptor_9198ee693835762e, []int{269} } func (m *ScheduledAgentUpgradeWindow) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15020,7 +15084,7 @@ func (m *AgentUpgradeSchedule) Reset() { *m = AgentUpgradeSchedule{} } func (m *AgentUpgradeSchedule) String() string { return proto.CompactTextString(m) } func (*AgentUpgradeSchedule) ProtoMessage() {} func (*AgentUpgradeSchedule) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{269} + return fileDescriptor_9198ee693835762e, []int{270} } func (m *AgentUpgradeSchedule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15063,7 +15127,7 @@ type UserGroupV1 struct { func (m *UserGroupV1) Reset() { *m = UserGroupV1{} } func (*UserGroupV1) ProtoMessage() {} func (*UserGroupV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{270} + return fileDescriptor_9198ee693835762e, []int{271} } func (m *UserGroupV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15105,7 +15169,7 @@ func (m *UserGroupSpecV1) Reset() { *m = UserGroupSpecV1{} } func (m *UserGroupSpecV1) String() string { return proto.CompactTextString(m) } func (*UserGroupSpecV1) ProtoMessage() {} func (*UserGroupSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{271} + return fileDescriptor_9198ee693835762e, []int{272} } func (m *UserGroupSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15149,7 +15213,7 @@ func (m *OktaImportRuleSpecV1) Reset() { *m = OktaImportRuleSpecV1{} } func (m *OktaImportRuleSpecV1) String() string { return proto.CompactTextString(m) } func (*OktaImportRuleSpecV1) ProtoMessage() {} func (*OktaImportRuleSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{272} + return fileDescriptor_9198ee693835762e, []int{273} } func (m *OktaImportRuleSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15193,7 +15257,7 @@ func (m *OktaImportRuleMappingV1) Reset() { *m = OktaImportRuleMappingV1 func (m *OktaImportRuleMappingV1) String() string { return proto.CompactTextString(m) } func (*OktaImportRuleMappingV1) ProtoMessage() {} func (*OktaImportRuleMappingV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{273} + return fileDescriptor_9198ee693835762e, []int{274} } func (m *OktaImportRuleMappingV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15236,7 +15300,7 @@ type OktaImportRuleV1 struct { func (m *OktaImportRuleV1) Reset() { *m = OktaImportRuleV1{} } func (*OktaImportRuleV1) ProtoMessage() {} func (*OktaImportRuleV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{274} + return fileDescriptor_9198ee693835762e, []int{275} } func (m *OktaImportRuleV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15284,7 +15348,7 @@ func (m *OktaImportRuleMatchV1) Reset() { *m = OktaImportRuleMatchV1{} } func (m *OktaImportRuleMatchV1) String() string { return proto.CompactTextString(m) } func (*OktaImportRuleMatchV1) ProtoMessage() {} func (*OktaImportRuleMatchV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{275} + return fileDescriptor_9198ee693835762e, []int{276} } func (m *OktaImportRuleMatchV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15327,7 +15391,7 @@ type OktaAssignmentV1 struct { func (m *OktaAssignmentV1) Reset() { *m = OktaAssignmentV1{} } func (*OktaAssignmentV1) ProtoMessage() {} func (*OktaAssignmentV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{276} + return fileDescriptor_9198ee693835762e, []int{277} } func (m *OktaAssignmentV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15381,7 +15445,7 @@ func (m *OktaAssignmentSpecV1) Reset() { *m = OktaAssignmentSpecV1{} } func (m *OktaAssignmentSpecV1) String() string { return proto.CompactTextString(m) } func (*OktaAssignmentSpecV1) ProtoMessage() {} func (*OktaAssignmentSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{277} + return fileDescriptor_9198ee693835762e, []int{278} } func (m *OktaAssignmentSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15425,7 +15489,7 @@ func (m *OktaAssignmentTargetV1) Reset() { *m = OktaAssignmentTargetV1{} func (m *OktaAssignmentTargetV1) String() string { return proto.CompactTextString(m) } func (*OktaAssignmentTargetV1) ProtoMessage() {} func (*OktaAssignmentTargetV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{278} + return fileDescriptor_9198ee693835762e, []int{279} } func (m *OktaAssignmentTargetV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15470,7 +15534,7 @@ type IntegrationV1 struct { func (m *IntegrationV1) Reset() { *m = IntegrationV1{} } func (*IntegrationV1) ProtoMessage() {} func (*IntegrationV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{279} + return fileDescriptor_9198ee693835762e, []int{280} } func (m *IntegrationV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15514,7 +15578,7 @@ func (m *IntegrationSpecV1) Reset() { *m = IntegrationSpecV1{} } func (m *IntegrationSpecV1) String() string { return proto.CompactTextString(m) } func (*IntegrationSpecV1) ProtoMessage() {} func (*IntegrationSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{280} + return fileDescriptor_9198ee693835762e, []int{281} } func (m *IntegrationSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15590,7 +15654,7 @@ func (m *AWSOIDCIntegrationSpecV1) Reset() { *m = AWSOIDCIntegrationSpec func (m *AWSOIDCIntegrationSpecV1) String() string { return proto.CompactTextString(m) } func (*AWSOIDCIntegrationSpecV1) ProtoMessage() {} func (*AWSOIDCIntegrationSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{281} + return fileDescriptor_9198ee693835762e, []int{282} } func (m *AWSOIDCIntegrationSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15642,7 +15706,7 @@ func (m *HeadlessAuthentication) Reset() { *m = HeadlessAuthentication{} func (m *HeadlessAuthentication) String() string { return proto.CompactTextString(m) } func (*HeadlessAuthentication) ProtoMessage() {} func (*HeadlessAuthentication) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{282} + return fileDescriptor_9198ee693835762e, []int{283} } func (m *HeadlessAuthentication) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15699,7 +15763,7 @@ func (m *WatchKind) Reset() { *m = WatchKind{} } func (m *WatchKind) String() string { return proto.CompactTextString(m) } func (*WatchKind) ProtoMessage() {} func (*WatchKind) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{283} + return fileDescriptor_9198ee693835762e, []int{284} } func (m *WatchKind) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15749,7 +15813,7 @@ func (m *WatchStatusV1) Reset() { *m = WatchStatusV1{} } func (m *WatchStatusV1) String() string { return proto.CompactTextString(m) } func (*WatchStatusV1) ProtoMessage() {} func (*WatchStatusV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{284} + return fileDescriptor_9198ee693835762e, []int{285} } func (m *WatchStatusV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15790,7 +15854,7 @@ func (m *WatchStatusSpecV1) Reset() { *m = WatchStatusSpecV1{} } func (m *WatchStatusSpecV1) String() string { return proto.CompactTextString(m) } func (*WatchStatusSpecV1) ProtoMessage() {} func (*WatchStatusSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{285} + return fileDescriptor_9198ee693835762e, []int{286} } func (m *WatchStatusSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15840,7 +15904,7 @@ func (m *ServerInfoV1) Reset() { *m = ServerInfoV1{} } func (m *ServerInfoV1) String() string { return proto.CompactTextString(m) } func (*ServerInfoV1) ProtoMessage() {} func (*ServerInfoV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{286} + return fileDescriptor_9198ee693835762e, []int{287} } func (m *ServerInfoV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15882,7 +15946,7 @@ func (m *ServerInfoSpecV1) Reset() { *m = ServerInfoSpecV1{} } func (m *ServerInfoSpecV1) String() string { return proto.CompactTextString(m) } func (*ServerInfoSpecV1) ProtoMessage() {} func (*ServerInfoSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{287} + return fileDescriptor_9198ee693835762e, []int{288} } func (m *ServerInfoSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -15949,7 +16013,7 @@ func (m *JamfSpecV1) Reset() { *m = JamfSpecV1{} } func (m *JamfSpecV1) String() string { return proto.CompactTextString(m) } func (*JamfSpecV1) ProtoMessage() {} func (*JamfSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{288} + return fileDescriptor_9198ee693835762e, []int{289} } func (m *JamfSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16011,7 +16075,7 @@ func (m *JamfInventoryEntry) Reset() { *m = JamfInventoryEntry{} } func (m *JamfInventoryEntry) String() string { return proto.CompactTextString(m) } func (*JamfInventoryEntry) ProtoMessage() {} func (*JamfInventoryEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{289} + return fileDescriptor_9198ee693835762e, []int{290} } func (m *JamfInventoryEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16068,7 +16132,7 @@ type MessageWithHeader struct { func (m *MessageWithHeader) Reset() { *m = MessageWithHeader{} } func (*MessageWithHeader) ProtoMessage() {} func (*MessageWithHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{290} + return fileDescriptor_9198ee693835762e, []int{291} } func (m *MessageWithHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16122,7 +16186,7 @@ func (m *AWSMatcher) Reset() { *m = AWSMatcher{} } func (m *AWSMatcher) String() string { return proto.CompactTextString(m) } func (*AWSMatcher) ProtoMessage() {} func (*AWSMatcher) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{291} + return fileDescriptor_9198ee693835762e, []int{292} } func (m *AWSMatcher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16167,7 +16231,7 @@ func (m *AssumeRole) Reset() { *m = AssumeRole{} } func (m *AssumeRole) String() string { return proto.CompactTextString(m) } func (*AssumeRole) ProtoMessage() {} func (*AssumeRole) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{292} + return fileDescriptor_9198ee693835762e, []int{293} } func (m *AssumeRole) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16221,7 +16285,7 @@ func (m *InstallerParams) Reset() { *m = InstallerParams{} } func (m *InstallerParams) String() string { return proto.CompactTextString(m) } func (*InstallerParams) ProtoMessage() {} func (*InstallerParams) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{293} + return fileDescriptor_9198ee693835762e, []int{294} } func (m *InstallerParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16264,7 +16328,7 @@ func (m *AWSSSM) Reset() { *m = AWSSSM{} } func (m *AWSSSM) String() string { return proto.CompactTextString(m) } func (*AWSSSM) ProtoMessage() {} func (*AWSSSM) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{294} + return fileDescriptor_9198ee693835762e, []int{295} } func (m *AWSSSM) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16318,7 +16382,7 @@ func (m *AzureMatcher) Reset() { *m = AzureMatcher{} } func (m *AzureMatcher) String() string { return proto.CompactTextString(m) } func (*AzureMatcher) ProtoMessage() {} func (*AzureMatcher) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{295} + return fileDescriptor_9198ee693835762e, []int{296} } func (m *AzureMatcher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16366,7 +16430,7 @@ func (m *GCPMatcher) Reset() { *m = GCPMatcher{} } func (m *GCPMatcher) String() string { return proto.CompactTextString(m) } func (*GCPMatcher) ProtoMessage() {} func (*GCPMatcher) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{296} + return fileDescriptor_9198ee693835762e, []int{297} } func (m *GCPMatcher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16412,7 +16476,7 @@ func (m *KubernetesMatcher) Reset() { *m = KubernetesMatcher{} } func (m *KubernetesMatcher) String() string { return proto.CompactTextString(m) } func (*KubernetesMatcher) ProtoMessage() {} func (*KubernetesMatcher) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{297} + return fileDescriptor_9198ee693835762e, []int{298} } func (m *KubernetesMatcher) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -16730,6 +16794,7 @@ func init() { proto.RegisterType((*PluginOpsgenieAccessSettings)(nil), "types.PluginOpsgenieAccessSettings") proto.RegisterType((*PluginPagerDutySettings)(nil), "types.PluginPagerDutySettings") proto.RegisterType((*PluginOpenAISettings)(nil), "types.PluginOpenAISettings") + proto.RegisterType((*PluginMattermostSettings)(nil), "types.PluginMattermostSettings") proto.RegisterType((*PluginJamfSettings)(nil), "types.PluginJamfSettings") proto.RegisterType((*PluginOktaSettings)(nil), "types.PluginOktaSettings") proto.RegisterType((*PluginBootstrapCredentialsV1)(nil), "types.PluginBootstrapCredentialsV1") @@ -16793,1424 +16858,1429 @@ func init() { func init() { proto.RegisterFile("teleport/legacy/types/types.proto", fileDescriptor_9198ee693835762e) } var fileDescriptor_9198ee693835762e = []byte{ - // 22660 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xfd, 0x7d, 0x90, 0x1c, 0x49, - 0x76, 0x18, 0x86, 0x6f, 0x75, 0xcf, 0x47, 0xcf, 0x9b, 0xaf, 0x9e, 0xc4, 0x00, 0x18, 0x60, 0x77, - 0x31, 0xd8, 0xc2, 0x2e, 0x16, 0xc0, 0xee, 0x02, 0x87, 0xc1, 0x2d, 0xee, 0x70, 0xfb, 0x75, 0x3d, - 0xdd, 0x0d, 0x4c, 0x03, 0xf3, 0xd1, 0x5b, 0x3d, 0x1f, 0xb7, 0xb7, 0x77, 0x57, 0x57, 0xd3, 0x9d, - 0x33, 0x53, 0x8b, 0x9e, 0xae, 0xbe, 0xaa, 0x6a, 0x00, 0x73, 0x14, 0x7f, 0xfc, 0x90, 0xa8, 0xfb, - 0xd1, 0xfc, 0x38, 0x9e, 0x7c, 0x14, 0x4f, 0xb6, 0x14, 0x64, 0x30, 0x24, 0x99, 0x14, 0x3f, 0x42, - 0x96, 0x14, 0x21, 0x3b, 0x68, 0xd3, 0xa6, 0x43, 0xc1, 0xa0, 0xa4, 0x90, 0xc5, 0x3f, 0xfc, 0x11, - 0x3e, 0x2b, 0xc6, 0x22, 0x69, 0x29, 0x1c, 0x08, 0x87, 0xc2, 0x0e, 0x86, 0x19, 0xf6, 0x39, 0x28, - 0x3b, 0xf2, 0x65, 0x66, 0x55, 0x66, 0x75, 0x75, 0x4f, 0xcf, 0x02, 0x6b, 0x12, 0x6b, 0xff, 0x03, - 0x4c, 0xbf, 0x7c, 0xef, 0x65, 0x56, 0x7e, 0xbc, 0x7c, 0xf9, 0xf2, 0xbd, 0x97, 0xf0, 0x52, 0x48, - 0x9b, 0xb4, 0xed, 0xf9, 0xe1, 0xb5, 0x26, 0xdd, 0x75, 0xea, 0x07, 0xd7, 0xc2, 0x83, 0x36, 0x0d, - 0xf8, 0xbf, 0x57, 0xdb, 0xbe, 0x17, 0x7a, 0x64, 0x18, 0x7f, 0x9c, 0x9d, 0xdd, 0xf5, 0x76, 0x3d, - 0x84, 0x5c, 0x63, 0x7f, 0xf1, 0xc2, 0xb3, 0xf3, 0xbb, 0x9e, 0xb7, 0xdb, 0xa4, 0xd7, 0xf0, 0xd7, - 0x76, 0x67, 0xe7, 0x5a, 0xe8, 0xee, 0xd3, 0x20, 0x74, 0xf6, 0xdb, 0x02, 0xe1, 0x72, 0x54, 0x81, - 0x13, 0x86, 0xac, 0x24, 0x74, 0xbd, 0xd6, 0xb5, 0x07, 0xd7, 0xd5, 0x9f, 0x02, 0xf5, 0x8d, 0xf4, - 0xb6, 0x3c, 0xf4, 0x9d, 0x76, 0x9b, 0xfa, 0xf1, 0x1f, 0x1c, 0xdd, 0xfc, 0x87, 0x59, 0x18, 0xbb, - 0x47, 0x69, 0xbb, 0xd0, 0x74, 0x1f, 0x50, 0x72, 0x01, 0x86, 0x56, 0x9d, 0x7d, 0x3a, 0x67, 0x9c, - 0x37, 0x2e, 0x8d, 0x2d, 0x4e, 0x3f, 0x3e, 0x9c, 0x1f, 0x0f, 0xa8, 0xff, 0x80, 0xfa, 0x76, 0xcb, - 0xd9, 0xa7, 0x16, 0x16, 0x92, 0xd7, 0x60, 0x8c, 0xfd, 0x1f, 0xb4, 0x9d, 0x3a, 0x9d, 0xcb, 0x20, - 0xe6, 0xe4, 0xe3, 0xc3, 0xf9, 0xb1, 0x96, 0x04, 0x5a, 0x71, 0x39, 0xb9, 0x08, 0xa3, 0xcb, 0xd4, - 0x09, 0x68, 0xa5, 0x34, 0x97, 0x3d, 0x6f, 0x5c, 0xca, 0x2e, 0x4e, 0x3c, 0x3e, 0x9c, 0xcf, 0x35, - 0x19, 0xc8, 0x76, 0x1b, 0x96, 0x2c, 0x24, 0x15, 0x18, 0x2d, 0x3f, 0x6a, 0xbb, 0x3e, 0x0d, 0xe6, - 0x86, 0xce, 0x1b, 0x97, 0xc6, 0x17, 0xce, 0x5e, 0xe5, 0x9d, 0x72, 0x55, 0x76, 0xca, 0xd5, 0x75, - 0xd9, 0x29, 0x8b, 0x27, 0x7e, 0xef, 0x70, 0xfe, 0xb9, 0xc7, 0x87, 0xf3, 0xa3, 0x94, 0x93, 0xfc, - 0xdc, 0xff, 0x30, 0x6f, 0x58, 0x92, 0x9e, 0xbc, 0x0d, 0x43, 0xeb, 0x07, 0x6d, 0x3a, 0x37, 0x76, - 0xde, 0xb8, 0x34, 0xb5, 0x70, 0xee, 0x2a, 0x1f, 0x86, 0xe8, 0x23, 0xe3, 0xbf, 0x18, 0xd6, 0x62, - 0xee, 0xf1, 0xe1, 0xfc, 0x10, 0x43, 0xb1, 0x90, 0x8a, 0xbc, 0x01, 0x23, 0x4b, 0x5e, 0x10, 0x56, - 0x4a, 0x73, 0x80, 0x9f, 0x76, 0xf2, 0xf1, 0xe1, 0xfc, 0xcc, 0x9e, 0x17, 0x84, 0xb6, 0xdb, 0x78, - 0xdd, 0xdb, 0x77, 0x43, 0xba, 0xdf, 0x0e, 0x0f, 0x2c, 0x81, 0x64, 0x3e, 0x82, 0x49, 0x8d, 0x1f, - 0x19, 0x87, 0xd1, 0x8d, 0xd5, 0x7b, 0xab, 0x6b, 0x5b, 0xab, 0xf9, 0xe7, 0x48, 0x0e, 0x86, 0x56, - 0xd7, 0x4a, 0xe5, 0xbc, 0x41, 0x46, 0x21, 0x5b, 0xa8, 0x56, 0xf3, 0x19, 0x32, 0x01, 0xb9, 0x52, - 0x61, 0xbd, 0xb0, 0x58, 0xa8, 0x95, 0xf3, 0x59, 0x72, 0x02, 0xa6, 0xb7, 0x2a, 0xab, 0xa5, 0xb5, - 0xad, 0x9a, 0x5d, 0x2a, 0xd7, 0xee, 0xad, 0xaf, 0x55, 0xf3, 0x43, 0x64, 0x0a, 0xe0, 0xde, 0xc6, - 0x62, 0xd9, 0x5a, 0x2d, 0xaf, 0x97, 0x6b, 0xf9, 0x61, 0x32, 0x0b, 0x79, 0x49, 0x62, 0xd7, 0xca, - 0xd6, 0x66, 0xa5, 0x58, 0xce, 0x8f, 0x98, 0xdf, 0xca, 0x42, 0x6e, 0x85, 0x86, 0x4e, 0xc3, 0x09, - 0x1d, 0xf2, 0x82, 0x36, 0x70, 0xf8, 0x4d, 0xca, 0x88, 0x5d, 0xe8, 0x1e, 0xb1, 0xe1, 0xc7, 0x87, - 0xf3, 0xc6, 0x1b, 0xea, 0x48, 0xbd, 0x05, 0xe3, 0x25, 0x1a, 0xd4, 0x7d, 0xb7, 0xcd, 0x66, 0x13, - 0x8e, 0xd6, 0xd8, 0xe2, 0x99, 0xc7, 0x87, 0xf3, 0x27, 0x1b, 0x31, 0x58, 0xe9, 0x01, 0x15, 0x9b, - 0x54, 0x60, 0x64, 0xd9, 0xd9, 0xa6, 0xcd, 0x60, 0x6e, 0xf8, 0x7c, 0xf6, 0xd2, 0xf8, 0xc2, 0xf3, - 0xa2, 0xd7, 0x65, 0x03, 0xaf, 0xf2, 0xd2, 0x72, 0x2b, 0xf4, 0x0f, 0x16, 0x67, 0x1f, 0x1f, 0xce, - 0xe7, 0x9b, 0x08, 0x50, 0x7b, 0x94, 0xa3, 0x90, 0x5a, 0x3c, 0x13, 0x46, 0x8e, 0x9c, 0x09, 0x2f, - 0xfe, 0xde, 0xe1, 0xbc, 0xc1, 0x46, 0x48, 0xcc, 0x84, 0x98, 0x9f, 0x3e, 0x27, 0xce, 0x43, 0xa6, - 0x52, 0x9a, 0x1b, 0xc5, 0x19, 0x98, 0x7f, 0x7c, 0x38, 0x3f, 0xa1, 0x0d, 0x66, 0xa6, 0x52, 0x3a, - 0x7b, 0x0b, 0xc6, 0x95, 0x36, 0x92, 0x3c, 0x64, 0xef, 0xd3, 0x03, 0xde, 0x9f, 0x16, 0xfb, 0x93, - 0xcc, 0xc2, 0xf0, 0x03, 0xa7, 0xd9, 0x11, 0x1d, 0x68, 0xf1, 0x1f, 0x5f, 0xc8, 0x7c, 0xde, 0x30, - 0xff, 0xca, 0x10, 0xe4, 0x2c, 0x8f, 0xaf, 0x42, 0x72, 0x19, 0x86, 0x6b, 0xa1, 0x13, 0xca, 0xa1, - 0x38, 0xf1, 0xf8, 0x70, 0x7e, 0x9a, 0xad, 0x50, 0xaa, 0xd4, 0xc7, 0x31, 0x18, 0x6a, 0x75, 0xcf, - 0x09, 0xe4, 0x90, 0x20, 0x6a, 0x9b, 0x01, 0x54, 0x54, 0xc4, 0x20, 0x17, 0x61, 0x68, 0xc5, 0x6b, - 0x50, 0x31, 0x2a, 0xe4, 0xf1, 0xe1, 0xfc, 0xd4, 0xbe, 0xd7, 0x50, 0x11, 0xb1, 0x9c, 0xbc, 0x0e, - 0x63, 0xc5, 0x8e, 0xef, 0xd3, 0x16, 0x9b, 0xc0, 0x43, 0x88, 0x3c, 0xf5, 0xf8, 0x70, 0x1e, 0xea, - 0x1c, 0xc8, 0x96, 0x5c, 0x8c, 0xc0, 0xba, 0xba, 0x16, 0x3a, 0x7e, 0x48, 0x1b, 0x73, 0xc3, 0x03, - 0x75, 0x35, 0x5b, 0x74, 0x33, 0x01, 0x27, 0x49, 0x76, 0xb5, 0xe0, 0x44, 0x96, 0x60, 0xfc, 0x8e, - 0xef, 0xd4, 0x69, 0x95, 0xfa, 0xae, 0xd7, 0xc0, 0x31, 0xcc, 0x2e, 0x5e, 0x7c, 0x7c, 0x38, 0x7f, - 0x6a, 0x97, 0x81, 0xed, 0x36, 0xc2, 0x63, 0xea, 0x1f, 0x1c, 0xce, 0xe7, 0x4a, 0x1d, 0x1f, 0x7b, - 0xcf, 0x52, 0x49, 0xc9, 0xd7, 0xd9, 0x90, 0x04, 0x21, 0x76, 0x2d, 0x6d, 0xe0, 0xe8, 0xf5, 0x6f, - 0xa2, 0x29, 0x9a, 0x78, 0xaa, 0xe9, 0x04, 0xa1, 0xed, 0x73, 0xba, 0x44, 0x3b, 0x55, 0x96, 0x64, - 0x0d, 0x72, 0xb5, 0xfa, 0x1e, 0x6d, 0x74, 0x9a, 0x74, 0x2e, 0x87, 0xec, 0x4f, 0x8b, 0x89, 0x2b, - 0xc7, 0x53, 0x16, 0x2f, 0x9e, 0x15, 0xbc, 0x49, 0x20, 0x20, 0x4a, 0xdf, 0x47, 0x4c, 0xbe, 0x90, - 0xfb, 0xde, 0x2f, 0xcd, 0x3f, 0xf7, 0xa3, 0xff, 0xe2, 0xfc, 0x73, 0xe6, 0x3f, 0xcc, 0x40, 0x3e, - 0xc9, 0x84, 0xec, 0xc0, 0xe4, 0x46, 0xbb, 0xe1, 0x84, 0xb4, 0xd8, 0x74, 0x69, 0x2b, 0x0c, 0x70, - 0x92, 0xf4, 0xff, 0xa6, 0x97, 0x45, 0xbd, 0x73, 0x1d, 0x24, 0xb4, 0xeb, 0x9c, 0x32, 0xf1, 0x55, - 0x3a, 0xdb, 0xb8, 0x9e, 0x1a, 0x4a, 0xef, 0x00, 0x67, 0xd8, 0xf1, 0xea, 0xe1, 0x72, 0xbf, 0x47, - 0x3d, 0x82, 0xad, 0x98, 0x40, 0xad, 0xc6, 0xf6, 0x01, 0xce, 0xcc, 0xc1, 0x27, 0x10, 0x23, 0x49, - 0x99, 0x40, 0x0c, 0x6c, 0xfe, 0x8f, 0x06, 0x4c, 0x59, 0x34, 0xf0, 0x3a, 0x7e, 0x9d, 0x2e, 0x51, - 0xa7, 0x41, 0x7d, 0x36, 0xfd, 0xef, 0xb9, 0xad, 0x86, 0x58, 0x53, 0x38, 0xfd, 0xef, 0xbb, 0x2d, - 0x75, 0x09, 0x63, 0x39, 0xf9, 0x0c, 0x8c, 0xd6, 0x3a, 0xdb, 0x88, 0xca, 0xd7, 0xd4, 0x29, 0x1c, - 0xb1, 0xce, 0xb6, 0x9d, 0x40, 0x97, 0x68, 0xe4, 0x1a, 0x8c, 0x6e, 0x52, 0x3f, 0x88, 0x25, 0x1e, - 0xca, 0xfb, 0x07, 0x1c, 0xa4, 0x12, 0x08, 0x2c, 0x72, 0x27, 0x96, 0xba, 0x62, 0xa7, 0x9a, 0x4e, - 0xc8, 0xba, 0x78, 0xaa, 0xec, 0x0b, 0x88, 0x3a, 0x55, 0x24, 0x96, 0xf9, 0x9d, 0x0c, 0xe4, 0x4b, - 0x4e, 0xe8, 0x6c, 0x3b, 0x81, 0xe8, 0xcf, 0xcd, 0x1b, 0x4c, 0x8e, 0x2b, 0x1f, 0x8a, 0x72, 0x9c, - 0xb5, 0xfc, 0x63, 0x7f, 0xde, 0x2b, 0xc9, 0xcf, 0x1b, 0x67, 0xdb, 0xa6, 0xf8, 0xbc, 0xf8, 0xa3, - 0xde, 0x39, 0xfa, 0xa3, 0xf2, 0xe2, 0xa3, 0x72, 0xf2, 0xa3, 0xe2, 0x4f, 0x21, 0xef, 0xc0, 0x50, - 0xad, 0x4d, 0xeb, 0x42, 0x88, 0x48, 0xd9, 0xaf, 0x7f, 0x1c, 0x43, 0xd8, 0xbc, 0xb1, 0x38, 0x21, - 0xd8, 0x0c, 0x05, 0x6d, 0x5a, 0xb7, 0x90, 0x4c, 0x59, 0x34, 0xff, 0x78, 0x04, 0x66, 0xd3, 0xc8, - 0xc8, 0x3b, 0xfa, 0xe6, 0xc4, 0xbb, 0xe7, 0xf9, 0x9e, 0x9b, 0xd3, 0x9c, 0xa1, 0x6f, 0x4f, 0x57, - 0x20, 0x57, 0x65, 0x13, 0xb2, 0xee, 0x35, 0x45, 0xcf, 0x31, 0xa9, 0x98, 0x6b, 0x4b, 0x98, 0x61, - 0x45, 0xe5, 0xe4, 0x79, 0xc8, 0x6e, 0x58, 0x15, 0xd1, 0x5d, 0x63, 0x8f, 0x0f, 0xe7, 0xb3, 0x1d, - 0xdf, 0x9d, 0x33, 0x2c, 0x06, 0x25, 0xd7, 0x60, 0xa4, 0x58, 0x28, 0x52, 0x3f, 0xc4, 0x6e, 0x9a, - 0x58, 0x3c, 0xcd, 0x66, 0x4b, 0xdd, 0xb1, 0xeb, 0xd4, 0x0f, 0xb5, 0xea, 0x05, 0x1a, 0x79, 0x0d, - 0xb2, 0x85, 0xad, 0x9a, 0xe8, 0x19, 0x10, 0x3d, 0x53, 0xd8, 0xaa, 0x2d, 0x4e, 0x8a, 0x8e, 0xc8, - 0x3a, 0x0f, 0x03, 0xc6, 0xbd, 0xb0, 0x55, 0x53, 0x47, 0x6b, 0xa4, 0xcf, 0x68, 0x5d, 0x82, 0x1c, - 0xd3, 0x3e, 0xd8, 0x06, 0x8f, 0x42, 0x71, 0x8c, 0x2b, 0x55, 0x7b, 0x02, 0x66, 0x45, 0xa5, 0xe4, - 0x42, 0xa4, 0xcc, 0xe4, 0x62, 0x7e, 0x42, 0x99, 0x91, 0x2a, 0x0c, 0x79, 0x04, 0x93, 0xa5, 0x83, - 0x96, 0xb3, 0xef, 0xd6, 0xc5, 0x16, 0x3e, 0x86, 0x5b, 0xf8, 0xd5, 0x3e, 0xc3, 0x78, 0x55, 0x23, - 0xe0, 0xbb, 0xba, 0x14, 0xbe, 0x73, 0x0d, 0x5e, 0x66, 0x27, 0x77, 0xf8, 0x39, 0xc3, 0xd2, 0x2b, - 0x62, 0x6b, 0x49, 0x8a, 0x48, 0xd4, 0xb6, 0xe2, 0x69, 0x27, 0xc1, 0xf1, 0x5a, 0xf2, 0x05, 0x44, - 0x5d, 0x4b, 0xd1, 0xa6, 0xfb, 0x0e, 0x64, 0xef, 0x14, 0xab, 0x73, 0xe3, 0xc8, 0x83, 0x08, 0x1e, - 0x77, 0x8a, 0xd5, 0x62, 0xd3, 0xeb, 0x34, 0x6a, 0xef, 0x2f, 0x2f, 0x9e, 0x16, 0x6c, 0x26, 0x77, - 0xeb, 0x6d, 0xad, 0x45, 0x8c, 0x8e, 0x94, 0x21, 0x27, 0xbf, 0x72, 0x6e, 0x02, 0x79, 0xcc, 0x24, - 0x3e, 0x7e, 0xf3, 0x06, 0x5f, 0x6b, 0x0d, 0xf1, 0x5b, 0x6d, 0x85, 0xc4, 0x21, 0x37, 0x70, 0x96, - 0x3d, 0x3a, 0xa8, 0x94, 0x82, 0xb9, 0xc9, 0xf3, 0xd9, 0x4b, 0x63, 0x38, 0x3d, 0x4e, 0xb4, 0x19, - 0xcc, 0x76, 0x1b, 0xaa, 0xb2, 0x13, 0x21, 0x9e, 0xdd, 0x02, 0xd2, 0xdd, 0x99, 0x29, 0xea, 0xc7, - 0x6b, 0xaa, 0xfa, 0x31, 0xbe, 0x70, 0x52, 0x34, 0xb0, 0xe8, 0xed, 0xef, 0x3b, 0xad, 0x06, 0xd2, - 0x6e, 0x2e, 0xa8, 0x5a, 0x49, 0x01, 0xa6, 0xe2, 0xd6, 0x2f, 0xbb, 0x41, 0x48, 0xae, 0xc1, 0x98, - 0x84, 0xb0, 0x9d, 0x27, 0x9b, 0xfa, 0x9d, 0x56, 0x8c, 0x63, 0xfe, 0x6e, 0x06, 0x20, 0x2e, 0x79, - 0x46, 0x85, 0xd3, 0xe7, 0x34, 0xe1, 0x74, 0x32, 0x39, 0xab, 0x7b, 0x8a, 0x25, 0xf2, 0x1e, 0x8c, - 0x30, 0x3d, 0xad, 0x23, 0xf5, 0xd0, 0xd3, 0x49, 0x52, 0x2c, 0xdc, 0xbc, 0xb1, 0x38, 0x25, 0x88, - 0x47, 0x02, 0x84, 0x58, 0x82, 0x4c, 0x91, 0x6b, 0xff, 0xcd, 0x48, 0x3c, 0x18, 0x42, 0xa2, 0x5d, - 0x52, 0x44, 0x92, 0x11, 0x2f, 0x62, 0x29, 0x92, 0x14, 0x81, 0x74, 0x86, 0x0b, 0x24, 0xde, 0xa9, - 0xa3, 0x42, 0x20, 0x25, 0xc5, 0x11, 0xef, 0xc0, 0x23, 0xc5, 0x51, 0x3b, 0xb9, 0xd6, 0x87, 0x70, - 0x1a, 0x5c, 0x4a, 0xed, 0x95, 0xb4, 0x55, 0x7e, 0xfe, 0xa8, 0x55, 0x9e, 0x5c, 0xe3, 0x37, 0x7a, - 0x09, 0xc0, 0x93, 0x72, 0x49, 0x3a, 0x0f, 0x55, 0x72, 0x14, 0x84, 0x6f, 0xf1, 0xf5, 0x3c, 0xd2, - 0x73, 0x3d, 0x9f, 0x4c, 0x5d, 0xcf, 0x7c, 0x35, 0xbf, 0x05, 0xc3, 0x85, 0x6f, 0x76, 0x7c, 0x2a, - 0x14, 0xc6, 0x09, 0x59, 0x27, 0x83, 0x45, 0x82, 0x60, 0xda, 0x61, 0x3f, 0x55, 0x45, 0x1b, 0xcb, - 0x59, 0xcd, 0xeb, 0xcb, 0x35, 0xa1, 0x0c, 0x92, 0x44, 0xb7, 0xac, 0x2f, 0x2b, 0xcd, 0x0e, 0xb5, - 0xaf, 0x66, 0x54, 0xe4, 0x1a, 0x64, 0x0a, 0x25, 0x3c, 0x77, 0x8e, 0x2f, 0x8c, 0xc9, 0x6a, 0x4b, - 0x8b, 0xb3, 0x82, 0x64, 0xc2, 0xd1, 0x0e, 0x1d, 0x85, 0x12, 0x59, 0x84, 0xe1, 0x95, 0x83, 0xda, - 0xfb, 0xcb, 0x42, 0xfa, 0x9d, 0x90, 0xf3, 0x9a, 0xc1, 0xd6, 0x70, 0xeb, 0x0a, 0xe2, 0x16, 0xef, - 0x1f, 0x04, 0xdf, 0x68, 0xaa, 0x2d, 0x46, 0x34, 0x52, 0x85, 0xb1, 0x42, 0x63, 0xdf, 0x6d, 0x6d, - 0x04, 0xd4, 0x17, 0x12, 0x70, 0x2e, 0xd1, 0xee, 0xa8, 0x7c, 0x71, 0xee, 0xf1, 0xe1, 0xfc, 0xac, - 0xc3, 0x7e, 0xda, 0x9d, 0x80, 0xfa, 0x0a, 0xb7, 0x98, 0x09, 0xa9, 0x02, 0xac, 0x78, 0xad, 0x5d, - 0xaf, 0x10, 0x36, 0x9d, 0x20, 0x21, 0x10, 0xe3, 0x82, 0x48, 0x9f, 0x3b, 0xb9, 0xcf, 0x60, 0xb6, - 0xc3, 0x80, 0x0a, 0x43, 0x85, 0xc7, 0x27, 0x27, 0xe4, 0xae, 0xc3, 0x4c, 0xd7, 0x47, 0xf6, 0x3f, - 0x0c, 0x9b, 0x7f, 0x53, 0xd5, 0xbb, 0xc4, 0x12, 0x66, 0xa7, 0x7e, 0xb1, 0x90, 0x8c, 0x58, 0x0b, - 0xec, 0x5a, 0x48, 0xd1, 0x32, 0xba, 0xcc, 0x27, 0x75, 0xa6, 0x6b, 0x52, 0x8f, 0x2b, 0xbb, 0x3a, - 0x9f, 0xca, 0xd1, 0x10, 0x67, 0x3f, 0xfe, 0x10, 0xbf, 0x07, 0x13, 0x2b, 0x4e, 0xcb, 0xd9, 0xa5, - 0x0d, 0xf6, 0x7d, 0x7c, 0xd1, 0x72, 0xf5, 0xe7, 0xf4, 0x3e, 0x87, 0xe3, 0x68, 0xaa, 0xbd, 0xaf, - 0x11, 0x90, 0xeb, 0x72, 0x49, 0x0c, 0xa7, 0x2c, 0x09, 0xa9, 0x89, 0x0c, 0xe3, 0x92, 0x10, 0x0b, - 0xc1, 0xfc, 0x3b, 0xa3, 0xf8, 0x8d, 0xe4, 0x75, 0x18, 0xb1, 0xe8, 0x6e, 0xac, 0x74, 0xe1, 0xe1, - 0xdd, 0x47, 0x88, 0xda, 0x31, 0x1c, 0x07, 0x77, 0x74, 0xda, 0x08, 0xf6, 0xdc, 0x9d, 0x50, 0xf4, - 0x4e, 0xb4, 0xa3, 0x0b, 0xb0, 0xb2, 0xa3, 0x0b, 0x88, 0xb6, 0xa3, 0x0b, 0x18, 0x13, 0x1b, 0x56, - 0xa9, 0x26, 0x3a, 0x4d, 0xf6, 0xb0, 0x55, 0x52, 0xd6, 0x9f, 0xaf, 0x6d, 0xa8, 0x0c, 0x9b, 0xdc, - 0x84, 0xb1, 0x42, 0xbd, 0xee, 0x75, 0x94, 0xd3, 0x2f, 0x9f, 0xf0, 0x1c, 0xa8, 0x5b, 0x70, 0x62, - 0x54, 0x52, 0x83, 0xf1, 0x32, 0x3b, 0x32, 0xba, 0x45, 0xa7, 0xbe, 0x27, 0x3b, 0x49, 0x2e, 0x7e, - 0xa5, 0x24, 0x9e, 0xf2, 0x14, 0x81, 0x75, 0x06, 0x54, 0x4d, 0x22, 0x0a, 0x2e, 0x59, 0x87, 0xf1, - 0x1a, 0xad, 0xfb, 0x34, 0xac, 0x85, 0x9e, 0x4f, 0x13, 0xb2, 0x4c, 0x29, 0x59, 0x3c, 0x27, 0x4f, - 0xad, 0x01, 0x02, 0xed, 0x80, 0x41, 0x55, 0xae, 0x0a, 0x32, 0x3f, 0x7e, 0xec, 0x7b, 0xfe, 0x41, - 0x69, 0x51, 0xc8, 0xb7, 0x78, 0x33, 0xe4, 0x60, 0xf5, 0xf8, 0xc1, 0x20, 0x8d, 0x6d, 0xfd, 0xf8, - 0xc1, 0xb1, 0x70, 0xa4, 0x4a, 0x35, 0x54, 0x43, 0x84, 0xb4, 0x9b, 0x8e, 0x7b, 0x19, 0xc1, 0xca, - 0x48, 0x35, 0x02, 0x54, 0x62, 0xb4, 0x91, 0x12, 0x58, 0xa4, 0x0d, 0x44, 0x8e, 0x1a, 0x57, 0x11, - 0x9b, 0x34, 0x08, 0x84, 0x10, 0x3c, 0x93, 0x18, 0xfc, 0x18, 0x61, 0xf1, 0x15, 0xc1, 0xfc, 0x45, - 0x39, 0x0d, 0xc4, 0x89, 0x93, 0x15, 0x2a, 0xf5, 0xa4, 0xf0, 0x26, 0xb7, 0x00, 0xca, 0x8f, 0x42, - 0xea, 0xb7, 0x9c, 0x66, 0x64, 0xa6, 0x43, 0x43, 0x15, 0x15, 0x50, 0x7d, 0xa0, 0x15, 0x64, 0x52, - 0x84, 0xc9, 0x42, 0x10, 0x74, 0xf6, 0xa9, 0xe5, 0x35, 0x69, 0xc1, 0x5a, 0x45, 0x81, 0x39, 0xb6, - 0xf8, 0xe2, 0xe3, 0xc3, 0xf9, 0x33, 0x0e, 0x16, 0xd8, 0xbe, 0xd7, 0xa4, 0xb6, 0xe3, 0xab, 0xb3, - 0x5b, 0xa7, 0x21, 0x6b, 0x00, 0x6b, 0x6d, 0xda, 0xaa, 0x51, 0xc7, 0xaf, 0xef, 0x25, 0xe4, 0x63, - 0x5c, 0xb0, 0xf8, 0x82, 0xf8, 0xc2, 0x59, 0xaf, 0x4d, 0x5b, 0x01, 0xc2, 0xd4, 0x56, 0xc5, 0x98, - 0xe4, 0x3d, 0x98, 0xae, 0x14, 0x56, 0xaa, 0x5e, 0xd3, 0xad, 0x1f, 0x94, 0x1f, 0xb9, 0x41, 0xc8, - 0xf4, 0x47, 0xe3, 0x52, 0x8e, 0x8b, 0x21, 0xd7, 0xd9, 0xb7, 0xdb, 0x58, 0x66, 0x53, 0x2c, 0xb4, - 0x92, 0xd8, 0xe6, 0x0f, 0x69, 0x73, 0x8d, 0xad, 0x83, 0x7b, 0xf4, 0xa0, 0xea, 0xd3, 0x1d, 0xf7, - 0x91, 0x58, 0xb6, 0xb8, 0x0e, 0xee, 0xd3, 0x03, 0xbb, 0x8d, 0x50, 0x75, 0x1d, 0x44, 0xa8, 0xe4, - 0xb3, 0x90, 0xbb, 0xb7, 0x52, 0xbb, 0x47, 0x0f, 0x2a, 0x25, 0xa1, 0x6e, 0x70, 0xb2, 0xfd, 0xc0, - 0x66, 0xa4, 0x5a, 0xaf, 0x46, 0x98, 0xe6, 0x62, 0xbc, 0xe6, 0x59, 0xcd, 0xc5, 0x66, 0x27, 0x08, - 0xa9, 0x5f, 0x29, 0xa9, 0x35, 0xd7, 0x39, 0x30, 0xb1, 0x02, 0x23, 0x54, 0xf3, 0xa7, 0x33, 0xb8, - 0xde, 0xd9, 0xd0, 0x56, 0x5a, 0x41, 0xe8, 0xb4, 0xea, 0x34, 0x62, 0x80, 0x43, 0xeb, 0x0a, 0x68, - 0x62, 0x68, 0x63, 0x64, 0xbd, 0xea, 0xcc, 0xc0, 0x55, 0xb3, 0x2a, 0xa5, 0xb5, 0x41, 0x18, 0xa9, - 0x45, 0x95, 0xbe, 0x80, 0x26, 0xaa, 0x8c, 0x91, 0xc9, 0x45, 0x18, 0xad, 0x14, 0x56, 0x0a, 0x9d, - 0x70, 0x0f, 0xa5, 0x4d, 0x8e, 0xab, 0x70, 0x6c, 0xbc, 0x9c, 0x4e, 0xb8, 0x67, 0xc9, 0x42, 0x72, - 0x0d, 0x55, 0xe3, 0x16, 0x0d, 0xb9, 0x79, 0x54, 0x6c, 0x2f, 0x01, 0x07, 0x25, 0x34, 0x63, 0x06, - 0x32, 0x7f, 0xc7, 0x88, 0x57, 0x27, 0xb9, 0xa8, 0x6d, 0x67, 0x68, 0xfc, 0x60, 0xdb, 0x99, 0x6a, - 0xfc, 0x40, 0x2b, 0xaf, 0x05, 0xa4, 0xd8, 0x09, 0x42, 0x6f, 0xbf, 0xdc, 0x6a, 0xb4, 0x3d, 0xb7, - 0x15, 0x22, 0x15, 0xef, 0x09, 0xf3, 0xf1, 0xe1, 0xfc, 0xb9, 0x3a, 0x96, 0xda, 0x54, 0x14, 0xdb, - 0x09, 0x2e, 0x29, 0xd4, 0x4f, 0xd0, 0x39, 0xe6, 0x3f, 0xc9, 0x68, 0x52, 0x95, 0x35, 0xcf, 0xa2, - 0xed, 0xa6, 0x5b, 0xc7, 0x23, 0xdb, 0x1d, 0xdf, 0xeb, 0xb4, 0xa3, 0x21, 0xc6, 0xe6, 0xf9, 0x71, - 0xa9, 0xbd, 0xcb, 0x8a, 0x75, 0xde, 0x29, 0xd4, 0xe4, 0x8b, 0x30, 0xc1, 0x36, 0x38, 0xf1, 0x33, - 0x98, 0xcb, 0x60, 0xef, 0xbe, 0x80, 0x66, 0xac, 0x80, 0xfa, 0x11, 0x1b, 0x6d, 0x67, 0x54, 0x29, - 0x48, 0x03, 0xe6, 0xd6, 0x7d, 0xa7, 0x15, 0xb8, 0x61, 0xb9, 0x55, 0xf7, 0x0f, 0x70, 0x43, 0x2e, - 0xb7, 0x9c, 0xed, 0x26, 0x6d, 0xe0, 0xe7, 0xe6, 0x16, 0x2f, 0x3d, 0x3e, 0x9c, 0x7f, 0x39, 0xe4, - 0x38, 0x36, 0x8d, 0x90, 0x6c, 0xca, 0xb1, 0x14, 0xce, 0x3d, 0x39, 0xb1, 0x0d, 0x5c, 0x76, 0x2b, - 0x5e, 0x4d, 0x0c, 0x45, 0xf6, 0x8b, 0xd3, 0xd1, 0x68, 0x30, 0xf9, 0xa1, 0x36, 0x53, 0x25, 0x30, - 0xff, 0xc4, 0x88, 0xe5, 0x3e, 0x79, 0x1b, 0xc6, 0xc5, 0xf4, 0x55, 0xe6, 0xc5, 0x59, 0xb6, 0x83, - 0xc8, 0xb9, 0x9e, 0x18, 0x59, 0x15, 0x9d, 0x9d, 0xd3, 0x0a, 0xc5, 0x65, 0x65, 0x6e, 0xe0, 0x39, - 0xcd, 0xa9, 0x37, 0x93, 0x54, 0x12, 0x8d, 0x4d, 0x82, 0xf5, 0xe5, 0x9a, 0xde, 0x2b, 0x38, 0x09, - 0xc2, 0x66, 0x90, 0xd2, 0x0d, 0x0a, 0xf2, 0x93, 0x7f, 0xf8, 0x7f, 0x6b, 0xa4, 0x6d, 0x2f, 0x64, - 0x11, 0x26, 0xb7, 0x3c, 0xff, 0x3e, 0x8e, 0xaf, 0xd2, 0x09, 0x38, 0xf2, 0x0f, 0x65, 0x41, 0xf2, - 0x83, 0x74, 0x12, 0xb5, 0x6d, 0x4a, 0x6f, 0xe8, 0x6d, 0x4b, 0x70, 0xd0, 0x08, 0xd8, 0x38, 0x44, - 0x1c, 0xa3, 0xd5, 0x81, 0xe3, 0x10, 0x37, 0x41, 0x9b, 0xc2, 0x2a, 0xba, 0xf9, 0x9f, 0x1a, 0xea, - 0x36, 0xc2, 0x3a, 0xb9, 0xe4, 0xed, 0x3b, 0x6e, 0x4b, 0xf9, 0x1c, 0x7e, 0xfb, 0x82, 0xd0, 0x64, - 0x4b, 0x14, 0x64, 0x72, 0x03, 0x72, 0xfc, 0x57, 0x24, 0xf8, 0xd0, 0xee, 0x20, 0x08, 0x75, 0xa9, - 0x2d, 0x11, 0xbb, 0x46, 0x26, 0x7b, 0xdc, 0x91, 0xf9, 0x51, 0x03, 0xc6, 0x95, 0x23, 0x19, 0x93, - 0xbf, 0x55, 0xdf, 0xfb, 0x88, 0xd6, 0x43, 0x5d, 0xf4, 0xb7, 0x39, 0x30, 0x21, 0x7f, 0x23, 0xd4, - 0x84, 0xc8, 0xcf, 0x1c, 0x43, 0xe4, 0x9b, 0xff, 0xab, 0x21, 0xf4, 0xda, 0x81, 0x65, 0xa4, 0x2e, - 0xcf, 0x32, 0xc7, 0x11, 0xf6, 0x5f, 0x84, 0x61, 0x8b, 0x36, 0xdc, 0x40, 0xe8, 0xa4, 0x33, 0xaa, - 0x0e, 0x8d, 0x05, 0xb1, 0x1a, 0xef, 0xb3, 0x9f, 0xaa, 0x1a, 0x8f, 0xe5, 0x4c, 0xf9, 0xa8, 0x04, - 0xb7, 0x9b, 0xf4, 0x91, 0xcb, 0x67, 0xb2, 0xd8, 0x34, 0x50, 0xf9, 0x70, 0x03, 0x7b, 0x87, 0x95, - 0x08, 0x2d, 0x48, 0x9d, 0xb5, 0x1a, 0x8d, 0xf9, 0x01, 0x40, 0x5c, 0x25, 0xb9, 0x07, 0x79, 0xb1, - 0xb6, 0xdd, 0xd6, 0x2e, 0x57, 0x09, 0x44, 0x1f, 0xcc, 0x3f, 0x3e, 0x9c, 0x7f, 0xbe, 0x1e, 0x95, - 0x09, 0x0d, 0x42, 0xe1, 0xdb, 0x45, 0x68, 0xfe, 0x07, 0x19, 0x76, 0x7e, 0x65, 0x7d, 0x74, 0x8f, - 0x1e, 0x84, 0xce, 0xf6, 0x6d, 0xb7, 0xa9, 0xcd, 0xc4, 0xfb, 0x08, 0xb5, 0x77, 0x5c, 0xed, 0xf2, - 0x43, 0x41, 0x66, 0x33, 0xf1, 0x9e, 0xbf, 0xfd, 0x26, 0x12, 0x2a, 0x33, 0xf1, 0xbe, 0xbf, 0xfd, - 0x66, 0x92, 0x2c, 0x42, 0x24, 0x26, 0x8c, 0xf0, 0x59, 0x29, 0xe6, 0x20, 0x3c, 0x3e, 0x9c, 0x1f, - 0xe1, 0x93, 0xd7, 0x12, 0x25, 0xe4, 0x0c, 0x64, 0x6b, 0xd5, 0x55, 0x21, 0x3e, 0xd0, 0x06, 0x12, - 0xb4, 0x5b, 0x16, 0x83, 0xb1, 0x3a, 0x97, 0x4b, 0x85, 0x2a, 0x1e, 0xde, 0x86, 0xe3, 0x3a, 0x9b, - 0x0d, 0xa7, 0x9d, 0x3c, 0xbe, 0x45, 0x88, 0xe4, 0x1d, 0x18, 0xbf, 0x57, 0x2a, 0x2e, 0x79, 0x01, - 0x5f, 0xfa, 0x23, 0xf1, 0xe4, 0xbf, 0xdf, 0xa8, 0xdb, 0x68, 0x21, 0x4d, 0xca, 0x50, 0x05, 0xdf, - 0xfc, 0x0d, 0x03, 0xc6, 0x15, 0xa3, 0x00, 0xf9, 0xac, 0xb8, 0x9e, 0x33, 0xf0, 0xca, 0xf9, 0x54, - 0xb7, 0xd9, 0x80, 0x95, 0xf2, 0x93, 0xe8, 0xbe, 0xd7, 0xa0, 0xe2, 0xb2, 0x2e, 0x3e, 0x74, 0x66, - 0x06, 0x39, 0x74, 0xde, 0x02, 0xe0, 0x73, 0x00, 0x9b, 0xac, 0xec, 0xc5, 0xca, 0x15, 0xbd, 0x3a, - 0x2e, 0x31, 0xb2, 0x69, 0xc1, 0x84, 0x7a, 0xe0, 0x64, 0xe2, 0x53, 0x5c, 0x39, 0x08, 0xfb, 0x9b, - 0x22, 0x3e, 0x05, 0xb7, 0xee, 0x2b, 0x10, 0x9d, 0xc4, 0xfc, 0xac, 0x6a, 0x25, 0x18, 0x74, 0x01, - 0x9a, 0x3f, 0x6e, 0xc4, 0xcb, 0x7d, 0xf3, 0x3a, 0x79, 0x0b, 0x46, 0xf8, 0x15, 0x8f, 0xb8, 0x09, - 0x3b, 0x19, 0x1d, 0x18, 0xd4, 0xfb, 0x1f, 0x6e, 0x9e, 0xfb, 0x7d, 0x7e, 0xd5, 0xfb, 0x9c, 0x25, - 0x48, 0x22, 0xcb, 0x9e, 0x6e, 0x2c, 0x90, 0xdc, 0xd1, 0x86, 0x75, 0x3d, 0xcd, 0xb2, 0x67, 0xfe, - 0xeb, 0x2c, 0x4c, 0xe9, 0x68, 0xea, 0x3d, 0x90, 0x31, 0xd0, 0x3d, 0xd0, 0x17, 0x21, 0xc7, 0xfa, - 0xc3, 0xad, 0x53, 0xa9, 0x76, 0xbc, 0x8c, 0xf6, 0x4e, 0x01, 0xd3, 0xee, 0x37, 0xa1, 0x76, 0x10, - 0x84, 0x74, 0x9f, 0x9d, 0x1f, 0xac, 0x88, 0x8a, 0x2c, 0x28, 0x66, 0xfc, 0x6c, 0xbc, 0x13, 0x4b, - 0x33, 0xbe, 0x3a, 0x6f, 0x23, 0x83, 0xfe, 0x1b, 0x30, 0xc2, 0x34, 0xca, 0xe8, 0x78, 0x8b, 0xad, - 0x64, 0xca, 0x66, 0xc2, 0x3b, 0x81, 0x23, 0x91, 0x2d, 0xc8, 0x2d, 0x3b, 0x41, 0x58, 0xa3, 0xb4, - 0x35, 0xc0, 0x0d, 0xef, 0xbc, 0xe8, 0xaa, 0x13, 0x78, 0x7d, 0x1a, 0x50, 0xda, 0x4a, 0x5c, 0xd1, - 0x45, 0xcc, 0xc8, 0x57, 0x01, 0x8a, 0x5e, 0x2b, 0xf4, 0xbd, 0xe6, 0xb2, 0xb7, 0x3b, 0x37, 0x82, - 0x46, 0xc4, 0x73, 0x89, 0x01, 0x88, 0x11, 0xb8, 0xe9, 0x30, 0x3a, 0x3c, 0xd7, 0x79, 0x81, 0xdd, - 0xf4, 0x76, 0xd5, 0xf9, 0x1a, 0xe3, 0x93, 0xdb, 0x90, 0x97, 0x87, 0xb6, 0x8d, 0xf6, 0xae, 0x8f, - 0x13, 0x64, 0x34, 0xde, 0x5e, 0xe9, 0xa3, 0xd0, 0xee, 0x08, 0xb8, 0x2a, 0xd1, 0x92, 0x34, 0xe6, - 0x0f, 0x32, 0x70, 0xba, 0x47, 0x73, 0xd8, 0x8c, 0xc5, 0x8d, 0x4f, 0x99, 0xb1, 0x89, 0xfd, 0x8e, - 0x3b, 0x84, 0x70, 0xd7, 0x01, 0x36, 0xc7, 0x86, 0xd2, 0x5d, 0x07, 0xc8, 0x5d, 0x18, 0x62, 0x9d, - 0x38, 0xc0, 0x15, 0xa8, 0x3c, 0x51, 0x4f, 0x85, 0xae, 0x3a, 0xc0, 0xd8, 0xb9, 0xc8, 0x83, 0x7c, - 0x16, 0xb2, 0xeb, 0xeb, 0xcb, 0x38, 0xba, 0x59, 0x54, 0x8b, 0x27, 0xc3, 0xb0, 0xa9, 0x4d, 0xa6, - 0x49, 0x46, 0x7b, 0x35, 0xba, 0x31, 0x67, 0xe8, 0xe4, 0x4b, 0x09, 0xf7, 0x8b, 0x2b, 0xfd, 0x87, - 0x62, 0x70, 0x6f, 0x8c, 0x27, 0x71, 0x8b, 0xf8, 0xeb, 0x99, 0x78, 0x95, 0xdd, 0x76, 0x9b, 0x21, - 0xf5, 0xc9, 0x59, 0xbe, 0x68, 0xe2, 0xd3, 0xa1, 0x15, 0xfd, 0x26, 0x73, 0xf1, 0x0a, 0xe4, 0xac, - 0xa2, 0xa5, 0x76, 0x45, 0x59, 0x6a, 0x59, 0x5c, 0x6a, 0x53, 0x3d, 0x17, 0xd5, 0x95, 0x94, 0x99, - 0x83, 0x4b, 0xa5, 0x7b, 0x76, 0x90, 0x97, 0x61, 0x72, 0xd5, 0x2b, 0x3f, 0x0a, 0x23, 0x44, 0xb6, - 0x44, 0x72, 0x96, 0x0e, 0x64, 0x1c, 0xd7, 0x9a, 0x0d, 0xea, 0xaf, 0xef, 0x39, 0x2d, 0xed, 0x76, - 0xce, 0xea, 0x82, 0x33, 0xdc, 0x55, 0xfa, 0x50, 0xc7, 0x1d, 0xe5, 0xb8, 0x49, 0xb8, 0xf9, 0x63, - 0x19, 0xd9, 0x19, 0x9b, 0x0b, 0xcf, 0xe8, 0xd5, 0xca, 0x9b, 0xda, 0xd5, 0xca, 0x89, 0xc8, 0xb6, - 0x15, 0x5d, 0x14, 0x2e, 0x1c, 0x71, 0xdf, 0x7b, 0x0b, 0x26, 0x64, 0x17, 0xe0, 0x0d, 0xd5, 0x65, - 0x18, 0x95, 0x1e, 0x0b, 0xfc, 0x7e, 0x6a, 0x5a, 0xe3, 0xb9, 0xb9, 0x60, 0xc9, 0x72, 0xf3, 0xd7, - 0x46, 0x24, 0x2d, 0xaf, 0x89, 0x75, 0x61, 0xa1, 0xd1, 0xf0, 0xd5, 0x2e, 0x74, 0x1a, 0x0d, 0xdf, - 0x42, 0x28, 0xdb, 0x3c, 0xab, 0x9d, 0xed, 0xa6, 0x5b, 0x47, 0x1c, 0x45, 0xf1, 0x6b, 0x23, 0xd4, - 0x66, 0xa8, 0xaa, 0x30, 0x8a, 0x91, 0xb5, 0xeb, 0xd6, 0x6c, 0xdf, 0xeb, 0xd6, 0xaf, 0xc1, 0x58, - 0x71, 0xbf, 0xa1, 0xdd, 0xac, 0x98, 0x29, 0x9d, 0x72, 0x35, 0x42, 0xe2, 0x2b, 0x30, 0x32, 0x14, - 0xd5, 0xf7, 0x1b, 0xdd, 0xf7, 0x29, 0x31, 0x4b, 0xed, 0xbe, 0x74, 0xf8, 0x49, 0xee, 0x4b, 0x6f, - 0xc2, 0xd8, 0x46, 0x40, 0xd7, 0x3b, 0xad, 0x16, 0x6d, 0xe2, 0x64, 0xce, 0x71, 0x5d, 0xbd, 0x13, - 0x50, 0x3b, 0x44, 0xa8, 0xda, 0x80, 0x08, 0x55, 0x9d, 0x56, 0xa3, 0x7d, 0xa6, 0xd5, 0x67, 0x61, - 0xa8, 0xd0, 0x6e, 0xcb, 0x8b, 0xe4, 0xc8, 0x3e, 0xde, 0x6e, 0xa3, 0xb0, 0x99, 0x72, 0xda, 0x6d, - 0xfd, 0x5a, 0x18, 0xb1, 0xf1, 0xfa, 0x94, 0x52, 0x1f, 0x07, 0x68, 0x3c, 0x56, 0xe4, 0xda, 0x94, - 0xfa, 0xc9, 0xe1, 0x89, 0x10, 0xb5, 0x3b, 0xd7, 0x89, 0x01, 0xef, 0x5c, 0xc9, 0x4b, 0x30, 0xa1, - 0x0c, 0xbb, 0xb8, 0xac, 0xb5, 0xc6, 0xdb, 0xd1, 0x98, 0x07, 0xe4, 0x4b, 0x30, 0x89, 0x27, 0x9b, - 0x68, 0x79, 0x4c, 0x61, 0x7f, 0xcf, 0xca, 0x1b, 0x09, 0xb5, 0x8c, 0xeb, 0x4d, 0x75, 0x06, 0xb2, - 0x53, 0x5c, 0x3e, 0x74, 0x46, 0x67, 0x6b, 0x30, 0xa5, 0x8f, 0xff, 0x53, 0xb8, 0x07, 0xb9, 0x3b, - 0x94, 0xcb, 0xe5, 0xc7, 0xee, 0x0e, 0xe5, 0x20, 0x3f, 0x6e, 0x91, 0x7b, 0x9d, 0x6d, 0xea, 0xb7, - 0x68, 0x48, 0x03, 0xa1, 0xe2, 0x07, 0xe6, 0xff, 0x65, 0xc0, 0x68, 0x61, 0xab, 0x56, 0x69, 0xed, - 0x78, 0xe4, 0x75, 0xd5, 0x4a, 0x6e, 0xc4, 0x3e, 0x62, 0xb1, 0x95, 0x5c, 0xb5, 0x8d, 0x5f, 0x4b, - 0x39, 0x9e, 0xa1, 0x63, 0xa8, 0x72, 0x3c, 0xd3, 0xec, 0x70, 0xf1, 0x85, 0x41, 0x76, 0x80, 0x0b, - 0x83, 0x2b, 0x30, 0xbc, 0x59, 0x2d, 0x46, 0xfa, 0x0c, 0x22, 0x3f, 0x68, 0xd7, 0x75, 0x75, 0x86, - 0xa3, 0x90, 0xb7, 0x60, 0xbc, 0xd2, 0x0a, 0xe9, 0xae, 0x1f, 0xaf, 0x80, 0xe8, 0xa8, 0x18, 0x81, - 0x55, 0x95, 0x5d, 0xc1, 0x36, 0x4b, 0x89, 0x01, 0x95, 0x17, 0x93, 0x5c, 0xef, 0x9c, 0x8a, 0xef, - 0x70, 0x58, 0x1f, 0x2d, 0xce, 0xa4, 0x5f, 0x4c, 0x9a, 0xdf, 0xca, 0xc0, 0x78, 0xa1, 0xdd, 0x7e, - 0xc6, 0xfd, 0x75, 0x3e, 0xaf, 0xc9, 0xed, 0x53, 0xf1, 0xfa, 0x3c, 0x86, 0xab, 0xce, 0x6f, 0x66, - 0x60, 0x3a, 0x41, 0xa1, 0xb6, 0xde, 0x18, 0xd0, 0x7f, 0x25, 0x33, 0xa0, 0xff, 0x4a, 0xb6, 0xb7, - 0xff, 0x8a, 0x2a, 0x15, 0x87, 0x9e, 0x44, 0x2a, 0xbe, 0x0a, 0xd9, 0x42, 0xbb, 0x9d, 0xbc, 0x23, - 0x6b, 0xb7, 0x37, 0x6f, 0xf0, 0x23, 0xa7, 0xd3, 0x6e, 0x5b, 0x0c, 0x43, 0x13, 0x3a, 0x23, 0x03, - 0x0a, 0x1d, 0xf3, 0x0d, 0x18, 0x43, 0x5e, 0xb8, 0xd1, 0x9d, 0x17, 0x12, 0x92, 0xef, 0x72, 0x5a, - 0x5d, 0x5c, 0x1a, 0x9a, 0xff, 0xa7, 0x01, 0xc3, 0xf8, 0xfb, 0x19, 0x9d, 0x63, 0x0b, 0xda, 0x1c, - 0xcb, 0x2b, 0x73, 0x6c, 0x90, 0xd9, 0xf5, 0x1f, 0x0e, 0x61, 0x6f, 0x89, 0x79, 0x25, 0x3c, 0x20, - 0x8c, 0x14, 0x0f, 0x88, 0x27, 0xd8, 0xd7, 0xef, 0x27, 0x7d, 0x21, 0xb2, 0x38, 0x18, 0x17, 0x92, - 0x4d, 0x7d, 0x2a, 0x6e, 0x10, 0x4b, 0x40, 0x2a, 0xad, 0x80, 0xd6, 0x3b, 0x3e, 0xad, 0xdd, 0x77, - 0xdb, 0x9b, 0xd4, 0x77, 0x77, 0x0e, 0x84, 0x01, 0x08, 0xb7, 0x5e, 0x57, 0x94, 0xda, 0xc1, 0x7d, - 0xb7, 0xcd, 0x4e, 0xdf, 0xee, 0xce, 0x81, 0x95, 0x42, 0x43, 0xde, 0x83, 0x51, 0x8b, 0x3e, 0xf4, - 0xdd, 0x50, 0x5e, 0x54, 0x4e, 0x45, 0x67, 0x66, 0x84, 0xf2, 0x33, 0xa1, 0xcf, 0x7f, 0xa8, 0xe3, - 0x2f, 0xca, 0xc9, 0x02, 0x17, 0x7c, 0xfc, 0x42, 0x72, 0x32, 0xfe, 0xda, 0xc2, 0x56, 0xad, 0x97, - 0xdc, 0x23, 0x97, 0x61, 0x18, 0xa5, 0xa7, 0xd8, 0xf6, 0xd1, 0x55, 0x19, 0x37, 0x3c, 0x55, 0x4a, - 0x23, 0x06, 0x39, 0x07, 0x10, 0x59, 0xd8, 0x83, 0xb9, 0x1c, 0x6e, 0xad, 0x0a, 0xe4, 0x93, 0xf3, - 0x05, 0xf8, 0xf5, 0x0c, 0x5c, 0x88, 0x24, 0xd2, 0x9a, 0x5f, 0x2b, 0xac, 0x2c, 0x57, 0x1a, 0x55, - 0x71, 0x32, 0xa8, 0xfa, 0xde, 0x03, 0xb7, 0x41, 0xfd, 0xcd, 0xeb, 0x47, 0xac, 0xa7, 0x65, 0x3e, - 0xf1, 0xb8, 0x81, 0x2e, 0xa3, 0x5d, 0xda, 0x2a, 0x82, 0x5f, 0xdc, 0x2b, 0xb7, 0xdb, 0x5d, 0xf6, - 0xba, 0xa5, 0xe7, 0xac, 0x98, 0x01, 0xf9, 0x71, 0x03, 0x4e, 0xa5, 0x37, 0x44, 0x9c, 0x16, 0xe7, - 0xa5, 0x7e, 0xd8, 0xa3, 0xb5, 0x8b, 0xaf, 0x3e, 0x3e, 0x9c, 0xbf, 0x10, 0x38, 0xfb, 0x4d, 0xdb, - 0x6d, 0xf0, 0xda, 0xdc, 0x3a, 0xb5, 0xdb, 0x02, 0x41, 0xab, 0xb7, 0x47, 0x4d, 0xf1, 0xb2, 0x5a, - 0x04, 0xc8, 0x49, 0xcb, 0x8a, 0xf9, 0xdd, 0x61, 0x14, 0x77, 0x47, 0x84, 0x0e, 0xf4, 0x71, 0x3e, - 0xd2, 0x97, 0x5e, 0xf6, 0x38, 0x4b, 0x6f, 0x13, 0x26, 0x6a, 0x4c, 0xe8, 0xea, 0x5e, 0x48, 0x2f, - 0xc4, 0xfd, 0x7c, 0x55, 0x2d, 0xee, 0x77, 0x4e, 0xd5, 0xf8, 0x10, 0x3b, 0xb9, 0xa4, 0xf9, 0x71, - 0xf8, 0x45, 0x85, 0x71, 0xca, 0x62, 0x8e, 0x76, 0x87, 0x3a, 0x9f, 0x5b, 0xc7, 0x5e, 0xc6, 0x23, - 0x4f, 0xb6, 0x8c, 0x47, 0x3f, 0xd6, 0x32, 0x4e, 0xc4, 0x6b, 0xe4, 0x8e, 0x13, 0xaf, 0x71, 0xf6, - 0x3d, 0x98, 0xe9, 0xea, 0xe1, 0xe3, 0x1c, 0xee, 0x3f, 0xb9, 0x55, 0xfc, 0xc3, 0xa0, 0x08, 0xaa, - 0x9c, 0x45, 0x1b, 0xae, 0x4f, 0xeb, 0x21, 0x6e, 0x94, 0x62, 0x6f, 0xf3, 0x05, 0x2c, 0xe1, 0x37, - 0x82, 0x30, 0xf2, 0x2e, 0x8c, 0x72, 0xeb, 0x20, 0xb7, 0xca, 0xc5, 0x02, 0x4e, 0x58, 0x12, 0x79, - 0x38, 0x0f, 0xc7, 0x50, 0x7b, 0x55, 0x10, 0x99, 0x77, 0xa4, 0x41, 0xf2, 0x88, 0x75, 0x31, 0x0f, - 0xc3, 0x9b, 0x71, 0xcf, 0xa0, 0x9f, 0x30, 0xff, 0x08, 0x8b, 0xc3, 0xcd, 0x9f, 0x32, 0x60, 0x4a, - 0xff, 0x4a, 0x72, 0x15, 0x46, 0x44, 0x50, 0x84, 0x81, 0xe6, 0x1d, 0xf6, 0x35, 0x23, 0x3c, 0x1c, - 0x42, 0x0b, 0x82, 0x10, 0x58, 0x6c, 0xa3, 0x16, 0x1c, 0x84, 0x85, 0x11, 0x37, 0x6a, 0x31, 0x49, - 0x2d, 0x59, 0x46, 0x4c, 0xa6, 0x70, 0x07, 0x9d, 0x66, 0xa8, 0xda, 0xcf, 0x7d, 0x84, 0x58, 0xa2, - 0xc4, 0x2c, 0xc2, 0x08, 0x97, 0xf0, 0x09, 0xe7, 0x09, 0xe3, 0x18, 0xce, 0x13, 0xe6, 0xa1, 0x01, - 0x50, 0xab, 0x2d, 0xdd, 0xa3, 0x07, 0x55, 0xc7, 0xf5, 0xf1, 0xc2, 0x07, 0x97, 0xf4, 0x3d, 0x31, - 0xe4, 0x13, 0xe2, 0xc2, 0x87, 0x2f, 0xff, 0xfb, 0xf4, 0x40, 0xbb, 0xf0, 0x91, 0xa8, 0x28, 0x37, - 0x7c, 0xf7, 0x81, 0x13, 0x52, 0x46, 0x98, 0x41, 0x42, 0x2e, 0x37, 0x38, 0x34, 0x41, 0xa9, 0x20, - 0x93, 0xaf, 0xc2, 0x54, 0xfc, 0x2b, 0xba, 0xb6, 0x9a, 0x8a, 0xa6, 0x95, 0x5e, 0xb8, 0x78, 0xee, - 0xf1, 0xe1, 0xfc, 0x59, 0x85, 0x6b, 0xf2, 0x42, 0x2b, 0xc1, 0xcc, 0xfc, 0x65, 0x03, 0x6f, 0x3a, - 0xe5, 0x07, 0x5e, 0x84, 0xa1, 0xc8, 0x25, 0x6c, 0x82, 0x5b, 0x08, 0x13, 0xa6, 0x79, 0x2c, 0x27, - 0x17, 0x20, 0x1b, 0x7f, 0x09, 0xee, 0xa0, 0xfa, 0x17, 0xb0, 0x52, 0x72, 0x07, 0x46, 0x07, 0x6a, - 0x33, 0x4e, 0xf1, 0x94, 0xb6, 0x4a, 0x6a, 0x1c, 0x85, 0xbb, 0x5b, 0xeb, 0x9f, 0xde, 0x51, 0xf8, - 0x76, 0x06, 0xa6, 0x59, 0xbf, 0x16, 0x3a, 0xe1, 0x9e, 0xe7, 0xbb, 0xe1, 0xc1, 0x33, 0x6b, 0x1f, - 0x7b, 0x5b, 0xd3, 0x81, 0xcf, 0x4a, 0xd9, 0xa7, 0x7e, 0xdb, 0x40, 0x66, 0xb2, 0xdf, 0x1d, 0x86, - 0x13, 0x29, 0x54, 0xe4, 0x75, 0xcd, 0x84, 0x3d, 0x27, 0x23, 0x19, 0x7f, 0x70, 0x38, 0x3f, 0x21, - 0xd1, 0xd7, 0xe3, 0xc8, 0xc6, 0x05, 0xdd, 0x6d, 0x80, 0xf7, 0x14, 0x5a, 0xb4, 0x55, 0xb7, 0x01, - 0xdd, 0x59, 0xe0, 0x32, 0x0c, 0x5b, 0x5e, 0x93, 0x4a, 0xbf, 0x15, 0xd4, 0xfb, 0x7c, 0x06, 0xd0, - 0x6e, 0x37, 0x19, 0x80, 0x2c, 0xc1, 0x28, 0xfb, 0x63, 0xc5, 0x69, 0x8b, 0xfb, 0x00, 0x12, 0x9d, - 0xc2, 0x10, 0xda, 0x76, 0x5b, 0xbb, 0xea, 0x41, 0xac, 0x49, 0xed, 0x7d, 0xa7, 0xad, 0xed, 0x6c, - 0x1c, 0x51, 0x3b, 0xd0, 0xe5, 0x7a, 0x1f, 0xe8, 0x8c, 0x23, 0x0f, 0x74, 0x0d, 0x80, 0x9a, 0xbb, - 0xdb, 0x72, 0x5b, 0xbb, 0x85, 0xe6, 0xae, 0x88, 0x07, 0xbd, 0xdc, 0x7b, 0x14, 0xae, 0xc6, 0xc8, - 0x38, 0x71, 0xf9, 0xe5, 0x1a, 0x87, 0xd9, 0x4e, 0x53, 0xbb, 0xac, 0x88, 0x51, 0xc9, 0x2a, 0x40, - 0xa1, 0x1e, 0xba, 0x0f, 0xd8, 0x04, 0x0e, 0x84, 0x07, 0xae, 0x6c, 0x70, 0xb1, 0x70, 0x8f, 0x1e, - 0xd4, 0x68, 0x18, 0x5f, 0x7e, 0x38, 0x88, 0xca, 0xd6, 0x81, 0xe6, 0x2c, 0x1b, 0x73, 0x20, 0x6d, - 0x38, 0x59, 0x68, 0x34, 0x5c, 0xf6, 0x05, 0x4e, 0x73, 0xdd, 0x67, 0x83, 0xd1, 0x40, 0xd6, 0x13, - 0xe9, 0xac, 0x2f, 0x0b, 0xd6, 0x2f, 0x39, 0x11, 0x95, 0x1d, 0x72, 0xb2, 0x64, 0x35, 0xe9, 0x8c, - 0xcd, 0x35, 0x98, 0xd2, 0x3f, 0x5d, 0x8f, 0x62, 0x9d, 0x80, 0x9c, 0x55, 0x2b, 0xd8, 0xb5, 0xa5, - 0xc2, 0xf5, 0xbc, 0x41, 0xf2, 0x30, 0x21, 0x7e, 0x2d, 0xd8, 0x0b, 0x6f, 0xde, 0xcc, 0x67, 0x34, - 0xc8, 0x9b, 0xd7, 0x17, 0xf2, 0xd9, 0xbb, 0x43, 0xb9, 0x6c, 0x7e, 0xe8, 0xee, 0x50, 0x6e, 0x28, - 0x3f, 0x7c, 0x77, 0x28, 0x37, 0x9a, 0xcf, 0x71, 0xd3, 0x94, 0xf9, 0xf7, 0x0c, 0xc8, 0xc9, 0x76, - 0x93, 0x9b, 0x90, 0xad, 0xd5, 0x96, 0x12, 0x81, 0x08, 0xf1, 0xfe, 0xc2, 0x25, 0x69, 0x10, 0xa8, - 0x4e, 0x73, 0x8c, 0x80, 0xd1, 0xad, 0x2f, 0xd7, 0xc4, 0xf6, 0x2e, 0xe9, 0x62, 0xb1, 0xcd, 0xe9, - 0x52, 0xbc, 0xb3, 0x6f, 0x42, 0xf6, 0xee, 0xd6, 0xba, 0x38, 0xe5, 0x49, 0xba, 0x58, 0x92, 0x72, - 0xba, 0x8f, 0x1e, 0xaa, 0xf2, 0x9d, 0x11, 0x98, 0x16, 0x8c, 0x2b, 0x53, 0x98, 0x6f, 0xb7, 0xfb, - 0x5e, 0x14, 0xe1, 0x29, 0xb6, 0x5b, 0x06, 0xb1, 0x44, 0x09, 0xd3, 0x0e, 0x96, 0xbd, 0xba, 0xd3, - 0x14, 0xfb, 0x36, 0x6a, 0x07, 0x4d, 0x06, 0xb0, 0x38, 0xdc, 0xfc, 0x1d, 0x03, 0xf2, 0xa8, 0x9f, - 0x33, 0x31, 0xb3, 0xee, 0xdd, 0xa7, 0xad, 0xcd, 0xeb, 0xe4, 0x0d, 0xb9, 0xd8, 0x8c, 0xc8, 0xa6, - 0x30, 0x8c, 0x8b, 0x2d, 0x71, 0xdb, 0x21, 0x16, 0x9c, 0x12, 0x28, 0x9b, 0x19, 0x3c, 0xf8, 0xee, - 0x88, 0x40, 0xd9, 0x79, 0x18, 0xc6, 0xe6, 0x28, 0xf1, 0x4f, 0xc3, 0x21, 0x03, 0x58, 0x1c, 0xae, - 0x48, 0xa5, 0xef, 0x64, 0xba, 0xbe, 0x61, 0xe1, 0x53, 0x15, 0xc0, 0xa6, 0x7f, 0xdc, 0x40, 0x92, - 0xfa, 0x03, 0x98, 0x4d, 0x76, 0x09, 0xda, 0x7b, 0x0a, 0x30, 0xad, 0xc3, 0xa5, 0xe9, 0xe7, 0x74, - 0x6a, 0x5d, 0x9b, 0x0b, 0x56, 0x12, 0xdf, 0xfc, 0x43, 0x03, 0xc6, 0xf0, 0x4f, 0xab, 0xd3, 0x44, - 0x47, 0x96, 0xc2, 0x56, 0x4d, 0x98, 0x69, 0x55, 0x35, 0xce, 0x79, 0x18, 0xd8, 0xc2, 0x92, 0xab, - 0xc9, 0x97, 0x08, 0x59, 0x90, 0x72, 0xfb, 0xab, 0xbc, 0xbb, 0x8e, 0x48, 0xb9, 0xa1, 0x36, 0x48, - 0x90, 0x0a, 0x64, 0xf4, 0x1d, 0xdb, 0xaa, 0xb1, 0xe9, 0xa7, 0xde, 0x58, 0x23, 0x9d, 0xd7, 0xd4, - 0x7d, 0xc7, 0x38, 0x1a, 0x5e, 0x58, 0x6f, 0xd5, 0x0a, 0xd6, 0xaa, 0x76, 0x61, 0xcd, 0xda, 0xa8, - 0x79, 0xd8, 0x0a, 0x24, 0xf3, 0xd7, 0x72, 0xc9, 0x0e, 0x14, 0x5b, 0xdd, 0x31, 0xd7, 0xc6, 0x5b, - 0x30, 0x5c, 0x68, 0x36, 0xbd, 0x87, 0x42, 0x4a, 0x48, 0xf3, 0x53, 0xd4, 0x7f, 0x7c, 0x27, 0x73, - 0x18, 0x8a, 0x16, 0x03, 0xc2, 0x00, 0xa4, 0x08, 0x63, 0x85, 0xad, 0x5a, 0xa5, 0x52, 0x5a, 0x5f, - 0x5f, 0x16, 0x59, 0x0b, 0x5e, 0x91, 0xfd, 0xe3, 0xba, 0x0d, 0x3b, 0x79, 0x23, 0x1b, 0x6b, 0xee, - 0x31, 0x1d, 0x79, 0x07, 0xe0, 0xae, 0xe7, 0xb6, 0x56, 0x68, 0xb8, 0xe7, 0x35, 0xc4, 0xc7, 0xbf, - 0xf8, 0xf8, 0x70, 0x7e, 0xfc, 0x23, 0xcf, 0x6d, 0xd9, 0xfb, 0x08, 0x66, 0x6d, 0x8f, 0x91, 0x2c, - 0xe5, 0x6f, 0xd6, 0xd3, 0x8b, 0x1e, 0x77, 0x4e, 0x19, 0x8e, 0x7b, 0x7a, 0xdb, 0xeb, 0xf2, 0x4b, - 0x91, 0x68, 0x64, 0x1f, 0xa6, 0x6b, 0x9d, 0xdd, 0x5d, 0xca, 0xa4, 0xba, 0x38, 0xfd, 0x8e, 0x88, - 0x33, 0x57, 0x94, 0xf3, 0x81, 0x9f, 0x44, 0xd8, 0xf9, 0x24, 0x58, 0x7c, 0x9d, 0x4d, 0xe4, 0xef, - 0x1f, 0xce, 0x8b, 0x9b, 0x5e, 0xa6, 0xa4, 0x05, 0x92, 0xbe, 0xdb, 0x9c, 0x95, 0xe4, 0x4d, 0xd6, - 0x60, 0xe4, 0x8e, 0x1b, 0x2e, 0x75, 0xb6, 0xc5, 0xf1, 0xf5, 0xa5, 0x3e, 0x8b, 0x86, 0x23, 0xf2, - 0x13, 0xfc, 0xae, 0x1b, 0xee, 0x75, 0x54, 0x97, 0x74, 0xc1, 0x86, 0x6c, 0x41, 0xae, 0xe8, 0xfa, - 0xf5, 0x26, 0x2d, 0x56, 0xc4, 0xae, 0x7f, 0xa1, 0x0f, 0x4b, 0x89, 0xca, 0xfb, 0xa5, 0x8e, 0xbf, - 0xea, 0xae, 0xaa, 0x05, 0x48, 0x0c, 0xf2, 0xef, 0x1a, 0xf0, 0x7c, 0xd4, 0xfa, 0xc2, 0x2e, 0x6d, - 0x85, 0x2b, 0x4e, 0x58, 0xdf, 0xa3, 0x7e, 0x14, 0xee, 0xd8, 0xa7, 0x97, 0xbe, 0xd0, 0xd5, 0x4b, - 0x97, 0xe2, 0x5e, 0x72, 0x18, 0x33, 0x7b, 0x9f, 0x73, 0xeb, 0xee, 0xb3, 0x7e, 0xb5, 0x12, 0x1b, - 0x20, 0xbe, 0xa7, 0x11, 0xf1, 0x3f, 0xaf, 0xf4, 0xf9, 0xe0, 0x18, 0x59, 0x38, 0x65, 0x47, 0xbf, - 0x35, 0x5f, 0xac, 0x08, 0x4a, 0xee, 0xc9, 0x98, 0x0f, 0xae, 0x91, 0x9c, 0xef, 0xc3, 0x9b, 0xc7, - 0x81, 0x9c, 0xe8, 0x13, 0x16, 0xc5, 0x47, 0x7b, 0xd9, 0xd9, 0x16, 0x4a, 0xc8, 0x11, 0xa3, 0xbd, - 0xec, 0xc4, 0xa3, 0xdd, 0x74, 0x92, 0xa3, 0xbd, 0xec, 0x6c, 0x93, 0x22, 0x8f, 0xf0, 0x9a, 0x44, - 0x6e, 0xe7, 0xfa, 0x71, 0x2b, 0x56, 0xf9, 0xce, 0xdc, 0x1d, 0xe9, 0x65, 0xfe, 0x9b, 0x21, 0x38, - 0xdb, 0x7b, 0xbe, 0x91, 0xf7, 0xa5, 0x10, 0xe0, 0xa2, 0xf6, 0xe2, 0x91, 0x33, 0xf4, 0xea, 0x91, - 0xa2, 0xe1, 0x4b, 0x30, 0x5b, 0x6e, 0x85, 0xd4, 0x6f, 0xfb, 0xae, 0x8c, 0x88, 0x5d, 0xf2, 0x02, - 0xe9, 0xc0, 0xf5, 0xf2, 0xe3, 0xc3, 0xf9, 0xf3, 0x34, 0x2a, 0x17, 0xb6, 0x41, 0x74, 0x27, 0x53, - 0x58, 0xa5, 0x72, 0x38, 0xfb, 0xcb, 0x59, 0x18, 0x42, 0xc9, 0x7e, 0x01, 0xb2, 0xb5, 0xce, 0xb6, - 0x10, 0xe9, 0x5c, 0x07, 0xd2, 0xd6, 0x0b, 0x2b, 0x25, 0x9f, 0x07, 0xb0, 0x68, 0xdb, 0x0b, 0xdc, - 0xd0, 0xf3, 0x0f, 0x54, 0x6f, 0x77, 0x3f, 0x82, 0xea, 0x6e, 0x8c, 0x12, 0x4a, 0x96, 0x60, 0x3a, - 0xfe, 0xb5, 0xf6, 0xb0, 0x45, 0xa5, 0xe9, 0x0e, 0x8f, 0x69, 0x31, 0xb9, 0xed, 0xb1, 0x32, 0x55, - 0x02, 0x24, 0xc8, 0xc8, 0x02, 0xe4, 0xb6, 0x3c, 0xff, 0xfe, 0x0e, 0xeb, 0xe1, 0xa1, 0x58, 0x46, - 0x3d, 0x14, 0x30, 0x75, 0x2d, 0x4a, 0x3c, 0xf2, 0x16, 0x8c, 0x97, 0x5b, 0x0f, 0x5c, 0xdf, 0x6b, - 0xed, 0xd3, 0x56, 0xa8, 0x5e, 0xe1, 0xd1, 0x18, 0xac, 0x45, 0xd4, 0xc4, 0x60, 0x76, 0x18, 0x29, - 0xd4, 0x43, 0xcf, 0x17, 0xee, 0x7a, 0x7c, 0x9c, 0x18, 0x40, 0x1b, 0x27, 0x06, 0x60, 0x9d, 0x68, - 0xd1, 0x1d, 0x61, 0xad, 0xc6, 0x4e, 0xf4, 0xe9, 0x8e, 0x16, 0x2e, 0x44, 0x77, 0x98, 0x8c, 0xb5, - 0xe8, 0x0e, 0x9e, 0xa0, 0x72, 0x71, 0xfb, 0x7d, 0xba, 0xd3, 0x75, 0xf6, 0x16, 0x68, 0xe6, 0xaf, - 0xf4, 0x9e, 0x70, 0x6c, 0x52, 0x1f, 0x6f, 0xc2, 0x2d, 0x3b, 0x03, 0x4c, 0xb8, 0xd7, 0x23, 0xe7, - 0xc8, 0x4c, 0x7c, 0x41, 0xca, 0x9d, 0x23, 0xd5, 0x55, 0xc5, 0x71, 0xce, 0xfe, 0xff, 0x8f, 0x35, - 0x89, 0x44, 0x27, 0x65, 0x06, 0xed, 0xa4, 0xec, 0x40, 0x9d, 0x44, 0x16, 0x61, 0x32, 0xca, 0x2a, - 0x53, 0x75, 0x44, 0x6c, 0x84, 0x70, 0x2e, 0x8c, 0x72, 0x04, 0xd9, 0x6d, 0x27, 0x54, 0x35, 0x7b, - 0x9d, 0x84, 0xbc, 0x0d, 0xe3, 0xc2, 0x43, 0x18, 0x39, 0x0c, 0xc7, 0xbe, 0x5f, 0xd2, 0x9d, 0x38, - 0x41, 0xaf, 0xa2, 0x93, 0x32, 0x4c, 0x55, 0xdd, 0x36, 0x6d, 0xba, 0x2d, 0x5a, 0x43, 0x63, 0xb7, - 0x98, 0x31, 0xe8, 0x69, 0xdb, 0x16, 0x25, 0x36, 0xb7, 0x83, 0x6b, 0x86, 0x08, 0x8d, 0x28, 0x39, - 0x59, 0x47, 0x8f, 0x33, 0x59, 0xcd, 0xbf, 0x97, 0x81, 0x17, 0xfa, 0x6d, 0x5c, 0xa4, 0xa6, 0x4f, - 0x96, 0x4b, 0x03, 0x6c, 0x76, 0x47, 0x4f, 0x97, 0x32, 0x4c, 0xad, 0xf9, 0xbb, 0x4e, 0xcb, 0xfd, - 0x26, 0x2a, 0x24, 0xd1, 0x8d, 0x3d, 0x7e, 0xb9, 0xa7, 0x94, 0xe8, 0x56, 0xbe, 0x04, 0xd1, 0xd9, - 0x07, 0x62, 0x1a, 0x7d, 0x5c, 0x9f, 0xee, 0x9b, 0x30, 0x56, 0xf4, 0x5a, 0x21, 0x7d, 0x14, 0x26, - 0x62, 0x71, 0x38, 0x30, 0x19, 0x8b, 0x23, 0x51, 0xcd, 0xdf, 0x35, 0xe0, 0x5c, 0xff, 0xcd, 0x8f, - 0x6c, 0xe8, 0xdd, 0x76, 0x65, 0xa0, 0x2d, 0xf3, 0xc8, 0x8e, 0x3b, 0xbb, 0x22, 0xbe, 0xb8, 0x0c, - 0x53, 0xe2, 0xfa, 0x44, 0xd7, 0xad, 0xb1, 0x03, 0xe5, 0xed, 0x4b, 0xb7, 0x7e, 0x9d, 0x20, 0x32, - 0xff, 0xd4, 0x80, 0x33, 0x3d, 0x77, 0x5a, 0x52, 0xd5, 0xbf, 0xe1, 0x95, 0xa3, 0xb6, 0xe6, 0xa3, - 0x9b, 0xff, 0x33, 0x86, 0x68, 0xff, 0xbb, 0x30, 0x51, 0xeb, 0x6c, 0x27, 0x33, 0x65, 0xe0, 0xca, - 0x09, 0x14, 0xb8, 0x76, 0x83, 0xa2, 0xc0, 0xd9, 0xf7, 0xcb, 0x1b, 0x22, 0x71, 0x83, 0xc7, 0x0f, - 0x08, 0xf8, 0xfd, 0x91, 0x93, 0x3c, 0xc6, 0x30, 0xa8, 0x8a, 0x47, 0x82, 0xc8, 0xfc, 0xcd, 0x0c, - 0x9c, 0xee, 0xb1, 0x9b, 0x93, 0x55, 0xfd, 0xeb, 0x2f, 0xf4, 0xdf, 0xfc, 0x8f, 0xfe, 0xf6, 0xff, - 0x42, 0x7e, 0x3b, 0x9a, 0x34, 0xc5, 0x14, 0x94, 0x07, 0x05, 0x61, 0xd2, 0x94, 0xd3, 0x35, 0xd0, - 0x4d, 0x9a, 0x12, 0x99, 0xbc, 0x09, 0x63, 0xec, 0x60, 0x1e, 0x2a, 0x47, 0x22, 0xee, 0x45, 0x2e, - 0x81, 0xea, 0x7c, 0x8d, 0x30, 0xd9, 0x66, 0xaa, 0x0f, 0xbc, 0x74, 0x50, 0xc4, 0xcd, 0x34, 0x31, - 0x5d, 0x74, 0x75, 0x5a, 0x27, 0x33, 0x7f, 0x26, 0x03, 0x53, 0xfc, 0x46, 0x86, 0x1f, 0xf7, 0x9e, - 0xd9, 0xa3, 0xf4, 0x5b, 0xda, 0x51, 0x5a, 0x06, 0x80, 0xaa, 0x9f, 0x36, 0xd0, 0x41, 0x7a, 0x0f, - 0x48, 0x37, 0x0d, 0xb1, 0xe4, 0xbd, 0xe1, 0x20, 0x67, 0xe8, 0xeb, 0x71, 0xac, 0x30, 0xa6, 0xc8, - 0xab, 0xdb, 0x68, 0xc8, 0x08, 0x2c, 0x8d, 0x87, 0xf9, 0x53, 0x19, 0x98, 0x54, 0x4c, 0x9e, 0xcf, - 0x6c, 0xc7, 0x7f, 0x41, 0xeb, 0xf8, 0xb9, 0xc8, 0x51, 0x2d, 0xfa, 0xb2, 0x81, 0xfa, 0xbd, 0x03, - 0x33, 0x5d, 0x24, 0x49, 0xcb, 0xb1, 0x31, 0x88, 0xe5, 0xf8, 0xf5, 0xee, 0x70, 0x4c, 0x9e, 0x89, - 0x2c, 0x0a, 0xc7, 0x54, 0xe3, 0x3f, 0xbf, 0x9d, 0x81, 0x59, 0xf1, 0xab, 0xd0, 0x69, 0xb8, 0x61, - 0xd1, 0x6b, 0xed, 0xb8, 0xbb, 0xcf, 0xec, 0x58, 0x14, 0xb4, 0xb1, 0x98, 0xd7, 0xc7, 0x42, 0xf9, - 0xc0, 0xde, 0x43, 0x62, 0xfe, 0x25, 0x80, 0xb9, 0x5e, 0x04, 0x03, 0xfb, 0xae, 0xc7, 0xbe, 0x78, - 0x99, 0x01, 0x7c, 0xf1, 0x96, 0x21, 0x8f, 0x55, 0xd5, 0x68, 0xc0, 0x3a, 0x21, 0x88, 0xd3, 0x20, - 0x9d, 0x7f, 0x7c, 0x38, 0xff, 0x82, 0xc3, 0xca, 0xec, 0x40, 0x14, 0xda, 0x1d, 0x5f, 0x3d, 0x6e, - 0x77, 0x51, 0x92, 0x5f, 0x36, 0x60, 0x0a, 0x81, 0xe5, 0x07, 0xb4, 0x15, 0x22, 0xb3, 0x21, 0xe1, - 0x6f, 0x16, 0x9d, 0xb4, 0x6b, 0xa1, 0xef, 0xb6, 0x76, 0xc5, 0x51, 0x7b, 0x5b, 0x1c, 0xb5, 0xdf, - 0xe6, 0x26, 0x82, 0xab, 0x75, 0x6f, 0xff, 0xda, 0xae, 0xef, 0x3c, 0x70, 0xb9, 0x35, 0xdf, 0x69, - 0x5e, 0x8b, 0xb3, 0x60, 0xb6, 0xdd, 0x44, 0x5e, 0x4b, 0xc1, 0x0a, 0xcd, 0x18, 0xbc, 0xa1, 0x14, - 0xab, 0x4d, 0x34, 0x33, 0xd1, 0x22, 0xf2, 0x65, 0x38, 0xcd, 0x43, 0x15, 0x99, 0x0e, 0xe2, 0xb6, - 0x3a, 0x5e, 0x27, 0x58, 0x74, 0xea, 0xf7, 0xd9, 0xbe, 0xc7, 0x2f, 0xf5, 0xf1, 0xcb, 0xeb, 0x51, - 0xa1, 0xbd, 0xcd, 0x4b, 0x15, 0x96, 0xbd, 0x18, 0x90, 0x25, 0x98, 0xe1, 0x45, 0x85, 0x4e, 0xe8, - 0xd5, 0xea, 0x4e, 0xd3, 0x6d, 0xed, 0xa2, 0x12, 0x99, 0xe3, 0xfb, 0xb1, 0xd3, 0x09, 0x3d, 0x3b, - 0xe0, 0x70, 0x85, 0x5f, 0x37, 0x11, 0xa9, 0xb0, 0x33, 0x9b, 0xd3, 0x58, 0x71, 0x1e, 0x15, 0x9d, - 0xb6, 0x53, 0x77, 0x43, 0x1e, 0xb2, 0x9f, 0xe5, 0x41, 0x5e, 0x3e, 0x75, 0x1a, 0xf6, 0xbe, 0xf3, - 0xc8, 0xae, 0x8b, 0x42, 0xfd, 0xd0, 0xa6, 0xd1, 0x45, 0xac, 0xdc, 0x56, 0xc4, 0x6a, 0x2c, 0xc9, - 0xca, 0x6d, 0xf5, 0x66, 0x15, 0xd3, 0x49, 0x56, 0xeb, 0x8e, 0xbf, 0x4b, 0x43, 0x7e, 0x19, 0x0e, - 0xe7, 0x8d, 0x4b, 0x86, 0xc2, 0x2a, 0xc4, 0x32, 0x1b, 0x2f, 0xc6, 0x93, 0xac, 0x14, 0x3a, 0x36, - 0xf3, 0xb6, 0x7c, 0x37, 0xa4, 0xea, 0x17, 0x8e, 0x63, 0xb3, 0xb0, 0xff, 0xd1, 0x1d, 0xa0, 0xd7, - 0x27, 0x76, 0x51, 0xc6, 0xdc, 0x94, 0x8f, 0x9c, 0xe8, 0xe2, 0x96, 0xfe, 0x95, 0x5d, 0x94, 0x11, - 0x37, 0xf5, 0x3b, 0x27, 0xf1, 0x3b, 0x15, 0x6e, 0x3d, 0x3e, 0xb4, 0x8b, 0x92, 0xac, 0xb2, 0x4e, - 0x0b, 0x69, 0x8b, 0xcd, 0x68, 0xe1, 0x0c, 0x30, 0x85, 0x4d, 0x7b, 0x59, 0xdc, 0x68, 0xe5, 0x7d, - 0x59, 0x6c, 0xa7, 0xb8, 0x06, 0x24, 0x89, 0xc9, 0x5f, 0x80, 0xe9, 0x8d, 0x80, 0xde, 0xae, 0x54, - 0x6b, 0x32, 0x38, 0x73, 0x6e, 0x1a, 0xef, 0xb9, 0xae, 0x1f, 0x21, 0x74, 0xae, 0xaa, 0x34, 0x98, - 0x8f, 0x92, 0x8f, 0x5b, 0x27, 0xa0, 0xf6, 0x8e, 0xdb, 0x0e, 0xa2, 0x30, 0x71, 0x75, 0xdc, 0x12, - 0x55, 0x99, 0x4b, 0x30, 0xd3, 0xc5, 0x86, 0x4c, 0x01, 0x30, 0xa0, 0xbd, 0xb1, 0x5a, 0x2b, 0xaf, - 0xe7, 0x9f, 0x23, 0x79, 0x98, 0xc0, 0xdf, 0xe5, 0xd5, 0xc2, 0xe2, 0x72, 0xb9, 0x94, 0x37, 0xc8, - 0x0c, 0x4c, 0x22, 0xa4, 0x54, 0xa9, 0x71, 0x50, 0xe6, 0xee, 0x50, 0x6e, 0x38, 0x3f, 0x62, 0xe5, - 0xf9, 0xd2, 0x0d, 0xd9, 0x02, 0xc0, 0x3d, 0xc5, 0xfc, 0x6b, 0x19, 0x38, 0x23, 0xb7, 0x15, 0x1a, - 0x3e, 0xf4, 0xfc, 0xfb, 0x6e, 0x6b, 0xf7, 0x19, 0xdf, 0x1d, 0x6e, 0x6b, 0xbb, 0xc3, 0xcb, 0x89, - 0x9d, 0x3a, 0xf1, 0x95, 0x7d, 0xb6, 0x88, 0x9f, 0xce, 0xc1, 0x8b, 0x7d, 0xa9, 0xc8, 0xfb, 0x6c, - 0x37, 0x77, 0x69, 0x2b, 0xac, 0x34, 0x9a, 0x74, 0xdd, 0xdd, 0xa7, 0x5e, 0x27, 0x14, 0xce, 0x27, - 0x17, 0x98, 0x7a, 0xcb, 0x93, 0x49, 0xda, 0x6e, 0xa3, 0x49, 0xed, 0x90, 0x17, 0x6b, 0xd3, 0xad, - 0x9b, 0x9a, 0xb1, 0x8c, 0x12, 0xde, 0x56, 0x5a, 0x21, 0xf5, 0x1f, 0x38, 0x3c, 0xa7, 0x9e, 0x60, - 0x79, 0x9f, 0xd2, 0xb6, 0xed, 0xb0, 0x52, 0xdb, 0x15, 0xc5, 0x3a, 0xcb, 0x2e, 0x6a, 0x72, 0x5b, - 0x61, 0x59, 0x64, 0xea, 0xf0, 0x8a, 0xf3, 0x48, 0xd8, 0xdd, 0x45, 0xda, 0x8a, 0x88, 0x25, 0xf7, - 0x50, 0xdf, 0x77, 0x1e, 0x59, 0xdd, 0x24, 0xe4, 0xab, 0x70, 0x52, 0x6c, 0x40, 0x22, 0xde, 0x49, - 0x7e, 0x31, 0x8f, 0xa6, 0x7a, 0xf5, 0xf1, 0xe1, 0xfc, 0x69, 0xb1, 0x7d, 0xd9, 0x32, 0x06, 0x2d, - 0xed, 0xab, 0xd3, 0xb9, 0x90, 0x75, 0xb6, 0x21, 0x27, 0xba, 0x63, 0x85, 0x06, 0x81, 0xb3, 0x2b, - 0x6d, 0xf4, 0xdc, 0x03, 0x4c, 0xe9, 0x4c, 0x7b, 0x9f, 0x97, 0x5b, 0x3d, 0x29, 0xc9, 0x12, 0x4c, - 0x6d, 0xd1, 0x6d, 0x75, 0x7c, 0x46, 0x22, 0x51, 0x95, 0x7f, 0x48, 0xb7, 0x7b, 0x0f, 0x4e, 0x82, - 0x8e, 0xb8, 0x30, 0x83, 0xce, 0xc6, 0xcb, 0x6e, 0x10, 0xd2, 0x16, 0xf5, 0x31, 0x22, 0x75, 0x14, - 0x85, 0xc1, 0x5c, 0xac, 0x21, 0xeb, 0xe5, 0x8b, 0x2f, 0x3d, 0x3e, 0x9c, 0x7f, 0x91, 0x3b, 0x2e, - 0x37, 0x05, 0xdc, 0x4e, 0x64, 0x96, 0xed, 0xe6, 0x4a, 0xbe, 0x0e, 0xd3, 0x96, 0xd7, 0x09, 0xdd, - 0xd6, 0x6e, 0x2d, 0xf4, 0x9d, 0x90, 0xee, 0xf2, 0x0d, 0x29, 0x0e, 0x7d, 0x4d, 0x94, 0x0a, 0xe3, - 0x22, 0x07, 0xda, 0x81, 0x80, 0x6a, 0x3b, 0x82, 0x4e, 0x40, 0xbe, 0x06, 0x53, 0x3c, 0xe6, 0x24, - 0xaa, 0x60, 0x4c, 0x4b, 0xc2, 0xa6, 0x17, 0x6e, 0x5e, 0xe7, 0x07, 0x54, 0x1e, 0xbb, 0x92, 0x56, - 0x41, 0x82, 0x1b, 0xf9, 0x50, 0x74, 0x56, 0xd5, 0x6d, 0xed, 0x46, 0xd3, 0x18, 0xb0, 0xe7, 0xdf, - 0x88, 0xbb, 0xa4, 0xcd, 0x9a, 0x2b, 0xa7, 0x71, 0x8f, 0x3b, 0x9f, 0x6e, 0x3e, 0x24, 0x84, 0x17, - 0x0b, 0x41, 0xe0, 0x06, 0xa1, 0x70, 0xd1, 0x2a, 0x3f, 0xa2, 0xf5, 0x0e, 0x43, 0xde, 0xf2, 0xfc, - 0xfb, 0xd4, 0xe7, 0x4e, 0x02, 0xc3, 0x8b, 0x57, 0x1f, 0x1f, 0xce, 0x5f, 0x71, 0x10, 0xd1, 0x16, - 0x5e, 0x5d, 0x36, 0x95, 0xa8, 0xf6, 0x43, 0x8e, 0xab, 0x7c, 0x43, 0x7f, 0xa6, 0xe6, 0xa1, 0x01, - 0xf9, 0x64, 0xb7, 0x90, 0x2f, 0xc1, 0x18, 0xbf, 0x7c, 0xa0, 0xc1, 0x9e, 0x88, 0x75, 0x90, 0xd6, - 0xf6, 0x08, 0xae, 0x13, 0x09, 0xd7, 0x56, 0x7e, 0xb5, 0x41, 0xd5, 0xeb, 0x77, 0x74, 0x6d, 0x95, - 0x44, 0xa4, 0x01, 0x13, 0xfc, 0xcb, 0x29, 0xc6, 0x90, 0x8b, 0x3b, 0xe8, 0x97, 0xd4, 0x99, 0x26, - 0x8a, 0x12, 0xfc, 0x31, 0xcc, 0x5a, 0xf4, 0x2f, 0x47, 0xd0, 0xaa, 0xd0, 0xb8, 0x2e, 0x02, 0xe4, - 0x24, 0xa1, 0x79, 0x06, 0x4e, 0xf7, 0x68, 0xb3, 0xf9, 0x00, 0xed, 0xb2, 0x3d, 0x6a, 0x24, 0x5f, - 0x82, 0x59, 0x24, 0x2c, 0x7a, 0xad, 0x16, 0xad, 0x87, 0xb8, 0xb4, 0xa5, 0x69, 0x27, 0xcb, 0xad, - 0xf6, 0xfc, 0x7b, 0xeb, 0x11, 0x82, 0x9d, 0xb4, 0xf0, 0xa4, 0x72, 0x30, 0x7f, 0x21, 0x03, 0x73, - 0x42, 0x5a, 0x58, 0xb4, 0xee, 0xf9, 0x8d, 0x67, 0x7f, 0x77, 0x2a, 0x6b, 0xbb, 0xd3, 0x85, 0x28, - 0x7e, 0x2d, 0xed, 0x23, 0xfb, 0x6c, 0x4e, 0xbf, 0x69, 0xc0, 0x0b, 0xfd, 0x88, 0x58, 0xef, 0x44, - 0x31, 0xf3, 0x63, 0x5d, 0xb1, 0xf1, 0x6d, 0x38, 0x81, 0x03, 0x5a, 0xdc, 0xa3, 0xf5, 0xfb, 0xc1, - 0x92, 0x17, 0x84, 0xe8, 0x02, 0x93, 0xd1, 0xa2, 0x09, 0x16, 0x3d, 0x8f, 0xdf, 0xd3, 0xe1, 0x65, - 0xa6, 0xf1, 0xfd, 0xc3, 0x79, 0x60, 0x20, 0x1e, 0xe5, 0x2e, 0x8c, 0xc5, 0x8f, 0x0e, 0xec, 0x3a, - 0xf2, 0xe0, 0x51, 0xfd, 0xf7, 0xe9, 0x41, 0x60, 0xa5, 0xb1, 0x46, 0x77, 0x86, 0x42, 0x27, 0xdc, - 0xab, 0xfa, 0x74, 0x87, 0xfa, 0xb4, 0x55, 0xa7, 0x9f, 0x32, 0x77, 0x06, 0xfd, 0xe3, 0x06, 0xb2, - 0x06, 0xfc, 0xcf, 0x00, 0xb3, 0x69, 0x64, 0xac, 0x5f, 0x94, 0x03, 0x68, 0x32, 0x87, 0xfe, 0x5f, - 0x34, 0x60, 0xa2, 0x46, 0xeb, 0x5e, 0xab, 0x71, 0x1b, 0xef, 0x67, 0x44, 0xef, 0xd8, 0x7c, 0x03, - 0x66, 0x70, 0x7b, 0x27, 0x71, 0x71, 0xf3, 0x83, 0xc3, 0xf9, 0x2f, 0x0e, 0x76, 0xee, 0xab, 0x7b, - 0x18, 0x6b, 0x16, 0x62, 0x12, 0xb5, 0xa8, 0x0a, 0xf4, 0x73, 0xd3, 0x2a, 0x25, 0x8b, 0x30, 0x29, - 0x96, 0xab, 0xa7, 0xa6, 0x4c, 0xe0, 0xc1, 0x7a, 0xb2, 0xa0, 0x2b, 0x47, 0x8c, 0x46, 0x42, 0x6e, - 0x40, 0x76, 0x63, 0xe1, 0xb6, 0x18, 0x03, 0x19, 0xc8, 0xb8, 0xb1, 0x70, 0x1b, 0x4d, 0x4b, 0x4c, - 0x5d, 0x9f, 0xec, 0x2c, 0x68, 0x57, 0x26, 0x1b, 0x0b, 0xb7, 0xc9, 0x8f, 0xc0, 0xc9, 0x92, 0x1b, - 0x88, 0x2a, 0xb8, 0x63, 0x4d, 0x03, 0x1d, 0x49, 0x47, 0x7a, 0xcc, 0xde, 0xcf, 0xa5, 0xce, 0xde, - 0x97, 0x1a, 0x11, 0x13, 0x9b, 0x7b, 0xed, 0x34, 0x92, 0xa9, 0x21, 0xd2, 0xeb, 0x21, 0x1f, 0xc1, - 0x14, 0x9a, 0x46, 0xd1, 0xd7, 0x08, 0xd3, 0x53, 0x8d, 0xf6, 0xa8, 0xf9, 0x33, 0xa9, 0x35, 0x9f, - 0x45, 0x4b, 0xab, 0x8d, 0x1e, 0x4b, 0x98, 0xca, 0x4a, 0x3b, 0x41, 0x6b, 0x9c, 0xc9, 0x5d, 0x98, - 0x16, 0xaa, 0xcc, 0xda, 0xce, 0xfa, 0x1e, 0x2d, 0x39, 0x07, 0xe2, 0x32, 0x0d, 0x4f, 0x47, 0x42, - 0xff, 0xb1, 0xbd, 0x1d, 0x3b, 0xdc, 0xa3, 0x76, 0xc3, 0xd1, 0x36, 0xfd, 0x04, 0x21, 0xf9, 0x21, - 0x18, 0x5f, 0xf6, 0xea, 0x4c, 0x8b, 0x45, 0xc9, 0x30, 0x86, 0x7c, 0x3e, 0xc0, 0x84, 0xee, 0x1c, - 0x9c, 0x50, 0x4d, 0x7e, 0x70, 0x38, 0xff, 0xd6, 0x71, 0x27, 0x8d, 0x52, 0x81, 0xa5, 0xd6, 0x46, - 0x8a, 0x90, 0xdb, 0xa2, 0xdb, 0xec, 0x6b, 0x93, 0xc9, 0x88, 0x25, 0x58, 0xdc, 0x6f, 0x8a, 0x5f, - 0xda, 0xfd, 0xa6, 0x80, 0x11, 0x1f, 0x66, 0xb0, 0x7f, 0xaa, 0x4e, 0x10, 0x3c, 0xf4, 0xfc, 0x06, - 0xe6, 0xc2, 0x1b, 0xef, 0xd1, 0xf9, 0x0b, 0xa9, 0x9d, 0xff, 0x02, 0xef, 0xfc, 0xb6, 0xc2, 0x41, - 0x55, 0xc6, 0xba, 0xd8, 0x93, 0xaf, 0xc3, 0x94, 0x45, 0xbf, 0xd1, 0x71, 0x7d, 0xba, 0x72, 0xbb, - 0x80, 0xab, 0x72, 0x42, 0x73, 0xc7, 0xd5, 0x0b, 0xb9, 0xc6, 0xe7, 0x73, 0x98, 0xb4, 0xe6, 0xd8, - 0xfb, 0x3b, 0x8e, 0x6e, 0xcd, 0x57, 0x49, 0x48, 0x15, 0xc6, 0x4b, 0xf4, 0x81, 0x5b, 0xa7, 0xe8, - 0x34, 0x28, 0x2e, 0xed, 0xa3, 0xe4, 0xa8, 0x71, 0x09, 0xb7, 0x6b, 0x34, 0x10, 0xc0, 0x5d, 0x10, - 0xf5, 0xf8, 0x83, 0x08, 0x91, 0xdc, 0x84, 0x6c, 0xa5, 0x54, 0x15, 0x41, 0xb5, 0xd2, 0x17, 0xaf, - 0xd2, 0xa8, 0xca, 0x8c, 0x98, 0x78, 0x1b, 0xe9, 0x36, 0xb4, 0x1b, 0xff, 0x4a, 0xa9, 0x4a, 0x76, - 0x60, 0x12, 0x3b, 0x60, 0x89, 0x3a, 0xbc, 0x6f, 0xa7, 0x7b, 0xf4, 0xed, 0xd5, 0xd4, 0xbe, 0x9d, - 0xe3, 0x7d, 0xbb, 0x27, 0xa8, 0xb5, 0x14, 0x7f, 0x2a, 0x5b, 0xa6, 0x1e, 0x96, 0xe8, 0x8e, 0xd3, - 0x69, 0x4a, 0x93, 0xd6, 0xfa, 0xfa, 0xf2, 0x5c, 0x3e, 0x56, 0x0f, 0x1b, 0xbc, 0x30, 0xea, 0xbf, - 0xde, 0x2e, 0x41, 0xdd, 0x7c, 0xc4, 0x59, 0x77, 0x46, 0x74, 0xb2, 0x28, 0x58, 0xb9, 0x5d, 0x30, - 0xff, 0x63, 0x03, 0xc5, 0x0d, 0xb9, 0x82, 0xa1, 0x7f, 0xd1, 0x95, 0x1b, 0x5a, 0xed, 0x9c, 0x76, - 0x22, 0x99, 0x14, 0x47, 0x21, 0xaf, 0xc3, 0xc8, 0x6d, 0xa7, 0x4e, 0x43, 0x79, 0x6d, 0x81, 0xc8, - 0x3b, 0x08, 0x51, 0x4d, 0x7c, 0x1c, 0x87, 0x69, 0x42, 0x7c, 0x18, 0x0a, 0xf1, 0xc3, 0x31, 0xc5, - 0x82, 0xbc, 0xb5, 0x40, 0x4d, 0x48, 0x0c, 0x9f, 0xf2, 0xb2, 0x8c, 0x5d, 0xd7, 0x12, 0xbb, 0xa6, - 0x72, 0x30, 0xff, 0x17, 0x23, 0x5e, 0x3f, 0xe4, 0x55, 0x18, 0xb2, 0xaa, 0x51, 0xfb, 0xb9, 0xd7, - 0x70, 0xa2, 0xf9, 0x88, 0x40, 0x3e, 0x84, 0x93, 0x0a, 0x1f, 0x1c, 0x03, 0xda, 0x60, 0x0d, 0xe2, - 0x1f, 0xf3, 0x0a, 0xba, 0xb5, 0x2a, 0x2d, 0x71, 0x38, 0x46, 0xa2, 0x45, 0xe9, 0x3c, 0x50, 0xed, - 0x8b, 0x0b, 0x4a, 0xb4, 0xe5, 0x72, 0xde, 0xca, 0xc7, 0xaa, 0xbc, 0x1b, 0x88, 0x90, 0xfc, 0xd8, - 0x34, 0x0e, 0xdc, 0xb3, 0xd5, 0xfc, 0x6d, 0x43, 0x5b, 0x17, 0xd1, 0x23, 0x1d, 0xc6, 0x11, 0x8f, - 0x74, 0xdc, 0x02, 0x28, 0x74, 0x42, 0xaf, 0xdc, 0xf2, 0xbd, 0x26, 0x3f, 0x3b, 0x8b, 0x7c, 0x6a, - 0x68, 0x11, 0xa4, 0x08, 0xd6, 0x1c, 0xf0, 0x22, 0x64, 0xb2, 0x0c, 0xf9, 0xf2, 0x3d, 0x74, 0x5d, - 0x8e, 0xbb, 0x8a, 0x7f, 0x0e, 0x8a, 0x5b, 0x7a, 0x9f, 0x6d, 0x10, 0x3d, 0x7a, 0xa9, 0x8b, 0xd2, - 0xfc, 0x3f, 0x0c, 0xe5, 0x61, 0x98, 0x67, 0x54, 0xd7, 0xb9, 0xa9, 0xe9, 0x3a, 0x32, 0x3e, 0x3f, - 0xfa, 0x2a, 0x56, 0x96, 0xaa, 0x9f, 0x4e, 0x2b, 0x5e, 0x0a, 0x08, 0xf8, 0x56, 0x06, 0xc6, 0x37, - 0x02, 0xea, 0xf3, 0xcb, 0xa3, 0x4f, 0x57, 0x68, 0x77, 0xf4, 0x5d, 0x03, 0x05, 0xdf, 0xfe, 0x81, - 0x81, 0x46, 0x45, 0x95, 0x82, 0xf5, 0x06, 0x26, 0x98, 0x56, 0x7a, 0xa3, 0x13, 0x50, 0xdf, 0x42, - 0x28, 0x8f, 0x12, 0x5c, 0xd6, 0xa3, 0x04, 0x9b, 0x16, 0x83, 0x91, 0x2f, 0xc2, 0xf0, 0x06, 0x9a, - 0x48, 0xf4, 0x18, 0x91, 0x88, 0x3f, 0x16, 0x72, 0x11, 0xd1, 0x61, 0x7f, 0xaa, 0x12, 0x0e, 0xcb, - 0x48, 0x0d, 0x46, 0x8b, 0x3e, 0xc5, 0x27, 0x60, 0x86, 0x06, 0xf7, 0x73, 0xae, 0x73, 0x92, 0xa4, - 0x9f, 0xb3, 0xe0, 0x64, 0xfe, 0x7c, 0x06, 0x48, 0xfc, 0x8d, 0x98, 0x3b, 0x35, 0x78, 0x66, 0x07, - 0xfd, 0x3d, 0x6d, 0xd0, 0x5f, 0xec, 0x1a, 0x74, 0xfe, 0x79, 0x03, 0x8d, 0xfd, 0xef, 0x18, 0x70, - 0x2a, 0x9d, 0x90, 0x5c, 0x80, 0x91, 0xb5, 0xf5, 0xaa, 0x0c, 0x33, 0x12, 0x9f, 0xe2, 0xb5, 0xf1, - 0x4c, 0x65, 0x89, 0x22, 0xf2, 0x06, 0x8c, 0xbc, 0x6f, 0x15, 0x99, 0x14, 0x54, 0x72, 0x9a, 0x7d, - 0xc3, 0xb7, 0xeb, 0xba, 0x20, 0x14, 0x48, 0xea, 0xd8, 0x66, 0x9f, 0xda, 0xd8, 0x7e, 0x3b, 0x03, - 0xd3, 0x85, 0x7a, 0x9d, 0x06, 0x01, 0xdb, 0x62, 0x69, 0x10, 0x3e, 0xb3, 0x03, 0x9b, 0x1e, 0x40, - 0xa4, 0x7d, 0xdb, 0x40, 0xa3, 0xfa, 0xbb, 0x06, 0x9c, 0x94, 0x54, 0x0f, 0x5c, 0xfa, 0x70, 0x7d, - 0xcf, 0xa7, 0xc1, 0x9e, 0xd7, 0x6c, 0x0c, 0x9c, 0x38, 0x91, 0xa9, 0x19, 0x98, 0xc3, 0x49, 0xbd, - 0x49, 0xdc, 0x41, 0x88, 0xa6, 0x66, 0xf0, 0x3c, 0x4f, 0xd7, 0x60, 0xb4, 0xd0, 0x6e, 0xfb, 0xde, - 0x03, 0xbe, 0xec, 0x27, 0x85, 0xdb, 0x37, 0x07, 0x69, 0x6e, 0xe2, 0x1c, 0xc4, 0x9a, 0x51, 0xa2, - 0x2d, 0x1e, 0x10, 0x3f, 0xc9, 0x9b, 0xd1, 0xa0, 0x2d, 0xf5, 0xb0, 0x80, 0xe5, 0xe6, 0xcf, 0x0e, - 0xc1, 0x84, 0xfa, 0x21, 0xc4, 0xe4, 0x09, 0xd1, 0x3c, 0x5f, 0x8d, 0xc6, 0x70, 0x10, 0x62, 0x89, - 0x92, 0x38, 0x88, 0x29, 0x73, 0x64, 0x10, 0xd3, 0x16, 0x4c, 0x56, 0x7d, 0xaf, 0xed, 0x05, 0xb4, - 0xc1, 0x5f, 0xf1, 0xe2, 0x52, 0xeb, 0x84, 0xa2, 0x4a, 0xb3, 0x3e, 0xc7, 0xeb, 0x12, 0x3c, 0x48, - 0xb6, 0x05, 0xb6, 0x9d, 0x7c, 0xe3, 0x4b, 0xe7, 0xc3, 0x6f, 0x62, 0x9d, 0x40, 0xa4, 0xa8, 0x88, - 0x6e, 0x62, 0x19, 0x44, 0xbf, 0x89, 0x65, 0x10, 0x75, 0x59, 0x0c, 0x3f, 0xad, 0x65, 0x41, 0x7e, - 0xde, 0x80, 0xf1, 0x42, 0xab, 0x25, 0x82, 0xa3, 0x8e, 0xf0, 0x0e, 0xff, 0x8a, 0xb8, 0x8c, 0x7d, - 0xeb, 0x63, 0x5d, 0xc6, 0xae, 0xfb, 0x8e, 0x1b, 0x06, 0xa8, 0xd2, 0xc4, 0x15, 0xaa, 0x67, 0x01, - 0xa5, 0x1d, 0xe4, 0x2d, 0xc8, 0x47, 0xf3, 0xb1, 0xd2, 0x6a, 0xd0, 0x47, 0x34, 0x98, 0x1b, 0x3d, - 0x9f, 0xbd, 0x34, 0x29, 0xf2, 0xcc, 0xa8, 0x2a, 0x4c, 0x12, 0xd1, 0xfc, 0xb6, 0x01, 0xa7, 0xd4, - 0x09, 0x51, 0xeb, 0x6c, 0xef, 0xbb, 0xa8, 0x50, 0x93, 0xab, 0x30, 0x26, 0xc6, 0x2b, 0xd2, 0x44, - 0xbb, 0xf3, 0xb7, 0xc5, 0x28, 0xa4, 0xcc, 0x86, 0x88, 0xf1, 0x10, 0x56, 0xa6, 0x13, 0x89, 0xe5, - 0xc6, 0x8a, 0x16, 0xe7, 0x44, 0x67, 0xe7, 0x7d, 0xfc, 0xad, 0x8f, 0x1d, 0x83, 0x98, 0xef, 0xc2, - 0x8c, 0xde, 0xca, 0x1a, 0xc5, 0xc4, 0x56, 0xf2, 0xd3, 0x8c, 0xf4, 0x4f, 0x93, 0xe5, 0xe6, 0x16, - 0x90, 0x2e, 0xfa, 0x00, 0x3d, 0x0a, 0x68, 0x28, 0x3d, 0x5e, 0xa4, 0x3d, 0xbf, 0x0b, 0x31, 0x7a, - 0x1a, 0x71, 0x5c, 0xed, 0x6e, 0x24, 0x35, 0x7f, 0x63, 0x02, 0x4e, 0xa4, 0x88, 0x8e, 0x23, 0xb6, - 0xf6, 0x79, 0x7d, 0xf1, 0x8c, 0x45, 0x81, 0x17, 0x72, 0xc9, 0xbc, 0x2b, 0x1f, 0xbc, 0xeb, 0xb3, - 0x54, 0xfa, 0xbd, 0x82, 0xf7, 0x49, 0x6c, 0xef, 0x6a, 0x6c, 0xd4, 0xf0, 0x53, 0x8b, 0x8d, 0x5a, - 0x84, 0x49, 0xf1, 0x55, 0x62, 0x29, 0x8f, 0xc4, 0x06, 0x25, 0x9f, 0x17, 0xd8, 0x5d, 0x4b, 0x5a, - 0x27, 0xe1, 0x3c, 0x02, 0xaf, 0xf9, 0x80, 0x0a, 0x1e, 0xa3, 0x2a, 0x0f, 0x2c, 0x48, 0xe5, 0xa1, - 0x90, 0x90, 0x5f, 0xc3, 0x9c, 0xc8, 0x08, 0x51, 0xd7, 0x73, 0xae, 0xdf, 0x7a, 0x6e, 0x3c, 0x9d, - 0xf5, 0xfc, 0xa2, 0x6c, 0x63, 0xfa, 0xba, 0x4e, 0x69, 0x16, 0xf9, 0x15, 0x03, 0x66, 0x78, 0x80, - 0x8e, 0xda, 0xd8, 0xbe, 0x41, 0x17, 0xf5, 0xa7, 0xd3, 0xd8, 0x17, 0x02, 0xac, 0xb6, 0x47, 0x5b, - 0xbb, 0x1b, 0x45, 0xbe, 0x0c, 0x10, 0xad, 0xa8, 0x60, 0x0e, 0xf4, 0xa4, 0x14, 0x69, 0xdb, 0x67, - 0x9c, 0xba, 0x2d, 0x8c, 0xe8, 0xb4, 0x4c, 0xd8, 0x11, 0x94, 0xfc, 0x08, 0xcc, 0xb2, 0xf5, 0x12, - 0x41, 0x44, 0x38, 0xe1, 0xdc, 0x38, 0xd6, 0xf2, 0xd9, 0xde, 0x5b, 0xfb, 0xd5, 0x34, 0x32, 0x9e, - 0xb8, 0x22, 0x7e, 0x0b, 0x23, 0xdc, 0x57, 0xcf, 0xac, 0x69, 0x14, 0x18, 0x9f, 0x8b, 0xad, 0xe7, - 0x89, 0xd2, 0x7a, 0xc8, 0xb7, 0x33, 0x72, 0x2d, 0x70, 0xf9, 0x16, 0xe8, 0x0e, 0xde, 0x08, 0x22, - 0xef, 0x03, 0x89, 0x22, 0x5b, 0x38, 0x8c, 0xca, 0x24, 0x6a, 0xdc, 0xba, 0x14, 0x47, 0xc8, 0xf8, - 0xb2, 0x58, 0x9d, 0x24, 0xdd, 0xc4, 0x84, 0xc2, 0xac, 0xf8, 0x68, 0x06, 0x95, 0x39, 0x97, 0x83, - 0xb9, 0x29, 0x2d, 0x58, 0x33, 0x2e, 0x89, 0x1f, 0xcd, 0x50, 0x12, 0x37, 0x6b, 0xe7, 0xf6, 0x34, - 0x76, 0xe4, 0x26, 0x8c, 0x2d, 0x7b, 0xbb, 0x6e, 0x6b, 0x49, 0xfa, 0x49, 0x88, 0x3b, 0xdb, 0x26, - 0x03, 0xda, 0x7b, 0xba, 0xb7, 0x43, 0x8c, 0xca, 0xb4, 0xda, 0x92, 0x7f, 0x60, 0x75, 0x5a, 0x68, - 0x03, 0x12, 0xef, 0x32, 0x34, 0xfc, 0x03, 0xdb, 0xef, 0xe8, 0x6e, 0xf8, 0x88, 0x44, 0xbe, 0x0e, - 0xe3, 0x2b, 0xce, 0x23, 0x69, 0x02, 0x9a, 0x9b, 0x19, 0xfc, 0xe1, 0xca, 0x7d, 0xe7, 0x91, 0xdd, - 0xe8, 0x24, 0x33, 0x99, 0xf1, 0x87, 0x2b, 0x15, 0x96, 0x67, 0xb7, 0xe1, 0x4c, 0xcf, 0x69, 0x91, - 0x92, 0x85, 0xe3, 0x9a, 0x9e, 0x85, 0xe3, 0x4c, 0xaf, 0xed, 0x23, 0x50, 0x33, 0x71, 0xfc, 0xa2, - 0x91, 0xd8, 0x2f, 0x84, 0x72, 0xc7, 0x13, 0xa2, 0xf6, 0xda, 0x50, 0x33, 0xf8, 0x2e, 0x02, 0xdf, - 0x51, 0x32, 0xb1, 0x52, 0x99, 0x78, 0x6d, 0x88, 0xef, 0x2d, 0x4f, 0xb8, 0x75, 0x98, 0xff, 0x22, - 0x0b, 0x84, 0xb7, 0xb0, 0xe8, 0xb4, 0x9d, 0x6d, 0xb7, 0xe9, 0x86, 0x2e, 0x46, 0x3e, 0xe5, 0x05, - 0x0b, 0x67, 0xbb, 0x49, 0xd5, 0xb0, 0x41, 0xe1, 0x99, 0x14, 0x95, 0xd9, 0x49, 0x35, 0xb0, 0x8b, - 0xb0, 0xc7, 0x64, 0xcf, 0x3c, 0xc9, 0x64, 0xff, 0x3a, 0x3c, 0x5f, 0x68, 0xe3, 0x5b, 0x06, 0xb2, - 0x96, 0xdb, 0x9e, 0x2f, 0xa7, 0xa9, 0xe6, 0x41, 0xec, 0x44, 0x68, 0x5d, 0x2d, 0xed, 0xc7, 0x42, - 0xd9, 0xa9, 0xaa, 0xbe, 0xb7, 0xdf, 0x0e, 0xd5, 0x10, 0x0c, 0xb9, 0x53, 0xb5, 0xb1, 0x24, 0x65, - 0xa7, 0xe2, 0x24, 0x92, 0x87, 0xeb, 0xcb, 0x9d, 0x0a, 0xb3, 0xa3, 0xc6, 0x3c, 0x5c, 0x9f, 0xf6, - 0xd8, 0xed, 0x22, 0x12, 0xf2, 0x36, 0x8c, 0x17, 0x3a, 0xa1, 0x27, 0x18, 0x0b, 0x97, 0xba, 0xd8, - 0xf9, 0x4d, 0x34, 0x45, 0x53, 0x0c, 0x63, 0x74, 0xf3, 0x3f, 0xca, 0xc0, 0x99, 0xee, 0xe1, 0x15, - 0xa5, 0xd1, 0x24, 0x33, 0x8e, 0x98, 0x64, 0x69, 0xb3, 0x81, 0xdb, 0xdc, 0x9e, 0xda, 0x6c, 0xe0, - 0x4f, 0x22, 0x7c, 0xcc, 0xd9, 0x50, 0x83, 0x71, 0x55, 0xe2, 0x0d, 0x7d, 0x5c, 0x89, 0xa7, 0x72, - 0xc1, 0xc7, 0x05, 0x94, 0xdc, 0xf5, 0x6f, 0xa4, 0x39, 0xf0, 0xf2, 0x6c, 0x32, 0x1c, 0xac, 0xfb, - 0xee, 0xca, 0xc3, 0x72, 0x26, 0xf5, 0xb0, 0x2c, 0x13, 0xe3, 0x64, 0x53, 0x13, 0xe3, 0x94, 0x60, - 0xba, 0xd6, 0xd9, 0x96, 0x75, 0x23, 0xe2, 0x90, 0x16, 0x83, 0x60, 0xcb, 0xf6, 0xeb, 0xd1, 0xa5, - 0x1a, 0x89, 0xf9, 0x93, 0x19, 0x98, 0xa8, 0x36, 0x3b, 0xbb, 0x6e, 0xab, 0xe4, 0x84, 0xce, 0x33, - 0x7b, 0x7e, 0xbf, 0xa5, 0x9d, 0xdf, 0x23, 0x3f, 0xf5, 0xe8, 0xc3, 0x06, 0x3a, 0xbc, 0x7f, 0xd7, - 0x80, 0xe9, 0x98, 0x84, 0x8b, 0xf8, 0x25, 0x18, 0x62, 0x3f, 0xc4, 0x71, 0xe0, 0x7c, 0x17, 0x63, - 0x9e, 0xe6, 0x39, 0xfa, 0x4b, 0x9c, 0xa8, 0xf5, 0xbc, 0xa4, 0xc8, 0xe1, 0xec, 0xe7, 0xf8, 0xa3, - 0x90, 0xc7, 0x4f, 0xef, 0xfc, 0xf7, 0x0d, 0xc8, 0x27, 0xbf, 0x84, 0xdc, 0x83, 0x51, 0xc6, 0xc9, - 0x8d, 0x1e, 0x98, 0x7c, 0xb9, 0xc7, 0x37, 0x5f, 0x15, 0x68, 0xbc, 0x79, 0xd8, 0xf9, 0x94, 0x43, - 0x2c, 0xc9, 0xe1, 0xac, 0x05, 0x13, 0x2a, 0x56, 0x4a, 0xeb, 0x5e, 0xd7, 0xf7, 0xb5, 0x53, 0xe9, - 0xfd, 0xa0, 0x25, 0xa5, 0xd6, 0x5a, 0x2d, 0x76, 0xb4, 0x41, 0x9f, 0x17, 0x5e, 0x88, 0xd3, 0xa7, - 0xa9, 0xf3, 0x2c, 0x65, 0x42, 0x47, 0x78, 0xec, 0xe0, 0xcf, 0xeb, 0x53, 0xd3, 0xa1, 0xb6, 0x11, - 0xa2, 0x6a, 0x0e, 0x1c, 0xc7, 0xfc, 0x1b, 0x59, 0x38, 0x15, 0x37, 0x8f, 0x3f, 0xb6, 0x5c, 0x75, - 0x7c, 0x67, 0x3f, 0x38, 0x62, 0x05, 0x5c, 0xea, 0x6a, 0x1a, 0xe6, 0xd4, 0x94, 0x4d, 0x53, 0x1a, - 0x64, 0x26, 0x1a, 0x84, 0x16, 0x13, 0xde, 0x20, 0xd9, 0x0c, 0x72, 0x0f, 0xb2, 0x35, 0x1a, 0x0a, - 0x59, 0x74, 0xb1, 0xab, 0x57, 0xd5, 0x76, 0x5d, 0xad, 0xd1, 0x90, 0x0f, 0x22, 0x0f, 0x33, 0xa4, - 0x5a, 0xfe, 0x0c, 0x76, 0xf6, 0xdd, 0x82, 0x91, 0xf2, 0xa3, 0x36, 0xad, 0x87, 0x22, 0x1b, 0xdb, - 0xe5, 0xfe, 0xfc, 0x38, 0xae, 0x92, 0xf3, 0x8d, 0x22, 0x40, 0xed, 0x2c, 0x8e, 0x72, 0xf6, 0x26, - 0xe4, 0x64, 0xe5, 0xc7, 0xca, 0x5d, 0x76, 0x0b, 0xc6, 0x95, 0x4a, 0x8e, 0x35, 0xe9, 0xff, 0xd4, - 0x80, 0x11, 0xb6, 0x13, 0x6c, 0xde, 0x7c, 0x46, 0x25, 0xd2, 0x0d, 0x4d, 0x22, 0xcd, 0x28, 0x29, - 0x7a, 0x70, 0x5d, 0xde, 0x3c, 0x42, 0x16, 0x1d, 0xb2, 0x7d, 0x25, 0x42, 0x26, 0x77, 0x60, 0x54, - 0xdc, 0xd8, 0x0a, 0xdf, 0x32, 0x35, 0xe7, 0x8f, 0xbc, 0xcb, 0x8d, 0x8e, 0x14, 0x5e, 0x3b, 0x79, - 0x06, 0x93, 0xd4, 0xa4, 0x14, 0xe7, 0x6b, 0xd0, 0x9e, 0x81, 0xf0, 0xd0, 0xb1, 0x9e, 0xe7, 0xac, - 0x51, 0x1e, 0x58, 0xe9, 0x11, 0xfd, 0x58, 0x10, 0x56, 0xc4, 0x6c, 0x3f, 0x26, 0xa7, 0x64, 0x0e, - 0xfe, 0x54, 0x03, 0xe3, 0xbf, 0x22, 0x3c, 0xdb, 0x8b, 0x6c, 0xd8, 0x3b, 0x30, 0x71, 0xdb, 0xf3, - 0x1f, 0x3a, 0x3e, 0x8f, 0xe1, 0xc7, 0xcf, 0xe4, 0xb7, 0x75, 0x93, 0x3b, 0x1c, 0xce, 0xb3, 0x00, - 0xfc, 0xe0, 0x70, 0x7e, 0x68, 0xd1, 0xf3, 0x9a, 0x96, 0x86, 0x4e, 0xd6, 0x60, 0x72, 0xc5, 0x79, - 0xa4, 0xdc, 0x21, 0x73, 0x4f, 0xd9, 0xcb, 0x8f, 0x0f, 0xe7, 0xcf, 0x30, 0x5d, 0xff, 0xe8, 0xfb, - 0x63, 0x9d, 0x9e, 0xb8, 0x30, 0x55, 0xf5, 0xfc, 0x50, 0x54, 0xc2, 0x0e, 0x90, 0xd9, 0x1e, 0x37, - 0xe0, 0xd7, 0x52, 0x6f, 0xc0, 0xcf, 0xb0, 0x53, 0xb3, 0xbd, 0x13, 0x91, 0x6b, 0xe1, 0xaf, 0x1a, - 0x63, 0xf2, 0x0e, 0xcc, 0x14, 0xa9, 0x1f, 0xba, 0x3b, 0x6e, 0xdd, 0x09, 0xe9, 0x6d, 0xcf, 0xdf, - 0x77, 0xa4, 0x22, 0x89, 0xd6, 0x2b, 0xbc, 0x6a, 0xdc, 0x41, 0xb0, 0xd5, 0x8d, 0x49, 0x3e, 0x4c, - 0xf3, 0x3d, 0x1e, 0x8e, 0xaf, 0xd0, 0x53, 0x7c, 0x8f, 0x7b, 0x5d, 0xa1, 0x77, 0x7b, 0x21, 0xef, - 0xf6, 0x73, 0xb1, 0xc9, 0x2d, 0x5e, 0x17, 0xde, 0x39, 0x47, 0xbb, 0xd0, 0x44, 0xe3, 0xd6, 0xc3, - 0x95, 0x66, 0x01, 0xb2, 0x8b, 0xd5, 0xdb, 0x68, 0x8f, 0x94, 0x77, 0xac, 0xad, 0x3d, 0xa7, 0x55, - 0x47, 0x05, 0x4f, 0xb8, 0xb5, 0xa9, 0x02, 0x6f, 0xb1, 0x7a, 0x9b, 0x38, 0x70, 0xa2, 0x4a, 0xfd, - 0x7d, 0x37, 0xfc, 0xd2, 0xf5, 0xeb, 0xca, 0x40, 0xe5, 0xb0, 0x69, 0xd7, 0x44, 0xd3, 0xe6, 0xdb, - 0x88, 0x62, 0x3f, 0xba, 0x7e, 0x3d, 0x75, 0x38, 0xa2, 0x86, 0xa5, 0xf1, 0x22, 0x65, 0x98, 0x5a, - 0x71, 0x1e, 0xc5, 0xde, 0x88, 0x81, 0x88, 0xe2, 0x78, 0x51, 0x4e, 0xac, 0xd8, 0x93, 0x51, 0x0b, - 0xd3, 0xd4, 0x89, 0x98, 0x7e, 0x1e, 0x4f, 0xaf, 0x40, 0xf8, 0xbf, 0x9e, 0x95, 0x07, 0x51, 0x19, - 0xea, 0xa3, 0x2a, 0x99, 0x0a, 0x3a, 0xd9, 0x88, 0x4e, 0x19, 0x5c, 0x4b, 0x17, 0x59, 0xdb, 0xaf, - 0xa9, 0xa7, 0x0c, 0x07, 0x4b, 0xb4, 0xcf, 0x9a, 0x8e, 0xce, 0x77, 0xdc, 0x3d, 0xd3, 0xd2, 0xb9, - 0x74, 0x1f, 0x5e, 0x26, 0x8e, 0x7f, 0x78, 0xa1, 0x30, 0xb4, 0xec, 0xd5, 0xef, 0xa3, 0x83, 0xc9, - 0xd8, 0xe2, 0xfb, 0x6c, 0xb9, 0x37, 0xbd, 0xfa, 0xfd, 0xa7, 0xe7, 0x3a, 0x84, 0xec, 0xc9, 0x2a, - 0x6b, 0x2a, 0x9b, 0x05, 0xa2, 0x4f, 0x84, 0x3b, 0xca, 0x6c, 0xa4, 0xbd, 0x2b, 0x65, 0x5c, 0xaf, - 0xe0, 0x93, 0x46, 0x76, 0xad, 0xa5, 0x93, 0x13, 0x0a, 0xf9, 0x12, 0x0d, 0xee, 0x87, 0x5e, 0xbb, - 0xd8, 0x74, 0xdb, 0xdb, 0x9e, 0xe3, 0x37, 0xd0, 0xe2, 0x90, 0xb6, 0xbe, 0x5f, 0x4d, 0x5d, 0xdf, - 0x33, 0x0d, 0x4e, 0x6f, 0xd7, 0x25, 0x03, 0xab, 0x8b, 0x25, 0xf9, 0x10, 0xa6, 0xd8, 0xe4, 0x2e, - 0x3f, 0x0a, 0x69, 0x8b, 0x8f, 0xfc, 0x0c, 0xee, 0xcc, 0xb3, 0x4a, 0x6e, 0xb4, 0xa8, 0x90, 0xcf, - 0x29, 0x5c, 0xec, 0x34, 0x22, 0x50, 0xe7, 0x94, 0xce, 0x8a, 0x34, 0x60, 0x6e, 0xc5, 0x79, 0xa4, - 0xe4, 0xa0, 0x57, 0x26, 0x29, 0xc1, 0x09, 0x86, 0x2f, 0xea, 0xb1, 0x09, 0x16, 0xe7, 0x30, 0xe9, - 0x31, 0x5f, 0x7b, 0x72, 0x22, 0x3f, 0x04, 0xa7, 0xc5, 0x67, 0x95, 0x30, 0xf1, 0xa7, 0xe7, 0x1f, - 0xd4, 0xf6, 0x1c, 0x74, 0x44, 0x3e, 0x71, 0x3c, 0x81, 0x28, 0x3b, 0xac, 0x21, 0xf9, 0xd8, 0x01, - 0x67, 0x64, 0xf5, 0xaa, 0x81, 0x7c, 0x04, 0x53, 0xdc, 0xd0, 0xbc, 0xe4, 0x05, 0x21, 0x1e, 0x42, - 0x67, 0x8f, 0xe7, 0x5f, 0xc7, 0xad, 0xd7, 0xdc, 0x23, 0x35, 0x71, 0x68, 0x4d, 0x70, 0x26, 0x6f, - 0xc1, 0x78, 0xd5, 0x6d, 0xf1, 0x8c, 0x04, 0x95, 0xea, 0xdc, 0xc9, 0x78, 0xff, 0x69, 0xbb, 0x2d, - 0x5b, 0x9e, 0x04, 0xdb, 0x91, 0xb8, 0x50, 0xb1, 0xc9, 0x16, 0x8c, 0xd7, 0x6a, 0x4b, 0xb7, 0x5d, - 0xb6, 0x01, 0xb6, 0x0f, 0xe6, 0x4e, 0xf5, 0x68, 0xe5, 0x85, 0xd4, 0x56, 0x4e, 0x06, 0xc1, 0x1e, - 0xbe, 0xda, 0x65, 0xd7, 0xbd, 0xf6, 0x81, 0xa5, 0x72, 0x4a, 0xf1, 0x39, 0x3b, 0xfd, 0x94, 0x7d, - 0xce, 0x2a, 0x30, 0xad, 0xf8, 0xd6, 0xa0, 0x5f, 0xcd, 0x5c, 0xfc, 0xb0, 0x99, 0xea, 0x63, 0x96, - 0x8c, 0x57, 0x48, 0xd2, 0x49, 0x67, 0xb3, 0x33, 0xc7, 0x75, 0x36, 0x73, 0x61, 0x86, 0x0f, 0x86, - 0x98, 0x07, 0x38, 0xd2, 0x67, 0x7b, 0xf4, 0xe1, 0xe5, 0xd4, 0x3e, 0x3c, 0x21, 0x46, 0x5a, 0x4e, - 0x32, 0xbc, 0x58, 0xe9, 0xe6, 0x4a, 0x76, 0x80, 0x08, 0xa0, 0x78, 0x33, 0x0c, 0xeb, 0x7a, 0xbe, - 0x47, 0x5d, 0x2f, 0xa7, 0xd6, 0x35, 0x25, 0xeb, 0xda, 0xe6, 0xd5, 0xa4, 0x70, 0x24, 0x2d, 0x59, - 0x8f, 0x9c, 0x5f, 0xd8, 0xb1, 0x2f, 0xe0, 0xd8, 0x49, 0xab, 0x60, 0x37, 0x02, 0x46, 0xf6, 0xcc, - 0x27, 0x27, 0x6d, 0xb2, 0xdf, 0x53, 0x38, 0xdf, 0x1d, 0xca, 0x4d, 0xe6, 0xa7, 0xd2, 0x5c, 0xdd, - 0xfe, 0xf3, 0x4c, 0x42, 0x74, 0x92, 0x0a, 0x8c, 0x8a, 0x1e, 0x11, 0xba, 0x64, 0xf7, 0x77, 0xbf, - 0x98, 0xfa, 0xdd, 0xa3, 0xa2, 0x73, 0x2d, 0x49, 0x4f, 0x1e, 0x32, 0x56, 0xe8, 0x75, 0x27, 0x94, - 0xef, 0xaf, 0x72, 0xc9, 0x88, 0x20, 0x6d, 0x0f, 0x28, 0x1d, 0xdf, 0xe7, 0x58, 0x77, 0x69, 0xc7, - 0xcd, 0x40, 0xd6, 0x46, 0xee, 0xf3, 0x94, 0x86, 0xd9, 0xc8, 0x71, 0x55, 0xcf, 0x5f, 0xf8, 0xd4, - 0x2a, 0x64, 0xb5, 0x98, 0xbf, 0x6d, 0xc0, 0xa4, 0x26, 0x7b, 0xc9, 0x4d, 0xc5, 0x2b, 0x3b, 0x0e, - 0xfa, 0xd1, 0x70, 0x70, 0x39, 0x26, 0xfd, 0xb5, 0x6f, 0x0a, 0xc7, 0xb5, 0x4c, 0x6f, 0xba, 0xd4, - 0x07, 0xec, 0xfa, 0x5b, 0x82, 0xa2, 0x14, 0xc9, 0x43, 0x3d, 0x52, 0x24, 0xff, 0xea, 0x19, 0x98, - 0xd2, 0x95, 0x73, 0x76, 0x5a, 0x46, 0xab, 0xbb, 0x34, 0xd8, 0xf2, 0xa4, 0xdf, 0x08, 0xd1, 0x1e, - 0xa7, 0x42, 0x08, 0x79, 0x05, 0x20, 0xf2, 0xe1, 0x92, 0x36, 0xd9, 0xe1, 0xc7, 0x87, 0xf3, 0xc6, - 0x1b, 0x96, 0x52, 0x40, 0xbe, 0x06, 0xb0, 0xea, 0x35, 0x68, 0x94, 0xe5, 0xbf, 0xcf, 0xcd, 0xd3, - 0xab, 0x5d, 0xe9, 0xbe, 0x4e, 0xb6, 0xbc, 0x06, 0xed, 0xce, 0xed, 0xa5, 0x70, 0x24, 0x5f, 0x80, - 0x61, 0xab, 0xd3, 0xa4, 0xd2, 0x76, 0x37, 0x2e, 0x65, 0x60, 0xa7, 0x49, 0x95, 0x37, 0x21, 0x3b, - 0x49, 0x87, 0x03, 0x06, 0x20, 0xef, 0xf1, 0x34, 0x60, 0x22, 0xd7, 0xc6, 0x70, 0x6c, 0xa5, 0x56, - 0xf6, 0xc6, 0xae, 0x6c, 0x1b, 0x0a, 0x09, 0x59, 0x83, 0x51, 0xd5, 0xbc, 0xaa, 0x84, 0xf7, 0xa8, - 0xa6, 0x7b, 0xe5, 0xfc, 0x23, 0xf2, 0x8a, 0x27, 0x2d, 0xaf, 0x92, 0x0b, 0x79, 0x1b, 0xc6, 0x18, - 0x7b, 0xfe, 0xd2, 0xfc, 0x68, 0x6c, 0x8b, 0x56, 0x1a, 0x94, 0x7c, 0x6c, 0x3e, 0x26, 0x20, 0x1f, - 0x62, 0xfa, 0x7c, 0xd1, 0xd5, 0x7d, 0x6f, 0x24, 0x2f, 0x76, 0x75, 0x35, 0xe6, 0xd3, 0xef, 0x7e, - 0xff, 0x28, 0xe2, 0x47, 0x76, 0xa3, 0x4c, 0x0d, 0x83, 0xa4, 0x6e, 0xbb, 0xd2, 0x55, 0xc1, 0x9c, - 0x4c, 0x3e, 0xd0, 0xfd, 0x5a, 0x83, 0xc6, 0x97, 0xb4, 0x21, 0x1f, 0xab, 0x1d, 0xa2, 0x2e, 0xe8, - 0x57, 0xd7, 0x1b, 0x5d, 0x75, 0xa9, 0x03, 0xd8, 0x55, 0x5d, 0x17, 0x77, 0xd2, 0x80, 0x29, 0x29, - 0xa8, 0x45, 0x7d, 0xe3, 0xfd, 0xea, 0x7b, 0xa5, 0xab, 0xbe, 0x13, 0x8d, 0xed, 0xee, 0x7a, 0x12, - 0x3c, 0xc9, 0xdb, 0x30, 0x29, 0x21, 0xb8, 0x3e, 0xc4, 0x93, 0x49, 0x68, 0x9b, 0x68, 0x6c, 0x63, - 0x2c, 0x84, 0x9e, 0xfc, 0x5e, 0x45, 0x56, 0xa9, 0xf9, 0xec, 0x98, 0xd4, 0xa8, 0x93, 0xb3, 0x42, - 0x47, 0x26, 0x1f, 0xc0, 0x78, 0x65, 0x9f, 0x7d, 0x88, 0xd7, 0x72, 0x42, 0x2a, 0x5c, 0xbf, 0xe5, - 0xed, 0xaa, 0x52, 0xa2, 0x4c, 0x55, 0xfe, 0xb6, 0x4f, 0x5c, 0xa4, 0xbd, 0xed, 0x13, 0x83, 0x59, - 0xe7, 0x71, 0x7b, 0xba, 0x98, 0xc3, 0xd2, 0x2d, 0xfc, 0xc5, 0x94, 0x1b, 0x4e, 0x85, 0xbd, 0xc8, - 0x69, 0xc3, 0xa0, 0xf2, 0x2a, 0x22, 0x91, 0xd3, 0x46, 0xe5, 0x49, 0xde, 0x81, 0x71, 0x91, 0xd5, - 0xb2, 0x60, 0xad, 0x06, 0x73, 0x79, 0xfc, 0x78, 0x0c, 0x66, 0x93, 0x09, 0x30, 0x6d, 0xc7, 0x4f, - 0xb8, 0xb9, 0xc4, 0xf8, 0xe4, 0x4b, 0x30, 0xbb, 0xe5, 0xb6, 0x1a, 0xde, 0xc3, 0x40, 0x6c, 0x53, - 0x42, 0xd0, 0xcd, 0xc4, 0xde, 0xc8, 0x0f, 0x79, 0x79, 0xa4, 0x2d, 0x74, 0x09, 0xbe, 0x54, 0x0e, - 0xe4, 0x87, 0xbb, 0x38, 0xf3, 0x19, 0x44, 0xfa, 0xcd, 0xa0, 0x85, 0xae, 0x19, 0xd4, 0x5d, 0x7d, - 0x72, 0x3a, 0xa5, 0x56, 0x43, 0x3c, 0x20, 0xfa, 0xfe, 0x7e, 0xd7, 0x73, 0x5b, 0x73, 0x27, 0x50, - 0x16, 0x3e, 0x9f, 0x0c, 0x1f, 0x43, 0x3c, 0xfe, 0xde, 0xac, 0x7c, 0xf5, 0x5b, 0xd7, 0x0a, 0x3f, - 0xf2, 0x34, 0xc3, 0x68, 0x0a, 0x6b, 0xf2, 0x01, 0x4c, 0xb0, 0xff, 0xa3, 0x63, 0xeb, 0xac, 0xe6, - 0x13, 0xa3, 0x60, 0x8a, 0x7a, 0x70, 0x8c, 0x30, 0xed, 0x66, 0xca, 0x89, 0x56, 0x63, 0x45, 0x6e, - 0x01, 0x30, 0xfd, 0x45, 0x88, 0xe3, 0x93, 0x71, 0x0a, 0x21, 0xd4, 0x7a, 0xba, 0x05, 0x71, 0x8c, - 0xcc, 0xce, 0xd2, 0xec, 0x57, 0xad, 0xd3, 0xf0, 0xd8, 0xda, 0x38, 0x85, 0xb4, 0x78, 0x96, 0x46, - 0xda, 0x80, 0xc3, 0xd5, 0xd9, 0xa1, 0xa0, 0x93, 0x25, 0x98, 0xc6, 0x54, 0x4f, 0x95, 0x06, 0x6d, - 0x85, 0x78, 0xcf, 0x35, 0x77, 0x5a, 0xb9, 0x07, 0x64, 0x45, 0xb6, 0x1b, 0x95, 0xa9, 0xda, 0x6e, - 0x82, 0x8c, 0x04, 0x70, 0x22, 0x96, 0x2e, 0xf1, 0xad, 0xe2, 0x1c, 0x76, 0x92, 0xd4, 0xf1, 0xba, - 0x31, 0xb8, 0x3c, 0x66, 0x23, 0xa2, 0x08, 0x2e, 0x69, 0x3e, 0x56, 0x2b, 0x4c, 0xe3, 0x4e, 0x2c, - 0x20, 0x77, 0x8a, 0xd5, 0x64, 0x2e, 0xa4, 0x33, 0xf8, 0x05, 0x38, 0xcc, 0xbb, 0xf5, 0xf8, 0xf1, - 0x92, 0x94, 0x7c, 0x48, 0x29, 0xd4, 0xe4, 0x9b, 0x70, 0x52, 0x4a, 0x10, 0x51, 0x24, 0xe6, 0xf5, - 0xd9, 0x63, 0x4a, 0xe2, 0xc6, 0x76, 0x54, 0x75, 0xd7, 0x94, 0x4e, 0xaf, 0x82, 0x38, 0x30, 0x8e, - 0xc3, 0x2a, 0x6a, 0x7c, 0xbe, 0x5f, 0x8d, 0x97, 0xba, 0x6a, 0x3c, 0xc5, 0xdf, 0xfe, 0xee, 0xaa, - 0x4c, 0xe5, 0x49, 0x16, 0x61, 0x52, 0xac, 0x23, 0x31, 0xdb, 0x5e, 0x88, 0x1f, 0xaf, 0x97, 0x2b, - 0xb0, 0x6b, 0xc2, 0xe9, 0x24, 0xaa, 0x44, 0xe6, 0x17, 0x9b, 0x2f, 0x6a, 0x12, 0x39, 0x79, 0x9f, - 0xa9, 0x23, 0x33, 0x89, 0x14, 0x6b, 0x31, 0xe5, 0x47, 0x6d, 0x5f, 0x18, 0x31, 0xce, 0xc5, 0xc9, - 0x2c, 0x15, 0xe5, 0xc7, 0xa6, 0x11, 0x86, 0x2a, 0x12, 0xd2, 0x38, 0x90, 0x0d, 0x38, 0x11, 0xed, - 0xda, 0x0a, 0xe3, 0x79, 0x64, 0x8c, 0x87, 0x89, 0x78, 0xab, 0x4f, 0xe7, 0x9b, 0x46, 0x4f, 0x1c, - 0x38, 0xad, 0xed, 0xd3, 0x0a, 0xeb, 0xf3, 0xc8, 0x1a, 0x1f, 0xcb, 0xd1, 0x37, 0xf9, 0x74, 0xf6, - 0xbd, 0xf8, 0x90, 0x8f, 0xe0, 0x6c, 0x72, 0x6f, 0x56, 0x6a, 0x79, 0x09, 0x6b, 0xb9, 0xf2, 0xf8, - 0x70, 0xfe, 0x62, 0xd7, 0xf6, 0x9e, 0x5e, 0x51, 0x1f, 0x6e, 0xe4, 0x6b, 0x30, 0xa7, 0xef, 0xcf, - 0x4a, 0x4d, 0x26, 0xd6, 0x84, 0x4b, 0x27, 0xda, 0xd8, 0xd3, 0x6b, 0xe8, 0xc9, 0x83, 0x84, 0x30, - 0x9f, 0x3a, 0xbb, 0x95, 0x6a, 0x2e, 0xc4, 0x1f, 0xd4, 0xb5, 0x4a, 0xd2, 0xab, 0x3b, 0x8a, 0x25, - 0x79, 0x08, 0xe7, 0xd2, 0xb6, 0x09, 0xa5, 0xd2, 0x97, 0x23, 0x33, 0xe1, 0x6b, 0xe9, 0x5b, 0x4e, - 0x7a, 0xcd, 0x47, 0xb0, 0x25, 0x1f, 0xc2, 0x49, 0x65, 0x7d, 0x29, 0xf5, 0xbd, 0x82, 0xf5, 0x61, - 0x2c, 0x91, 0xba, 0x30, 0xd3, 0x6b, 0x49, 0xe7, 0x61, 0xfe, 0xae, 0x01, 0xa4, 0x5b, 0xf0, 0x0d, - 0x7c, 0x73, 0xf8, 0xa6, 0x12, 0x68, 0xa3, 0xbe, 0x8c, 0x1e, 0xe5, 0xc3, 0x54, 0x15, 0xde, 0x38, - 0x24, 0xe7, 0xa2, 0x76, 0xc0, 0xea, 0xed, 0x9d, 0x7d, 0x19, 0x86, 0x37, 0xa9, 0xbf, 0xcd, 0x4f, - 0x20, 0xc2, 0xc3, 0xf9, 0x01, 0x03, 0x68, 0x8f, 0x28, 0x32, 0x80, 0xf9, 0x47, 0x06, 0xcc, 0xa6, - 0xed, 0xc6, 0x47, 0xbc, 0x77, 0x63, 0x26, 0xfc, 0xbf, 0xf1, 0xd6, 0x90, 0xfb, 0x7f, 0x47, 0x5e, - 0xdf, 0xf3, 0x30, 0xcc, 0x3e, 0x56, 0x7a, 0xb0, 0xe0, 0x81, 0x8f, 0xf5, 0x46, 0x60, 0x71, 0x38, - 0x43, 0xe0, 0x81, 0xf7, 0x43, 0x98, 0xff, 0x00, 0x11, 0x50, 0xd8, 0x5b, 0x1c, 0xce, 0x10, 0xd8, - 0xc1, 0x52, 0x1e, 0x84, 0x10, 0x81, 0x9d, 0x37, 0x03, 0x8b, 0xc3, 0xc9, 0x45, 0x18, 0x5d, 0x6b, - 0x2d, 0x53, 0xe7, 0x81, 0x4c, 0xe9, 0x89, 0xb7, 0x9c, 0x5e, 0xcb, 0x6e, 0x32, 0x98, 0x25, 0x0b, - 0xcd, 0xef, 0x1a, 0x30, 0xd3, 0xa5, 0x08, 0x1c, 0xfd, 0xa4, 0x4f, 0x7f, 0x4f, 0xd7, 0x41, 0xbe, - 0x8f, 0x37, 0x7f, 0x28, 0xbd, 0xf9, 0xe6, 0xff, 0x3e, 0x04, 0xa7, 0x7b, 0x9c, 0xcb, 0x62, 0x2f, - 0x75, 0xe3, 0x48, 0x2f, 0xf5, 0xaf, 0xb0, 0x73, 0x90, 0xe3, 0xee, 0x07, 0xeb, 0x5e, 0xdc, 0xe2, - 0xd8, 0xa1, 0x0f, 0xcb, 0xe4, 0x8b, 0x1b, 0x2f, 0x89, 0x6d, 0xfd, 0x4c, 0x1d, 0x29, 0xec, 0xd0, - 0xeb, 0xde, 0x16, 0x34, 0x66, 0x5d, 0x7e, 0xe2, 0xd9, 0x3f, 0x27, 0x7e, 0xe2, 0xba, 0x77, 0xe6, - 0xd0, 0x53, 0xf5, 0xce, 0x4c, 0xf7, 0xeb, 0x19, 0x7e, 0x12, 0x2f, 0xaf, 0x22, 0x4c, 0xd6, 0xa8, - 0xe3, 0xd7, 0xf7, 0x0a, 0x01, 0x1f, 0xa4, 0x91, 0x38, 0x91, 0x66, 0x80, 0x05, 0xb6, 0x13, 0x74, - 0x8f, 0x85, 0x46, 0x43, 0x96, 0x74, 0x4f, 0xc2, 0x51, 0xb4, 0x9f, 0x5f, 0xec, 0xed, 0x29, 0xa8, - 0xdd, 0x9b, 0xa9, 0xa4, 0xe6, 0x77, 0x33, 0xba, 0xa3, 0xfc, 0x9f, 0xc7, 0x99, 0x77, 0x19, 0x86, - 0xb7, 0xf6, 0xa8, 0x2f, 0xe5, 0x1d, 0x36, 0xe4, 0x21, 0x03, 0xa8, 0x0d, 0x41, 0x0c, 0x72, 0x1b, - 0xa6, 0xaa, 0x7c, 0x24, 0x64, 0xf7, 0x0e, 0xc5, 0xea, 0x72, 0x5b, 0x1c, 0xea, 0x52, 0xfa, 0x37, - 0x41, 0x65, 0xfe, 0x10, 0x4c, 0xa8, 0x8d, 0x46, 0x11, 0xc5, 0x7e, 0x0b, 0x19, 0xc1, 0x45, 0x14, - 0x03, 0x58, 0x1c, 0x7e, 0xe4, 0xc3, 0x5f, 0x71, 0x6f, 0x66, 0x8f, 0xea, 0x4d, 0x56, 0x39, 0xae, - 0x00, 0xa5, 0x72, 0xfc, 0xad, 0x56, 0x1e, 0x32, 0x80, 0xc5, 0xe1, 0x4f, 0xb5, 0xf2, 0x7f, 0x24, - 0xd3, 0xa6, 0xbe, 0x09, 0x63, 0xf1, 0x31, 0x21, 0x7e, 0x5e, 0xe1, 0x44, 0x9a, 0xf2, 0x1f, 0x63, - 0xc6, 0x7b, 0x4e, 0xe6, 0xa8, 0x3d, 0xe7, 0x38, 0xe3, 0x7a, 0x0d, 0x46, 0x0b, 0xe2, 0xb2, 0x88, - 0x0f, 0x28, 0x8f, 0x1c, 0xea, 0xba, 0x19, 0x92, 0x58, 0xe6, 0xf7, 0x0c, 0x38, 0x99, 0x6a, 0x3d, - 0x60, 0xb5, 0x72, 0x33, 0x85, 0x32, 0xad, 0x93, 0x36, 0x0a, 0x8e, 0x71, 0x9c, 0x08, 0xa1, 0xc1, - 0xbf, 0xc5, 0x7c, 0x09, 0xc6, 0x22, 0xdb, 0x35, 0x99, 0x95, 0x43, 0x87, 0x1e, 0x04, 0xd2, 0x04, - 0xfa, 0xa7, 0x06, 0x8c, 0xb0, 0x26, 0x3c, 0xb3, 0xa9, 0x46, 0xd2, 0xfd, 0x49, 0xd8, 0x27, 0x0d, - 0x94, 0x60, 0xe4, 0x97, 0x47, 0xf8, 0x6b, 0xa1, 0x22, 0xad, 0xc8, 0x36, 0x4c, 0xad, 0x55, 0x4a, - 0x45, 0xe5, 0x10, 0xac, 0x67, 0x78, 0x8d, 0x1e, 0xa3, 0xe3, 0x08, 0x07, 0xb1, 0x8c, 0xf1, 0xdc, - 0x46, 0x3d, 0xfd, 0x80, 0x9c, 0xe0, 0xc8, 0xea, 0xe0, 0xef, 0x64, 0x46, 0x75, 0x64, 0x06, 0xac, - 0x43, 0xbc, 0xc2, 0x99, 0x56, 0x87, 0xce, 0x91, 0xec, 0x41, 0xfe, 0x0e, 0xee, 0x87, 0x4a, 0x2d, - 0xd9, 0xfe, 0xb5, 0x5c, 0x10, 0xb5, 0x3c, 0xcf, 0x37, 0xd2, 0xf4, 0x7a, 0xba, 0xb8, 0xc6, 0x33, - 0x77, 0xe8, 0xc8, 0x99, 0xfb, 0x97, 0x0d, 0x18, 0xe1, 0x1b, 0xae, 0x18, 0xad, 0x1e, 0x5b, 0xfa, - 0xd6, 0xd3, 0xd9, 0xd2, 0xf3, 0x28, 0xb9, 0x34, 0xb3, 0x3d, 0x2f, 0x23, 0x25, 0x18, 0xa9, 0x85, - 0x4e, 0xd8, 0x91, 0x21, 0x68, 0xd2, 0x69, 0x08, 0xcd, 0x59, 0xbc, 0x24, 0x8e, 0xb3, 0x0a, 0xf0, - 0xb7, 0xca, 0x85, 0x63, 0x90, 0x4a, 0x1c, 0xe2, 0x33, 0x7a, 0xa4, 0x83, 0xbd, 0x0c, 0x8b, 0x1a, - 0x15, 0x21, 0x3e, 0x7a, 0x60, 0xcf, 0x32, 0x8c, 0x89, 0xc0, 0xa1, 0xc5, 0x03, 0x61, 0xb4, 0xce, - 0x6b, 0x97, 0x61, 0x8d, 0x45, 0xf5, 0x95, 0x7e, 0x0e, 0xb2, 0xb7, 0xb5, 0x97, 0xf5, 0x22, 0x44, - 0xb2, 0xc6, 0x73, 0x49, 0xf3, 0xc4, 0x2b, 0x7a, 0xd6, 0xb2, 0x08, 0x2e, 0x22, 0x6b, 0x65, 0xf4, - 0x41, 0x4a, 0x9e, 0x95, 0x98, 0x87, 0xf9, 0xb3, 0x06, 0xe4, 0x93, 0xf3, 0x85, 0xbc, 0x0d, 0xe3, - 0x51, 0xaa, 0x9a, 0xc8, 0x1d, 0x1f, 0xcd, 0x4d, 0x71, 0x6e, 0x1b, 0xcd, 0x31, 0x5f, 0x45, 0x27, - 0x0b, 0x90, 0x63, 0xcb, 0x4e, 0x79, 0x82, 0x1b, 0xe5, 0x49, 0x47, 0xc0, 0x54, 0x4f, 0x46, 0x89, - 0xa7, 0xac, 0xda, 0x7f, 0x9e, 0x85, 0x71, 0x65, 0xb0, 0xc8, 0x65, 0xc8, 0x55, 0x82, 0x65, 0xaf, - 0x7e, 0x9f, 0x36, 0x84, 0x83, 0xd4, 0xe4, 0xe3, 0xc3, 0xf9, 0x31, 0x37, 0xb0, 0x9b, 0x08, 0xb4, - 0xa2, 0x62, 0xb2, 0x08, 0x93, 0xfc, 0x2f, 0x99, 0x39, 0x2f, 0x13, 0x3b, 0x77, 0x70, 0x64, 0x99, - 0x33, 0x4f, 0x55, 0x13, 0x34, 0x12, 0xf2, 0x55, 0x00, 0x0e, 0x60, 0xe3, 0x3b, 0x40, 0xdc, 0xb0, - 0x5c, 0xc0, 0x27, 0x45, 0x05, 0xa1, 0xab, 0x7e, 0x21, 0x4e, 0x05, 0x85, 0x21, 0xf9, 0x3a, 0xcf, - 0x42, 0x23, 0x27, 0xd7, 0xd0, 0xe0, 0xd1, 0x1b, 0x8c, 0xbf, 0x9d, 0x1e, 0x44, 0xa6, 0xb2, 0x24, - 0xdf, 0x36, 0xe0, 0xac, 0x45, 0xeb, 0xde, 0x03, 0xea, 0x1f, 0x14, 0x42, 0xc4, 0x52, 0x6b, 0x3c, - 0x3a, 0x62, 0xed, 0x86, 0xa8, 0xf1, 0x55, 0x5f, 0x70, 0xc1, 0x74, 0x1d, 0xfb, 0xed, 0xd0, 0xee, - 0xd3, 0x84, 0x3e, 0x55, 0x9a, 0xff, 0x9d, 0xa1, 0x2c, 0x01, 0xb2, 0x8a, 0xe9, 0xfb, 0xf9, 0x64, - 0x11, 0x97, 0xb1, 0x91, 0x86, 0x27, 0xe1, 0x16, 0xdd, 0x59, 0x7c, 0x5e, 0xf8, 0x32, 0x9d, 0x88, - 0xa6, 0x5c, 0x22, 0xad, 0x3f, 0x07, 0x92, 0x2f, 0xc2, 0x10, 0x0e, 0xd5, 0xd1, 0xcf, 0x94, 0xc9, - 0xad, 0x66, 0x88, 0x8d, 0x11, 0xb6, 0x1a, 0x29, 0xc9, 0x67, 0x84, 0xb3, 0x7f, 0x56, 0x7b, 0x2a, - 0x97, 0x81, 0x58, 0x3b, 0xa2, 0x3d, 0x26, 0x8e, 0x5b, 0x54, 0x66, 0xeb, 0x5f, 0xcd, 0x40, 0x3e, - 0xb9, 0xf0, 0xc8, 0x7b, 0x30, 0x21, 0x93, 0xe8, 0x2c, 0x39, 0x22, 0x35, 0xde, 0x84, 0x48, 0x4d, - 0x27, 0xe0, 0xf6, 0x9e, 0xa3, 0x3d, 0x3e, 0xa7, 0x11, 0xb0, 0x0d, 0x79, 0x5d, 0x84, 0xc3, 0x2b, - 0x0b, 0x28, 0xf4, 0xc2, 0x76, 0xe2, 0xe5, 0x4c, 0x89, 0x46, 0xde, 0x84, 0xec, 0xca, 0xed, 0x82, - 0x70, 0x82, 0x95, 0xf2, 0x65, 0xe5, 0x76, 0x81, 0xbb, 0x2b, 0x70, 0x2f, 0x04, 0xdd, 0x27, 0x82, - 0xe1, 0x93, 0x65, 0x25, 0x2f, 0xd1, 0x88, 0x96, 0xdb, 0x5b, 0x82, 0xa3, 0x8f, 0x3b, 0x3a, 0x41, - 0x91, 0xfa, 0x32, 0x9f, 0xf9, 0xab, 0x59, 0x18, 0x8b, 0xea, 0x27, 0x04, 0x50, 0xdf, 0x10, 0x7e, - 0xb0, 0xf8, 0x37, 0x39, 0x03, 0x39, 0xa9, 0x62, 0x08, 0x5f, 0xd8, 0xd1, 0x40, 0xa8, 0x17, 0x73, - 0x20, 0x75, 0x09, 0xae, 0x5e, 0x58, 0xf2, 0x27, 0xb9, 0x0e, 0x91, 0xa2, 0xd0, 0x4b, 0xa3, 0x18, - 0x62, 0x03, 0x66, 0x45, 0x68, 0x64, 0x0a, 0x32, 0x2e, 0x0f, 0x75, 0x1e, 0xb3, 0x32, 0x6e, 0x83, - 0xbc, 0x07, 0x39, 0xa7, 0xd1, 0xa0, 0x0d, 0xdb, 0x91, 0xb7, 0x9a, 0xfd, 0x26, 0x4d, 0x8e, 0x71, - 0xe3, 0x12, 0x1d, 0xa9, 0x0a, 0x21, 0x29, 0xc0, 0x58, 0xd3, 0xe1, 0x7e, 0x0a, 0x8d, 0x01, 0xb6, - 0x87, 0x98, 0x43, 0x8e, 0x91, 0x6d, 0x04, 0xb4, 0x41, 0x5e, 0x85, 0x21, 0x36, 0x9a, 0x62, 0x3f, - 0x88, 0xde, 0x19, 0x5c, 0x5b, 0xaf, 0xf2, 0x0e, 0x5b, 0x7a, 0xce, 0x42, 0x04, 0xf2, 0x32, 0x64, - 0x3b, 0x0b, 0x3b, 0x42, 0xd2, 0xe7, 0xe3, 0x1c, 0x61, 0x11, 0x1a, 0x2b, 0x26, 0x37, 0x20, 0xf7, - 0x50, 0x4f, 0x2f, 0x75, 0x32, 0x31, 0x8c, 0x11, 0x7e, 0x84, 0xb8, 0x98, 0x83, 0x11, 0xee, 0xe9, - 0x62, 0x9e, 0x03, 0x88, 0xab, 0xee, 0x76, 0x59, 0x36, 0xbf, 0x0a, 0x63, 0x51, 0x95, 0xe4, 0x45, - 0x80, 0xfb, 0xf4, 0xc0, 0xde, 0x73, 0x5a, 0x8d, 0x26, 0x57, 0x38, 0x27, 0xac, 0xb1, 0xfb, 0xf4, - 0x60, 0x09, 0x01, 0xe4, 0x34, 0x8c, 0xb6, 0xd9, 0xa8, 0xca, 0x77, 0x5f, 0xad, 0x91, 0x76, 0x67, - 0x9b, 0xcd, 0xd0, 0x39, 0x18, 0x45, 0x73, 0x8c, 0x58, 0x68, 0x93, 0x96, 0xfc, 0x69, 0xfe, 0xe3, - 0x0c, 0xa6, 0x29, 0x55, 0xda, 0x49, 0x2e, 0xc0, 0x64, 0xdd, 0xa7, 0xb8, 0x1d, 0xe1, 0xa3, 0xc1, - 0xa2, 0x9e, 0x89, 0x18, 0x58, 0x69, 0x90, 0x8b, 0x30, 0x1d, 0x3f, 0x44, 0x6b, 0xd7, 0xb7, 0x45, - 0x2e, 0xb8, 0x09, 0x6b, 0xb2, 0x2d, 0x5f, 0xa2, 0x2d, 0x6e, 0x63, 0x88, 0x7e, 0x5e, 0x4d, 0xc5, - 0x13, 0x46, 0xcf, 0xcd, 0x58, 0xd3, 0x0a, 0x1c, 0x9d, 0x15, 0x4e, 0xc1, 0x88, 0xe3, 0xec, 0x76, - 0x5c, 0x1e, 0x2e, 0x3c, 0x61, 0x89, 0x5f, 0xe4, 0x35, 0x98, 0x09, 0xdc, 0xdd, 0x96, 0x13, 0x76, - 0x7c, 0x91, 0x27, 0x96, 0xfa, 0x38, 0xa5, 0x26, 0xad, 0x7c, 0x54, 0x50, 0xe4, 0x70, 0xf2, 0x06, - 0x10, 0xb5, 0x3e, 0x6f, 0xfb, 0x23, 0x5a, 0xe7, 0x53, 0x6d, 0xc2, 0x9a, 0x51, 0x4a, 0xd6, 0xb0, - 0x80, 0xbc, 0x04, 0x13, 0x3e, 0x0d, 0x50, 0x25, 0xc3, 0x6e, 0xc3, 0x2c, 0xde, 0xd6, 0xb8, 0x84, - 0xb1, 0xbe, 0xbb, 0x04, 0x79, 0xa5, 0x3b, 0x30, 0xdb, 0x11, 0x4f, 0x84, 0x66, 0x4d, 0xc5, 0x70, - 0xab, 0x5d, 0x69, 0x98, 0x8b, 0x30, 0xd3, 0xb5, 0x72, 0xc9, 0x1b, 0xfc, 0x1c, 0x20, 0x76, 0xf2, - 0x09, 0x7e, 0xec, 0x41, 0x2f, 0x1b, 0x6d, 0x13, 0x17, 0x48, 0x66, 0x0b, 0x26, 0x54, 0x49, 0x7c, - 0x44, 0x3e, 0xbe, 0x53, 0x18, 0xb1, 0xc7, 0xc5, 0xd4, 0xc8, 0xe3, 0xc3, 0xf9, 0x8c, 0xdb, 0xc0, - 0x38, 0xbd, 0x4b, 0x90, 0x93, 0xfa, 0x84, 0x38, 0x23, 0xa0, 0x39, 0x4d, 0xa8, 0x9e, 0x07, 0x56, - 0x54, 0x6a, 0xbe, 0x0a, 0xa3, 0x42, 0xd8, 0xf6, 0x37, 0xa2, 0x99, 0x3f, 0x91, 0x81, 0x69, 0x8b, - 0x32, 0x51, 0x40, 0x79, 0x12, 0xce, 0x4f, 0xd9, 0xe3, 0xbd, 0xda, 0xb7, 0xf5, 0x49, 0x7f, 0xf9, - 0x1b, 0x06, 0x9c, 0x48, 0xc1, 0xfd, 0x58, 0x4f, 0x29, 0xdc, 0x84, 0xb1, 0x92, 0xeb, 0x34, 0x0b, - 0x8d, 0x46, 0x14, 0x79, 0x88, 0x7a, 0x63, 0x83, 0xcd, 0x34, 0x87, 0x41, 0xd5, 0x6d, 0x37, 0x42, - 0x25, 0x57, 0xc4, 0xa4, 0x88, 0xdf, 0x6d, 0x92, 0xcf, 0x03, 0x03, 0x6f, 0x53, 0xfc, 0x38, 0x30, - 0xe6, 0xc3, 0xe1, 0xc0, 0xd8, 0xcb, 0xf2, 0x99, 0x1d, 0xba, 0xf4, 0x7c, 0x38, 0xc9, 0xcf, 0x1b, - 0xe8, 0x80, 0xfa, 0xb3, 0x19, 0x38, 0x95, 0x4e, 0xf8, 0x71, 0x5f, 0xc5, 0xc0, 0xdc, 0xa3, 0xca, - 0x0b, 0xcc, 0xf8, 0x2a, 0x06, 0x4f, 0x54, 0x8a, 0xf8, 0x31, 0x02, 0xd9, 0x81, 0xc9, 0x65, 0x27, - 0x08, 0x97, 0xa8, 0xe3, 0x87, 0xdb, 0xd4, 0x09, 0x07, 0xd0, 0x75, 0x5f, 0x16, 0x5f, 0x33, 0x87, - 0xdb, 0xdf, 0x9e, 0xa4, 0x4c, 0xa8, 0x82, 0x3a, 0xdb, 0x68, 0xa2, 0x0c, 0x0d, 0x30, 0x51, 0xbe, - 0x01, 0xd3, 0x35, 0xba, 0xef, 0xb4, 0xf7, 0x3c, 0x9f, 0x0a, 0xbb, 0xff, 0x55, 0x98, 0x8c, 0x40, - 0xa9, 0xb3, 0x45, 0x2f, 0xd6, 0xf0, 0x95, 0x8e, 0x88, 0x45, 0x89, 0x5e, 0x6c, 0xfe, 0xb5, 0x0c, - 0x9c, 0x2e, 0xd4, 0x85, 0x1b, 0x80, 0x28, 0x90, 0xde, 0x4a, 0x9f, 0x70, 0xdd, 0xe4, 0x1a, 0x8c, - 0xad, 0x38, 0x8f, 0x96, 0xa9, 0x13, 0xd0, 0x40, 0xe4, 0x24, 0xe7, 0x8a, 0x9a, 0xf3, 0x28, 0xbe, - 0x1d, 0xb7, 0x62, 0x1c, 0xf5, 0x58, 0x3a, 0xf4, 0x84, 0xc7, 0x52, 0x13, 0x46, 0x96, 0xbc, 0x66, - 0x43, 0x6c, 0x63, 0xe2, 0xce, 0x65, 0x0f, 0x21, 0x96, 0x28, 0x31, 0xff, 0xc8, 0x80, 0xa9, 0xa8, - 0xc5, 0xd8, 0x84, 0x4f, 0xbc, 0x4b, 0x2e, 0xc2, 0x28, 0x56, 0x54, 0x29, 0xa9, 0x9b, 0x46, 0x93, - 0x81, 0x6c, 0xb7, 0x61, 0xc9, 0x42, 0xb5, 0x27, 0x86, 0x9f, 0xac, 0x27, 0xcc, 0xbf, 0x83, 0xd7, - 0x39, 0xea, 0x57, 0xb2, 0x9d, 0x48, 0x69, 0x88, 0x31, 0x60, 0x43, 0x32, 0x4f, 0x6d, 0x48, 0xb2, - 0x3d, 0x87, 0xe4, 0x5b, 0x19, 0x18, 0x8f, 0x1a, 0xfb, 0x29, 0x4b, 0x24, 0x17, 0x7d, 0xd7, 0x40, - 0x91, 0xab, 0x35, 0x45, 0x56, 0x88, 0x00, 0xd1, 0x2f, 0xc2, 0x88, 0x58, 0x4c, 0x46, 0xc2, 0x6b, - 0x27, 0x31, 0xba, 0x8b, 0x53, 0x82, 0xf5, 0x08, 0x0e, 0x68, 0x60, 0x09, 0x3a, 0x0c, 0x0d, 0xde, - 0xa2, 0xdb, 0xe2, 0x76, 0xef, 0x99, 0xdd, 0xa3, 0xd2, 0x43, 0x83, 0xe3, 0x0f, 0x1b, 0x68, 0x77, - 0x3a, 0x1c, 0x86, 0x7c, 0x92, 0xe4, 0xe8, 0x54, 0x7d, 0xd5, 0xce, 0x36, 0xd7, 0xc2, 0x79, 0xaa, - 0xbe, 0x76, 0x67, 0xdb, 0x62, 0x30, 0x72, 0x11, 0x86, 0xaa, 0xbe, 0xfb, 0x00, 0xbf, 0x7a, 0x82, - 0xdf, 0x36, 0xb7, 0x7d, 0xf7, 0x81, 0x7a, 0xdb, 0xcc, 0xca, 0xf1, 0xe8, 0xbb, 0x5c, 0xc3, 0x70, - 0x2b, 0x54, 0xc1, 0xc5, 0xd1, 0xb7, 0x19, 0x24, 0xd3, 0x13, 0x4b, 0x34, 0xb6, 0x55, 0x2e, 0x52, - 0xc7, 0x17, 0x69, 0xe5, 0x84, 0x38, 0xc3, 0xad, 0x72, 0x1b, 0xc1, 0xfc, 0x65, 0x2e, 0x4b, 0x45, - 0x22, 0x4d, 0x20, 0xca, 0x4f, 0xb9, 0x80, 0x8f, 0x3e, 0x0d, 0x9e, 0x97, 0x76, 0x3a, 0x95, 0xb5, - 0xad, 0xae, 0xe6, 0x14, 0xbe, 0x4f, 0xd3, 0x9a, 0x58, 0x15, 0x49, 0x46, 0xd0, 0xe4, 0x91, 0x3b, - 0x92, 0x99, 0x8c, 0x47, 0x04, 0x9e, 0x84, 0x24, 0x32, 0x7c, 0xc4, 0x4c, 0xc8, 0xbb, 0x30, 0xae, - 0x06, 0xd1, 0xf1, 0x50, 0xaf, 0x17, 0x78, 0xea, 0x8d, 0x1e, 0x8f, 0x43, 0xa8, 0x04, 0x64, 0x1b, - 0x4e, 0x17, 0xbd, 0x56, 0xd0, 0xd9, 0xa7, 0x0d, 0xed, 0xf6, 0xb9, 0x52, 0xc2, 0xa3, 0xe8, 0x18, - 0x8f, 0xc8, 0xa9, 0x0b, 0x14, 0x11, 0xb3, 0x25, 0x5d, 0x22, 0xf5, 0x03, 0x48, 0x2f, 0x46, 0x64, - 0x1d, 0xc6, 0x6b, 0x85, 0x95, 0x65, 0x19, 0x08, 0x35, 0xae, 0x8b, 0x8d, 0xb8, 0xa4, 0xc4, 0x16, - 0x06, 0xcf, 0x05, 0xe0, 0xec, 0x37, 0xa5, 0x47, 0x9e, 0x6a, 0xa7, 0x54, 0x90, 0xcd, 0xcf, 0xa8, - 0xf3, 0x5b, 0xa8, 0x1b, 0x7d, 0xe7, 0xb7, 0xf9, 0x5f, 0x8f, 0xc0, 0x74, 0xa2, 0x3a, 0x71, 0xfe, - 0x31, 0xba, 0xce, 0x3f, 0x35, 0x00, 0x6e, 0xf4, 0x1a, 0xd0, 0x3a, 0x25, 0x9d, 0xb9, 0xc7, 0x45, - 0x28, 0x44, 0x34, 0x56, 0x0a, 0x1b, 0xc6, 0x94, 0xcf, 0x84, 0x01, 0xad, 0x93, 0x11, 0x53, 0x3e, - 0x99, 0x14, 0xa6, 0x31, 0x1b, 0x32, 0x0f, 0xc3, 0x98, 0xa3, 0x45, 0xf5, 0xa5, 0x77, 0x19, 0xc0, - 0xe2, 0x70, 0x72, 0x01, 0x46, 0xd8, 0xe6, 0x5c, 0x29, 0x89, 0xc5, 0x85, 0x32, 0x8b, 0xed, 0xde, - 0x6c, 0x27, 0x14, 0x45, 0xe4, 0x26, 0x4c, 0xf0, 0xbf, 0x44, 0x30, 0xe7, 0x88, 0xee, 0x56, 0x62, - 0xbb, 0x0d, 0x19, 0xcf, 0xa9, 0xe1, 0x31, 0xad, 0xb5, 0xd6, 0xd9, 0x16, 0xcf, 0x80, 0x8e, 0xc6, - 0x5a, 0x6b, 0xc0, 0x81, 0xf8, 0x96, 0x5b, 0x84, 0xc0, 0xf6, 0x48, 0xe1, 0xd1, 0x96, 0xc3, 0xb3, - 0x0a, 0xee, 0x91, 0xdc, 0x93, 0xcd, 0x12, 0x25, 0xe4, 0x32, 0xb7, 0x3f, 0xa3, 0xba, 0xc1, 0xd3, - 0x7c, 0xa3, 0xc5, 0x18, 0x0f, 0xbc, 0xa8, 0x73, 0x44, 0xc5, 0xac, 0x72, 0xf6, 0x77, 0x79, 0xdf, - 0x71, 0x9b, 0x62, 0xba, 0x62, 0xe5, 0x88, 0x4b, 0x19, 0xd4, 0x8a, 0x11, 0xc8, 0xdb, 0x30, 0xc5, - 0x7e, 0x14, 0xbd, 0xfd, 0x7d, 0xaf, 0x85, 0xec, 0xc7, 0xe3, 0xb0, 0x7b, 0x24, 0xa9, 0x63, 0x11, - 0xaf, 0x25, 0x81, 0xcb, 0xe4, 0x14, 0xde, 0x46, 0x75, 0xb8, 0x65, 0x7c, 0x22, 0x96, 0x53, 0x48, - 0x1a, 0x70, 0xb8, 0xa5, 0x22, 0x91, 0x5b, 0x30, 0xc9, 0x7e, 0xde, 0x71, 0x1f, 0x50, 0x5e, 0xe1, - 0x64, 0x7c, 0x31, 0x88, 0x54, 0xbb, 0xac, 0x84, 0xd7, 0xa7, 0x63, 0x92, 0xf7, 0xe1, 0x24, 0x72, - 0xaa, 0x7b, 0x6d, 0xda, 0x28, 0xec, 0xec, 0xb8, 0x4d, 0x97, 0xdf, 0xf3, 0xf3, 0xb0, 0x45, 0xb4, - 0x46, 0xf2, 0x8a, 0x11, 0xc3, 0x76, 0x62, 0x14, 0x2b, 0x9d, 0x92, 0x6c, 0x41, 0xbe, 0xd8, 0x09, - 0x42, 0x6f, 0xbf, 0x10, 0x86, 0xbe, 0xbb, 0xdd, 0x09, 0x69, 0x30, 0x37, 0xad, 0x05, 0xf7, 0xb1, - 0xc5, 0x11, 0x15, 0x72, 0x3b, 0x43, 0x1d, 0x29, 0x6c, 0x27, 0x22, 0xb1, 0xba, 0x98, 0x98, 0xff, - 0x95, 0x01, 0x93, 0x1a, 0x29, 0x79, 0x13, 0x26, 0x6e, 0xfb, 0x2e, 0x6d, 0x35, 0x9a, 0x07, 0xca, - 0x01, 0x08, 0xb5, 0xe3, 0x1d, 0x01, 0xe7, 0x5f, 0xad, 0xa1, 0x45, 0xf6, 0x83, 0x4c, 0xaa, 0x13, - 0xce, 0x35, 0x1e, 0xd2, 0x21, 0x26, 0x68, 0x36, 0x8e, 0x36, 0xc6, 0x09, 0x2a, 0x66, 0xa7, 0x82, - 0x42, 0xde, 0x81, 0x11, 0x7e, 0x6f, 0x25, 0x3c, 0x42, 0xce, 0xa4, 0x7d, 0x26, 0x0f, 0x1f, 0xc2, - 0x89, 0x88, 0xd7, 0xe5, 0x81, 0x25, 0x88, 0xcc, 0x9f, 0x37, 0x80, 0x74, 0xa3, 0x1e, 0x61, 0x4f, - 0x39, 0xf2, 0x1a, 0xfe, 0x8b, 0xd1, 0x6a, 0xcc, 0x6a, 0xd6, 0x43, 0x56, 0x13, 0x2f, 0xe0, 0x1d, - 0x2f, 0x56, 0x9d, 0x6a, 0xe0, 0xe1, 0xc5, 0xe6, 0x5f, 0xca, 0x00, 0xc4, 0xd8, 0xe4, 0xf3, 0x3c, - 0x5b, 0xf1, 0xfb, 0x1d, 0xa7, 0xe9, 0xee, 0xb8, 0x7a, 0xd6, 0x1b, 0x64, 0xf2, 0x0d, 0x59, 0x62, - 0xe9, 0x88, 0xe4, 0x3d, 0x98, 0xae, 0x55, 0x75, 0x5a, 0x25, 0x33, 0x6b, 0xd0, 0xb6, 0x13, 0xe4, - 0x49, 0x6c, 0xf4, 0xfc, 0x52, 0x47, 0x83, 0x7b, 0x7e, 0xf1, 0x81, 0x10, 0x25, 0x4c, 0xb0, 0xd4, - 0xaa, 0xf8, 0xfc, 0x66, 0x83, 0x36, 0x2a, 0x25, 0x21, 0xa5, 0xb0, 0x75, 0x41, 0xdb, 0x6e, 0xf3, - 0x02, 0x7c, 0xf3, 0x51, 0xc3, 0x8b, 0x3b, 0x72, 0xb8, 0x47, 0x88, 0xd0, 0x2f, 0xa0, 0x39, 0x69, - 0xdf, 0x0b, 0xa9, 0x38, 0x45, 0x3f, 0xb3, 0xfa, 0x74, 0x7c, 0xe9, 0x39, 0xac, 0x45, 0x3e, 0x68, - 0x5f, 0xc7, 0x31, 0x36, 0x6f, 0xc4, 0xca, 0x2f, 0xbf, 0xfe, 0x94, 0x97, 0x9e, 0x8a, 0xea, 0xf7, - 0xb7, 0x0c, 0x38, 0x99, 0x4a, 0x4b, 0xae, 0x02, 0xc4, 0xb6, 0x0a, 0xd1, 0x4b, 0xfc, 0xe9, 0xcd, - 0x08, 0x6a, 0x29, 0x18, 0xe4, 0x2b, 0x49, 0x2b, 0xc3, 0xd1, 0x1b, 0xe1, 0x59, 0x99, 0x43, 0x41, - 0xb7, 0x32, 0xa4, 0xd8, 0x16, 0xcc, 0xdf, 0xc8, 0xc2, 0x8c, 0x12, 0xc2, 0xcb, 0xdb, 0x7a, 0x84, - 0x27, 0xde, 0x7d, 0xf9, 0xcc, 0xab, 0x70, 0xbf, 0xce, 0x68, 0x4f, 0x3d, 0x77, 0x71, 0xbb, 0xaa, - 0x22, 0xf3, 0xc4, 0x21, 0x28, 0x3a, 0xc5, 0xab, 0xaf, 0x5d, 0x6e, 0xd8, 0x1a, 0x73, 0x12, 0xc0, - 0x64, 0xe9, 0xa0, 0xe5, 0xec, 0x47, 0xb5, 0xf1, 0x8b, 0xfa, 0xd7, 0x7a, 0xd6, 0xa6, 0x61, 0xf3, - 0xea, 0xa4, 0xce, 0x39, 0xd7, 0xe0, 0x65, 0x29, 0x01, 0x46, 0x1a, 0xd5, 0xd9, 0xf7, 0x60, 0xa6, - 0xab, 0xd1, 0xc7, 0xca, 0x61, 0xb2, 0x05, 0xa4, 0xbb, 0x1d, 0x29, 0x1c, 0x5e, 0xd3, 0x33, 0xe4, - 0x9c, 0x8c, 0xae, 0xf1, 0xf0, 0x0d, 0x29, 0x7e, 0xed, 0xbf, 0xa0, 0x66, 0x38, 0xf9, 0x85, 0x8c, - 0x1a, 0x3f, 0xf0, 0xac, 0xaf, 0xba, 0x2f, 0x6a, 0xa7, 0xac, 0x73, 0xbd, 0xc6, 0x74, 0xa0, 0xd3, - 0xec, 0xf7, 0xb3, 0x70, 0xba, 0x07, 0x25, 0x39, 0x48, 0x4e, 0x22, 0x7e, 0xba, 0xbd, 0xde, 0xbf, - 0xc2, 0xa7, 0x31, 0x95, 0xc8, 0xe7, 0x79, 0x04, 0x61, 0x1d, 0xdf, 0x56, 0x12, 0xe7, 0x3a, 0xfe, - 0x6c, 0x5e, 0x04, 0x4d, 0x86, 0x0e, 0x72, 0x28, 0x79, 0x0f, 0x86, 0x31, 0x78, 0x24, 0x91, 0x42, - 0x84, 0x61, 0x20, 0x5c, 0xc9, 0xb7, 0xc2, 0x7e, 0x6a, 0xf9, 0x56, 0xf0, 0x1d, 0xf3, 0xcf, 0x41, - 0xb6, 0xb0, 0x55, 0x13, 0xe3, 0x32, 0xa5, 0x92, 0x6f, 0xd5, 0xe2, 0xe4, 0x94, 0x8e, 0x96, 0x45, - 0x92, 0x51, 0x30, 0xc2, 0x3b, 0xc5, 0xaa, 0x18, 0x15, 0x95, 0xf0, 0x4e, 0xb1, 0x1a, 0x13, 0xee, - 0xd6, 0xb5, 0x90, 0xec, 0x3b, 0xc5, 0xea, 0x27, 0x37, 0xed, 0x7f, 0x3a, 0xc3, 0xc3, 0x1e, 0xf9, - 0x87, 0xbd, 0x07, 0x13, 0x5a, 0x06, 0x33, 0x23, 0xd6, 0xc7, 0xa2, 0xec, 0x6b, 0x09, 0x3f, 0x09, - 0x8d, 0x40, 0xa6, 0x79, 0x8d, 0x5e, 0x44, 0x57, 0xdd, 0x1c, 0xf4, 0x57, 0xd4, 0x93, 0x69, 0x5e, - 0x23, 0x12, 0x72, 0x03, 0x72, 0xeb, 0xb4, 0xe5, 0xb4, 0xc2, 0xc8, 0xd0, 0x86, 0x6e, 0x79, 0x21, - 0xc2, 0x74, 0xad, 0x21, 0x42, 0xc4, 0xf7, 0xeb, 0x95, 0xf7, 0xdc, 0xa3, 0xbd, 0x98, 0xbb, 0x9d, - 0x2a, 0x25, 0x3a, 0x83, 0x04, 0x91, 0xf9, 0x0b, 0x06, 0x8c, 0x8a, 0x81, 0x54, 0x1e, 0x11, 0x36, - 0x06, 0x78, 0x44, 0xf8, 0x26, 0x8c, 0x89, 0x08, 0x1e, 0xfd, 0xe9, 0x7f, 0x11, 0xf4, 0x93, 0x78, - 0xfa, 0x3f, 0x42, 0x1d, 0xd4, 0xd5, 0xdd, 0xfc, 0x1b, 0xa2, 0x65, 0x77, 0x8a, 0x55, 0xb2, 0x00, - 0x39, 0xf9, 0x16, 0xbb, 0x68, 0x1b, 0x8a, 0x1d, 0xf9, 0x68, 0xbb, 0xda, 0x41, 0x12, 0x8f, 0xb5, - 0x2f, 0x7a, 0xf7, 0x5d, 0x6d, 0x5f, 0xfc, 0x46, 0xbc, 0xda, 0xbe, 0x08, 0x75, 0xe0, 0xf6, 0xd1, - 0x14, 0x21, 0xb1, 0x79, 0x63, 0xd9, 0x0d, 0x42, 0x72, 0x57, 0x0d, 0x21, 0x10, 0x45, 0x52, 0x52, - 0x9c, 0xed, 0x25, 0x29, 0x36, 0x6f, 0x58, 0x29, 0x54, 0x78, 0x5f, 0x13, 0x83, 0x6b, 0xd4, 0x7f, - 0xf0, 0x0c, 0x4b, 0xe9, 0xf4, 0xfb, 0x9a, 0xe4, 0xe7, 0x0d, 0x24, 0xa4, 0xff, 0x79, 0x06, 0x4e, - 0xa5, 0x13, 0xaa, 0xdf, 0x62, 0xf4, 0xf9, 0x96, 0x4b, 0x90, 0x5b, 0xf2, 0x82, 0x50, 0x71, 0x8d, - 0x42, 0xb3, 0xf2, 0x9e, 0x80, 0x59, 0x51, 0x29, 0x3b, 0x73, 0xb3, 0xbf, 0xa3, 0xe5, 0x89, 0xfc, - 0x30, 0xd8, 0x8f, 0x9d, 0xb9, 0x79, 0x11, 0xb9, 0x03, 0x39, 0x4b, 0xb8, 0xb0, 0x27, 0xba, 0x46, - 0x82, 0x23, 0x6d, 0x8a, 0xf8, 0x02, 0xa2, 0x25, 0x92, 0x13, 0x30, 0x52, 0x80, 0x51, 0x31, 0xfa, - 0x89, 0x2b, 0xc9, 0x94, 0x29, 0xa3, 0xe7, 0x76, 0x94, 0x74, 0x4c, 0xa2, 0xe0, 0xe5, 0x52, 0xa5, - 0x24, 0xbd, 0xd1, 0x51, 0xa2, 0xf0, 0xcb, 0x27, 0x3d, 0x9b, 0x64, 0x84, 0x68, 0xfe, 0x44, 0x06, - 0x60, 0x8b, 0x6e, 0x3f, 0xdb, 0xcf, 0xa2, 0x7c, 0x4e, 0x9b, 0x61, 0x8a, 0xe7, 0xc5, 0xe0, 0xaf, - 0xa2, 0xac, 0xa1, 0x07, 0xc4, 0xe0, 0x6f, 0xa2, 0xcc, 0xc3, 0x30, 0xb7, 0x76, 0x2a, 0x87, 0x44, - 0x6e, 0xe6, 0xe4, 0x70, 0x73, 0x1b, 0x66, 0xef, 0xd0, 0x30, 0x36, 0x6f, 0xc9, 0x2b, 0xad, 0xfe, - 0x6c, 0x5f, 0x87, 0x31, 0x81, 0xaf, 0xbf, 0xab, 0x2f, 0xe3, 0x67, 0xd1, 0x16, 0x23, 0x11, 0x98, - 0x34, 0x2a, 0xd1, 0x26, 0x0d, 0xe9, 0x27, 0x5b, 0x4d, 0x0d, 0x08, 0xff, 0x14, 0xfc, 0xb2, 0xc1, - 0x6a, 0x38, 0xb2, 0x7f, 0x36, 0xe1, 0x64, 0xd4, 0xf6, 0xa7, 0xc9, 0xf7, 0x1a, 0x3b, 0x52, 0x8a, - 0xb4, 0x88, 0x31, 0xc7, 0x3e, 0x3e, 0x0d, 0x8f, 0xe0, 0xac, 0x24, 0xd8, 0x72, 0x23, 0x17, 0xb2, - 0x81, 0x68, 0xc9, 0xdb, 0x30, 0xae, 0xd0, 0x88, 0xc4, 0xb3, 0x68, 0xfe, 0x7c, 0xe8, 0x86, 0x7b, - 0x76, 0xc0, 0xe1, 0xaa, 0xf9, 0x53, 0x41, 0x37, 0x3f, 0x84, 0xe7, 0x23, 0x87, 0xfb, 0x94, 0xaa, - 0x13, 0xcc, 0x8d, 0xe3, 0x31, 0x5f, 0x8d, 0x3f, 0xab, 0xd2, 0x8a, 0x62, 0xce, 0x24, 0x6f, 0xa2, - 0x7e, 0x96, 0xf8, 0x98, 0x17, 0xba, 0xa2, 0xd8, 0x94, 0x60, 0x35, 0xf3, 0x2d, 0xa5, 0xb1, 0x29, - 0x0c, 0x35, 0x62, 0x23, 0x49, 0xfc, 0x13, 0x19, 0x98, 0x5e, 0xab, 0x94, 0x8a, 0x91, 0x57, 0xcb, - 0xa7, 0xec, 0xcd, 0x16, 0xed, 0xdb, 0x7a, 0xcb, 0x1b, 0x73, 0x03, 0x4e, 0x24, 0xba, 0x01, 0x55, - 0x87, 0x77, 0xb9, 0x63, 0x7c, 0x04, 0x96, 0x6a, 0xc3, 0xa9, 0x34, 0xf6, 0x9b, 0x37, 0xac, 0x04, - 0xb6, 0xf9, 0x77, 0x73, 0x09, 0xbe, 0x42, 0x84, 0xbd, 0x0e, 0x63, 0x95, 0x20, 0xe8, 0x50, 0x7f, - 0xc3, 0x5a, 0x56, 0x4d, 0x05, 0x2e, 0x02, 0xed, 0x8e, 0xdf, 0xb4, 0x62, 0x04, 0x72, 0x19, 0x72, - 0x22, 0x15, 0x9f, 0x94, 0x09, 0x68, 0xb5, 0x8d, 0x32, 0xf9, 0x59, 0x51, 0x31, 0x79, 0x13, 0x26, - 0xf8, 0xdf, 0x7c, 0xb6, 0x89, 0x0e, 0x47, 0xe3, 0xa0, 0x40, 0xe7, 0xb3, 0xd3, 0xd2, 0xd0, 0xc8, - 0x15, 0xc8, 0x16, 0x8a, 0x96, 0xfa, 0x9c, 0xb6, 0x53, 0xf7, 0xf9, 0xb3, 0xfa, 0xfa, 0x21, 0xa2, - 0x68, 0x31, 0xed, 0x4f, 0x98, 0x92, 0x7c, 0x61, 0xc9, 0xc6, 0x19, 0x20, 0xad, 0x4d, 0x89, 0xcd, - 0x0c, 0x61, 0xe4, 0x1a, 0x8c, 0x96, 0xdc, 0xa0, 0xdd, 0x74, 0x0e, 0x84, 0x1d, 0x9b, 0x67, 0x72, - 0xe7, 0x20, 0x75, 0xce, 0x08, 0x2c, 0x72, 0x19, 0x86, 0xd1, 0xc8, 0x2a, 0x6c, 0xd9, 0x3c, 0x1b, - 0x39, 0x03, 0x68, 0xd9, 0xc8, 0x19, 0x00, 0x33, 0xbd, 0xf2, 0x84, 0x75, 0x63, 0x4a, 0xa6, 0xd7, - 0x64, 0xa2, 0x3a, 0x81, 0xd3, 0x1d, 0x49, 0x05, 0x4f, 0x33, 0x92, 0x6a, 0x1b, 0x4e, 0xdf, 0x41, - 0xeb, 0x8d, 0x1e, 0x54, 0xbf, 0x61, 0x55, 0x84, 0x3d, 0x1c, 0x6f, 0x7c, 0xb8, 0x81, 0x27, 0x19, - 0x97, 0x6f, 0x77, 0x7c, 0xf5, 0x61, 0x92, 0x5e, 0x8c, 0xc8, 0x97, 0x60, 0x36, 0xad, 0x48, 0x58, - 0xcd, 0x31, 0x7c, 0x3c, 0xbd, 0x02, 0x35, 0x7c, 0x3c, 0x8d, 0x03, 0x59, 0x86, 0x3c, 0x87, 0x17, - 0x1a, 0xfb, 0x6e, 0x8b, 0x5b, 0xfe, 0x27, 0xe3, 0x47, 0x45, 0x05, 0x57, 0x87, 0x15, 0xf2, 0x1b, - 0x00, 0x2d, 0x44, 0x22, 0x41, 0x49, 0x7e, 0xce, 0x60, 0xa7, 0x39, 0x9e, 0xde, 0x6d, 0xc3, 0x5a, - 0x0e, 0x44, 0xea, 0x91, 0x53, 0x71, 0xf4, 0x43, 0x2d, 0xf4, 0xdd, 0xd6, 0xae, 0x08, 0x7f, 0x58, - 0x17, 0xe1, 0x0f, 0x6f, 0x7f, 0xac, 0xf0, 0x07, 0xce, 0x2a, 0x78, 0x7c, 0x38, 0x3f, 0xe1, 0x8b, - 0x3a, 0x71, 0x15, 0x69, 0x2d, 0xc0, 0x97, 0x09, 0x9b, 0x4d, 0xef, 0xe1, 0x46, 0xeb, 0x01, 0xf5, - 0xdd, 0x1d, 0x97, 0x36, 0xf8, 0x47, 0x4e, 0xa3, 0x04, 0xe7, 0x2f, 0x13, 0xe2, 0x4b, 0x95, 0x9d, - 0x08, 0xa1, 0xeb, 0x43, 0x53, 0x39, 0xb0, 0x83, 0xa7, 0x74, 0xd8, 0xe7, 0x71, 0x6c, 0xf9, 0xf8, - 0xe0, 0x29, 0xbd, 0xfb, 0x6d, 0x9c, 0x46, 0xea, 0xe4, 0xd1, 0x48, 0x84, 0x77, 0xf0, 0x5f, 0x1d, - 0xe3, 0x12, 0xb9, 0xd0, 0x09, 0xf7, 0xa4, 0x0c, 0x5f, 0x48, 0x0b, 0x3a, 0xe0, 0x2e, 0x4f, 0x4a, - 0xd0, 0x81, 0x1e, 0x6a, 0x20, 0x4d, 0xe9, 0x99, 0x54, 0x53, 0xfa, 0xeb, 0x30, 0x86, 0xef, 0x30, - 0x47, 0xde, 0xdd, 0x39, 0x61, 0xab, 0x64, 0x40, 0x9e, 0xc7, 0x2c, 0x46, 0x20, 0xd7, 0x00, 0x30, - 0xf3, 0x3f, 0xdf, 0xe0, 0x95, 0x5c, 0xa4, 0xf8, 0x40, 0x80, 0xb8, 0x45, 0x56, 0x50, 0x90, 0x7d, - 0xcd, 0xba, 0xad, 0x5e, 0x3b, 0x73, 0xf6, 0x81, 0xbf, 0x23, 0xd0, 0x63, 0x04, 0xf6, 0x79, 0xca, - 0x30, 0x09, 0xa1, 0x92, 0xef, 0x1a, 0x4b, 0x15, 0x09, 0x3d, 0xba, 0xa4, 0x2b, 0x2b, 0xca, 0x94, - 0x09, 0xe1, 0xd1, 0x15, 0xb9, 0xbd, 0x5a, 0x31, 0x02, 0xf9, 0x1c, 0x8c, 0x16, 0xa9, 0x1f, 0xae, - 0xaf, 0x2f, 0xe3, 0xcd, 0x30, 0x4f, 0xd8, 0x99, 0xc3, 0xe4, 0x8a, 0x61, 0xd8, 0xfc, 0xc1, 0xe1, - 0xfc, 0x64, 0xe8, 0xee, 0xd3, 0xab, 0xd1, 0x35, 0xae, 0xc4, 0x26, 0x8b, 0x90, 0xe7, 0x77, 0x8c, - 0xb1, 0x22, 0x87, 0x62, 0x26, 0xc7, 0x85, 0x9e, 0xb8, 0x90, 0x7c, 0x48, 0xb7, 0xa3, 0xd4, 0x92, - 0x5d, 0xf8, 0xa4, 0x2c, 0x33, 0xb2, 0xaa, 0x1f, 0x09, 0xb1, 0x65, 0x41, 0x08, 0x66, 0xed, 0x5b, - 0xbb, 0x29, 0x48, 0x01, 0x26, 0x8b, 0xde, 0x7e, 0xdb, 0x09, 0x5d, 0x4c, 0xc9, 0x7f, 0x20, 0x24, - 0x0a, 0x5a, 0x47, 0xea, 0x6a, 0x81, 0xfe, 0xac, 0xb2, 0x52, 0x40, 0x6e, 0xc3, 0x94, 0xe5, 0x75, - 0xd8, 0x20, 0xc9, 0x23, 0x0d, 0x17, 0x1a, 0x18, 0xbd, 0xe9, 0xb3, 0x12, 0x26, 0xe3, 0xc4, 0xf9, - 0x45, 0x4b, 0xc9, 0xa3, 0x51, 0x91, 0xd5, 0x14, 0xdb, 0xb2, 0x2a, 0x29, 0xd4, 0x04, 0x93, 0x5d, - 0xcc, 0x52, 0xcc, 0xd2, 0x37, 0x60, 0xbc, 0x56, 0x5b, 0x5b, 0xa7, 0x41, 0x78, 0xbb, 0xe9, 0x3d, - 0x44, 0x41, 0x91, 0x13, 0x79, 0xad, 0x03, 0xcf, 0x0e, 0x69, 0x10, 0xda, 0x3b, 0x4d, 0xef, 0xa1, - 0xa5, 0x62, 0x91, 0xaf, 0x29, 0xef, 0x4c, 0xe3, 0xce, 0x3f, 0x7d, 0xe4, 0xce, 0x9f, 0x78, 0x83, - 0x9a, 0xed, 0xff, 0xa9, 0x6f, 0x50, 0x33, 0x74, 0x0c, 0x55, 0x60, 0x87, 0xb1, 0x42, 0xa3, 0xe1, - 0xd3, 0x20, 0x10, 0x2b, 0x5a, 0x79, 0x45, 0xdf, 0xe1, 0x05, 0x5a, 0xa8, 0x82, 0x42, 0x40, 0xbe, - 0x65, 0xc0, 0x49, 0xd5, 0xdb, 0x19, 0x17, 0xcb, 0x3e, 0x6d, 0x85, 0xe2, 0x65, 0x92, 0x37, 0xae, - 0x4a, 0x89, 0x76, 0x55, 0x41, 0xbb, 0xfa, 0xe0, 0xfa, 0x55, 0xe5, 0xf1, 0xd3, 0x9a, 0x24, 0x12, - 0xf9, 0x3b, 0xd2, 0xf8, 0xa9, 0xd2, 0xc9, 0x49, 0x21, 0x25, 0x45, 0xb6, 0xe9, 0xb1, 0xf9, 0x84, - 0xbe, 0x0d, 0x95, 0x2a, 0xa6, 0x28, 0x12, 0xc6, 0x29, 0x31, 0xfb, 0xb8, 0x17, 0x84, 0xdb, 0xd6, - 0xf7, 0x36, 0x85, 0x06, 0x55, 0xc5, 0x5a, 0x61, 0x65, 0x39, 0xd6, 0x77, 0x3e, 0x5d, 0x2e, 0xc6, - 0xda, 0xb7, 0xf5, 0x71, 0x31, 0xde, 0x80, 0x13, 0x89, 0x6e, 0x90, 0xaa, 0xa2, 0x06, 0x4e, 0xaa, - 0x8a, 0x09, 0x1a, 0x2b, 0x81, 0x6d, 0xfe, 0xfa, 0x68, 0x82, 0xaf, 0x70, 0x2b, 0x32, 0x61, 0x84, - 0x6b, 0x82, 0xea, 0x4b, 0x7b, 0x5c, 0x4f, 0xb4, 0x44, 0x09, 0x39, 0x03, 0xd9, 0x5a, 0x6d, 0x4d, - 0x7d, 0x07, 0x34, 0x08, 0x3c, 0x8b, 0xc1, 0xd8, 0x08, 0xa1, 0xc7, 0x90, 0x92, 0x2b, 0x90, 0x89, - 0x3d, 0x0b, 0xa1, 0xac, 0xbf, 0xa5, 0x5e, 0x36, 0x14, 0xf7, 0xb7, 0xd0, 0xcb, 0x62, 0x6d, 0xac, - 0x08, 0x73, 0x85, 0x20, 0xa0, 0x3e, 0x3e, 0x3a, 0xcc, 0x1d, 0x51, 0x7c, 0xa1, 0x3b, 0x08, 0xe9, - 0x8e, 0x95, 0x3a, 0xf5, 0xc0, 0xea, 0x89, 0x48, 0x2e, 0x41, 0xae, 0xd0, 0x69, 0xb8, 0xb4, 0x55, - 0xd7, 0x92, 0x48, 0x38, 0x02, 0x66, 0x45, 0xa5, 0xe4, 0x7d, 0x38, 0x29, 0x88, 0xa4, 0x02, 0x29, - 0x7a, 0x60, 0x34, 0x5e, 0x82, 0x52, 0xb7, 0x89, 0x2f, 0x39, 0x79, 0x97, 0xa4, 0x53, 0x92, 0x02, - 0xe4, 0xcb, 0xe8, 0x52, 0x5f, 0xa2, 0xdc, 0xde, 0xea, 0xf9, 0xe2, 0xbd, 0x74, 0xd4, 0x44, 0xb9, - 0xbb, 0xbd, 0xdd, 0x88, 0x0a, 0xad, 0x2e, 0x74, 0x72, 0x0f, 0x4e, 0x24, 0x61, 0x4c, 0x90, 0x73, - 0xa5, 0x13, 0x93, 0x55, 0x75, 0x71, 0x41, 0x51, 0x9e, 0x46, 0x45, 0xb6, 0x61, 0x26, 0xbe, 0xe4, - 0xd7, 0x55, 0x51, 0xe9, 0x93, 0x16, 0x95, 0x4b, 0x75, 0xf4, 0x79, 0x31, 0x19, 0x4f, 0xc4, 0x0e, - 0x03, 0x91, 0x4a, 0x6a, 0x75, 0xb3, 0x23, 0x0d, 0x98, 0xaa, 0xb9, 0xbb, 0x2d, 0xb7, 0xb5, 0x7b, - 0x8f, 0x1e, 0x54, 0x1d, 0xd7, 0x17, 0xde, 0x41, 0xd2, 0xf7, 0xaf, 0x10, 0x1c, 0xec, 0xef, 0xd3, - 0xd0, 0xc7, 0x2d, 0x92, 0x95, 0x63, 0x44, 0x9d, 0xc1, 0xf6, 0x82, 0x80, 0xd3, 0x61, 0xf4, 0x48, - 0xdb, 0x71, 0xb5, 0xbd, 0x40, 0xe7, 0xa9, 0x1d, 0x07, 0x26, 0x06, 0x3c, 0x0e, 0x34, 0x61, 0xa6, - 0xdc, 0xaa, 0xfb, 0x07, 0x68, 0xf6, 0x96, 0x8d, 0x9b, 0x3c, 0xa2, 0x71, 0x2f, 0x8b, 0xc6, 0xbd, - 0xe0, 0xc8, 0x19, 0x96, 0xd6, 0xbc, 0x6e, 0xc6, 0xa4, 0x26, 0x1e, 0x87, 0xaf, 0x94, 0xaa, 0x95, - 0x96, 0x1b, 0xba, 0xf8, 0xe6, 0x1d, 0xdf, 0x63, 0x5e, 0x11, 0x3c, 0x5f, 0xe4, 0x6a, 0x9f, 0xdb, - 0x68, 0xdb, 0xae, 0x44, 0xe9, 0x7a, 0xfd, 0x5d, 0xa5, 0x37, 0xff, 0x93, 0x1c, 0x97, 0x86, 0xaa, - 0x9a, 0xd6, 0xcb, 0xdf, 0x29, 0xa1, 0xbe, 0x65, 0x8e, 0xa3, 0xbe, 0x65, 0x8f, 0x56, 0xdf, 0x86, - 0x8e, 0x52, 0xdf, 0x12, 0xfa, 0xd5, 0xf0, 0xb1, 0xf5, 0xab, 0x91, 0x63, 0xe8, 0x57, 0xa3, 0xc7, - 0xd2, 0xaf, 0x34, 0x45, 0x31, 0x77, 0x94, 0xa2, 0xf8, 0xff, 0x69, 0x63, 0xcf, 0xaa, 0x36, 0x96, - 0xb6, 0xb9, 0x1e, 0x4b, 0x1b, 0xeb, 0xad, 0x4c, 0xe5, 0xff, 0xac, 0x95, 0xa9, 0x99, 0x8f, 0xa1, - 0x4c, 0xfd, 0x05, 0xc8, 0x27, 0xe5, 0xfb, 0xd1, 0x69, 0x92, 0x9e, 0x5a, 0x0e, 0x12, 0xb6, 0xfb, - 0x24, 0xe5, 0x2b, 0x3b, 0xe4, 0x55, 0x7d, 0xf7, 0x81, 0x13, 0xd2, 0xf8, 0xad, 0x69, 0x3c, 0xe4, - 0xb5, 0x39, 0x14, 0xd7, 0xbc, 0x82, 0x12, 0xa9, 0x16, 0x99, 0x34, 0xd5, 0xc2, 0xfc, 0xc9, 0x0c, - 0xcc, 0xf0, 0xb4, 0x09, 0xcf, 0xbe, 0x6d, 0xf1, 0x5d, 0x4d, 0x61, 0x94, 0x2e, 0x44, 0x89, 0xaf, - 0xeb, 0x63, 0x5d, 0xfc, 0x2a, 0x9c, 0xec, 0xea, 0x0a, 0x54, 0x1a, 0x4b, 0x32, 0x61, 0x45, 0x97, - 0xda, 0x38, 0x97, 0x5e, 0xc9, 0xe6, 0x0d, 0xab, 0x8b, 0xc2, 0xfc, 0x37, 0xd9, 0x2e, 0xfe, 0xc2, - 0xce, 0xa8, 0x5a, 0x0e, 0x8d, 0xe3, 0x59, 0x0e, 0x33, 0x83, 0x59, 0x0e, 0x13, 0x7b, 0x4b, 0x76, - 0x90, 0xbd, 0xe5, 0x7d, 0x98, 0x5c, 0xa7, 0xce, 0x7e, 0xb0, 0xee, 0x89, 0x5c, 0xac, 0xdc, 0x85, - 0x50, 0xe6, 0xa3, 0x60, 0x65, 0x52, 0xe7, 0x89, 0x5c, 0x21, 0x42, 0x46, 0xc0, 0xe4, 0x21, 0x4f, - 0xce, 0x6a, 0xe9, 0x1c, 0x54, 0x45, 0x76, 0xb8, 0x8f, 0x22, 0x5b, 0x83, 0x09, 0x41, 0x17, 0xe7, - 0x86, 0x8a, 0x35, 0x2e, 0x56, 0x84, 0x70, 0x59, 0x7b, 0xf4, 0x66, 0x4d, 0x54, 0x3b, 0x57, 0xb6, - 0x34, 0x26, 0xac, 0x0b, 0xca, 0xad, 0x46, 0xdb, 0x73, 0x5b, 0xd8, 0x05, 0xa3, 0x71, 0x17, 0x50, - 0x01, 0xe6, 0x5d, 0xa0, 0x20, 0x91, 0xb7, 0x61, 0xaa, 0x50, 0xad, 0xa8, 0x64, 0xb9, 0xd8, 0x78, - 0xe9, 0xb4, 0x5d, 0x5b, 0x23, 0x4d, 0xe0, 0x9a, 0x3f, 0x3a, 0x26, 0xd7, 0xd6, 0x27, 0x6b, 0x25, - 0xd2, 0xed, 0x3e, 0xd9, 0x63, 0xda, 0x7d, 0x86, 0x8e, 0xda, 0xce, 0x35, 0x1d, 0x63, 0xf8, 0x18, - 0x3a, 0xc6, 0xc8, 0x13, 0xdb, 0x70, 0x46, 0x8f, 0xa9, 0x35, 0x24, 0xa6, 0x79, 0x6e, 0x90, 0x69, - 0x9e, 0xaa, 0x69, 0x8c, 0x3d, 0xb9, 0xa6, 0x01, 0xc7, 0xd6, 0x34, 0x94, 0x67, 0x99, 0xc7, 0x07, - 0x7a, 0x96, 0xd9, 0x18, 0xe0, 0x59, 0xe6, 0x4f, 0x95, 0xfa, 0xf2, 0xf5, 0x74, 0xf5, 0xa5, 0xbf, - 0xa8, 0xff, 0x7f, 0xb3, 0x02, 0xe3, 0x63, 0x2f, 0x6f, 0x39, 0x3e, 0x3b, 0x0b, 0x06, 0xe4, 0x1a, - 0x8c, 0xca, 0xcc, 0x32, 0x46, 0x7c, 0xac, 0xee, 0x4e, 0x29, 0x23, 0xb1, 0xd8, 0xb1, 0x51, 0x12, - 0x8b, 0xd8, 0x6a, 0x9e, 0x44, 0x43, 0xc0, 0xb4, 0x24, 0x1a, 0x02, 0x66, 0xfe, 0xed, 0x21, 0xb9, - 0x92, 0xd9, 0xb1, 0x46, 0xbc, 0xcf, 0xb7, 0xa8, 0x8c, 0x9c, 0xa2, 0x3e, 0x25, 0xc6, 0x26, 0xe1, - 0x33, 0xa4, 0x93, 0x7c, 0x9c, 0xb4, 0x3c, 0xca, 0x93, 0x09, 0xd9, 0x01, 0x9e, 0x4c, 0xb8, 0xa5, - 0xbd, 0x37, 0x30, 0x14, 0x27, 0xb8, 0x66, 0xb3, 0xbb, 0xff, 0x4b, 0x03, 0x37, 0xd5, 0x87, 0x01, - 0x86, 0xe3, 0x30, 0x74, 0xa4, 0xec, 0xf3, 0x24, 0x40, 0xa4, 0x0f, 0x8e, 0x1c, 0x27, 0x45, 0xd5, - 0xe8, 0x9f, 0x69, 0x8a, 0xaa, 0x32, 0x80, 0xf2, 0x68, 0x1b, 0x37, 0xd5, 0xbf, 0xc2, 0xba, 0xe9, - 0xe8, 0x07, 0xdb, 0x14, 0x42, 0xf3, 0x9f, 0x10, 0x98, 0xa9, 0xd5, 0xd6, 0x4a, 0xae, 0xb3, 0xdb, - 0xf2, 0x82, 0xd0, 0xad, 0x57, 0x5a, 0x3b, 0x1e, 0x53, 0x86, 0x22, 0xa9, 0xa0, 0xa4, 0x4b, 0x8a, - 0x25, 0x42, 0x54, 0xcc, 0x94, 0xed, 0xb2, 0xef, 0x7b, 0xbe, 0xaa, 0x6c, 0x53, 0x06, 0xb0, 0x38, - 0x9c, 0xe9, 0x1b, 0xb5, 0x0e, 0x7f, 0x7d, 0x8b, 0xdf, 0x9e, 0xa0, 0xbe, 0x11, 0x70, 0x90, 0x25, - 0xcb, 0x08, 0xed, 0x9e, 0xb0, 0x42, 0xff, 0x3c, 0xad, 0x25, 0xba, 0x8a, 0x8b, 0xb9, 0xcc, 0x13, - 0x7b, 0x12, 0x06, 0xa1, 0xb4, 0x11, 0xae, 0x5e, 0xb5, 0x75, 0xad, 0x81, 0x03, 0x38, 0xa9, 0x05, - 0x53, 0x0c, 0x6a, 0x51, 0xba, 0x22, 0xf4, 0x1b, 0x13, 0x63, 0xc2, 0x52, 0xcc, 0x4a, 0x6a, 0x82, - 0xde, 0xd4, 0x1a, 0xc8, 0x4f, 0x1a, 0xf0, 0x62, 0x6a, 0x49, 0xb4, 0xba, 0xc7, 0xb5, 0x64, 0x63, - 0x8a, 0xd0, 0xe0, 0xa9, 0x88, 0x7b, 0x55, 0x6d, 0xa7, 0x88, 0x82, 0xfe, 0x35, 0x91, 0xdf, 0x32, - 0xe0, 0xb4, 0x86, 0x11, 0xc9, 0xbc, 0x00, 0xf7, 0xa6, 0x9e, 0xf3, 0xfa, 0xa3, 0xa7, 0x33, 0xaf, - 0x2f, 0xe8, 0xdf, 0x12, 0x8b, 0x64, 0xf5, 0x1b, 0x7a, 0xb5, 0x90, 0x3c, 0x80, 0x19, 0x2c, 0x92, - 0xd6, 0x2d, 0x36, 0x67, 0x85, 0x51, 0x6c, 0x36, 0x6e, 0x36, 0x0f, 0x10, 0xc2, 0xe7, 0x64, 0x16, - 0xbe, 0x7f, 0x38, 0x3f, 0xa9, 0xa1, 0x63, 0xc6, 0x54, 0x6c, 0x43, 0x64, 0x22, 0x73, 0x5b, 0x3b, - 0x9e, 0xf6, 0xfa, 0x7e, 0xb2, 0x0a, 0xf2, 0x9f, 0x19, 0x30, 0xc7, 0xa0, 0xfc, 0x33, 0x6e, 0xfb, - 0xde, 0x7e, 0x54, 0x2e, 0xef, 0x6c, 0x7b, 0x74, 0x5b, 0xf3, 0xe9, 0x74, 0xdb, 0x2b, 0xd8, 0x64, - 0x2e, 0x13, 0xec, 0x1d, 0xdf, 0xdb, 0x8f, 0x9b, 0xaf, 0x3d, 0x4a, 0xd6, 0xab, 0x91, 0xe4, 0xc7, - 0x0c, 0x38, 0xa3, 0x19, 0x18, 0xd4, 0xec, 0x9e, 0x22, 0x0c, 0x4b, 0x5e, 0xf0, 0xab, 0x45, 0x8b, - 0x57, 0xc5, 0xfc, 0xbf, 0x88, 0x2d, 0x88, 0x77, 0x0b, 0x6c, 0x8b, 0xbd, 0xcf, 0xb1, 0x94, 0x26, - 0xf4, 0xae, 0x85, 0xb8, 0x30, 0x83, 0x37, 0x4e, 0x9a, 0x6f, 0xc1, 0x6c, 0x6f, 0xdf, 0x82, 0x28, - 0xed, 0x3f, 0x66, 0x50, 0xec, 0xed, 0x60, 0xd0, 0xcd, 0x95, 0xfc, 0x30, 0x9c, 0xe9, 0x02, 0x46, - 0xab, 0xed, 0x64, 0xcf, 0xd5, 0xf6, 0xda, 0xe3, 0xc3, 0xf9, 0x57, 0xd3, 0x6a, 0x4b, 0x5b, 0x69, - 0xbd, 0x6b, 0x20, 0x0e, 0x40, 0x5c, 0x28, 0xde, 0x36, 0x4b, 0x9f, 0xa0, 0xaf, 0x89, 0xf9, 0xa1, - 0xe0, 0x33, 0x59, 0xae, 0xb4, 0x41, 0xdd, 0xf2, 0x62, 0x24, 0x42, 0x61, 0x42, 0xc9, 0x1e, 0x79, - 0x80, 0x8f, 0x9c, 0xf5, 0xac, 0xe4, 0xfb, 0x87, 0xf3, 0x1a, 0x36, 0xd3, 0x8b, 0xd5, 0xb4, 0x94, - 0xaa, 0x5e, 0xac, 0x21, 0x92, 0xbf, 0x6f, 0xc0, 0x2c, 0x03, 0xc4, 0x93, 0x4a, 0x7c, 0xd4, 0x5c, - 0xbf, 0x59, 0xbf, 0xf7, 0x74, 0x66, 0xfd, 0x4b, 0xd8, 0x46, 0x75, 0xd6, 0x77, 0x75, 0x49, 0x6a, - 0xe3, 0x70, 0xb6, 0x6b, 0x97, 0x9b, 0xda, 0x6c, 0x3f, 0x33, 0xc0, 0x6c, 0xe7, 0x03, 0x70, 0xf4, - 0x6c, 0xef, 0x59, 0x0b, 0x59, 0x87, 0x09, 0xa1, 0x12, 0xf3, 0x0e, 0x3b, 0xa7, 0x25, 0xab, 0x53, - 0x8b, 0xf8, 0x39, 0x45, 0x24, 0xd7, 0xec, 0xfa, 0x42, 0x8d, 0x0b, 0x69, 0xc1, 0x09, 0xfe, 0x5b, - 0xb7, 0x0e, 0xcc, 0xf7, 0xb4, 0x0e, 0x5c, 0x12, 0x5f, 0x74, 0x5e, 0xf0, 0x4f, 0x18, 0x09, 0xd4, - 0x77, 0x0d, 0x52, 0x18, 0x93, 0x36, 0x10, 0x0d, 0xcc, 0x17, 0xed, 0xf9, 0xfe, 0x36, 0x81, 0x57, - 0x45, 0x9d, 0xf3, 0xc9, 0x3a, 0x93, 0x2b, 0x37, 0x85, 0x37, 0x71, 0x60, 0x5a, 0x40, 0xd9, 0x01, - 0x18, 0x25, 0xfc, 0x4b, 0x5a, 0xc4, 0x76, 0xa2, 0x94, 0xbf, 0x49, 0x25, 0x6b, 0xc2, 0x88, 0xfa, - 0x84, 0x40, 0x4f, 0xf2, 0x23, 0x6b, 0x30, 0x53, 0x68, 0xb7, 0x9b, 0x2e, 0x6d, 0xe0, 0x57, 0xf2, - 0x17, 0xb2, 0xcc, 0x38, 0xa3, 0xb6, 0xc3, 0x0b, 0x85, 0x8a, 0x9f, 0x7c, 0x1e, 0xab, 0x9b, 0xd6, - 0xfc, 0x96, 0xd1, 0xd5, 0x68, 0x76, 0x72, 0xc7, 0x1f, 0x4a, 0xb0, 0x26, 0x9e, 0xdc, 0x79, 0x13, - 0xd1, 0x82, 0x10, 0x23, 0x30, 0x65, 0x49, 0x4d, 0x04, 0x92, 0x15, 0xef, 0x8e, 0x73, 0x50, 0x7c, - 0xa0, 0x9c, 0x97, 0x3e, 0x5f, 0xd9, 0x58, 0xe9, 0x42, 0x9f, 0x2f, 0xe1, 0xe9, 0x65, 0xfe, 0x58, - 0x46, 0x9f, 0x76, 0xe4, 0x92, 0xa2, 0xb7, 0x2b, 0xa9, 0x48, 0xa4, 0xde, 0xae, 0x68, 0xeb, 0x7f, - 0xcb, 0x80, 0x13, 0x6b, 0xfe, 0xae, 0xd3, 0x72, 0xbf, 0xc9, 0x53, 0x9a, 0x79, 0x38, 0x2e, 0x51, - 0x9c, 0xca, 0x27, 0x9a, 0x64, 0xdd, 0x53, 0x2a, 0x66, 0x33, 0x05, 0xa7, 0x8c, 0x95, 0xd6, 0x1e, - 0xf4, 0xa2, 0xc5, 0x86, 0x29, 0xb9, 0xee, 0x39, 0x3a, 0x87, 0x9b, 0x3f, 0x9b, 0x81, 0x71, 0x65, - 0x09, 0x90, 0xcf, 0xc2, 0x84, 0xca, 0x47, 0xb5, 0xfa, 0xa8, 0xd5, 0x5a, 0x1a, 0x16, 0x9a, 0x7d, - 0xa8, 0xb3, 0xaf, 0x99, 0x7d, 0xd8, 0x44, 0x47, 0xe8, 0x31, 0x8f, 0x36, 0xef, 0xa5, 0x1c, 0x6d, - 0x8e, 0xf5, 0x94, 0xda, 0xdb, 0xdd, 0x07, 0x9c, 0xc1, 0x5f, 0x3e, 0x33, 0xbf, 0x63, 0x40, 0x3e, - 0xb9, 0x48, 0x3f, 0x91, 0x5e, 0x39, 0x86, 0x7d, 0xfd, 0x67, 0x32, 0x90, 0xc7, 0x77, 0x30, 0x69, - 0x43, 0xc6, 0x06, 0x3c, 0xab, 0xbe, 0x12, 0xef, 0x68, 0xa6, 0xef, 0xe7, 0xa3, 0x7d, 0x45, 0xfd, - 0xb8, 0x3e, 0x39, 0x53, 0x86, 0xbe, 0xf7, 0x4b, 0xf3, 0xcf, 0x99, 0x1f, 0xc0, 0x6c, 0xb2, 0x3b, - 0xd0, 0xfc, 0x5d, 0x80, 0x69, 0x1d, 0x9e, 0x4c, 0x3c, 0x9d, 0xa4, 0xb2, 0x92, 0xf8, 0xe6, 0xef, - 0x67, 0x92, 0xbc, 0x85, 0xdf, 0x04, 0x13, 0x3a, 0x2d, 0x67, 0xbb, 0x19, 0xe5, 0xc6, 0xe5, 0x42, - 0x87, 0x83, 0x2c, 0x59, 0x76, 0x9c, 0x14, 0xe4, 0x91, 0x87, 0x7b, 0x36, 0xdd, 0xc3, 0x9d, 0xdc, - 0x4c, 0x78, 0x0c, 0x29, 0xe1, 0xd8, 0x0f, 0xe9, 0xb6, 0x1d, 0x7b, 0x0d, 0x25, 0x1c, 0x85, 0x8a, - 0x30, 0xab, 0xe5, 0xac, 0x93, 0xf4, 0xc3, 0xb1, 0xc1, 0x35, 0xc4, 0x02, 0x4e, 0x9c, 0x8a, 0x4c, - 0x96, 0x60, 0x94, 0x35, 0x73, 0xc5, 0x69, 0x0b, 0xab, 0xb6, 0xfa, 0x26, 0xbc, 0xdc, 0xbc, 0x94, - 0x90, 0x97, 0x26, 0x65, 0x5b, 0xbe, 0xf6, 0x12, 0x21, 0x47, 0x34, 0xff, 0xd8, 0x60, 0xeb, 0xbf, - 0x7e, 0xff, 0x53, 0x96, 0x1c, 0x9d, 0x7d, 0x52, 0x1f, 0xb7, 0x9e, 0x3f, 0xc8, 0xf0, 0xf4, 0xc6, - 0x62, 0xfa, 0xdc, 0x82, 0x91, 0x75, 0xc7, 0xdf, 0xa5, 0xa1, 0x48, 0xc4, 0xab, 0x72, 0xe1, 0x05, - 0x71, 0xb0, 0x78, 0x88, 0xbf, 0x2d, 0x41, 0xa0, 0xda, 0xc2, 0x32, 0x03, 0xd9, 0xc2, 0x14, 0xf3, - 0x6c, 0xf6, 0xa9, 0x99, 0x67, 0xbf, 0x1c, 0x65, 0x16, 0x2e, 0x84, 0x03, 0xa4, 0x44, 0x3b, 0x9f, - 0x4c, 0xb3, 0xdd, 0x95, 0xbc, 0x2e, 0x66, 0x47, 0x6e, 0xaa, 0x89, 0xbb, 0x15, 0xa7, 0xf1, 0x23, - 0x52, 0x74, 0x9b, 0x7f, 0x90, 0xe5, 0x7d, 0x2c, 0x3a, 0xea, 0xa2, 0x16, 0x50, 0x82, 0xeb, 0x24, - 0xf1, 0x2a, 0x33, 0x0f, 0x2d, 0xb9, 0x08, 0x43, 0x6c, 0x6e, 0x8a, 0xde, 0xe4, 0xef, 0x79, 0x7b, - 0x4d, 0x2d, 0x06, 0x90, 0x95, 0xb3, 0xb5, 0x8c, 0x7b, 0x92, 0xfa, 0x46, 0x00, 0x6e, 0x5b, 0xea, - 0x5a, 0x46, 0x0c, 0x72, 0x09, 0x86, 0x56, 0xbd, 0x86, 0x4c, 0xbd, 0x37, 0x8b, 0x61, 0x85, 0xda, - 0xb3, 0xba, 0x73, 0x86, 0x85, 0x18, 0xec, 0x5b, 0xa3, 0x64, 0xbd, 0xea, 0xb7, 0xee, 0xef, 0x38, - 0x36, 0x4f, 0x12, 0xab, 0x7e, 0x6b, 0x9c, 0xd7, 0xb7, 0x0c, 0x53, 0xfa, 0xc3, 0x49, 0xc2, 0xe9, - 0x09, 0xcd, 0xac, 0x89, 0xf7, 0x97, 0x54, 0xeb, 0xb8, 0x4e, 0x44, 0x16, 0x61, 0x52, 0x4b, 0xf9, - 0x23, 0xae, 0x97, 0xd0, 0xbc, 0xa9, 0x27, 0x0c, 0x52, 0xcd, 0x9b, 0x1a, 0x09, 0xdb, 0xcf, 0x45, - 0xfb, 0x95, 0x4b, 0xa6, 0xae, 0xb6, 0x0b, 0x1c, 0x72, 0x03, 0x72, 0x3c, 0x7e, 0xaf, 0x52, 0x52, - 0x6f, 0x2b, 0x02, 0x84, 0x25, 0xe2, 0x5f, 0x25, 0xa2, 0x12, 0xaf, 0xf5, 0x19, 0xc8, 0x0b, 0x91, - 0x14, 0xbd, 0x09, 0x81, 0x37, 0xc5, 0x95, 0x92, 0xa5, 0x8a, 0x91, 0xba, 0xdb, 0xf0, 0x2d, 0x84, - 0x9a, 0xdf, 0x35, 0xe0, 0xcc, 0x2a, 0x0d, 0x1f, 0x7a, 0xfe, 0x7d, 0x8b, 0x06, 0xa1, 0xef, 0xf2, - 0x27, 0x26, 0x70, 0x21, 0x7e, 0x96, 0xbc, 0x0d, 0xc3, 0xe8, 0x7d, 0x93, 0xd8, 0x19, 0x92, 0x75, - 0x2c, 0x4e, 0x8a, 0x09, 0x3c, 0x8c, 0xae, 0x3c, 0x16, 0x27, 0x22, 0xb7, 0x60, 0xa8, 0x44, 0x5b, - 0x07, 0x89, 0xb7, 0x06, 0xba, 0x88, 0x23, 0x81, 0xd0, 0xa0, 0xad, 0x03, 0x0b, 0x49, 0xcc, 0xef, - 0x64, 0xe0, 0x64, 0x4a, 0xb3, 0x36, 0x3f, 0xfb, 0x8c, 0x4a, 0xc5, 0x45, 0x4d, 0x2a, 0x9e, 0x17, - 0xa4, 0x3d, 0x3b, 0x3e, 0x55, 0x48, 0xfe, 0x75, 0x03, 0x4e, 0xeb, 0x13, 0x54, 0xb8, 0xdb, 0x6d, - 0xde, 0x20, 0x6f, 0xc1, 0xc8, 0x12, 0x75, 0x1a, 0x54, 0xa6, 0x2e, 0x8f, 0xdf, 0x24, 0xe7, 0xc1, - 0x49, 0xbc, 0x90, 0xb3, 0xfd, 0x7d, 0x2e, 0xc3, 0x9e, 0xb3, 0x04, 0x09, 0x29, 0x89, 0xc6, 0x71, - 0x7d, 0xdc, 0x94, 0x81, 0x82, 0x69, 0x55, 0xf5, 0xb9, 0x67, 0xff, 0xbe, 0x01, 0xcf, 0xf7, 0xa1, - 0x61, 0x03, 0xc7, 0x86, 0x5e, 0x1d, 0x38, 0xdc, 0x51, 0x11, 0x4a, 0xde, 0x85, 0xe9, 0x75, 0xa1, - 0xcf, 0xcb, 0xe1, 0xc8, 0xc4, 0xeb, 0x45, 0xaa, 0xfa, 0xb6, 0x1c, 0x97, 0x24, 0xb2, 0x16, 0xc1, - 0x9a, 0xed, 0x1b, 0xc1, 0xaa, 0x06, 0x84, 0x0e, 0x0d, 0x1a, 0x10, 0xfa, 0x41, 0xf2, 0xb9, 0x51, - 0x91, 0x97, 0x2b, 0x0e, 0x87, 0x35, 0x7a, 0x87, 0xc3, 0xf6, 0xcd, 0xfe, 0x83, 0x2f, 0x1d, 0xe8, - 0xbc, 0x9f, 0x74, 0x3c, 0xdf, 0xd1, 0xc6, 0xf3, 0xf9, 0xf4, 0xf1, 0xec, 0x3d, 0x90, 0xbf, 0x68, - 0x24, 0x3f, 0x76, 0xa0, 0x11, 0x34, 0x61, 0xa4, 0xe4, 0xed, 0x3b, 0x6e, 0x4b, 0x7d, 0x2d, 0xad, - 0x81, 0x10, 0x4b, 0x94, 0x0c, 0x16, 0x3d, 0x7c, 0x1e, 0x86, 0x57, 0xbd, 0x56, 0xa1, 0x24, 0x7c, - 0xeb, 0x90, 0x4f, 0xcb, 0x6b, 0xd9, 0x4e, 0xc3, 0xe2, 0x05, 0xe6, 0x4f, 0x0e, 0xc3, 0x19, 0x8b, - 0xee, 0xba, 0x4c, 0xe3, 0xdc, 0x08, 0xdc, 0xd6, 0xae, 0x16, 0x2a, 0x69, 0x26, 0xc6, 0x44, 0xe4, - 0xab, 0x64, 0x90, 0xa8, 0x8e, 0xcb, 0x90, 0x63, 0x1b, 0x8c, 0x32, 0x2c, 0x78, 0x1d, 0x81, 0x4f, - 0x3f, 0xf2, 0xf9, 0x22, 0x8b, 0xc9, 0x15, 0xb1, 0x01, 0x2a, 0x19, 0x85, 0xd9, 0x06, 0xf8, 0x83, - 0xc3, 0x79, 0xa8, 0x1d, 0x04, 0x21, 0xc5, 0xc3, 0x8f, 0xd8, 0x04, 0x23, 0x2d, 0x75, 0xa8, 0x87, - 0x96, 0xba, 0x02, 0xb3, 0x85, 0x06, 0x97, 0x7b, 0x4e, 0xb3, 0xea, 0xbb, 0xad, 0xba, 0xdb, 0x76, - 0x9a, 0xf2, 0xe4, 0x85, 0x97, 0x52, 0x4e, 0x54, 0x6e, 0xb7, 0x23, 0x04, 0x2b, 0x95, 0x8c, 0x7d, - 0x46, 0x69, 0xb5, 0xc6, 0x9f, 0x35, 0xe6, 0x37, 0x4d, 0xf8, 0x19, 0x8d, 0x56, 0xc0, 0xdf, 0x35, - 0xb6, 0xa2, 0x62, 0xd4, 0x8f, 0xf1, 0x3a, 0x7f, 0x7d, 0xb9, 0x16, 0x87, 0x6d, 0xf0, 0x84, 0x87, - 0xfc, 0xca, 0x3f, 0x6c, 0x06, 0x78, 0xed, 0xaf, 0xe1, 0xc5, 0x74, 0xb5, 0xda, 0x12, 0xa3, 0xcb, - 0x75, 0xd1, 0x05, 0xc1, 0x9e, 0x4a, 0xc7, 0xf1, 0xc8, 0x35, 0x00, 0x9e, 0xaa, 0x07, 0xa7, 0xcc, - 0x58, 0xac, 0x4d, 0xfb, 0x08, 0xe5, 0xda, 0xb4, 0x82, 0x42, 0xde, 0x86, 0x13, 0xe5, 0xe2, 0x82, - 0xb4, 0x0f, 0x96, 0xbc, 0x7a, 0x07, 0x2f, 0x68, 0x01, 0xeb, 0xc3, 0x31, 0xa4, 0xf5, 0x05, 0x36, - 0x4f, 0xd2, 0xd0, 0xc8, 0x45, 0x18, 0xad, 0x94, 0x78, 0xdf, 0x8f, 0xab, 0x59, 0xbd, 0x85, 0xe3, - 0x83, 0x2c, 0x24, 0x6b, 0xb1, 0xba, 0x37, 0x71, 0xa4, 0x5e, 0x76, 0xe6, 0x68, 0x55, 0x4f, 0x24, - 0xff, 0xe6, 0x8f, 0x4c, 0x14, 0xbd, 0x06, 0x0d, 0x36, 0xaf, 0x7f, 0xca, 0x92, 0x7f, 0x2b, 0xdf, - 0x86, 0x82, 0xe0, 0x7a, 0xaa, 0xd4, 0xf8, 0xf7, 0x30, 0xf9, 0x77, 0x17, 0x2e, 0xf9, 0x3c, 0x0c, - 0xe3, 0x4f, 0xa1, 0x42, 0x9c, 0x48, 0x61, 0x1b, 0xab, 0x0f, 0x75, 0xfe, 0x70, 0x20, 0x12, 0x90, - 0x0a, 0x8c, 0x0a, 0xed, 0xf5, 0x38, 0x29, 0x6c, 0x85, 0x1a, 0xcc, 0x07, 0x49, 0xd0, 0x9b, 0x0d, - 0x98, 0x50, 0x2b, 0x64, 0x93, 0x73, 0xc9, 0x09, 0xf6, 0x68, 0x83, 0xfd, 0x12, 0xd9, 0xe7, 0x71, - 0x72, 0xee, 0x21, 0xd4, 0x66, 0xed, 0xb0, 0x14, 0x14, 0x26, 0xb8, 0x2a, 0xc1, 0x46, 0x20, 0x9a, - 0x22, 0xce, 0xb3, 0x2e, 0xda, 0x46, 0x1a, 0x96, 0x28, 0x32, 0xbf, 0x0c, 0xb3, 0xab, 0x9d, 0x66, - 0x93, 0x9d, 0x6d, 0x65, 0x76, 0xd2, 0xd0, 0x09, 0x29, 0x59, 0x84, 0x61, 0xfc, 0x03, 0x2b, 0x9a, - 0x8a, 0xba, 0x40, 0xc5, 0x41, 0x5f, 0x2b, 0x03, 0x03, 0x2d, 0x43, 0xfd, 0xd1, 0x6f, 0x4e, 0x6a, - 0xfe, 0x5e, 0xfc, 0x84, 0xe5, 0xba, 0xef, 0xd4, 0xef, 0x53, 0x5f, 0xec, 0x40, 0x83, 0xbe, 0xc6, - 0x79, 0x57, 0x36, 0x42, 0xdf, 0x15, 0xd2, 0x1a, 0x7c, 0x54, 0x63, 0xc8, 0xdb, 0x30, 0x2e, 0x76, - 0x06, 0x25, 0x3d, 0x08, 0xc6, 0x60, 0xcb, 0x37, 0x4d, 0x13, 0x37, 0xf7, 0x2a, 0x3a, 0x6e, 0x78, - 0xfa, 0xa7, 0x6c, 0x5e, 0xff, 0x24, 0x36, 0x3c, 0xbd, 0x8e, 0x3e, 0x53, 0xf7, 0x1f, 0x40, 0xb2, - 0x6f, 0xc5, 0xdc, 0xbd, 0xa9, 0x26, 0x04, 0x30, 0xe2, 0xe3, 0x47, 0x9c, 0x10, 0x40, 0x3d, 0x7e, - 0x44, 0xa8, 0xd1, 0x98, 0x64, 0x8e, 0x18, 0x93, 0x77, 0xe5, 0x98, 0x64, 0x7b, 0x4f, 0x8c, 0x13, - 0x7d, 0xc6, 0xa1, 0x16, 0xaf, 0x90, 0xa1, 0x81, 0xce, 0xae, 0xcf, 0x61, 0xe6, 0x43, 0x4e, 0x92, - 0x14, 0x68, 0x82, 0x93, 0x7a, 0x20, 0x1e, 0x1e, 0x9c, 0xe9, 0x11, 0x07, 0xe2, 0x2f, 0xc0, 0x44, - 0x21, 0x0c, 0x9d, 0xfa, 0x1e, 0x6d, 0x94, 0x98, 0x78, 0x52, 0x62, 0x97, 0x1d, 0x01, 0x57, 0x6f, - 0x26, 0x54, 0x5c, 0x9e, 0x8b, 0xc7, 0x09, 0x84, 0xe3, 0x58, 0x94, 0x8b, 0x87, 0x41, 0xf4, 0x5c, - 0x3c, 0x0c, 0x42, 0xae, 0xc1, 0x68, 0xa5, 0xf5, 0xc0, 0x65, 0x7d, 0x92, 0x8b, 0x1f, 0xd3, 0x73, - 0x39, 0x48, 0x15, 0xae, 0x02, 0x8b, 0xdc, 0x52, 0x34, 0xc7, 0xb1, 0xf8, 0x94, 0xc8, 0xed, 0x0a, - 0xb6, 0x54, 0x20, 0x55, 0xad, 0x30, 0x52, 0x25, 0x6f, 0xc2, 0xa8, 0x34, 0x17, 0x41, 0x7c, 0x32, - 0x14, 0x94, 0xdd, 0x11, 0x6a, 0x12, 0x19, 0xdf, 0xb1, 0x52, 0xb2, 0xe8, 0x8f, 0x2b, 0xef, 0x58, - 0x29, 0x59, 0xf4, 0xb5, 0x77, 0xac, 0x94, 0x7c, 0xfa, 0xd1, 0x49, 0x7b, 0xe2, 0xc8, 0x93, 0xf6, - 0x26, 0x4c, 0x54, 0x1d, 0x3f, 0x74, 0x99, 0xba, 0xd0, 0x0a, 0x83, 0xb9, 0x49, 0xcd, 0x38, 0xa5, - 0x14, 0x2d, 0x9e, 0x93, 0xef, 0x39, 0xb5, 0x15, 0x7c, 0xfd, 0x21, 0xa0, 0x18, 0x9e, 0xee, 0x36, - 0x36, 0xf5, 0x24, 0x6e, 0x63, 0xd8, 0xa9, 0x68, 0x90, 0x98, 0x8e, 0x8f, 0xbd, 0xa8, 0x19, 0x26, - 0xac, 0x12, 0x11, 0x22, 0xf9, 0x0a, 0x4c, 0xb0, 0xbf, 0xf1, 0x9d, 0x5b, 0x97, 0x06, 0x73, 0x79, - 0xfc, 0xb8, 0x73, 0xa9, 0xab, 0x9f, 0x3f, 0x86, 0x5b, 0xa3, 0x21, 0x5f, 0xc0, 0xc8, 0x38, 0x69, - 0x69, 0xd4, 0xb8, 0x91, 0xf7, 0x60, 0x42, 0xbe, 0xfa, 0x8c, 0x83, 0x34, 0x13, 0x3b, 0xfe, 0x35, - 0x04, 0xbc, 0x2b, 0x1d, 0x96, 0x4a, 0xc0, 0xb6, 0xf9, 0x42, 0x9b, 0x0b, 0x48, 0xa2, 0xcc, 0xf6, - 0x76, 0x97, 0x70, 0x94, 0x68, 0xe4, 0x8b, 0x30, 0x51, 0x68, 0xb7, 0x63, 0x89, 0x73, 0x42, 0xb1, - 0x36, 0xb4, 0xdb, 0x76, 0xaa, 0xd4, 0xd1, 0x28, 0x92, 0x82, 0x79, 0xf6, 0x58, 0x82, 0x99, 0xbc, - 0x11, 0x29, 0xce, 0x27, 0x63, 0xd3, 0x99, 0xd0, 0xce, 0xd5, 0x95, 0xc6, 0x91, 0xcc, 0x3f, 0x32, - 0xe0, 0x74, 0x8f, 0x5e, 0x8e, 0x32, 0x47, 0x19, 0x47, 0x3c, 0xe2, 0x7c, 0x2d, 0xd6, 0x6c, 0x14, - 0x73, 0x9d, 0xd0, 0x6c, 0xd4, 0x3e, 0x92, 0x3a, 0x8e, 0x07, 0x44, 0x3c, 0xe1, 0xac, 0x3c, 0x75, - 0x2c, 0xd2, 0x17, 0x26, 0x04, 0xbf, 0xf6, 0xd4, 0x33, 0x7f, 0x56, 0xdc, 0xe7, 0xa0, 0xa8, 0x2b, - 0x3f, 0xf2, 0xb4, 0x55, 0x93, 0xc2, 0xda, 0x3c, 0x34, 0x60, 0x5c, 0x99, 0xfb, 0xe4, 0xbc, 0x12, - 0x67, 0x94, 0xe7, 0xe9, 0xa8, 0x15, 0x0e, 0x19, 0x2e, 0xfd, 0x71, 0x22, 0x67, 0x8e, 0xb6, 0xac, - 0xad, 0x30, 0xf5, 0x43, 0xc9, 0xae, 0xb5, 0xaf, 0x99, 0xc1, 0x2c, 0x2c, 0xc7, 0xa7, 0xdf, 0x9c, - 0x20, 0x2c, 0xd4, 0x43, 0xf7, 0x01, 0x1d, 0x40, 0xd0, 0xc7, 0x4f, 0xbf, 0x39, 0x41, 0x68, 0x3b, - 0x48, 0xd6, 0xf5, 0xf4, 0x5b, 0xc4, 0xd0, 0xfc, 0x71, 0x03, 0x60, 0xa3, 0x52, 0xc4, 0xf4, 0x78, - 0x4f, 0xba, 0x11, 0xa7, 0xa7, 0x1c, 0x92, 0xdc, 0xfb, 0x6c, 0xc1, 0x55, 0x98, 0xd2, 0xb1, 0xc8, - 0xbb, 0x30, 0x5d, 0xab, 0xfb, 0x5e, 0xb3, 0xb9, 0xed, 0xd4, 0xef, 0x2f, 0xbb, 0x2d, 0xca, 0x73, - 0xbd, 0x0c, 0x73, 0xf1, 0x1f, 0x44, 0x45, 0x76, 0x93, 0x95, 0x59, 0x49, 0x64, 0xf3, 0x4f, 0x0d, - 0x18, 0xaf, 0xb4, 0x82, 0xd0, 0x69, 0x36, 0x51, 0xc1, 0xf8, 0x34, 0xbd, 0x48, 0x10, 0x7d, 0x57, - 0x9f, 0x1e, 0x7d, 0x13, 0xa6, 0x13, 0x68, 0xec, 0x60, 0x5c, 0xc3, 0x30, 0x48, 0xf5, 0x60, 0xcc, - 0x03, 0x23, 0x2d, 0x51, 0x62, 0x96, 0x15, 0xb2, 0xcd, 0xeb, 0x78, 0x51, 0xb4, 0x00, 0xe0, 0x4a, - 0x90, 0x54, 0xe3, 0x49, 0xb2, 0x25, 0x9b, 0xd7, 0x2d, 0x05, 0xcb, 0x5c, 0x85, 0x91, 0x9a, 0xe7, - 0x87, 0x8b, 0x07, 0x5c, 0x73, 0x2e, 0xd1, 0xa0, 0xae, 0xde, 0x04, 0xb9, 0x68, 0x7d, 0xad, 0x5b, - 0xa2, 0x88, 0x9d, 0x9b, 0x6f, 0xbb, 0xb4, 0xd9, 0x50, 0x5d, 0xfe, 0x76, 0x18, 0xc0, 0xe2, 0x70, - 0x76, 0xba, 0x38, 0x15, 0xa7, 0x6f, 0x8d, 0x7d, 0x0b, 0x9f, 0x74, 0xc2, 0x16, 0xb5, 0xfe, 0x7d, - 0x49, 0x7f, 0xf0, 0x4f, 0xab, 0xa9, 0x4f, 0x57, 0xff, 0x5d, 0x03, 0xce, 0xf6, 0x26, 0x51, 0xdd, - 0x15, 0x8d, 0x3e, 0xee, 0x8a, 0xaf, 0x24, 0x6f, 0x2e, 0x10, 0x4d, 0xdc, 0x5c, 0xc4, 0xf7, 0x15, - 0x25, 0xf4, 0x16, 0xad, 0x47, 0x8f, 0xab, 0x9e, 0xef, 0xd3, 0x66, 0x44, 0xe4, 0xc3, 0x1c, 0x22, - 0x8d, 0x25, 0x68, 0xcd, 0xdf, 0x1e, 0x82, 0x33, 0x3d, 0x29, 0xc8, 0x92, 0x92, 0x09, 0x7a, 0x2a, - 0xca, 0x41, 0xdb, 0x13, 0xff, 0x2a, 0xfe, 0x8b, 0x0e, 0x41, 0xc9, 0x20, 0x86, 0xb5, 0x28, 0x03, - 0x70, 0x06, 0x79, 0xbd, 0x76, 0x24, 0x2f, 0x8e, 0x8e, 0xcc, 0xa0, 0x3b, 0x19, 0x30, 0xc6, 0x9a, - 0xd0, 0xd0, 0x71, 0x9b, 0x81, 0xba, 0xec, 0x1a, 0x1c, 0x64, 0xc9, 0xb2, 0xd8, 0x87, 0x74, 0x28, - 0xdd, 0x87, 0xd4, 0xfc, 0xb7, 0x06, 0x8c, 0x45, 0xcd, 0x26, 0x67, 0xe1, 0xd4, 0xba, 0x55, 0x28, - 0x96, 0xed, 0xf5, 0x0f, 0xaa, 0x65, 0x7b, 0x63, 0xb5, 0x56, 0x2d, 0x17, 0x2b, 0xb7, 0x2b, 0xe5, - 0x52, 0xfe, 0x39, 0x32, 0x03, 0x93, 0x1b, 0xab, 0xf7, 0x56, 0xd7, 0xb6, 0x56, 0xed, 0xb2, 0x65, - 0xad, 0x59, 0x79, 0x83, 0x4c, 0xc2, 0x98, 0xb5, 0x58, 0x28, 0xda, 0xab, 0x6b, 0xa5, 0x72, 0x3e, - 0x43, 0xf2, 0x30, 0x51, 0x5c, 0x5b, 0x5d, 0x2d, 0x17, 0xd7, 0x2b, 0x9b, 0x95, 0xf5, 0x0f, 0xf2, - 0x59, 0x42, 0x60, 0x0a, 0x11, 0xaa, 0x56, 0x65, 0xb5, 0x58, 0xa9, 0x16, 0x96, 0xf3, 0x43, 0x0c, - 0xc6, 0xf0, 0x15, 0xd8, 0x70, 0xc4, 0xe8, 0xde, 0xc6, 0x62, 0x39, 0x3f, 0xc2, 0x50, 0xd8, 0x5f, - 0x0a, 0xca, 0x28, 0xab, 0x1e, 0x51, 0x4a, 0x85, 0xf5, 0xc2, 0x62, 0xa1, 0x56, 0xce, 0xe7, 0xc8, - 0x69, 0x38, 0xa1, 0x81, 0xec, 0xe5, 0xb5, 0x3b, 0x95, 0xd5, 0xfc, 0x18, 0x99, 0x85, 0x7c, 0x04, - 0x2b, 0x2d, 0xda, 0x1b, 0xb5, 0xb2, 0x95, 0x87, 0x24, 0x74, 0xb5, 0xb0, 0x52, 0xce, 0x8f, 0x9b, - 0xef, 0xf0, 0xf0, 0x12, 0xde, 0xd5, 0xe4, 0x14, 0x90, 0xda, 0x7a, 0x61, 0x7d, 0xa3, 0x96, 0xf8, - 0xf8, 0x71, 0x18, 0xad, 0x6d, 0x14, 0x8b, 0xe5, 0x5a, 0x2d, 0x6f, 0x10, 0x80, 0x91, 0xdb, 0x85, - 0xca, 0x72, 0xb9, 0x94, 0xcf, 0x98, 0x3f, 0x67, 0xc0, 0x8c, 0x54, 0x77, 0xa4, 0x19, 0xfa, 0x09, - 0xd7, 0xe2, 0xbb, 0xda, 0x29, 0x4e, 0x7a, 0xff, 0x27, 0x2a, 0xe9, 0xb3, 0x0c, 0x7d, 0x38, 0x99, - 0x8a, 0x4c, 0x3e, 0x80, 0xbc, 0x6c, 0xc0, 0x8a, 0x13, 0xd6, 0xf7, 0x62, 0x31, 0x76, 0x2e, 0x51, - 0x49, 0x02, 0x8d, 0x5b, 0xd3, 0xe2, 0x27, 0x8f, 0xba, 0xd8, 0x98, 0xdf, 0x33, 0xe0, 0x74, 0x0f, - 0x62, 0x52, 0x84, 0x91, 0x28, 0x31, 0x6e, 0x1f, 0x47, 0x97, 0xd9, 0xef, 0x1f, 0xce, 0x0b, 0x44, - 0x7c, 0xf9, 0x05, 0xff, 0xb2, 0x46, 0xa2, 0x4c, 0xb7, 0x98, 0x6e, 0x96, 0xf7, 0xc9, 0x99, 0x44, - 0x77, 0x8a, 0x9a, 0x0a, 0x5b, 0xb5, 0xc5, 0x71, 0xd1, 0x21, 0x59, 0xe7, 0x61, 0x80, 0xf9, 0x66, - 0xcd, 0xef, 0x1a, 0x4c, 0x55, 0x4a, 0x22, 0x92, 0x22, 0x4c, 0x16, 0x82, 0xa0, 0xb3, 0x4f, 0x2d, - 0xaf, 0x49, 0x0b, 0xd6, 0xaa, 0xd8, 0x0b, 0xf0, 0xcc, 0xe3, 0x60, 0x01, 0x2a, 0xc6, 0xb6, 0xe3, - 0xb7, 0xb4, 0x4b, 0x2d, 0x95, 0x86, 0xdc, 0x02, 0x88, 0x1e, 0xe7, 0x95, 0x31, 0xd5, 0x3c, 0x0a, - 0x5f, 0x40, 0x75, 0x8d, 0x51, 0x41, 0x36, 0xff, 0xb2, 0x01, 0x13, 0x42, 0xed, 0x2f, 0x34, 0xa9, - 0x1f, 0x3e, 0xd9, 0x9c, 0xb9, 0xa5, 0xcd, 0x99, 0xc8, 0xaf, 0x5b, 0xe1, 0xcf, 0x8a, 0x53, 0xa7, - 0xcb, 0x7f, 0x69, 0x40, 0x3e, 0x89, 0x48, 0xde, 0x85, 0x5c, 0x8d, 0x3e, 0xa0, 0xbe, 0x1b, 0x1e, - 0x08, 0xe9, 0x27, 0x9f, 0x10, 0xe0, 0x38, 0xa2, 0x8c, 0x5b, 0x17, 0x03, 0xf1, 0xcb, 0x8a, 0x68, - 0x06, 0x15, 0xe2, 0xca, 0xc1, 0x3d, 0xfb, 0xb4, 0x0e, 0xee, 0xe6, 0xbf, 0xcc, 0xc0, 0xe9, 0x3b, - 0x34, 0x54, 0xbf, 0x29, 0xba, 0x85, 0xfc, 0xcc, 0x60, 0xdf, 0xa5, 0x7c, 0xc9, 0x1c, 0x8c, 0x62, - 0x91, 0x1c, 0x5f, 0x4b, 0xfe, 0x24, 0x8b, 0xd1, 0xbc, 0xce, 0x6a, 0x39, 0xca, 0x7b, 0xd4, 0x7d, - 0x55, 0xc9, 0x5a, 0x1c, 0x4d, 0xeb, 0x8b, 0x30, 0x85, 0x69, 0xf9, 0x3a, 0x6c, 0x39, 0xd0, 0x86, - 0x30, 0x60, 0xe4, 0xac, 0x04, 0x94, 0x5c, 0x81, 0x3c, 0x83, 0x14, 0xea, 0xf7, 0x5b, 0xde, 0xc3, - 0x26, 0x6d, 0xec, 0x52, 0xfe, 0x64, 0x6a, 0xce, 0xea, 0x82, 0x4b, 0x9e, 0x1b, 0x2d, 0x7e, 0x00, - 0xa7, 0x0d, 0xb4, 0x32, 0x08, 0x9e, 0x31, 0xf4, 0xec, 0x2d, 0x18, 0xff, 0x98, 0x19, 0xc8, 0xcd, - 0xff, 0xde, 0x80, 0x59, 0xfc, 0x38, 0xa5, 0x62, 0x34, 0x3f, 0x7f, 0x26, 0xee, 0x2d, 0x25, 0x29, - 0xaf, 0xc3, 0x40, 0xfa, 0x52, 0x88, 0x7a, 0x31, 0xb6, 0x6a, 0x64, 0x06, 0xb0, 0x6a, 0xd4, 0x8e, - 0xf3, 0xc2, 0xda, 0x80, 0x46, 0x19, 0xfe, 0x2e, 0x6e, 0x3c, 0xe4, 0xe6, 0x5f, 0xcc, 0xc0, 0xa8, - 0x45, 0xf1, 0xe9, 0x29, 0x72, 0x11, 0x46, 0x57, 0xbd, 0x90, 0x06, 0x2b, 0xda, 0x3b, 0x63, 0x2d, - 0x06, 0xb2, 0xf7, 0x1b, 0x96, 0x2c, 0x64, 0x13, 0xbe, 0xea, 0x7b, 0x8d, 0x4e, 0x3d, 0x54, 0x27, - 0x7c, 0x9b, 0x83, 0x2c, 0x59, 0x46, 0x5e, 0x87, 0x31, 0xc1, 0x39, 0xba, 0xfb, 0x41, 0x9f, 0x45, - 0x9f, 0x46, 0x4f, 0x97, 0xc5, 0x08, 0xa8, 0xa8, 0x72, 0xad, 0x61, 0x48, 0x51, 0x54, 0xbb, 0x14, - 0x01, 0xa9, 0x7f, 0x0f, 0xf7, 0xd1, 0xbf, 0x3f, 0x03, 0x23, 0x85, 0x20, 0xa0, 0xa1, 0x0c, 0x37, - 0x9d, 0x88, 0x52, 0x5c, 0x04, 0x34, 0xe4, 0x8c, 0x1d, 0x2c, 0xb7, 0x04, 0x9e, 0xf9, 0xc7, 0x19, - 0x18, 0xc6, 0x3f, 0xf1, 0xbe, 0xcb, 0xaf, 0xef, 0x69, 0xf7, 0x5d, 0x7e, 0x7d, 0xcf, 0x42, 0x28, - 0xb9, 0x8e, 0x67, 0x6d, 0x99, 0x3f, 0x5a, 0x7c, 0x3d, 0x1a, 0x91, 0x1b, 0x31, 0xd8, 0x52, 0x71, - 0xa2, 0x8b, 0xc0, 0x6c, 0x6a, 0x90, 0xf9, 0x29, 0xc8, 0xac, 0xd5, 0xc4, 0x17, 0x63, 0x06, 0x0b, - 0x2f, 0xb0, 0x32, 0x6b, 0x35, 0xec, 0x8d, 0xa5, 0xc2, 0xc2, 0x9b, 0x37, 0xd5, 0x27, 0xf1, 0x82, - 0x3d, 0x67, 0xe1, 0xcd, 0x9b, 0x96, 0x28, 0x61, 0xfd, 0x8b, 0x6d, 0xae, 0xb9, 0xdf, 0xa4, 0x22, - 0x42, 0x13, 0xfb, 0x17, 0xbf, 0xcd, 0x0e, 0xdc, 0x6f, 0x52, 0x2b, 0x46, 0x20, 0x0b, 0x30, 0x2e, - 0x82, 0x72, 0x11, 0x5f, 0x09, 0x9a, 0x15, 0x41, 0xbb, 0x9c, 0x42, 0x45, 0xe2, 0xf7, 0x39, 0x62, - 0x80, 0xe4, 0x2b, 0x37, 0xe2, 0x3e, 0x47, 0x0e, 0x61, 0x60, 0x29, 0x28, 0x71, 0x80, 0x69, 0x1c, - 0x79, 0xa9, 0x06, 0x98, 0x62, 0x9a, 0xc5, 0x08, 0xc1, 0xfc, 0x95, 0x0c, 0xe4, 0xaa, 0xcd, 0xce, - 0xae, 0xdb, 0xda, 0xbc, 0xfe, 0x67, 0xfa, 0x2c, 0xf3, 0x1b, 0x80, 0x9b, 0x84, 0x38, 0x11, 0x48, - 0x93, 0x2c, 0x6f, 0x9a, 0x50, 0x3e, 0x38, 0x09, 0xa2, 0x91, 0x1b, 0x20, 0x26, 0xa6, 0x78, 0xa5, - 0xeb, 0xa4, 0x4e, 0xc0, 0xdf, 0xa7, 0x90, 0x24, 0x02, 0x95, 0xbc, 0x0d, 0xe3, 0xf1, 0xfb, 0xb8, - 0xf1, 0xe3, 0x5b, 0x2a, 0x65, 0x31, 0x2e, 0xdf, 0xbc, 0x6e, 0xa9, 0xe8, 0xe6, 0x77, 0xb2, 0x30, - 0xa1, 0xb6, 0x87, 0x58, 0x70, 0x22, 0x68, 0xb2, 0xa3, 0xb0, 0xf0, 0x49, 0x69, 0x63, 0xa1, 0xd8, - 0x4e, 0xcf, 0xeb, 0x0d, 0x62, 0x78, 0xdc, 0x41, 0xa5, 0x46, 0xc3, 0xd0, 0x6d, 0xed, 0x06, 0x4b, - 0xcf, 0x59, 0x33, 0x41, 0x0c, 0xe6, 0x78, 0xa4, 0x00, 0x39, 0xaf, 0x1d, 0xec, 0xd2, 0x96, 0x2b, - 0x6f, 0x0c, 0x2e, 0x68, 0x8c, 0xd6, 0x44, 0x61, 0x17, 0xaf, 0x88, 0x8c, 0xbc, 0x09, 0x23, 0x5e, - 0x9b, 0xb6, 0x1c, 0x57, 0xec, 0x71, 0xcf, 0x27, 0x18, 0xd0, 0x56, 0xa1, 0xa2, 0x10, 0x0a, 0x64, - 0x72, 0x0d, 0x86, 0xbc, 0xfb, 0xd1, 0x78, 0x9d, 0xd1, 0x89, 0xee, 0x87, 0x8e, 0x42, 0x82, 0x88, - 0x8c, 0xe0, 0x23, 0x67, 0x7f, 0x47, 0x8c, 0x98, 0x4e, 0x70, 0xd7, 0xd9, 0xdf, 0x51, 0x09, 0x18, - 0x22, 0x79, 0x0f, 0xa0, 0xed, 0xec, 0x52, 0xdf, 0x6e, 0x74, 0xc2, 0x03, 0x31, 0x6e, 0xe7, 0x34, - 0xb2, 0x2a, 0x2b, 0x2e, 0x75, 0xc2, 0x03, 0x85, 0x76, 0xac, 0x2d, 0x81, 0x5f, 0x18, 0xfa, 0x9f, - 0x7e, 0x69, 0xde, 0x58, 0x04, 0xc8, 0x05, 0xa2, 0xd8, 0x5c, 0x86, 0x33, 0x3d, 0x3b, 0x98, 0x5c, - 0x86, 0xfc, 0x8e, 0x23, 0xac, 0x15, 0xf5, 0x3d, 0xa7, 0xd5, 0xa2, 0x4d, 0x31, 0xb5, 0xa7, 0x25, - 0xbc, 0xc8, 0xc1, 0x9c, 0xb3, 0xf9, 0x5b, 0x06, 0xbc, 0xd0, 0xaf, 0x9b, 0xc9, 0x59, 0xc8, 0xb5, - 0x7d, 0xd7, 0xc3, 0xed, 0x9c, 0x2f, 0x86, 0xe8, 0x37, 0x79, 0x11, 0x80, 0xef, 0x3b, 0xa1, 0xb3, - 0x2b, 0xfc, 0x65, 0xad, 0x31, 0x84, 0xac, 0x3b, 0xbb, 0x01, 0x79, 0x0d, 0x66, 0x1a, 0x74, 0xc7, - 0xe9, 0x34, 0x43, 0x3b, 0xa8, 0xef, 0xd1, 0x06, 0xba, 0xa8, 0xa3, 0x1f, 0x84, 0x95, 0x17, 0x05, - 0x35, 0x09, 0x27, 0x2f, 0xc1, 0x84, 0x1a, 0x0f, 0x2f, 0x5e, 0x2b, 0x1f, 0x77, 0xda, 0xae, 0x8c, - 0x88, 0xe7, 0x2d, 0xbe, 0x3b, 0x94, 0x33, 0xf2, 0x19, 0x0b, 0xdd, 0x01, 0x4c, 0x07, 0x4e, 0xf7, - 0xe8, 0x45, 0xd6, 0xb6, 0xf8, 0x09, 0x2b, 0x99, 0x10, 0xb7, 0x13, 0x3d, 0x64, 0x95, 0xac, 0x2e, - 0xd3, 0xa3, 0x3a, 0xf3, 0x05, 0x98, 0x4d, 0x9b, 0x45, 0xa2, 0xf4, 0x2e, 0x90, 0xee, 0xd1, 0x27, - 0x57, 0x61, 0x8c, 0x8d, 0x3e, 0x46, 0x0a, 0x27, 0xfc, 0x0a, 0x11, 0x0f, 0xd7, 0x92, 0x95, 0xfb, - 0x48, 0xfc, 0x2d, 0x78, 0xdd, 0x90, 0xbc, 0xd4, 0xa9, 0x47, 0x4e, 0xc3, 0xa8, 0xe7, 0xef, 0x32, - 0x19, 0x26, 0x3e, 0x62, 0xc4, 0xf3, 0x77, 0x37, 0x7c, 0x39, 0x7e, 0x7f, 0x3b, 0x23, 0xc7, 0x6f, - 0xd1, 0xf3, 0xc2, 0x20, 0xf4, 0x9d, 0xb6, 0xb6, 0x9e, 0xc9, 0x3e, 0x9c, 0xf1, 0x9c, 0x4e, 0xb8, - 0xb7, 0x60, 0xb3, 0x7f, 0x3d, 0x5f, 0xfa, 0xa7, 0xd7, 0xe5, 0x75, 0xe4, 0xf8, 0xc2, 0x35, 0x7d, - 0xe2, 0x17, 0x18, 0x76, 0x41, 0x45, 0x2e, 0x7a, 0x0d, 0xaa, 0x70, 0x5d, 0x7a, 0xce, 0x3a, 0xcd, - 0x79, 0x76, 0x61, 0x91, 0x25, 0xd0, 0xde, 0x1c, 0x4c, 0x5d, 0xd0, 0xca, 0xfb, 0x80, 0x3a, 0xd7, - 0xf1, 0x6d, 0xe5, 0x81, 0xc2, 0x77, 0x61, 0xcc, 0x6d, 0x88, 0x64, 0x14, 0x62, 0x59, 0xcf, 0x6b, - 0x6c, 0x2a, 0x0d, 0x9e, 0x9b, 0x22, 0xe6, 0xc1, 0x64, 0x82, 0x2b, 0xa0, 0x8b, 0x93, 0x9a, 0xe4, - 0x33, 0x17, 0x61, 0xae, 0x17, 0x99, 0x78, 0x1f, 0xdf, 0x88, 0xde, 0xc7, 0x3f, 0x05, 0x23, 0x81, - 0x92, 0x1d, 0xc3, 0x12, 0xbf, 0xcc, 0xbf, 0x00, 0x97, 0x06, 0xed, 0x23, 0x7c, 0x02, 0x3d, 0xbd, - 0xc3, 0xc7, 0xac, 0x19, 0xa7, 0xab, 0xdf, 0xf0, 0x09, 0xf4, 0x28, 0x41, 0x80, 0x2b, 0xe7, 0xa3, - 0x84, 0x6d, 0xf8, 0xae, 0xf9, 0x0e, 0x4c, 0xe9, 0xa2, 0x9e, 0xbc, 0x06, 0x43, 0x11, 0xd7, 0xa9, - 0xe8, 0x48, 0xa2, 0x22, 0x31, 0xde, 0x16, 0x22, 0x99, 0xff, 0x3a, 0x03, 0x27, 0x52, 0x04, 0x3e, - 0xf9, 0x10, 0x4e, 0xc8, 0x09, 0xc2, 0x65, 0x3a, 0x1f, 0x38, 0x3e, 0x35, 0x2e, 0xa7, 0x4d, 0x0d, - 0x44, 0x4b, 0x19, 0xbe, 0x19, 0x31, 0x29, 0xe2, 0xf2, 0x3f, 0x3f, 0xd3, 0x81, 0x7c, 0x00, 0xa7, - 0xc4, 0x83, 0x45, 0xca, 0xac, 0xb0, 0x7d, 0xba, 0x23, 0xa4, 0xff, 0x4b, 0x5d, 0xbd, 0xe7, 0xd6, - 0x95, 0xe6, 0x58, 0x74, 0x67, 0xe9, 0x39, 0x6b, 0x36, 0x48, 0x81, 0x27, 0x67, 0xda, 0xaf, 0x1b, - 0x60, 0x1e, 0xdd, 0x5f, 0x28, 0x81, 0x92, 0x1d, 0xce, 0x24, 0x90, 0xd2, 0x7b, 0x17, 0x60, 0xd2, - 0xa7, 0x3b, 0x3e, 0x0d, 0xf6, 0x94, 0xee, 0x1b, 0xb3, 0x26, 0x04, 0x50, 0x76, 0x8c, 0x0c, 0xb1, - 0x19, 0xe0, 0x80, 0x97, 0x63, 0xca, 0x01, 0x57, 0xcd, 0x05, 0x91, 0x79, 0x3b, 0x12, 0x20, 0xa9, - 0xe3, 0xc0, 0x8e, 0x28, 0x6a, 0x03, 0xf9, 0x8f, 0xbb, 0x43, 0xb9, 0x4c, 0x3e, 0x6b, 0x89, 0x40, - 0xa0, 0x1d, 0xb7, 0x49, 0xcd, 0x7f, 0x60, 0xc0, 0xd9, 0xde, 0x9d, 0x47, 0x3e, 0x54, 0x4c, 0x14, - 0x59, 0x9e, 0x07, 0xe1, 0x88, 0xfe, 0x56, 0x4f, 0x73, 0x22, 0x36, 0x25, 0xf9, 0x56, 0x8f, 0x60, - 0xf9, 0x24, 0xe7, 0xac, 0x5b, 0x52, 0xc3, 0x59, 0x76, 0x83, 0x70, 0xf3, 0x3a, 0xb9, 0x0c, 0xa3, - 0x5c, 0xa9, 0x91, 0x0d, 0x9d, 0xd6, 0x1a, 0xba, 0x79, 0xdd, 0x92, 0xe5, 0xe6, 0xf7, 0x8c, 0x68, - 0x2b, 0x4e, 0x36, 0x7f, 0xf3, 0x3a, 0xf9, 0xdc, 0x60, 0xc6, 0x86, 0x9c, 0x34, 0x36, 0x44, 0x86, - 0x86, 0xcf, 0x6b, 0x86, 0x86, 0x97, 0xfb, 0xf7, 0x93, 0xd8, 0x4b, 0x92, 0xaf, 0x29, 0xfc, 0x89, - 0x01, 0x2f, 0xf6, 0xa5, 0x20, 0x2f, 0x40, 0xae, 0x50, 0xad, 0xac, 0xc7, 0x23, 0xcb, 0x56, 0x8b, - 0x84, 0x90, 0x3b, 0x30, 0xb6, 0xe8, 0x04, 0x6e, 0x9d, 0x4d, 0x60, 0xd1, 0x90, 0x57, 0xfb, 0x37, - 0x24, 0x42, 0x67, 0xfa, 0x4b, 0xf4, 0x83, 0xd8, 0x30, 0x83, 0xab, 0xa0, 0x2b, 0x5b, 0x79, 0x72, - 0xdb, 0xe9, 0x62, 0xd8, 0x45, 0xc6, 0x24, 0x4c, 0x17, 0x30, 0xb9, 0xf8, 0x1e, 0xc0, 0xf9, 0xa3, - 0x1a, 0x78, 0x8c, 0x70, 0xb2, 0x4b, 0x90, 0xab, 0x3a, 0x41, 0xf0, 0xd0, 0xf3, 0x1b, 0xea, 0x63, - 0x25, 0x6d, 0x01, 0xb3, 0xa2, 0x52, 0xf3, 0xa7, 0x0d, 0xb9, 0x37, 0x1c, 0xfd, 0x21, 0x4a, 0xba, - 0xa6, 0x46, 0xff, 0x74, 0x4d, 0x8d, 0x8f, 0x99, 0xae, 0xc9, 0xfc, 0x15, 0x11, 0xec, 0x5d, 0x69, - 0x54, 0x13, 0x89, 0x32, 0x9f, 0xd4, 0x74, 0x5a, 0xd6, 0x66, 0xe7, 0x05, 0x25, 0xef, 0x5b, 0x77, - 0x5d, 0xbd, 0x2d, 0xa8, 0xca, 0x54, 0xfd, 0x69, 0x03, 0x5e, 0xe8, 0x47, 0x9e, 0x9a, 0xd3, 0xd3, - 0x38, 0x5e, 0x4e, 0xcf, 0xcb, 0x90, 0xe3, 0x30, 0x3d, 0xb3, 0xbe, 0x20, 0x65, 0x1d, 0x2e, 0x8b, - 0xcd, 0x02, 0x40, 0xa5, 0x51, 0x5d, 0x6b, 0xf3, 0x90, 0xf3, 0x1b, 0x30, 0xc4, 0xda, 0x96, 0xe8, - 0x28, 0xd6, 0xd4, 0xc2, 0xca, 0xb2, 0x40, 0xe2, 0xa7, 0xeb, 0xc0, 0xd9, 0x6f, 0x5a, 0x88, 0x6c, - 0x6e, 0xc1, 0x94, 0x8e, 0x41, 0xca, 0x7a, 0x90, 0x52, 0xfc, 0x18, 0xd8, 0xa2, 0xe7, 0x71, 0xe3, - 0xec, 0xe2, 0x99, 0xef, 0x1f, 0xce, 0x03, 0xfb, 0xc9, 0x69, 0xd2, 0x82, 0x98, 0xcc, 0x6f, 0x67, - 0x60, 0x36, 0xf6, 0x68, 0x90, 0xc3, 0xf5, 0xcc, 0xde, 0x38, 0x16, 0xb4, 0x1b, 0xb1, 0xf9, 0xae, - 0xf7, 0x76, 0xe4, 0x07, 0xf6, 0x31, 0xc4, 0xdf, 0x81, 0xb9, 0x5e, 0xf8, 0xe4, 0xb5, 0xae, 0x17, - 0x31, 0x84, 0xe7, 0x6d, 0xf4, 0x74, 0x86, 0xf2, 0x40, 0xc6, 0x3f, 0x33, 0xe0, 0xac, 0x30, 0x29, - 0xae, 0x38, 0x6e, 0x0b, 0x5f, 0x01, 0xab, 0xd3, 0xa7, 0x73, 0x55, 0x7d, 0x47, 0x5b, 0x32, 0xaf, - 0xe8, 0x96, 0xe3, 0xae, 0xda, 0x7a, 0x7f, 0x2d, 0xb9, 0x8c, 0xee, 0xca, 0x75, 0x6e, 0xd5, 0x19, - 0xe2, 0xee, 0x38, 0x2d, 0x06, 0x50, 0xdd, 0x71, 0x10, 0xc3, 0xfc, 0x11, 0x38, 0xd7, 0xbf, 0x02, - 0xf2, 0x55, 0x98, 0x2c, 0xec, 0xd2, 0x56, 0xb8, 0xd1, 0xde, 0xf5, 0x9d, 0x06, 0x95, 0x57, 0x07, - 0xf2, 0x50, 0xab, 0x96, 0x71, 0x17, 0x6d, 0xe1, 0x1e, 0xc2, 0xe0, 0x76, 0x47, 0x10, 0x69, 0x76, - 0x7b, 0x95, 0x9b, 0xf9, 0xa3, 0x06, 0x90, 0x6e, 0x1e, 0xe4, 0x26, 0x4c, 0x6c, 0xac, 0x17, 0x6b, - 0xa1, 0xe3, 0x87, 0x4b, 0x5e, 0x87, 0x77, 0xe7, 0xa4, 0xf0, 0x5c, 0x08, 0xeb, 0x76, 0xc0, 0x0a, - 0xec, 0x3d, 0xaf, 0xe3, 0x5b, 0x1a, 0x1e, 0xe6, 0x11, 0xa2, 0xf4, 0x7e, 0xc3, 0x39, 0xd0, 0xf3, - 0x08, 0x09, 0x98, 0x96, 0x47, 0x48, 0xc0, 0xcc, 0xbf, 0x69, 0xc0, 0xf3, 0xf2, 0x80, 0xd9, 0x48, - 0x69, 0x4b, 0x11, 0x7d, 0xe2, 0x7c, 0x19, 0xfa, 0xd5, 0x4f, 0x6f, 0x9a, 0x91, 0x6e, 0xa3, 0xd8, - 0x40, 0x54, 0xa0, 0x38, 0x2d, 0x3e, 0x81, 0x18, 0x7a, 0xed, 0x01, 0xfc, 0x46, 0xf3, 0xd1, 0x88, - 0x86, 0x5e, 0x1b, 0x59, 0x20, 0xa5, 0x49, 0x61, 0x56, 0x6d, 0x9c, 0x6c, 0x31, 0x59, 0x81, 0x51, - 0xe1, 0x1b, 0x2f, 0x34, 0x11, 0x19, 0x2e, 0xd1, 0xe7, 0x9b, 0x16, 0xa7, 0xa5, 0x73, 0xaa, 0x08, - 0x3d, 0xb2, 0x24, 0x0f, 0xf3, 0x67, 0x0d, 0xfe, 0xfa, 0x32, 0x46, 0xe3, 0x3e, 0xe9, 0x94, 0xd6, - 0x75, 0x14, 0xe9, 0x2c, 0x10, 0xb1, 0x1f, 0x48, 0xf0, 0xbf, 0x09, 0xd3, 0x09, 0x02, 0x62, 0xa2, - 0x5b, 0x52, 0xd3, 0xe5, 0x8f, 0xc9, 0xf1, 0xef, 0x1e, 0xb3, 0x34, 0x98, 0xf9, 0xef, 0x18, 0x30, - 0xcb, 0x4e, 0xc8, 0x95, 0xfd, 0xb6, 0xe7, 0x87, 0x56, 0xa7, 0x29, 0xd7, 0x3b, 0xdb, 0xac, 0xa5, - 0xa5, 0x82, 0xfb, 0x6f, 0xf0, 0xcd, 0x5a, 0xc0, 0xac, 0xa8, 0x94, 0x2c, 0x41, 0x4e, 0x44, 0x4a, - 0xca, 0xc7, 0x4f, 0xa5, 0x4d, 0x46, 0x67, 0x2c, 0x90, 0xd8, 0x97, 0xa0, 0x08, 0x13, 0x34, 0x56, - 0x44, 0x6d, 0xfe, 0xb1, 0x01, 0xa7, 0x7b, 0xd0, 0x90, 0x77, 0x60, 0x18, 0x2f, 0xc3, 0xc4, 0xe8, - 0xbd, 0xd0, 0xa3, 0x8a, 0xb0, 0xbe, 0xb7, 0x79, 0x9d, 0x5f, 0x1b, 0xef, 0xb3, 0x1f, 0x16, 0xa7, - 0x22, 0x1f, 0xc2, 0x58, 0xa1, 0xd1, 0xd0, 0x9e, 0x68, 0x7d, 0xa3, 0x7f, 0x2b, 0xaf, 0x46, 0xf8, - 0x5c, 0x67, 0xe6, 0x66, 0xd9, 0x46, 0x43, 0xbc, 0x71, 0x69, 0xc5, 0xfc, 0xce, 0xbe, 0x0d, 0x53, - 0x3a, 0xf2, 0xb1, 0x74, 0xe6, 0xef, 0x19, 0x90, 0xd7, 0xdb, 0xf0, 0xc9, 0xb8, 0xd5, 0xa6, 0x0d, - 0xf3, 0x11, 0x93, 0xea, 0x3b, 0x19, 0x38, 0x99, 0xda, 0xc3, 0xe4, 0x0d, 0x18, 0x29, 0xb4, 0xdb, - 0x95, 0x92, 0x98, 0x55, 0x5c, 0x79, 0x70, 0xda, 0xed, 0x44, 0x20, 0x8e, 0x40, 0x22, 0x37, 0x20, - 0x87, 0x33, 0x93, 0x11, 0x64, 0xe2, 0xd8, 0x1d, 0x8c, 0x70, 0x4f, 0xc6, 0xee, 0x48, 0x44, 0x72, - 0x1b, 0xa6, 0x84, 0x87, 0x9d, 0x45, 0x77, 0xe9, 0xa3, 0x28, 0x88, 0x1c, 0xe3, 0xdc, 0xa5, 0x3f, - 0x9e, 0xed, 0xf3, 0x32, 0x35, 0x1a, 0x50, 0xa7, 0xc2, 0x17, 0x5a, 0x18, 0x4f, 0x95, 0x13, 0x0f, - 0x20, 0xe2, 0x2f, 0xb4, 0x60, 0x23, 0x7a, 0xf0, 0xea, 0xa2, 0x8c, 0x86, 0xab, 0x10, 0x04, 0xee, - 0x6e, 0x6b, 0x9f, 0xb6, 0xc2, 0x4f, 0x6e, 0xb8, 0xe2, 0x3a, 0x06, 0x1a, 0xae, 0xef, 0x0e, 0xf1, - 0xc5, 0x9c, 0x24, 0x3b, 0xe2, 0x11, 0xb2, 0x12, 0x8c, 0xf2, 0xd8, 0x52, 0xb9, 0x32, 0x5e, 0x4c, - 0x6d, 0x02, 0xc7, 0xd9, 0xbc, 0xce, 0xd5, 0x17, 0x7e, 0x2b, 0x17, 0x58, 0x92, 0x94, 0x6c, 0xc2, - 0x78, 0xb1, 0x49, 0x9d, 0x56, 0xa7, 0xcd, 0x84, 0xf4, 0x00, 0xa7, 0xe7, 0x39, 0xf1, 0x2d, 0x13, - 0x75, 0x4e, 0x66, 0x87, 0xee, 0x3e, 0x45, 0x49, 0xae, 0x32, 0x22, 0xeb, 0x91, 0xa1, 0x7e, 0x08, - 0x0d, 0x33, 0x9f, 0xe9, 0xd3, 0x3f, 0x49, 0x20, 0xd2, 0xe9, 0xb7, 0x50, 0xc2, 0x92, 0x6f, 0xc3, - 0xd4, 0xb2, 0x13, 0x84, 0xeb, 0xbe, 0xd3, 0x0a, 0x30, 0x3c, 0x67, 0x00, 0x9f, 0x69, 0x99, 0x4a, - 0x7e, 0x1a, 0xfd, 0xf3, 0xc2, 0x88, 0x14, 0xdb, 0x9c, 0x60, 0xc7, 0xf4, 0xa5, 0xdb, 0x6e, 0xcb, - 0x69, 0xba, 0xdf, 0x94, 0xf7, 0x99, 0x5c, 0x5f, 0xda, 0x91, 0x40, 0x2b, 0x2e, 0x37, 0xbf, 0xd2, - 0x35, 0x6e, 0xbc, 0x95, 0xe3, 0x30, 0x2a, 0x5c, 0x58, 0xb8, 0x4b, 0x47, 0xb5, 0xbc, 0x5a, 0xaa, - 0xac, 0xde, 0xc9, 0x1b, 0x64, 0x0a, 0xa0, 0x6a, 0xad, 0x15, 0xcb, 0xb5, 0x1a, 0xfb, 0x9d, 0x61, - 0xbf, 0x85, 0xbf, 0xc7, 0xed, 0x8d, 0xe5, 0x7c, 0x56, 0x71, 0xf9, 0x18, 0x32, 0xff, 0xa9, 0x01, - 0xa7, 0xd2, 0x87, 0x92, 0xac, 0x03, 0x3a, 0xfd, 0x08, 0x9b, 0xd7, 0xcd, 0xbe, 0xe3, 0x9e, 0x0a, - 0x4e, 0x3a, 0x0f, 0x85, 0xdc, 0x29, 0x25, 0xe3, 0x4a, 0xed, 0x38, 0x4a, 0xe9, 0xee, 0x36, 0xcc, - 0x22, 0xcc, 0xf5, 0xe2, 0xa1, 0x7f, 0xea, 0x34, 0x8c, 0x17, 0xaa, 0xd5, 0xe5, 0x4a, 0xb1, 0xb0, - 0x5e, 0x59, 0x5b, 0xcd, 0x1b, 0x64, 0x0c, 0x86, 0xef, 0x58, 0x6b, 0x1b, 0xd5, 0x7c, 0xc6, 0xfc, - 0x2b, 0x06, 0x4c, 0x56, 0x5a, 0x21, 0xdd, 0xe5, 0x29, 0xec, 0x9e, 0x74, 0xf1, 0x7d, 0x41, 0x5b, - 0x7c, 0x73, 0x91, 0x7b, 0x5c, 0x54, 0xc1, 0x40, 0x2b, 0xef, 0x21, 0xcc, 0x74, 0x91, 0x90, 0x1a, - 0x8c, 0x16, 0xb6, 0x6a, 0x6b, 0x95, 0x52, 0x51, 0x34, 0x4c, 0x2a, 0xe5, 0x02, 0xda, 0x5d, 0x09, - 0xbf, 0x7c, 0x7e, 0x18, 0xd8, 0x9e, 0xdb, 0x50, 0xb2, 0x62, 0x2e, 0x3d, 0x67, 0x49, 0x4e, 0xec, - 0x84, 0x2e, 0xce, 0x15, 0xa8, 0xb2, 0x2f, 0xc3, 0x5c, 0x2f, 0x6e, 0xec, 0xa4, 0xa2, 0xfb, 0x8a, - 0x9c, 0x8a, 0x92, 0x18, 0xe8, 0x4e, 0x22, 0x12, 0xcd, 0xfc, 0xf7, 0x33, 0x70, 0x8a, 0xf5, 0x4b, - 0x93, 0x06, 0x01, 0x3b, 0x67, 0xb3, 0x23, 0x9d, 0x78, 0x8a, 0xf6, 0x73, 0x30, 0xb2, 0x77, 0x3c, - 0x03, 0x0c, 0x47, 0x27, 0x04, 0x50, 0xd6, 0x88, 0x7d, 0x0f, 0xff, 0x26, 0x2f, 0x82, 0x92, 0xae, - 0x16, 0x45, 0xc5, 0x84, 0x35, 0xd6, 0x8e, 0x92, 0xd6, 0x7e, 0x1e, 0x86, 0x31, 0x70, 0x42, 0xac, - 0x78, 0xa9, 0xa9, 0xa5, 0xb7, 0x0c, 0x23, 0x2a, 0x2c, 0x4e, 0x40, 0xae, 0x01, 0xc4, 0x21, 0xe6, - 0x62, 0x49, 0xcb, 0xd3, 0x61, 0x14, 0x65, 0x6e, 0x8d, 0xed, 0xef, 0x38, 0x22, 0x6e, 0xfb, 0x0a, - 0xcc, 0x48, 0x43, 0x41, 0x5b, 0x7a, 0xfe, 0xf3, 0x20, 0x07, 0x6b, 0x9a, 0x17, 0x54, 0xda, 0xc2, - 0xfb, 0xdf, 0xfc, 0x57, 0x19, 0x18, 0xdb, 0x62, 0xfb, 0x1f, 0x9e, 0xea, 0xfa, 0x9f, 0x12, 0x17, - 0x60, 0x7c, 0xd9, 0x73, 0x1a, 0xfa, 0x53, 0x8a, 0x78, 0x53, 0xdb, 0xf4, 0x1c, 0x69, 0x79, 0x0d, - 0x2c, 0x15, 0xe9, 0x88, 0x5b, 0xe6, 0xbb, 0x30, 0xc2, 0x23, 0x87, 0x44, 0xe2, 0x67, 0xa9, 0x01, - 0x45, 0x2d, 0xba, 0xca, 0x8b, 0x15, 0x0b, 0xdf, 0x0e, 0x02, 0xd4, 0xed, 0x58, 0xc4, 0x1e, 0x29, - 0x67, 0xd8, 0xe1, 0xc1, 0xce, 0xb0, 0x8a, 0xbf, 0xf7, 0xc8, 0x20, 0xfe, 0xde, 0x67, 0x6f, 0xc1, - 0xb8, 0xd2, 0x9e, 0x63, 0x29, 0x44, 0x3f, 0x96, 0x81, 0x49, 0xfc, 0xaa, 0xc8, 0x34, 0xff, 0x6c, - 0x9e, 0xc8, 0xbf, 0xa0, 0x9d, 0xc8, 0xe7, 0xd4, 0xf1, 0xe2, 0x5f, 0xd6, 0xe7, 0x28, 0x7e, 0x17, - 0x66, 0xba, 0x10, 0xc9, 0x9b, 0x30, 0xcc, 0x9a, 0x2f, 0x4f, 0x30, 0xf9, 0xe4, 0x0c, 0x88, 0xe3, - 0xf1, 0xd8, 0x87, 0x07, 0x16, 0xc7, 0x36, 0xff, 0x37, 0x03, 0x26, 0x44, 0xce, 0x81, 0xd6, 0x8e, - 0x77, 0x64, 0x77, 0x5e, 0x4c, 0x76, 0x27, 0xf7, 0x99, 0x12, 0xdd, 0xf9, 0xff, 0x74, 0x27, 0xde, - 0xd2, 0x3a, 0xf1, 0x74, 0x14, 0x29, 0x20, 0x3f, 0xa7, 0x4f, 0x1f, 0xfe, 0x16, 0xc6, 0xab, 0xe9, - 0x88, 0xe4, 0x6b, 0x30, 0xb6, 0x4a, 0x1f, 0x6a, 0x07, 0x81, 0x8b, 0x3d, 0x98, 0x5e, 0x8d, 0x10, - 0xf9, 0x9a, 0xc2, 0x08, 0x94, 0x16, 0x7d, 0xd8, 0xfd, 0xca, 0x7d, 0xcc, 0x92, 0x9d, 0x05, 0x74, - 0xb2, 0xe3, 0x4c, 0x7d, 0x71, 0x1d, 0x8b, 0x6e, 0x80, 0xbf, 0x9a, 0x05, 0x88, 0xef, 0x37, 0xd9, - 0x02, 0xa4, 0x5a, 0x66, 0x1e, 0x61, 0xae, 0x43, 0x90, 0x3a, 0xc7, 0x05, 0x88, 0x5c, 0x84, 0x21, - 0x25, 0x35, 0x6f, 0x6a, 0x24, 0x07, 0x5a, 0x65, 0x8b, 0x00, 0xc1, 0x41, 0xab, 0x6e, 0x37, 0x68, - 0xd3, 0xe1, 0xb2, 0x38, 0x8b, 0x8f, 0xfa, 0xcd, 0xc6, 0xd0, 0x1e, 0xc9, 0x63, 0xc7, 0x18, 0x46, - 0x89, 0x21, 0x90, 0x77, 0x12, 0x17, 0xc0, 0x43, 0x71, 0x00, 0x8b, 0x0a, 0x57, 0x03, 0x58, 0x94, - 0xcb, 0x61, 0xb2, 0x00, 0x91, 0xbd, 0x58, 0x15, 0x48, 0x69, 0xa9, 0x84, 0x25, 0x8c, 0xd1, 0x48, - 0xcb, 0xb1, 0xf6, 0xa2, 0xa6, 0x80, 0xa9, 0x34, 0x12, 0x46, 0xaa, 0x30, 0xe6, 0xb6, 0x1e, 0xd0, - 0x56, 0xe8, 0xf9, 0x07, 0x73, 0xa3, 0x38, 0xf8, 0x67, 0x94, 0xab, 0xe4, 0x8a, 0x2c, 0xe3, 0xe3, - 0x8d, 0x47, 0x94, 0x08, 0x5f, 0x1d, 0xee, 0x08, 0x28, 0xee, 0x8d, 0xff, 0x51, 0x06, 0x48, 0x37, - 0x03, 0xf2, 0x05, 0x18, 0xe7, 0x22, 0xd8, 0xf6, 0x83, 0x6f, 0x88, 0x1b, 0x67, 0xee, 0x6e, 0xa9, - 0x80, 0x55, 0x77, 0x4b, 0x0e, 0xb6, 0x82, 0x6f, 0x34, 0xc9, 0x57, 0xe1, 0x04, 0x0e, 0x40, 0x9b, - 0xfa, 0xae, 0xd7, 0xb0, 0x31, 0xba, 0xcb, 0x69, 0x8a, 0x54, 0x70, 0x6f, 0x60, 0xce, 0xd2, 0xee, - 0xe2, 0x1e, 0x03, 0x35, 0xc3, 0x50, 0xab, 0x88, 0x59, 0xe5, 0x88, 0x64, 0x1d, 0xf2, 0x2a, 0xfd, - 0x4e, 0xa7, 0xd9, 0x14, 0x63, 0x7f, 0x05, 0x9f, 0x32, 0x4a, 0x94, 0xf5, 0x60, 0x3c, 0x15, 0x33, - 0xbe, 0xdd, 0x69, 0x36, 0xc9, 0xe7, 0x00, 0xbc, 0x96, 0xbd, 0xef, 0x06, 0x81, 0xdb, 0xda, 0x15, - 0x93, 0x00, 0x57, 0x4d, 0x0c, 0x55, 0xbb, 0xd1, 0x6b, 0xad, 0x70, 0xa0, 0xe8, 0xc6, 0x2f, 0xc3, - 0x8c, 0x70, 0xb4, 0xdc, 0x72, 0xc3, 0x3d, 0xa1, 0xa0, 0x3d, 0x89, 0x76, 0xa7, 0x68, 0x68, 0xff, - 0x36, 0x03, 0x50, 0xd8, 0xaa, 0x49, 0x1f, 0xdf, 0xcb, 0x30, 0xcc, 0xd4, 0x4e, 0x79, 0x7c, 0x45, - 0xe3, 0x1f, 0xf2, 0x55, 0x8d, 0x7f, 0x88, 0xc1, 0x56, 0x9e, 0x45, 0x77, 0xd1, 0x82, 0x92, 0x89, - 0xcf, 0xba, 0x3e, 0x07, 0x69, 0x5a, 0x14, 0x07, 0x91, 0x65, 0x80, 0xd8, 0xeb, 0x56, 0x1c, 0x84, - 0x66, 0x62, 0xf7, 0x35, 0x51, 0x20, 0x92, 0x06, 0xc4, 0x9e, 0xbb, 0xea, 0x44, 0x88, 0xd1, 0xc8, - 0x3d, 0x18, 0x5a, 0x77, 0x76, 0xa5, 0xfb, 0x60, 0x0f, 0x5f, 0xe4, 0xf3, 0x22, 0xe9, 0x5e, 0xec, - 0x8f, 0x3c, 0x15, 0x3a, 0x5a, 0x6e, 0x52, 0x64, 0x42, 0xca, 0x30, 0x22, 0x12, 0x2a, 0xf7, 0x08, - 0x4c, 0x11, 0xf9, 0x94, 0x45, 0xec, 0x25, 0x02, 0xb5, 0xf7, 0x60, 0x79, 0xea, 0xe4, 0x05, 0xc8, - 0xd6, 0x6a, 0x2b, 0xc2, 0x03, 0x67, 0x32, 0xd6, 0x6a, 0x6b, 0xb5, 0x15, 0x99, 0x34, 0x5e, 0x7d, - 0xb2, 0x93, 0x21, 0x9b, 0x54, 0xed, 0x15, 0xb6, 0xc9, 0xe8, 0xba, 0x29, 0x6e, 0x32, 0x52, 0x37, - 0x8d, 0x34, 0x52, 0xa6, 0xd0, 0x75, 0x39, 0x2c, 0xa3, 0xf7, 0x9a, 0xe2, 0xb0, 0xac, 0xb9, 0x29, - 0xff, 0x78, 0x56, 0x09, 0x84, 0x11, 0xcd, 0x7d, 0x07, 0xe0, 0xae, 0xe7, 0xb6, 0x56, 0x68, 0xb8, - 0xe7, 0x35, 0x14, 0xbf, 0xe9, 0xf1, 0x8f, 0x3c, 0xb7, 0x65, 0xef, 0x23, 0xf8, 0x07, 0x87, 0xf3, - 0x0a, 0x92, 0xa5, 0xfc, 0x4d, 0x5e, 0x87, 0x31, 0xf6, 0x4b, 0x7d, 0xa8, 0x1b, 0x8d, 0x41, 0x48, - 0x2d, 0xde, 0x67, 0x88, 0x10, 0xc8, 0x2d, 0x00, 0x1e, 0x92, 0xa3, 0xe8, 0x72, 0x38, 0xd4, 0xfc, - 0xfe, 0x24, 0x19, 0xc8, 0xa7, 0x20, 0x93, 0xa5, 0xa8, 0xe9, 0x32, 0x4b, 0x8a, 0x48, 0xa5, 0x81, - 0x16, 0x0f, 0x31, 0x1c, 0xb6, 0xcc, 0xa9, 0xa2, 0xe6, 0xb3, 0x4c, 0x90, 0x61, 0x23, 0x6a, 0x4b, - 0x25, 0x6e, 0xa2, 0x16, 0x22, 0x95, 0x37, 0x22, 0xd8, 0x6b, 0xd8, 0x75, 0x04, 0x6b, 0x8d, 0x88, - 0x90, 0xc9, 0x22, 0x4c, 0x73, 0xef, 0xbe, 0x28, 0xdb, 0x9a, 0x10, 0xaf, 0xb8, 0x90, 0xe3, 0x74, - 0x6c, 0x6a, 0xf5, 0x09, 0x02, 0xb3, 0x02, 0x23, 0x7c, 0x36, 0x60, 0x34, 0xa6, 0x48, 0xf5, 0xa0, - 0xc4, 0x15, 0xf2, 0x68, 0x4c, 0x01, 0xef, 0x8e, 0xc6, 0x54, 0x08, 0xcc, 0x5f, 0xcc, 0xc2, 0x44, - 0xe1, 0x9b, 0x1d, 0x3f, 0xf2, 0xce, 0x2f, 0xc0, 0x64, 0xad, 0xb3, 0x1d, 0xf9, 0x66, 0xca, 0x15, - 0xcc, 0xdf, 0xb7, 0x53, 0x0b, 0x54, 0x6b, 0xba, 0x46, 0x41, 0xca, 0x30, 0x25, 0xa5, 0x87, 0x48, - 0xc0, 0xc8, 0x17, 0x36, 0xfa, 0xd2, 0xcb, 0xa8, 0x81, 0xee, 0xf4, 0x8b, 0x09, 0xa2, 0x58, 0x86, - 0x64, 0x8f, 0x23, 0x43, 0x86, 0x06, 0x92, 0x21, 0x1f, 0xc2, 0x84, 0xac, 0x0d, 0x57, 0xff, 0xf0, - 0x93, 0xad, 0x7e, 0x8d, 0x19, 0x59, 0x8e, 0xa4, 0xc0, 0x48, 0x5f, 0x29, 0x80, 0x57, 0x14, 0x72, - 0xda, 0x75, 0x65, 0x54, 0x17, 0x3c, 0xcc, 0x3f, 0x31, 0x00, 0xee, 0x14, 0xab, 0x1f, 0x43, 0xb2, - 0xbe, 0x09, 0x63, 0xcb, 0x9e, 0xb4, 0x4e, 0x2b, 0x66, 0xc1, 0xa6, 0x04, 0xaa, 0x9b, 0x45, 0x84, - 0x19, 0x49, 0xc4, 0xec, 0xd3, 0x90, 0x88, 0xb7, 0x00, 0xaa, 0xbe, 0xf7, 0x11, 0xad, 0x87, 0x71, - 0x5e, 0x21, 0x5c, 0x29, 0x6d, 0x0e, 0x4d, 0x58, 0x27, 0x15, 0x64, 0xf3, 0x9f, 0x1a, 0x6a, 0x34, - 0xf5, 0xc7, 0xf8, 0xfe, 0xcf, 0x03, 0x44, 0x77, 0x66, 0xb2, 0x03, 0xb8, 0x92, 0x19, 0x41, 0xd5, - 0xaa, 0x63, 0x5c, 0xf2, 0xbe, 0xe2, 0xca, 0xdf, 0xa7, 0x13, 0xcc, 0xae, 0x4e, 0xe8, 0xe9, 0xf5, - 0x71, 0xe5, 0x3d, 0x98, 0x96, 0x01, 0x31, 0xeb, 0xcb, 0x35, 0x0c, 0x60, 0x9d, 0x86, 0xf1, 0xcd, - 0xb2, 0x55, 0xb9, 0xfd, 0x81, 0x7d, 0x7b, 0x63, 0x79, 0x39, 0xff, 0x1c, 0x99, 0x84, 0x31, 0x01, - 0x28, 0x16, 0xf2, 0x06, 0x99, 0x80, 0x5c, 0x65, 0xb5, 0x56, 0x2e, 0x6e, 0x58, 0xe5, 0x7c, 0xe6, - 0xca, 0x02, 0x4c, 0xc5, 0xef, 0x5c, 0xa1, 0x4d, 0x67, 0x14, 0xb2, 0x56, 0x61, 0x2b, 0xff, 0x1c, - 0x01, 0x18, 0xa9, 0xde, 0x2b, 0xd6, 0xae, 0x5f, 0xcf, 0x1b, 0x64, 0x1c, 0x46, 0xef, 0x14, 0xab, - 0xf6, 0xbd, 0x95, 0x5a, 0x3e, 0x73, 0xe5, 0x33, 0x30, 0x83, 0x52, 0x63, 0xd9, 0x0d, 0x42, 0xda, - 0xa2, 0x3e, 0x56, 0x3b, 0x01, 0xb9, 0x1a, 0x65, 0xd3, 0x2d, 0xa4, 0xbc, 0xce, 0x95, 0x4e, 0x33, - 0x74, 0xdb, 0x4d, 0xfa, 0x28, 0x6f, 0x5c, 0xb9, 0x05, 0xd3, 0x96, 0xd7, 0x09, 0xdd, 0xd6, 0x6e, - 0x2d, 0x64, 0x18, 0xbb, 0x07, 0xe4, 0x24, 0xcc, 0x6c, 0xac, 0x16, 0x56, 0x16, 0x2b, 0x77, 0x36, - 0xd6, 0x36, 0x6a, 0xf6, 0x4a, 0x61, 0xbd, 0xb8, 0xc4, 0x8d, 0x48, 0x2b, 0x6b, 0xb5, 0x75, 0xdb, - 0x2a, 0x17, 0xcb, 0xab, 0xeb, 0x79, 0xe3, 0xca, 0x4f, 0x19, 0x30, 0xb5, 0x11, 0x08, 0xa7, 0x9c, - 0x0d, 0x8c, 0xe7, 0x38, 0x0f, 0x2f, 0x6c, 0xd4, 0xca, 0x96, 0xbd, 0xbe, 0x76, 0xaf, 0xbc, 0x6a, - 0x6f, 0xd4, 0x0a, 0x77, 0x92, 0x51, 0x64, 0xf3, 0xf0, 0xbc, 0x82, 0x61, 0x95, 0x8b, 0x6b, 0x9b, - 0x65, 0xcb, 0xae, 0x16, 0x6a, 0xb5, 0xad, 0x35, 0xab, 0x94, 0x37, 0xc8, 0x59, 0x38, 0x95, 0x82, - 0xb0, 0x72, 0xbb, 0x90, 0xcf, 0x74, 0x95, 0xad, 0x96, 0xb7, 0x0a, 0xcb, 0xf6, 0xe2, 0xda, 0x7a, - 0x3e, 0x7b, 0xe5, 0x3d, 0xb6, 0xc2, 0x31, 0xd0, 0x82, 0xe7, 0x84, 0xc8, 0xc1, 0xd0, 0xea, 0xda, - 0x6a, 0x39, 0x69, 0xe8, 0x9b, 0x80, 0x5c, 0xa1, 0x5a, 0xb5, 0xd6, 0x36, 0xcb, 0xa5, 0x7c, 0x86, - 0x75, 0x64, 0xa9, 0xbc, 0xca, 0x5a, 0x96, 0xbd, 0xf2, 0xff, 0x03, 0xc2, 0x23, 0x48, 0x64, 0x60, - 0x3d, 0x76, 0xde, 0x39, 0x38, 0xbb, 0xc4, 0xbe, 0x1a, 0xeb, 0x5d, 0x59, 0x2b, 0x25, 0xbf, 0xe7, - 0x14, 0x90, 0x44, 0xf9, 0xda, 0xed, 0xdb, 0x79, 0x83, 0x9c, 0x86, 0x13, 0x09, 0x78, 0xc9, 0x5a, - 0xab, 0xe6, 0x33, 0x29, 0x05, 0xf7, 0xca, 0xe5, 0x6a, 0x3e, 0x7b, 0xc5, 0x84, 0x99, 0x22, 0xf5, - 0x43, 0xb6, 0xf7, 0xb6, 0xd8, 0x49, 0x0f, 0xab, 0x9f, 0x84, 0xb1, 0xf2, 0x97, 0xd6, 0xcb, 0xab, - 0xb5, 0xca, 0xda, 0x6a, 0xfe, 0xb9, 0x2b, 0x2f, 0x24, 0x70, 0xe4, 0xb4, 0xa8, 0xd5, 0x96, 0xf2, - 0xcf, 0x5d, 0xf9, 0x0a, 0x3b, 0x97, 0x2a, 0xf9, 0x56, 0x4e, 0xc3, 0x09, 0xf5, 0x77, 0x95, 0xb6, - 0x1a, 0x6e, 0x6b, 0x37, 0xff, 0x5c, 0xb2, 0xc0, 0xea, 0xb4, 0x5a, 0xac, 0x00, 0x3b, 0x5f, 0x2d, - 0x58, 0xa7, 0xfe, 0xbe, 0xdb, 0x72, 0x42, 0xda, 0xc8, 0x67, 0xae, 0x5c, 0x85, 0x49, 0x2d, 0x46, - 0x86, 0xd5, 0xbb, 0xbc, 0x26, 0xa6, 0xe3, 0x4a, 0xb9, 0x54, 0xd9, 0x58, 0xc9, 0x0f, 0xb3, 0x6e, - 0x5f, 0xaa, 0xdc, 0x59, 0xca, 0xc3, 0x95, 0xaf, 0xb0, 0x5d, 0x01, 0xc3, 0xc8, 0x57, 0x6e, 0x17, - 0x64, 0x43, 0x59, 0xe7, 0xf0, 0x68, 0xba, 0x72, 0xad, 0xc6, 0x6d, 0x91, 0x2f, 0xc0, 0x9c, 0xf8, - 0x61, 0x17, 0x56, 0x4b, 0xf6, 0x52, 0xc1, 0x2a, 0x6d, 0x15, 0x2c, 0xd6, 0x2d, 0x1f, 0xe4, 0x33, - 0xd8, 0xbf, 0x0a, 0xc4, 0x5e, 0x5f, 0xdb, 0x28, 0x2e, 0xe5, 0xb3, 0x57, 0x5c, 0xc8, 0x27, 0x5d, - 0x09, 0xbb, 0xcc, 0xbb, 0xd6, 0xc6, 0xea, 0x2a, 0x1f, 0xf5, 0x69, 0x18, 0x5f, 0x5b, 0x5f, 0x2a, - 0x5b, 0x22, 0x72, 0x11, 0x43, 0x15, 0x37, 0x56, 0x0b, 0x1b, 0xeb, 0x4b, 0x6b, 0x56, 0xe5, 0xcb, - 0x6c, 0xf8, 0xc9, 0x1c, 0xcc, 0xd6, 0x96, 0x0b, 0xc5, 0x7b, 0xf6, 0xea, 0xda, 0xba, 0x5d, 0x59, - 0xb5, 0x8b, 0x4b, 0x85, 0xd5, 0xd5, 0xf2, 0x72, 0x1e, 0xae, 0xfc, 0x33, 0x03, 0x9e, 0xef, 0x63, - 0x2b, 0x23, 0x6f, 0xc0, 0xe5, 0xa5, 0x72, 0xa1, 0xb4, 0x5c, 0xae, 0xd5, 0x6c, 0xc6, 0xb2, 0xbc, - 0xba, 0x2e, 0x2c, 0xad, 0x76, 0x6d, 0xbd, 0xb0, 0x9e, 0x9c, 0x31, 0x97, 0xe1, 0x95, 0xfe, 0xe8, - 0xf1, 0x64, 0xbd, 0x04, 0x2f, 0xf7, 0x47, 0x15, 0x93, 0x37, 0x43, 0xae, 0xc0, 0xc5, 0xfe, 0x98, - 0xd1, 0xa4, 0xcf, 0x2e, 0xbe, 0xf3, 0x7b, 0x7f, 0x70, 0xee, 0xb9, 0xdf, 0xfb, 0xc3, 0x73, 0xc6, - 0xef, 0xff, 0xe1, 0x39, 0xe3, 0x5f, 0xfe, 0xe1, 0x39, 0xe3, 0xcb, 0xaf, 0x1d, 0x23, 0xb7, 0xf4, - 0xf6, 0x08, 0x9a, 0xf2, 0x6f, 0xfc, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xea, 0x94, 0x26, 0x05, - 0xf9, 0x56, 0x01, 0x00, + // 22738 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6d, 0x90, 0x1c, 0x49, + 0x76, 0x18, 0xb6, 0xd5, 0x3d, 0x1f, 0x3d, 0x6f, 0xbe, 0x7a, 0x12, 0x03, 0x60, 0x80, 0xdd, 0xc5, + 0x60, 0x0b, 0xbb, 0x58, 0x00, 0xbb, 0x0b, 0x1c, 0x06, 0xb7, 0xb8, 0xc3, 0xed, 0xd7, 0xf5, 0x74, + 0x37, 0x30, 0x0d, 0xcc, 0x47, 0x6f, 0xf5, 0x7c, 0xdc, 0xde, 0xde, 0x5d, 0x5d, 0x4d, 0x77, 0xce, + 0x4c, 0x2d, 0x7a, 0xba, 0xfa, 0xaa, 0xaa, 0x01, 0xcc, 0x91, 0x34, 0x3f, 0x24, 0xea, 0x4c, 0xf3, + 0xe3, 0x48, 0xf9, 0x28, 0x9e, 0x6c, 0x29, 0xc8, 0x60, 0x48, 0x32, 0x29, 0x7e, 0x84, 0x2c, 0x29, + 0x42, 0x76, 0xd0, 0xa6, 0x4d, 0x87, 0x82, 0x41, 0x49, 0x21, 0x8b, 0x3f, 0x64, 0x3b, 0x7c, 0x56, + 0x8c, 0x45, 0xd2, 0x52, 0x38, 0x10, 0x0e, 0x85, 0x1d, 0x0c, 0x33, 0xec, 0x73, 0x50, 0x76, 0xe4, + 0xcb, 0xcc, 0xaa, 0xcc, 0xea, 0xea, 0x9e, 0x9e, 0x05, 0xd6, 0x24, 0xd6, 0xfe, 0x03, 0x4c, 0xbf, + 0x7c, 0xef, 0x65, 0x56, 0x7e, 0xbc, 0x7c, 0xf9, 0xf2, 0xbd, 0x97, 0xf0, 0x52, 0x48, 0x9b, 0xb4, + 0xed, 0xf9, 0xe1, 0xb5, 0x26, 0xdd, 0x75, 0xea, 0x07, 0xd7, 0xc2, 0x83, 0x36, 0x0d, 0xf8, 0xbf, + 0x57, 0xdb, 0xbe, 0x17, 0x7a, 0x64, 0x18, 0x7f, 0x9c, 0x9d, 0xdd, 0xf5, 0x76, 0x3d, 0x84, 0x5c, + 0x63, 0x7f, 0xf1, 0xc2, 0xb3, 0xf3, 0xbb, 0x9e, 0xb7, 0xdb, 0xa4, 0xd7, 0xf0, 0xd7, 0x76, 0x67, + 0xe7, 0x5a, 0xe8, 0xee, 0xd3, 0x20, 0x74, 0xf6, 0xdb, 0x02, 0xe1, 0x72, 0x54, 0x81, 0x13, 0x86, + 0xac, 0x24, 0x74, 0xbd, 0xd6, 0xb5, 0x07, 0xd7, 0xd5, 0x9f, 0x02, 0xf5, 0x8d, 0xf4, 0xb6, 0x3c, + 0xf4, 0x9d, 0x76, 0x9b, 0xfa, 0xf1, 0x1f, 0x1c, 0xdd, 0xfc, 0x07, 0x59, 0x18, 0xbb, 0x47, 0x69, + 0xbb, 0xd0, 0x74, 0x1f, 0x50, 0x72, 0x01, 0x86, 0x56, 0x9d, 0x7d, 0x3a, 0x67, 0x9c, 0x37, 0x2e, + 0x8d, 0x2d, 0x4e, 0x3f, 0x3e, 0x9c, 0x1f, 0x0f, 0xa8, 0xff, 0x80, 0xfa, 0x76, 0xcb, 0xd9, 0xa7, + 0x16, 0x16, 0x92, 0xd7, 0x60, 0x8c, 0xfd, 0x1f, 0xb4, 0x9d, 0x3a, 0x9d, 0xcb, 0x20, 0xe6, 0xe4, + 0xe3, 0xc3, 0xf9, 0xb1, 0x96, 0x04, 0x5a, 0x71, 0x39, 0xb9, 0x08, 0xa3, 0xcb, 0xd4, 0x09, 0x68, + 0xa5, 0x34, 0x97, 0x3d, 0x6f, 0x5c, 0xca, 0x2e, 0x4e, 0x3c, 0x3e, 0x9c, 0xcf, 0x35, 0x19, 0xc8, + 0x76, 0x1b, 0x96, 0x2c, 0x24, 0x15, 0x18, 0x2d, 0x3f, 0x6a, 0xbb, 0x3e, 0x0d, 0xe6, 0x86, 0xce, + 0x1b, 0x97, 0xc6, 0x17, 0xce, 0x5e, 0xe5, 0x9d, 0x72, 0x55, 0x76, 0xca, 0xd5, 0x75, 0xd9, 0x29, + 0x8b, 0x27, 0x7e, 0xef, 0x70, 0xfe, 0xb9, 0xc7, 0x87, 0xf3, 0xa3, 0x94, 0x93, 0xfc, 0xec, 0xff, + 0x38, 0x6f, 0x58, 0x92, 0x9e, 0xbc, 0x0d, 0x43, 0xeb, 0x07, 0x6d, 0x3a, 0x37, 0x76, 0xde, 0xb8, + 0x34, 0xb5, 0x70, 0xee, 0x2a, 0x1f, 0x86, 0xe8, 0x23, 0xe3, 0xbf, 0x18, 0xd6, 0x62, 0xee, 0xf1, + 0xe1, 0xfc, 0x10, 0x43, 0xb1, 0x90, 0x8a, 0xbc, 0x01, 0x23, 0x4b, 0x5e, 0x10, 0x56, 0x4a, 0x73, + 0x80, 0x9f, 0x76, 0xf2, 0xf1, 0xe1, 0xfc, 0xcc, 0x9e, 0x17, 0x84, 0xb6, 0xdb, 0x78, 0xdd, 0xdb, + 0x77, 0x43, 0xba, 0xdf, 0x0e, 0x0f, 0x2c, 0x81, 0x64, 0x3e, 0x82, 0x49, 0x8d, 0x1f, 0x19, 0x87, + 0xd1, 0x8d, 0xd5, 0x7b, 0xab, 0x6b, 0x5b, 0xab, 0xf9, 0xe7, 0x48, 0x0e, 0x86, 0x56, 0xd7, 0x4a, + 0xe5, 0xbc, 0x41, 0x46, 0x21, 0x5b, 0xa8, 0x56, 0xf3, 0x19, 0x32, 0x01, 0xb9, 0x52, 0x61, 0xbd, + 0xb0, 0x58, 0xa8, 0x95, 0xf3, 0x59, 0x72, 0x02, 0xa6, 0xb7, 0x2a, 0xab, 0xa5, 0xb5, 0xad, 0x9a, + 0x5d, 0x2a, 0xd7, 0xee, 0xad, 0xaf, 0x55, 0xf3, 0x43, 0x64, 0x0a, 0xe0, 0xde, 0xc6, 0x62, 0xd9, + 0x5a, 0x2d, 0xaf, 0x97, 0x6b, 0xf9, 0x61, 0x32, 0x0b, 0x79, 0x49, 0x62, 0xd7, 0xca, 0xd6, 0x66, + 0xa5, 0x58, 0xce, 0x8f, 0x98, 0xdf, 0xca, 0x42, 0x6e, 0x85, 0x86, 0x4e, 0xc3, 0x09, 0x1d, 0xf2, + 0x82, 0x36, 0x70, 0xf8, 0x4d, 0xca, 0x88, 0x5d, 0xe8, 0x1e, 0xb1, 0xe1, 0xc7, 0x87, 0xf3, 0xc6, + 0x1b, 0xea, 0x48, 0xbd, 0x05, 0xe3, 0x25, 0x1a, 0xd4, 0x7d, 0xb7, 0xcd, 0x66, 0x13, 0x8e, 0xd6, + 0xd8, 0xe2, 0x99, 0xc7, 0x87, 0xf3, 0x27, 0x1b, 0x31, 0x58, 0xe9, 0x01, 0x15, 0x9b, 0x54, 0x60, + 0x64, 0xd9, 0xd9, 0xa6, 0xcd, 0x60, 0x6e, 0xf8, 0x7c, 0xf6, 0xd2, 0xf8, 0xc2, 0xf3, 0xa2, 0xd7, + 0x65, 0x03, 0xaf, 0xf2, 0xd2, 0x72, 0x2b, 0xf4, 0x0f, 0x16, 0x67, 0x1f, 0x1f, 0xce, 0xe7, 0x9b, + 0x08, 0x50, 0x7b, 0x94, 0xa3, 0x90, 0x5a, 0x3c, 0x13, 0x46, 0x8e, 0x9c, 0x09, 0x2f, 0xfe, 0xde, + 0xe1, 0xbc, 0xc1, 0x46, 0x48, 0xcc, 0x84, 0x98, 0x9f, 0x3e, 0x27, 0xce, 0x43, 0xa6, 0x52, 0x9a, + 0x1b, 0xc5, 0x19, 0x98, 0x7f, 0x7c, 0x38, 0x3f, 0xa1, 0x0d, 0x66, 0xa6, 0x52, 0x3a, 0x7b, 0x0b, + 0xc6, 0x95, 0x36, 0x92, 0x3c, 0x64, 0xef, 0xd3, 0x03, 0xde, 0x9f, 0x16, 0xfb, 0x93, 0xcc, 0xc2, + 0xf0, 0x03, 0xa7, 0xd9, 0x11, 0x1d, 0x68, 0xf1, 0x1f, 0x5f, 0xc8, 0x7c, 0xde, 0x30, 0xff, 0xf2, + 0x10, 0xe4, 0x2c, 0x8f, 0xaf, 0x42, 0x72, 0x19, 0x86, 0x6b, 0xa1, 0x13, 0xca, 0xa1, 0x38, 0xf1, + 0xf8, 0x70, 0x7e, 0x9a, 0xad, 0x50, 0xaa, 0xd4, 0xc7, 0x31, 0x18, 0x6a, 0x75, 0xcf, 0x09, 0xe4, + 0x90, 0x20, 0x6a, 0x9b, 0x01, 0x54, 0x54, 0xc4, 0x20, 0x17, 0x61, 0x68, 0xc5, 0x6b, 0x50, 0x31, + 0x2a, 0xe4, 0xf1, 0xe1, 0xfc, 0xd4, 0xbe, 0xd7, 0x50, 0x11, 0xb1, 0x9c, 0xbc, 0x0e, 0x63, 0xc5, + 0x8e, 0xef, 0xd3, 0x16, 0x9b, 0xc0, 0x43, 0x88, 0x3c, 0xf5, 0xf8, 0x70, 0x1e, 0xea, 0x1c, 0xc8, + 0x96, 0x5c, 0x8c, 0xc0, 0xba, 0xba, 0x16, 0x3a, 0x7e, 0x48, 0x1b, 0x73, 0xc3, 0x03, 0x75, 0x35, + 0x5b, 0x74, 0x33, 0x01, 0x27, 0x49, 0x76, 0xb5, 0xe0, 0x44, 0x96, 0x60, 0xfc, 0x8e, 0xef, 0xd4, + 0x69, 0x95, 0xfa, 0xae, 0xd7, 0xc0, 0x31, 0xcc, 0x2e, 0x5e, 0x7c, 0x7c, 0x38, 0x7f, 0x6a, 0x97, + 0x81, 0xed, 0x36, 0xc2, 0x63, 0xea, 0xef, 0x1f, 0xce, 0xe7, 0x4a, 0x1d, 0x1f, 0x7b, 0xcf, 0x52, + 0x49, 0xc9, 0xd7, 0xd9, 0x90, 0x04, 0x21, 0x76, 0x2d, 0x6d, 0xe0, 0xe8, 0xf5, 0x6f, 0xa2, 0x29, + 0x9a, 0x78, 0xaa, 0xe9, 0x04, 0xa1, 0xed, 0x73, 0xba, 0x44, 0x3b, 0x55, 0x96, 0x64, 0x0d, 0x72, + 0xb5, 0xfa, 0x1e, 0x6d, 0x74, 0x9a, 0x74, 0x2e, 0x87, 0xec, 0x4f, 0x8b, 0x89, 0x2b, 0xc7, 0x53, + 0x16, 0x2f, 0x9e, 0x15, 0xbc, 0x49, 0x20, 0x20, 0x4a, 0xdf, 0x47, 0x4c, 0xbe, 0x90, 0xfb, 0xee, + 0x2f, 0xcd, 0x3f, 0xf7, 0x23, 0xff, 0xe2, 0xfc, 0x73, 0xe6, 0x3f, 0xc8, 0x40, 0x3e, 0xc9, 0x84, + 0xec, 0xc0, 0xe4, 0x46, 0xbb, 0xe1, 0x84, 0xb4, 0xd8, 0x74, 0x69, 0x2b, 0x0c, 0x70, 0x92, 0xf4, + 0xff, 0xa6, 0x97, 0x45, 0xbd, 0x73, 0x1d, 0x24, 0xb4, 0xeb, 0x9c, 0x32, 0xf1, 0x55, 0x3a, 0xdb, + 0xb8, 0x9e, 0x1a, 0x4a, 0xef, 0x00, 0x67, 0xd8, 0xf1, 0xea, 0xe1, 0x72, 0xbf, 0x47, 0x3d, 0x82, + 0xad, 0x98, 0x40, 0xad, 0xc6, 0xf6, 0x01, 0xce, 0xcc, 0xc1, 0x27, 0x10, 0x23, 0x49, 0x99, 0x40, + 0x0c, 0x6c, 0xfe, 0x4f, 0x06, 0x4c, 0x59, 0x34, 0xf0, 0x3a, 0x7e, 0x9d, 0x2e, 0x51, 0xa7, 0x41, + 0x7d, 0x36, 0xfd, 0xef, 0xb9, 0xad, 0x86, 0x58, 0x53, 0x38, 0xfd, 0xef, 0xbb, 0x2d, 0x75, 0x09, + 0x63, 0x39, 0xf9, 0x0c, 0x8c, 0xd6, 0x3a, 0xdb, 0x88, 0xca, 0xd7, 0xd4, 0x29, 0x1c, 0xb1, 0xce, + 0xb6, 0x9d, 0x40, 0x97, 0x68, 0xe4, 0x1a, 0x8c, 0x6e, 0x52, 0x3f, 0x88, 0x25, 0x1e, 0xca, 0xfb, + 0x07, 0x1c, 0xa4, 0x12, 0x08, 0x2c, 0x72, 0x27, 0x96, 0xba, 0x62, 0xa7, 0x9a, 0x4e, 0xc8, 0xba, + 0x78, 0xaa, 0xec, 0x0b, 0x88, 0x3a, 0x55, 0x24, 0x96, 0xf9, 0x73, 0x19, 0xc8, 0x97, 0x9c, 0xd0, + 0xd9, 0x76, 0x02, 0xd1, 0x9f, 0x9b, 0x37, 0x98, 0x1c, 0x57, 0x3e, 0x14, 0xe5, 0x38, 0x6b, 0xf9, + 0xc7, 0xfe, 0xbc, 0x57, 0x92, 0x9f, 0x37, 0xce, 0xb6, 0x4d, 0xf1, 0x79, 0xf1, 0x47, 0xbd, 0x73, + 0xf4, 0x47, 0xe5, 0xc5, 0x47, 0xe5, 0xe4, 0x47, 0xc5, 0x9f, 0x42, 0xde, 0x81, 0xa1, 0x5a, 0x9b, + 0xd6, 0x85, 0x10, 0x91, 0xb2, 0x5f, 0xff, 0x38, 0x86, 0xb0, 0x79, 0x63, 0x71, 0x42, 0xb0, 0x19, + 0x0a, 0xda, 0xb4, 0x6e, 0x21, 0x99, 0xb2, 0x68, 0xfe, 0xd1, 0x08, 0xcc, 0xa6, 0x91, 0x91, 0x77, + 0xf4, 0xcd, 0x89, 0x77, 0xcf, 0xf3, 0x3d, 0x37, 0xa7, 0x39, 0x43, 0xdf, 0x9e, 0xae, 0x40, 0xae, + 0xca, 0x26, 0x64, 0xdd, 0x6b, 0x8a, 0x9e, 0x63, 0x52, 0x31, 0xd7, 0x96, 0x30, 0xc3, 0x8a, 0xca, + 0xc9, 0xf3, 0x90, 0xdd, 0xb0, 0x2a, 0xa2, 0xbb, 0xc6, 0x1e, 0x1f, 0xce, 0x67, 0x3b, 0xbe, 0x3b, + 0x67, 0x58, 0x0c, 0x4a, 0xae, 0xc1, 0x48, 0xb1, 0x50, 0xa4, 0x7e, 0x88, 0xdd, 0x34, 0xb1, 0x78, + 0x9a, 0xcd, 0x96, 0xba, 0x63, 0xd7, 0xa9, 0x1f, 0x6a, 0xd5, 0x0b, 0x34, 0xf2, 0x1a, 0x64, 0x0b, + 0x5b, 0x35, 0xd1, 0x33, 0x20, 0x7a, 0xa6, 0xb0, 0x55, 0x5b, 0x9c, 0x14, 0x1d, 0x91, 0x75, 0x1e, + 0x06, 0x8c, 0x7b, 0x61, 0xab, 0xa6, 0x8e, 0xd6, 0x48, 0x9f, 0xd1, 0xba, 0x04, 0x39, 0xa6, 0x7d, + 0xb0, 0x0d, 0x1e, 0x85, 0xe2, 0x18, 0x57, 0xaa, 0xf6, 0x04, 0xcc, 0x8a, 0x4a, 0xc9, 0x85, 0x48, + 0x99, 0xc9, 0xc5, 0xfc, 0x84, 0x32, 0x23, 0x55, 0x18, 0xf2, 0x08, 0x26, 0x4b, 0x07, 0x2d, 0x67, + 0xdf, 0xad, 0x8b, 0x2d, 0x7c, 0x0c, 0xb7, 0xf0, 0xab, 0x7d, 0x86, 0xf1, 0xaa, 0x46, 0xc0, 0x77, + 0x75, 0x29, 0x7c, 0xe7, 0x1a, 0xbc, 0xcc, 0x4e, 0xee, 0xf0, 0x73, 0x86, 0xa5, 0x57, 0xc4, 0xd6, + 0x92, 0x14, 0x91, 0xa8, 0x6d, 0xc5, 0xd3, 0x4e, 0x82, 0xe3, 0xb5, 0xe4, 0x0b, 0x88, 0xba, 0x96, + 0xa2, 0x4d, 0xf7, 0x1d, 0xc8, 0xde, 0x29, 0x56, 0xe7, 0xc6, 0x91, 0x07, 0x11, 0x3c, 0xee, 0x14, + 0xab, 0xc5, 0xa6, 0xd7, 0x69, 0xd4, 0xde, 0x5f, 0x5e, 0x3c, 0x2d, 0xd8, 0x4c, 0xee, 0xd6, 0xdb, + 0x5a, 0x8b, 0x18, 0x1d, 0x29, 0x43, 0x4e, 0x7e, 0xe5, 0xdc, 0x04, 0xf2, 0x98, 0x49, 0x7c, 0xfc, + 0xe6, 0x0d, 0xbe, 0xd6, 0x1a, 0xe2, 0xb7, 0xda, 0x0a, 0x89, 0x43, 0x6e, 0xe0, 0x2c, 0x7b, 0x74, + 0x50, 0x29, 0x05, 0x73, 0x93, 0xe7, 0xb3, 0x97, 0xc6, 0x70, 0x7a, 0x9c, 0x68, 0x33, 0x98, 0xed, + 0x36, 0x54, 0x65, 0x27, 0x42, 0x3c, 0xbb, 0x05, 0xa4, 0xbb, 0x33, 0x53, 0xd4, 0x8f, 0xd7, 0x54, + 0xf5, 0x63, 0x7c, 0xe1, 0xa4, 0x68, 0x60, 0xd1, 0xdb, 0xdf, 0x77, 0x5a, 0x0d, 0xa4, 0xdd, 0x5c, + 0x50, 0xb5, 0x92, 0x02, 0x4c, 0xc5, 0xad, 0x5f, 0x76, 0x83, 0x90, 0x5c, 0x83, 0x31, 0x09, 0x61, + 0x3b, 0x4f, 0x36, 0xf5, 0x3b, 0xad, 0x18, 0xc7, 0xfc, 0xdd, 0x0c, 0x40, 0x5c, 0xf2, 0x8c, 0x0a, + 0xa7, 0xcf, 0x69, 0xc2, 0xe9, 0x64, 0x72, 0x56, 0xf7, 0x14, 0x4b, 0xe4, 0x3d, 0x18, 0x61, 0x7a, + 0x5a, 0x47, 0xea, 0xa1, 0xa7, 0x93, 0xa4, 0x58, 0xb8, 0x79, 0x63, 0x71, 0x4a, 0x10, 0x8f, 0x04, + 0x08, 0xb1, 0x04, 0x99, 0x22, 0xd7, 0xfe, 0xdb, 0x91, 0x78, 0x30, 0x84, 0x44, 0xbb, 0xa4, 0x88, + 0x24, 0x23, 0x5e, 0xc4, 0x52, 0x24, 0x29, 0x02, 0xe9, 0x0c, 0x17, 0x48, 0xbc, 0x53, 0x47, 0x85, + 0x40, 0x4a, 0x8a, 0x23, 0xde, 0x81, 0x47, 0x8a, 0xa3, 0x76, 0x72, 0xad, 0x0f, 0xe1, 0x34, 0xb8, + 0x94, 0xda, 0x2b, 0x69, 0xab, 0xfc, 0xfc, 0x51, 0xab, 0x3c, 0xb9, 0xc6, 0x6f, 0xf4, 0x12, 0x80, + 0x27, 0xe5, 0x92, 0x74, 0x1e, 0xaa, 0xe4, 0x28, 0x08, 0xdf, 0xe2, 0xeb, 0x79, 0xa4, 0xe7, 0x7a, + 0x3e, 0x99, 0xba, 0x9e, 0xf9, 0x6a, 0x7e, 0x0b, 0x86, 0x0b, 0xdf, 0xec, 0xf8, 0x54, 0x28, 0x8c, + 0x13, 0xb2, 0x4e, 0x06, 0x8b, 0x04, 0xc1, 0xb4, 0xc3, 0x7e, 0xaa, 0x8a, 0x36, 0x96, 0xb3, 0x9a, + 0xd7, 0x97, 0x6b, 0x42, 0x19, 0x24, 0x89, 0x6e, 0x59, 0x5f, 0x56, 0x9a, 0x1d, 0x6a, 0x5f, 0xcd, + 0xa8, 0xc8, 0x35, 0xc8, 0x14, 0x4a, 0x78, 0xee, 0x1c, 0x5f, 0x18, 0x93, 0xd5, 0x96, 0x16, 0x67, + 0x05, 0xc9, 0x84, 0xa3, 0x1d, 0x3a, 0x0a, 0x25, 0xb2, 0x08, 0xc3, 0x2b, 0x07, 0xb5, 0xf7, 0x97, + 0x85, 0xf4, 0x3b, 0x21, 0xe7, 0x35, 0x83, 0xad, 0xe1, 0xd6, 0x15, 0xc4, 0x2d, 0xde, 0x3f, 0x08, + 0xbe, 0xd1, 0x54, 0x5b, 0x8c, 0x68, 0xa4, 0x0a, 0x63, 0x85, 0xc6, 0xbe, 0xdb, 0xda, 0x08, 0xa8, + 0x2f, 0x24, 0xe0, 0x5c, 0xa2, 0xdd, 0x51, 0xf9, 0xe2, 0xdc, 0xe3, 0xc3, 0xf9, 0x59, 0x87, 0xfd, + 0xb4, 0x3b, 0x01, 0xf5, 0x15, 0x6e, 0x31, 0x13, 0x52, 0x05, 0x58, 0xf1, 0x5a, 0xbb, 0x5e, 0x21, + 0x6c, 0x3a, 0x41, 0x42, 0x20, 0xc6, 0x05, 0x91, 0x3e, 0x77, 0x72, 0x9f, 0xc1, 0x6c, 0x87, 0x01, + 0x15, 0x86, 0x0a, 0x8f, 0x4f, 0x4e, 0xc8, 0x5d, 0x87, 0x99, 0xae, 0x8f, 0xec, 0x7f, 0x18, 0x36, + 0xff, 0x86, 0xaa, 0x77, 0x89, 0x25, 0xcc, 0x4e, 0xfd, 0x62, 0x21, 0x19, 0xb1, 0x16, 0xd8, 0xb5, + 0x90, 0xa2, 0x65, 0x74, 0x99, 0x4f, 0xea, 0x4c, 0xd7, 0xa4, 0x1e, 0x57, 0x76, 0x75, 0x3e, 0x95, + 0xa3, 0x21, 0xce, 0x7e, 0xfc, 0x21, 0x7e, 0x0f, 0x26, 0x56, 0x9c, 0x96, 0xb3, 0x4b, 0x1b, 0xec, + 0xfb, 0xf8, 0xa2, 0xe5, 0xea, 0xcf, 0xe9, 0x7d, 0x0e, 0xc7, 0xd1, 0x54, 0x7b, 0x5f, 0x23, 0x20, + 0xd7, 0xe5, 0x92, 0x18, 0x4e, 0x59, 0x12, 0x52, 0x13, 0x19, 0xc6, 0x25, 0x21, 0x16, 0x82, 0xf9, + 0xb7, 0x47, 0xf1, 0x1b, 0xc9, 0xeb, 0x30, 0x62, 0xd1, 0xdd, 0x58, 0xe9, 0xc2, 0xc3, 0xbb, 0x8f, + 0x10, 0xb5, 0x63, 0x38, 0x0e, 0xee, 0xe8, 0xb4, 0x11, 0xec, 0xb9, 0x3b, 0xa1, 0xe8, 0x9d, 0x68, + 0x47, 0x17, 0x60, 0x65, 0x47, 0x17, 0x10, 0x6d, 0x47, 0x17, 0x30, 0x26, 0x36, 0xac, 0x52, 0x4d, + 0x74, 0x9a, 0xec, 0x61, 0xab, 0xa4, 0xac, 0x3f, 0x5f, 0xdb, 0x50, 0x19, 0x36, 0xb9, 0x09, 0x63, + 0x85, 0x7a, 0xdd, 0xeb, 0x28, 0xa7, 0x5f, 0x3e, 0xe1, 0x39, 0x50, 0xb7, 0xe0, 0xc4, 0xa8, 0xa4, + 0x06, 0xe3, 0x65, 0x76, 0x64, 0x74, 0x8b, 0x4e, 0x7d, 0x4f, 0x76, 0x92, 0x5c, 0xfc, 0x4a, 0x49, + 0x3c, 0xe5, 0x29, 0x02, 0xeb, 0x0c, 0xa8, 0x9a, 0x44, 0x14, 0x5c, 0xb2, 0x0e, 0xe3, 0x35, 0x5a, + 0xf7, 0x69, 0x58, 0x0b, 0x3d, 0x9f, 0x26, 0x64, 0x99, 0x52, 0xb2, 0x78, 0x4e, 0x9e, 0x5a, 0x03, + 0x04, 0xda, 0x01, 0x83, 0xaa, 0x5c, 0x15, 0x64, 0x7e, 0xfc, 0xd8, 0xf7, 0xfc, 0x83, 0xd2, 0xa2, + 0x90, 0x6f, 0xf1, 0x66, 0xc8, 0xc1, 0xea, 0xf1, 0x83, 0x41, 0x1a, 0xdb, 0xfa, 0xf1, 0x83, 0x63, + 0xe1, 0x48, 0x95, 0x6a, 0xa8, 0x86, 0x08, 0x69, 0x37, 0x1d, 0xf7, 0x32, 0x82, 0x95, 0x91, 0x6a, + 0x04, 0xa8, 0xc4, 0x68, 0x23, 0x25, 0xb0, 0x48, 0x1b, 0x88, 0x1c, 0x35, 0xae, 0x22, 0x36, 0x69, + 0x10, 0x08, 0x21, 0x78, 0x26, 0x31, 0xf8, 0x31, 0xc2, 0xe2, 0x2b, 0x82, 0xf9, 0x8b, 0x72, 0x1a, + 0x88, 0x13, 0x27, 0x2b, 0x54, 0xea, 0x49, 0xe1, 0x4d, 0x6e, 0x01, 0x94, 0x1f, 0x85, 0xd4, 0x6f, + 0x39, 0xcd, 0xc8, 0x4c, 0x87, 0x86, 0x2a, 0x2a, 0xa0, 0xfa, 0x40, 0x2b, 0xc8, 0xa4, 0x08, 0x93, + 0x85, 0x20, 0xe8, 0xec, 0x53, 0xcb, 0x6b, 0xd2, 0x82, 0xb5, 0x8a, 0x02, 0x73, 0x6c, 0xf1, 0xc5, + 0xc7, 0x87, 0xf3, 0x67, 0x1c, 0x2c, 0xb0, 0x7d, 0xaf, 0x49, 0x6d, 0xc7, 0x57, 0x67, 0xb7, 0x4e, + 0x43, 0xd6, 0x00, 0xd6, 0xda, 0xb4, 0x55, 0xa3, 0x8e, 0x5f, 0xdf, 0x4b, 0xc8, 0xc7, 0xb8, 0x60, + 0xf1, 0x05, 0xf1, 0x85, 0xb3, 0x5e, 0x9b, 0xb6, 0x02, 0x84, 0xa9, 0xad, 0x8a, 0x31, 0xc9, 0x7b, + 0x30, 0x5d, 0x29, 0xac, 0x54, 0xbd, 0xa6, 0x5b, 0x3f, 0x28, 0x3f, 0x72, 0x83, 0x90, 0xe9, 0x8f, + 0xc6, 0xa5, 0x1c, 0x17, 0x43, 0xae, 0xb3, 0x6f, 0xb7, 0xb1, 0xcc, 0xa6, 0x58, 0x68, 0x25, 0xb1, + 0xcd, 0x1f, 0xd0, 0xe6, 0x1a, 0x5b, 0x07, 0xf7, 0xe8, 0x41, 0xd5, 0xa7, 0x3b, 0xee, 0x23, 0xb1, + 0x6c, 0x71, 0x1d, 0xdc, 0xa7, 0x07, 0x76, 0x1b, 0xa1, 0xea, 0x3a, 0x88, 0x50, 0xc9, 0x67, 0x21, + 0x77, 0x6f, 0xa5, 0x76, 0x8f, 0x1e, 0x54, 0x4a, 0x42, 0xdd, 0xe0, 0x64, 0xfb, 0x81, 0xcd, 0x48, + 0xb5, 0x5e, 0x8d, 0x30, 0xcd, 0xc5, 0x78, 0xcd, 0xb3, 0x9a, 0x8b, 0xcd, 0x4e, 0x10, 0x52, 0xbf, + 0x52, 0x52, 0x6b, 0xae, 0x73, 0x60, 0x62, 0x05, 0x46, 0xa8, 0xe6, 0x4f, 0x65, 0x70, 0xbd, 0xb3, + 0xa1, 0xad, 0xb4, 0x82, 0xd0, 0x69, 0xd5, 0x69, 0xc4, 0x00, 0x87, 0xd6, 0x15, 0xd0, 0xc4, 0xd0, + 0xc6, 0xc8, 0x7a, 0xd5, 0x99, 0x81, 0xab, 0x66, 0x55, 0x4a, 0x6b, 0x83, 0x30, 0x52, 0x8b, 0x2a, + 0x7d, 0x01, 0x4d, 0x54, 0x19, 0x23, 0x93, 0x8b, 0x30, 0x5a, 0x29, 0xac, 0x14, 0x3a, 0xe1, 0x1e, + 0x4a, 0x9b, 0x1c, 0x57, 0xe1, 0xd8, 0x78, 0x39, 0x9d, 0x70, 0xcf, 0x92, 0x85, 0xe4, 0x1a, 0xaa, + 0xc6, 0x2d, 0x1a, 0x72, 0xf3, 0xa8, 0xd8, 0x5e, 0x02, 0x0e, 0x4a, 0x68, 0xc6, 0x0c, 0x64, 0xfe, + 0x8e, 0x11, 0xaf, 0x4e, 0x72, 0x51, 0xdb, 0xce, 0xd0, 0xf8, 0xc1, 0xb6, 0x33, 0xd5, 0xf8, 0x81, + 0x56, 0x5e, 0x0b, 0x48, 0xb1, 0x13, 0x84, 0xde, 0x7e, 0xb9, 0xd5, 0x68, 0x7b, 0x6e, 0x2b, 0x44, + 0x2a, 0xde, 0x13, 0xe6, 0xe3, 0xc3, 0xf9, 0x73, 0x75, 0x2c, 0xb5, 0xa9, 0x28, 0xb6, 0x13, 0x5c, + 0x52, 0xa8, 0x9f, 0xa0, 0x73, 0xcc, 0x7f, 0x9c, 0xd1, 0xa4, 0x2a, 0x6b, 0x9e, 0x45, 0xdb, 0x4d, + 0xb7, 0x8e, 0x47, 0xb6, 0x3b, 0xbe, 0xd7, 0x69, 0x47, 0x43, 0x8c, 0xcd, 0xf3, 0xe3, 0x52, 0x7b, + 0x97, 0x15, 0xeb, 0xbc, 0x53, 0xa8, 0xc9, 0x17, 0x61, 0x82, 0x6d, 0x70, 0xe2, 0x67, 0x30, 0x97, + 0xc1, 0xde, 0x7d, 0x01, 0xcd, 0x58, 0x01, 0xf5, 0x23, 0x36, 0xda, 0xce, 0xa8, 0x52, 0x90, 0x06, + 0xcc, 0xad, 0xfb, 0x4e, 0x2b, 0x70, 0xc3, 0x72, 0xab, 0xee, 0x1f, 0xe0, 0x86, 0x5c, 0x6e, 0x39, + 0xdb, 0x4d, 0xda, 0xc0, 0xcf, 0xcd, 0x2d, 0x5e, 0x7a, 0x7c, 0x38, 0xff, 0x72, 0xc8, 0x71, 0x6c, + 0x1a, 0x21, 0xd9, 0x94, 0x63, 0x29, 0x9c, 0x7b, 0x72, 0x62, 0x1b, 0xb8, 0xec, 0x56, 0xbc, 0x9a, + 0x18, 0x8a, 0xec, 0x17, 0xa7, 0xa3, 0xd1, 0x60, 0xf2, 0x43, 0x6d, 0xa6, 0x4a, 0x60, 0xfe, 0x89, + 0x11, 0xcb, 0x7d, 0xf2, 0x36, 0x8c, 0x8b, 0xe9, 0xab, 0xcc, 0x8b, 0xb3, 0x6c, 0x07, 0x91, 0x73, + 0x3d, 0x31, 0xb2, 0x2a, 0x3a, 0x3b, 0xa7, 0x15, 0x8a, 0xcb, 0xca, 0xdc, 0xc0, 0x73, 0x9a, 0x53, + 0x6f, 0x26, 0xa9, 0x24, 0x1a, 0x9b, 0x04, 0xeb, 0xcb, 0x35, 0xbd, 0x57, 0x70, 0x12, 0x84, 0xcd, + 0x20, 0xa5, 0x1b, 0x14, 0xe4, 0x27, 0xff, 0xf0, 0xff, 0xce, 0x48, 0xdb, 0x5e, 0xc8, 0x22, 0x4c, + 0x6e, 0x79, 0xfe, 0x7d, 0x1c, 0x5f, 0xa5, 0x13, 0x70, 0xe4, 0x1f, 0xca, 0x82, 0xe4, 0x07, 0xe9, + 0x24, 0x6a, 0xdb, 0x94, 0xde, 0xd0, 0xdb, 0x96, 0xe0, 0xa0, 0x11, 0xb0, 0x71, 0x88, 0x38, 0x46, + 0xab, 0x03, 0xc7, 0x21, 0x6e, 0x82, 0x36, 0x85, 0x55, 0x74, 0xf3, 0x3f, 0x37, 0xd4, 0x6d, 0x84, + 0x75, 0x72, 0xc9, 0xdb, 0x77, 0xdc, 0x96, 0xf2, 0x39, 0xfc, 0xf6, 0x05, 0xa1, 0xc9, 0x96, 0x28, + 0xc8, 0xe4, 0x06, 0xe4, 0xf8, 0xaf, 0x48, 0xf0, 0xa1, 0xdd, 0x41, 0x10, 0xea, 0x52, 0x5b, 0x22, + 0x76, 0x8d, 0x4c, 0xf6, 0xb8, 0x23, 0xf3, 0x23, 0x06, 0x8c, 0x2b, 0x47, 0x32, 0x26, 0x7f, 0xab, + 0xbe, 0xf7, 0x11, 0xad, 0x87, 0xba, 0xe8, 0x6f, 0x73, 0x60, 0x42, 0xfe, 0x46, 0xa8, 0x09, 0x91, + 0x9f, 0x39, 0x86, 0xc8, 0x37, 0xff, 0x37, 0x43, 0xe8, 0xb5, 0x03, 0xcb, 0x48, 0x5d, 0x9e, 0x65, + 0x8e, 0x23, 0xec, 0xbf, 0x08, 0xc3, 0x16, 0x6d, 0xb8, 0x81, 0xd0, 0x49, 0x67, 0x54, 0x1d, 0x1a, + 0x0b, 0x62, 0x35, 0xde, 0x67, 0x3f, 0x55, 0x35, 0x1e, 0xcb, 0x99, 0xf2, 0x51, 0x09, 0x6e, 0x37, + 0xe9, 0x23, 0x97, 0xcf, 0x64, 0xb1, 0x69, 0xa0, 0xf2, 0xe1, 0x06, 0xf6, 0x0e, 0x2b, 0x11, 0x5a, + 0x90, 0x3a, 0x6b, 0x35, 0x1a, 0xf3, 0x03, 0x80, 0xb8, 0x4a, 0x72, 0x0f, 0xf2, 0x62, 0x6d, 0xbb, + 0xad, 0x5d, 0xae, 0x12, 0x88, 0x3e, 0x98, 0x7f, 0x7c, 0x38, 0xff, 0x7c, 0x3d, 0x2a, 0x13, 0x1a, + 0x84, 0xc2, 0xb7, 0x8b, 0xd0, 0xfc, 0x8f, 0x32, 0xec, 0xfc, 0xca, 0xfa, 0xe8, 0x1e, 0x3d, 0x08, + 0x9d, 0xed, 0xdb, 0x6e, 0x53, 0x9b, 0x89, 0xf7, 0x11, 0x6a, 0xef, 0xb8, 0xda, 0xe5, 0x87, 0x82, + 0xcc, 0x66, 0xe2, 0x3d, 0x7f, 0xfb, 0x4d, 0x24, 0x54, 0x66, 0xe2, 0x7d, 0x7f, 0xfb, 0xcd, 0x24, + 0x59, 0x84, 0x48, 0x4c, 0x18, 0xe1, 0xb3, 0x52, 0xcc, 0x41, 0x78, 0x7c, 0x38, 0x3f, 0xc2, 0x27, + 0xaf, 0x25, 0x4a, 0xc8, 0x19, 0xc8, 0xd6, 0xaa, 0xab, 0x42, 0x7c, 0xa0, 0x0d, 0x24, 0x68, 0xb7, + 0x2c, 0x06, 0x63, 0x75, 0x2e, 0x97, 0x0a, 0x55, 0x3c, 0xbc, 0x0d, 0xc7, 0x75, 0x36, 0x1b, 0x4e, + 0x3b, 0x79, 0x7c, 0x8b, 0x10, 0xc9, 0x3b, 0x30, 0x7e, 0xaf, 0x54, 0x5c, 0xf2, 0x02, 0xbe, 0xf4, + 0x47, 0xe2, 0xc9, 0x7f, 0xbf, 0x51, 0xb7, 0xd1, 0x42, 0x9a, 0x94, 0xa1, 0x0a, 0xbe, 0xf9, 0x1b, + 0x06, 0x8c, 0x2b, 0x46, 0x01, 0xf2, 0x59, 0x71, 0x3d, 0x67, 0xe0, 0x95, 0xf3, 0xa9, 0x6e, 0xb3, + 0x01, 0x2b, 0xe5, 0x27, 0xd1, 0x7d, 0xaf, 0x41, 0xc5, 0x65, 0x5d, 0x7c, 0xe8, 0xcc, 0x0c, 0x72, + 0xe8, 0xbc, 0x05, 0xc0, 0xe7, 0x00, 0x36, 0x59, 0xd9, 0x8b, 0x95, 0x2b, 0x7a, 0x75, 0x5c, 0x62, + 0x64, 0xd3, 0x82, 0x09, 0xf5, 0xc0, 0xc9, 0xc4, 0xa7, 0xb8, 0x72, 0x10, 0xf6, 0x37, 0x45, 0x7c, + 0x0a, 0x6e, 0xdd, 0x57, 0x20, 0x3a, 0x89, 0xf9, 0x59, 0xd5, 0x4a, 0x30, 0xe8, 0x02, 0x34, 0x7f, + 0xcc, 0x88, 0x97, 0xfb, 0xe6, 0x75, 0xf2, 0x16, 0x8c, 0xf0, 0x2b, 0x1e, 0x71, 0x13, 0x76, 0x32, + 0x3a, 0x30, 0xa8, 0xf7, 0x3f, 0xdc, 0x3c, 0xf7, 0xfb, 0xfc, 0xaa, 0xf7, 0x39, 0x4b, 0x90, 0x44, + 0x96, 0x3d, 0xdd, 0x58, 0x20, 0xb9, 0xa3, 0x0d, 0xeb, 0x7a, 0x9a, 0x65, 0xcf, 0xfc, 0xd7, 0x59, + 0x98, 0xd2, 0xd1, 0xd4, 0x7b, 0x20, 0x63, 0xa0, 0x7b, 0xa0, 0x2f, 0x42, 0x8e, 0xf5, 0x87, 0x5b, + 0xa7, 0x52, 0xed, 0x78, 0x19, 0xed, 0x9d, 0x02, 0xa6, 0xdd, 0x6f, 0x42, 0xed, 0x20, 0x08, 0xe9, + 0x3e, 0x3b, 0x3f, 0x58, 0x11, 0x15, 0x59, 0x50, 0xcc, 0xf8, 0xd9, 0x78, 0x27, 0x96, 0x66, 0x7c, + 0x75, 0xde, 0x46, 0x06, 0xfd, 0x37, 0x60, 0x84, 0x69, 0x94, 0xd1, 0xf1, 0x16, 0x5b, 0xc9, 0x94, + 0xcd, 0x84, 0x77, 0x02, 0x47, 0x22, 0x5b, 0x90, 0x5b, 0x76, 0x82, 0xb0, 0x46, 0x69, 0x6b, 0x80, + 0x1b, 0xde, 0x79, 0xd1, 0x55, 0x27, 0xf0, 0xfa, 0x34, 0xa0, 0xb4, 0x95, 0xb8, 0xa2, 0x8b, 0x98, + 0x91, 0xaf, 0x02, 0x14, 0xbd, 0x56, 0xe8, 0x7b, 0xcd, 0x65, 0x6f, 0x77, 0x6e, 0x04, 0x8d, 0x88, + 0xe7, 0x12, 0x03, 0x10, 0x23, 0x70, 0xd3, 0x61, 0x74, 0x78, 0xae, 0xf3, 0x02, 0xbb, 0xe9, 0xed, + 0xaa, 0xf3, 0x35, 0xc6, 0x27, 0xb7, 0x21, 0x2f, 0x0f, 0x6d, 0x1b, 0xed, 0x5d, 0x1f, 0x27, 0xc8, + 0x68, 0xbc, 0xbd, 0xd2, 0x47, 0xa1, 0xdd, 0x11, 0x70, 0x55, 0xa2, 0x25, 0x69, 0xcc, 0xef, 0x67, + 0xe0, 0x74, 0x8f, 0xe6, 0xb0, 0x19, 0x8b, 0x1b, 0x9f, 0x32, 0x63, 0x13, 0xfb, 0x1d, 0x77, 0x08, + 0xe1, 0xae, 0x03, 0x6c, 0x8e, 0x0d, 0xa5, 0xbb, 0x0e, 0x90, 0xbb, 0x30, 0xc4, 0x3a, 0x71, 0x80, + 0x2b, 0x50, 0x79, 0xa2, 0x9e, 0x0a, 0x5d, 0x75, 0x80, 0xb1, 0x73, 0x91, 0x07, 0xf9, 0x2c, 0x64, + 0xd7, 0xd7, 0x97, 0x71, 0x74, 0xb3, 0xa8, 0x16, 0x4f, 0x86, 0x61, 0x53, 0x9b, 0x4c, 0x93, 0x8c, + 0xf6, 0x6a, 0x74, 0x63, 0xce, 0xd0, 0xc9, 0x97, 0x12, 0xee, 0x17, 0x57, 0xfa, 0x0f, 0xc5, 0xe0, + 0xde, 0x18, 0x4f, 0xe2, 0x16, 0xf1, 0xd7, 0x32, 0xf1, 0x2a, 0xbb, 0xed, 0x36, 0x43, 0xea, 0x93, + 0xb3, 0x7c, 0xd1, 0xc4, 0xa7, 0x43, 0x2b, 0xfa, 0x4d, 0xe6, 0xe2, 0x15, 0xc8, 0x59, 0x45, 0x4b, + 0xed, 0x8a, 0xb2, 0xd4, 0xb2, 0xb8, 0xd4, 0xa6, 0x7a, 0x2e, 0xaa, 0x2b, 0x29, 0x33, 0x07, 0x97, + 0x4a, 0xf7, 0xec, 0x20, 0x2f, 0xc3, 0xe4, 0xaa, 0x57, 0x7e, 0x14, 0x46, 0x88, 0x6c, 0x89, 0xe4, + 0x2c, 0x1d, 0xc8, 0x38, 0xae, 0x35, 0x1b, 0xd4, 0x5f, 0xdf, 0x73, 0x5a, 0xda, 0xed, 0x9c, 0xd5, + 0x05, 0x67, 0xb8, 0xab, 0xf4, 0xa1, 0x8e, 0x3b, 0xca, 0x71, 0x93, 0x70, 0xf3, 0x47, 0x33, 0xb2, + 0x33, 0x36, 0x17, 0x9e, 0xd1, 0xab, 0x95, 0x37, 0xb5, 0xab, 0x95, 0x13, 0x91, 0x6d, 0x2b, 0xba, + 0x28, 0x5c, 0x38, 0xe2, 0xbe, 0xf7, 0x16, 0x4c, 0xc8, 0x2e, 0xc0, 0x1b, 0xaa, 0xcb, 0x30, 0x2a, + 0x3d, 0x16, 0xf8, 0xfd, 0xd4, 0xb4, 0xc6, 0x73, 0x73, 0xc1, 0x92, 0xe5, 0xe6, 0xaf, 0x8d, 0x48, + 0x5a, 0x5e, 0x13, 0xeb, 0xc2, 0x42, 0xa3, 0xe1, 0xab, 0x5d, 0xe8, 0x34, 0x1a, 0xbe, 0x85, 0x50, + 0xb6, 0x79, 0x56, 0x3b, 0xdb, 0x4d, 0xb7, 0x8e, 0x38, 0x8a, 0xe2, 0xd7, 0x46, 0xa8, 0xcd, 0x50, + 0x55, 0x61, 0x14, 0x23, 0x6b, 0xd7, 0xad, 0xd9, 0xbe, 0xd7, 0xad, 0x5f, 0x83, 0xb1, 0xe2, 0x7e, + 0x43, 0xbb, 0x59, 0x31, 0x53, 0x3a, 0xe5, 0x6a, 0x84, 0xc4, 0x57, 0x60, 0x64, 0x28, 0xaa, 0xef, + 0x37, 0xba, 0xef, 0x53, 0x62, 0x96, 0xda, 0x7d, 0xe9, 0xf0, 0x93, 0xdc, 0x97, 0xde, 0x84, 0xb1, + 0x8d, 0x80, 0xae, 0x77, 0x5a, 0x2d, 0xda, 0xc4, 0xc9, 0x9c, 0xe3, 0xba, 0x7a, 0x27, 0xa0, 0x76, + 0x88, 0x50, 0xb5, 0x01, 0x11, 0xaa, 0x3a, 0xad, 0x46, 0xfb, 0x4c, 0xab, 0xcf, 0xc2, 0x50, 0xa1, + 0xdd, 0x96, 0x17, 0xc9, 0x91, 0x7d, 0xbc, 0xdd, 0x46, 0x61, 0x33, 0xe5, 0xb4, 0xdb, 0xfa, 0xb5, + 0x30, 0x62, 0xe3, 0xf5, 0x29, 0xa5, 0x3e, 0x0e, 0xd0, 0x78, 0xac, 0xc8, 0xb5, 0x29, 0xf5, 0x93, + 0xc3, 0x13, 0x21, 0x6a, 0x77, 0xae, 0x13, 0x03, 0xde, 0xb9, 0x92, 0x97, 0x60, 0x42, 0x19, 0x76, + 0x71, 0x59, 0x6b, 0x8d, 0xb7, 0xa3, 0x31, 0x0f, 0xc8, 0x97, 0x60, 0x12, 0x4f, 0x36, 0xd1, 0xf2, + 0x98, 0xc2, 0xfe, 0x9e, 0x95, 0x37, 0x12, 0x6a, 0x19, 0xd7, 0x9b, 0xea, 0x0c, 0x64, 0xa7, 0xb8, + 0x7c, 0xe8, 0x8c, 0xce, 0xd6, 0x60, 0x4a, 0x1f, 0xff, 0xa7, 0x70, 0x0f, 0x72, 0x77, 0x28, 0x97, + 0xcb, 0x8f, 0xdd, 0x1d, 0xca, 0x41, 0x7e, 0xdc, 0x22, 0xf7, 0x3a, 0xdb, 0xd4, 0x6f, 0xd1, 0x90, + 0x06, 0x42, 0xc5, 0x0f, 0xcc, 0xff, 0xdb, 0x80, 0xd1, 0xc2, 0x56, 0xad, 0xd2, 0xda, 0xf1, 0xc8, + 0xeb, 0xaa, 0x95, 0xdc, 0x88, 0x7d, 0xc4, 0x62, 0x2b, 0xb9, 0x6a, 0x1b, 0xbf, 0x96, 0x72, 0x3c, + 0x43, 0xc7, 0x50, 0xe5, 0x78, 0xa6, 0xd9, 0xe1, 0xe2, 0x0b, 0x83, 0xec, 0x00, 0x17, 0x06, 0x57, + 0x60, 0x78, 0xb3, 0x5a, 0x8c, 0xf4, 0x19, 0x44, 0x7e, 0xd0, 0xae, 0xeb, 0xea, 0x0c, 0x47, 0x21, + 0x6f, 0xc1, 0x78, 0xa5, 0x15, 0xd2, 0x5d, 0x3f, 0x5e, 0x01, 0xd1, 0x51, 0x31, 0x02, 0xab, 0x2a, + 0xbb, 0x82, 0x6d, 0x96, 0x12, 0x03, 0x2a, 0x2f, 0x26, 0xb9, 0xde, 0x39, 0x15, 0xdf, 0xe1, 0xb0, + 0x3e, 0x5a, 0x9c, 0x49, 0xbf, 0x98, 0x34, 0xbf, 0x95, 0x81, 0xf1, 0x42, 0xbb, 0xfd, 0x8c, 0xfb, + 0xeb, 0x7c, 0x5e, 0x93, 0xdb, 0xa7, 0xe2, 0xf5, 0x79, 0x0c, 0x57, 0x9d, 0xdf, 0xcc, 0xc0, 0x74, + 0x82, 0x42, 0x6d, 0xbd, 0x31, 0xa0, 0xff, 0x4a, 0x66, 0x40, 0xff, 0x95, 0x6c, 0x6f, 0xff, 0x15, + 0x55, 0x2a, 0x0e, 0x3d, 0x89, 0x54, 0x7c, 0x15, 0xb2, 0x85, 0x76, 0x3b, 0x79, 0x47, 0xd6, 0x6e, + 0x6f, 0xde, 0xe0, 0x47, 0x4e, 0xa7, 0xdd, 0xb6, 0x18, 0x86, 0x26, 0x74, 0x46, 0x06, 0x14, 0x3a, + 0xe6, 0x1b, 0x30, 0x86, 0xbc, 0x70, 0xa3, 0x3b, 0x2f, 0x24, 0x24, 0xdf, 0xe5, 0xb4, 0xba, 0xb8, + 0x34, 0x34, 0xff, 0x2f, 0x03, 0x86, 0xf1, 0xf7, 0x33, 0x3a, 0xc7, 0x16, 0xb4, 0x39, 0x96, 0x57, + 0xe6, 0xd8, 0x20, 0xb3, 0xeb, 0x3f, 0x1e, 0xc2, 0xde, 0x12, 0xf3, 0x4a, 0x78, 0x40, 0x18, 0x29, + 0x1e, 0x10, 0x4f, 0xb0, 0xaf, 0xdf, 0x4f, 0xfa, 0x42, 0x64, 0x71, 0x30, 0x2e, 0x24, 0x9b, 0xfa, + 0x54, 0xdc, 0x20, 0x96, 0x80, 0x54, 0x5a, 0x01, 0xad, 0x77, 0x7c, 0x5a, 0xbb, 0xef, 0xb6, 0x37, + 0xa9, 0xef, 0xee, 0x1c, 0x08, 0x03, 0x10, 0x6e, 0xbd, 0xae, 0x28, 0xb5, 0x83, 0xfb, 0x6e, 0x9b, + 0x9d, 0xbe, 0xdd, 0x9d, 0x03, 0x2b, 0x85, 0x86, 0xbc, 0x07, 0xa3, 0x16, 0x7d, 0xe8, 0xbb, 0xa1, + 0xbc, 0xa8, 0x9c, 0x8a, 0xce, 0xcc, 0x08, 0xe5, 0x67, 0x42, 0x9f, 0xff, 0x50, 0xc7, 0x5f, 0x94, + 0x93, 0x05, 0x2e, 0xf8, 0xf8, 0x85, 0xe4, 0x64, 0xfc, 0xb5, 0x85, 0xad, 0x5a, 0x2f, 0xb9, 0x47, + 0x2e, 0xc3, 0x30, 0x4a, 0x4f, 0xb1, 0xed, 0xa3, 0xab, 0x32, 0x6e, 0x78, 0xaa, 0x94, 0x46, 0x0c, + 0x72, 0x0e, 0x20, 0xb2, 0xb0, 0x07, 0x73, 0x39, 0xdc, 0x5a, 0x15, 0xc8, 0x27, 0xe7, 0x0b, 0xf0, + 0xeb, 0x19, 0xb8, 0x10, 0x49, 0xa4, 0x35, 0xbf, 0x56, 0x58, 0x59, 0xae, 0x34, 0xaa, 0xe2, 0x64, + 0x50, 0xf5, 0xbd, 0x07, 0x6e, 0x83, 0xfa, 0x9b, 0xd7, 0x8f, 0x58, 0x4f, 0xcb, 0x7c, 0xe2, 0x71, + 0x03, 0x5d, 0x46, 0xbb, 0xb4, 0x55, 0x04, 0xbf, 0xb8, 0x57, 0x6e, 0xb7, 0xbb, 0xec, 0x75, 0x4b, + 0xcf, 0x59, 0x31, 0x03, 0xf2, 0x63, 0x06, 0x9c, 0x4a, 0x6f, 0x88, 0x38, 0x2d, 0xce, 0x4b, 0xfd, + 0xb0, 0x47, 0x6b, 0x17, 0x5f, 0x7d, 0x7c, 0x38, 0x7f, 0x21, 0x70, 0xf6, 0x9b, 0xb6, 0xdb, 0xe0, + 0xb5, 0xb9, 0x75, 0x6a, 0xb7, 0x05, 0x82, 0x56, 0x6f, 0x8f, 0x9a, 0xe2, 0x65, 0xb5, 0x08, 0x90, + 0x93, 0x96, 0x15, 0xf3, 0x3b, 0xc3, 0x28, 0xee, 0x8e, 0x08, 0x1d, 0xe8, 0xe3, 0x7c, 0xa4, 0x2f, + 0xbd, 0xec, 0x71, 0x96, 0xde, 0x26, 0x4c, 0xd4, 0x98, 0xd0, 0xd5, 0xbd, 0x90, 0x5e, 0x88, 0xfb, + 0xf9, 0xaa, 0x5a, 0xdc, 0xef, 0x9c, 0xaa, 0xf1, 0x21, 0x76, 0x72, 0x49, 0xf3, 0xe3, 0xf0, 0x8b, + 0x0a, 0xe3, 0x94, 0xc5, 0x1c, 0xed, 0x0e, 0x75, 0x3e, 0xb7, 0x8e, 0xbd, 0x8c, 0x47, 0x9e, 0x6c, + 0x19, 0x8f, 0x7e, 0xac, 0x65, 0x9c, 0x88, 0xd7, 0xc8, 0x1d, 0x27, 0x5e, 0xe3, 0xec, 0x7b, 0x30, + 0xd3, 0xd5, 0xc3, 0xc7, 0x39, 0xdc, 0x7f, 0x72, 0xab, 0xf8, 0x87, 0x40, 0x11, 0x54, 0x39, 0x8b, + 0x36, 0x5c, 0x9f, 0xd6, 0x43, 0xdc, 0x28, 0xc5, 0xde, 0xe6, 0x0b, 0x58, 0xc2, 0x6f, 0x04, 0x61, + 0xe4, 0x5d, 0x18, 0xe5, 0xd6, 0x41, 0x6e, 0x95, 0x8b, 0x05, 0x9c, 0xb0, 0x24, 0xf2, 0x70, 0x1e, + 0x8e, 0xa1, 0xf6, 0xaa, 0x20, 0x32, 0xef, 0x48, 0x83, 0xe4, 0x11, 0xeb, 0x62, 0x1e, 0x86, 0x37, + 0xe3, 0x9e, 0x41, 0x3f, 0x61, 0xfe, 0x11, 0x16, 0x87, 0x9b, 0x3f, 0x69, 0xc0, 0x94, 0xfe, 0x95, + 0xe4, 0x2a, 0x8c, 0x88, 0xa0, 0x08, 0x03, 0xcd, 0x3b, 0xec, 0x6b, 0x46, 0x78, 0x38, 0x84, 0x16, + 0x04, 0x21, 0xb0, 0xd8, 0x46, 0x2d, 0x38, 0x08, 0x0b, 0x23, 0x6e, 0xd4, 0x62, 0x92, 0x5a, 0xb2, + 0x8c, 0x98, 0x4c, 0xe1, 0x0e, 0x3a, 0xcd, 0x50, 0xb5, 0x9f, 0xfb, 0x08, 0xb1, 0x44, 0x89, 0x59, + 0x84, 0x11, 0x2e, 0xe1, 0x13, 0xce, 0x13, 0xc6, 0x31, 0x9c, 0x27, 0xcc, 0x43, 0x03, 0xa0, 0x56, + 0x5b, 0xba, 0x47, 0x0f, 0xaa, 0x8e, 0xeb, 0xe3, 0x85, 0x0f, 0x2e, 0xe9, 0x7b, 0x62, 0xc8, 0x27, + 0xc4, 0x85, 0x0f, 0x5f, 0xfe, 0xf7, 0xe9, 0x81, 0x76, 0xe1, 0x23, 0x51, 0x51, 0x6e, 0xf8, 0xee, + 0x03, 0x27, 0xa4, 0x8c, 0x30, 0x83, 0x84, 0x5c, 0x6e, 0x70, 0x68, 0x82, 0x52, 0x41, 0x26, 0x5f, + 0x85, 0xa9, 0xf8, 0x57, 0x74, 0x6d, 0x35, 0x15, 0x4d, 0x2b, 0xbd, 0x70, 0xf1, 0xdc, 0xe3, 0xc3, + 0xf9, 0xb3, 0x0a, 0xd7, 0xe4, 0x85, 0x56, 0x82, 0x99, 0xf9, 0xcb, 0x06, 0xde, 0x74, 0xca, 0x0f, + 0xbc, 0x08, 0x43, 0x91, 0x4b, 0xd8, 0x04, 0xb7, 0x10, 0x26, 0x4c, 0xf3, 0x58, 0x4e, 0x2e, 0x40, + 0x36, 0xfe, 0x12, 0xdc, 0x41, 0xf5, 0x2f, 0x60, 0xa5, 0xe4, 0x0e, 0x8c, 0x0e, 0xd4, 0x66, 0x9c, + 0xe2, 0x29, 0x6d, 0x95, 0xd4, 0x38, 0x0a, 0x77, 0xb7, 0xd6, 0x3f, 0xbd, 0xa3, 0xf0, 0xed, 0x0c, + 0x4c, 0xb3, 0x7e, 0x2d, 0x74, 0xc2, 0x3d, 0xcf, 0x77, 0xc3, 0x83, 0x67, 0xd6, 0x3e, 0xf6, 0xb6, + 0xa6, 0x03, 0x9f, 0x95, 0xb2, 0x4f, 0xfd, 0xb6, 0x81, 0xcc, 0x64, 0xbf, 0x3b, 0x0c, 0x27, 0x52, + 0xa8, 0xc8, 0xeb, 0x9a, 0x09, 0x7b, 0x4e, 0x46, 0x32, 0x7e, 0xff, 0x70, 0x7e, 0x42, 0xa2, 0xaf, + 0xc7, 0x91, 0x8d, 0x0b, 0xba, 0xdb, 0x00, 0xef, 0x29, 0xb4, 0x68, 0xab, 0x6e, 0x03, 0xba, 0xb3, + 0xc0, 0x65, 0x18, 0xb6, 0xbc, 0x26, 0x95, 0x7e, 0x2b, 0xa8, 0xf7, 0xf9, 0x0c, 0xa0, 0xdd, 0x6e, + 0x32, 0x00, 0x59, 0x82, 0x51, 0xf6, 0xc7, 0x8a, 0xd3, 0x16, 0xf7, 0x01, 0x24, 0x3a, 0x85, 0x21, + 0xb4, 0xed, 0xb6, 0x76, 0xd5, 0x83, 0x58, 0x93, 0xda, 0xfb, 0x4e, 0x5b, 0xdb, 0xd9, 0x38, 0xa2, + 0x76, 0xa0, 0xcb, 0xf5, 0x3e, 0xd0, 0x19, 0x47, 0x1e, 0xe8, 0x1a, 0x00, 0x35, 0x77, 0xb7, 0xe5, + 0xb6, 0x76, 0x0b, 0xcd, 0x5d, 0x11, 0x0f, 0x7a, 0xb9, 0xf7, 0x28, 0x5c, 0x8d, 0x91, 0x71, 0xe2, + 0xf2, 0xcb, 0x35, 0x0e, 0xb3, 0x9d, 0xa6, 0x76, 0x59, 0x11, 0xa3, 0x92, 0x55, 0x80, 0x42, 0x3d, + 0x74, 0x1f, 0xb0, 0x09, 0x1c, 0x08, 0x0f, 0x5c, 0xd9, 0xe0, 0x62, 0xe1, 0x1e, 0x3d, 0xa8, 0xd1, + 0x30, 0xbe, 0xfc, 0x70, 0x10, 0x95, 0xad, 0x03, 0xcd, 0x59, 0x36, 0xe6, 0x40, 0xda, 0x70, 0xb2, + 0xd0, 0x68, 0xb8, 0xec, 0x0b, 0x9c, 0xe6, 0xba, 0xcf, 0x06, 0xa3, 0x81, 0xac, 0x27, 0xd2, 0x59, + 0x5f, 0x16, 0xac, 0x5f, 0x72, 0x22, 0x2a, 0x3b, 0xe4, 0x64, 0xc9, 0x6a, 0xd2, 0x19, 0x9b, 0x6b, + 0x30, 0xa5, 0x7f, 0xba, 0x1e, 0xc5, 0x3a, 0x01, 0x39, 0xab, 0x56, 0xb0, 0x6b, 0x4b, 0x85, 0xeb, + 0x79, 0x83, 0xe4, 0x61, 0x42, 0xfc, 0x5a, 0xb0, 0x17, 0xde, 0xbc, 0x99, 0xcf, 0x68, 0x90, 0x37, + 0xaf, 0x2f, 0xe4, 0xb3, 0x77, 0x87, 0x72, 0xd9, 0xfc, 0xd0, 0xdd, 0xa1, 0xdc, 0x50, 0x7e, 0xf8, + 0xee, 0x50, 0x6e, 0x34, 0x9f, 0xe3, 0xa6, 0x29, 0xf3, 0xef, 0x1a, 0x90, 0x93, 0xed, 0x26, 0x37, + 0x21, 0x5b, 0xab, 0x2d, 0x25, 0x02, 0x11, 0xe2, 0xfd, 0x85, 0x4b, 0xd2, 0x20, 0x50, 0x9d, 0xe6, + 0x18, 0x01, 0xa3, 0x5b, 0x5f, 0xae, 0x89, 0xed, 0x5d, 0xd2, 0xc5, 0x62, 0x9b, 0xd3, 0xa5, 0x78, + 0x67, 0xdf, 0x84, 0xec, 0xdd, 0xad, 0x75, 0x71, 0xca, 0x93, 0x74, 0xb1, 0x24, 0xe5, 0x74, 0x1f, + 0x3d, 0x54, 0xe5, 0x3b, 0x23, 0x30, 0x2d, 0x18, 0x57, 0xa6, 0x30, 0xdf, 0x6e, 0xf7, 0xbd, 0x28, + 0xc2, 0x53, 0x6c, 0xb7, 0x0c, 0x62, 0x89, 0x12, 0xa6, 0x1d, 0x2c, 0x7b, 0x75, 0xa7, 0x29, 0xf6, + 0x6d, 0xd4, 0x0e, 0x9a, 0x0c, 0x60, 0x71, 0xb8, 0xf9, 0x3b, 0x06, 0xe4, 0x51, 0x3f, 0x67, 0x62, + 0x66, 0xdd, 0xbb, 0x4f, 0x5b, 0x9b, 0xd7, 0xc9, 0x1b, 0x72, 0xb1, 0x19, 0x91, 0x4d, 0x61, 0x18, + 0x17, 0x5b, 0xe2, 0xb6, 0x43, 0x2c, 0x38, 0x25, 0x50, 0x36, 0x33, 0x78, 0xf0, 0xdd, 0x11, 0x81, + 0xb2, 0xf3, 0x30, 0x8c, 0xcd, 0x51, 0xe2, 0x9f, 0x86, 0x43, 0x06, 0xb0, 0x38, 0x5c, 0x91, 0x4a, + 0x3f, 0x97, 0xe9, 0xfa, 0x86, 0x85, 0x4f, 0x55, 0x00, 0x9b, 0xfe, 0x71, 0x03, 0x49, 0xea, 0x0f, + 0x60, 0x36, 0xd9, 0x25, 0x68, 0xef, 0x29, 0xc0, 0xb4, 0x0e, 0x97, 0xa6, 0x9f, 0xd3, 0xa9, 0x75, + 0x6d, 0x2e, 0x58, 0x49, 0x7c, 0xf3, 0x0f, 0x0d, 0x18, 0xc3, 0x3f, 0xad, 0x4e, 0x13, 0x1d, 0x59, + 0x0a, 0x5b, 0x35, 0x61, 0xa6, 0x55, 0xd5, 0x38, 0xe7, 0x61, 0x60, 0x0b, 0x4b, 0xae, 0x26, 0x5f, + 0x22, 0x64, 0x41, 0xca, 0xed, 0xaf, 0xf2, 0xee, 0x3a, 0x22, 0xe5, 0x86, 0xda, 0x20, 0x41, 0x2a, + 0x90, 0xd1, 0x77, 0x6c, 0xab, 0xc6, 0xa6, 0x9f, 0x7a, 0x63, 0x8d, 0x74, 0x5e, 0x53, 0xf7, 0x1d, + 0xe3, 0x68, 0x78, 0x61, 0xbd, 0x55, 0x2b, 0x58, 0xab, 0xda, 0x85, 0x35, 0x6b, 0xa3, 0xe6, 0x61, + 0x2b, 0x90, 0xcc, 0x5f, 0xcb, 0x25, 0x3b, 0x50, 0x6c, 0x75, 0xc7, 0x5c, 0x1b, 0x6f, 0xc1, 0x70, + 0xa1, 0xd9, 0xf4, 0x1e, 0x0a, 0x29, 0x21, 0xcd, 0x4f, 0x51, 0xff, 0xf1, 0x9d, 0xcc, 0x61, 0x28, + 0x5a, 0x0c, 0x08, 0x03, 0x90, 0x22, 0x8c, 0x15, 0xb6, 0x6a, 0x95, 0x4a, 0x69, 0x7d, 0x7d, 0x59, + 0x64, 0x2d, 0x78, 0x45, 0xf6, 0x8f, 0xeb, 0x36, 0xec, 0xe4, 0x8d, 0x6c, 0xac, 0xb9, 0xc7, 0x74, + 0xe4, 0x1d, 0x80, 0xbb, 0x9e, 0xdb, 0x5a, 0xa1, 0xe1, 0x9e, 0xd7, 0x10, 0x1f, 0xff, 0xe2, 0xe3, + 0xc3, 0xf9, 0xf1, 0x8f, 0x3c, 0xb7, 0x65, 0xef, 0x23, 0x98, 0xb5, 0x3d, 0x46, 0xb2, 0x94, 0xbf, + 0x59, 0x4f, 0x2f, 0x7a, 0xdc, 0x39, 0x65, 0x38, 0xee, 0xe9, 0x6d, 0xaf, 0xcb, 0x2f, 0x45, 0xa2, + 0x91, 0x7d, 0x98, 0xae, 0x75, 0x76, 0x77, 0x29, 0x93, 0xea, 0xe2, 0xf4, 0x3b, 0x22, 0xce, 0x5c, + 0x51, 0xce, 0x07, 0x7e, 0x12, 0x61, 0xe7, 0x93, 0x60, 0xf1, 0x75, 0x36, 0x91, 0xbf, 0x77, 0x38, + 0x2f, 0x6e, 0x7a, 0x99, 0x92, 0x16, 0x48, 0xfa, 0x6e, 0x73, 0x56, 0x92, 0x37, 0x59, 0x83, 0x91, + 0x3b, 0x6e, 0xb8, 0xd4, 0xd9, 0x16, 0xc7, 0xd7, 0x97, 0xfa, 0x2c, 0x1a, 0x8e, 0xc8, 0x4f, 0xf0, + 0xbb, 0x6e, 0xb8, 0xd7, 0x51, 0x5d, 0xd2, 0x05, 0x1b, 0xb2, 0x05, 0xb9, 0xa2, 0xeb, 0xd7, 0x9b, + 0xb4, 0x58, 0x11, 0xbb, 0xfe, 0x85, 0x3e, 0x2c, 0x25, 0x2a, 0xef, 0x97, 0x3a, 0xfe, 0xaa, 0xbb, + 0xaa, 0x16, 0x20, 0x31, 0xc8, 0xbf, 0x6f, 0xc0, 0xf3, 0x51, 0xeb, 0x0b, 0xbb, 0xb4, 0x15, 0xae, + 0x38, 0x61, 0x7d, 0x8f, 0xfa, 0x51, 0xb8, 0x63, 0x9f, 0x5e, 0xfa, 0x42, 0x57, 0x2f, 0x5d, 0x8a, + 0x7b, 0xc9, 0x61, 0xcc, 0xec, 0x7d, 0xce, 0xad, 0xbb, 0xcf, 0xfa, 0xd5, 0x4a, 0x6c, 0x80, 0xf8, + 0x9e, 0x46, 0xc4, 0xff, 0xbc, 0xd2, 0xe7, 0x83, 0x63, 0x64, 0xe1, 0x94, 0x1d, 0xfd, 0xd6, 0x7c, + 0xb1, 0x22, 0x28, 0xb9, 0x27, 0x63, 0x3e, 0xb8, 0x46, 0x72, 0xbe, 0x0f, 0x6f, 0x1e, 0x07, 0x72, + 0xa2, 0x4f, 0x58, 0x14, 0x1f, 0xed, 0x65, 0x67, 0x5b, 0x28, 0x21, 0x47, 0x8c, 0xf6, 0xb2, 0x13, + 0x8f, 0x76, 0xd3, 0x49, 0x8e, 0xf6, 0xb2, 0xb3, 0x4d, 0x8a, 0x3c, 0xc2, 0x6b, 0x12, 0xb9, 0x9d, + 0xeb, 0xc7, 0xad, 0x58, 0xe5, 0x3b, 0x73, 0x77, 0xa4, 0x97, 0xf9, 0x6f, 0x86, 0xe0, 0x6c, 0xef, + 0xf9, 0x46, 0xde, 0x97, 0x42, 0x80, 0x8b, 0xda, 0x8b, 0x47, 0xce, 0xd0, 0xab, 0x47, 0x8a, 0x86, + 0x2f, 0xc1, 0x6c, 0xb9, 0x15, 0x52, 0xbf, 0xed, 0xbb, 0x32, 0x22, 0x76, 0xc9, 0x0b, 0xa4, 0x03, + 0xd7, 0xcb, 0x8f, 0x0f, 0xe7, 0xcf, 0xd3, 0xa8, 0x5c, 0xd8, 0x06, 0xd1, 0x9d, 0x4c, 0x61, 0x95, + 0xca, 0xe1, 0xec, 0x2f, 0x67, 0x61, 0x08, 0x25, 0xfb, 0x05, 0xc8, 0xd6, 0x3a, 0xdb, 0x42, 0xa4, + 0x73, 0x1d, 0x48, 0x5b, 0x2f, 0xac, 0x94, 0x7c, 0x1e, 0xc0, 0xa2, 0x6d, 0x2f, 0x70, 0x43, 0xcf, + 0x3f, 0x50, 0xbd, 0xdd, 0xfd, 0x08, 0xaa, 0xbb, 0x31, 0x4a, 0x28, 0x59, 0x82, 0xe9, 0xf8, 0xd7, + 0xda, 0xc3, 0x16, 0x95, 0xa6, 0x3b, 0x3c, 0xa6, 0xc5, 0xe4, 0xb6, 0xc7, 0xca, 0x54, 0x09, 0x90, + 0x20, 0x23, 0x0b, 0x90, 0xdb, 0xf2, 0xfc, 0xfb, 0x3b, 0xac, 0x87, 0x87, 0x62, 0x19, 0xf5, 0x50, + 0xc0, 0xd4, 0xb5, 0x28, 0xf1, 0xc8, 0x5b, 0x30, 0x5e, 0x6e, 0x3d, 0x70, 0x7d, 0xaf, 0xb5, 0x4f, + 0x5b, 0xa1, 0x7a, 0x85, 0x47, 0x63, 0xb0, 0x16, 0x51, 0x13, 0x83, 0xd9, 0x61, 0xa4, 0x50, 0x0f, + 0x3d, 0x5f, 0xb8, 0xeb, 0xf1, 0x71, 0x62, 0x00, 0x6d, 0x9c, 0x18, 0x80, 0x75, 0xa2, 0x45, 0x77, + 0x84, 0xb5, 0x1a, 0x3b, 0xd1, 0xa7, 0x3b, 0x5a, 0xb8, 0x10, 0xdd, 0x61, 0x32, 0xd6, 0xa2, 0x3b, + 0x78, 0x82, 0xca, 0xc5, 0xed, 0xf7, 0xe9, 0x4e, 0xd7, 0xd9, 0x5b, 0xa0, 0x99, 0xbf, 0xd2, 0x7b, + 0xc2, 0xb1, 0x49, 0x7d, 0xbc, 0x09, 0xb7, 0xec, 0x0c, 0x30, 0xe1, 0x5e, 0x8f, 0x9c, 0x23, 0x33, + 0xf1, 0x05, 0x29, 0x77, 0x8e, 0x54, 0x57, 0x15, 0xc7, 0x39, 0xfb, 0xef, 0x1e, 0x6b, 0x12, 0x89, + 0x4e, 0xca, 0x0c, 0xda, 0x49, 0xd9, 0x81, 0x3a, 0x89, 0x2c, 0xc2, 0x64, 0x94, 0x55, 0xa6, 0xea, + 0x88, 0xd8, 0x08, 0xe1, 0x5c, 0x18, 0xe5, 0x08, 0xb2, 0xdb, 0x4e, 0xa8, 0x6a, 0xf6, 0x3a, 0x09, + 0x79, 0x1b, 0xc6, 0x85, 0x87, 0x30, 0x72, 0x18, 0x8e, 0x7d, 0xbf, 0xa4, 0x3b, 0x71, 0x82, 0x5e, + 0x45, 0x27, 0x65, 0x98, 0xaa, 0xba, 0x6d, 0xda, 0x74, 0x5b, 0xb4, 0x86, 0xc6, 0x6e, 0x31, 0x63, + 0xd0, 0xd3, 0xb6, 0x2d, 0x4a, 0x6c, 0x6e, 0x07, 0xd7, 0x0c, 0x11, 0x1a, 0x51, 0x72, 0xb2, 0x8e, + 0x1e, 0x67, 0xb2, 0x9a, 0x7f, 0x37, 0x03, 0x2f, 0xf4, 0xdb, 0xb8, 0x48, 0x4d, 0x9f, 0x2c, 0x97, + 0x06, 0xd8, 0xec, 0x8e, 0x9e, 0x2e, 0x65, 0x98, 0x5a, 0xf3, 0x77, 0x9d, 0x96, 0xfb, 0x4d, 0x54, + 0x48, 0xa2, 0x1b, 0x7b, 0xfc, 0x72, 0x4f, 0x29, 0xd1, 0xad, 0x7c, 0x09, 0xa2, 0xb3, 0x0f, 0xc4, + 0x34, 0xfa, 0xb8, 0x3e, 0xdd, 0x37, 0x61, 0xac, 0xe8, 0xb5, 0x42, 0xfa, 0x28, 0x4c, 0xc4, 0xe2, + 0x70, 0x60, 0x32, 0x16, 0x47, 0xa2, 0x9a, 0xbf, 0x6b, 0xc0, 0xb9, 0xfe, 0x9b, 0x1f, 0xd9, 0xd0, + 0xbb, 0xed, 0xca, 0x40, 0x5b, 0xe6, 0x91, 0x1d, 0x77, 0x76, 0x45, 0x7c, 0x71, 0x19, 0xa6, 0xc4, + 0xf5, 0x89, 0xae, 0x5b, 0x63, 0x07, 0xca, 0xdb, 0x97, 0x6e, 0xfd, 0x3a, 0x41, 0x64, 0xfe, 0xa9, + 0x01, 0x67, 0x7a, 0xee, 0xb4, 0xa4, 0xaa, 0x7f, 0xc3, 0x2b, 0x47, 0x6d, 0xcd, 0x47, 0x37, 0xff, + 0xa7, 0x0d, 0xd1, 0xfe, 0x77, 0x61, 0xa2, 0xd6, 0xd9, 0x4e, 0x66, 0xca, 0xc0, 0x95, 0x13, 0x28, + 0x70, 0xed, 0x06, 0x45, 0x81, 0xb3, 0xef, 0x97, 0x37, 0x44, 0xe2, 0x06, 0x8f, 0x1f, 0x10, 0xf0, + 0xfb, 0x23, 0x27, 0x79, 0x8c, 0x61, 0x50, 0x15, 0x8f, 0x04, 0x91, 0xf9, 0x9b, 0x19, 0x38, 0xdd, + 0x63, 0x37, 0x27, 0xab, 0xfa, 0xd7, 0x5f, 0xe8, 0xbf, 0xf9, 0x1f, 0xfd, 0xed, 0xff, 0x95, 0xfc, + 0x76, 0x34, 0x69, 0x8a, 0x29, 0x28, 0x0f, 0x0a, 0xc2, 0xa4, 0x29, 0xa7, 0x6b, 0xa0, 0x9b, 0x34, + 0x25, 0x32, 0x79, 0x13, 0xc6, 0xd8, 0xc1, 0x3c, 0x54, 0x8e, 0x44, 0xdc, 0x8b, 0x5c, 0x02, 0xd5, + 0xf9, 0x1a, 0x61, 0xb2, 0xcd, 0x54, 0x1f, 0x78, 0xe9, 0xa0, 0x88, 0x9b, 0x69, 0x62, 0xba, 0xe8, + 0xea, 0xb4, 0x4e, 0x66, 0xfe, 0x74, 0x06, 0xa6, 0xf8, 0x8d, 0x0c, 0x3f, 0xee, 0x3d, 0xb3, 0x47, + 0xe9, 0xb7, 0xb4, 0xa3, 0xb4, 0x0c, 0x00, 0x55, 0x3f, 0x6d, 0xa0, 0x83, 0xf4, 0x1e, 0x90, 0x6e, + 0x1a, 0x62, 0xc9, 0x7b, 0xc3, 0x41, 0xce, 0xd0, 0xd7, 0xe3, 0x58, 0x61, 0x4c, 0x91, 0x57, 0xb7, + 0xd1, 0x90, 0x11, 0x58, 0x1a, 0x0f, 0xf3, 0x27, 0x33, 0x30, 0xa9, 0x98, 0x3c, 0x9f, 0xd9, 0x8e, + 0xff, 0x82, 0xd6, 0xf1, 0x73, 0x91, 0xa3, 0x5a, 0xf4, 0x65, 0x03, 0xf5, 0x7b, 0x07, 0x66, 0xba, + 0x48, 0x92, 0x96, 0x63, 0x63, 0x10, 0xcb, 0xf1, 0xeb, 0xdd, 0xe1, 0x98, 0x3c, 0x13, 0x59, 0x14, + 0x8e, 0xa9, 0xc6, 0x7f, 0x7e, 0x3b, 0x03, 0xb3, 0xe2, 0x57, 0xa1, 0xd3, 0x70, 0xc3, 0xa2, 0xd7, + 0xda, 0x71, 0x77, 0x9f, 0xd9, 0xb1, 0x28, 0x68, 0x63, 0x31, 0xaf, 0x8f, 0x85, 0xf2, 0x81, 0xbd, + 0x87, 0xc4, 0xfc, 0x8b, 0x00, 0x73, 0xbd, 0x08, 0x06, 0xf6, 0x5d, 0x8f, 0x7d, 0xf1, 0x32, 0x03, + 0xf8, 0xe2, 0x2d, 0x43, 0x1e, 0xab, 0xaa, 0xd1, 0x80, 0x75, 0x42, 0x10, 0xa7, 0x41, 0x3a, 0xff, + 0xf8, 0x70, 0xfe, 0x05, 0x87, 0x95, 0xd9, 0x81, 0x28, 0xb4, 0x3b, 0xbe, 0x7a, 0xdc, 0xee, 0xa2, + 0x24, 0xbf, 0x6c, 0xc0, 0x14, 0x02, 0xcb, 0x0f, 0x68, 0x2b, 0x44, 0x66, 0x43, 0xc2, 0xdf, 0x2c, + 0x3a, 0x69, 0xd7, 0x42, 0xdf, 0x6d, 0xed, 0x8a, 0xa3, 0xf6, 0xb6, 0x38, 0x6a, 0xbf, 0xcd, 0x4d, + 0x04, 0x57, 0xeb, 0xde, 0xfe, 0xb5, 0x5d, 0xdf, 0x79, 0xe0, 0x72, 0x6b, 0xbe, 0xd3, 0xbc, 0x16, + 0x67, 0xc1, 0x6c, 0xbb, 0x89, 0xbc, 0x96, 0x82, 0x15, 0x9a, 0x31, 0x78, 0x43, 0x29, 0x56, 0x9b, + 0x68, 0x66, 0xa2, 0x45, 0xe4, 0xcb, 0x70, 0x9a, 0x87, 0x2a, 0x32, 0x1d, 0xc4, 0x6d, 0x75, 0xbc, + 0x4e, 0xb0, 0xe8, 0xd4, 0xef, 0xb3, 0x7d, 0x8f, 0x5f, 0xea, 0xe3, 0x97, 0xd7, 0xa3, 0x42, 0x7b, + 0x9b, 0x97, 0x2a, 0x2c, 0x7b, 0x31, 0x20, 0x4b, 0x30, 0xc3, 0x8b, 0x0a, 0x9d, 0xd0, 0xab, 0xd5, + 0x9d, 0xa6, 0xdb, 0xda, 0x45, 0x25, 0x32, 0xc7, 0xf7, 0x63, 0xa7, 0x13, 0x7a, 0x76, 0xc0, 0xe1, + 0x0a, 0xbf, 0x6e, 0x22, 0x52, 0x61, 0x67, 0x36, 0xa7, 0xb1, 0xe2, 0x3c, 0x2a, 0x3a, 0x6d, 0xa7, + 0xee, 0x86, 0x3c, 0x64, 0x3f, 0xcb, 0x83, 0xbc, 0x7c, 0xea, 0x34, 0xec, 0x7d, 0xe7, 0x91, 0x5d, + 0x17, 0x85, 0xfa, 0xa1, 0x4d, 0xa3, 0x8b, 0x58, 0xb9, 0xad, 0x88, 0xd5, 0x58, 0x92, 0x95, 0xdb, + 0xea, 0xcd, 0x2a, 0xa6, 0x93, 0xac, 0xd6, 0x1d, 0x7f, 0x97, 0x86, 0xfc, 0x32, 0x1c, 0xce, 0x1b, + 0x97, 0x0c, 0x85, 0x55, 0x88, 0x65, 0x36, 0x5e, 0x8c, 0x27, 0x59, 0x29, 0x74, 0x6c, 0xe6, 0x6d, + 0xf9, 0x6e, 0x48, 0xd5, 0x2f, 0x1c, 0xc7, 0x66, 0x61, 0xff, 0xa3, 0x3b, 0x40, 0xaf, 0x4f, 0xec, + 0xa2, 0x8c, 0xb9, 0x29, 0x1f, 0x39, 0xd1, 0xc5, 0x2d, 0xfd, 0x2b, 0xbb, 0x28, 0x23, 0x6e, 0xea, + 0x77, 0x4e, 0xe2, 0x77, 0x2a, 0xdc, 0x7a, 0x7c, 0x68, 0x17, 0x25, 0x59, 0x65, 0x9d, 0x16, 0xd2, + 0x16, 0x9b, 0xd1, 0xc2, 0x19, 0x60, 0x0a, 0x9b, 0xf6, 0xb2, 0xb8, 0xd1, 0xca, 0xfb, 0xb2, 0xd8, + 0x4e, 0x71, 0x0d, 0x48, 0x12, 0x93, 0x1f, 0x84, 0xe9, 0x8d, 0x80, 0xde, 0xae, 0x54, 0x6b, 0x32, + 0x38, 0x73, 0x6e, 0x1a, 0xef, 0xb9, 0xae, 0x1f, 0x21, 0x74, 0xae, 0xaa, 0x34, 0x98, 0x8f, 0x92, + 0x8f, 0x5b, 0x27, 0xa0, 0xf6, 0x8e, 0xdb, 0x0e, 0xa2, 0x30, 0x71, 0x75, 0xdc, 0x12, 0x55, 0x99, + 0x4b, 0x30, 0xd3, 0xc5, 0x86, 0x4c, 0x01, 0x30, 0xa0, 0xbd, 0xb1, 0x5a, 0x2b, 0xaf, 0xe7, 0x9f, + 0x23, 0x79, 0x98, 0xc0, 0xdf, 0xe5, 0xd5, 0xc2, 0xe2, 0x72, 0xb9, 0x94, 0x37, 0xc8, 0x0c, 0x4c, + 0x22, 0xa4, 0x54, 0xa9, 0x71, 0x50, 0xe6, 0xee, 0x50, 0x6e, 0x38, 0x3f, 0x62, 0xe5, 0xf9, 0xd2, + 0x0d, 0xd9, 0x02, 0xc0, 0x3d, 0xc5, 0xfc, 0xab, 0x19, 0x38, 0x23, 0xb7, 0x15, 0x1a, 0x3e, 0xf4, + 0xfc, 0xfb, 0x6e, 0x6b, 0xf7, 0x19, 0xdf, 0x1d, 0x6e, 0x6b, 0xbb, 0xc3, 0xcb, 0x89, 0x9d, 0x3a, + 0xf1, 0x95, 0x7d, 0xb6, 0x88, 0x9f, 0xca, 0xc1, 0x8b, 0x7d, 0xa9, 0xc8, 0xfb, 0x6c, 0x37, 0x77, + 0x69, 0x2b, 0xac, 0x34, 0x9a, 0x74, 0xdd, 0xdd, 0xa7, 0x5e, 0x27, 0x14, 0xce, 0x27, 0x17, 0x98, + 0x7a, 0xcb, 0x93, 0x49, 0xda, 0x6e, 0xa3, 0x49, 0xed, 0x90, 0x17, 0x6b, 0xd3, 0xad, 0x9b, 0x9a, + 0xb1, 0x8c, 0x12, 0xde, 0x56, 0x5a, 0x21, 0xf5, 0x1f, 0x38, 0x3c, 0xa7, 0x9e, 0x60, 0x79, 0x9f, + 0xd2, 0xb6, 0xed, 0xb0, 0x52, 0xdb, 0x15, 0xc5, 0x3a, 0xcb, 0x2e, 0x6a, 0x72, 0x5b, 0x61, 0x59, + 0x64, 0xea, 0xf0, 0x8a, 0xf3, 0x48, 0xd8, 0xdd, 0x45, 0xda, 0x8a, 0x88, 0x25, 0xf7, 0x50, 0xdf, + 0x77, 0x1e, 0x59, 0xdd, 0x24, 0xe4, 0xab, 0x70, 0x52, 0x6c, 0x40, 0x22, 0xde, 0x49, 0x7e, 0x31, + 0x8f, 0xa6, 0x7a, 0xf5, 0xf1, 0xe1, 0xfc, 0x69, 0xb1, 0x7d, 0xd9, 0x32, 0x06, 0x2d, 0xed, 0xab, + 0xd3, 0xb9, 0x90, 0x75, 0xb6, 0x21, 0x27, 0xba, 0x63, 0x85, 0x06, 0x81, 0xb3, 0x2b, 0x6d, 0xf4, + 0xdc, 0x03, 0x4c, 0xe9, 0x4c, 0x7b, 0x9f, 0x97, 0x5b, 0x3d, 0x29, 0xc9, 0x12, 0x4c, 0x6d, 0xd1, + 0x6d, 0x75, 0x7c, 0x46, 0x22, 0x51, 0x95, 0x7f, 0x48, 0xb7, 0x7b, 0x0f, 0x4e, 0x82, 0x8e, 0xb8, + 0x30, 0x83, 0xce, 0xc6, 0xcb, 0x6e, 0x10, 0xd2, 0x16, 0xf5, 0x31, 0x22, 0x75, 0x14, 0x85, 0xc1, + 0x5c, 0xac, 0x21, 0xeb, 0xe5, 0x8b, 0x2f, 0x3d, 0x3e, 0x9c, 0x7f, 0x91, 0x3b, 0x2e, 0x37, 0x05, + 0xdc, 0x4e, 0x64, 0x96, 0xed, 0xe6, 0x4a, 0xbe, 0x0e, 0xd3, 0x96, 0xd7, 0x09, 0xdd, 0xd6, 0x6e, + 0x2d, 0xf4, 0x9d, 0x90, 0xee, 0xf2, 0x0d, 0x29, 0x0e, 0x7d, 0x4d, 0x94, 0x0a, 0xe3, 0x22, 0x07, + 0xda, 0x81, 0x80, 0x6a, 0x3b, 0x82, 0x4e, 0x40, 0xbe, 0x06, 0x53, 0x3c, 0xe6, 0x24, 0xaa, 0x60, + 0x4c, 0x4b, 0xc2, 0xa6, 0x17, 0x6e, 0x5e, 0xe7, 0x07, 0x54, 0x1e, 0xbb, 0x92, 0x56, 0x41, 0x82, + 0x1b, 0xf9, 0x50, 0x74, 0x56, 0xd5, 0x6d, 0xed, 0x46, 0xd3, 0x18, 0xb0, 0xe7, 0xdf, 0x88, 0xbb, + 0xa4, 0xcd, 0x9a, 0x2b, 0xa7, 0x71, 0x8f, 0x3b, 0x9f, 0x6e, 0x3e, 0x24, 0x84, 0x17, 0x0b, 0x41, + 0xe0, 0x06, 0xa1, 0x70, 0xd1, 0x2a, 0x3f, 0xa2, 0xf5, 0x0e, 0x43, 0xde, 0xf2, 0xfc, 0xfb, 0xd4, + 0xe7, 0x4e, 0x02, 0xc3, 0x8b, 0x57, 0x1f, 0x1f, 0xce, 0x5f, 0x71, 0x10, 0xd1, 0x16, 0x5e, 0x5d, + 0x36, 0x95, 0xa8, 0xf6, 0x43, 0x8e, 0xab, 0x7c, 0x43, 0x7f, 0xa6, 0xe6, 0xa1, 0x01, 0xf9, 0x64, + 0xb7, 0x90, 0x2f, 0xc1, 0x18, 0xbf, 0x7c, 0xa0, 0xc1, 0x9e, 0x88, 0x75, 0x90, 0xd6, 0xf6, 0x08, + 0xae, 0x13, 0x09, 0xd7, 0x56, 0x7e, 0xb5, 0x41, 0xd5, 0xeb, 0x77, 0x74, 0x6d, 0x95, 0x44, 0xa4, + 0x01, 0x13, 0xfc, 0xcb, 0x29, 0xc6, 0x90, 0x8b, 0x3b, 0xe8, 0x97, 0xd4, 0x99, 0x26, 0x8a, 0x12, + 0xfc, 0x31, 0xcc, 0x5a, 0xf4, 0x2f, 0x47, 0xd0, 0xaa, 0xd0, 0xb8, 0x2e, 0x02, 0xe4, 0x24, 0xa1, + 0x79, 0x06, 0x4e, 0xf7, 0x68, 0xb3, 0xf9, 0x00, 0xed, 0xb2, 0x3d, 0x6a, 0x24, 0x5f, 0x82, 0x59, + 0x24, 0x2c, 0x7a, 0xad, 0x16, 0xad, 0x87, 0xb8, 0xb4, 0xa5, 0x69, 0x27, 0xcb, 0xad, 0xf6, 0xfc, + 0x7b, 0xeb, 0x11, 0x82, 0x9d, 0xb4, 0xf0, 0xa4, 0x72, 0x30, 0x7f, 0x21, 0x03, 0x73, 0x42, 0x5a, + 0x58, 0xb4, 0xee, 0xf9, 0x8d, 0x67, 0x7f, 0x77, 0x2a, 0x6b, 0xbb, 0xd3, 0x85, 0x28, 0x7e, 0x2d, + 0xed, 0x23, 0xfb, 0x6c, 0x4e, 0xbf, 0x69, 0xc0, 0x0b, 0xfd, 0x88, 0x58, 0xef, 0x44, 0x31, 0xf3, + 0x63, 0x5d, 0xb1, 0xf1, 0x6d, 0x38, 0x81, 0x03, 0x5a, 0xdc, 0xa3, 0xf5, 0xfb, 0xc1, 0x92, 0x17, + 0x84, 0xe8, 0x02, 0x93, 0xd1, 0xa2, 0x09, 0x16, 0x3d, 0x8f, 0xdf, 0xd3, 0xe1, 0x65, 0xa6, 0xf1, + 0xbd, 0xc3, 0x79, 0x60, 0x20, 0x1e, 0xe5, 0x2e, 0x8c, 0xc5, 0x8f, 0x0e, 0xec, 0x3a, 0xf2, 0xe0, + 0x51, 0xfd, 0xf7, 0xe9, 0x41, 0x60, 0xa5, 0xb1, 0x46, 0x77, 0x86, 0x42, 0x27, 0xdc, 0xab, 0xfa, + 0x74, 0x87, 0xfa, 0xb4, 0x55, 0xa7, 0x9f, 0x32, 0x77, 0x06, 0xfd, 0xe3, 0x06, 0xb2, 0x06, 0xfc, + 0x2f, 0x00, 0xb3, 0x69, 0x64, 0xac, 0x5f, 0x94, 0x03, 0x68, 0x32, 0x87, 0xfe, 0x5f, 0x30, 0x60, + 0xa2, 0x46, 0xeb, 0x5e, 0xab, 0x71, 0x1b, 0xef, 0x67, 0x44, 0xef, 0xd8, 0x7c, 0x03, 0x66, 0x70, + 0x7b, 0x27, 0x71, 0x71, 0xf3, 0xfd, 0xc3, 0xf9, 0x2f, 0x0e, 0x76, 0xee, 0xab, 0x7b, 0x18, 0x6b, + 0x16, 0x62, 0x12, 0xb5, 0xa8, 0x0a, 0xf4, 0x73, 0xd3, 0x2a, 0x25, 0x8b, 0x30, 0x29, 0x96, 0xab, + 0xa7, 0xa6, 0x4c, 0xe0, 0xc1, 0x7a, 0xb2, 0xa0, 0x2b, 0x47, 0x8c, 0x46, 0x42, 0x6e, 0x40, 0x76, + 0x63, 0xe1, 0xb6, 0x18, 0x03, 0x19, 0xc8, 0xb8, 0xb1, 0x70, 0x1b, 0x4d, 0x4b, 0x4c, 0x5d, 0x9f, + 0xec, 0x2c, 0x68, 0x57, 0x26, 0x1b, 0x0b, 0xb7, 0xc9, 0x0f, 0xc3, 0xc9, 0x92, 0x1b, 0x88, 0x2a, + 0xb8, 0x63, 0x4d, 0x03, 0x1d, 0x49, 0x47, 0x7a, 0xcc, 0xde, 0xcf, 0xa5, 0xce, 0xde, 0x97, 0x1a, + 0x11, 0x13, 0x9b, 0x7b, 0xed, 0x34, 0x92, 0xa9, 0x21, 0xd2, 0xeb, 0x21, 0x1f, 0xc1, 0x14, 0x9a, + 0x46, 0xd1, 0xd7, 0x08, 0xd3, 0x53, 0x8d, 0xf6, 0xa8, 0xf9, 0x33, 0xa9, 0x35, 0x9f, 0x45, 0x4b, + 0xab, 0x8d, 0x1e, 0x4b, 0x98, 0xca, 0x4a, 0x3b, 0x41, 0x6b, 0x9c, 0xc9, 0x5d, 0x98, 0x16, 0xaa, + 0xcc, 0xda, 0xce, 0xfa, 0x1e, 0x2d, 0x39, 0x07, 0xe2, 0x32, 0x0d, 0x4f, 0x47, 0x42, 0xff, 0xb1, + 0xbd, 0x1d, 0x3b, 0xdc, 0xa3, 0x76, 0xc3, 0xd1, 0x36, 0xfd, 0x04, 0x21, 0xf9, 0x01, 0x18, 0x5f, + 0xf6, 0xea, 0x4c, 0x8b, 0x45, 0xc9, 0x30, 0x86, 0x7c, 0x3e, 0xc0, 0x84, 0xee, 0x1c, 0x9c, 0x50, + 0x4d, 0xbe, 0x7f, 0x38, 0xff, 0xd6, 0x71, 0x27, 0x8d, 0x52, 0x81, 0xa5, 0xd6, 0x46, 0x8a, 0x90, + 0xdb, 0xa2, 0xdb, 0xec, 0x6b, 0x93, 0xc9, 0x88, 0x25, 0x58, 0xdc, 0x6f, 0x8a, 0x5f, 0xda, 0xfd, + 0xa6, 0x80, 0x11, 0x1f, 0x66, 0xb0, 0x7f, 0xaa, 0x4e, 0x10, 0x3c, 0xf4, 0xfc, 0x06, 0xe6, 0xc2, + 0x1b, 0xef, 0xd1, 0xf9, 0x0b, 0xa9, 0x9d, 0xff, 0x02, 0xef, 0xfc, 0xb6, 0xc2, 0x41, 0x55, 0xc6, + 0xba, 0xd8, 0x93, 0xaf, 0xc3, 0x94, 0x45, 0xbf, 0xd1, 0x71, 0x7d, 0xba, 0x72, 0xbb, 0x80, 0xab, + 0x72, 0x42, 0x73, 0xc7, 0xd5, 0x0b, 0xb9, 0xc6, 0xe7, 0x73, 0x98, 0xb4, 0xe6, 0xd8, 0xfb, 0x3b, + 0x8e, 0x6e, 0xcd, 0x57, 0x49, 0x48, 0x15, 0xc6, 0x4b, 0xf4, 0x81, 0x5b, 0xa7, 0xe8, 0x34, 0x28, + 0x2e, 0xed, 0xa3, 0xe4, 0xa8, 0x71, 0x09, 0xb7, 0x6b, 0x34, 0x10, 0xc0, 0x5d, 0x10, 0xf5, 0xf8, + 0x83, 0x08, 0x91, 0xdc, 0x84, 0x6c, 0xa5, 0x54, 0x15, 0x41, 0xb5, 0xd2, 0x17, 0xaf, 0xd2, 0xa8, + 0xca, 0x8c, 0x98, 0x78, 0x1b, 0xe9, 0x36, 0xb4, 0x1b, 0xff, 0x4a, 0xa9, 0x4a, 0x76, 0x60, 0x12, + 0x3b, 0x60, 0x89, 0x3a, 0xbc, 0x6f, 0xa7, 0x7b, 0xf4, 0xed, 0xd5, 0xd4, 0xbe, 0x9d, 0xe3, 0x7d, + 0xbb, 0x27, 0xa8, 0xb5, 0x14, 0x7f, 0x2a, 0x5b, 0xa6, 0x1e, 0x96, 0xe8, 0x8e, 0xd3, 0x69, 0x4a, + 0x93, 0xd6, 0xfa, 0xfa, 0xf2, 0x5c, 0x3e, 0x56, 0x0f, 0x1b, 0xbc, 0x30, 0xea, 0xbf, 0xde, 0x2e, + 0x41, 0xdd, 0x7c, 0xc4, 0x59, 0x77, 0x46, 0x74, 0xb2, 0x28, 0x58, 0xb9, 0x5d, 0x30, 0xff, 0x53, + 0x03, 0xc5, 0x0d, 0xb9, 0x82, 0xa1, 0x7f, 0xd1, 0x95, 0x1b, 0x5a, 0xed, 0x9c, 0x76, 0x22, 0x99, + 0x14, 0x47, 0x21, 0xaf, 0xc3, 0xc8, 0x6d, 0xa7, 0x4e, 0x43, 0x79, 0x6d, 0x81, 0xc8, 0x3b, 0x08, + 0x51, 0x4d, 0x7c, 0x1c, 0x87, 0x69, 0x42, 0x7c, 0x18, 0x0a, 0xf1, 0xc3, 0x31, 0xc5, 0x82, 0xbc, + 0xb5, 0x40, 0x4d, 0x48, 0x0c, 0x9f, 0xf2, 0xb2, 0x8c, 0x5d, 0xd7, 0x12, 0xbb, 0xa6, 0x72, 0x30, + 0xff, 0x57, 0x23, 0x5e, 0x3f, 0xe4, 0x55, 0x18, 0xb2, 0xaa, 0x51, 0xfb, 0xb9, 0xd7, 0x70, 0xa2, + 0xf9, 0x88, 0x40, 0x3e, 0x84, 0x93, 0x0a, 0x1f, 0x1c, 0x03, 0xda, 0x60, 0x0d, 0xe2, 0x1f, 0xf3, + 0x0a, 0xba, 0xb5, 0x2a, 0x2d, 0x71, 0x38, 0x46, 0xa2, 0x45, 0xe9, 0x3c, 0x50, 0xed, 0x8b, 0x0b, + 0x4a, 0xb4, 0xe5, 0x72, 0xde, 0xca, 0xc7, 0xaa, 0xbc, 0x1b, 0x88, 0x90, 0xfc, 0xd8, 0x34, 0x0e, + 0xdc, 0xb3, 0xd5, 0xfc, 0x6d, 0x43, 0x5b, 0x17, 0xd1, 0x23, 0x1d, 0xc6, 0x11, 0x8f, 0x74, 0xdc, + 0x02, 0x28, 0x74, 0x42, 0xaf, 0xdc, 0xf2, 0xbd, 0x26, 0x3f, 0x3b, 0x8b, 0x7c, 0x6a, 0x68, 0x11, + 0xa4, 0x08, 0xd6, 0x1c, 0xf0, 0x22, 0x64, 0xb2, 0x0c, 0xf9, 0xf2, 0x3d, 0x74, 0x5d, 0x8e, 0xbb, + 0x8a, 0x7f, 0x0e, 0x8a, 0x5b, 0x7a, 0x9f, 0x6d, 0x10, 0x3d, 0x7a, 0xa9, 0x8b, 0xd2, 0xfc, 0x3f, + 0x0d, 0xe5, 0x61, 0x98, 0x67, 0x54, 0xd7, 0xb9, 0xa9, 0xe9, 0x3a, 0x32, 0x3e, 0x3f, 0xfa, 0x2a, + 0x56, 0x96, 0xaa, 0x9f, 0x4e, 0x2b, 0x5e, 0x0a, 0x08, 0xf8, 0x56, 0x06, 0xc6, 0x37, 0x02, 0xea, + 0xf3, 0xcb, 0xa3, 0x4f, 0x57, 0x68, 0x77, 0xf4, 0x5d, 0x03, 0x05, 0xdf, 0xfe, 0x81, 0x81, 0x46, + 0x45, 0x95, 0x82, 0xf5, 0x06, 0x26, 0x98, 0x56, 0x7a, 0xa3, 0x13, 0x50, 0xdf, 0x42, 0x28, 0x8f, + 0x12, 0x5c, 0xd6, 0xa3, 0x04, 0x9b, 0x16, 0x83, 0x91, 0x2f, 0xc2, 0xf0, 0x06, 0x9a, 0x48, 0xf4, + 0x18, 0x91, 0x88, 0x3f, 0x16, 0x72, 0x11, 0xd1, 0x61, 0x7f, 0xaa, 0x12, 0x0e, 0xcb, 0x48, 0x0d, + 0x46, 0x8b, 0x3e, 0xc5, 0x27, 0x60, 0x86, 0x06, 0xf7, 0x73, 0xae, 0x73, 0x92, 0xa4, 0x9f, 0xb3, + 0xe0, 0x64, 0xfe, 0x7c, 0x06, 0x48, 0xfc, 0x8d, 0x98, 0x3b, 0x35, 0x78, 0x66, 0x07, 0xfd, 0x3d, + 0x6d, 0xd0, 0x5f, 0xec, 0x1a, 0x74, 0xfe, 0x79, 0x03, 0x8d, 0xfd, 0xef, 0x18, 0x70, 0x2a, 0x9d, + 0x90, 0x5c, 0x80, 0x91, 0xb5, 0xf5, 0xaa, 0x0c, 0x33, 0x12, 0x9f, 0xe2, 0xb5, 0xf1, 0x4c, 0x65, + 0x89, 0x22, 0xf2, 0x06, 0x8c, 0xbc, 0x6f, 0x15, 0x99, 0x14, 0x54, 0x72, 0x9a, 0x7d, 0xc3, 0xb7, + 0xeb, 0xba, 0x20, 0x14, 0x48, 0xea, 0xd8, 0x66, 0x9f, 0xda, 0xd8, 0x7e, 0x3b, 0x03, 0xd3, 0x85, + 0x7a, 0x9d, 0x06, 0x01, 0xdb, 0x62, 0x69, 0x10, 0x3e, 0xb3, 0x03, 0x9b, 0x1e, 0x40, 0xa4, 0x7d, + 0xdb, 0x40, 0xa3, 0xfa, 0xbb, 0x06, 0x9c, 0x94, 0x54, 0x0f, 0x5c, 0xfa, 0x70, 0x7d, 0xcf, 0xa7, + 0xc1, 0x9e, 0xd7, 0x6c, 0x0c, 0x9c, 0x38, 0x91, 0xa9, 0x19, 0x98, 0xc3, 0x49, 0xbd, 0x49, 0xdc, + 0x41, 0x88, 0xa6, 0x66, 0xf0, 0x3c, 0x4f, 0xd7, 0x60, 0xb4, 0xd0, 0x6e, 0xfb, 0xde, 0x03, 0xbe, + 0xec, 0x27, 0x85, 0xdb, 0x37, 0x07, 0x69, 0x6e, 0xe2, 0x1c, 0xc4, 0x9a, 0x51, 0xa2, 0x2d, 0x1e, + 0x10, 0x3f, 0xc9, 0x9b, 0xd1, 0xa0, 0x2d, 0xf5, 0xb0, 0x80, 0xe5, 0xe6, 0xcf, 0x0c, 0xc1, 0x84, + 0xfa, 0x21, 0xc4, 0xe4, 0x09, 0xd1, 0x3c, 0x5f, 0x8d, 0xc6, 0x70, 0x10, 0x62, 0x89, 0x92, 0x38, + 0x88, 0x29, 0x73, 0x64, 0x10, 0xd3, 0x16, 0x4c, 0x56, 0x7d, 0xaf, 0xed, 0x05, 0xb4, 0xc1, 0x5f, + 0xf1, 0xe2, 0x52, 0xeb, 0x84, 0xa2, 0x4a, 0xb3, 0x3e, 0xc7, 0xeb, 0x12, 0x3c, 0x48, 0xb6, 0x05, + 0xb6, 0x9d, 0x7c, 0xe3, 0x4b, 0xe7, 0xc3, 0x6f, 0x62, 0x9d, 0x40, 0xa4, 0xa8, 0x88, 0x6e, 0x62, + 0x19, 0x44, 0xbf, 0x89, 0x65, 0x10, 0x75, 0x59, 0x0c, 0x3f, 0xad, 0x65, 0x41, 0x7e, 0xde, 0x80, + 0xf1, 0x42, 0xab, 0x25, 0x82, 0xa3, 0x8e, 0xf0, 0x0e, 0xff, 0x8a, 0xb8, 0x8c, 0x7d, 0xeb, 0x63, + 0x5d, 0xc6, 0xae, 0xfb, 0x8e, 0x1b, 0x06, 0xa8, 0xd2, 0xc4, 0x15, 0xaa, 0x67, 0x01, 0xa5, 0x1d, + 0xe4, 0x2d, 0xc8, 0x47, 0xf3, 0xb1, 0xd2, 0x6a, 0xd0, 0x47, 0x34, 0x98, 0x1b, 0x3d, 0x9f, 0xbd, + 0x34, 0x29, 0xf2, 0xcc, 0xa8, 0x2a, 0x4c, 0x12, 0xd1, 0xfc, 0xb6, 0x01, 0xa7, 0xd4, 0x09, 0x51, + 0xeb, 0x6c, 0xef, 0xbb, 0xa8, 0x50, 0x93, 0xab, 0x30, 0x26, 0xc6, 0x2b, 0xd2, 0x44, 0xbb, 0xf3, + 0xb7, 0xc5, 0x28, 0xa4, 0xcc, 0x86, 0x88, 0xf1, 0x10, 0x56, 0xa6, 0x13, 0x89, 0xe5, 0xc6, 0x8a, + 0x16, 0xe7, 0x44, 0x67, 0xe7, 0x7d, 0xfc, 0xad, 0x8f, 0x1d, 0x83, 0x98, 0xef, 0xc2, 0x8c, 0xde, + 0xca, 0x1a, 0xc5, 0xc4, 0x56, 0xf2, 0xd3, 0x8c, 0xf4, 0x4f, 0x93, 0xe5, 0xe6, 0x16, 0x90, 0x2e, + 0xfa, 0x00, 0x3d, 0x0a, 0x68, 0x28, 0x3d, 0x5e, 0xa4, 0x3d, 0xbf, 0x0b, 0x31, 0x7a, 0x1a, 0x71, + 0x5c, 0xed, 0x6e, 0x24, 0x35, 0x7f, 0x63, 0x02, 0x4e, 0xa4, 0x88, 0x8e, 0x23, 0xb6, 0xf6, 0x79, + 0x7d, 0xf1, 0x8c, 0x45, 0x81, 0x17, 0x72, 0xc9, 0xbc, 0x2b, 0x1f, 0xbc, 0xeb, 0xb3, 0x54, 0xfa, + 0xbd, 0x82, 0xf7, 0x49, 0x6c, 0xef, 0x6a, 0x6c, 0xd4, 0xf0, 0x53, 0x8b, 0x8d, 0x5a, 0x84, 0x49, + 0xf1, 0x55, 0x62, 0x29, 0x8f, 0xc4, 0x06, 0x25, 0x9f, 0x17, 0xd8, 0x5d, 0x4b, 0x5a, 0x27, 0xe1, + 0x3c, 0x02, 0xaf, 0xf9, 0x80, 0x0a, 0x1e, 0xa3, 0x2a, 0x0f, 0x2c, 0x48, 0xe5, 0xa1, 0x90, 0x90, + 0x5f, 0xc3, 0x9c, 0xc8, 0x08, 0x51, 0xd7, 0x73, 0xae, 0xdf, 0x7a, 0x6e, 0x3c, 0x9d, 0xf5, 0xfc, + 0xa2, 0x6c, 0x63, 0xfa, 0xba, 0x4e, 0x69, 0x16, 0xf9, 0x15, 0x03, 0x66, 0x78, 0x80, 0x8e, 0xda, + 0xd8, 0xbe, 0x41, 0x17, 0xf5, 0xa7, 0xd3, 0xd8, 0x17, 0x02, 0xac, 0xb6, 0x47, 0x5b, 0xbb, 0x1b, + 0x45, 0xbe, 0x0c, 0x10, 0xad, 0xa8, 0x60, 0x0e, 0xf4, 0xa4, 0x14, 0x69, 0xdb, 0x67, 0x9c, 0xba, + 0x2d, 0x8c, 0xe8, 0xb4, 0x4c, 0xd8, 0x11, 0x94, 0xfc, 0x30, 0xcc, 0xb2, 0xf5, 0x12, 0x41, 0x44, + 0x38, 0xe1, 0xdc, 0x38, 0xd6, 0xf2, 0xd9, 0xde, 0x5b, 0xfb, 0xd5, 0x34, 0x32, 0x9e, 0xb8, 0x22, + 0x7e, 0x0b, 0x23, 0xdc, 0x57, 0xcf, 0xac, 0x69, 0x14, 0x18, 0x9f, 0x8b, 0xad, 0xe7, 0x89, 0xd2, + 0x7a, 0xc8, 0xb7, 0x33, 0x72, 0x2d, 0x70, 0xf9, 0x16, 0xe8, 0x0e, 0xde, 0x08, 0x22, 0xef, 0x03, + 0x89, 0x22, 0x5b, 0x38, 0x8c, 0xca, 0x24, 0x6a, 0xdc, 0xba, 0x14, 0x47, 0xc8, 0xf8, 0xb2, 0x58, + 0x9d, 0x24, 0xdd, 0xc4, 0x84, 0xc2, 0xac, 0xf8, 0x68, 0x06, 0x95, 0x39, 0x97, 0x83, 0xb9, 0x29, + 0x2d, 0x58, 0x33, 0x2e, 0x89, 0x1f, 0xcd, 0x50, 0x12, 0x37, 0x6b, 0xe7, 0xf6, 0x34, 0x76, 0xe4, + 0x26, 0x8c, 0x2d, 0x7b, 0xbb, 0x6e, 0x6b, 0x49, 0xfa, 0x49, 0x88, 0x3b, 0xdb, 0x26, 0x03, 0xda, + 0x7b, 0xba, 0xb7, 0x43, 0x8c, 0xca, 0xb4, 0xda, 0x92, 0x7f, 0x60, 0x75, 0x5a, 0x68, 0x03, 0x12, + 0xef, 0x32, 0x34, 0xfc, 0x03, 0xdb, 0xef, 0xe8, 0x6e, 0xf8, 0x88, 0x44, 0xbe, 0x0e, 0xe3, 0x2b, + 0xce, 0x23, 0x69, 0x02, 0x9a, 0x9b, 0x19, 0xfc, 0xe1, 0xca, 0x7d, 0xe7, 0x91, 0xdd, 0xe8, 0x24, + 0x33, 0x99, 0xf1, 0x87, 0x2b, 0x15, 0x96, 0x67, 0xb7, 0xe1, 0x4c, 0xcf, 0x69, 0x91, 0x92, 0x85, + 0xe3, 0x9a, 0x9e, 0x85, 0xe3, 0x4c, 0xaf, 0xed, 0x23, 0x50, 0x33, 0x71, 0xfc, 0xa2, 0x91, 0xd8, + 0x2f, 0x84, 0x72, 0xc7, 0x13, 0xa2, 0xf6, 0xda, 0x50, 0x33, 0xf8, 0x2e, 0x02, 0xdf, 0x51, 0x32, + 0xb1, 0x52, 0x99, 0x78, 0x6d, 0x88, 0xef, 0x2d, 0x4f, 0xb8, 0x75, 0x98, 0xff, 0x22, 0x0b, 0x84, + 0xb7, 0xb0, 0xe8, 0xb4, 0x9d, 0x6d, 0xb7, 0xe9, 0x86, 0x2e, 0x46, 0x3e, 0xe5, 0x05, 0x0b, 0x67, + 0xbb, 0x49, 0xd5, 0xb0, 0x41, 0xe1, 0x99, 0x14, 0x95, 0xd9, 0x49, 0x35, 0xb0, 0x8b, 0xb0, 0xc7, + 0x64, 0xcf, 0x3c, 0xc9, 0x64, 0xff, 0x3a, 0x3c, 0x5f, 0x68, 0xe3, 0x5b, 0x06, 0xb2, 0x96, 0xdb, + 0x9e, 0x2f, 0xa7, 0xa9, 0xe6, 0x41, 0xec, 0x44, 0x68, 0x5d, 0x2d, 0xed, 0xc7, 0x42, 0xd9, 0xa9, + 0xaa, 0xbe, 0xb7, 0xdf, 0x0e, 0xd5, 0x10, 0x0c, 0xb9, 0x53, 0xb5, 0xb1, 0x24, 0x65, 0xa7, 0xe2, + 0x24, 0x92, 0x87, 0xeb, 0xcb, 0x9d, 0x0a, 0xb3, 0xa3, 0xc6, 0x3c, 0x5c, 0x9f, 0xf6, 0xd8, 0xed, + 0x22, 0x12, 0xf2, 0x36, 0x8c, 0x17, 0x3a, 0xa1, 0x27, 0x18, 0x0b, 0x97, 0xba, 0xd8, 0xf9, 0x4d, + 0x34, 0x45, 0x53, 0x0c, 0x63, 0x74, 0xf3, 0x3f, 0xc9, 0xc0, 0x99, 0xee, 0xe1, 0x15, 0xa5, 0xd1, + 0x24, 0x33, 0x8e, 0x98, 0x64, 0x69, 0xb3, 0x81, 0xdb, 0xdc, 0x9e, 0xda, 0x6c, 0xe0, 0x4f, 0x22, + 0x7c, 0xcc, 0xd9, 0x50, 0x83, 0x71, 0x55, 0xe2, 0x0d, 0x7d, 0x5c, 0x89, 0xa7, 0x72, 0xc1, 0xc7, + 0x05, 0x94, 0xdc, 0xf5, 0x6f, 0xa4, 0x39, 0xf0, 0xf2, 0x6c, 0x32, 0x1c, 0xac, 0xfb, 0xee, 0xca, + 0xc3, 0x72, 0x26, 0xf5, 0xb0, 0x2c, 0x13, 0xe3, 0x64, 0x53, 0x13, 0xe3, 0x94, 0x60, 0xba, 0xd6, + 0xd9, 0x96, 0x75, 0x23, 0xe2, 0x90, 0x16, 0x83, 0x60, 0xcb, 0xf6, 0xeb, 0xd1, 0xa5, 0x1a, 0x89, + 0xf9, 0x13, 0x19, 0x98, 0xa8, 0x36, 0x3b, 0xbb, 0x6e, 0xab, 0xe4, 0x84, 0xce, 0x33, 0x7b, 0x7e, + 0xbf, 0xa5, 0x9d, 0xdf, 0x23, 0x3f, 0xf5, 0xe8, 0xc3, 0x06, 0x3a, 0xbc, 0x7f, 0xc7, 0x80, 0xe9, + 0x98, 0x84, 0x8b, 0xf8, 0x25, 0x18, 0x62, 0x3f, 0xc4, 0x71, 0xe0, 0x7c, 0x17, 0x63, 0x9e, 0xe6, + 0x39, 0xfa, 0x4b, 0x9c, 0xa8, 0xf5, 0xbc, 0xa4, 0xc8, 0xe1, 0xec, 0xe7, 0xf8, 0xa3, 0x90, 0xc7, + 0x4f, 0xef, 0xfc, 0xf7, 0x0c, 0xc8, 0x27, 0xbf, 0x84, 0xdc, 0x83, 0x51, 0xc6, 0xc9, 0x8d, 0x1e, + 0x98, 0x7c, 0xb9, 0xc7, 0x37, 0x5f, 0x15, 0x68, 0xbc, 0x79, 0xd8, 0xf9, 0x94, 0x43, 0x2c, 0xc9, + 0xe1, 0xac, 0x05, 0x13, 0x2a, 0x56, 0x4a, 0xeb, 0x5e, 0xd7, 0xf7, 0xb5, 0x53, 0xe9, 0xfd, 0xa0, + 0x25, 0xa5, 0xd6, 0x5a, 0x2d, 0x76, 0xb4, 0x41, 0x9f, 0x17, 0x5e, 0x88, 0xd3, 0xa7, 0xa9, 0xf3, + 0x2c, 0x65, 0x42, 0x47, 0x78, 0xec, 0xe0, 0xcf, 0xeb, 0x53, 0xd3, 0xa1, 0xb6, 0x11, 0xa2, 0x6a, + 0x0e, 0x1c, 0xc7, 0xfc, 0xeb, 0x59, 0x38, 0x15, 0x37, 0x8f, 0x3f, 0xb6, 0x5c, 0x75, 0x7c, 0x67, + 0x3f, 0x38, 0x62, 0x05, 0x5c, 0xea, 0x6a, 0x1a, 0xe6, 0xd4, 0x94, 0x4d, 0x53, 0x1a, 0x64, 0x26, + 0x1a, 0x84, 0x16, 0x13, 0xde, 0x20, 0xd9, 0x0c, 0x72, 0x0f, 0xb2, 0x35, 0x1a, 0x0a, 0x59, 0x74, + 0xb1, 0xab, 0x57, 0xd5, 0x76, 0x5d, 0xad, 0xd1, 0x90, 0x0f, 0x22, 0x0f, 0x33, 0xa4, 0x5a, 0xfe, + 0x0c, 0x76, 0xf6, 0xdd, 0x82, 0x91, 0xf2, 0xa3, 0x36, 0xad, 0x87, 0x22, 0x1b, 0xdb, 0xe5, 0xfe, + 0xfc, 0x38, 0xae, 0x92, 0xf3, 0x8d, 0x22, 0x40, 0xed, 0x2c, 0x8e, 0x72, 0xf6, 0x26, 0xe4, 0x64, + 0xe5, 0xc7, 0xca, 0x5d, 0x76, 0x0b, 0xc6, 0x95, 0x4a, 0x8e, 0x35, 0xe9, 0xff, 0xd4, 0x80, 0x11, + 0xb6, 0x13, 0x6c, 0xde, 0x7c, 0x46, 0x25, 0xd2, 0x0d, 0x4d, 0x22, 0xcd, 0x28, 0x29, 0x7a, 0x70, + 0x5d, 0xde, 0x3c, 0x42, 0x16, 0x1d, 0xb2, 0x7d, 0x25, 0x42, 0x26, 0x77, 0x60, 0x54, 0xdc, 0xd8, + 0x0a, 0xdf, 0x32, 0x35, 0xe7, 0x8f, 0xbc, 0xcb, 0x8d, 0x8e, 0x14, 0x5e, 0x3b, 0x79, 0x06, 0x93, + 0xd4, 0xa4, 0x14, 0xe7, 0x6b, 0xd0, 0x9e, 0x81, 0xf0, 0xd0, 0xb1, 0x9e, 0xe7, 0xac, 0x51, 0x1e, + 0x58, 0xe9, 0x11, 0xfd, 0x58, 0x10, 0x56, 0xc4, 0x6c, 0x3f, 0x26, 0xa7, 0x64, 0x0e, 0xfe, 0x54, + 0x03, 0xe3, 0xbf, 0x22, 0x3c, 0xdb, 0x8b, 0x6c, 0xd8, 0x3b, 0x30, 0x71, 0xdb, 0xf3, 0x1f, 0x3a, + 0x3e, 0x8f, 0xe1, 0xc7, 0xcf, 0xe4, 0xb7, 0x75, 0x93, 0x3b, 0x1c, 0xce, 0xb3, 0x00, 0x7c, 0xff, + 0x70, 0x7e, 0x68, 0xd1, 0xf3, 0x9a, 0x96, 0x86, 0x4e, 0xd6, 0x60, 0x72, 0xc5, 0x79, 0xa4, 0xdc, + 0x21, 0x73, 0x4f, 0xd9, 0xcb, 0x8f, 0x0f, 0xe7, 0xcf, 0x30, 0x5d, 0xff, 0xe8, 0xfb, 0x63, 0x9d, + 0x9e, 0xb8, 0x30, 0x55, 0xf5, 0xfc, 0x50, 0x54, 0xc2, 0x0e, 0x90, 0xd9, 0x1e, 0x37, 0xe0, 0xd7, + 0x52, 0x6f, 0xc0, 0xcf, 0xb0, 0x53, 0xb3, 0xbd, 0x13, 0x91, 0x6b, 0xe1, 0xaf, 0x1a, 0x63, 0xf2, + 0x0e, 0xcc, 0x14, 0xa9, 0x1f, 0xba, 0x3b, 0x6e, 0xdd, 0x09, 0xe9, 0x6d, 0xcf, 0xdf, 0x77, 0xa4, + 0x22, 0x89, 0xd6, 0x2b, 0xbc, 0x6a, 0xdc, 0x41, 0xb0, 0xd5, 0x8d, 0x49, 0x3e, 0x4c, 0xf3, 0x3d, + 0x1e, 0x8e, 0xaf, 0xd0, 0x53, 0x7c, 0x8f, 0x7b, 0x5d, 0xa1, 0x77, 0x7b, 0x21, 0xef, 0xf6, 0x73, + 0xb1, 0xc9, 0x2d, 0x5e, 0x17, 0xde, 0x39, 0x47, 0xbb, 0xd0, 0x44, 0xe3, 0xd6, 0xc3, 0x95, 0x66, + 0x01, 0xb2, 0x8b, 0xd5, 0xdb, 0x68, 0x8f, 0x94, 0x77, 0xac, 0xad, 0x3d, 0xa7, 0x55, 0x47, 0x05, + 0x4f, 0xb8, 0xb5, 0xa9, 0x02, 0x6f, 0xb1, 0x7a, 0x9b, 0x38, 0x70, 0xa2, 0x4a, 0xfd, 0x7d, 0x37, + 0xfc, 0xd2, 0xf5, 0xeb, 0xca, 0x40, 0xe5, 0xb0, 0x69, 0xd7, 0x44, 0xd3, 0xe6, 0xdb, 0x88, 0x62, + 0x3f, 0xba, 0x7e, 0x3d, 0x75, 0x38, 0xa2, 0x86, 0xa5, 0xf1, 0x22, 0x65, 0x98, 0x5a, 0x71, 0x1e, + 0xc5, 0xde, 0x88, 0x81, 0x88, 0xe2, 0x78, 0x51, 0x4e, 0xac, 0xd8, 0x93, 0x51, 0x0b, 0xd3, 0xd4, + 0x89, 0x98, 0x7e, 0x1e, 0x4f, 0xaf, 0x40, 0xf8, 0xbf, 0x9e, 0x95, 0x07, 0x51, 0x19, 0xea, 0xa3, + 0x2a, 0x99, 0x0a, 0x3a, 0xd9, 0x88, 0x4e, 0x19, 0x5c, 0x4b, 0x17, 0x59, 0xdb, 0xaf, 0xa9, 0xa7, + 0x0c, 0x07, 0x4b, 0xb4, 0xcf, 0x9a, 0x8e, 0xce, 0x77, 0xdc, 0x3d, 0xd3, 0xd2, 0xb9, 0x74, 0x1f, + 0x5e, 0x26, 0x8e, 0x7f, 0x78, 0xa1, 0x30, 0xb4, 0xec, 0xd5, 0xef, 0xa3, 0x83, 0xc9, 0xd8, 0xe2, + 0xfb, 0x6c, 0xb9, 0x37, 0xbd, 0xfa, 0xfd, 0xa7, 0xe7, 0x3a, 0x84, 0xec, 0xc9, 0x2a, 0x6b, 0x2a, + 0x9b, 0x05, 0xa2, 0x4f, 0x84, 0x3b, 0xca, 0x6c, 0xa4, 0xbd, 0x2b, 0x65, 0x5c, 0xaf, 0xe0, 0x93, + 0x46, 0x76, 0xad, 0xa5, 0x93, 0x13, 0x0a, 0xf9, 0x12, 0x0d, 0xee, 0x87, 0x5e, 0xbb, 0xd8, 0x74, + 0xdb, 0xdb, 0x9e, 0xe3, 0x37, 0xd0, 0xe2, 0x90, 0xb6, 0xbe, 0x5f, 0x4d, 0x5d, 0xdf, 0x33, 0x0d, + 0x4e, 0x6f, 0xd7, 0x25, 0x03, 0xab, 0x8b, 0x25, 0xf9, 0x10, 0xa6, 0xd8, 0xe4, 0x2e, 0x3f, 0x0a, + 0x69, 0x8b, 0x8f, 0xfc, 0x0c, 0xee, 0xcc, 0xb3, 0x4a, 0x6e, 0xb4, 0xa8, 0x90, 0xcf, 0x29, 0x5c, + 0xec, 0x34, 0x22, 0x50, 0xe7, 0x94, 0xce, 0x8a, 0x34, 0x60, 0x6e, 0xc5, 0x79, 0xa4, 0xe4, 0xa0, + 0x57, 0x26, 0x29, 0xc1, 0x09, 0x86, 0x2f, 0xea, 0xb1, 0x09, 0x16, 0xe7, 0x30, 0xe9, 0x31, 0x5f, + 0x7b, 0x72, 0x22, 0x3f, 0x00, 0xa7, 0xc5, 0x67, 0x95, 0x30, 0xf1, 0xa7, 0xe7, 0x1f, 0xd4, 0xf6, + 0x1c, 0x74, 0x44, 0x3e, 0x71, 0x3c, 0x81, 0x28, 0x3b, 0xac, 0x21, 0xf9, 0xd8, 0x01, 0x67, 0x64, + 0xf5, 0xaa, 0x81, 0x7c, 0x04, 0x53, 0xdc, 0xd0, 0xbc, 0xe4, 0x05, 0x21, 0x1e, 0x42, 0x67, 0x8f, + 0xe7, 0x5f, 0xc7, 0xad, 0xd7, 0xdc, 0x23, 0x35, 0x71, 0x68, 0x4d, 0x70, 0x26, 0x6f, 0xc1, 0x78, + 0xd5, 0x6d, 0xf1, 0x8c, 0x04, 0x95, 0xea, 0xdc, 0xc9, 0x78, 0xff, 0x69, 0xbb, 0x2d, 0x5b, 0x9e, + 0x04, 0xdb, 0x91, 0xb8, 0x50, 0xb1, 0xc9, 0x16, 0x8c, 0xd7, 0x6a, 0x4b, 0xb7, 0x5d, 0xb6, 0x01, + 0xb6, 0x0f, 0xe6, 0x4e, 0xf5, 0x68, 0xe5, 0x85, 0xd4, 0x56, 0x4e, 0x06, 0xc1, 0x1e, 0xbe, 0xda, + 0x65, 0xd7, 0xbd, 0xf6, 0x81, 0xa5, 0x72, 0x4a, 0xf1, 0x39, 0x3b, 0xfd, 0x94, 0x7d, 0xce, 0x2a, + 0x30, 0xad, 0xf8, 0xd6, 0xa0, 0x5f, 0xcd, 0x5c, 0xfc, 0xb0, 0x99, 0xea, 0x63, 0x96, 0x8c, 0x57, + 0x48, 0xd2, 0x49, 0x67, 0xb3, 0x33, 0xc7, 0x75, 0x36, 0x73, 0x61, 0x86, 0x0f, 0x86, 0x98, 0x07, + 0x38, 0xd2, 0x67, 0x7b, 0xf4, 0xe1, 0xe5, 0xd4, 0x3e, 0x3c, 0x21, 0x46, 0x5a, 0x4e, 0x32, 0xbc, + 0x58, 0xe9, 0xe6, 0x4a, 0x76, 0x80, 0x08, 0xa0, 0x78, 0x33, 0x0c, 0xeb, 0x7a, 0xbe, 0x47, 0x5d, + 0x2f, 0xa7, 0xd6, 0x35, 0x25, 0xeb, 0xda, 0xe6, 0xd5, 0xa4, 0x70, 0x24, 0x2d, 0x59, 0x8f, 0x9c, + 0x5f, 0xd8, 0xb1, 0x2f, 0xe0, 0xd8, 0x49, 0xab, 0x60, 0x37, 0x02, 0x46, 0xf6, 0xcc, 0x27, 0x27, + 0x6d, 0xb2, 0xdf, 0x53, 0x38, 0xdf, 0x1d, 0xca, 0x4d, 0xe6, 0xa7, 0xd2, 0x5c, 0xdd, 0xfe, 0xcb, + 0x4c, 0x42, 0x74, 0x92, 0x0a, 0x8c, 0x8a, 0x1e, 0x11, 0xba, 0x64, 0xf7, 0x77, 0xbf, 0x98, 0xfa, + 0xdd, 0xa3, 0xa2, 0x73, 0x2d, 0x49, 0x4f, 0x1e, 0x32, 0x56, 0xe8, 0x75, 0x27, 0x94, 0xef, 0xaf, + 0x72, 0xc9, 0x88, 0x20, 0x6d, 0x0f, 0x28, 0x1d, 0xdf, 0xe7, 0x58, 0x77, 0x69, 0xc7, 0xcd, 0x40, + 0xd6, 0x46, 0xee, 0xf3, 0x94, 0x86, 0xd9, 0xc8, 0x71, 0x55, 0xcf, 0x5f, 0xf8, 0xd4, 0x2a, 0x64, + 0xb5, 0x98, 0xbf, 0x6d, 0xc0, 0xa4, 0x26, 0x7b, 0xc9, 0x4d, 0xc5, 0x2b, 0x3b, 0x0e, 0xfa, 0xd1, + 0x70, 0x70, 0x39, 0x26, 0xfd, 0xb5, 0x6f, 0x0a, 0xc7, 0xb5, 0x4c, 0x6f, 0xba, 0xd4, 0x07, 0xec, + 0xfa, 0x5b, 0x82, 0xa2, 0x14, 0xc9, 0x43, 0x3d, 0x52, 0x24, 0xff, 0xea, 0x19, 0x98, 0xd2, 0x95, + 0x73, 0x76, 0x5a, 0x46, 0xab, 0xbb, 0x34, 0xd8, 0xf2, 0xa4, 0xdf, 0x08, 0xd1, 0x1e, 0xa7, 0x42, + 0x08, 0x79, 0x05, 0x20, 0xf2, 0xe1, 0x92, 0x36, 0xd9, 0xe1, 0xc7, 0x87, 0xf3, 0xc6, 0x1b, 0x96, + 0x52, 0x40, 0xbe, 0x06, 0xb0, 0xea, 0x35, 0x68, 0x94, 0xe5, 0xbf, 0xcf, 0xcd, 0xd3, 0xab, 0x5d, + 0xe9, 0xbe, 0x4e, 0xb6, 0xbc, 0x06, 0xed, 0xce, 0xed, 0xa5, 0x70, 0x24, 0x5f, 0x80, 0x61, 0xab, + 0xd3, 0xa4, 0xd2, 0x76, 0x37, 0x2e, 0x65, 0x60, 0xa7, 0x49, 0x95, 0x37, 0x21, 0x3b, 0x49, 0x87, + 0x03, 0x06, 0x20, 0xef, 0xf1, 0x34, 0x60, 0x22, 0xd7, 0xc6, 0x70, 0x6c, 0xa5, 0x56, 0xf6, 0xc6, + 0xae, 0x6c, 0x1b, 0x0a, 0x09, 0x59, 0x83, 0x51, 0xd5, 0xbc, 0xaa, 0x84, 0xf7, 0xa8, 0xa6, 0x7b, + 0xe5, 0xfc, 0x23, 0xf2, 0x8a, 0x27, 0x2d, 0xaf, 0x92, 0x0b, 0x79, 0x1b, 0xc6, 0x18, 0x7b, 0xfe, + 0xd2, 0xfc, 0x68, 0x6c, 0x8b, 0x56, 0x1a, 0x94, 0x7c, 0x6c, 0x3e, 0x26, 0x20, 0x1f, 0x62, 0xfa, + 0x7c, 0xd1, 0xd5, 0x7d, 0x6f, 0x24, 0x2f, 0x76, 0x75, 0x35, 0xe6, 0xd3, 0xef, 0x7e, 0xff, 0x28, + 0xe2, 0x47, 0x76, 0xa3, 0x4c, 0x0d, 0x83, 0xa4, 0x6e, 0xbb, 0xd2, 0x55, 0xc1, 0x9c, 0x4c, 0x3e, + 0xd0, 0xfd, 0x5a, 0x83, 0xc6, 0x97, 0xb4, 0x21, 0x1f, 0xab, 0x1d, 0xa2, 0x2e, 0xe8, 0x57, 0xd7, + 0x1b, 0x5d, 0x75, 0xa9, 0x03, 0xd8, 0x55, 0x5d, 0x17, 0x77, 0xd2, 0x80, 0x29, 0x29, 0xa8, 0x45, + 0x7d, 0xe3, 0xfd, 0xea, 0x7b, 0xa5, 0xab, 0xbe, 0x13, 0x8d, 0xed, 0xee, 0x7a, 0x12, 0x3c, 0xc9, + 0xdb, 0x30, 0x29, 0x21, 0xb8, 0x3e, 0xc4, 0x93, 0x49, 0x68, 0x9b, 0x68, 0x6c, 0x63, 0x2c, 0x84, + 0x9e, 0xfc, 0x5e, 0x45, 0x56, 0xa9, 0xf9, 0xec, 0x98, 0xd4, 0xa8, 0x93, 0xb3, 0x42, 0x47, 0x26, + 0x1f, 0xc0, 0x78, 0x65, 0x9f, 0x7d, 0x88, 0xd7, 0x72, 0x42, 0x2a, 0x5c, 0xbf, 0xe5, 0xed, 0xaa, + 0x52, 0xa2, 0x4c, 0x55, 0xfe, 0xb6, 0x4f, 0x5c, 0xa4, 0xbd, 0xed, 0x13, 0x83, 0x59, 0xe7, 0x71, + 0x7b, 0xba, 0x98, 0xc3, 0xd2, 0x2d, 0xfc, 0xc5, 0x94, 0x1b, 0x4e, 0x85, 0xbd, 0xc8, 0x69, 0xc3, + 0xa0, 0xf2, 0x2a, 0x22, 0x91, 0xd3, 0x46, 0xe5, 0x49, 0xde, 0x81, 0x71, 0x91, 0xd5, 0xb2, 0x60, + 0xad, 0x06, 0x73, 0x79, 0xfc, 0x78, 0x0c, 0x66, 0x93, 0x09, 0x30, 0x6d, 0xc7, 0x4f, 0xb8, 0xb9, + 0xc4, 0xf8, 0xe4, 0x4b, 0x30, 0xbb, 0xe5, 0xb6, 0x1a, 0xde, 0xc3, 0x40, 0x6c, 0x53, 0x42, 0xd0, + 0xcd, 0xc4, 0xde, 0xc8, 0x0f, 0x79, 0x79, 0xa4, 0x2d, 0x74, 0x09, 0xbe, 0x54, 0x0e, 0xe4, 0x87, + 0xba, 0x38, 0xf3, 0x19, 0x44, 0xfa, 0xcd, 0xa0, 0x85, 0xae, 0x19, 0xd4, 0x5d, 0x7d, 0x72, 0x3a, + 0xa5, 0x56, 0x43, 0x3c, 0x20, 0xfa, 0xfe, 0x7e, 0xd7, 0x73, 0x5b, 0x73, 0x27, 0x50, 0x16, 0x3e, + 0x9f, 0x0c, 0x1f, 0x43, 0x3c, 0xfe, 0xde, 0xac, 0x7c, 0xf5, 0x5b, 0xd7, 0x0a, 0x3f, 0xf2, 0x34, + 0xc3, 0x68, 0x0a, 0x6b, 0xf2, 0x01, 0x4c, 0xb0, 0xff, 0xa3, 0x63, 0xeb, 0xac, 0xe6, 0x13, 0xa3, + 0x60, 0x8a, 0x7a, 0x70, 0x8c, 0x30, 0xed, 0x66, 0xca, 0x89, 0x56, 0x63, 0x45, 0x6e, 0x01, 0x30, + 0xfd, 0x45, 0x88, 0xe3, 0x93, 0x71, 0x0a, 0x21, 0xd4, 0x7a, 0xba, 0x05, 0x71, 0x8c, 0xcc, 0xce, + 0xd2, 0xec, 0x57, 0xad, 0xd3, 0xf0, 0xd8, 0xda, 0x38, 0x85, 0xb4, 0x78, 0x96, 0x46, 0xda, 0x80, + 0xc3, 0xd5, 0xd9, 0xa1, 0xa0, 0x93, 0x25, 0x98, 0xc6, 0x54, 0x4f, 0x95, 0x06, 0x6d, 0x85, 0x78, + 0xcf, 0x35, 0x77, 0x5a, 0xb9, 0x07, 0x64, 0x45, 0xb6, 0x1b, 0x95, 0xa9, 0xda, 0x6e, 0x82, 0x8c, + 0x04, 0x70, 0x22, 0x96, 0x2e, 0xf1, 0xad, 0xe2, 0x1c, 0x76, 0x92, 0xd4, 0xf1, 0xba, 0x31, 0xb8, + 0x3c, 0x66, 0x23, 0xa2, 0x08, 0x2e, 0x69, 0x3e, 0x56, 0x2b, 0x4c, 0xe3, 0x4e, 0x2c, 0x20, 0x77, + 0x8a, 0xd5, 0x64, 0x2e, 0xa4, 0x33, 0xf8, 0x05, 0x38, 0xcc, 0xbb, 0xf5, 0xf8, 0xf1, 0x92, 0x94, + 0x7c, 0x48, 0x29, 0xd4, 0xe4, 0x9b, 0x70, 0x52, 0x4a, 0x10, 0x51, 0x24, 0xe6, 0xf5, 0xd9, 0x63, + 0x4a, 0xe2, 0xc6, 0x76, 0x54, 0x75, 0xd7, 0x94, 0x4e, 0xaf, 0x82, 0x38, 0x30, 0x8e, 0xc3, 0x2a, + 0x6a, 0x7c, 0xbe, 0x5f, 0x8d, 0x97, 0xba, 0x6a, 0x3c, 0xc5, 0xdf, 0xfe, 0xee, 0xaa, 0x4c, 0xe5, + 0x49, 0x16, 0x61, 0x52, 0xac, 0x23, 0x31, 0xdb, 0x5e, 0x88, 0x1f, 0xaf, 0x97, 0x2b, 0xb0, 0x6b, + 0xc2, 0xe9, 0x24, 0xaa, 0x44, 0xe6, 0x17, 0x9b, 0x2f, 0x6a, 0x12, 0x39, 0x79, 0x9f, 0xa9, 0x23, + 0x33, 0x89, 0x14, 0x6b, 0x31, 0xe5, 0x47, 0x6d, 0x5f, 0x18, 0x31, 0xce, 0xc5, 0xc9, 0x2c, 0x15, + 0xe5, 0xc7, 0xa6, 0x11, 0x86, 0x2a, 0x12, 0xd2, 0x38, 0x90, 0x0d, 0x38, 0x11, 0xed, 0xda, 0x0a, + 0xe3, 0x79, 0x64, 0x8c, 0x87, 0x89, 0x78, 0xab, 0x4f, 0xe7, 0x9b, 0x46, 0x4f, 0x1c, 0x38, 0xad, + 0xed, 0xd3, 0x0a, 0xeb, 0xf3, 0xc8, 0x1a, 0x1f, 0xcb, 0xd1, 0x37, 0xf9, 0x74, 0xf6, 0xbd, 0xf8, + 0x90, 0x8f, 0xe0, 0x6c, 0x72, 0x6f, 0x56, 0x6a, 0x79, 0x09, 0x6b, 0xb9, 0xf2, 0xf8, 0x70, 0xfe, + 0x62, 0xd7, 0xf6, 0x9e, 0x5e, 0x51, 0x1f, 0x6e, 0xe4, 0x6b, 0x30, 0xa7, 0xef, 0xcf, 0x4a, 0x4d, + 0x26, 0xd6, 0x84, 0x4b, 0x27, 0xda, 0xd8, 0xd3, 0x6b, 0xe8, 0xc9, 0x83, 0x84, 0x30, 0x9f, 0x3a, + 0xbb, 0x95, 0x6a, 0x2e, 0xc4, 0x1f, 0xd4, 0xb5, 0x4a, 0xd2, 0xab, 0x3b, 0x8a, 0x25, 0x79, 0x08, + 0xe7, 0xd2, 0xb6, 0x09, 0xa5, 0xd2, 0x97, 0x23, 0x33, 0xe1, 0x6b, 0xe9, 0x5b, 0x4e, 0x7a, 0xcd, + 0x47, 0xb0, 0x25, 0x1f, 0xc2, 0x49, 0x65, 0x7d, 0x29, 0xf5, 0xbd, 0x82, 0xf5, 0x61, 0x2c, 0x91, + 0xba, 0x30, 0xd3, 0x6b, 0x49, 0xe7, 0x61, 0xfe, 0xae, 0x01, 0xa4, 0x5b, 0xf0, 0x0d, 0x7c, 0x73, + 0xf8, 0xa6, 0x12, 0x68, 0xa3, 0xbe, 0x8c, 0x1e, 0xe5, 0xc3, 0x54, 0x15, 0xde, 0x38, 0x24, 0xe7, + 0xa2, 0x76, 0xc0, 0xea, 0xed, 0x9d, 0x7d, 0x19, 0x86, 0x37, 0xa9, 0xbf, 0xcd, 0x4f, 0x20, 0xc2, + 0xc3, 0xf9, 0x01, 0x03, 0x68, 0x8f, 0x28, 0x32, 0x80, 0xf9, 0x47, 0x06, 0xcc, 0xa6, 0xed, 0xc6, + 0x47, 0xbc, 0x77, 0x63, 0x26, 0xfc, 0xbf, 0xf1, 0xd6, 0x90, 0xfb, 0x7f, 0x47, 0x5e, 0xdf, 0xf3, + 0x30, 0xcc, 0x3e, 0x56, 0x7a, 0xb0, 0xe0, 0x81, 0x8f, 0xf5, 0x46, 0x60, 0x71, 0x38, 0x43, 0xe0, + 0x81, 0xf7, 0x43, 0x98, 0xff, 0x00, 0x11, 0x50, 0xd8, 0x5b, 0x1c, 0xce, 0x10, 0xd8, 0xc1, 0x52, + 0x1e, 0x84, 0x10, 0x81, 0x9d, 0x37, 0x03, 0x8b, 0xc3, 0xc9, 0x45, 0x18, 0x5d, 0x6b, 0x2d, 0x53, + 0xe7, 0x81, 0x4c, 0xe9, 0x89, 0xb7, 0x9c, 0x5e, 0xcb, 0x6e, 0x32, 0x98, 0x25, 0x0b, 0xcd, 0xef, + 0x18, 0x30, 0xd3, 0xa5, 0x08, 0x1c, 0xfd, 0xa4, 0x4f, 0x7f, 0x4f, 0xd7, 0x41, 0xbe, 0x8f, 0x37, + 0x7f, 0x28, 0xbd, 0xf9, 0xe6, 0xff, 0x31, 0x04, 0xa7, 0x7b, 0x9c, 0xcb, 0x62, 0x2f, 0x75, 0xe3, + 0x48, 0x2f, 0xf5, 0xaf, 0xb0, 0x73, 0x90, 0xe3, 0xee, 0x07, 0xeb, 0x5e, 0xdc, 0xe2, 0xd8, 0xa1, + 0x0f, 0xcb, 0xe4, 0x8b, 0x1b, 0x2f, 0x89, 0x6d, 0xfd, 0x4c, 0x1d, 0x29, 0xec, 0xd0, 0xeb, 0xde, + 0x16, 0x34, 0x66, 0x5d, 0x7e, 0xe2, 0xd9, 0x3f, 0x27, 0x7e, 0xe2, 0xba, 0x77, 0xe6, 0xd0, 0x53, + 0xf5, 0xce, 0x4c, 0xf7, 0xeb, 0x19, 0x7e, 0x12, 0x2f, 0xaf, 0x22, 0x4c, 0xd6, 0xa8, 0xe3, 0xd7, + 0xf7, 0x0a, 0x01, 0x1f, 0xa4, 0x91, 0x38, 0x91, 0x66, 0x80, 0x05, 0xb6, 0x13, 0x74, 0x8f, 0x85, + 0x46, 0x43, 0x96, 0x74, 0x4f, 0xc2, 0x51, 0xb4, 0x9f, 0x5f, 0xec, 0xed, 0x29, 0xa8, 0xdd, 0x9b, + 0xa9, 0xa4, 0xe6, 0x77, 0x32, 0xba, 0xa3, 0xfc, 0x9f, 0xc7, 0x99, 0x77, 0x19, 0x86, 0xb7, 0xf6, + 0xa8, 0x2f, 0xe5, 0x1d, 0x36, 0xe4, 0x21, 0x03, 0xa8, 0x0d, 0x41, 0x0c, 0x72, 0x1b, 0xa6, 0xaa, + 0x7c, 0x24, 0x64, 0xf7, 0x0e, 0xc5, 0xea, 0x72, 0x5b, 0x1c, 0xea, 0x52, 0xfa, 0x37, 0x41, 0x65, + 0xfe, 0x00, 0x4c, 0xa8, 0x8d, 0x46, 0x11, 0xc5, 0x7e, 0x0b, 0x19, 0xc1, 0x45, 0x14, 0x03, 0x58, + 0x1c, 0x7e, 0xe4, 0xc3, 0x5f, 0x71, 0x6f, 0x66, 0x8f, 0xea, 0x4d, 0x56, 0x39, 0xae, 0x00, 0xa5, + 0x72, 0xfc, 0xad, 0x56, 0x1e, 0x32, 0x80, 0xc5, 0xe1, 0x4f, 0xb5, 0xf2, 0x7f, 0x28, 0xd3, 0xa6, + 0xbe, 0x09, 0x63, 0xf1, 0x31, 0x21, 0x7e, 0x5e, 0xe1, 0x44, 0x9a, 0xf2, 0x1f, 0x63, 0xc6, 0x7b, + 0x4e, 0xe6, 0xa8, 0x3d, 0xe7, 0x38, 0xe3, 0x7a, 0x0d, 0x46, 0x0b, 0xe2, 0xb2, 0x88, 0x0f, 0x28, + 0x8f, 0x1c, 0xea, 0xba, 0x19, 0x92, 0x58, 0xe6, 0x77, 0x0d, 0x38, 0x99, 0x6a, 0x3d, 0x60, 0xb5, + 0x72, 0x33, 0x85, 0x32, 0xad, 0x93, 0x36, 0x0a, 0x8e, 0x71, 0x9c, 0x08, 0xa1, 0xc1, 0xbf, 0xc5, + 0x7c, 0x09, 0xc6, 0x22, 0xdb, 0x35, 0x99, 0x95, 0x43, 0x87, 0x1e, 0x04, 0xd2, 0x04, 0xfa, 0xa7, + 0x06, 0x8c, 0xb0, 0x26, 0x3c, 0xb3, 0xa9, 0x46, 0xd2, 0xfd, 0x49, 0xd8, 0x27, 0x0d, 0x94, 0x60, + 0xe4, 0x97, 0x47, 0xf8, 0x6b, 0xa1, 0x22, 0xad, 0xc8, 0x36, 0x4c, 0xad, 0x55, 0x4a, 0x45, 0xe5, + 0x10, 0xac, 0x67, 0x78, 0x8d, 0x1e, 0xa3, 0xe3, 0x08, 0x07, 0xb1, 0x8c, 0xf1, 0xdc, 0x46, 0x3d, + 0xfd, 0x80, 0x9c, 0xe0, 0xc8, 0xea, 0xe0, 0xef, 0x64, 0x46, 0x75, 0x64, 0x06, 0xac, 0x43, 0xbc, + 0xc2, 0x99, 0x56, 0x87, 0xce, 0x91, 0xec, 0x41, 0xfe, 0x0e, 0xee, 0x87, 0x4a, 0x2d, 0xd9, 0xfe, + 0xb5, 0x5c, 0x10, 0xb5, 0x3c, 0xcf, 0x37, 0xd2, 0xf4, 0x7a, 0xba, 0xb8, 0xc6, 0x33, 0x77, 0xe8, + 0xc8, 0x99, 0xfb, 0x97, 0x0c, 0x18, 0xe1, 0x1b, 0xae, 0x18, 0xad, 0x1e, 0x5b, 0xfa, 0xd6, 0xd3, + 0xd9, 0xd2, 0xf3, 0x28, 0xb9, 0x34, 0xb3, 0x3d, 0x2f, 0x23, 0x25, 0x18, 0xa9, 0x85, 0x4e, 0xd8, + 0x91, 0x21, 0x68, 0xd2, 0x69, 0x08, 0xcd, 0x59, 0xbc, 0x24, 0x8e, 0xb3, 0x0a, 0xf0, 0xb7, 0xca, + 0x85, 0x63, 0x90, 0x4a, 0x1c, 0xe2, 0x33, 0x7a, 0xa4, 0x83, 0xbd, 0x0c, 0x8b, 0x1a, 0x15, 0x21, + 0x3e, 0x7a, 0x60, 0xcf, 0x32, 0x8c, 0x89, 0xc0, 0xa1, 0xc5, 0x03, 0x61, 0xb4, 0xce, 0x6b, 0x97, + 0x61, 0x8d, 0x45, 0xf5, 0x95, 0x7e, 0x0e, 0xb2, 0xb7, 0xb5, 0x97, 0xf5, 0x22, 0x44, 0xb2, 0xc6, + 0x73, 0x49, 0xf3, 0xc4, 0x2b, 0x7a, 0xd6, 0xb2, 0x08, 0x2e, 0x22, 0x6b, 0x65, 0xf4, 0x41, 0x4a, + 0x9e, 0x95, 0x98, 0x87, 0xf9, 0x33, 0x06, 0xe4, 0x93, 0xf3, 0x85, 0xbc, 0x0d, 0xe3, 0x51, 0xaa, + 0x9a, 0xc8, 0x1d, 0x1f, 0xcd, 0x4d, 0x71, 0x6e, 0x1b, 0xcd, 0x31, 0x5f, 0x45, 0x27, 0x0b, 0x90, + 0x63, 0xcb, 0x4e, 0x79, 0x82, 0x1b, 0xe5, 0x49, 0x47, 0xc0, 0x54, 0x4f, 0x46, 0x89, 0xa7, 0xac, + 0xda, 0x7f, 0x96, 0x85, 0x71, 0x65, 0xb0, 0xc8, 0x65, 0xc8, 0x55, 0x82, 0x65, 0xaf, 0x7e, 0x9f, + 0x36, 0x84, 0x83, 0xd4, 0xe4, 0xe3, 0xc3, 0xf9, 0x31, 0x37, 0xb0, 0x9b, 0x08, 0xb4, 0xa2, 0x62, + 0xb2, 0x08, 0x93, 0xfc, 0x2f, 0x99, 0x39, 0x2f, 0x13, 0x3b, 0x77, 0x70, 0x64, 0x99, 0x33, 0x4f, + 0x55, 0x13, 0x34, 0x12, 0xf2, 0x55, 0x00, 0x0e, 0x60, 0xe3, 0x3b, 0x40, 0xdc, 0xb0, 0x5c, 0xc0, + 0x27, 0x45, 0x05, 0xa1, 0xab, 0x7e, 0x21, 0x4e, 0x05, 0x85, 0x21, 0xf9, 0x3a, 0xcf, 0x42, 0x23, + 0x27, 0xd7, 0xd0, 0xe0, 0xd1, 0x1b, 0x8c, 0xbf, 0x9d, 0x1e, 0x44, 0xa6, 0xb2, 0x24, 0xdf, 0x36, + 0xe0, 0xac, 0x45, 0xeb, 0xde, 0x03, 0xea, 0x1f, 0x14, 0x42, 0xc4, 0x52, 0x6b, 0x3c, 0x3a, 0x62, + 0xed, 0x86, 0xa8, 0xf1, 0x55, 0x5f, 0x70, 0xc1, 0x74, 0x1d, 0xfb, 0xed, 0xd0, 0xee, 0xd3, 0x84, + 0x3e, 0x55, 0x9a, 0xff, 0xbd, 0xa1, 0x2c, 0x01, 0xb2, 0x8a, 0xe9, 0xfb, 0xf9, 0x64, 0x11, 0x97, + 0xb1, 0x91, 0x86, 0x27, 0xe1, 0x16, 0xdd, 0x59, 0x7c, 0x5e, 0xf8, 0x32, 0x9d, 0x88, 0xa6, 0x5c, + 0x22, 0xad, 0x3f, 0x07, 0x92, 0x2f, 0xc2, 0x10, 0x0e, 0xd5, 0xd1, 0xcf, 0x94, 0xc9, 0xad, 0x66, + 0x88, 0x8d, 0x11, 0xb6, 0x1a, 0x29, 0xc9, 0x67, 0x84, 0xb3, 0x7f, 0x56, 0x7b, 0x2a, 0x97, 0x81, + 0x58, 0x3b, 0xa2, 0x3d, 0x26, 0x8e, 0x5b, 0x54, 0x66, 0xeb, 0x5f, 0xc9, 0x40, 0x3e, 0xb9, 0xf0, + 0xc8, 0x7b, 0x30, 0x21, 0x93, 0xe8, 0x2c, 0x39, 0x22, 0x35, 0xde, 0x84, 0x48, 0x4d, 0x27, 0xe0, + 0xf6, 0x9e, 0xa3, 0x3d, 0x3e, 0xa7, 0x11, 0xb0, 0x0d, 0x79, 0x5d, 0x84, 0xc3, 0x2b, 0x0b, 0x28, + 0xf4, 0xc2, 0x76, 0xe2, 0xe5, 0x4c, 0x89, 0x46, 0xde, 0x84, 0xec, 0xca, 0xed, 0x82, 0x70, 0x82, + 0x95, 0xf2, 0x65, 0xe5, 0x76, 0x81, 0xbb, 0x2b, 0x70, 0x2f, 0x04, 0xdd, 0x27, 0x82, 0xe1, 0x93, + 0x65, 0x25, 0x2f, 0xd1, 0x88, 0x96, 0xdb, 0x5b, 0x82, 0xa3, 0x8f, 0x3b, 0x3a, 0x41, 0x91, 0xfa, + 0x32, 0x9f, 0xf9, 0xab, 0x59, 0x18, 0x8b, 0xea, 0x27, 0x04, 0x50, 0xdf, 0x10, 0x7e, 0xb0, 0xf8, + 0x37, 0x39, 0x03, 0x39, 0xa9, 0x62, 0x08, 0x5f, 0xd8, 0xd1, 0x40, 0xa8, 0x17, 0x73, 0x20, 0x75, + 0x09, 0xae, 0x5e, 0x58, 0xf2, 0x27, 0xb9, 0x0e, 0x91, 0xa2, 0xd0, 0x4b, 0xa3, 0x18, 0x62, 0x03, + 0x66, 0x45, 0x68, 0x64, 0x0a, 0x32, 0x2e, 0x0f, 0x75, 0x1e, 0xb3, 0x32, 0x6e, 0x83, 0xbc, 0x07, + 0x39, 0xa7, 0xd1, 0xa0, 0x0d, 0xdb, 0x91, 0xb7, 0x9a, 0xfd, 0x26, 0x4d, 0x8e, 0x71, 0xe3, 0x12, + 0x1d, 0xa9, 0x0a, 0x21, 0x29, 0xc0, 0x58, 0xd3, 0xe1, 0x7e, 0x0a, 0x8d, 0x01, 0xb6, 0x87, 0x98, + 0x43, 0x8e, 0x91, 0x6d, 0x04, 0xb4, 0x41, 0x5e, 0x85, 0x21, 0x36, 0x9a, 0x62, 0x3f, 0x88, 0xde, + 0x19, 0x5c, 0x5b, 0xaf, 0xf2, 0x0e, 0x5b, 0x7a, 0xce, 0x42, 0x04, 0xf2, 0x32, 0x64, 0x3b, 0x0b, + 0x3b, 0x42, 0xd2, 0xe7, 0xe3, 0x1c, 0x61, 0x11, 0x1a, 0x2b, 0x26, 0x37, 0x20, 0xf7, 0x50, 0x4f, + 0x2f, 0x75, 0x32, 0x31, 0x8c, 0x11, 0x7e, 0x84, 0xb8, 0x98, 0x83, 0x11, 0xee, 0xe9, 0x62, 0x9e, + 0x03, 0x88, 0xab, 0xee, 0x76, 0x59, 0x36, 0xbf, 0x0a, 0x63, 0x51, 0x95, 0xe4, 0x45, 0x80, 0xfb, + 0xf4, 0xc0, 0xde, 0x73, 0x5a, 0x8d, 0x26, 0x57, 0x38, 0x27, 0xac, 0xb1, 0xfb, 0xf4, 0x60, 0x09, + 0x01, 0xe4, 0x34, 0x8c, 0xb6, 0xd9, 0xa8, 0xca, 0x77, 0x5f, 0xad, 0x91, 0x76, 0x67, 0x9b, 0xcd, + 0xd0, 0x39, 0x18, 0x45, 0x73, 0x8c, 0x58, 0x68, 0x93, 0x96, 0xfc, 0x69, 0xfe, 0xa3, 0x0c, 0xa6, + 0x29, 0x55, 0xda, 0x49, 0x2e, 0xc0, 0x64, 0xdd, 0xa7, 0xb8, 0x1d, 0xe1, 0xa3, 0xc1, 0xa2, 0x9e, + 0x89, 0x18, 0x58, 0x69, 0x90, 0x8b, 0x30, 0x1d, 0x3f, 0x44, 0x6b, 0xd7, 0xb7, 0x45, 0x2e, 0xb8, + 0x09, 0x6b, 0xb2, 0x2d, 0x5f, 0xa2, 0x2d, 0x6e, 0x63, 0x88, 0x7e, 0x5e, 0x4d, 0xc5, 0x13, 0x46, + 0xcf, 0xcd, 0x58, 0xd3, 0x0a, 0x1c, 0x9d, 0x15, 0x4e, 0xc1, 0x88, 0xe3, 0xec, 0x76, 0x5c, 0x1e, + 0x2e, 0x3c, 0x61, 0x89, 0x5f, 0xe4, 0x35, 0x98, 0x09, 0xdc, 0xdd, 0x96, 0x13, 0x76, 0x7c, 0x91, + 0x27, 0x96, 0xfa, 0x38, 0xa5, 0x26, 0xad, 0x7c, 0x54, 0x50, 0xe4, 0x70, 0xf2, 0x06, 0x10, 0xb5, + 0x3e, 0x6f, 0xfb, 0x23, 0x5a, 0xe7, 0x53, 0x6d, 0xc2, 0x9a, 0x51, 0x4a, 0xd6, 0xb0, 0x80, 0xbc, + 0x04, 0x13, 0x3e, 0x0d, 0x50, 0x25, 0xc3, 0x6e, 0xc3, 0x2c, 0xde, 0xd6, 0xb8, 0x84, 0xb1, 0xbe, + 0xbb, 0x04, 0x79, 0xa5, 0x3b, 0x30, 0xdb, 0x11, 0x4f, 0x84, 0x66, 0x4d, 0xc5, 0x70, 0xab, 0x5d, + 0x69, 0x98, 0x8b, 0x30, 0xd3, 0xb5, 0x72, 0xc9, 0x1b, 0xfc, 0x1c, 0x20, 0x76, 0xf2, 0x09, 0x7e, + 0xec, 0x41, 0x2f, 0x1b, 0x6d, 0x13, 0x17, 0x48, 0x66, 0x0b, 0x26, 0x54, 0x49, 0x7c, 0x44, 0x3e, + 0xbe, 0x53, 0x18, 0xb1, 0xc7, 0xc5, 0xd4, 0xc8, 0xe3, 0xc3, 0xf9, 0x8c, 0xdb, 0xc0, 0x38, 0xbd, + 0x4b, 0x90, 0x93, 0xfa, 0x84, 0x38, 0x23, 0xa0, 0x39, 0x4d, 0xa8, 0x9e, 0x07, 0x56, 0x54, 0x6a, + 0xbe, 0x0a, 0xa3, 0x42, 0xd8, 0xf6, 0x37, 0xa2, 0x99, 0x3f, 0x9e, 0x81, 0x69, 0x8b, 0x32, 0x51, + 0x40, 0x79, 0x12, 0xce, 0x4f, 0xd9, 0xe3, 0xbd, 0xda, 0xb7, 0xf5, 0x49, 0x7f, 0xf9, 0x1b, 0x06, + 0x9c, 0x48, 0xc1, 0xfd, 0x58, 0x4f, 0x29, 0xdc, 0x84, 0xb1, 0x92, 0xeb, 0x34, 0x0b, 0x8d, 0x46, + 0x14, 0x79, 0x88, 0x7a, 0x63, 0x83, 0xcd, 0x34, 0x87, 0x41, 0xd5, 0x6d, 0x37, 0x42, 0x25, 0x57, + 0xc4, 0xa4, 0x88, 0xdf, 0x6d, 0x92, 0xcf, 0x03, 0x03, 0x6f, 0x53, 0xfc, 0x38, 0x30, 0xe6, 0xc3, + 0xe1, 0xc0, 0xd8, 0xcb, 0xf2, 0x99, 0x1d, 0xba, 0xf4, 0x7c, 0x38, 0xc9, 0xcf, 0x1b, 0xe8, 0x80, + 0xfa, 0x33, 0x19, 0x38, 0x95, 0x4e, 0xf8, 0x71, 0x5f, 0xc5, 0xc0, 0xdc, 0xa3, 0xca, 0x0b, 0xcc, + 0xf8, 0x2a, 0x06, 0x4f, 0x54, 0x8a, 0xf8, 0x31, 0x02, 0xd9, 0x81, 0xc9, 0x65, 0x27, 0x08, 0x97, + 0xa8, 0xe3, 0x87, 0xdb, 0xd4, 0x09, 0x07, 0xd0, 0x75, 0x5f, 0x16, 0x5f, 0x33, 0x87, 0xdb, 0xdf, + 0x9e, 0xa4, 0x4c, 0xa8, 0x82, 0x3a, 0xdb, 0x68, 0xa2, 0x0c, 0x0d, 0x30, 0x51, 0xbe, 0x01, 0xd3, + 0x35, 0xba, 0xef, 0xb4, 0xf7, 0x3c, 0x9f, 0x0a, 0xbb, 0xff, 0x55, 0x98, 0x8c, 0x40, 0xa9, 0xb3, + 0x45, 0x2f, 0xd6, 0xf0, 0x95, 0x8e, 0x88, 0x45, 0x89, 0x5e, 0x6c, 0xfe, 0xd5, 0x0c, 0x9c, 0x2e, + 0xd4, 0x85, 0x1b, 0x80, 0x28, 0x90, 0xde, 0x4a, 0x9f, 0x70, 0xdd, 0xe4, 0x1a, 0x8c, 0xad, 0x38, + 0x8f, 0x96, 0xa9, 0x13, 0xd0, 0x40, 0xe4, 0x24, 0xe7, 0x8a, 0x9a, 0xf3, 0x28, 0xbe, 0x1d, 0xb7, + 0x62, 0x1c, 0xf5, 0x58, 0x3a, 0xf4, 0x84, 0xc7, 0x52, 0x13, 0x46, 0x96, 0xbc, 0x66, 0x43, 0x6c, + 0x63, 0xe2, 0xce, 0x65, 0x0f, 0x21, 0x96, 0x28, 0x31, 0xff, 0xc8, 0x80, 0xa9, 0xa8, 0xc5, 0xd8, + 0x84, 0x4f, 0xbc, 0x4b, 0x2e, 0xc2, 0x28, 0x56, 0x54, 0x29, 0xa9, 0x9b, 0x46, 0x93, 0x81, 0x6c, + 0xb7, 0x61, 0xc9, 0x42, 0xb5, 0x27, 0x86, 0x9f, 0xac, 0x27, 0xcc, 0xbf, 0x8d, 0xd7, 0x39, 0xea, + 0x57, 0xb2, 0x9d, 0x48, 0x69, 0x88, 0x31, 0x60, 0x43, 0x32, 0x4f, 0x6d, 0x48, 0xb2, 0x3d, 0x87, + 0xe4, 0x5b, 0x19, 0x18, 0x8f, 0x1a, 0xfb, 0x29, 0x4b, 0x24, 0x17, 0x7d, 0xd7, 0x40, 0x91, 0xab, + 0x35, 0x45, 0x56, 0x88, 0x00, 0xd1, 0x2f, 0xc2, 0x88, 0x58, 0x4c, 0x46, 0xc2, 0x6b, 0x27, 0x31, + 0xba, 0x8b, 0x53, 0x82, 0xf5, 0x08, 0x0e, 0x68, 0x60, 0x09, 0x3a, 0x0c, 0x0d, 0xde, 0xa2, 0xdb, + 0xe2, 0x76, 0xef, 0x99, 0xdd, 0xa3, 0xd2, 0x43, 0x83, 0xe3, 0x0f, 0x1b, 0x68, 0x77, 0x3a, 0x1c, + 0x86, 0x7c, 0x92, 0xe4, 0xe8, 0x54, 0x7d, 0xd5, 0xce, 0x36, 0xd7, 0xc2, 0x79, 0xaa, 0xbe, 0x76, + 0x67, 0xdb, 0x62, 0x30, 0x72, 0x11, 0x86, 0xaa, 0xbe, 0xfb, 0x00, 0xbf, 0x7a, 0x82, 0xdf, 0x36, + 0xb7, 0x7d, 0xf7, 0x81, 0x7a, 0xdb, 0xcc, 0xca, 0xf1, 0xe8, 0xbb, 0x5c, 0xc3, 0x70, 0x2b, 0x54, + 0xc1, 0xc5, 0xd1, 0xb7, 0x19, 0x24, 0xd3, 0x13, 0x4b, 0x34, 0xb6, 0x55, 0x2e, 0x52, 0xc7, 0x17, + 0x69, 0xe5, 0x84, 0x38, 0xc3, 0xad, 0x72, 0x1b, 0xc1, 0xfc, 0x65, 0x2e, 0x4b, 0x45, 0x22, 0x4d, + 0x20, 0xca, 0x4f, 0xb9, 0x80, 0x8f, 0x3e, 0x0d, 0x9e, 0x97, 0x76, 0x3a, 0x95, 0xb5, 0xad, 0xae, + 0xe6, 0x14, 0xbe, 0x4f, 0xd3, 0x9a, 0x58, 0x15, 0x49, 0x46, 0xd0, 0xe4, 0x91, 0x3b, 0x92, 0x99, + 0x8c, 0x47, 0x04, 0x9e, 0x84, 0x24, 0x32, 0x7c, 0xc4, 0x4c, 0xc8, 0xbb, 0x30, 0xae, 0x06, 0xd1, + 0xf1, 0x50, 0xaf, 0x17, 0x78, 0xea, 0x8d, 0x1e, 0x8f, 0x43, 0xa8, 0x04, 0x64, 0x1b, 0x4e, 0x17, + 0xbd, 0x56, 0xd0, 0xd9, 0xa7, 0x0d, 0xed, 0xf6, 0xb9, 0x52, 0xc2, 0xa3, 0xe8, 0x18, 0x8f, 0xc8, + 0xa9, 0x0b, 0x14, 0x11, 0xb3, 0x25, 0x5d, 0x22, 0xf5, 0x03, 0x48, 0x2f, 0x46, 0x64, 0x1d, 0xc6, + 0x6b, 0x85, 0x95, 0x65, 0x19, 0x08, 0x35, 0xae, 0x8b, 0x8d, 0xb8, 0xa4, 0xc4, 0x16, 0x06, 0xcf, + 0x05, 0xe0, 0xec, 0x37, 0xa5, 0x47, 0x9e, 0x6a, 0xa7, 0x54, 0x90, 0xcd, 0xcf, 0xa8, 0xf3, 0x5b, + 0xa8, 0x1b, 0x7d, 0xe7, 0xb7, 0xf9, 0xdf, 0x8c, 0xc0, 0x74, 0xa2, 0x3a, 0x71, 0xfe, 0x31, 0xba, + 0xce, 0x3f, 0x35, 0x00, 0x6e, 0xf4, 0x1a, 0xd0, 0x3a, 0x25, 0x9d, 0xb9, 0xc7, 0x45, 0x28, 0x44, + 0x34, 0x56, 0x0a, 0x1b, 0xc6, 0x94, 0xcf, 0x84, 0x01, 0xad, 0x93, 0x11, 0x53, 0x3e, 0x99, 0x14, + 0xa6, 0x31, 0x1b, 0x32, 0x0f, 0xc3, 0x98, 0xa3, 0x45, 0xf5, 0xa5, 0x77, 0x19, 0xc0, 0xe2, 0x70, + 0x72, 0x01, 0x46, 0xd8, 0xe6, 0x5c, 0x29, 0x89, 0xc5, 0x85, 0x32, 0x8b, 0xed, 0xde, 0x6c, 0x27, + 0x14, 0x45, 0xe4, 0x26, 0x4c, 0xf0, 0xbf, 0x44, 0x30, 0xe7, 0x88, 0xee, 0x56, 0x62, 0xbb, 0x0d, + 0x19, 0xcf, 0xa9, 0xe1, 0x31, 0xad, 0xb5, 0xd6, 0xd9, 0x16, 0xcf, 0x80, 0x8e, 0xc6, 0x5a, 0x6b, + 0xc0, 0x81, 0xf8, 0x96, 0x5b, 0x84, 0xc0, 0xf6, 0x48, 0xe1, 0xd1, 0x96, 0xc3, 0xb3, 0x0a, 0xee, + 0x91, 0xdc, 0x93, 0xcd, 0x12, 0x25, 0xe4, 0x32, 0xb7, 0x3f, 0xa3, 0xba, 0xc1, 0xd3, 0x7c, 0xa3, + 0xc5, 0x18, 0x0f, 0xbc, 0xa8, 0x73, 0x44, 0xc5, 0xac, 0x72, 0xf6, 0x77, 0x79, 0xdf, 0x71, 0x9b, + 0x62, 0xba, 0x62, 0xe5, 0x88, 0x4b, 0x19, 0xd4, 0x8a, 0x11, 0xc8, 0xdb, 0x30, 0xc5, 0x7e, 0x14, + 0xbd, 0xfd, 0x7d, 0xaf, 0x85, 0xec, 0xc7, 0xe3, 0xb0, 0x7b, 0x24, 0xa9, 0x63, 0x11, 0xaf, 0x25, + 0x81, 0xcb, 0xe4, 0x14, 0xde, 0x46, 0x75, 0xb8, 0x65, 0x7c, 0x22, 0x96, 0x53, 0x48, 0x1a, 0x70, + 0xb8, 0xa5, 0x22, 0x91, 0x5b, 0x30, 0xc9, 0x7e, 0xde, 0x71, 0x1f, 0x50, 0x5e, 0xe1, 0x64, 0x7c, + 0x31, 0x88, 0x54, 0xbb, 0xac, 0x84, 0xd7, 0xa7, 0x63, 0x92, 0xf7, 0xe1, 0x24, 0x72, 0xaa, 0x7b, + 0x6d, 0xda, 0x28, 0xec, 0xec, 0xb8, 0x4d, 0x97, 0xdf, 0xf3, 0xf3, 0xb0, 0x45, 0xb4, 0x46, 0xf2, + 0x8a, 0x11, 0xc3, 0x76, 0x62, 0x14, 0x2b, 0x9d, 0x92, 0x6c, 0x41, 0xbe, 0xd8, 0x09, 0x42, 0x6f, + 0xbf, 0x10, 0x86, 0xbe, 0xbb, 0xdd, 0x09, 0x69, 0x30, 0x37, 0xad, 0x05, 0xf7, 0xb1, 0xc5, 0x11, + 0x15, 0x72, 0x3b, 0x43, 0x1d, 0x29, 0x6c, 0x27, 0x22, 0xb1, 0xba, 0x98, 0x98, 0xff, 0xdc, 0x80, + 0x49, 0x8d, 0x94, 0xbc, 0x09, 0x13, 0xb7, 0x7d, 0x97, 0xb6, 0x1a, 0xcd, 0x03, 0xe5, 0x00, 0x84, + 0xda, 0xf1, 0x8e, 0x80, 0xf3, 0xaf, 0xd6, 0xd0, 0x22, 0xfb, 0x41, 0x26, 0xd5, 0x09, 0xe7, 0x1a, + 0x0f, 0xe9, 0x10, 0x13, 0x34, 0x1b, 0x47, 0x1b, 0xe3, 0x04, 0x15, 0xb3, 0x53, 0x41, 0x21, 0xef, + 0xc0, 0x08, 0xbf, 0xb7, 0x12, 0x1e, 0x21, 0x67, 0xd2, 0x3e, 0x93, 0x87, 0x0f, 0xe1, 0x44, 0xc4, + 0xeb, 0xf2, 0xc0, 0x12, 0x44, 0xe6, 0xcf, 0x1b, 0x40, 0xba, 0x51, 0x8f, 0xb0, 0xa7, 0x1c, 0x79, + 0x0d, 0xff, 0xc5, 0x68, 0x35, 0x66, 0x35, 0xeb, 0x21, 0xab, 0x89, 0x17, 0xf0, 0x8e, 0x17, 0xab, + 0x4e, 0x35, 0xf0, 0xf0, 0x62, 0xf3, 0x2f, 0x66, 0x00, 0x62, 0x6c, 0xf2, 0x79, 0x9e, 0xad, 0xf8, + 0xfd, 0x8e, 0xd3, 0x74, 0x77, 0x5c, 0x3d, 0xeb, 0x0d, 0x32, 0xf9, 0x86, 0x2c, 0xb1, 0x74, 0x44, + 0xf2, 0x1e, 0x4c, 0xd7, 0xaa, 0x3a, 0xad, 0x92, 0x99, 0x35, 0x68, 0xdb, 0x09, 0xf2, 0x24, 0x36, + 0x7a, 0x7e, 0xa9, 0xa3, 0xc1, 0x3d, 0xbf, 0xf8, 0x40, 0x88, 0x12, 0x26, 0x58, 0x6a, 0x55, 0x7c, + 0x7e, 0xb3, 0x41, 0x1b, 0x95, 0x92, 0x90, 0x52, 0xd8, 0xba, 0xa0, 0x6d, 0xb7, 0x79, 0x01, 0xbe, + 0xf9, 0xa8, 0xe1, 0xc5, 0x1d, 0x39, 0xdc, 0x23, 0x44, 0xe8, 0x17, 0xd0, 0x9c, 0xb4, 0xef, 0x85, + 0x54, 0x9c, 0xa2, 0x9f, 0x59, 0x7d, 0x3a, 0xbe, 0xf4, 0x1c, 0xd6, 0x22, 0x1f, 0xb4, 0xaf, 0xe3, + 0x18, 0x9b, 0x37, 0x62, 0xe5, 0x97, 0x5f, 0x7f, 0xca, 0x4b, 0x4f, 0x45, 0xf5, 0xfb, 0x9b, 0x06, + 0x9c, 0x4c, 0xa5, 0x25, 0x57, 0x01, 0x62, 0x5b, 0x85, 0xe8, 0x25, 0xfe, 0xf4, 0x66, 0x04, 0xb5, + 0x14, 0x0c, 0xf2, 0x95, 0xa4, 0x95, 0xe1, 0xe8, 0x8d, 0xf0, 0xac, 0xcc, 0xa1, 0xa0, 0x5b, 0x19, + 0x52, 0x6c, 0x0b, 0xe6, 0x6f, 0x64, 0x61, 0x46, 0x09, 0xe1, 0xe5, 0x6d, 0x3d, 0xc2, 0x13, 0xef, + 0xbe, 0x7c, 0xe6, 0x55, 0xb8, 0x5f, 0x67, 0xb4, 0xa7, 0x9e, 0xbb, 0xb8, 0x5d, 0x55, 0x91, 0x79, + 0xe2, 0x10, 0x14, 0x9d, 0xe2, 0xd5, 0xd7, 0x2e, 0x37, 0x6c, 0x8d, 0x39, 0x09, 0x60, 0xb2, 0x74, + 0xd0, 0x72, 0xf6, 0xa3, 0xda, 0xf8, 0x45, 0xfd, 0x6b, 0x3d, 0x6b, 0xd3, 0xb0, 0x79, 0x75, 0x52, + 0xe7, 0x9c, 0x6b, 0xf0, 0xb2, 0x94, 0x00, 0x23, 0x8d, 0xea, 0xec, 0x7b, 0x30, 0xd3, 0xd5, 0xe8, + 0x63, 0xe5, 0x30, 0xd9, 0x02, 0xd2, 0xdd, 0x8e, 0x14, 0x0e, 0xaf, 0xe9, 0x19, 0x72, 0x4e, 0x46, + 0xd7, 0x78, 0xf8, 0x86, 0x14, 0xbf, 0xf6, 0x5f, 0x50, 0x33, 0x9c, 0xfc, 0x42, 0x46, 0x8d, 0x1f, + 0x78, 0xd6, 0x57, 0xdd, 0x17, 0xb5, 0x53, 0xd6, 0xb9, 0x5e, 0x63, 0x3a, 0xd0, 0x69, 0xf6, 0x7b, + 0x59, 0x38, 0xdd, 0x83, 0x92, 0x1c, 0x24, 0x27, 0x11, 0x3f, 0xdd, 0x5e, 0xef, 0x5f, 0xe1, 0xd3, + 0x98, 0x4a, 0xe4, 0xf3, 0x3c, 0x82, 0xb0, 0x8e, 0x6f, 0x2b, 0x89, 0x73, 0x1d, 0x7f, 0x36, 0x2f, + 0x82, 0x26, 0x43, 0x07, 0x39, 0x94, 0xbc, 0x07, 0xc3, 0x18, 0x3c, 0x92, 0x48, 0x21, 0xc2, 0x30, + 0x10, 0xae, 0xe4, 0x5b, 0x61, 0x3f, 0xb5, 0x7c, 0x2b, 0xf8, 0x8e, 0xf9, 0xe7, 0x20, 0x5b, 0xd8, + 0xaa, 0x89, 0x71, 0x99, 0x52, 0xc9, 0xb7, 0x6a, 0x71, 0x72, 0x4a, 0x47, 0xcb, 0x22, 0xc9, 0x28, + 0x18, 0xe1, 0x9d, 0x62, 0x55, 0x8c, 0x8a, 0x4a, 0x78, 0xa7, 0x58, 0x8d, 0x09, 0x77, 0xeb, 0x5a, + 0x48, 0xf6, 0x9d, 0x62, 0xf5, 0x93, 0x9b, 0xf6, 0x3f, 0x95, 0xe1, 0x61, 0x8f, 0xfc, 0xc3, 0xde, + 0x83, 0x09, 0x2d, 0x83, 0x99, 0x11, 0xeb, 0x63, 0x51, 0xf6, 0xb5, 0x84, 0x9f, 0x84, 0x46, 0x20, + 0xd3, 0xbc, 0x46, 0x2f, 0xa2, 0xab, 0x6e, 0x0e, 0xfa, 0x2b, 0xea, 0xc9, 0x34, 0xaf, 0x11, 0x09, + 0xb9, 0x01, 0xb9, 0x75, 0xda, 0x72, 0x5a, 0x61, 0x64, 0x68, 0x43, 0xb7, 0xbc, 0x10, 0x61, 0xba, + 0xd6, 0x10, 0x21, 0xe2, 0xfb, 0xf5, 0xca, 0x7b, 0xee, 0xd1, 0x5e, 0xcc, 0xdd, 0x4e, 0x95, 0x12, + 0x9d, 0x41, 0x82, 0xc8, 0xfc, 0x05, 0x03, 0x46, 0xc5, 0x40, 0x2a, 0x8f, 0x08, 0x1b, 0x03, 0x3c, + 0x22, 0x7c, 0x13, 0xc6, 0x44, 0x04, 0x8f, 0xfe, 0xf4, 0xbf, 0x08, 0xfa, 0x49, 0x3c, 0xfd, 0x1f, + 0xa1, 0x0e, 0xea, 0xea, 0x6e, 0xfe, 0x75, 0xd1, 0xb2, 0x3b, 0xc5, 0x2a, 0x59, 0x80, 0x9c, 0x7c, + 0x8b, 0x5d, 0xb4, 0x0d, 0xc5, 0x8e, 0x7c, 0xb4, 0x5d, 0xed, 0x20, 0x89, 0xc7, 0xda, 0x17, 0xbd, + 0xfb, 0xae, 0xb6, 0x2f, 0x7e, 0x23, 0x5e, 0x6d, 0x5f, 0x84, 0x3a, 0x70, 0xfb, 0x68, 0x8a, 0x90, + 0xd8, 0xbc, 0xb1, 0xec, 0x06, 0x21, 0xb9, 0xab, 0x86, 0x10, 0x88, 0x22, 0x29, 0x29, 0xce, 0xf6, + 0x92, 0x14, 0x9b, 0x37, 0xac, 0x14, 0x2a, 0xbc, 0xaf, 0x89, 0xc1, 0x35, 0xea, 0x3f, 0x78, 0x86, + 0xa5, 0x74, 0xfa, 0x7d, 0x4d, 0xf2, 0xf3, 0x06, 0x12, 0xd2, 0xff, 0x2c, 0x03, 0xa7, 0xd2, 0x09, + 0xd5, 0x6f, 0x31, 0xfa, 0x7c, 0xcb, 0x25, 0xc8, 0x2d, 0x79, 0x41, 0xa8, 0xb8, 0x46, 0xa1, 0x59, + 0x79, 0x4f, 0xc0, 0xac, 0xa8, 0x94, 0x9d, 0xb9, 0xd9, 0xdf, 0xd1, 0xf2, 0x44, 0x7e, 0x18, 0xec, + 0xc7, 0xce, 0xdc, 0xbc, 0x88, 0xdc, 0x81, 0x9c, 0x25, 0x5c, 0xd8, 0x13, 0x5d, 0x23, 0xc1, 0x91, + 0x36, 0x45, 0x7c, 0x01, 0xd1, 0x12, 0xc9, 0x09, 0x18, 0x29, 0xc0, 0xa8, 0x18, 0xfd, 0xc4, 0x95, + 0x64, 0xca, 0x94, 0xd1, 0x73, 0x3b, 0x4a, 0x3a, 0x26, 0x51, 0xf0, 0x72, 0xa9, 0x52, 0x92, 0xde, + 0xe8, 0x28, 0x51, 0xf8, 0xe5, 0x93, 0x9e, 0x4d, 0x32, 0x42, 0x34, 0x7f, 0x3c, 0x03, 0xb0, 0x45, + 0xb7, 0x9f, 0xed, 0x67, 0x51, 0x3e, 0xa7, 0xcd, 0x30, 0xc5, 0xf3, 0x62, 0xf0, 0x57, 0x51, 0xd6, + 0xd0, 0x03, 0x62, 0xf0, 0x37, 0x51, 0xe6, 0x61, 0x98, 0x5b, 0x3b, 0x95, 0x43, 0x22, 0x37, 0x73, + 0x72, 0xb8, 0xb9, 0x0d, 0xb3, 0x77, 0x68, 0x18, 0x9b, 0xb7, 0xe4, 0x95, 0x56, 0x7f, 0xb6, 0xaf, + 0xc3, 0x98, 0xc0, 0xd7, 0xdf, 0xd5, 0x97, 0xf1, 0xb3, 0x68, 0x8b, 0x91, 0x08, 0x4c, 0x1a, 0x95, + 0x68, 0x93, 0x86, 0xf4, 0x93, 0xad, 0xa6, 0x06, 0x84, 0x7f, 0x0a, 0x7e, 0xd9, 0x60, 0x35, 0x1c, + 0xd9, 0x3f, 0x9b, 0x70, 0x32, 0x6a, 0xfb, 0xd3, 0xe4, 0x7b, 0x8d, 0x1d, 0x29, 0x45, 0x5a, 0xc4, + 0x98, 0x63, 0x1f, 0x9f, 0x86, 0x47, 0x70, 0x56, 0x12, 0x6c, 0xb9, 0x91, 0x0b, 0xd9, 0x40, 0xb4, + 0xe4, 0x6d, 0x18, 0x57, 0x68, 0x44, 0xe2, 0x59, 0x34, 0x7f, 0x3e, 0x74, 0xc3, 0x3d, 0x3b, 0xe0, + 0x70, 0xd5, 0xfc, 0xa9, 0xa0, 0x9b, 0x1f, 0xc2, 0xf3, 0x91, 0xc3, 0x7d, 0x4a, 0xd5, 0x09, 0xe6, + 0xc6, 0xf1, 0x98, 0xaf, 0xc6, 0x9f, 0x55, 0x69, 0x45, 0x31, 0x67, 0x92, 0x37, 0x51, 0x3f, 0x4b, + 0x7c, 0xcc, 0x0b, 0x5d, 0x51, 0x6c, 0x4a, 0xb0, 0x9a, 0xf9, 0x96, 0xd2, 0xd8, 0x14, 0x86, 0x1a, + 0xb1, 0x91, 0x24, 0xfe, 0xf1, 0x0c, 0x4c, 0xaf, 0x55, 0x4a, 0xc5, 0xc8, 0xab, 0xe5, 0x53, 0xf6, + 0x66, 0x8b, 0xf6, 0x6d, 0xbd, 0xe5, 0x8d, 0xb9, 0x01, 0x27, 0x12, 0xdd, 0x80, 0xaa, 0xc3, 0xbb, + 0xdc, 0x31, 0x3e, 0x02, 0x4b, 0xb5, 0xe1, 0x54, 0x1a, 0xfb, 0xcd, 0x1b, 0x56, 0x02, 0xdb, 0xfc, + 0x3b, 0xb9, 0x04, 0x5f, 0x21, 0xc2, 0x5e, 0x87, 0xb1, 0x4a, 0x10, 0x74, 0xa8, 0xbf, 0x61, 0x2d, + 0xab, 0xa6, 0x02, 0x17, 0x81, 0x76, 0xc7, 0x6f, 0x5a, 0x31, 0x02, 0xb9, 0x0c, 0x39, 0x91, 0x8a, + 0x4f, 0xca, 0x04, 0xb4, 0xda, 0x46, 0x99, 0xfc, 0xac, 0xa8, 0x98, 0xbc, 0x09, 0x13, 0xfc, 0x6f, + 0x3e, 0xdb, 0x44, 0x87, 0xa3, 0x71, 0x50, 0xa0, 0xf3, 0xd9, 0x69, 0x69, 0x68, 0xe4, 0x0a, 0x64, + 0x0b, 0x45, 0x4b, 0x7d, 0x4e, 0xdb, 0xa9, 0xfb, 0xfc, 0x59, 0x7d, 0xfd, 0x10, 0x51, 0xb4, 0x98, + 0xf6, 0x27, 0x4c, 0x49, 0xbe, 0xb0, 0x64, 0xe3, 0x0c, 0x90, 0xd6, 0xa6, 0xc4, 0x66, 0x86, 0x30, + 0x72, 0x0d, 0x46, 0x4b, 0x6e, 0xd0, 0x6e, 0x3a, 0x07, 0xc2, 0x8e, 0xcd, 0x33, 0xb9, 0x73, 0x90, + 0x3a, 0x67, 0x04, 0x16, 0xb9, 0x0c, 0xc3, 0x68, 0x64, 0x15, 0xb6, 0x6c, 0x9e, 0x8d, 0x9c, 0x01, + 0xb4, 0x6c, 0xe4, 0x0c, 0x80, 0x99, 0x5e, 0x79, 0xc2, 0xba, 0x31, 0x25, 0xd3, 0x6b, 0x32, 0x51, + 0x9d, 0xc0, 0xe9, 0x8e, 0xa4, 0x82, 0xa7, 0x19, 0x49, 0xb5, 0x0d, 0xa7, 0xef, 0xa0, 0xf5, 0x46, + 0x0f, 0xaa, 0xdf, 0xb0, 0x2a, 0xc2, 0x1e, 0x8e, 0x37, 0x3e, 0xdc, 0xc0, 0x93, 0x8c, 0xcb, 0xb7, + 0x3b, 0xbe, 0xfa, 0x30, 0x49, 0x2f, 0x46, 0xe4, 0x4b, 0x30, 0x9b, 0x56, 0x24, 0xac, 0xe6, 0x18, + 0x3e, 0x9e, 0x5e, 0x81, 0x1a, 0x3e, 0x9e, 0xc6, 0x81, 0x2c, 0x43, 0x9e, 0xc3, 0x0b, 0x8d, 0x7d, + 0xb7, 0xc5, 0x2d, 0xff, 0x93, 0xf1, 0xa3, 0xa2, 0x82, 0xab, 0xc3, 0x0a, 0xf9, 0x0d, 0x80, 0x16, + 0x22, 0x91, 0xa0, 0x24, 0x3f, 0x6b, 0xb0, 0xd3, 0x1c, 0x4f, 0xef, 0xb6, 0x61, 0x2d, 0x07, 0x22, + 0xf5, 0xc8, 0xa9, 0x38, 0xfa, 0xa1, 0x16, 0xfa, 0x6e, 0x6b, 0x57, 0x84, 0x3f, 0xac, 0x8b, 0xf0, + 0x87, 0xb7, 0x3f, 0x56, 0xf8, 0x03, 0x67, 0x15, 0x3c, 0x3e, 0x9c, 0x9f, 0xf0, 0x45, 0x9d, 0xb8, + 0x8a, 0xb4, 0x16, 0xe0, 0xcb, 0x84, 0xcd, 0xa6, 0xf7, 0x70, 0xa3, 0xf5, 0x80, 0xfa, 0xee, 0x8e, + 0x4b, 0x1b, 0xfc, 0x23, 0xa7, 0x51, 0x82, 0xf3, 0x97, 0x09, 0xf1, 0xa5, 0xca, 0x4e, 0x84, 0xd0, + 0xf5, 0xa1, 0xa9, 0x1c, 0xd8, 0xc1, 0x53, 0x3a, 0xec, 0xf3, 0x38, 0xb6, 0x7c, 0x7c, 0xf0, 0x94, + 0xde, 0xfd, 0x36, 0x4e, 0x23, 0x75, 0xf2, 0x68, 0x24, 0xc2, 0x3b, 0xf8, 0xaf, 0x8c, 0x71, 0x89, + 0x5c, 0xe8, 0x84, 0x7b, 0x52, 0x86, 0x2f, 0xa4, 0x05, 0x1d, 0x70, 0x97, 0x27, 0x25, 0xe8, 0x40, + 0x0f, 0x35, 0x90, 0xa6, 0xf4, 0x4c, 0xaa, 0x29, 0xfd, 0x75, 0x18, 0xc3, 0x77, 0x98, 0x23, 0xef, + 0xee, 0x9c, 0xb0, 0x55, 0x32, 0x20, 0xcf, 0x63, 0x16, 0x23, 0x90, 0x6b, 0x00, 0x98, 0xf9, 0x9f, + 0x6f, 0xf0, 0x4a, 0x2e, 0x52, 0x7c, 0x20, 0x40, 0xdc, 0x22, 0x2b, 0x28, 0xc8, 0xbe, 0x66, 0xdd, + 0x56, 0xaf, 0x9d, 0x39, 0xfb, 0xc0, 0xdf, 0x11, 0xe8, 0x31, 0x02, 0xfb, 0x3c, 0x65, 0x98, 0x84, + 0x50, 0xc9, 0x77, 0x8d, 0xa5, 0x8a, 0x84, 0x1e, 0x5d, 0xd2, 0x95, 0x15, 0x65, 0xca, 0x84, 0xf0, + 0xe8, 0x8a, 0xdc, 0x5e, 0xad, 0x18, 0x81, 0x7c, 0x0e, 0x46, 0x8b, 0xd4, 0x0f, 0xd7, 0xd7, 0x97, + 0xf1, 0x66, 0x98, 0x27, 0xec, 0xcc, 0x61, 0x72, 0xc5, 0x30, 0x6c, 0x7e, 0xff, 0x70, 0x7e, 0x32, + 0x74, 0xf7, 0xe9, 0xd5, 0xe8, 0x1a, 0x57, 0x62, 0x93, 0x45, 0xc8, 0xf3, 0x3b, 0xc6, 0x58, 0x91, + 0x43, 0x31, 0x93, 0xe3, 0x42, 0x4f, 0x5c, 0x48, 0x3e, 0xa4, 0xdb, 0x51, 0x6a, 0xc9, 0x2e, 0x7c, + 0x52, 0x96, 0x19, 0x59, 0xd5, 0x8f, 0x84, 0xd8, 0xb2, 0x20, 0x04, 0xb3, 0xf6, 0xad, 0xdd, 0x14, + 0xa4, 0x00, 0x93, 0x45, 0x6f, 0xbf, 0xed, 0x84, 0x2e, 0xa6, 0xe4, 0x3f, 0x10, 0x12, 0x05, 0xad, + 0x23, 0x75, 0xb5, 0x40, 0x7f, 0x56, 0x59, 0x29, 0x20, 0xb7, 0x61, 0xca, 0xf2, 0x3a, 0x6c, 0x90, + 0xe4, 0x91, 0x86, 0x0b, 0x0d, 0x8c, 0xde, 0xf4, 0x59, 0x09, 0x93, 0x71, 0xe2, 0xfc, 0xa2, 0xa5, + 0xe4, 0xd1, 0xa8, 0xc8, 0x6a, 0x8a, 0x6d, 0x59, 0x95, 0x14, 0x6a, 0x82, 0xc9, 0x2e, 0x66, 0x29, + 0x66, 0xe9, 0x1b, 0x30, 0x5e, 0xab, 0xad, 0xad, 0xd3, 0x20, 0xbc, 0xdd, 0xf4, 0x1e, 0xa2, 0xa0, + 0xc8, 0x89, 0xbc, 0xd6, 0x81, 0x67, 0x87, 0x34, 0x08, 0xed, 0x9d, 0xa6, 0xf7, 0xd0, 0x52, 0xb1, + 0xc8, 0xd7, 0x94, 0x77, 0xa6, 0x71, 0xe7, 0x9f, 0x3e, 0x72, 0xe7, 0x4f, 0xbc, 0x41, 0xcd, 0xf6, + 0xff, 0xd4, 0x37, 0xa8, 0x19, 0x3a, 0x86, 0x2a, 0xb0, 0xc3, 0x58, 0xa1, 0xd1, 0xf0, 0x69, 0x10, + 0x88, 0x15, 0xad, 0xbc, 0xa2, 0xef, 0xf0, 0x02, 0x2d, 0x54, 0x41, 0x21, 0x20, 0xdf, 0x32, 0xe0, + 0xa4, 0xea, 0xed, 0x8c, 0x8b, 0x65, 0x9f, 0xb6, 0x42, 0xf1, 0x32, 0xc9, 0x1b, 0x57, 0xa5, 0x44, + 0xbb, 0xaa, 0xa0, 0x5d, 0x7d, 0x70, 0xfd, 0xaa, 0xf2, 0xf8, 0x69, 0x4d, 0x12, 0x89, 0xfc, 0x1d, + 0x69, 0xfc, 0x54, 0xe9, 0xe4, 0xa4, 0x90, 0x92, 0x22, 0xdb, 0xf4, 0xd8, 0x7c, 0x42, 0xdf, 0x86, + 0x4a, 0x15, 0x53, 0x14, 0x09, 0xe3, 0x94, 0x98, 0x7d, 0xdc, 0x0b, 0xc2, 0x6d, 0xeb, 0x7b, 0x9b, + 0x42, 0x83, 0xaa, 0x62, 0xad, 0xb0, 0xb2, 0x1c, 0xeb, 0x3b, 0x9f, 0x2e, 0x17, 0x63, 0xed, 0xdb, + 0xfa, 0xb8, 0x18, 0x6f, 0xc0, 0x89, 0x44, 0x37, 0x48, 0x55, 0x51, 0x03, 0x27, 0x55, 0xc5, 0x04, + 0x8d, 0x95, 0xc0, 0x36, 0x7f, 0x7d, 0x34, 0xc1, 0x57, 0xb8, 0x15, 0x99, 0x30, 0xc2, 0x35, 0x41, + 0xf5, 0xa5, 0x3d, 0xae, 0x27, 0x5a, 0xa2, 0x84, 0x9c, 0x81, 0x6c, 0xad, 0xb6, 0xa6, 0xbe, 0x03, + 0x1a, 0x04, 0x9e, 0xc5, 0x60, 0x6c, 0x84, 0xd0, 0x63, 0x48, 0xc9, 0x15, 0xc8, 0xc4, 0x9e, 0x85, + 0x50, 0xd6, 0xdf, 0x52, 0x2f, 0x1b, 0x8a, 0xfb, 0x5b, 0xe8, 0x65, 0xb1, 0x36, 0x56, 0x84, 0xb9, + 0x42, 0x10, 0x50, 0x1f, 0x1f, 0x1d, 0xe6, 0x8e, 0x28, 0xbe, 0xd0, 0x1d, 0x84, 0x74, 0xc7, 0x4a, + 0x9d, 0x7a, 0x60, 0xf5, 0x44, 0x24, 0x97, 0x20, 0x57, 0xe8, 0x34, 0x5c, 0xda, 0xaa, 0x6b, 0x49, + 0x24, 0x1c, 0x01, 0xb3, 0xa2, 0x52, 0xf2, 0x3e, 0x9c, 0x14, 0x44, 0x52, 0x81, 0x14, 0x3d, 0x30, + 0x1a, 0x2f, 0x41, 0xa9, 0xdb, 0xc4, 0x97, 0x9c, 0xbc, 0x4b, 0xd2, 0x29, 0x49, 0x01, 0xf2, 0x65, + 0x74, 0xa9, 0x2f, 0x51, 0x6e, 0x6f, 0xf5, 0x7c, 0xf1, 0x5e, 0x3a, 0x6a, 0xa2, 0xdc, 0xdd, 0xde, + 0x6e, 0x44, 0x85, 0x56, 0x17, 0x3a, 0xb9, 0x07, 0x27, 0x92, 0x30, 0x26, 0xc8, 0xb9, 0xd2, 0x89, + 0xc9, 0xaa, 0xba, 0xb8, 0xa0, 0x28, 0x4f, 0xa3, 0x22, 0xdb, 0x30, 0x13, 0x5f, 0xf2, 0xeb, 0xaa, + 0xa8, 0xf4, 0x49, 0x8b, 0xca, 0xa5, 0x3a, 0xfa, 0xbc, 0x98, 0x8c, 0x27, 0x62, 0x87, 0x81, 0x48, + 0x25, 0xb5, 0xba, 0xd9, 0x91, 0x06, 0x4c, 0xd5, 0xdc, 0xdd, 0x96, 0xdb, 0xda, 0xbd, 0x47, 0x0f, + 0xaa, 0x8e, 0xeb, 0x0b, 0xef, 0x20, 0xe9, 0xfb, 0x57, 0x08, 0x0e, 0xf6, 0xf7, 0x69, 0xe8, 0xe3, + 0x16, 0xc9, 0xca, 0x31, 0xa2, 0xce, 0x60, 0x7b, 0x41, 0xc0, 0xe9, 0x30, 0x7a, 0xa4, 0xed, 0xb8, + 0xda, 0x5e, 0xa0, 0xf3, 0xd4, 0x8e, 0x03, 0x13, 0x03, 0x1e, 0x07, 0x9a, 0x30, 0x53, 0x6e, 0xd5, + 0xfd, 0x03, 0x34, 0x7b, 0xcb, 0xc6, 0x4d, 0x1e, 0xd1, 0xb8, 0x97, 0x45, 0xe3, 0x5e, 0x70, 0xe4, + 0x0c, 0x4b, 0x6b, 0x5e, 0x37, 0x63, 0x52, 0x13, 0x8f, 0xc3, 0x57, 0x4a, 0xd5, 0x4a, 0xcb, 0x0d, + 0x5d, 0x7c, 0xf3, 0x8e, 0xef, 0x31, 0xaf, 0x08, 0x9e, 0x2f, 0x72, 0xb5, 0xcf, 0x6d, 0xb4, 0x6d, + 0x57, 0xa2, 0x74, 0xbd, 0xfe, 0xae, 0xd2, 0x9b, 0xff, 0x59, 0x8e, 0x4b, 0x43, 0x55, 0x4d, 0xeb, + 0xe5, 0xef, 0x94, 0x50, 0xdf, 0x32, 0xc7, 0x51, 0xdf, 0xb2, 0x47, 0xab, 0x6f, 0x43, 0x47, 0xa9, + 0x6f, 0x09, 0xfd, 0x6a, 0xf8, 0xd8, 0xfa, 0xd5, 0xc8, 0x31, 0xf4, 0xab, 0xd1, 0x63, 0xe9, 0x57, + 0x9a, 0xa2, 0x98, 0x3b, 0x4a, 0x51, 0xfc, 0xff, 0xb5, 0xb1, 0x67, 0x55, 0x1b, 0x4b, 0xdb, 0x5c, + 0x8f, 0xa5, 0x8d, 0xf5, 0x56, 0xa6, 0xf2, 0x7f, 0xd6, 0xca, 0xd4, 0xcc, 0xc7, 0x50, 0xa6, 0x7e, + 0x10, 0xf2, 0x49, 0xf9, 0x7e, 0x74, 0x9a, 0xa4, 0xa7, 0x96, 0x83, 0x84, 0xed, 0x3e, 0x49, 0xf9, + 0xca, 0x0e, 0x79, 0x55, 0xdf, 0x7d, 0xe0, 0x84, 0x34, 0x7e, 0x6b, 0x1a, 0x0f, 0x79, 0x6d, 0x0e, + 0xc5, 0x35, 0xaf, 0xa0, 0x44, 0xaa, 0x45, 0x26, 0x4d, 0xb5, 0x30, 0x7f, 0x22, 0x03, 0x33, 0x3c, + 0x6d, 0xc2, 0xb3, 0x6f, 0x5b, 0x7c, 0x57, 0x53, 0x18, 0xa5, 0x0b, 0x51, 0xe2, 0xeb, 0xfa, 0x58, + 0x17, 0xbf, 0x0a, 0x27, 0xbb, 0xba, 0x02, 0x95, 0xc6, 0x92, 0x4c, 0x58, 0xd1, 0xa5, 0x36, 0xce, + 0xa5, 0x57, 0xb2, 0x79, 0xc3, 0xea, 0xa2, 0x30, 0xff, 0x4d, 0xb6, 0x8b, 0xbf, 0xb0, 0x33, 0xaa, + 0x96, 0x43, 0xe3, 0x78, 0x96, 0xc3, 0xcc, 0x60, 0x96, 0xc3, 0xc4, 0xde, 0x92, 0x1d, 0x64, 0x6f, + 0x79, 0x1f, 0x26, 0xd7, 0xa9, 0xb3, 0x1f, 0xac, 0x7b, 0x22, 0x17, 0x2b, 0x77, 0x21, 0x94, 0xf9, + 0x28, 0x58, 0x99, 0xd4, 0x79, 0x22, 0x57, 0x88, 0x90, 0x11, 0x30, 0x79, 0xc8, 0x93, 0xb3, 0x5a, + 0x3a, 0x07, 0x55, 0x91, 0x1d, 0xee, 0xa3, 0xc8, 0xd6, 0x60, 0x42, 0xd0, 0xc5, 0xb9, 0xa1, 0x62, + 0x8d, 0x8b, 0x15, 0x21, 0x5c, 0xd6, 0x1e, 0xbd, 0x59, 0x13, 0xd5, 0xce, 0x95, 0x2d, 0x8d, 0x09, + 0xeb, 0x82, 0x72, 0xab, 0xd1, 0xf6, 0xdc, 0x16, 0x76, 0xc1, 0x68, 0xdc, 0x05, 0x54, 0x80, 0x79, + 0x17, 0x28, 0x48, 0xe4, 0x6d, 0x98, 0x2a, 0x54, 0x2b, 0x2a, 0x59, 0x2e, 0x36, 0x5e, 0x3a, 0x6d, + 0xd7, 0xd6, 0x48, 0x13, 0xb8, 0xe6, 0x8f, 0x8c, 0xc9, 0xb5, 0xf5, 0xc9, 0x5a, 0x89, 0x74, 0xbb, + 0x4f, 0xf6, 0x98, 0x76, 0x9f, 0xa1, 0xa3, 0xb6, 0x73, 0x4d, 0xc7, 0x18, 0x3e, 0x86, 0x8e, 0x31, + 0xf2, 0xc4, 0x36, 0x9c, 0xd1, 0x63, 0x6a, 0x0d, 0x89, 0x69, 0x9e, 0x1b, 0x64, 0x9a, 0xa7, 0x6a, + 0x1a, 0x63, 0x4f, 0xae, 0x69, 0xc0, 0xb1, 0x35, 0x0d, 0xe5, 0x59, 0xe6, 0xf1, 0x81, 0x9e, 0x65, + 0x36, 0x06, 0x78, 0x96, 0xf9, 0x53, 0xa5, 0xbe, 0x7c, 0x3d, 0x5d, 0x7d, 0xe9, 0x2f, 0xea, 0xff, + 0xbf, 0xac, 0xc0, 0xf8, 0xd8, 0xcb, 0x5b, 0x8e, 0xcf, 0xce, 0x82, 0x01, 0xb9, 0x06, 0xa3, 0x32, + 0xb3, 0x8c, 0x11, 0x1f, 0xab, 0xbb, 0x53, 0xca, 0x48, 0x2c, 0x76, 0x6c, 0x94, 0xc4, 0x22, 0xb6, + 0x9a, 0x27, 0xd1, 0x10, 0x30, 0x2d, 0x89, 0x86, 0x80, 0x99, 0x7f, 0x6b, 0x48, 0xae, 0x64, 0x76, + 0xac, 0x11, 0xef, 0xf3, 0x2d, 0x2a, 0x23, 0xa7, 0xa8, 0x4f, 0x89, 0xb1, 0x49, 0xf8, 0x0c, 0xe9, + 0x24, 0x1f, 0x27, 0x2d, 0x8f, 0xf2, 0x64, 0x42, 0x76, 0x80, 0x27, 0x13, 0x6e, 0x69, 0xef, 0x0d, + 0x0c, 0xc5, 0x09, 0xae, 0xd9, 0xec, 0xee, 0xff, 0xd2, 0xc0, 0x4d, 0xf5, 0x61, 0x80, 0xe1, 0x38, + 0x0c, 0x1d, 0x29, 0xfb, 0x3c, 0x09, 0x10, 0xe9, 0x83, 0x23, 0xc7, 0x49, 0x51, 0x35, 0xfa, 0x67, + 0x9a, 0xa2, 0xaa, 0x0c, 0xa0, 0x3c, 0xda, 0xc6, 0x4d, 0xf5, 0xaf, 0xb0, 0x6e, 0x3a, 0xfa, 0xc1, + 0x36, 0x85, 0xd0, 0xfc, 0xc7, 0x04, 0x66, 0x6a, 0xb5, 0xb5, 0x92, 0xeb, 0xec, 0xb6, 0xbc, 0x20, + 0x74, 0xeb, 0x95, 0xd6, 0x8e, 0xc7, 0x94, 0xa1, 0x48, 0x2a, 0x28, 0xe9, 0x92, 0x62, 0x89, 0x10, + 0x15, 0x33, 0x65, 0xbb, 0xec, 0xfb, 0x9e, 0xaf, 0x2a, 0xdb, 0x94, 0x01, 0x2c, 0x0e, 0x67, 0xfa, + 0x46, 0xad, 0xc3, 0x5f, 0xdf, 0xe2, 0xb7, 0x27, 0xa8, 0x6f, 0x04, 0x1c, 0x64, 0xc9, 0x32, 0x42, + 0xbb, 0x27, 0xac, 0xd0, 0x3f, 0x4f, 0x6b, 0x89, 0xae, 0xe2, 0x62, 0x2e, 0xf3, 0xc4, 0x9e, 0x84, + 0x41, 0x28, 0x6d, 0x84, 0xab, 0x57, 0x6d, 0x5d, 0x6b, 0xe0, 0x00, 0x4e, 0x6a, 0xc1, 0x14, 0x83, + 0x5a, 0x94, 0xae, 0x08, 0xfd, 0xc6, 0xc4, 0x98, 0xb0, 0x14, 0xb3, 0x92, 0x9a, 0xa0, 0x37, 0xb5, + 0x06, 0xf2, 0x13, 0x06, 0xbc, 0x98, 0x5a, 0x12, 0xad, 0xee, 0x71, 0x2d, 0xd9, 0x98, 0x22, 0x34, + 0x78, 0x2a, 0xe2, 0x5e, 0x55, 0xdb, 0x29, 0xa2, 0xa0, 0x7f, 0x4d, 0xe4, 0xb7, 0x0c, 0x38, 0xad, + 0x61, 0x44, 0x32, 0x2f, 0xc0, 0xbd, 0xa9, 0xe7, 0xbc, 0xfe, 0xe8, 0xe9, 0xcc, 0xeb, 0x0b, 0xfa, + 0xb7, 0xc4, 0x22, 0x59, 0xfd, 0x86, 0x5e, 0x2d, 0x24, 0x0f, 0x60, 0x06, 0x8b, 0xa4, 0x75, 0x8b, + 0xcd, 0x59, 0x61, 0x14, 0x9b, 0x8d, 0x9b, 0xcd, 0x03, 0x84, 0xf0, 0x39, 0x99, 0x85, 0xef, 0x1d, + 0xce, 0x4f, 0x6a, 0xe8, 0x98, 0x31, 0x15, 0xdb, 0x10, 0x99, 0xc8, 0xdc, 0xd6, 0x8e, 0xa7, 0xbd, + 0xbe, 0x9f, 0xac, 0x82, 0xfc, 0x17, 0x06, 0xcc, 0x31, 0x28, 0xff, 0x8c, 0xdb, 0xbe, 0xb7, 0x1f, + 0x95, 0xcb, 0x3b, 0xdb, 0x1e, 0xdd, 0xd6, 0x7c, 0x3a, 0xdd, 0xf6, 0x0a, 0x36, 0x99, 0xcb, 0x04, + 0x7b, 0xc7, 0xf7, 0xf6, 0xe3, 0xe6, 0x6b, 0x8f, 0x92, 0xf5, 0x6a, 0x24, 0xf9, 0x51, 0x03, 0xce, + 0x68, 0x06, 0x06, 0x35, 0xbb, 0xa7, 0x08, 0xc3, 0x92, 0x17, 0xfc, 0x6a, 0xd1, 0xe2, 0x55, 0x31, + 0xff, 0x2f, 0x62, 0x0b, 0xe2, 0xdd, 0x02, 0xdb, 0x62, 0xef, 0x73, 0x2c, 0xa5, 0x09, 0xbd, 0x6b, + 0x21, 0x2e, 0xcc, 0xe0, 0x8d, 0x93, 0xe6, 0x5b, 0x30, 0xdb, 0xdb, 0xb7, 0x20, 0x4a, 0xfb, 0x8f, + 0x19, 0x14, 0x7b, 0x3b, 0x18, 0x74, 0x73, 0x25, 0x3f, 0x04, 0x67, 0xba, 0x80, 0xd1, 0x6a, 0x3b, + 0xd9, 0x73, 0xb5, 0xbd, 0xf6, 0xf8, 0x70, 0xfe, 0xd5, 0xb4, 0xda, 0xd2, 0x56, 0x5a, 0xef, 0x1a, + 0x88, 0x03, 0x10, 0x17, 0x8a, 0xb7, 0xcd, 0xd2, 0x27, 0xe8, 0x6b, 0x62, 0x7e, 0x28, 0xf8, 0x4c, + 0x96, 0x2b, 0x6d, 0x50, 0xb7, 0xbc, 0x18, 0x89, 0x50, 0x98, 0x50, 0xb2, 0x47, 0x1e, 0xe0, 0x23, + 0x67, 0x3d, 0x2b, 0xf9, 0xde, 0xe1, 0xbc, 0x86, 0xcd, 0xf4, 0x62, 0x35, 0x2d, 0xa5, 0xaa, 0x17, + 0x6b, 0x88, 0xe4, 0xef, 0x19, 0x30, 0xcb, 0x00, 0xf1, 0xa4, 0x12, 0x1f, 0x35, 0xd7, 0x6f, 0xd6, + 0xef, 0x3d, 0x9d, 0x59, 0xff, 0x12, 0xb6, 0x51, 0x9d, 0xf5, 0x5d, 0x5d, 0x92, 0xda, 0x38, 0x9c, + 0xed, 0xda, 0xe5, 0xa6, 0x36, 0xdb, 0xcf, 0x0c, 0x30, 0xdb, 0xf9, 0x00, 0x1c, 0x3d, 0xdb, 0x7b, + 0xd6, 0x42, 0xd6, 0x61, 0x42, 0xa8, 0xc4, 0xbc, 0xc3, 0xce, 0x69, 0xc9, 0xea, 0xd4, 0x22, 0x7e, + 0x4e, 0x11, 0xc9, 0x35, 0xbb, 0xbe, 0x50, 0xe3, 0x42, 0x5a, 0x70, 0x82, 0xff, 0xd6, 0xad, 0x03, + 0xf3, 0x3d, 0xad, 0x03, 0x97, 0xc4, 0x17, 0x9d, 0x17, 0xfc, 0x13, 0x46, 0x02, 0xf5, 0x5d, 0x83, + 0x14, 0xc6, 0xa4, 0x0d, 0x44, 0x03, 0xf3, 0x45, 0x7b, 0xbe, 0xbf, 0x4d, 0xe0, 0x55, 0x51, 0xe7, + 0x7c, 0xb2, 0xce, 0xe4, 0xca, 0x4d, 0xe1, 0x4d, 0x1c, 0x98, 0x16, 0x50, 0x76, 0x00, 0x46, 0x09, + 0xff, 0x92, 0x16, 0xb1, 0x9d, 0x28, 0xe5, 0x6f, 0x52, 0xc9, 0x9a, 0x30, 0xa2, 0x3e, 0x21, 0xd0, + 0x93, 0xfc, 0xc8, 0x1a, 0xcc, 0x14, 0xda, 0xed, 0xa6, 0x4b, 0x1b, 0xf8, 0x95, 0xfc, 0x85, 0x2c, + 0x33, 0xce, 0xa8, 0xed, 0xf0, 0x42, 0xa1, 0xe2, 0x27, 0x9f, 0xc7, 0xea, 0xa6, 0x35, 0xbf, 0x65, + 0x74, 0x35, 0x9a, 0x9d, 0xdc, 0xf1, 0x87, 0x12, 0xac, 0x89, 0x27, 0x77, 0xde, 0x44, 0xb4, 0x20, + 0xc4, 0x08, 0x4c, 0x59, 0x52, 0x13, 0x81, 0x64, 0xc5, 0xbb, 0xe3, 0x1c, 0x14, 0x1f, 0x28, 0xe7, + 0xa5, 0xcf, 0x57, 0x36, 0x56, 0xba, 0xd0, 0xe7, 0x4b, 0x78, 0x7a, 0x99, 0x3f, 0x9a, 0xd1, 0xa7, + 0x1d, 0xb9, 0xa4, 0xe8, 0xed, 0x4a, 0x2a, 0x12, 0xa9, 0xb7, 0x2b, 0xda, 0xfa, 0xdf, 0x34, 0xe0, + 0xc4, 0x9a, 0xbf, 0xeb, 0xb4, 0xdc, 0x6f, 0xf2, 0x94, 0x66, 0x1e, 0x8e, 0x4b, 0x14, 0xa7, 0xf2, + 0x89, 0x26, 0x59, 0xf7, 0x94, 0x8a, 0xd9, 0x4c, 0xc1, 0x29, 0x63, 0xa5, 0xb5, 0x07, 0xbd, 0x68, + 0xb1, 0x61, 0x4a, 0xae, 0x7b, 0x8e, 0xce, 0xe1, 0xe6, 0xcf, 0x64, 0x60, 0x5c, 0x59, 0x02, 0xe4, + 0xb3, 0x30, 0xa1, 0xf2, 0x51, 0xad, 0x3e, 0x6a, 0xb5, 0x96, 0x86, 0x85, 0x66, 0x1f, 0xea, 0xec, + 0x6b, 0x66, 0x1f, 0x36, 0xd1, 0x11, 0x7a, 0xcc, 0xa3, 0xcd, 0x7b, 0x29, 0x47, 0x9b, 0x63, 0x3d, + 0xa5, 0xf6, 0x76, 0xf7, 0x01, 0x67, 0xf0, 0x97, 0xcf, 0xcc, 0x9f, 0x33, 0x20, 0x9f, 0x5c, 0xa4, + 0x9f, 0x48, 0xaf, 0x1c, 0xc3, 0xbe, 0xfe, 0xd3, 0x19, 0xc8, 0xe3, 0x3b, 0x98, 0xb4, 0x21, 0x63, + 0x03, 0x9e, 0x55, 0x5f, 0x89, 0x77, 0x34, 0xd3, 0xf7, 0xf3, 0xd1, 0xbe, 0xa2, 0x7e, 0x5c, 0x9f, + 0x9c, 0x29, 0x43, 0xdf, 0xfd, 0xa5, 0xf9, 0xe7, 0xcc, 0x0f, 0x60, 0x36, 0xd9, 0x1d, 0x68, 0xfe, + 0x2e, 0xc0, 0xb4, 0x0e, 0x4f, 0x26, 0x9e, 0x4e, 0x52, 0x59, 0x49, 0x7c, 0xf3, 0xf7, 0x33, 0x49, + 0xde, 0xc2, 0x6f, 0x82, 0x09, 0x9d, 0x96, 0xb3, 0xdd, 0x8c, 0x72, 0xe3, 0x72, 0xa1, 0xc3, 0x41, + 0x96, 0x2c, 0x3b, 0x4e, 0x0a, 0xf2, 0xc8, 0xc3, 0x3d, 0x9b, 0xee, 0xe1, 0x4e, 0x6e, 0x26, 0x3c, + 0x86, 0x94, 0x70, 0xec, 0x87, 0x74, 0xdb, 0x8e, 0xbd, 0x86, 0x12, 0x8e, 0x42, 0x45, 0x98, 0xd5, + 0x72, 0xd6, 0x49, 0xfa, 0xe1, 0xd8, 0xe0, 0x1a, 0x62, 0x01, 0x27, 0x4e, 0x45, 0x26, 0x4b, 0x30, + 0xca, 0x9a, 0xb9, 0xe2, 0xb4, 0x85, 0x55, 0x5b, 0x7d, 0x13, 0x5e, 0x6e, 0x5e, 0x4a, 0xc8, 0x4b, + 0x93, 0xb2, 0x2d, 0x5f, 0x7b, 0x89, 0x90, 0x23, 0x9a, 0x7f, 0x6c, 0xb0, 0xf5, 0x5f, 0xbf, 0xff, + 0x29, 0x4b, 0x8e, 0xce, 0x3e, 0xa9, 0x8f, 0x5b, 0xcf, 0x1f, 0x64, 0x78, 0x7a, 0x63, 0x31, 0x7d, + 0x6e, 0xc1, 0xc8, 0xba, 0xe3, 0xef, 0xd2, 0x50, 0x24, 0xe2, 0x55, 0xb9, 0xf0, 0x82, 0x38, 0x58, + 0x3c, 0xc4, 0xdf, 0x96, 0x20, 0x50, 0x6d, 0x61, 0x99, 0x81, 0x6c, 0x61, 0x8a, 0x79, 0x36, 0xfb, + 0xd4, 0xcc, 0xb3, 0x5f, 0x8e, 0x32, 0x0b, 0x17, 0xc2, 0x01, 0x52, 0xa2, 0x9d, 0x4f, 0xa6, 0xd9, + 0xee, 0x4a, 0x5e, 0x17, 0xb3, 0x23, 0x37, 0xd5, 0xc4, 0xdd, 0x8a, 0xd3, 0xf8, 0x11, 0x29, 0xba, + 0xcd, 0x3f, 0xc8, 0xf2, 0x3e, 0x16, 0x1d, 0x75, 0x51, 0x0b, 0x28, 0xc1, 0x75, 0x92, 0x78, 0x95, + 0x99, 0x87, 0x96, 0x5c, 0x84, 0x21, 0x36, 0x37, 0x45, 0x6f, 0xf2, 0xf7, 0xbc, 0xbd, 0xa6, 0x16, + 0x03, 0xc8, 0xca, 0xd9, 0x5a, 0xc6, 0x3d, 0x49, 0x7d, 0x23, 0x00, 0xb7, 0x2d, 0x75, 0x2d, 0x23, + 0x06, 0xb9, 0x04, 0x43, 0xab, 0x5e, 0x43, 0xa6, 0xde, 0x9b, 0xc5, 0xb0, 0x42, 0xed, 0x59, 0xdd, + 0x39, 0xc3, 0x42, 0x0c, 0xf6, 0xad, 0x51, 0xb2, 0x5e, 0xf5, 0x5b, 0xf7, 0x77, 0x1c, 0x9b, 0x27, + 0x89, 0x55, 0xbf, 0x35, 0xce, 0xeb, 0x5b, 0x86, 0x29, 0xfd, 0xe1, 0x24, 0xe1, 0xf4, 0x84, 0x66, + 0xd6, 0xc4, 0xfb, 0x4b, 0xaa, 0x75, 0x5c, 0x27, 0x22, 0x8b, 0x30, 0xa9, 0xa5, 0xfc, 0x11, 0xd7, + 0x4b, 0x68, 0xde, 0xd4, 0x13, 0x06, 0xa9, 0xe6, 0x4d, 0x8d, 0x84, 0xed, 0xe7, 0xa2, 0xfd, 0xca, + 0x25, 0x53, 0x57, 0xdb, 0x05, 0x0e, 0xb9, 0x01, 0x39, 0x1e, 0xbf, 0x57, 0x29, 0xa9, 0xb7, 0x15, + 0x01, 0xc2, 0x12, 0xf1, 0xaf, 0x12, 0x51, 0x89, 0xd7, 0xfa, 0x0c, 0xe4, 0x85, 0x48, 0x8a, 0xde, + 0x84, 0xc0, 0x9b, 0xe2, 0x4a, 0xc9, 0x52, 0xc5, 0x48, 0xdd, 0x6d, 0xf8, 0x16, 0x42, 0xcd, 0xef, + 0x18, 0x70, 0x66, 0x95, 0x86, 0x0f, 0x3d, 0xff, 0xbe, 0x45, 0x83, 0xd0, 0x77, 0xf9, 0x13, 0x13, + 0xb8, 0x10, 0x3f, 0x4b, 0xde, 0x86, 0x61, 0xf4, 0xbe, 0x49, 0xec, 0x0c, 0xc9, 0x3a, 0x16, 0x27, + 0xc5, 0x04, 0x1e, 0x46, 0x57, 0x1e, 0x8b, 0x13, 0x91, 0x5b, 0x30, 0x54, 0xa2, 0xad, 0x83, 0xc4, + 0x5b, 0x03, 0x5d, 0xc4, 0x91, 0x40, 0x68, 0xd0, 0xd6, 0x81, 0x85, 0x24, 0xe6, 0xcf, 0x65, 0xe0, + 0x64, 0x4a, 0xb3, 0x36, 0x3f, 0xfb, 0x8c, 0x4a, 0xc5, 0x45, 0x4d, 0x2a, 0x9e, 0x17, 0xa4, 0x3d, + 0x3b, 0x3e, 0x55, 0x48, 0xfe, 0x35, 0x03, 0x4e, 0xeb, 0x13, 0x54, 0xb8, 0xdb, 0x6d, 0xde, 0x20, + 0x6f, 0xc1, 0xc8, 0x12, 0x75, 0x1a, 0x54, 0xa6, 0x2e, 0x8f, 0xdf, 0x24, 0xe7, 0xc1, 0x49, 0xbc, + 0x90, 0xb3, 0xfd, 0x7d, 0x2e, 0xc3, 0x9e, 0xb3, 0x04, 0x09, 0x29, 0x89, 0xc6, 0x71, 0x7d, 0xdc, + 0x94, 0x81, 0x82, 0x69, 0x55, 0xf5, 0xb9, 0x67, 0xff, 0x9e, 0x01, 0xcf, 0xf7, 0xa1, 0x61, 0x03, + 0xc7, 0x86, 0x5e, 0x1d, 0x38, 0xdc, 0x51, 0x11, 0x4a, 0xde, 0x85, 0xe9, 0x75, 0xa1, 0xcf, 0xcb, + 0xe1, 0xc8, 0xc4, 0xeb, 0x45, 0xaa, 0xfa, 0xb6, 0x1c, 0x97, 0x24, 0xb2, 0x16, 0xc1, 0x9a, 0xed, + 0x1b, 0xc1, 0xaa, 0x06, 0x84, 0x0e, 0x0d, 0x1a, 0x10, 0xfa, 0x41, 0xf2, 0xb9, 0x51, 0x91, 0x97, + 0x2b, 0x0e, 0x87, 0x35, 0x7a, 0x87, 0xc3, 0xf6, 0xcd, 0xfe, 0x83, 0x2f, 0x1d, 0xe8, 0xbc, 0x9f, + 0x74, 0x3c, 0xdf, 0xd1, 0xc6, 0xf3, 0xf9, 0xf4, 0xf1, 0xec, 0x3d, 0x90, 0xbf, 0x68, 0x24, 0x3f, + 0x76, 0xa0, 0x11, 0x34, 0x61, 0xa4, 0xe4, 0xed, 0x3b, 0x6e, 0x4b, 0x7d, 0x2d, 0xad, 0x81, 0x10, + 0x4b, 0x94, 0x0c, 0x16, 0x3d, 0x7c, 0x1e, 0x86, 0x57, 0xbd, 0x56, 0xa1, 0x24, 0x7c, 0xeb, 0x90, + 0x4f, 0xcb, 0x6b, 0xd9, 0x4e, 0xc3, 0xe2, 0x05, 0xe6, 0x4f, 0x0c, 0xc3, 0x19, 0x8b, 0xee, 0xba, + 0x4c, 0xe3, 0xdc, 0x08, 0xdc, 0xd6, 0xae, 0x16, 0x2a, 0x69, 0x26, 0xc6, 0x44, 0xe4, 0xab, 0x64, + 0x90, 0xa8, 0x8e, 0xcb, 0x90, 0x63, 0x1b, 0x8c, 0x32, 0x2c, 0x78, 0x1d, 0x81, 0x4f, 0x3f, 0xf2, + 0xf9, 0x22, 0x8b, 0xc9, 0x15, 0xb1, 0x01, 0x2a, 0x19, 0x85, 0xd9, 0x06, 0xf8, 0xfd, 0xc3, 0x79, + 0xa8, 0x1d, 0x04, 0x21, 0xc5, 0xc3, 0x8f, 0xd8, 0x04, 0x23, 0x2d, 0x75, 0xa8, 0x87, 0x96, 0xba, + 0x02, 0xb3, 0x85, 0x06, 0x97, 0x7b, 0x4e, 0xb3, 0xea, 0xbb, 0xad, 0xba, 0xdb, 0x76, 0x9a, 0xf2, + 0xe4, 0x85, 0x97, 0x52, 0x4e, 0x54, 0x6e, 0xb7, 0x23, 0x04, 0x2b, 0x95, 0x8c, 0x7d, 0x46, 0x69, + 0xb5, 0xc6, 0x9f, 0x35, 0xe6, 0x37, 0x4d, 0xf8, 0x19, 0x8d, 0x56, 0xc0, 0xdf, 0x35, 0xb6, 0xa2, + 0x62, 0xd4, 0x8f, 0xf1, 0x3a, 0x7f, 0x7d, 0xb9, 0x16, 0x87, 0x6d, 0xf0, 0x84, 0x87, 0xfc, 0xca, + 0x3f, 0x6c, 0x06, 0x78, 0xed, 0xaf, 0xe1, 0xc5, 0x74, 0xb5, 0xda, 0x12, 0xa3, 0xcb, 0x75, 0xd1, + 0x05, 0xc1, 0x9e, 0x4a, 0xc7, 0xf1, 0xc8, 0x35, 0x00, 0x9e, 0xaa, 0x07, 0xa7, 0xcc, 0x58, 0xac, + 0x4d, 0xfb, 0x08, 0xe5, 0xda, 0xb4, 0x82, 0x42, 0xde, 0x86, 0x13, 0xe5, 0xe2, 0x82, 0xb4, 0x0f, + 0x96, 0xbc, 0x7a, 0x07, 0x2f, 0x68, 0x01, 0xeb, 0xc3, 0x31, 0xa4, 0xf5, 0x05, 0x36, 0x4f, 0xd2, + 0xd0, 0xc8, 0x45, 0x18, 0xad, 0x94, 0x78, 0xdf, 0x8f, 0xab, 0x59, 0xbd, 0x85, 0xe3, 0x83, 0x2c, + 0x24, 0x6b, 0xb1, 0xba, 0x37, 0x71, 0xa4, 0x5e, 0x76, 0xe6, 0x68, 0x55, 0x4f, 0x24, 0xff, 0xe6, + 0x8f, 0x4c, 0x14, 0xbd, 0x06, 0x0d, 0x36, 0xaf, 0x7f, 0xca, 0x92, 0x7f, 0x2b, 0xdf, 0x86, 0x82, + 0xe0, 0x7a, 0xaa, 0xd4, 0xf8, 0x0f, 0x30, 0xf9, 0x77, 0x17, 0x2e, 0xf9, 0x3c, 0x0c, 0xe3, 0x4f, + 0xa1, 0x42, 0x9c, 0x48, 0x61, 0x1b, 0xab, 0x0f, 0x75, 0xfe, 0x70, 0x20, 0x12, 0x90, 0x0a, 0x8c, + 0x0a, 0xed, 0xf5, 0x38, 0x29, 0x6c, 0x85, 0x1a, 0xcc, 0x07, 0x49, 0xd0, 0x9b, 0x0d, 0x98, 0x50, + 0x2b, 0x64, 0x93, 0x73, 0xc9, 0x09, 0xf6, 0x68, 0x83, 0xfd, 0x12, 0xd9, 0xe7, 0x71, 0x72, 0xee, + 0x21, 0xd4, 0x66, 0xed, 0xb0, 0x14, 0x14, 0x26, 0xb8, 0x2a, 0xc1, 0x46, 0x20, 0x9a, 0x22, 0xce, + 0xb3, 0x2e, 0xda, 0x46, 0x1a, 0x96, 0x28, 0x32, 0xbf, 0x0c, 0xb3, 0xab, 0x9d, 0x66, 0x93, 0x9d, + 0x6d, 0x65, 0x76, 0xd2, 0xd0, 0x09, 0x29, 0x59, 0x84, 0x61, 0xfc, 0x03, 0x2b, 0x9a, 0x8a, 0xba, + 0x40, 0xc5, 0x41, 0x5f, 0x2b, 0x03, 0x03, 0x2d, 0x43, 0xfd, 0xd1, 0x6f, 0x4e, 0x6a, 0xfe, 0x5e, + 0xfc, 0x84, 0xe5, 0xba, 0xef, 0xd4, 0xef, 0x53, 0x5f, 0xec, 0x40, 0x83, 0xbe, 0xc6, 0x79, 0x57, + 0x36, 0x42, 0xdf, 0x15, 0xd2, 0x1a, 0x7c, 0x54, 0x63, 0xc8, 0xdb, 0x30, 0x2e, 0x76, 0x06, 0x25, + 0x3d, 0x08, 0xc6, 0x60, 0xcb, 0x37, 0x4d, 0x13, 0x37, 0xf7, 0x2a, 0x3a, 0x6e, 0x78, 0xfa, 0xa7, + 0x6c, 0x5e, 0xff, 0x24, 0x36, 0x3c, 0xbd, 0x8e, 0x3e, 0x53, 0xf7, 0xef, 0x43, 0xb2, 0x6f, 0xc5, + 0xdc, 0xbd, 0xa9, 0x26, 0x04, 0x30, 0xe2, 0xe3, 0x47, 0x9c, 0x10, 0x40, 0x3d, 0x7e, 0x44, 0xa8, + 0xd1, 0x98, 0x64, 0x8e, 0x18, 0x93, 0x77, 0xe5, 0x98, 0x64, 0x7b, 0x4f, 0x8c, 0x13, 0x7d, 0xc6, + 0xa1, 0x16, 0xaf, 0x90, 0xa1, 0x81, 0xce, 0xae, 0xcf, 0x61, 0xe6, 0x43, 0x4e, 0x92, 0x14, 0x68, + 0x82, 0x93, 0x7a, 0x20, 0x1e, 0x1e, 0x9c, 0xe9, 0x11, 0x07, 0xe2, 0x2f, 0xc0, 0x44, 0x21, 0x0c, + 0x9d, 0xfa, 0x1e, 0x6d, 0x94, 0x98, 0x78, 0x52, 0x62, 0x97, 0x1d, 0x01, 0x57, 0x6f, 0x26, 0x54, + 0x5c, 0x9e, 0x8b, 0xc7, 0x09, 0x84, 0xe3, 0x58, 0x94, 0x8b, 0x87, 0x41, 0xf4, 0x5c, 0x3c, 0x0c, + 0x42, 0xae, 0xc1, 0x68, 0xa5, 0xf5, 0xc0, 0x65, 0x7d, 0x92, 0x8b, 0x1f, 0xd3, 0x73, 0x39, 0x48, + 0x15, 0xae, 0x02, 0x8b, 0xdc, 0x52, 0x34, 0xc7, 0xb1, 0xf8, 0x94, 0xc8, 0xed, 0x0a, 0xb6, 0x54, + 0x20, 0x55, 0xad, 0x30, 0x52, 0x25, 0x6f, 0xc2, 0xa8, 0x34, 0x17, 0x41, 0x7c, 0x32, 0x14, 0x94, + 0xdd, 0x11, 0x6a, 0x12, 0x19, 0xdf, 0xb1, 0x52, 0xb2, 0xe8, 0x8f, 0x2b, 0xef, 0x58, 0x29, 0x59, + 0xf4, 0xb5, 0x77, 0xac, 0x94, 0x7c, 0xfa, 0xd1, 0x49, 0x7b, 0xe2, 0xc8, 0x93, 0xf6, 0x26, 0x4c, + 0x54, 0x1d, 0x3f, 0x74, 0x99, 0xba, 0xd0, 0x0a, 0x83, 0xb9, 0x49, 0xcd, 0x38, 0xa5, 0x14, 0x2d, + 0x9e, 0x93, 0xef, 0x39, 0xb5, 0x15, 0x7c, 0xfd, 0x21, 0xa0, 0x18, 0x9e, 0xee, 0x36, 0x36, 0xf5, + 0x24, 0x6e, 0x63, 0xd8, 0xa9, 0x68, 0x90, 0x98, 0x8e, 0x8f, 0xbd, 0xa8, 0x19, 0x26, 0xac, 0x12, + 0x11, 0x22, 0xf9, 0x0a, 0x4c, 0xb0, 0xbf, 0xf1, 0x9d, 0x5b, 0x97, 0x06, 0x73, 0x79, 0xfc, 0xb8, + 0x73, 0xa9, 0xab, 0x9f, 0x3f, 0x86, 0x5b, 0xa3, 0x21, 0x5f, 0xc0, 0xc8, 0x38, 0x69, 0x69, 0xd4, + 0xb8, 0x91, 0xf7, 0x60, 0x42, 0xbe, 0xfa, 0x8c, 0x83, 0x34, 0x13, 0x3b, 0xfe, 0x35, 0x04, 0xbc, + 0x2b, 0x1d, 0x96, 0x4a, 0xc0, 0xb6, 0xf9, 0x42, 0x9b, 0x0b, 0x48, 0xa2, 0xcc, 0xf6, 0x76, 0x97, + 0x70, 0x94, 0x68, 0xe4, 0x8b, 0x30, 0x51, 0x68, 0xb7, 0x63, 0x89, 0x73, 0x42, 0xb1, 0x36, 0xb4, + 0xdb, 0x76, 0xaa, 0xd4, 0xd1, 0x28, 0x92, 0x82, 0x79, 0xf6, 0x58, 0x82, 0x99, 0xbc, 0x11, 0x29, + 0xce, 0x27, 0x63, 0xd3, 0x99, 0xd0, 0xce, 0xd5, 0x95, 0xc6, 0x91, 0xcc, 0x3f, 0x32, 0xe0, 0x74, + 0x8f, 0x5e, 0x8e, 0x32, 0x47, 0x19, 0x47, 0x3c, 0xe2, 0x7c, 0x2d, 0xd6, 0x6c, 0x14, 0x73, 0x9d, + 0xd0, 0x6c, 0xd4, 0x3e, 0x92, 0x3a, 0x8e, 0x07, 0x44, 0x3c, 0xe1, 0xac, 0x3c, 0x75, 0x2c, 0xd2, + 0x17, 0x26, 0x04, 0xbf, 0xf6, 0xd4, 0x33, 0x7f, 0x56, 0xdc, 0xe7, 0xa0, 0xa8, 0x2b, 0x3f, 0xf2, + 0xb4, 0x55, 0x93, 0xc2, 0xda, 0x3c, 0x34, 0x60, 0x5c, 0x99, 0xfb, 0xe4, 0xbc, 0x12, 0x67, 0x94, + 0xe7, 0xe9, 0xa8, 0x15, 0x0e, 0x19, 0x2e, 0xfd, 0x71, 0x22, 0x67, 0x8e, 0xb6, 0xac, 0xad, 0x30, + 0xf5, 0x43, 0xc9, 0xae, 0xb5, 0xaf, 0x99, 0xc1, 0x2c, 0x2c, 0xc7, 0xa7, 0xdf, 0x9c, 0x20, 0x2c, + 0xd4, 0x43, 0xf7, 0x01, 0x1d, 0x40, 0xd0, 0xc7, 0x4f, 0xbf, 0x39, 0x41, 0x68, 0x3b, 0x48, 0xd6, + 0xf5, 0xf4, 0x5b, 0xc4, 0xd0, 0xfc, 0x31, 0x03, 0x60, 0xa3, 0x52, 0xc4, 0xf4, 0x78, 0x4f, 0xba, + 0x11, 0xa7, 0xa7, 0x1c, 0x92, 0xdc, 0xfb, 0x6c, 0xc1, 0x55, 0x98, 0xd2, 0xb1, 0xc8, 0xbb, 0x30, + 0x5d, 0xab, 0xfb, 0x5e, 0xb3, 0xb9, 0xed, 0xd4, 0xef, 0x2f, 0xbb, 0x2d, 0xca, 0x73, 0xbd, 0x0c, + 0x73, 0xf1, 0x1f, 0x44, 0x45, 0x76, 0x93, 0x95, 0x59, 0x49, 0x64, 0xf3, 0x4f, 0x0d, 0x18, 0xaf, + 0xb4, 0x82, 0xd0, 0x69, 0x36, 0x51, 0xc1, 0xf8, 0x34, 0xbd, 0x48, 0x10, 0x7d, 0x57, 0x9f, 0x1e, + 0x7d, 0x13, 0xa6, 0x13, 0x68, 0xec, 0x60, 0x5c, 0xc3, 0x30, 0x48, 0xf5, 0x60, 0xcc, 0x03, 0x23, + 0x2d, 0x51, 0x62, 0x96, 0x15, 0xb2, 0xcd, 0xeb, 0x78, 0x51, 0xb4, 0x00, 0xe0, 0x4a, 0x90, 0x54, + 0xe3, 0x49, 0xb2, 0x25, 0x9b, 0xd7, 0x2d, 0x05, 0xcb, 0x5c, 0x85, 0x91, 0x9a, 0xe7, 0x87, 0x8b, + 0x07, 0x5c, 0x73, 0x2e, 0xd1, 0xa0, 0xae, 0xde, 0x04, 0xb9, 0x68, 0x7d, 0xad, 0x5b, 0xa2, 0x88, + 0x9d, 0x9b, 0x6f, 0xbb, 0xb4, 0xd9, 0x50, 0x5d, 0xfe, 0x76, 0x18, 0xc0, 0xe2, 0x70, 0x76, 0xba, + 0x38, 0x15, 0xa7, 0x6f, 0x8d, 0x7d, 0x0b, 0x9f, 0x74, 0xc2, 0x16, 0xb5, 0xfe, 0x7d, 0x49, 0x7f, + 0xf0, 0x4f, 0xab, 0xa9, 0x4f, 0x57, 0xff, 0x1d, 0x03, 0xce, 0xf6, 0x26, 0x51, 0xdd, 0x15, 0x8d, + 0x3e, 0xee, 0x8a, 0xaf, 0x24, 0x6f, 0x2e, 0x10, 0x4d, 0xdc, 0x5c, 0xc4, 0xf7, 0x15, 0x25, 0xf4, + 0x16, 0xad, 0x47, 0x8f, 0xab, 0x9e, 0xef, 0xd3, 0x66, 0x44, 0xe4, 0xc3, 0x1c, 0x22, 0x8d, 0x25, + 0x68, 0xcd, 0xdf, 0x1e, 0x82, 0x33, 0x3d, 0x29, 0xc8, 0x92, 0x92, 0x09, 0x7a, 0x2a, 0xca, 0x41, + 0xdb, 0x13, 0xff, 0x2a, 0xfe, 0x8b, 0x0e, 0x41, 0xc9, 0x20, 0x86, 0xb5, 0x28, 0x03, 0x70, 0x06, + 0x79, 0xbd, 0x76, 0x24, 0x2f, 0x8e, 0x8e, 0xcc, 0xa0, 0x3b, 0x19, 0x30, 0xc6, 0x9a, 0xd0, 0xd0, + 0x71, 0x9b, 0x81, 0xba, 0xec, 0x1a, 0x1c, 0x64, 0xc9, 0xb2, 0xd8, 0x87, 0x74, 0x28, 0xdd, 0x87, + 0xd4, 0xfc, 0xb7, 0x06, 0x8c, 0x45, 0xcd, 0x26, 0x67, 0xe1, 0xd4, 0xba, 0x55, 0x28, 0x96, 0xed, + 0xf5, 0x0f, 0xaa, 0x65, 0x7b, 0x63, 0xb5, 0x56, 0x2d, 0x17, 0x2b, 0xb7, 0x2b, 0xe5, 0x52, 0xfe, + 0x39, 0x32, 0x03, 0x93, 0x1b, 0xab, 0xf7, 0x56, 0xd7, 0xb6, 0x56, 0xed, 0xb2, 0x65, 0xad, 0x59, + 0x79, 0x83, 0x4c, 0xc2, 0x98, 0xb5, 0x58, 0x28, 0xda, 0xab, 0x6b, 0xa5, 0x72, 0x3e, 0x43, 0xf2, + 0x30, 0x51, 0x5c, 0x5b, 0x5d, 0x2d, 0x17, 0xd7, 0x2b, 0x9b, 0x95, 0xf5, 0x0f, 0xf2, 0x59, 0x42, + 0x60, 0x0a, 0x11, 0xaa, 0x56, 0x65, 0xb5, 0x58, 0xa9, 0x16, 0x96, 0xf3, 0x43, 0x0c, 0xc6, 0xf0, + 0x15, 0xd8, 0x70, 0xc4, 0xe8, 0xde, 0xc6, 0x62, 0x39, 0x3f, 0xc2, 0x50, 0xd8, 0x5f, 0x0a, 0xca, + 0x28, 0xab, 0x1e, 0x51, 0x4a, 0x85, 0xf5, 0xc2, 0x62, 0xa1, 0x56, 0xce, 0xe7, 0xc8, 0x69, 0x38, + 0xa1, 0x81, 0xec, 0xe5, 0xb5, 0x3b, 0x95, 0xd5, 0xfc, 0x18, 0x99, 0x85, 0x7c, 0x04, 0x2b, 0x2d, + 0xda, 0x1b, 0xb5, 0xb2, 0x95, 0x87, 0x24, 0x74, 0xb5, 0xb0, 0x52, 0xce, 0x8f, 0x9b, 0xef, 0xf0, + 0xf0, 0x12, 0xde, 0xd5, 0xe4, 0x14, 0x90, 0xda, 0x7a, 0x61, 0x7d, 0xa3, 0x96, 0xf8, 0xf8, 0x71, + 0x18, 0xad, 0x6d, 0x14, 0x8b, 0xe5, 0x5a, 0x2d, 0x6f, 0x10, 0x80, 0x91, 0xdb, 0x85, 0xca, 0x72, + 0xb9, 0x94, 0xcf, 0x98, 0x3f, 0x6b, 0xc0, 0x8c, 0x54, 0x77, 0xa4, 0x19, 0xfa, 0x09, 0xd7, 0xe2, + 0xbb, 0xda, 0x29, 0x4e, 0x7a, 0xff, 0x27, 0x2a, 0xe9, 0xb3, 0x0c, 0x7d, 0x38, 0x99, 0x8a, 0x4c, + 0x3e, 0x80, 0xbc, 0x6c, 0xc0, 0x8a, 0x13, 0xd6, 0xf7, 0x62, 0x31, 0x76, 0x2e, 0x51, 0x49, 0x02, + 0x8d, 0x5b, 0xd3, 0xe2, 0x27, 0x8f, 0xba, 0xd8, 0x98, 0xdf, 0x35, 0xe0, 0x74, 0x0f, 0x62, 0x52, + 0x84, 0x91, 0x28, 0x31, 0x6e, 0x1f, 0x47, 0x97, 0xd9, 0xef, 0x1d, 0xce, 0x0b, 0x44, 0x7c, 0xf9, + 0x05, 0xff, 0xb2, 0x46, 0xa2, 0x4c, 0xb7, 0x98, 0x6e, 0x96, 0xf7, 0xc9, 0x99, 0x44, 0x77, 0x8a, + 0x9a, 0x0a, 0x5b, 0xb5, 0xc5, 0x71, 0xd1, 0x21, 0x59, 0xe7, 0x61, 0x80, 0xf9, 0x66, 0xcd, 0xef, + 0x18, 0x4c, 0x55, 0x4a, 0x22, 0x92, 0x22, 0x4c, 0x16, 0x82, 0xa0, 0xb3, 0x4f, 0x2d, 0xaf, 0x49, + 0x0b, 0xd6, 0xaa, 0xd8, 0x0b, 0xf0, 0xcc, 0xe3, 0x60, 0x01, 0x2a, 0xc6, 0xb6, 0xe3, 0xb7, 0xb4, + 0x4b, 0x2d, 0x95, 0x86, 0xdc, 0x02, 0x88, 0x1e, 0xe7, 0x95, 0x31, 0xd5, 0x3c, 0x0a, 0x5f, 0x40, + 0x75, 0x8d, 0x51, 0x41, 0x36, 0xff, 0x92, 0x01, 0x13, 0x42, 0xed, 0x2f, 0x34, 0xa9, 0x1f, 0x3e, + 0xd9, 0x9c, 0xb9, 0xa5, 0xcd, 0x99, 0xc8, 0xaf, 0x5b, 0xe1, 0xcf, 0x8a, 0x53, 0xa7, 0xcb, 0x7f, + 0x6d, 0x40, 0x3e, 0x89, 0x48, 0xde, 0x85, 0x5c, 0x8d, 0x3e, 0xa0, 0xbe, 0x1b, 0x1e, 0x08, 0xe9, + 0x27, 0x9f, 0x10, 0xe0, 0x38, 0xa2, 0x8c, 0x5b, 0x17, 0x03, 0xf1, 0xcb, 0x8a, 0x68, 0x06, 0x15, + 0xe2, 0xca, 0xc1, 0x3d, 0xfb, 0xb4, 0x0e, 0xee, 0xe6, 0xbf, 0xcc, 0xc0, 0xe9, 0x3b, 0x34, 0x54, + 0xbf, 0x29, 0xba, 0x85, 0xfc, 0xcc, 0x60, 0xdf, 0xa5, 0x7c, 0xc9, 0x1c, 0x8c, 0x62, 0x91, 0x1c, + 0x5f, 0x4b, 0xfe, 0x24, 0x8b, 0xd1, 0xbc, 0xce, 0x6a, 0x39, 0xca, 0x7b, 0xd4, 0x7d, 0x55, 0xc9, + 0x5a, 0x1c, 0x4d, 0xeb, 0x8b, 0x30, 0x85, 0x69, 0xf9, 0x3a, 0x6c, 0x39, 0xd0, 0x86, 0x30, 0x60, + 0xe4, 0xac, 0x04, 0x94, 0x5c, 0x81, 0x3c, 0x83, 0x14, 0xea, 0xf7, 0x5b, 0xde, 0xc3, 0x26, 0x6d, + 0xec, 0x52, 0xfe, 0x64, 0x6a, 0xce, 0xea, 0x82, 0x4b, 0x9e, 0x1b, 0x2d, 0x7e, 0x00, 0xa7, 0x0d, + 0xb4, 0x32, 0x08, 0x9e, 0x31, 0xf4, 0xec, 0x2d, 0x18, 0xff, 0x98, 0x19, 0xc8, 0xcd, 0xff, 0xc1, + 0x80, 0x59, 0xfc, 0x38, 0xa5, 0x62, 0x34, 0x3f, 0x7f, 0x26, 0xee, 0x2d, 0x25, 0x29, 0xaf, 0xc3, + 0x40, 0xfa, 0x52, 0x88, 0x7a, 0x31, 0xb6, 0x6a, 0x64, 0x06, 0xb0, 0x6a, 0xd4, 0x8e, 0xf3, 0xc2, + 0xda, 0x80, 0x46, 0x19, 0xfe, 0x2e, 0x6e, 0x3c, 0xe4, 0xe6, 0x5f, 0xc8, 0xc0, 0xa8, 0x45, 0xf1, + 0xe9, 0x29, 0x72, 0x11, 0x46, 0x57, 0xbd, 0x90, 0x06, 0x2b, 0xda, 0x3b, 0x63, 0x2d, 0x06, 0xb2, + 0xf7, 0x1b, 0x96, 0x2c, 0x64, 0x13, 0xbe, 0xea, 0x7b, 0x8d, 0x4e, 0x3d, 0x54, 0x27, 0x7c, 0x9b, + 0x83, 0x2c, 0x59, 0x46, 0x5e, 0x87, 0x31, 0xc1, 0x39, 0xba, 0xfb, 0x41, 0x9f, 0x45, 0x9f, 0x46, + 0x4f, 0x97, 0xc5, 0x08, 0xa8, 0xa8, 0x72, 0xad, 0x61, 0x48, 0x51, 0x54, 0xbb, 0x14, 0x01, 0xa9, + 0x7f, 0x0f, 0xf7, 0xd1, 0xbf, 0x3f, 0x03, 0x23, 0x85, 0x20, 0xa0, 0xa1, 0x0c, 0x37, 0x9d, 0x88, + 0x52, 0x5c, 0x04, 0x34, 0xe4, 0x8c, 0x1d, 0x2c, 0xb7, 0x04, 0x9e, 0xf9, 0xc7, 0x19, 0x18, 0xc6, + 0x3f, 0xf1, 0xbe, 0xcb, 0xaf, 0xef, 0x69, 0xf7, 0x5d, 0x7e, 0x7d, 0xcf, 0x42, 0x28, 0xb9, 0x8e, + 0x67, 0x6d, 0x99, 0x3f, 0x5a, 0x7c, 0x3d, 0x1a, 0x91, 0x1b, 0x31, 0xd8, 0x52, 0x71, 0xa2, 0x8b, + 0xc0, 0x6c, 0x6a, 0x90, 0xf9, 0x29, 0xc8, 0xac, 0xd5, 0xc4, 0x17, 0x63, 0x06, 0x0b, 0x2f, 0xb0, + 0x32, 0x6b, 0x35, 0xec, 0x8d, 0xa5, 0xc2, 0xc2, 0x9b, 0x37, 0xd5, 0x27, 0xf1, 0x82, 0x3d, 0x67, + 0xe1, 0xcd, 0x9b, 0x96, 0x28, 0x61, 0xfd, 0x8b, 0x6d, 0xae, 0xb9, 0xdf, 0xa4, 0x22, 0x42, 0x13, + 0xfb, 0x17, 0xbf, 0xcd, 0x0e, 0xdc, 0x6f, 0x52, 0x2b, 0x46, 0x20, 0x0b, 0x30, 0x2e, 0x82, 0x72, + 0x11, 0x5f, 0x09, 0x9a, 0x15, 0x41, 0xbb, 0x9c, 0x42, 0x45, 0xe2, 0xf7, 0x39, 0x62, 0x80, 0xe4, + 0x2b, 0x37, 0xe2, 0x3e, 0x47, 0x0e, 0x61, 0x60, 0x29, 0x28, 0x71, 0x80, 0x69, 0x1c, 0x79, 0xa9, + 0x06, 0x98, 0x62, 0x9a, 0xc5, 0x08, 0xc1, 0xfc, 0x95, 0x0c, 0xe4, 0xaa, 0xcd, 0xce, 0xae, 0xdb, + 0xda, 0xbc, 0xfe, 0x67, 0xfa, 0x2c, 0xf3, 0x1b, 0x80, 0x9b, 0x84, 0x38, 0x11, 0x48, 0x93, 0x2c, + 0x6f, 0x9a, 0x50, 0x3e, 0x38, 0x09, 0xa2, 0x91, 0x1b, 0x20, 0x26, 0xa6, 0x78, 0xa5, 0xeb, 0xa4, + 0x4e, 0xc0, 0xdf, 0xa7, 0x90, 0x24, 0x02, 0x95, 0xbc, 0x0d, 0xe3, 0xf1, 0xfb, 0xb8, 0xf1, 0xe3, + 0x5b, 0x2a, 0x65, 0x31, 0x2e, 0xdf, 0xbc, 0x6e, 0xa9, 0xe8, 0xe6, 0x3f, 0xcf, 0xc2, 0x84, 0xda, + 0x1e, 0x62, 0xc1, 0x89, 0xa0, 0xc9, 0x8e, 0xc2, 0xc2, 0x27, 0xa5, 0x8d, 0x85, 0x62, 0x3b, 0x3d, + 0xaf, 0x37, 0x88, 0xe1, 0x71, 0x07, 0x95, 0x1a, 0x0d, 0x43, 0xb7, 0xb5, 0x1b, 0x2c, 0x3d, 0x67, + 0xcd, 0x04, 0x31, 0x98, 0xe3, 0x91, 0x02, 0xe4, 0xbc, 0x76, 0xb0, 0x4b, 0x5b, 0xae, 0xbc, 0x31, + 0xb8, 0xa0, 0x31, 0x5a, 0x13, 0x85, 0x5d, 0xbc, 0x22, 0x32, 0xf2, 0x26, 0x8c, 0x78, 0x6d, 0xda, + 0x72, 0x5c, 0xb1, 0xc7, 0x3d, 0x9f, 0x60, 0x40, 0x5b, 0x85, 0x8a, 0x42, 0x28, 0x90, 0xc9, 0x35, + 0x18, 0xf2, 0xee, 0x47, 0xe3, 0x75, 0x46, 0x27, 0xba, 0x1f, 0x3a, 0x0a, 0x09, 0x22, 0x32, 0x82, + 0x8f, 0x9c, 0xfd, 0x1d, 0x31, 0x62, 0x3a, 0xc1, 0x5d, 0x67, 0x7f, 0x47, 0x25, 0x60, 0x88, 0xe4, + 0x3d, 0x80, 0xb6, 0xb3, 0x4b, 0x7d, 0xbb, 0xd1, 0x09, 0x0f, 0xc4, 0xb8, 0x9d, 0xd3, 0xc8, 0xaa, + 0xac, 0xb8, 0xd4, 0x09, 0x0f, 0x14, 0xda, 0xb1, 0xb6, 0x04, 0x92, 0x02, 0xc0, 0xbe, 0x13, 0x86, + 0xd4, 0xdf, 0xf7, 0x84, 0x53, 0xd0, 0xf8, 0xc2, 0xbc, 0xc6, 0x60, 0x25, 0x2a, 0x56, 0x38, 0x28, + 0x44, 0x5f, 0x18, 0xfa, 0x9f, 0x7f, 0x69, 0xde, 0x58, 0x04, 0xc8, 0x05, 0xa2, 0xdc, 0x5c, 0x86, + 0x33, 0x3d, 0xc7, 0x88, 0x5c, 0x86, 0xfc, 0x8e, 0x23, 0x0c, 0x1e, 0xf5, 0x3d, 0xa7, 0xd5, 0xa2, + 0x4d, 0xb1, 0x3a, 0xa6, 0x25, 0xbc, 0xc8, 0xc1, 0x9c, 0xb3, 0xf9, 0x5b, 0x06, 0xbc, 0xd0, 0x6f, + 0xa4, 0xc8, 0x59, 0xc8, 0xb5, 0x7d, 0xd7, 0x43, 0x8d, 0x80, 0xaf, 0xa7, 0xe8, 0x37, 0x79, 0x11, + 0x80, 0x6f, 0x5d, 0xa1, 0xb3, 0x2b, 0x5c, 0x6e, 0xad, 0x31, 0x84, 0xac, 0x3b, 0xbb, 0x01, 0x79, + 0x0d, 0x66, 0x1a, 0x74, 0xc7, 0xe9, 0x34, 0x43, 0x3b, 0xa8, 0xef, 0xd1, 0x06, 0x7a, 0xb9, 0xa3, + 0x2b, 0x85, 0x95, 0x17, 0x05, 0x35, 0x09, 0x27, 0x2f, 0xc1, 0x84, 0x1a, 0x52, 0x2f, 0x1e, 0x3c, + 0x1f, 0x77, 0xda, 0xae, 0x0c, 0xaa, 0xe7, 0x2d, 0xbe, 0x3b, 0x94, 0x33, 0xf2, 0x19, 0x0b, 0x3d, + 0x0a, 0x4c, 0x07, 0x4e, 0xf7, 0x18, 0x08, 0xd6, 0xb6, 0xf8, 0x15, 0x2c, 0x99, 0x53, 0xb7, 0x13, + 0xbd, 0x85, 0x95, 0xac, 0x2e, 0xd3, 0xa3, 0x3a, 0xf3, 0x05, 0x98, 0x4d, 0x9b, 0x88, 0xa2, 0xf4, + 0xe7, 0x0d, 0x98, 0xeb, 0x35, 0x92, 0xac, 0x09, 0xc2, 0x21, 0xab, 0xe3, 0x47, 0x4d, 0xe0, 0x90, + 0x0d, 0xbf, 0xc9, 0xa4, 0x57, 0x18, 0x79, 0x32, 0x5b, 0xf8, 0x37, 0xbe, 0x32, 0x2e, 0x86, 0x4d, + 0x88, 0x28, 0xf1, 0x93, 0x5c, 0x84, 0x69, 0x9f, 0xfb, 0xb6, 0x84, 0x9e, 0xf8, 0x28, 0xdc, 0x02, + 0xac, 0x49, 0x0e, 0x5e, 0xf7, 0xf0, 0xc3, 0x44, 0xbb, 0xee, 0x02, 0xe9, 0x9e, 0xd8, 0xe4, 0x2a, + 0x8c, 0xb1, 0x89, 0x8d, 0x41, 0xd0, 0x09, 0x97, 0x49, 0xc4, 0x43, 0x31, 0x61, 0xe5, 0x3e, 0x12, + 0x7f, 0x0b, 0x5e, 0x37, 0x24, 0x2f, 0x75, 0x55, 0x91, 0xd3, 0x30, 0xea, 0xf9, 0xbb, 0xca, 0x97, + 0x8d, 0x78, 0xfe, 0xee, 0x86, 0x2f, 0x1b, 0xf0, 0xb7, 0x32, 0x72, 0x5e, 0x2d, 0x7a, 0x5e, 0x18, + 0x84, 0xbe, 0xd3, 0xd6, 0x44, 0x15, 0xd9, 0x87, 0x33, 0x9e, 0xd3, 0x09, 0xf7, 0x16, 0x6c, 0xf6, + 0xaf, 0xe7, 0x4b, 0xd7, 0xfb, 0xba, 0xbc, 0x69, 0x1d, 0x5f, 0xb8, 0xa6, 0xaf, 0xe9, 0x02, 0xc3, + 0x2e, 0xa8, 0xc8, 0x45, 0xaf, 0x41, 0x15, 0xae, 0x4b, 0xcf, 0x59, 0xa7, 0x39, 0xcf, 0x2e, 0x2c, + 0xb2, 0x04, 0xda, 0x73, 0x8a, 0xa9, 0xb2, 0x4a, 0x79, 0xfa, 0x50, 0xe7, 0x3a, 0xbe, 0xad, 0xbc, + 0xbd, 0xf8, 0x2e, 0x8c, 0xb9, 0x0d, 0x91, 0x67, 0x43, 0x48, 0x2c, 0x7d, 0x4d, 0x57, 0x1a, 0x3c, + 0xed, 0x46, 0xcc, 0x83, 0x89, 0x3b, 0x57, 0x40, 0x17, 0x27, 0x35, 0xa1, 0x6e, 0x2e, 0xca, 0x09, + 0xd4, 0x4d, 0x26, 0x9e, 0xfe, 0x37, 0xa2, 0xa7, 0xff, 0x4f, 0xc1, 0x48, 0xa0, 0x24, 0xfe, 0xb0, + 0xc4, 0x2f, 0xf3, 0x07, 0xe1, 0xd2, 0xa0, 0x7d, 0x84, 0xaf, 0xbb, 0xa7, 0x77, 0xf8, 0x98, 0x35, + 0xe3, 0x74, 0xf5, 0x1b, 0xbe, 0xee, 0x1e, 0xe5, 0x3e, 0x70, 0xe5, 0x3a, 0x91, 0xb0, 0x0d, 0xdf, + 0x35, 0xdf, 0x81, 0x29, 0x7d, 0x17, 0x23, 0xaf, 0xc1, 0x50, 0xc4, 0x75, 0x2a, 0x3a, 0x6d, 0xa9, + 0x48, 0x8c, 0xb7, 0x85, 0x48, 0xe6, 0xbf, 0xce, 0xc0, 0x89, 0x94, 0xbd, 0x8c, 0x7c, 0x08, 0x27, + 0xe4, 0x04, 0xe1, 0xdb, 0x15, 0x1f, 0x38, 0x3e, 0x35, 0x2e, 0xa7, 0x4d, 0x0d, 0x44, 0x4b, 0x19, + 0xbe, 0x19, 0x31, 0x29, 0xe2, 0xf2, 0x3f, 0x3f, 0xd3, 0x81, 0x7c, 0x00, 0xa7, 0xc4, 0x5b, 0x4c, + 0xca, 0xac, 0xb0, 0x7d, 0xba, 0x23, 0x36, 0xb6, 0x97, 0xba, 0x7a, 0xcf, 0xad, 0x2b, 0xcd, 0xb1, + 0xe8, 0xce, 0xd2, 0x73, 0xd6, 0x6c, 0x90, 0x02, 0x4f, 0xce, 0xb4, 0x5f, 0x37, 0xc0, 0x3c, 0xba, + 0xbf, 0x50, 0x32, 0x26, 0x3b, 0x9c, 0x49, 0x46, 0xa5, 0xf7, 0x2e, 0xc0, 0xa4, 0x4f, 0x77, 0x7c, + 0x1a, 0xec, 0x29, 0xdd, 0x37, 0x66, 0x4d, 0x08, 0xa0, 0xec, 0x18, 0x19, 0x3d, 0x34, 0xc0, 0xd9, + 0x35, 0xc7, 0xf4, 0x1e, 0x7e, 0xea, 0x10, 0x44, 0xe6, 0xed, 0x48, 0x80, 0xa4, 0x8e, 0x03, 0x3b, + 0x7d, 0xa9, 0x0d, 0xe4, 0x3f, 0xee, 0x0e, 0xe5, 0x32, 0xf9, 0xac, 0x25, 0x62, 0x9c, 0x76, 0xdc, + 0x26, 0x35, 0xff, 0xbe, 0x01, 0x67, 0x7b, 0x77, 0x1e, 0xf9, 0x50, 0xb1, 0xbe, 0x64, 0x79, 0x8a, + 0x87, 0x23, 0xfa, 0x5b, 0x3d, 0xa8, 0x8a, 0xb0, 0x9b, 0xe4, 0x33, 0x44, 0x82, 0xe5, 0x93, 0x1c, + 0x21, 0x6f, 0x49, 0xe5, 0x6d, 0xd9, 0x0d, 0xc2, 0xcd, 0xeb, 0xe4, 0x32, 0x8c, 0x72, 0x7d, 0x4d, + 0x36, 0x74, 0x5a, 0x6b, 0xe8, 0xe6, 0x75, 0x4b, 0x96, 0x9b, 0xdf, 0x35, 0x22, 0x15, 0x21, 0xd9, + 0xfc, 0xcd, 0xeb, 0xe4, 0x73, 0x83, 0xd9, 0x51, 0x72, 0xd2, 0x8e, 0x12, 0xd9, 0x50, 0x3e, 0xaf, + 0xd9, 0x50, 0x5e, 0xee, 0xdf, 0x4f, 0x62, 0x2f, 0x49, 0x3e, 0x14, 0xf1, 0x27, 0x06, 0xbc, 0xd8, + 0x97, 0x82, 0xbc, 0x00, 0xb9, 0x42, 0xb5, 0xb2, 0x1e, 0x8f, 0x2c, 0x5b, 0x2d, 0x12, 0x42, 0xee, + 0xc0, 0xd8, 0xa2, 0x13, 0xb8, 0x75, 0x36, 0x81, 0x45, 0x43, 0x5e, 0xed, 0xdf, 0x90, 0x08, 0x9d, + 0xa9, 0x66, 0xd1, 0x0f, 0x62, 0xc3, 0x0c, 0xae, 0x82, 0xae, 0x44, 0xec, 0xc9, 0x6d, 0xa7, 0x8b, + 0x61, 0x17, 0x19, 0x93, 0x30, 0x5d, 0xc0, 0xe4, 0xe2, 0x7b, 0x00, 0xe7, 0x8f, 0x6a, 0xe0, 0x31, + 0x22, 0xe5, 0x2e, 0x41, 0xae, 0xea, 0x04, 0xc1, 0x43, 0xcf, 0x6f, 0xa8, 0xef, 0xb0, 0xb4, 0x05, + 0xcc, 0x8a, 0x4a, 0xcd, 0x9f, 0x32, 0xe4, 0xde, 0x70, 0xf4, 0x87, 0x28, 0x99, 0xa8, 0x1a, 0xfd, + 0x33, 0x51, 0x35, 0x3e, 0x66, 0x26, 0x2a, 0xf3, 0x57, 0x44, 0x1c, 0x7b, 0xa5, 0x51, 0x4d, 0xe4, + 0x00, 0x7d, 0x52, 0xab, 0x70, 0x59, 0x9b, 0x9d, 0x17, 0x94, 0x94, 0x76, 0xdd, 0x75, 0xf5, 0x36, + 0x0e, 0x2b, 0x53, 0xf5, 0xa7, 0x0c, 0x78, 0xa1, 0x1f, 0x79, 0x6a, 0xba, 0x52, 0xe3, 0x78, 0xe9, + 0x4a, 0x2f, 0x43, 0x8e, 0xc3, 0xf4, 0x47, 0x03, 0x04, 0x29, 0xeb, 0x70, 0x59, 0x6c, 0x16, 0x00, + 0x2a, 0x8d, 0xea, 0x5a, 0x9b, 0x47, 0xd3, 0xdf, 0x80, 0x21, 0xd6, 0xb6, 0x44, 0x47, 0xb1, 0xa6, + 0x16, 0x56, 0x96, 0x05, 0x12, 0x37, 0x1c, 0x04, 0xce, 0x7e, 0xd3, 0x42, 0x64, 0x73, 0x0b, 0xa6, + 0x74, 0x0c, 0x52, 0xd6, 0xe3, 0xaf, 0xe2, 0x77, 0xce, 0x16, 0x3d, 0x8f, 0xdb, 0x9d, 0x17, 0xcf, + 0x7c, 0xef, 0x70, 0x1e, 0xd8, 0x4f, 0x4e, 0x93, 0x16, 0x9f, 0x65, 0x7e, 0x3b, 0x03, 0xb3, 0xb1, + 0xb3, 0x86, 0x1c, 0xae, 0x67, 0xf6, 0x32, 0xb5, 0xa0, 0x5d, 0xf6, 0xcd, 0x77, 0x3d, 0x25, 0x24, + 0x3f, 0xb0, 0xcf, 0x1d, 0xc3, 0x1d, 0x98, 0xeb, 0x85, 0x4f, 0x5e, 0xeb, 0x7a, 0xec, 0x43, 0x38, + 0x15, 0x47, 0xaf, 0x82, 0x28, 0x6f, 0x7f, 0xfc, 0x53, 0x03, 0xce, 0x0a, 0x6b, 0xe9, 0x8a, 0xe3, + 0xb6, 0xf0, 0x81, 0xb3, 0x3a, 0x7d, 0x3a, 0xb7, 0xf0, 0x77, 0xb4, 0x25, 0xf3, 0x8a, 0x6e, 0x14, + 0xef, 0xaa, 0xad, 0xf7, 0xd7, 0x92, 0xcb, 0xe8, 0x89, 0x5d, 0xe7, 0x06, 0xab, 0x21, 0xee, 0x69, + 0xd4, 0x62, 0x00, 0xd5, 0xd3, 0x08, 0x31, 0xcc, 0x1f, 0x86, 0x73, 0xfd, 0x2b, 0x20, 0x5f, 0x85, + 0xc9, 0xc2, 0x2e, 0x6d, 0x85, 0x1b, 0xed, 0x5d, 0xdf, 0x69, 0x50, 0x79, 0x2b, 0x22, 0xcf, 0xeb, + 0x6a, 0x19, 0xf7, 0x3e, 0x17, 0x9e, 0x2f, 0x0c, 0x6e, 0x77, 0x04, 0x91, 0x76, 0x25, 0xa1, 0x72, + 0x33, 0x7f, 0xc4, 0x00, 0xd2, 0xcd, 0x83, 0xdc, 0x84, 0x89, 0x8d, 0xf5, 0x62, 0x2d, 0x74, 0xfc, + 0x70, 0xc9, 0xeb, 0xf0, 0xee, 0x9c, 0x14, 0x4e, 0x19, 0x61, 0xdd, 0x0e, 0x58, 0x81, 0xbd, 0xe7, + 0x75, 0x7c, 0x4b, 0xc3, 0xc3, 0x14, 0x49, 0x94, 0xde, 0x6f, 0x38, 0x07, 0x7a, 0x8a, 0x24, 0x01, + 0xd3, 0x52, 0x24, 0x09, 0x98, 0xf9, 0x37, 0x0c, 0x78, 0x5e, 0x1e, 0x7c, 0x1b, 0x29, 0x6d, 0x29, + 0xa2, 0xbb, 0x9f, 0x2f, 0xa3, 0xda, 0xfa, 0xe9, 0x4d, 0x33, 0xd2, 0x23, 0x16, 0x1b, 0x88, 0x0a, + 0x14, 0xa7, 0xc5, 0xd7, 0x1d, 0x43, 0xaf, 0x3d, 0x80, 0x4b, 0x6c, 0x3e, 0x1a, 0xd1, 0xd0, 0x6b, + 0x23, 0x0b, 0xa4, 0x34, 0x29, 0xcc, 0xaa, 0x8d, 0x93, 0x2d, 0x26, 0x2b, 0x30, 0x2a, 0xdc, 0xfe, + 0x85, 0x26, 0x22, 0x23, 0x41, 0xfa, 0x7c, 0xd3, 0xe2, 0xb4, 0xf4, 0xbb, 0x15, 0x51, 0x55, 0x96, + 0xe4, 0x61, 0xfe, 0x8c, 0xc1, 0x1f, 0x96, 0xc6, 0x40, 0xe3, 0x27, 0x9d, 0xd2, 0xba, 0x8e, 0x22, + 0xfd, 0x20, 0x22, 0xf6, 0x03, 0x09, 0xfe, 0x37, 0x61, 0x3a, 0x41, 0x40, 0x4c, 0xf4, 0xb8, 0x6a, + 0xba, 0xfc, 0x9d, 0x3c, 0xfe, 0xdd, 0x63, 0x96, 0x06, 0x33, 0xff, 0x3d, 0x03, 0x66, 0xd9, 0x09, + 0xb9, 0xb2, 0xcf, 0x8e, 0xe3, 0x56, 0xa7, 0x29, 0xd7, 0x3b, 0xdb, 0xac, 0xa5, 0x05, 0x85, 0xbb, + 0xa6, 0xf0, 0xcd, 0x5a, 0xc0, 0xac, 0xa8, 0x94, 0x2c, 0x41, 0x4e, 0x04, 0x81, 0xca, 0x77, 0x5d, + 0xa5, 0xb9, 0x49, 0x67, 0x2c, 0x90, 0xd8, 0x97, 0xa0, 0x08, 0x13, 0x34, 0x56, 0x44, 0x6d, 0xfe, + 0xb1, 0x01, 0xa7, 0x7b, 0xd0, 0x90, 0x77, 0x60, 0x18, 0xef, 0xf9, 0xc4, 0xe8, 0xbd, 0xd0, 0xa3, + 0x8a, 0xb0, 0xbe, 0xb7, 0x79, 0x9d, 0xdf, 0x88, 0xef, 0xb3, 0x1f, 0x16, 0xa7, 0x22, 0x1f, 0xc2, + 0x58, 0xa1, 0xd1, 0xd0, 0x5e, 0x9f, 0x7d, 0xa3, 0x7f, 0x2b, 0xaf, 0x46, 0xf8, 0x5c, 0x67, 0xe6, + 0x16, 0xe7, 0x46, 0x43, 0x3c, 0xdf, 0x69, 0xc5, 0xfc, 0xce, 0xbe, 0x0d, 0x53, 0x3a, 0xf2, 0xb1, + 0x74, 0xe6, 0xef, 0x1a, 0x90, 0xd7, 0xdb, 0xf0, 0xc9, 0x78, 0x0c, 0xa7, 0x0d, 0xf3, 0x11, 0x93, + 0xea, 0xe7, 0x32, 0x70, 0x32, 0xb5, 0x87, 0xc9, 0x1b, 0x30, 0x52, 0x68, 0xb7, 0x2b, 0x25, 0x31, + 0xab, 0xb8, 0xf2, 0xe0, 0xb4, 0xdb, 0x89, 0x18, 0x23, 0x81, 0x44, 0x6e, 0x40, 0x0e, 0x67, 0x26, + 0x23, 0xc8, 0xc4, 0x61, 0x49, 0x18, 0xbc, 0x9f, 0x0c, 0x4b, 0x92, 0x88, 0xe4, 0x36, 0x4c, 0x09, + 0xe7, 0x41, 0x8b, 0xee, 0xd2, 0x47, 0x51, 0x7c, 0x3c, 0x86, 0xf0, 0x4b, 0x57, 0x43, 0xdb, 0xe7, + 0x65, 0x6a, 0xa0, 0xa3, 0x4e, 0x85, 0x8f, 0xcf, 0x30, 0x9e, 0x2a, 0x27, 0x1e, 0x1b, 0xc5, 0x1f, + 0x9f, 0xc1, 0x46, 0xf4, 0xe0, 0xd5, 0x45, 0x19, 0x0d, 0x57, 0x21, 0x08, 0xdc, 0xdd, 0xd6, 0x3e, + 0x6d, 0x85, 0x9f, 0xdc, 0x70, 0xc5, 0x75, 0x0c, 0x34, 0x5c, 0xdf, 0x19, 0xe2, 0x8b, 0x39, 0x49, + 0x76, 0xc4, 0xfb, 0x6a, 0x25, 0x18, 0xe5, 0x61, 0xb3, 0x72, 0x65, 0xbc, 0x98, 0xda, 0x04, 0x8e, + 0xb3, 0x79, 0x9d, 0xab, 0x2f, 0xfc, 0xc2, 0x31, 0xb0, 0x24, 0x29, 0xd9, 0x84, 0xf1, 0x62, 0x93, + 0x3a, 0xad, 0x4e, 0x9b, 0x09, 0xe9, 0x01, 0x4e, 0xcf, 0x73, 0xe2, 0x5b, 0x26, 0xea, 0x9c, 0xcc, + 0x0e, 0xdd, 0x7d, 0x8a, 0x92, 0x5c, 0x65, 0x44, 0xd6, 0xa3, 0x3b, 0x88, 0x21, 0x34, 0xcc, 0x7c, + 0xa6, 0x4f, 0xff, 0x24, 0x81, 0x48, 0xa7, 0x5f, 0xb0, 0x89, 0x4b, 0x0a, 0x1b, 0xa6, 0x96, 0x9d, + 0x20, 0x5c, 0xf7, 0x9d, 0x56, 0x80, 0x91, 0x47, 0x03, 0xb8, 0x83, 0xcb, 0x2c, 0xf9, 0xd3, 0xe8, + 0x7a, 0x18, 0x46, 0xa4, 0xd8, 0xe6, 0x04, 0x3b, 0xa6, 0x2f, 0xdd, 0x76, 0x5b, 0x4e, 0xd3, 0xfd, + 0xa6, 0xbc, 0xaa, 0xe5, 0xfa, 0xd2, 0x8e, 0x04, 0x5a, 0x71, 0xb9, 0xf9, 0x95, 0xae, 0x71, 0xe3, + 0xad, 0x1c, 0x87, 0x51, 0xe1, 0x9d, 0xc3, 0xbd, 0x55, 0xaa, 0xe5, 0xd5, 0x52, 0x65, 0xf5, 0x4e, + 0xde, 0x20, 0x53, 0x00, 0x55, 0x6b, 0xad, 0x58, 0xae, 0xd5, 0xd8, 0xef, 0x0c, 0xfb, 0x2d, 0x5c, + 0x59, 0x6e, 0x6f, 0x2c, 0xe7, 0xb3, 0x8a, 0x37, 0xcb, 0x90, 0xf9, 0x4f, 0x0c, 0x38, 0x95, 0x3e, + 0x94, 0x64, 0x1d, 0xd0, 0x9f, 0x49, 0xd8, 0xbc, 0x6e, 0xf6, 0x1d, 0xf7, 0x54, 0x70, 0xd2, 0x2f, + 0x2a, 0xe4, 0xfe, 0x36, 0x19, 0x57, 0x6a, 0xc7, 0x51, 0xb6, 0x7a, 0xb7, 0x61, 0x16, 0x61, 0xae, + 0x17, 0x0f, 0xfd, 0x53, 0xa7, 0x61, 0xbc, 0x50, 0xad, 0x2e, 0x57, 0x8a, 0x85, 0xf5, 0xca, 0xda, + 0x6a, 0xde, 0x20, 0x63, 0x30, 0x7c, 0xc7, 0x5a, 0xdb, 0xa8, 0xe6, 0x33, 0xe6, 0x5f, 0x36, 0x60, + 0xb2, 0xd2, 0x0a, 0xe9, 0x2e, 0xcf, 0xce, 0xf7, 0xa4, 0x8b, 0xef, 0x0b, 0xda, 0xe2, 0x9b, 0x8b, + 0x3c, 0xff, 0xa2, 0x0a, 0x06, 0x5a, 0x79, 0x0f, 0x61, 0xa6, 0x8b, 0x84, 0xd4, 0x60, 0xb4, 0xb0, + 0x55, 0x5b, 0xab, 0x94, 0x8a, 0xa2, 0x61, 0x52, 0x29, 0x17, 0xd0, 0xee, 0x4a, 0xf8, 0xbd, 0xfa, + 0xc3, 0xc0, 0xf6, 0xdc, 0x86, 0x92, 0xf0, 0x73, 0xe9, 0x39, 0x4b, 0x72, 0x62, 0x27, 0x74, 0x71, + 0xae, 0x40, 0x95, 0x7d, 0x19, 0xe6, 0x7a, 0x71, 0x63, 0x27, 0x15, 0xdd, 0x0d, 0xe6, 0x54, 0x94, + 0x9f, 0x41, 0xf7, 0x7f, 0x91, 0x68, 0xe6, 0x7f, 0x98, 0x81, 0x53, 0xac, 0x5f, 0x9a, 0x34, 0x08, + 0xd8, 0x39, 0x9b, 0x1d, 0xe9, 0xc4, 0x2b, 0xbb, 0x9f, 0x83, 0x91, 0xbd, 0xe3, 0x19, 0x60, 0x38, + 0x3a, 0x21, 0x80, 0xb2, 0x46, 0x5e, 0x18, 0xb0, 0xbf, 0xc9, 0x8b, 0xa0, 0x64, 0xe2, 0x45, 0x51, + 0x31, 0x61, 0x8d, 0xb5, 0xa3, 0x7c, 0xbc, 0x9f, 0x87, 0x61, 0x8c, 0x09, 0x11, 0x2b, 0x5e, 0x6a, + 0x6a, 0xe9, 0x2d, 0xc3, 0x60, 0x11, 0x8b, 0x13, 0x90, 0x6b, 0x00, 0x71, 0xf4, 0xbc, 0x58, 0xd2, + 0xf2, 0x74, 0x18, 0x05, 0xd0, 0x5b, 0x63, 0xfb, 0x3b, 0x8e, 0x08, 0x49, 0xbf, 0x02, 0x33, 0xd2, + 0x50, 0xd0, 0x96, 0x41, 0x0d, 0x3c, 0x7e, 0xc3, 0x9a, 0xe6, 0x05, 0x95, 0xb6, 0x08, 0x6c, 0x30, + 0xff, 0x55, 0x06, 0xc6, 0xb6, 0xd8, 0xfe, 0x87, 0xa7, 0xba, 0xfe, 0xa7, 0xc4, 0x05, 0x18, 0x5f, + 0xf6, 0x9c, 0x86, 0xfe, 0x4a, 0x24, 0x5e, 0x42, 0x37, 0x3d, 0x47, 0x5a, 0x5e, 0x03, 0x4b, 0x45, + 0x3a, 0xe2, 0x02, 0xfd, 0x2e, 0x8c, 0xf0, 0xa0, 0x28, 0x91, 0xd3, 0x5a, 0x6a, 0x40, 0x51, 0x8b, + 0xae, 0xf2, 0x62, 0xc5, 0xc2, 0xb7, 0x83, 0x00, 0x75, 0x3b, 0x16, 0x61, 0x55, 0xca, 0x19, 0x76, + 0x78, 0xb0, 0x33, 0xac, 0xe2, 0xca, 0x3e, 0x32, 0x88, 0x2b, 0xfb, 0xd9, 0x5b, 0x30, 0xae, 0xb4, + 0xe7, 0x58, 0x0a, 0xd1, 0x8f, 0x66, 0x60, 0x12, 0xbf, 0x2a, 0x32, 0xcd, 0x3f, 0x9b, 0x27, 0xf2, + 0x2f, 0x68, 0x27, 0xf2, 0x39, 0x75, 0xbc, 0xf8, 0x97, 0xf5, 0x39, 0x8a, 0xdf, 0x85, 0x99, 0x2e, + 0x44, 0xf2, 0x26, 0x0c, 0xb3, 0xe6, 0xcb, 0x13, 0x4c, 0x3e, 0x39, 0x03, 0xe2, 0x50, 0x43, 0xf6, + 0xe1, 0x81, 0xc5, 0xb1, 0xcd, 0xff, 0xdd, 0x80, 0x09, 0x91, 0x4e, 0xa1, 0xb5, 0xe3, 0x1d, 0xd9, + 0x9d, 0x17, 0x93, 0xdd, 0xc9, 0xdd, 0xc1, 0x44, 0x77, 0xfe, 0xbf, 0xdd, 0x89, 0xb7, 0xb4, 0x4e, + 0x3c, 0x1d, 0x05, 0x41, 0xc8, 0xcf, 0xe9, 0xd3, 0x87, 0xbf, 0x85, 0xa1, 0x78, 0x3a, 0x22, 0xf9, + 0x1a, 0x8c, 0xad, 0xd2, 0x87, 0xda, 0x41, 0xe0, 0x62, 0x0f, 0xa6, 0x57, 0x23, 0x44, 0xbe, 0xa6, + 0x30, 0xb8, 0xa6, 0x45, 0x1f, 0x76, 0x3f, 0xe0, 0x1f, 0xb3, 0x64, 0x67, 0x01, 0x9d, 0xec, 0x38, + 0x53, 0x5f, 0x5c, 0x13, 0xa3, 0x87, 0xe3, 0xaf, 0x66, 0x01, 0xe2, 0xfb, 0x4d, 0xb6, 0x00, 0xa9, + 0x96, 0x74, 0x48, 0x98, 0xeb, 0x10, 0xa4, 0xce, 0x71, 0x01, 0x22, 0x17, 0x61, 0x48, 0xc9, 0x3a, + 0x9c, 0x1a, 0xa4, 0x82, 0x56, 0xd9, 0x22, 0x40, 0x70, 0xd0, 0xaa, 0xdb, 0x0d, 0xda, 0x74, 0xb8, + 0x2c, 0xce, 0xe2, 0x7b, 0x85, 0xb3, 0x31, 0xb4, 0x47, 0x5e, 0xdc, 0x31, 0x86, 0x51, 0x62, 0x08, + 0xe4, 0x9d, 0xc4, 0xc5, 0xf4, 0x50, 0x1c, 0x9b, 0xa3, 0xc2, 0xd5, 0xd8, 0x1c, 0xe5, 0xd2, 0x9a, + 0x2c, 0x40, 0x64, 0x2f, 0x56, 0x05, 0x52, 0x5a, 0x96, 0x64, 0x09, 0x63, 0x34, 0xd2, 0x72, 0xac, + 0x3d, 0x16, 0x2a, 0x60, 0x2a, 0x8d, 0x84, 0x91, 0x2a, 0x8c, 0xb9, 0xad, 0x07, 0xb4, 0x15, 0x7a, + 0xfe, 0xc1, 0xdc, 0x28, 0x0e, 0xfe, 0x19, 0xe5, 0x2a, 0xb9, 0x22, 0xcb, 0xf8, 0x78, 0xe3, 0x11, + 0x25, 0xc2, 0x57, 0x87, 0x3b, 0x02, 0x8a, 0x7b, 0xe3, 0x7f, 0x98, 0x01, 0xd2, 0xcd, 0x80, 0x7c, + 0x01, 0xc6, 0xb9, 0x08, 0xb6, 0xfd, 0xe0, 0x1b, 0xe2, 0xc6, 0x99, 0x7b, 0x92, 0x2a, 0x60, 0xd5, + 0x93, 0x94, 0x83, 0xad, 0xe0, 0x1b, 0x4d, 0xf2, 0x55, 0x38, 0x81, 0x03, 0xd0, 0xa6, 0xbe, 0xeb, + 0x35, 0x6c, 0x0c, 0x5c, 0x73, 0x9a, 0x22, 0xcb, 0xdd, 0x1b, 0x98, 0x8e, 0xb5, 0xbb, 0xb8, 0xc7, + 0x40, 0xcd, 0x30, 0xd4, 0x2a, 0x62, 0x56, 0x39, 0x22, 0x59, 0x87, 0xbc, 0x4a, 0xbf, 0xd3, 0x69, + 0x36, 0xc5, 0xd8, 0x5f, 0xc1, 0x57, 0x9a, 0x12, 0x65, 0x3d, 0x18, 0x4f, 0xc5, 0x8c, 0x6f, 0x77, + 0x9a, 0x4d, 0xf2, 0x39, 0x00, 0xaf, 0x65, 0xef, 0xbb, 0x41, 0xe0, 0xb6, 0x76, 0xc5, 0x24, 0xc0, + 0x55, 0x13, 0x43, 0xd5, 0x6e, 0xf4, 0x5a, 0x2b, 0x1c, 0x28, 0xba, 0xf1, 0xcb, 0x30, 0x23, 0x7c, + 0x48, 0xb7, 0xdc, 0x70, 0x4f, 0x28, 0x68, 0x4f, 0xa2, 0xdd, 0x29, 0x1a, 0xda, 0xbf, 0xcd, 0x00, + 0x14, 0xb6, 0x6a, 0xd2, 0x7d, 0xf9, 0x32, 0x0c, 0x33, 0xb5, 0x53, 0x1e, 0x5f, 0xd1, 0xf8, 0x87, + 0x7c, 0x55, 0xe3, 0x1f, 0x62, 0xb0, 0x95, 0x67, 0xd1, 0x5d, 0xb4, 0xa0, 0x64, 0xe2, 0xb3, 0xae, + 0xcf, 0x41, 0x9a, 0x16, 0xc5, 0x41, 0x64, 0x19, 0x20, 0x76, 0x28, 0x16, 0x07, 0xa1, 0x99, 0xd8, + 0x33, 0x4f, 0x14, 0x88, 0x7c, 0x08, 0xb1, 0x53, 0xb2, 0x3a, 0x11, 0x62, 0x34, 0x72, 0x0f, 0x86, + 0xd6, 0x9d, 0x5d, 0xe9, 0x19, 0xd9, 0xc3, 0xcd, 0xfa, 0xbc, 0xc8, 0x27, 0x18, 0xbb, 0x5a, 0x4f, + 0x85, 0x8e, 0x96, 0x76, 0x15, 0x99, 0x90, 0x32, 0x8c, 0x88, 0x5c, 0xd1, 0x3d, 0x62, 0x6e, 0x44, + 0xaa, 0x68, 0x11, 0x56, 0x8a, 0x40, 0xed, 0xa9, 0x5b, 0x9e, 0x15, 0x7a, 0x01, 0xb2, 0xb5, 0xda, + 0x8a, 0x70, 0x2e, 0x9a, 0x8c, 0xb5, 0xda, 0x5a, 0x6d, 0x45, 0xe6, 0xc3, 0x57, 0x5f, 0x23, 0x65, + 0xc8, 0x26, 0x55, 0x7b, 0x85, 0x6d, 0x32, 0xba, 0x6e, 0x8a, 0x9b, 0x8c, 0xd4, 0x4d, 0x23, 0x8d, + 0x94, 0x29, 0x74, 0x5d, 0xbe, 0xd8, 0xe8, 0x98, 0xa7, 0xf8, 0x62, 0x6b, 0x1e, 0xd8, 0x3f, 0x96, + 0x55, 0x62, 0x7c, 0x44, 0x73, 0xdf, 0x01, 0xb8, 0xeb, 0xb9, 0xad, 0x15, 0x1a, 0xee, 0x79, 0x0d, + 0xc5, 0x25, 0x7c, 0xfc, 0x23, 0xcf, 0x6d, 0xd9, 0xfb, 0x08, 0xfe, 0xfe, 0xe1, 0xbc, 0x82, 0x64, + 0x29, 0x7f, 0x93, 0xd7, 0x61, 0x8c, 0xfd, 0x52, 0xdf, 0x20, 0x47, 0x63, 0x10, 0x52, 0x8b, 0xa7, + 0x27, 0x22, 0x04, 0x72, 0x0b, 0x80, 0x47, 0x1b, 0x29, 0xba, 0x1c, 0x0e, 0x35, 0xbf, 0x3f, 0x49, + 0xc6, 0x28, 0x2a, 0xc8, 0x64, 0x29, 0x6a, 0xba, 0x4c, 0x00, 0x23, 0xb2, 0x84, 0xa0, 0xc5, 0x43, + 0x0c, 0x87, 0x2d, 0xd3, 0xc5, 0xa8, 0xa9, 0x3a, 0x13, 0x64, 0xd8, 0x88, 0xda, 0x52, 0x89, 0x9b, + 0xa8, 0x85, 0x48, 0xe5, 0x8d, 0x08, 0xf6, 0x1a, 0x76, 0x1d, 0xc1, 0x5a, 0x23, 0x22, 0x64, 0xb2, + 0x08, 0xd3, 0xdc, 0x71, 0x31, 0x4a, 0x24, 0x27, 0xc4, 0x2b, 0x2e, 0xe4, 0x38, 0xd3, 0x9c, 0x5a, + 0x7d, 0x82, 0xc0, 0xac, 0xc0, 0x08, 0x9f, 0x0d, 0x18, 0x68, 0x2a, 0xb2, 0x58, 0x28, 0x21, 0x93, + 0x3c, 0xd0, 0x54, 0xc0, 0xbb, 0x03, 0x4d, 0x15, 0x02, 0xf3, 0x17, 0xb3, 0x30, 0x51, 0xf8, 0x66, + 0xc7, 0x8f, 0x02, 0x0f, 0x0a, 0x30, 0x59, 0xeb, 0x6c, 0x47, 0x6e, 0xa7, 0x72, 0x05, 0xf3, 0xa7, + 0xfb, 0xd4, 0x02, 0xd5, 0x9a, 0xae, 0x51, 0x90, 0x32, 0x4c, 0x49, 0xe9, 0x21, 0x72, 0x4b, 0xf2, + 0x85, 0x8d, 0x61, 0x02, 0x32, 0x20, 0xa2, 0x3b, 0xb3, 0x64, 0x82, 0x28, 0x96, 0x21, 0xd9, 0xe3, + 0xc8, 0x90, 0xa1, 0x81, 0x64, 0xc8, 0x87, 0x30, 0x21, 0x6b, 0xc3, 0xd5, 0x3f, 0xfc, 0x64, 0xab, + 0x5f, 0x63, 0x46, 0x96, 0x23, 0x29, 0x30, 0xd2, 0x57, 0x0a, 0xe0, 0x15, 0x85, 0x9c, 0x76, 0x5d, + 0xc9, 0xe2, 0x05, 0x0f, 0xf3, 0x4f, 0x0c, 0x80, 0x3b, 0xc5, 0xea, 0xc7, 0x90, 0xac, 0x6f, 0xc2, + 0xd8, 0xb2, 0x27, 0xad, 0xd3, 0x8a, 0x59, 0xb0, 0x29, 0x81, 0xea, 0x66, 0x11, 0x61, 0x46, 0x12, + 0x31, 0xfb, 0x34, 0x24, 0xe2, 0x2d, 0x80, 0xaa, 0xef, 0x7d, 0x44, 0xeb, 0x61, 0x9c, 0x32, 0x09, + 0x57, 0x4a, 0x9b, 0x43, 0x13, 0xd6, 0x49, 0x05, 0xd9, 0xfc, 0x27, 0x86, 0x1a, 0x28, 0xfe, 0x31, + 0xbe, 0xff, 0xf3, 0x00, 0xd1, 0x9d, 0x99, 0xec, 0x00, 0xae, 0x64, 0x46, 0x50, 0xb5, 0xea, 0x18, + 0x97, 0xbc, 0xaf, 0x44, 0x29, 0xf4, 0xe9, 0x04, 0xb3, 0xab, 0x13, 0x7a, 0x7a, 0x7d, 0x5c, 0x79, + 0x0f, 0xa6, 0x65, 0xac, 0xcf, 0xfa, 0x72, 0x0d, 0x63, 0x73, 0xa7, 0x61, 0x7c, 0xb3, 0x6c, 0x55, + 0x6e, 0x7f, 0x60, 0xdf, 0xde, 0x58, 0x5e, 0xce, 0x3f, 0x47, 0x26, 0x61, 0x4c, 0x00, 0x8a, 0x85, + 0xbc, 0x41, 0x26, 0x20, 0x57, 0x59, 0xad, 0x95, 0x8b, 0x1b, 0x56, 0x39, 0x9f, 0xb9, 0xb2, 0x00, + 0x53, 0xf1, 0x13, 0x5e, 0x68, 0xd3, 0x19, 0x85, 0xac, 0x55, 0xd8, 0xca, 0x3f, 0x47, 0x00, 0x46, + 0xaa, 0xf7, 0x8a, 0xb5, 0xeb, 0xd7, 0xf3, 0x06, 0x19, 0x87, 0xd1, 0x3b, 0xc5, 0xaa, 0x7d, 0x6f, + 0xa5, 0x96, 0xcf, 0x5c, 0xf9, 0x0c, 0xcc, 0xa0, 0xd4, 0x58, 0x76, 0x83, 0x90, 0xb6, 0xa8, 0x8f, + 0xd5, 0x4e, 0x40, 0xae, 0x46, 0xd9, 0x74, 0x0b, 0x29, 0xaf, 0x73, 0xa5, 0xd3, 0x0c, 0xdd, 0x76, + 0x93, 0x3e, 0xca, 0x1b, 0x57, 0x6e, 0xc1, 0xb4, 0xe5, 0x75, 0x42, 0xb7, 0xb5, 0x5b, 0x0b, 0x19, + 0xc6, 0xee, 0x01, 0x39, 0x09, 0x33, 0x1b, 0xab, 0x85, 0x95, 0xc5, 0xca, 0x9d, 0x8d, 0xb5, 0x8d, + 0x9a, 0xbd, 0x52, 0x58, 0x2f, 0x2e, 0x71, 0x23, 0xd2, 0xca, 0x5a, 0x6d, 0xdd, 0xb6, 0xca, 0xc5, + 0xf2, 0xea, 0x7a, 0xde, 0xb8, 0xf2, 0x93, 0x06, 0x4c, 0x6d, 0x04, 0xc2, 0x29, 0x67, 0x03, 0x43, + 0x55, 0xce, 0xc3, 0x0b, 0x1b, 0xb5, 0xb2, 0x65, 0xaf, 0xaf, 0xdd, 0x2b, 0xaf, 0xda, 0x1b, 0xb5, + 0xc2, 0x9d, 0x64, 0x80, 0xdc, 0x3c, 0x3c, 0xaf, 0x60, 0x58, 0xe5, 0xe2, 0xda, 0x66, 0xd9, 0xb2, + 0xab, 0x85, 0x5a, 0x6d, 0x6b, 0xcd, 0x2a, 0xe5, 0x0d, 0x72, 0x16, 0x4e, 0xa5, 0x20, 0xac, 0xdc, + 0x2e, 0xe4, 0x33, 0x5d, 0x65, 0xab, 0xe5, 0xad, 0xc2, 0xb2, 0xbd, 0xb8, 0xb6, 0x9e, 0xcf, 0x5e, + 0x79, 0x8f, 0xad, 0x70, 0x8c, 0x21, 0xe1, 0xe9, 0x2e, 0x72, 0x30, 0xb4, 0xba, 0xb6, 0x5a, 0x4e, + 0x1a, 0xfa, 0x26, 0x20, 0x57, 0xa8, 0x56, 0xad, 0xb5, 0xcd, 0x72, 0x29, 0x9f, 0x61, 0x1d, 0x59, + 0x2a, 0xaf, 0xb2, 0x96, 0x65, 0xaf, 0xfc, 0x3b, 0x40, 0x78, 0x70, 0x8c, 0xcc, 0x19, 0x80, 0x9d, + 0x77, 0x0e, 0xce, 0x2e, 0xb1, 0xaf, 0xc6, 0x7a, 0x57, 0xd6, 0x4a, 0xc9, 0xef, 0x39, 0x05, 0x24, + 0x51, 0xbe, 0x76, 0xfb, 0x76, 0xde, 0x20, 0xa7, 0xe1, 0x44, 0x02, 0x5e, 0xb2, 0xd6, 0xaa, 0xf9, + 0x4c, 0x4a, 0xc1, 0xbd, 0x72, 0xb9, 0x9a, 0xcf, 0x5e, 0x31, 0x61, 0xa6, 0x48, 0xfd, 0x90, 0xed, + 0xbd, 0x2d, 0x76, 0xd2, 0xc3, 0xea, 0x27, 0x61, 0xac, 0xfc, 0xa5, 0xf5, 0xf2, 0x6a, 0xad, 0xb2, + 0xb6, 0x9a, 0x7f, 0xee, 0xca, 0x0b, 0x09, 0x1c, 0x39, 0x2d, 0x6a, 0xb5, 0xa5, 0xfc, 0x73, 0x57, + 0xbe, 0xc2, 0xce, 0xa5, 0x4a, 0x2a, 0x99, 0xd3, 0x70, 0x42, 0xfd, 0x5d, 0xa5, 0xad, 0x86, 0xdb, + 0xda, 0xcd, 0x3f, 0x97, 0x2c, 0xb0, 0x3a, 0xad, 0x16, 0x2b, 0xc0, 0xce, 0x57, 0x0b, 0xd6, 0xa9, + 0xbf, 0xef, 0xb6, 0x9c, 0x90, 0x36, 0xf2, 0x99, 0x2b, 0x57, 0x61, 0x52, 0x0b, 0xff, 0x61, 0xf5, + 0x2e, 0xaf, 0x89, 0xe9, 0xb8, 0x52, 0x2e, 0x55, 0x36, 0x56, 0xf2, 0xc3, 0xac, 0xdb, 0x97, 0x2a, + 0x77, 0x96, 0xf2, 0x70, 0xe5, 0x2b, 0x6c, 0x57, 0xc0, 0x08, 0xf9, 0x95, 0xdb, 0x05, 0xd9, 0x50, + 0xd6, 0x39, 0x3c, 0x50, 0xb0, 0x5c, 0xab, 0x71, 0x5b, 0xe4, 0x0b, 0x30, 0x27, 0x7e, 0xd8, 0x85, + 0xd5, 0x92, 0xbd, 0x54, 0xb0, 0x4a, 0x5b, 0x05, 0x8b, 0x75, 0xcb, 0x07, 0xf9, 0x0c, 0xf6, 0xaf, + 0x02, 0xb1, 0xd7, 0xd7, 0x36, 0x8a, 0x4b, 0xf9, 0xec, 0x15, 0x17, 0xf2, 0x49, 0x57, 0xc2, 0x2e, + 0xf3, 0xae, 0xb5, 0xb1, 0xba, 0xca, 0x47, 0x7d, 0x1a, 0xc6, 0xd7, 0xd6, 0x97, 0xca, 0x96, 0x08, + 0xca, 0xc4, 0x28, 0xcc, 0x8d, 0xd5, 0xc2, 0xc6, 0xfa, 0xd2, 0x9a, 0x55, 0xf9, 0x32, 0x1b, 0x7e, + 0x32, 0x07, 0xb3, 0xb5, 0xe5, 0x42, 0xf1, 0x9e, 0xbd, 0xba, 0xb6, 0x6e, 0x57, 0x56, 0xed, 0xe2, + 0x52, 0x61, 0x75, 0xb5, 0xbc, 0x9c, 0x87, 0x2b, 0xff, 0xd4, 0x80, 0xe7, 0xfb, 0xd8, 0xca, 0xc8, + 0x1b, 0x70, 0x79, 0xa9, 0x5c, 0x28, 0x2d, 0x97, 0x6b, 0x35, 0x9b, 0xb1, 0x2c, 0xaf, 0xae, 0x0b, + 0x4b, 0xab, 0x5d, 0x5b, 0x2f, 0xac, 0x27, 0x67, 0xcc, 0x65, 0x78, 0xa5, 0x3f, 0x7a, 0x3c, 0x59, + 0x2f, 0xc1, 0xcb, 0xfd, 0x51, 0xc5, 0xe4, 0xcd, 0x90, 0x2b, 0x70, 0xb1, 0x3f, 0x66, 0x34, 0xe9, + 0xb3, 0x8b, 0xef, 0xfc, 0xde, 0x1f, 0x9c, 0x7b, 0xee, 0xf7, 0xfe, 0xf0, 0x9c, 0xf1, 0xfb, 0x7f, + 0x78, 0xce, 0xf8, 0x97, 0x7f, 0x78, 0xce, 0xf8, 0xf2, 0x6b, 0xc7, 0x48, 0x9b, 0xbd, 0x3d, 0x82, + 0xa6, 0xfc, 0x1b, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x05, 0xb9, 0x2a, 0x0a, 0xd4, 0x57, + 0x01, 0x00, } func (this *PluginSpecV1) Equal(that interface{}) bool { @@ -18390,6 +18460,30 @@ func (this *PluginSpecV1_PagerDuty) Equal(that interface{}) bool { } return true } +func (this *PluginSpecV1_Mattermost) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*PluginSpecV1_Mattermost) + if !ok { + that2, ok := that.(PluginSpecV1_Mattermost) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Mattermost.Equal(that1.Mattermost) { + return false + } + return true +} func (this *PluginSlackAccessSettings) Equal(that interface{}) bool { if that == nil { return this == nil @@ -18517,6 +18611,42 @@ func (this *PluginOpenAISettings) Equal(that interface{}) bool { } return true } +func (this *PluginMattermostSettings) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*PluginMattermostSettings) + if !ok { + that2, ok := that.(PluginMattermostSettings) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.ServerUrl != that1.ServerUrl { + return false + } + if this.Team != that1.Team { + return false + } + if this.Channel != that1.Channel { + return false + } + if this.ReportToEmail != that1.ReportToEmail { + return false + } + if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { + return false + } + return true +} func (this *PluginJamfSettings) Equal(that interface{}) bool { if that == nil { return this == nil @@ -35302,6 +35432,27 @@ func (m *PluginSpecV1_PagerDuty) MarshalToSizedBuffer(dAtA []byte) (int, error) } return len(dAtA) - i, nil } +func (m *PluginSpecV1_Mattermost) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PluginSpecV1_Mattermost) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Mattermost != nil { + { + size, err := m.Mattermost.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + return len(dAtA) - i, nil +} func (m *PluginSlackAccessSettings) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -35463,6 +35614,61 @@ func (m *PluginOpenAISettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PluginMattermostSettings) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PluginMattermostSettings) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PluginMattermostSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.ReportToEmail) > 0 { + i -= len(m.ReportToEmail) + copy(dAtA[i:], m.ReportToEmail) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ReportToEmail))) + i-- + dAtA[i] = 0x22 + } + if len(m.Channel) > 0 { + i -= len(m.Channel) + copy(dAtA[i:], m.Channel) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Channel))) + i-- + dAtA[i] = 0x1a + } + if len(m.Team) > 0 { + i -= len(m.Team) + copy(dAtA[i:], m.Team) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Team))) + i-- + dAtA[i] = 0x12 + } + if len(m.ServerUrl) > 0 { + i -= len(m.ServerUrl) + copy(dAtA[i:], m.ServerUrl) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ServerUrl))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *PluginJamfSettings) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -35893,12 +36099,12 @@ func (m *PluginOAuth2AccessTokenCredentials) MarshalToSizedBuffer(dAtA []byte) ( i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n297, err297 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err297 != nil { - return 0, err297 + n298, err298 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err298 != nil { + return 0, err298 } - i -= n297 - i = encodeVarintTypes(dAtA, i, uint64(n297)) + i -= n298 + i = encodeVarintTypes(dAtA, i, uint64(n298)) i-- dAtA[i] = 0x1a if len(m.RefreshToken) > 0 { @@ -36686,21 +36892,21 @@ func (m *ScheduledAgentUpgradeWindow) MarshalToSizedBuffer(dAtA []byte) (int, er i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n311, err311 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Stop, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Stop):]) - if err311 != nil { - return 0, err311 - } - i -= n311 - i = encodeVarintTypes(dAtA, i, uint64(n311)) - i-- - dAtA[i] = 0x12 - n312, err312 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Start, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Start):]) + n312, err312 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Stop, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Stop):]) if err312 != nil { return 0, err312 } i -= n312 i = encodeVarintTypes(dAtA, i, uint64(n312)) i-- + dAtA[i] = 0x12 + n313, err313 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Start, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Start):]) + if err313 != nil { + return 0, err313 + } + i -= n313 + i = encodeVarintTypes(dAtA, i, uint64(n313)) + i-- dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -37126,12 +37332,12 @@ func (m *OktaAssignmentSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x30 } - n319, err319 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastTransition, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition):]) - if err319 != nil { - return 0, err319 + n320, err320 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastTransition, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastTransition):]) + if err320 != nil { + return 0, err320 } - i -= n319 - i = encodeVarintTypes(dAtA, i, uint64(n319)) + i -= n320 + i = encodeVarintTypes(dAtA, i, uint64(n320)) i-- dAtA[i] = 0x2a if m.Status != 0 { @@ -37139,12 +37345,12 @@ func (m *OktaAssignmentSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x20 } - n320, err320 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CleanupTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CleanupTime):]) - if err320 != nil { - return 0, err320 + n321, err321 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CleanupTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CleanupTime):]) + if err321 != nil { + return 0, err321 } - i -= n320 - i = encodeVarintTypes(dAtA, i, uint64(n320)) + i -= n321 + i = encodeVarintTypes(dAtA, i, uint64(n321)) i-- dAtA[i] = 0x1a if len(m.Targets) > 0 { @@ -45835,6 +46041,18 @@ func (m *PluginSpecV1_PagerDuty) Size() (n int) { } return n } +func (m *PluginSpecV1_Mattermost) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Mattermost != nil { + l = m.Mattermost.Size() + n += 1 + l + sovTypes(uint64(l)) + } + return n +} func (m *PluginSlackAccessSettings) Size() (n int) { if m == nil { return 0 @@ -45915,6 +46133,34 @@ func (m *PluginOpenAISettings) Size() (n int) { return n } +func (m *PluginMattermostSettings) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ServerUrl) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Team) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.Channel) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + l = len(m.ReportToEmail) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *PluginJamfSettings) Size() (n int) { if m == nil { return 0 @@ -96900,6 +97146,41 @@ func (m *PluginSpecV1) Unmarshal(dAtA []byte) error { } m.Settings = &PluginSpecV1_PagerDuty{v} iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Mattermost", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &PluginMattermostSettings{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Settings = &PluginSpecV1_Mattermost{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -97350,6 +97631,185 @@ func (m *PluginOpenAISettings) Unmarshal(dAtA []byte) error { } return nil } +func (m *PluginMattermostSettings) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PluginMattermostSettings: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PluginMattermostSettings: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServerUrl", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ServerUrl = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Team", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Team = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Channel", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Channel = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportToEmail", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportToEmail = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *PluginJamfSettings) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/go.mod b/go.mod index 787c011de7674..26c38c83c49b5 100644 --- a/go.mod +++ b/go.mod @@ -114,6 +114,7 @@ require ( github.com/julienschmidt/httprouter v1.3.0 // replaced github.com/keys-pub/go-libfido2 v1.5.3-0.20220306005615-8ab03fb1ec27 // replaced github.com/kyroy/kdtree v0.0.0-20200419114247-70830f883f1d + github.com/mailgun/holster/v3 v3.16.2 github.com/mailgun/lemma v0.0.0-20170619173223-4214099fb348 github.com/mailgun/timetools v0.0.0-20170619190023-f3a7b8ffff47 github.com/mailgun/ttlmap v0.0.0-20170619185759-c1c17f74874f diff --git a/go.sum b/go.sum index 8482b68190366..becb8d96e8966 100644 --- a/go.sum +++ b/go.sum @@ -177,6 +177,8 @@ github.com/ThalesIgnite/crypto11 v1.2.5 h1:1IiIIEqYmBvUYFeMnHqRft4bwf/O36jryEUpY github.com/ThalesIgnite/crypto11 v1.2.5/go.mod h1:ILDKtnCKiQ7zRoNxcp36Y1ZR8LBPmR2E23+wTQe/MlE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +github.com/ahmetb/go-linq v3.0.0+incompatible h1:qQkjjOXKrKOTy83X8OpRmnKflXKQIL/mC/gMVVDMhOA= +github.com/ahmetb/go-linq v3.0.0+incompatible/go.mod h1:PFffvbdbtw+QTB0WKRP0cNht7vnCfnGlEpak/DVg5cY= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE= @@ -386,8 +388,10 @@ github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoC github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.15+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -848,6 +852,7 @@ github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.10.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.12.1/go.mod h1:8XEsbTttt/W+VvjtQhLACqCisSPWTxCZ7sBRjU6iH9c= github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= @@ -859,16 +864,21 @@ github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/api v1.7.0/go.mod h1:1NSuaUUkFaJzMasbfq/11wKYWSR67Xn6r2DXKhuDNFg= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.6.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-retryablehttp v0.6.4/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -887,8 +897,11 @@ github.com/hashicorp/golang-lru/v2 v2.0.4/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyf github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.3/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= @@ -1077,6 +1090,8 @@ github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailgun/holster/v3 v3.16.2 h1:Zl5Spy4WdgLMKWbHgkuDwsQwsJN0Xr3Mgt2dZGJih18= +github.com/mailgun/holster/v3 v3.16.2/go.mod h1:U3cbmr+/KfYqWINVCqyEhEID8hBDOPHEj+XmDKbi2nk= github.com/mailgun/lemma v0.0.0-20170619173223-4214099fb348 h1:H2VEGfxRuhOR5Dl6guYNTXrHEMh0JkKFDBZqxVCQ3RE= github.com/mailgun/lemma v0.0.0-20170619173223-4214099fb348/go.mod h1:2+eAliypGoT5/vXx9ufZ7N9I3H8Z/tXVGqyNVzCOfKQ= github.com/mailgun/metrics v0.0.0-20150124003306-2b3c4565aafd h1:yCc0lIUQncZ7luEMtOpYjYYcIOh1d/eQOGWnMKRHuoI= @@ -1134,6 +1149,7 @@ github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/miekg/pkcs11 v1.0.2/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3-0.20190429190417-a667d056470f/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= @@ -1147,6 +1163,7 @@ github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/minio-go/v7 v7.0.55 h1:ZXqUO/8cgfHzI+08h/zGuTTFpISSA32BZmBE3FCLJas= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ= github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -1295,6 +1312,7 @@ github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= github.com/pquerna/otp v1.4.0 h1:wZvl1TIVxKRThZIBiwOOHOGP/1+nZyWBil9Y2XNEDzg= @@ -1303,6 +1321,7 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= @@ -1323,6 +1342,7 @@ github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7q github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= @@ -1335,6 +1355,7 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -1669,6 +1690,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191117063200-497ca9f6d64f/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -1864,8 +1886,11 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1878,6 +1903,7 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1996,6 +2022,7 @@ golang.org/x/tools v0.0.0-20190729092621-ff9f1409240a/go.mod h1:jcCCGcm9btYwXyDq golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190829051458-42f498d34c4d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191010075000-0337d82405ff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= diff --git a/integrations/access/common/status.go b/integrations/access/common/status.go index 55a19fa3364ad..5c967a5ec3ab2 100644 --- a/integrations/access/common/status.go +++ b/integrations/access/common/status.go @@ -18,6 +18,7 @@ package common import ( "context" + "net/http" "github.com/gravitational/teleport/api/types" ) @@ -26,3 +27,16 @@ import ( type StatusSink interface { Emit(ctx context.Context, s types.PluginStatus) error } + +func StatusFromStatusCode(httpCode int) types.PluginStatus { + var code types.PluginStatusCode + switch { + case httpCode == http.StatusUnauthorized: + code = types.PluginStatusCode_UNAUTHORIZED + case httpCode >= 200 && httpCode < 400: + code = types.PluginStatusCode_RUNNING + default: + code = types.PluginStatusCode_OTHER_ERROR + } + return &types.PluginStatusV1{Code: code} +} diff --git a/integrations/access/common/status_test.go b/integrations/access/common/status_test.go new file mode 100644 index 0000000000000..be42745f11189 --- /dev/null +++ b/integrations/access/common/status_test.go @@ -0,0 +1,58 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package common + +import ( + "fmt" + "net/http" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/gravitational/teleport/api/types" +) + +func TestStatusFromStatusCode(t *testing.T) { + testCases := []struct { + httpCode int + want types.PluginStatusCode + }{ + { + httpCode: http.StatusOK, + want: types.PluginStatusCode_RUNNING, + }, + { + httpCode: http.StatusNoContent, + want: types.PluginStatusCode_RUNNING, + }, + + { + httpCode: http.StatusUnauthorized, + want: types.PluginStatusCode_UNAUTHORIZED, + }, + { + httpCode: http.StatusInternalServerError, + want: types.PluginStatusCode_OTHER_ERROR, + }, + } + + for _, tc := range testCases { + t.Run(fmt.Sprintf("%d", tc.httpCode), func(t *testing.T) { + require.Equal(t, tc.want, StatusFromStatusCode(tc.httpCode).GetCode()) + }) + } +} diff --git a/integrations/access/mattermost/app.go b/integrations/access/mattermost/app.go new file mode 100644 index 0000000000000..32abc6d065f57 --- /dev/null +++ b/integrations/access/mattermost/app.go @@ -0,0 +1,30 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "github.com/gravitational/teleport/integrations/access/common" +) + +const ( + // mattermostPluginName is used to tag PluginData and as a Delegator in Audit log. + mattermostPluginName = "mattermost" +) + +func NewMattermostApp(conf *Config) *common.BaseApp { + return common.NewApp(conf, mattermostPluginName) +} diff --git a/integrations/access/mattermost/bot.go b/integrations/access/mattermost/bot.go new file mode 100644 index 0000000000000..463b2f7c01a77 --- /dev/null +++ b/integrations/access/mattermost/bot.go @@ -0,0 +1,512 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "context" + "net/http" + "net/url" + "strings" + "text/template" + "time" + + "github.com/go-resty/resty/v2" + "github.com/gravitational/trace" + "github.com/mailgun/holster/v3/collections" + + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/integrations/access/common" + "github.com/gravitational/teleport/integrations/lib" + "github.com/gravitational/teleport/integrations/lib/logger" + pd "github.com/gravitational/teleport/integrations/lib/plugindata" +) + +const ( + mmMaxConns = 100 + mmHTTPTimeout = 10 * time.Second + mmStatusEmitTimeout = 10 * time.Second + mmCacheSize = 1024 +) + +var postTextTemplate = template.Must(template.New("description").Parse( + `{{if eq .Status "PENDING"}}*You have new pending request to review!*{{end}} +**User**: {{.User}} +**Roles**: {{range $index, $element := .Roles}}{{if $index}}, {{end}}{{ . }}{{end}} +**Request ID**: {{.ID}} +{{if .RequestReason}}**Reason**: {{.RequestReason}}{{end}} +**Status**: {{.StatusEmoji}} {{.Status}} +{{if .ResolutionReason}}**Resolution reason**: {{.ResolutionReason}}{{end}} +{{if .RequestLink}}**Link**: [{{.RequestLink}}]({{.RequestLink}}) +{{else if eq .Status "PENDING"}}**Approve**: ` + "`tsh request review --approve {{.ID}}`" + ` +**Deny**: ` + "`tsh request review --deny {{.ID}}`" + `{{end}}`, +)) +var reviewCommentTemplate = template.Must(template.New("review comment").Parse( + `{{.Author}} reviewed the request at {{.Created.Format .TimeFormat}}. +Resolution: {{.ProposedStateEmoji}} {{.ProposedState}}. +{{if .Reason}}Reason: {{.Reason}}.{{end}}`, +)) + +// Mattermost has a 4000 or 16k character limit for posts (depending on the +// configuration) so we truncate all reasons to a generous but conservative +// limit +const ( + requestReasonLimit = 500 + resolutionReasonLimit + reviewReasonLimit +) + +// Bot is a Mattermost client that works with access.Request. +type Bot struct { + client *resty.Client + clusterName string + webProxyURL *url.URL +} + +type getMeKey struct{} +type getChannelByTeamNameAndNameKey struct { + team string + name string +} +type getUserByEmail struct { + email string +} + +type etagCacheCtxKey struct{} + +type etagCacheEntry struct { + etag string + value interface{} +} + +func NewBot(conf Config, clusterName, webProxyAddr string) (Bot, error) { + var ( + webProxyURL *url.URL + err error + ) + if webProxyAddr != "" { + if webProxyURL, err = lib.AddrToURL(webProxyAddr); err != nil { + return Bot{}, trace.Wrap(err) + } + } + + cache := collections.NewLRUCache(mmCacheSize) + + client := resty. + NewWithClient(&http.Client{ + Timeout: mmHTTPTimeout, + Transport: &http.Transport{ + MaxConnsPerHost: mmMaxConns, + MaxIdleConnsPerHost: mmMaxConns, + }, + }). + SetBaseURL(conf.Mattermost.URL). + SetHeader("Content-Type", "application/json"). + SetHeader("Accept", "application/json"). + SetHeader("Authorization", "BEARER "+conf.Mattermost.Token) + + // Error response parsing. + client.OnBeforeRequest(func(_ *resty.Client, req *resty.Request) error { + req.SetError(&ErrorResult{}) + return nil + }) + client.OnAfterResponse(func(_ *resty.Client, resp *resty.Response) error { + log := logger.Get(resp.Request.Context()) + + status := common.StatusFromStatusCode(resp.StatusCode()) + sink := conf.StatusSink + defer func() { + if sink == nil { + return + } + + // No context in scope, use background with a reasonable timeout + ctx, cancel := context.WithTimeout(context.Background(), mmStatusEmitTimeout) + defer cancel() + if err := sink.Emit(ctx, status); err != nil { + log.Errorf("Error while emitting plugin status: %v", err) + } + }() + + if !resp.IsError() { + return nil + } + + result := resp.Error() + if result == nil { + return nil + } + + if result, ok := result.(*ErrorResult); ok { + return trace.Wrap(result) + } + + return trace.Errorf("unknown error result %#v", result) + }) + + // ETag caching. + client.OnBeforeRequest(func(_ *resty.Client, req *resty.Request) error { + if req.Method != resty.MethodGet { + return nil + } + + cacheKey := req.Context().Value(etagCacheCtxKey{}) + if cacheKey == nil { + return nil + } + + val, ok := cache.Get(cacheKey) + if !ok { + return nil + } + + res, ok := val.(etagCacheEntry) + if !ok { + return trace.Errorf("etag cache entry of unknown type %T", val) + } + + req.SetHeader("If-None-Match", res.etag) + req.SetResult(res.value) + return nil + }) + client.OnAfterResponse(func(_ *resty.Client, resp *resty.Response) error { + req := resp.Request + if req.Method != resty.MethodGet { + return nil + } + + cacheKey := req.Context().Value(etagCacheCtxKey{}) + if cacheKey == nil { + return nil + } + + etag := resp.Header().Get("ETag") + if etag == "" { + return nil + } + + if resp.IsSuccess() || resp.StatusCode() == http.StatusNotModified { + cache.Add(cacheKey, etagCacheEntry{etag: etag, value: resp.Result()}) + } + + return nil + }) + + return Bot{ + client: client, + clusterName: clusterName, + webProxyURL: webProxyURL, + }, nil +} + +func (b Bot) CheckHealth(ctx context.Context) error { + _, err := b.GetMe(ctx) + return err +} + +func (b Bot) GetMe(ctx context.Context) (User, error) { + resp, err := b.client.NewRequest(). + SetContext(context.WithValue(ctx, etagCacheCtxKey{}, getMeKey{})). + SetResult(&User{}). + Get("api/v4/users/me") + if err != nil { + return User{}, trace.Wrap(err) + } + return userResult(resp) +} + +// Broadcast posts request info to Mattermost. +func (b Bot) Broadcast(ctx context.Context, recipients []common.Recipient, reqID string, reqData pd.AccessRequestData) (common.SentMessages, error) { + text, err := b.buildPostText(reqID, reqData) + if err != nil { + return nil, trace.Wrap(err) + } + + var data common.SentMessages + var errors []error + + for _, recipient := range recipients { + post := Post{ + ChannelID: recipient.ID, + Message: text, + } + _, err = b.client.NewRequest(). + SetContext(ctx). + SetBody(post). + SetResult(&post). + Post("api/v4/posts") + if err != nil { + errors = append(errors, trace.Wrap(err)) + continue + } + + data = append(data, common.MessageData{ChannelID: post.ChannelID, MessageID: post.ID}) + } + + return data, trace.NewAggregate(errors...) +} + +func (b Bot) PostReviewReply(ctx context.Context, channelID, rootID string, review types.AccessReview) error { + if review.Reason != "" { + review.Reason = lib.MarkdownEscape(review.Reason, reviewReasonLimit) + } + + var proposedStateEmoji string + switch review.ProposedState { + case types.RequestState_APPROVED: + proposedStateEmoji = "✅" + case types.RequestState_DENIED: + proposedStateEmoji = "❌" + } + + var builder strings.Builder + err := reviewCommentTemplate.Execute(&builder, struct { + types.AccessReview + ProposedState string + ProposedStateEmoji string + TimeFormat string + }{ + review, + review.ProposedState.String(), + proposedStateEmoji, + time.RFC822, + }) + if err != nil { + return trace.Wrap(err) + } + text := builder.String() + + _, err = b.client.NewRequest(). + SetContext(ctx). + SetBody(Post{ + ChannelID: channelID, + RootID: rootID, + Message: text, + }). + Post("api/v4/posts") + return trace.Wrap(err) +} + +// LookupChannel fetches channel id by its name and team name. +func (b Bot) LookupChannel(ctx context.Context, team, name string) (string, error) { + resp, err := b.client.NewRequest(). + SetContext(context.WithValue(ctx, etagCacheCtxKey{}, getChannelByTeamNameAndNameKey{team: team, name: name})). + SetPathParams(map[string]string{"team": team, "name": name}). + SetResult(&Channel{}). + Get("api/v4/teams/name/{team}/channels/name/{name}") + if err != nil { + return "", trace.Wrap(err) + } + + channel, err := channelResult(resp) + if err != nil { + return "", trace.Wrap(err) + } + + return channel.ID, nil +} + +// LookupDirectChannel fetches user's direct message channel id by email. +func (b Bot) LookupDirectChannel(ctx context.Context, email string) (string, error) { + resp, err := b.client.NewRequest(). + SetContext(context.WithValue(ctx, etagCacheCtxKey{}, getUserByEmail{email: email})). + SetPathParams(map[string]string{"email": email}). + SetResult(&User{}). + Get("api/v4/users/email/{email}") + if err != nil { + return "", trace.Wrap(err) + } + user, err := userResult(resp) + if err != nil { + return "", trace.Wrap(err) + } + + me, err := b.GetMe(ctx) + if err != nil { + return "", trace.Wrap(err) + } + + resp, err = b.client.NewRequest(). + SetContext(ctx). + SetBody([]string{me.ID, user.ID}). + SetResult(&Channel{}). + Post("api/v4/channels/direct") + if err != nil { + return "", trace.Wrap(err) + } + channel, err := channelResult(resp) + if err != nil { + return "", trace.Wrap(err) + } + + return channel.ID, nil +} + +func (b Bot) UpdateMessages(ctx context.Context, reqID string, reqData pd.AccessRequestData, mmData common.SentMessages, reviews []types.AccessReview) error { + text, err := b.buildPostText(reqID, reqData) + if err != nil { + return trace.Wrap(err) + } + + var errors []error + for _, msg := range mmData { + post := Post{ + ChannelID: msg.ChannelID, + ID: msg.MessageID, + Message: text, + } + _, err := b.client.NewRequest(). + SetContext(ctx). + SetBody(post). + SetPathParams(map[string]string{"postID": msg.MessageID}). + Put("api/v4/posts/{postID}") + if err != nil { + errors = append(errors, trace.Wrap(err)) + } + } + + return trace.NewAggregate(errors...) +} + +func (b Bot) buildPostText(reqID string, reqData pd.AccessRequestData) (string, error) { + resolutionTag := reqData.ResolutionTag + + if reqData.RequestReason != "" { + reqData.RequestReason = lib.MarkdownEscape(reqData.RequestReason, requestReasonLimit) + } + if reqData.ResolutionReason != "" { + reqData.ResolutionReason = lib.MarkdownEscape(reqData.ResolutionReason, resolutionReasonLimit) + } + + var statusEmoji string + status := string(resolutionTag) + switch resolutionTag { + case pd.Unresolved: + status = "PENDING" + statusEmoji = "⏳" + case pd.ResolvedApproved: + statusEmoji = "✅" + case pd.ResolvedDenied: + statusEmoji = "❌" + case pd.ResolvedExpired: + statusEmoji = "⌛" + } + + var requestLink string + if b.webProxyURL != nil { + reqURL := *b.webProxyURL + reqURL.Path = lib.BuildURLPath("web", "requests", reqID) + requestLink = reqURL.String() + } + + var ( + builder strings.Builder + err error + ) + + err = postTextTemplate.Execute(&builder, struct { + ID string + Status string + StatusEmoji string + RequestLink string + pd.AccessRequestData + }{ + reqID, + status, + statusEmoji, + requestLink, + reqData, + }) + if err != nil { + return "", trace.Wrap(err) + } + + return builder.String(), nil +} + +func (b Bot) tryLookupDirectChannel(ctx context.Context, userEmail string) string { + log := logger.Get(ctx).WithField("mm_user_email", userEmail) + channel, err := b.LookupDirectChannel(ctx, userEmail) + if err != nil { + if errResult, ok := trace.Unwrap(err).(*ErrorResult); ok { + log.Warningf("Failed to lookup direct channel info: %q", errResult.Message) + } else { + log.WithError(err).Error("Failed to lookup direct channel info") + } + return "" + } + return channel +} + +func (b Bot) tryLookupChannel(ctx context.Context, team, name string) string { + log := logger.Get(ctx).WithFields(logger.Fields{ + "mm_team": team, + "mm_channel": name, + }) + channel, err := b.LookupChannel(ctx, team, name) + if err != nil { + if errResult, ok := trace.Unwrap(err).(*ErrorResult); ok { + log.Warningf("Failed to lookup channel info: %q", errResult.Message) + } else { + log.WithError(err).Error("Failed to lookup channel info") + } + return "" + } + return channel +} + +// FetchRecipient returns the recipient for the given raw recipient. +func (b Bot) FetchRecipient(ctx context.Context, recipient string) (*common.Recipient, error) { + var channel string + + // Recipients from config file could contain either email or team and + // channel names separated by '/' symbol. It's up to user what format to use. + if lib.IsEmail(recipient) { + channel = b.tryLookupDirectChannel(ctx, recipient) + } else { + parts := strings.Split(recipient, "/") + if len(parts) == 2 { + channel = b.tryLookupChannel(ctx, parts[0], parts[1]) + } else { + return nil, trace.BadParameter("Recipient must be either a user email or a channel in the format \"team/channel\" but got %q", recipient) + } + } + + return &common.Recipient{ + Name: recipient, + ID: channel, + Kind: "Channel", + Data: nil, + }, nil +} + +func userResult(resp *resty.Response) (User, error) { + result := resp.Result() + ptr, ok := result.(*User) + if !ok { + return User{}, trace.Errorf("unknown result type %T", result) + } + return *ptr, nil +} + +func channelResult(resp *resty.Response) (Channel, error) { + result := resp.Result() + ptr, ok := result.(*Channel) + if !ok { + return Channel{}, trace.Errorf("unknown result type %T", result) + } + return *ptr, nil +} diff --git a/integrations/access/mattermost/config.go b/integrations/access/mattermost/config.go new file mode 100644 index 0000000000000..079b124713d3b --- /dev/null +++ b/integrations/access/mattermost/config.go @@ -0,0 +1,94 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "strings" + + "github.com/gravitational/trace" + "github.com/pelletier/go-toml" + + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/integrations/access/common" + "github.com/gravitational/teleport/integrations/lib" +) + +type Config struct { + common.BaseConfig + Mattermost MattermostConfig + StatusSink common.StatusSink +} + +type MattermostConfig struct { + URL string `toml:"url"` + Recipients []string `toml:"recipients"` + Token string `toml:"token"` +} + +func LoadConfig(filepath string) (*Config, error) { + t, err := toml.LoadFile(filepath) + if err != nil { + return nil, trace.Wrap(err) + } + conf := &Config{} + if err := t.Unmarshal(conf); err != nil { + return nil, trace.Wrap(err) + } + if strings.HasPrefix(conf.Mattermost.Token, "/") { + conf.Mattermost.Token, err = lib.ReadPassword(conf.Mattermost.Token) + if err != nil { + return nil, trace.Wrap(err) + } + } + if err := conf.CheckAndSetDefaults(); err != nil { + return nil, trace.Wrap(err) + } + return conf, nil +} + +func (c *Config) CheckAndSetDefaults() error { + if err := c.Teleport.CheckAndSetDefaults(); err != nil { + return trace.Wrap(err) + } + if c.Mattermost.Token == "" { + return trace.BadParameter("missing required value mattermost.token") + } + if c.Mattermost.URL == "" { + return trace.BadParameter("missing required value mattermost.url") + } + if c.Log.Output == "" { + c.Log.Output = "stderr" + } + if c.Log.Severity == "" { + c.Log.Severity = "info" + } + + if len(c.Recipients) == 0 { + return trace.BadParameter("missing required value mattermost.recipients") + } + + c.PluginType = types.PluginTypeMattermost + return nil +} + +func (c *Config) NewBot(clusterName, webProxyAddr string) (common.MessagingBot, error) { + bot, err := NewBot(*c, clusterName, webProxyAddr) + if err != nil { + return nil, trace.Wrap(err) + } + return bot, nil +} diff --git a/integrations/access/mattermost/fake_mattermost_test.go b/integrations/access/mattermost/fake_mattermost_test.go new file mode 100644 index 0000000000000..a1bda74595679 --- /dev/null +++ b/integrations/access/mattermost/fake_mattermost_test.go @@ -0,0 +1,386 @@ +// Copyright 2023 Gravitational, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mattermost + +import ( + "context" + "encoding/json" + "fmt" + "net/http" + "net/http/httptest" + "runtime/debug" + "sort" + "sync" + "sync/atomic" + + "github.com/gravitational/trace" + "github.com/julienschmidt/httprouter" + log "github.com/sirupsen/logrus" +) + +type FakeMattermost struct { + srv *httptest.Server + objects sync.Map + botUserID string + newPosts chan Post + postUpdates chan Post + + postIDCounter uint64 + userIDCounter uint64 + teamIDCounter uint64 + channelIDCounter uint64 +} + +type fakeUserByEmailKey string +type fakeTeamByNameKey string +type fakeChannelByTeamNameAndNameKey struct { + team string + channel string +} +type fakeDirectChannelUsersKey struct { + user1ID string + user2ID string +} +type fakeDirectChannelKey string + +type FakeDirectChannel struct { + User1ID string + User2ID string + Channel +} + +func NewFakeMattermost(botUser User, concurrency int) *FakeMattermost { + router := httprouter.New() + + mattermost := &FakeMattermost{ + newPosts: make(chan Post, concurrency*6), + postUpdates: make(chan Post, concurrency*2), + srv: httptest.NewServer(router), + } + mattermost.botUserID = mattermost.StoreUser(botUser).ID + + router.GET("/api/v4/teams/name/:team", func(rw http.ResponseWriter, r *http.Request, ps httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + name := ps.ByName("team") + team, found := mattermost.GetTeamByName(name) + if !found { + rw.WriteHeader(http.StatusNotFound) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusNotFound, Message: "Unable to find the team."}) + panicIf(err) + return + } + err := json.NewEncoder(rw).Encode(team) + panicIf(err) + }) + + router.GET("/api/v4/teams/name/:team/channels/name/:channel", func(rw http.ResponseWriter, r *http.Request, ps httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + teamName := ps.ByName("team") + name := ps.ByName("channel") + channel, found := mattermost.GetChannelByTeamNameAndName(teamName, name) + if !found { + rw.WriteHeader(http.StatusNotFound) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusNotFound, Message: "Unable to find the channel."}) + panicIf(err) + return + } + err := json.NewEncoder(rw).Encode(channel) + panicIf(err) + }) + + router.POST("/api/v4/channels/direct", func(rw http.ResponseWriter, r *http.Request, _ httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + + var userIDs []string + err := json.NewDecoder(r.Body).Decode(&userIDs) + panicIf(err) + if len(userIDs) != 2 { + rw.WriteHeader(http.StatusBadRequest) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusBadRequest, Message: "Expected only two user IDs."}) + panicIf(err) + return + } + + user1, found := mattermost.GetUser(userIDs[0]) + if !found { + rw.WriteHeader(http.StatusNotFound) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusNotFound, Message: "Unable to find the user."}) + panicIf(err) + return + } + + user2, found := mattermost.GetUser(userIDs[1]) + if !found { + rw.WriteHeader(http.StatusNotFound) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusNotFound, Message: "Unable to find the user."}) + panicIf(err) + return + } + + err = json.NewEncoder(rw).Encode(mattermost.GetDirectChannelFor(user1, user2).Channel) + panicIf(err) + }) + + router.GET("/api/v4/users/me", func(rw http.ResponseWriter, r *http.Request, _ httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + + err := json.NewEncoder(rw).Encode(mattermost.GetBotUser()) + panicIf(err) + }) + + router.GET("/api/v4/users/email/:email", func(rw http.ResponseWriter, r *http.Request, ps httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + + email := ps.ByName("email") + user, found := mattermost.GetUserByEmail(email) + if !found { + rw.WriteHeader(http.StatusNotFound) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusNotFound, Message: "Unable to find the user."}) + panicIf(err) + return + } + err := json.NewEncoder(rw).Encode(user) + panicIf(err) + }) + + router.POST("/api/v4/posts", func(rw http.ResponseWriter, r *http.Request, _ httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + + var post Post + err := json.NewDecoder(r.Body).Decode(&post) + panicIf(err) + + // message size limit as per + // https://github.com/mattermost/mattermost-server/blob/3d412b14af49701d842e72ef208f0ec0a35ce063/model/post.go#L54 + // (current master at time of writing) + if len(post.Message) > 4000 { + rw.WriteHeader(http.StatusBadRequest) + return + } + + post = mattermost.StorePost(post) + mattermost.newPosts <- post + + rw.WriteHeader(http.StatusCreated) + err = json.NewEncoder(rw).Encode(post) + panicIf(err) + + }) + + router.PUT("/api/v4/posts/:id", func(rw http.ResponseWriter, r *http.Request, ps httprouter.Params) { + rw.Header().Add("Content-Type", "application/json") + + id := ps.ByName("id") + post, found := mattermost.GetPost(id) + if !found { + rw.WriteHeader(http.StatusNotFound) + err := json.NewEncoder(rw).Encode(ErrorResult{StatusCode: http.StatusNotFound, Message: "Unable to find the post."}) + panicIf(err) + return + } + + var newPost Post + err := json.NewDecoder(r.Body).Decode(&newPost) + panicIf(err) + + post.Message = newPost.Message + post.Props = newPost.Props + post = mattermost.UpdatePost(post) + + rw.WriteHeader(http.StatusOK) + err = json.NewEncoder(rw).Encode(post) + panicIf(err) + }) + + return mattermost +} + +func (s *FakeMattermost) URL() string { + return s.srv.URL +} + +func (s *FakeMattermost) Close() { + s.srv.Close() + close(s.newPosts) + close(s.postUpdates) +} + +func (s *FakeMattermost) GetPost(id string) (Post, bool) { + if obj, ok := s.objects.Load(id); ok { + post, ok := obj.(Post) + return post, ok + } + return Post{}, false +} + +func (s *FakeMattermost) StorePost(post Post) Post { + if post.ID == "" { + post.ID = fmt.Sprintf("post-%v", atomic.AddUint64(&s.postIDCounter, 1)) + } + s.objects.Store(post.ID, post) + return post +} + +func (s *FakeMattermost) UpdatePost(post Post) Post { + post = s.StorePost(post) + s.postUpdates <- post + return post +} + +func (s *FakeMattermost) GetBotUser() User { + user, ok := s.GetUser(s.botUserID) + if !ok { + panic("bot user not found") + } + return user +} + +func (s *FakeMattermost) GetUser(id string) (User, bool) { + if obj, ok := s.objects.Load(id); ok { + user, ok := obj.(User) + return user, ok + } + return User{}, false +} + +func (s *FakeMattermost) GetUserByEmail(email string) (User, bool) { + if obj, ok := s.objects.Load(fakeUserByEmailKey(email)); ok { + user, ok := obj.(User) + return user, ok + } + return User{}, false +} + +func (s *FakeMattermost) StoreUser(user User) User { + if user.ID == "" { + user.ID = fmt.Sprintf("user-%v", atomic.AddUint64(&s.userIDCounter, 1)) + } + s.objects.Store(user.ID, user) + s.objects.Store(fakeUserByEmailKey(user.Email), user) + return user +} + +func (s *FakeMattermost) GetTeam(id string) (Team, bool) { + if obj, ok := s.objects.Load(id); ok { + channel, ok := obj.(Team) + return channel, ok + } + return Team{}, false +} + +func (s *FakeMattermost) GetTeamByName(name string) (Team, bool) { + if obj, ok := s.objects.Load(fakeTeamByNameKey(name)); ok { + channel, ok := obj.(Team) + return channel, ok + } + return Team{}, false +} + +func (s *FakeMattermost) StoreTeam(team Team) Team { + if team.ID == "" { + team.ID = fmt.Sprintf("team-%v", atomic.AddUint64(&s.teamIDCounter, 1)) + } + s.objects.Store(team.ID, team) + s.objects.Store(fakeTeamByNameKey(team.Name), team) + return team +} + +func (s *FakeMattermost) GetChannel(id string) (Channel, bool) { + if obj, ok := s.objects.Load(id); ok { + channel, ok := obj.(Channel) + return channel, ok + } + return Channel{}, false +} + +func (s *FakeMattermost) GetDirectChannelFor(user1, user2 User) FakeDirectChannel { + ids := []string{user1.ID, user2.ID} + sort.Strings(ids) + user1ID, user2ID := ids[0], ids[1] + key := fakeDirectChannelUsersKey{user1ID, user2ID} + if obj, ok := s.objects.Load(key); ok { + directChannel, ok := obj.(FakeDirectChannel) + if !ok { + panic(fmt.Sprintf("bad channel type %T", obj)) + } + return directChannel + } + + channel := s.StoreChannel(Channel{}) + directChannel := FakeDirectChannel{ + User1ID: user1ID, + User2ID: user2ID, + Channel: channel, + } + s.objects.Store(key, directChannel) + s.objects.Store(fakeDirectChannelKey(channel.ID), directChannel) + return directChannel +} + +func (s *FakeMattermost) GetDirectChannel(id string) (FakeDirectChannel, bool) { + if obj, ok := s.objects.Load(fakeDirectChannelKey(id)); ok { + directChannel, ok := obj.(FakeDirectChannel) + return directChannel, ok + } + return FakeDirectChannel{}, false +} + +func (s *FakeMattermost) GetChannelByTeamNameAndName(team, name string) (Channel, bool) { + if obj, ok := s.objects.Load(fakeChannelByTeamNameAndNameKey{team: team, channel: name}); ok { + channel, ok := obj.(Channel) + return channel, ok + } + return Channel{}, false +} + +func (s *FakeMattermost) StoreChannel(channel Channel) Channel { + if channel.ID == "" { + channel.ID = fmt.Sprintf("channel-%v", atomic.AddUint64(&s.channelIDCounter, 1)) + } + s.objects.Store(channel.ID, channel) + + if channel.TeamID != "" { + team, ok := s.GetTeam(channel.TeamID) + if !ok { + panic(fmt.Sprintf("team id %q is not found", channel.TeamID)) + } + s.objects.Store(fakeChannelByTeamNameAndNameKey{team: team.Name, channel: channel.Name}, channel) + } + return channel +} + +func (s *FakeMattermost) CheckNewPost(ctx context.Context) (Post, error) { + select { + case post := <-s.newPosts: + return post, nil + case <-ctx.Done(): + return Post{}, trace.Wrap(ctx.Err()) + } +} + +func (s *FakeMattermost) CheckPostUpdate(ctx context.Context) (Post, error) { + select { + case post := <-s.postUpdates: + return post, nil + case <-ctx.Done(): + return Post{}, trace.Wrap(ctx.Err()) + } +} + +func panicIf(err error) { + if err != nil { + log.Panicf("%v at %v", err, string(debug.Stack())) + } +} diff --git a/integrations/access/mattermost/helper_test.go b/integrations/access/mattermost/helper_test.go new file mode 100644 index 0000000000000..dc11169808cdf --- /dev/null +++ b/integrations/access/mattermost/helper_test.go @@ -0,0 +1,44 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +type MattermostPostSlice []Post +type MattermostDataPostSet map[MattermostDataPost]struct{} + +func (slice MattermostPostSlice) Len() int { + return len(slice) +} + +func (slice MattermostPostSlice) Less(i, j int) bool { + if slice[i].ChannelID < slice[j].ChannelID { + return true + } + return slice[i].ID < slice[j].ID +} + +func (slice MattermostPostSlice) Swap(i, j int) { + slice[i], slice[j] = slice[j], slice[i] +} + +func (set MattermostDataPostSet) Add(msg MattermostDataPost) { + set[msg] = struct{}{} +} + +func (set MattermostDataPostSet) Contains(msg MattermostDataPost) bool { + _, ok := set[msg] + return ok +} diff --git a/integrations/access/mattermost/mattermost_test.go b/integrations/access/mattermost/mattermost_test.go new file mode 100644 index 0000000000000..ca181ef2cf8de --- /dev/null +++ b/integrations/access/mattermost/mattermost_test.go @@ -0,0 +1,763 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "context" + "os/user" + "regexp" + "runtime" + "sort" + "strings" + "sync" + "sync/atomic" + "testing" + "time" + + "github.com/google/uuid" + "github.com/gravitational/trace" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" + + "github.com/gravitational/teleport/api/client/proto" + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/integrations/lib" + "github.com/gravitational/teleport/integrations/lib/logger" + "github.com/gravitational/teleport/integrations/lib/testing/integration" +) + +var msgFieldRegexp = regexp.MustCompile(`(?im)^\*\*([a-zA-Z ]+)\*\*:\ +(.+)$`) +var requestReasonRegexp = regexp.MustCompile("(?im)^\\*\\*Reason\\*\\*:\\ ```\\n(.*?)```(.*?)$") +var resolutionReasonRegexp = regexp.MustCompile("(?im)^\\*\\*Resolution reason\\*\\*:\\ ```\\n(.*?)```(.*?)$") + +type MattermostSuite struct { + integration.Suite + appConfig *Config + userNames struct { + ruler string + requestor string + reviewer1 string + reviewer2 string + plugin string + } + raceNumber int + fakeMattermost *FakeMattermost + mmUser User + + clients map[string]*integration.Client + teleportFeatures *proto.Features + teleportConfig lib.TeleportConfig +} + +func TestMattermost(t *testing.T) { suite.Run(t, &MattermostSuite{}) } + +func (s *MattermostSuite) SetupSuite() { + var err error + t := s.T() + + logger.Init() + err = logger.Setup(logger.Config{Severity: "debug"}) + require.NoError(t, err) + s.raceNumber = runtime.GOMAXPROCS(0) + me, err := user.Current() + require.NoError(t, err) + + // We set such a big timeout because integration.NewFromEnv could start + // downloading a Teleport *-bin.tar.gz file which can take a long time. + ctx := s.SetContextTimeout(2 * time.Minute) + + teleport, err := integration.NewFromEnv(ctx) + require.NoError(t, err) + t.Cleanup(teleport.Close) + + auth, err := teleport.NewAuthService() + require.NoError(t, err) + s.StartApp(auth) + + s.clients = make(map[string]*integration.Client) + + // Set up the user who has an access to all kinds of resources. + + s.userNames.ruler = me.Username + "-ruler@example.com" + client, err := teleport.MakeAdmin(ctx, auth, s.userNames.ruler) + require.NoError(t, err) + s.clients[s.userNames.ruler] = client + + // Get the server features. + + pong, err := client.Ping(ctx) + require.NoError(t, err) + teleportFeatures := pong.GetServerFeatures() + + var bootstrap integration.Bootstrap + + // Set up user who can request the access to role "editor". + + conditions := types.RoleConditions{Request: &types.AccessRequestConditions{Roles: []string{"editor"}}} + if teleportFeatures.AdvancedAccessWorkflows { + conditions.Request.Thresholds = []types.AccessReviewThreshold{types.AccessReviewThreshold{Approve: 2, Deny: 2}} + } + role, err := bootstrap.AddRole("foo", types.RoleSpecV6{Allow: conditions}) + require.NoError(t, err) + + user, err := bootstrap.AddUserWithRoles(me.Username+"@example.com", role.GetName()) + require.NoError(t, err) + s.userNames.requestor = user.GetName() + + // Set up TWO users who can review access requests to role "editor". + + conditions = types.RoleConditions{} + if teleportFeatures.AdvancedAccessWorkflows { + conditions.ReviewRequests = &types.AccessReviewConditions{Roles: []string{"editor"}} + } + role, err = bootstrap.AddRole("foo-reviewer", types.RoleSpecV6{Allow: conditions}) + require.NoError(t, err) + + user, err = bootstrap.AddUserWithRoles(me.Username+"-reviewer1@example.com", role.GetName()) + require.NoError(t, err) + s.userNames.reviewer1 = user.GetName() + + user, err = bootstrap.AddUserWithRoles(me.Username+"-reviewer2@example.com", role.GetName()) + require.NoError(t, err) + s.userNames.reviewer2 = user.GetName() + + // Set up plugin user. + + role, err = bootstrap.AddRole("access-mattermost", types.RoleSpecV6{ + Allow: types.RoleConditions{ + Rules: []types.Rule{ + types.NewRule("access_request", []string{"list", "read"}), + types.NewRule("access_plugin_data", []string{"update"}), + }, + }, + }) + require.NoError(t, err) + + user, err = bootstrap.AddUserWithRoles("access-mattermost", role.GetName()) + require.NoError(t, err) + s.userNames.plugin = user.GetName() + + // Bake all the resources. + + err = teleport.Bootstrap(ctx, auth, bootstrap.Resources()) + require.NoError(t, err) + + // Initialize the clients. + + client, err = teleport.NewClient(ctx, auth, s.userNames.requestor) + require.NoError(t, err) + s.clients[s.userNames.requestor] = client + + if teleportFeatures.AdvancedAccessWorkflows { + client, err = teleport.NewClient(ctx, auth, s.userNames.reviewer1) + require.NoError(t, err) + s.clients[s.userNames.reviewer1] = client + + client, err = teleport.NewClient(ctx, auth, s.userNames.reviewer2) + require.NoError(t, err) + s.clients[s.userNames.reviewer2] = client + } + + identityPath, err := teleport.Sign(ctx, auth, s.userNames.plugin) + require.NoError(t, err) + + s.teleportConfig.Addr = auth.AuthAddr().String() + s.teleportConfig.Identity = identityPath + s.teleportFeatures = teleportFeatures +} + +func (s *MattermostSuite) SetupTest() { + t := s.T() + + err := logger.Setup(logger.Config{Severity: "debug"}) + require.NoError(t, err) + + s.fakeMattermost = NewFakeMattermost(User{Username: "bot", Email: "bot@example.com"}, s.raceNumber) + t.Cleanup(s.fakeMattermost.Close) + + s.mmUser = s.fakeMattermost.StoreUser(User{ + FirstName: "User", + LastName: "Test", + Username: "Vladimir", + Email: s.userNames.requestor, + }) + + var conf Config + conf.Teleport = s.teleportConfig + conf.Mattermost.Token = "000000" + conf.Mattermost.URL = s.fakeMattermost.URL() + + s.appConfig = &conf + s.SetContextTimeout(5 * time.Second) +} + +func (s *MattermostSuite) startApp() { + t := s.T() + t.Helper() + + app := NewMattermostApp(s.appConfig) + s.StartApp(app) +} + +func (s *MattermostSuite) ruler() *integration.Client { + return s.clients[s.userNames.ruler] +} + +func (s *MattermostSuite) requestor() *integration.Client { + return s.clients[s.userNames.requestor] +} + +func (s *MattermostSuite) reviewer1() *integration.Client { + return s.clients[s.userNames.reviewer1] +} + +func (s *MattermostSuite) reviewer2() *integration.Client { + return s.clients[s.userNames.reviewer2] +} + +func (s *MattermostSuite) newAccessRequest(reviewers []User) types.AccessRequest { + t := s.T() + t.Helper() + + req, err := types.NewAccessRequest(uuid.New().String(), s.userNames.requestor, "editor") + require.NoError(t, err) + // max size of request was decreased here: https://github.com/gravitational/teleport/pull/13298 + req.SetRequestReason("because of " + strings.Repeat("A", 4000)) + var suggestedReviewers []string + for _, user := range reviewers { + suggestedReviewers = append(suggestedReviewers, user.Email) + } + req.SetSuggestedReviewers(suggestedReviewers) + return req +} + +func (s *MattermostSuite) createAccessRequest(reviewers []User) types.AccessRequest { + t := s.T() + t.Helper() + + req := s.newAccessRequest(reviewers) + err := s.requestor().CreateAccessRequest(s.Context(), req) + require.NoError(s.T(), err) + return req +} + +func (s *MattermostSuite) checkPluginData(reqID string, cond func(PluginData) bool) PluginData { + t := s.T() + t.Helper() + + for { + rawData, err := s.ruler().PollAccessRequestPluginData(s.Context(), "mattermost", reqID) + require.NoError(t, err) + if data := DecodePluginData(rawData); cond(data) { + return data + } + } +} + +func (s *MattermostSuite) TestMattermostMessagePosting() { + t := s.T() + + reviewer1 := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + reviewer2 := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer2}) + directChannel1 := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer1) + directChannel2 := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer2) + + s.startApp() + request := s.createAccessRequest([]User{reviewer2, reviewer1}) + + pluginData := s.checkPluginData(request.GetName(), func(data PluginData) bool { + return len(data.MattermostData) > 0 + }) + assert.Len(t, pluginData.MattermostData, 2) + + var posts []Post + postSet := make(MattermostDataPostSet) + for i := 0; i < 2; i++ { + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err, "no new messages posted") + postSet.Add(MattermostDataPost{ChannelID: post.ChannelID, PostID: post.ID}) + posts = append(posts, post) + } + + assert.Len(t, postSet, 2) + assert.Contains(t, postSet, pluginData.MattermostData[0]) + assert.Contains(t, postSet, pluginData.MattermostData[1]) + + sort.Sort(MattermostPostSlice(posts)) + + assert.Equal(t, directChannel1.ID, posts[0].ChannelID) + assert.Equal(t, directChannel2.ID, posts[1].ChannelID) + + post := posts[0] + reqID, err := parsePostField(post, "Request ID") + require.NoError(t, err) + assert.Equal(t, request.GetName(), reqID) + + username, err := parsePostField(post, "User") + require.NoError(t, err) + assert.Equal(t, s.userNames.requestor, username) + + matches := requestReasonRegexp.FindAllStringSubmatch(post.Message, -1) + require.Equal(t, 1, len(matches)) + require.Equal(t, 3, len(matches[0])) + assert.Equal(t, "because of "+strings.Repeat("A", 489), matches[0][1]) + assert.Equal(t, " (truncated)", matches[0][2]) + + statusLine, err := parsePostField(post, "Status") + require.NoError(t, err) + assert.Equal(t, "⏳ PENDING", statusLine) +} + +func (s *MattermostSuite) TestApproval() { + t := s.T() + + reviewer := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + + s.startApp() + + req := s.createAccessRequest([]User{reviewer}) + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err, "no new messages posted") + directChannelID := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer).ID + assert.Equal(t, directChannelID, post.ChannelID) + + err = s.ruler().ApproveAccessRequest(s.Context(), req.GetName(), "okay") + require.NoError(t, err) + + postUpdate, err := s.fakeMattermost.CheckPostUpdate(s.Context()) + require.NoError(t, err, "no messages updated") + assert.Equal(t, post.ID, postUpdate.ID) + assert.Equal(t, post.ChannelID, postUpdate.ChannelID) + + statusLine, err := parsePostField(postUpdate, "Status") + require.NoError(t, err) + assert.Equal(t, "✅ APPROVED", statusLine) + + matches := resolutionReasonRegexp.FindAllStringSubmatch(postUpdate.Message, -1) + require.Equal(t, 1, len(matches)) + require.Equal(t, 3, len(matches[0])) + assert.Equal(t, "okay", matches[0][1]) + assert.Equal(t, "", matches[0][2]) +} + +func (s *MattermostSuite) TestDenial() { + t := s.T() + + reviewer := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + + s.startApp() + + req := s.createAccessRequest([]User{reviewer}) + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err, "no new messages posted") + directChannelID := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer).ID + assert.Equal(t, directChannelID, post.ChannelID) + + // max size of request was decreased here: https://github.com/gravitational/teleport/pull/13298 + err = s.ruler().DenyAccessRequest(s.Context(), req.GetName(), "not okay "+strings.Repeat("A", 4000)) + require.NoError(t, err) + + postUpdate, err := s.fakeMattermost.CheckPostUpdate(s.Context()) + require.NoError(t, err, "no messages updated") + assert.Equal(t, post.ID, postUpdate.ID) + assert.Equal(t, post.ChannelID, postUpdate.ChannelID) + + statusLine, err := parsePostField(postUpdate, "Status") + require.NoError(t, err) + assert.Equal(t, "❌ DENIED", statusLine) + + matches := resolutionReasonRegexp.FindAllStringSubmatch(postUpdate.Message, -1) + require.Equal(t, 1, len(matches)) + require.Equal(t, 3, len(matches[0])) + assert.Equal(t, "not okay "+strings.Repeat("A", 491), matches[0][1]) + assert.Equal(t, " (truncated)", matches[0][2]) +} + +func (s *MattermostSuite) TestReviewComments() { + t := s.T() + + if !s.teleportFeatures.AdvancedAccessWorkflows { + t.Skip("Doesn't work in OSS version") + } + + reviewer := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + directChannelID := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer).ID + + s.startApp() + + req := s.createAccessRequest([]User{reviewer}) + s.checkPluginData(req.GetName(), func(data PluginData) bool { + return len(data.MattermostData) > 0 + }) + + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, directChannelID, post.ChannelID) + + err = s.reviewer1().SubmitAccessRequestReview(s.Context(), req.GetName(), types.AccessReview{ + Author: s.userNames.reviewer1, + ProposedState: types.RequestState_APPROVED, + Created: time.Now(), + Reason: "okay", + }) + require.NoError(t, err) + + comment, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, post.ChannelID, comment.ChannelID) + assert.Equal(t, post.ID, comment.RootID) + assert.Contains(t, comment.Message, s.userNames.reviewer1+" reviewed the request", "comment must contain a review author") + assert.Contains(t, comment.Message, "Resolution: ✅ APPROVED", "comment must contain a proposed state") + assert.Contains(t, comment.Message, "Reason: ```\nokay```", "comment must contain a reason") + + err = s.reviewer2().SubmitAccessRequestReview(s.Context(), req.GetName(), types.AccessReview{ + Author: s.userNames.reviewer2, + ProposedState: types.RequestState_DENIED, + Created: time.Now(), + Reason: "not okay", + }) + require.NoError(t, err) + + comment, err = s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, post.ChannelID, comment.ChannelID) + assert.Equal(t, post.ID, comment.RootID) + assert.Contains(t, comment.Message, s.userNames.reviewer2+" reviewed the request", "comment must contain a review author") + assert.Contains(t, comment.Message, "Resolution: ❌ DENIED", "comment must contain a proposed state") + assert.Contains(t, comment.Message, "Reason: ```\nnot okay```", "comment must contain a reason") +} + +func (s *MattermostSuite) TestApprovalByReview() { + t := s.T() + + if !s.teleportFeatures.AdvancedAccessWorkflows { + t.Skip("Doesn't work in OSS version") + } + + reviewer := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + + s.startApp() + + req := s.createAccessRequest([]User{reviewer}) + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err, "no new messages posted") + directChannelID := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer).ID + assert.Equal(t, directChannelID, post.ChannelID) + + err = s.reviewer1().SubmitAccessRequestReview(s.Context(), req.GetName(), types.AccessReview{ + Author: s.userNames.reviewer1, + ProposedState: types.RequestState_APPROVED, + Created: time.Now(), + Reason: "okay", + }) + require.NoError(t, err) + + comment, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, post.ChannelID, comment.ChannelID) + assert.Equal(t, post.ID, comment.RootID) + assert.Contains(t, comment.Message, s.userNames.reviewer1+" reviewed the request", "comment must contain a review author") + + err = s.reviewer2().SubmitAccessRequestReview(s.Context(), req.GetName(), types.AccessReview{ + Author: s.userNames.reviewer2, + ProposedState: types.RequestState_APPROVED, + Created: time.Now(), + Reason: "finally okay", + }) + require.NoError(t, err) + + comment, err = s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, post.ChannelID, comment.ChannelID) + assert.Equal(t, post.ID, comment.RootID) + assert.Contains(t, comment.Message, s.userNames.reviewer2+" reviewed the request", "comment must contain a review author") + + postUpdate, err := s.fakeMattermost.CheckPostUpdate(s.Context()) + require.NoError(t, err, "no messages updated") + assert.Equal(t, post.ID, postUpdate.ID) + assert.Equal(t, post.ChannelID, postUpdate.ChannelID) + + statusLine, err := parsePostField(postUpdate, "Status") + require.NoError(t, err) + assert.Equal(t, "✅ APPROVED", statusLine) + + matches := resolutionReasonRegexp.FindAllStringSubmatch(postUpdate.Message, -1) + require.Equal(t, 1, len(matches)) + require.Equal(t, 3, len(matches[0])) + assert.Equal(t, "finally okay", matches[0][1]) + assert.Equal(t, "", matches[0][2]) +} + +func (s *MattermostSuite) TestDenialByReview() { + t := s.T() + + if !s.teleportFeatures.AdvancedAccessWorkflows { + t.Skip("Doesn't work in OSS version") + } + + reviewer := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + + s.startApp() + + req := s.createAccessRequest([]User{reviewer}) + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err, "no new messages posted") + directChannelID := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer).ID + assert.Equal(t, directChannelID, post.ChannelID) + + err = s.reviewer1().SubmitAccessRequestReview(s.Context(), req.GetName(), types.AccessReview{ + Author: s.userNames.reviewer1, + ProposedState: types.RequestState_DENIED, + Created: time.Now(), + Reason: "not okay", + }) + require.NoError(t, err) + + comment, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, post.ChannelID, comment.ChannelID) + assert.Equal(t, post.ID, comment.RootID) + assert.Contains(t, comment.Message, s.userNames.reviewer1+" reviewed the request", "comment must contain a review author") + + err = s.reviewer2().SubmitAccessRequestReview(s.Context(), req.GetName(), types.AccessReview{ + Author: s.userNames.reviewer2, + ProposedState: types.RequestState_DENIED, + Created: time.Now(), + Reason: "finally not okay", + }) + require.NoError(t, err) + + comment, err = s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err) + assert.Equal(t, post.ChannelID, comment.ChannelID) + assert.Equal(t, post.ID, comment.RootID) + assert.Contains(t, comment.Message, s.userNames.reviewer2+" reviewed the request", "comment must contain a review author") + + postUpdate, err := s.fakeMattermost.CheckPostUpdate(s.Context()) + require.NoError(t, err, "no messages updated") + assert.Equal(t, post.ID, postUpdate.ID) + assert.Equal(t, post.ChannelID, postUpdate.ChannelID) + + statusLine, err := parsePostField(postUpdate, "Status") + require.NoError(t, err) + assert.Equal(t, "❌ DENIED", statusLine) + + matches := resolutionReasonRegexp.FindAllStringSubmatch(postUpdate.Message, -1) + require.Equal(t, 1, len(matches)) + require.Equal(t, 3, len(matches[0])) + assert.Equal(t, "finally not okay", matches[0][1]) + assert.Equal(t, "", matches[0][2]) +} + +func (s *MattermostSuite) TestExpiration() { + t := s.T() + + reviewer := s.fakeMattermost.StoreUser(User{Email: "user@example.com"}) + + s.startApp() + + request := s.createAccessRequest([]User{reviewer}) + post, err := s.fakeMattermost.CheckNewPost(s.Context()) + require.NoError(t, err, "no new messages posted") + directChannelID := s.fakeMattermost.GetDirectChannelFor(s.fakeMattermost.GetBotUser(), reviewer).ID + assert.Equal(t, directChannelID, post.ChannelID) + + s.checkPluginData(request.GetName(), func(data PluginData) bool { + return len(data.MattermostData) > 0 + }) + + err = s.ruler().DeleteAccessRequest(s.Context(), request.GetName()) // simulate expiration + require.NoError(t, err) + + postUpdate, err := s.fakeMattermost.CheckPostUpdate(s.Context()) + require.NoError(t, err, "no new messages updated") + assert.Equal(t, post.ID, postUpdate.ID) + assert.Equal(t, post.ChannelID, postUpdate.ChannelID) + + statusLine, err := parsePostField(postUpdate, "Status") + require.NoError(t, err) + assert.Equal(t, "⌛ EXPIRED", statusLine) +} + +func (s *MattermostSuite) TestRace() { + t := s.T() + + if !s.teleportFeatures.AdvancedAccessWorkflows { + t.Skip("Doesn't work in OSS version") + } + + err := logger.Setup(logger.Config{Severity: "info"}) // Turn off noisy debug logging + require.NoError(t, err) + + reviewer1 := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer1}) + reviewer2 := s.fakeMattermost.StoreUser(User{Email: s.userNames.reviewer2}) + botUser := s.fakeMattermost.GetBotUser() + + s.SetContextTimeout(20 * time.Second) + s.startApp() + + var ( + raceErr error + raceErrOnce sync.Once + postIDs sync.Map + postsCount int32 + postUpdateCounters sync.Map + reviewCommentCounters sync.Map + ) + setRaceErr := func(err error) error { + raceErrOnce.Do(func() { + raceErr = err + }) + return err + } + + process := lib.NewProcess(s.Context()) + for i := 0; i < s.raceNumber; i++ { + process.SpawnCritical(func(ctx context.Context) error { + req, err := types.NewAccessRequest(uuid.New().String(), s.userNames.requestor, "editor") + if err != nil { + return setRaceErr(trace.Wrap(err)) + } + req.SetSuggestedReviewers([]string{reviewer1.Email, reviewer2.Email}) + if err := s.requestor().CreateAccessRequest(ctx, req); err != nil { + return setRaceErr(trace.Wrap(err)) + } + return nil + }) + } + + // Having TWO suggested reviewers will post TWO messages for each request. + // We also have approval threshold of TWO set in the role properties + // so lets simply submit the approval from each of the suggested reviewers. + // + // Multiplier SIX means that we handle TWO messages for each request and also + // TWO comments for each message: 2 * (1 message + 2 comments). + for i := 0; i < 6*s.raceNumber; i++ { + process.SpawnCritical(func(ctx context.Context) error { + post, err := s.fakeMattermost.CheckNewPost(ctx) + if err := trace.Wrap(err); err != nil { + return setRaceErr(err) + } + + if post.RootID == "" { + // Handle "root" notifications. + + postKey := MattermostDataPost{ChannelID: post.ChannelID, PostID: post.ID} + if _, loaded := postIDs.LoadOrStore(postKey, struct{}{}); loaded { + return setRaceErr(trace.Errorf("post %v already stored", postKey)) + } + atomic.AddInt32(&postsCount, 1) + + reqID, err := parsePostField(post, "Request ID") + if err != nil { + return setRaceErr(trace.Wrap(err)) + } + + directChannel, ok := s.fakeMattermost.GetDirectChannel(post.ChannelID) + if !ok { + return setRaceErr(trace.Errorf("direct channel %s not found", post.ChannelID)) + } + + var userID string + if directChannel.User2ID == botUser.ID { + userID = directChannel.User1ID + } else { + userID = directChannel.User2ID + } + user, ok := s.fakeMattermost.GetUser(userID) + if !ok { + return setRaceErr(trace.Errorf("user %s not found", userID)) + } + + if err = s.clients[user.Email].SubmitAccessRequestReview(ctx, reqID, types.AccessReview{ + Author: user.Email, + ProposedState: types.RequestState_APPROVED, + Created: time.Now(), + Reason: "okay", + }); err != nil { + return setRaceErr(trace.Wrap(err)) + } + } else { + // Handle review comments. + + postKey := MattermostDataPost{ChannelID: post.ChannelID, PostID: post.RootID} + var newCounter int32 + val, _ := reviewCommentCounters.LoadOrStore(postKey, &newCounter) + counterPtr := val.(*int32) + atomic.AddInt32(counterPtr, 1) + } + + return nil + }) + } + + // Multiplier TWO means that we handle updates for each of the two messages posted to reviewers. + for i := 0; i < 2*s.raceNumber; i++ { + process.SpawnCritical(func(ctx context.Context) error { + post, err := s.fakeMattermost.CheckPostUpdate(ctx) + if err != nil { + return setRaceErr(trace.Wrap(err)) + } + + postKey := MattermostDataPost{ChannelID: post.ChannelID, PostID: post.ID} + var newCounter int32 + val, _ := postUpdateCounters.LoadOrStore(postKey, &newCounter) + counterPtr := val.(*int32) + atomic.AddInt32(counterPtr, 1) + + return nil + }) + } + + process.Terminate() + <-process.Done() + require.NoError(t, raceErr) + + assert.Equal(t, int32(2*s.raceNumber), postsCount) + postIDs.Range(func(key, value interface{}) bool { + next := true + + val, loaded := reviewCommentCounters.LoadAndDelete(key) + next = next && assert.True(t, loaded) + counterPtr := val.(*int32) + next = next && assert.Equal(t, int32(2), *counterPtr) + + val, loaded = postUpdateCounters.LoadAndDelete(key) + next = next && assert.True(t, loaded) + counterPtr = val.(*int32) + next = next && assert.Equal(t, int32(1), *counterPtr) + + return next + }) +} + +func parsePostField(post Post, field string) (string, error) { + text := post.Message + matches := msgFieldRegexp.FindAllStringSubmatch(text, -1) + if matches == nil { + return "", trace.Errorf("cannot parse fields from text %s", text) + } + var fields []string + for _, match := range matches { + if match[1] == field { + return match[2], nil + } + fields = append(fields, match[1]) + } + return "", trace.Errorf("cannot find field %s in %v", field, fields) +} diff --git a/integrations/access/mattermost/plugindata.go b/integrations/access/mattermost/plugindata.go new file mode 100644 index 0000000000000..2d592d551fcfd --- /dev/null +++ b/integrations/access/mattermost/plugindata.go @@ -0,0 +1,102 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "fmt" + "strings" +) + +// PluginData is a data associated with access request that we store in Teleport using UpdatePluginData API. +type PluginData struct { + RequestData + MattermostData +} + +type Resolution struct { + Tag ResolutionTag + Reason string +} +type ResolutionTag string + +const Unresolved = ResolutionTag("") +const ResolvedApproved = ResolutionTag("APPROVED") +const ResolvedDenied = ResolutionTag("DENIED") +const ResolvedExpired = ResolutionTag("EXPIRED") + +type RequestData struct { + User string + Roles []string + RequestReason string + ReviewsCount int + Resolution Resolution +} + +type MattermostDataPost struct { + PostID string + ChannelID string +} + +type MattermostData = []MattermostDataPost + +// DecodePluginData deserializes a string map to PluginData struct. +func DecodePluginData(dataMap map[string]string) (data PluginData) { + data.User = dataMap["user"] + if str := dataMap["roles"]; str != "" { + data.Roles = strings.Split(str, ",") + } + data.RequestReason = dataMap["request_reason"] + if str := dataMap["reviews_count"]; str != "" { + fmt.Sscanf(str, "%d", &data.ReviewsCount) + } + data.Resolution.Tag = ResolutionTag(dataMap["resolution"]) + data.Resolution.Reason = dataMap["resolve_reason"] + if channelID, postID := dataMap["channel_id"], dataMap["postID"]; channelID != "" && postID != "" { + data.MattermostData = append(data.MattermostData, MattermostDataPost{ChannelID: channelID, PostID: postID}) + } + if str := dataMap["messages"]; str != "" { + for _, encodedMsg := range strings.Split(str, ",") { + if parts := strings.Split(encodedMsg, "/"); len(parts) == 2 { + data.MattermostData = append(data.MattermostData, MattermostDataPost{ChannelID: parts[0], PostID: parts[1]}) + } + } + } + return +} + +// EncodePluginData serializes a PluginData struct into a string map. +func EncodePluginData(data PluginData) map[string]string { + result := make(map[string]string) + + result["user"] = data.User + result["roles"] = strings.Join(data.Roles, ",") + result["request_reason"] = data.RequestReason + var reviewsCountStr string + if data.ReviewsCount > 0 { + reviewsCountStr = fmt.Sprintf("%d", data.ReviewsCount) + } + result["reviews_count"] = reviewsCountStr + result["resolution"] = string(data.Resolution.Tag) + result["resolve_reason"] = data.Resolution.Reason + var encodedMessages []string + for _, msg := range data.MattermostData { + encodedMessages = append(encodedMessages, fmt.Sprintf("%s/%s", msg.ChannelID, msg.PostID)) + } + result["messages"] = strings.Join(encodedMessages, ",") + + return result +} diff --git a/integrations/access/mattermost/plugindata_test.go b/integrations/access/mattermost/plugindata_test.go new file mode 100644 index 0000000000000..5d2661a0bdb1e --- /dev/null +++ b/integrations/access/mattermost/plugindata_test.go @@ -0,0 +1,75 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +var samplePluginData = PluginData{ + RequestData: RequestData{ + User: "user-foo", + Roles: []string{"role-foo", "role-bar"}, + RequestReason: "foo reason", + ReviewsCount: 3, + Resolution: Resolution{Tag: ResolvedApproved, Reason: "foo ok"}, + }, + MattermostData: MattermostData{ + {ChannelID: "CHANNEL1", PostID: "POST01"}, + {ChannelID: "CHANNEL2", PostID: "POST02"}, + }, +} + +func TestEncodePluginData(t *testing.T) { + dataMap := EncodePluginData(samplePluginData) + assert.Len(t, dataMap, 7) + assert.Equal(t, "user-foo", dataMap["user"]) + assert.Equal(t, "role-foo,role-bar", dataMap["roles"]) + assert.Equal(t, "foo reason", dataMap["request_reason"]) + assert.Equal(t, "3", dataMap["reviews_count"]) + assert.Equal(t, "APPROVED", dataMap["resolution"]) + assert.Equal(t, "foo ok", dataMap["resolve_reason"]) + assert.Equal(t, "CHANNEL1/POST01,CHANNEL2/POST02", dataMap["messages"]) +} + +func TestDecodePluginData(t *testing.T) { + pluginData := DecodePluginData(map[string]string{ + "user": "user-foo", + "roles": "role-foo,role-bar", + "request_reason": "foo reason", + "reviews_count": "3", + "resolution": "APPROVED", + "resolve_reason": "foo ok", + "messages": "CHANNEL1/POST01,CHANNEL2/POST02", + }) + assert.Equal(t, samplePluginData, pluginData) +} + +func TestEncodeEmptyPluginData(t *testing.T) { + dataMap := EncodePluginData(PluginData{}) + assert.Len(t, dataMap, 7) + for key, value := range dataMap { + assert.Emptyf(t, value, "value at key %q must be empty", key) + } +} + +func TestDecodeEmptyPluginData(t *testing.T) { + assert.Empty(t, DecodePluginData(nil)) + assert.Empty(t, DecodePluginData(make(map[string]string))) +} diff --git a/integrations/access/mattermost/types.go b/integrations/access/mattermost/types.go new file mode 100644 index 0000000000000..18476e4704762 --- /dev/null +++ b/integrations/access/mattermost/types.go @@ -0,0 +1,98 @@ +/** + * Copyright 2023 Gravitational, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package mattermost + +import ( + "encoding/json" + "fmt" +) + +// Mattermost API types + +type Props map[string]interface{} + +type Post struct { + ID string `json:"id,omitempty"` + ChannelID string `json:"channel_id"` + Message string `json:"message"` + RootID string `json:"root_id"` + Props Props `json:"props"` +} + +type Attachment struct { + ID int64 `json:"id"` + Text string `json:"text"` + Actions []PostAction `json:"actions,omitempty"` +} + +type PostAction struct { + ID string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Integration *PostActionIntegration `json:"integration,omitempty"` +} + +type PostActionIntegration struct { + URL string `json:"url,omitempty"` + Context map[string]interface{} `json:"context,omitempty"` +} + +type User struct { + ID string `json:"id"` + Username string `json:"username"` + FirstName string `json:"first_name"` + LastName string `json:"last_name"` + Email string `json:"email"` +} + +type Team struct { + ID string `json:"id"` + Name string `json:"name"` +} + +type Channel struct { + ID string `json:"id"` + TeamID string `json:"team_id"` + Type string `json:"type"` + Name string `json:"name"` +} + +type ErrorResult struct { + ID string `json:"id"` + Message string `json:"message"` + DetailedError string `json:"detailed_error"` + RequestID string `json:"request_id"` + StatusCode int `json:"status_code"` +} + +func (e ErrorResult) Error() string { + return fmt.Sprintf("api error status_code=%v, message=%q", e.StatusCode, e.Message) +} + +func (post Post) Attachments() []Attachment { + var attachments []Attachment + if slice, ok := post.Props["attachments"].([]interface{}); ok { + for _, dec := range slice { + if enc, err := json.Marshal(dec); err == nil { + var attachment Attachment + if json.Unmarshal(enc, &attachment) == nil { + attachments = append(attachments, attachment) + } + } + } + } + return attachments +} diff --git a/integrations/access/pagerduty/client.go b/integrations/access/pagerduty/client.go index 34bc41a0d2d25..f9816a2a891c2 100644 --- a/integrations/access/pagerduty/client.go +++ b/integrations/access/pagerduty/client.go @@ -109,23 +109,10 @@ func NewPagerdutyClient(conf PagerdutyConfig, clusterName, webProxyAddr string, }, nil } -func statusFromStatusCode(httpCode int) types.PluginStatus { - var code types.PluginStatusCode - switch { - case httpCode == http.StatusUnauthorized: - code = types.PluginStatusCode_UNAUTHORIZED - case httpCode >= 200 && httpCode < 400: - code = types.PluginStatusCode_RUNNING - default: - code = types.PluginStatusCode_OTHER_ERROR - } - return &types.PluginStatusV1{Code: code} -} - func onAfterPagerDutyResponse(sink common.StatusSink) resty.ResponseMiddleware { return func(_ *resty.Client, resp *resty.Response) error { log := logger.Get(resp.Request.Context()) - status := statusFromStatusCode(resp.StatusCode()) + status := common.StatusFromStatusCode(resp.StatusCode()) // No usable context in scope, use background with a reasonable timeout ctx, cancel := context.WithTimeout(context.Background(), pdStatusUpdateTimeout) diff --git a/integrations/access/slack/bot.go b/integrations/access/slack/bot.go index c8208a9c80bce..d200bf44fb656 100644 --- a/integrations/access/slack/bot.go +++ b/integrations/access/slack/bot.go @@ -49,7 +49,7 @@ type Bot struct { // onAfterResponseSlack resty error function for Slack func onAfterResponseSlack(sink common.StatusSink) func(_ *resty.Client, resp *resty.Response) error { return func(_ *resty.Client, resp *resty.Response) error { - status := statusFromStatusCode(resp.StatusCode()) + status := common.StatusFromStatusCode(resp.StatusCode()) defer func() { if sink == nil { return diff --git a/integrations/access/slack/status.go b/integrations/access/slack/status.go index ea0eb63808555..645777dfa1970 100644 --- a/integrations/access/slack/status.go +++ b/integrations/access/slack/status.go @@ -17,24 +17,9 @@ limitations under the License. package slack import ( - "net/http" - "github.com/gravitational/teleport/api/types" ) -func statusFromStatusCode(httpCode int) types.PluginStatus { - var code types.PluginStatusCode - switch { - case httpCode == http.StatusUnauthorized: - code = types.PluginStatusCode_UNAUTHORIZED - case httpCode >= 200 && httpCode < 400: - code = types.PluginStatusCode_RUNNING - default: - code = types.PluginStatusCode_OTHER_ERROR - } - return &types.PluginStatusV1{Code: code} -} - // statusFromResponse tries to map a Slack API error string // to a PluginStatus. // diff --git a/integrations/access/slack/status_test.go b/integrations/access/slack/status_test.go index ec55f7cfd015f..da1d61ad05409 100644 --- a/integrations/access/slack/status_test.go +++ b/integrations/access/slack/status_test.go @@ -17,8 +17,6 @@ limitations under the License. package slack import ( - "fmt" - "net/http" "testing" "github.com/stretchr/testify/require" @@ -26,37 +24,6 @@ import ( "github.com/gravitational/teleport/api/types" ) -func TestStatusFromStatusCode(t *testing.T) { - testCases := []struct { - httpCode int - want types.PluginStatusCode - }{ - { - httpCode: http.StatusOK, - want: types.PluginStatusCode_RUNNING, - }, - { - httpCode: http.StatusNoContent, - want: types.PluginStatusCode_RUNNING, - }, - - { - httpCode: http.StatusUnauthorized, - want: types.PluginStatusCode_UNAUTHORIZED, - }, - { - httpCode: http.StatusInternalServerError, - want: types.PluginStatusCode_OTHER_ERROR, - }, - } - - for _, tc := range testCases { - t.Run(fmt.Sprintf("%d", tc.httpCode), func(t *testing.T) { - require.Equal(t, tc.want, statusFromStatusCode(tc.httpCode).GetCode()) - }) - } -} - func TestStatusFromResponse(t *testing.T) { testCases := []struct { name string