diff --git a/api/client/webclient/webclient.go b/api/client/webclient/webclient.go
index 79366751e9ea2..28a5be6aac659 100644
--- a/api/client/webclient/webclient.go
+++ b/api/client/webclient/webclient.go
@@ -334,8 +334,8 @@ type ProxySettings struct {
type AutoUpdateSettings struct {
// ToolsVersion defines the version of {tsh, tctl} for client auto update.
ToolsVersion string `json:"tools_version"`
- // ToolsMode defines mode client auto update feature `enabled|disabled`.
- ToolsMode string `json:"tools_mode"`
+ // ToolsAutoUpdate indicates if the requesting tools client should be updated.
+ ToolsAutoUpdate bool `json:"tools_auto_update"`
}
// KubeProxySettings is kubernetes proxy settings
diff --git a/api/proto/teleport/legacy/types/events/events.proto b/api/proto/teleport/legacy/types/events/events.proto
index f4ebf5811c35d..7a535ec26fd47 100644
--- a/api/proto/teleport/legacy/types/events/events.proto
+++ b/api/proto/teleport/legacy/types/events/events.proto
@@ -6977,6 +6977,13 @@ message AutoUpdateConfigCreate {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+
+ // Status indicates whether the creation was successful.
+ Status Status = 5 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
}
// AutoUpdateConfigUpdate is emitted when an auto update config is updated.
@@ -7008,6 +7015,13 @@ message AutoUpdateConfigUpdate {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata Resource = 5 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
}
// AutoUpdateConfigDelete is emitted when an auto update config is deleted.
@@ -7039,6 +7053,13 @@ message AutoUpdateConfigDelete {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+
+ // Status indicates whether the deletion was successful.
+ Status Status = 5 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
}
// AutoUpdateVersionCreate is emitted when an auto update version is created.
@@ -7070,6 +7091,13 @@ message AutoUpdateVersionCreate {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+
+ // Status indicates whether the creation was successful.
+ Status Status = 5 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
}
// AutoUpdateVersionUpdate is emitted when an auto update version is updated.
@@ -7101,6 +7129,13 @@ message AutoUpdateVersionUpdate {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata Resource = 5 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
}
// AutoUpdateVersionDelete is emitted when an auto update version is deleted.
@@ -7132,6 +7167,13 @@ message AutoUpdateVersionDelete {
(gogoproto.embed) = true,
(gogoproto.jsontag) = ""
];
+
+ // Status indicates whether the deletion was successful.
+ Status Status = 5 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
}
// StaticHostUserCreate is emitted when a static host user is created.
diff --git a/api/types/events/events.go b/api/types/events/events.go
index 0eda345989e92..19cc44b5e8981 100644
--- a/api/types/events/events.go
+++ b/api/types/events/events.go
@@ -2328,3 +2328,27 @@ func (m *SFTPSummary) TrimToMaxSize(maxSize int) AuditEvent {
return out
}
+
+func (m *AutoUpdateConfigCreate) TrimToMaxSize(_ int) AuditEvent {
+ return m
+}
+
+func (m *AutoUpdateConfigUpdate) TrimToMaxSize(_ int) AuditEvent {
+ return m
+}
+
+func (m *AutoUpdateConfigDelete) TrimToMaxSize(_ int) AuditEvent {
+ return m
+}
+
+func (m *AutoUpdateVersionCreate) TrimToMaxSize(_ int) AuditEvent {
+ return m
+}
+
+func (m *AutoUpdateVersionUpdate) TrimToMaxSize(_ int) AuditEvent {
+ return m
+}
+
+func (m *AutoUpdateVersionDelete) TrimToMaxSize(_ int) AuditEvent {
+ return m
+}
diff --git a/api/types/events/events.pb.go b/api/types/events/events.pb.go
index 017a34714bcaa..c0bb43f6de45f 100644
--- a/api/types/events/events.pb.go
+++ b/api/types/events/events.pb.go
@@ -14068,7 +14068,9 @@ type AutoUpdateConfigCreate struct {
// User is a common user event metadata
UserMetadata `protobuf:"bytes,3,opt,name=User,proto3,embedded=User" json:""`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // Status indicates whether the creation was successful.
+ Status `protobuf:"bytes,5,opt,name=Status,proto3,embedded=Status" json:""`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -14116,7 +14118,9 @@ type AutoUpdateConfigUpdate struct {
// User is a common user event metadata
UserMetadata `protobuf:"bytes,3,opt,name=User,proto3,embedded=User" json:""`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata `protobuf:"bytes,5,opt,name=Resource,proto3,embedded=Resource" json:""`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -14164,7 +14168,9 @@ type AutoUpdateConfigDelete struct {
// User is a common user event metadata
UserMetadata `protobuf:"bytes,3,opt,name=User,proto3,embedded=User" json:""`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // Status indicates whether the deletion was successful.
+ Status `protobuf:"bytes,5,opt,name=Status,proto3,embedded=Status" json:""`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -14212,7 +14218,9 @@ type AutoUpdateVersionCreate struct {
// User is a common user event metadata
UserMetadata `protobuf:"bytes,3,opt,name=User,proto3,embedded=User" json:""`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // Status indicates whether the creation was successful.
+ Status `protobuf:"bytes,5,opt,name=Status,proto3,embedded=Status" json:""`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -14260,7 +14268,9 @@ type AutoUpdateVersionUpdate struct {
// User is a common user event metadata
UserMetadata `protobuf:"bytes,3,opt,name=User,proto3,embedded=User" json:""`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata `protobuf:"bytes,5,opt,name=Resource,proto3,embedded=Resource" json:""`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -14308,7 +14318,9 @@ type AutoUpdateVersionDelete struct {
// User is a common user event metadata
UserMetadata `protobuf:"bytes,3,opt,name=User,proto3,embedded=User" json:""`
// ConnectionMetadata holds information about the connection
- ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ ConnectionMetadata `protobuf:"bytes,4,opt,name=Connection,proto3,embedded=Connection" json:""`
+ // Status indicates whether the deletion was successful.
+ Status `protobuf:"bytes,5,opt,name=Status,proto3,embedded=Status" json:""`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -15121,1060 +15133,1061 @@ func init() {
}
var fileDescriptor_007ba1c3d6266d56 = []byte{
- // 16842 bytes of a gzipped FileDescriptorProto
+ // 16849 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x78, 0x24, 0x49,
- 0x72, 0x18, 0x86, 0x7e, 0xa0, 0x01, 0x04, 0x1e, 0x83, 0xc9, 0x79, 0xd5, 0xcc, 0xce, 0x2e, 0x76,
- 0x6b, 0xef, 0xe6, 0x66, 0xf6, 0x76, 0x31, 0xb7, 0xb3, 0xb3, 0xbb, 0xb7, 0xaf, 0xdb, 0x6b, 0xa0,
- 0x81, 0x41, 0xcf, 0xe0, 0xb5, 0xd5, 0x98, 0x99, 0xdb, 0x23, 0xef, 0x9a, 0x85, 0xae, 0x9c, 0x46,
- 0xed, 0x74, 0x57, 0x35, 0xab, 0xaa, 0x07, 0x83, 0xf5, 0x8b, 0x47, 0x53, 0x14, 0x29, 0xee, 0x9d,
- 0xce, 0x47, 0x53, 0xa4, 0x44, 0xd9, 0x3a, 0xea, 0x61, 0x53, 0x14, 0x45, 0x9a, 0x12, 0x4d, 0xf2,
- 0x48, 0x9e, 0x25, 0xf9, 0xfc, 0x38, 0x89, 0x9f, 0xf9, 0x49, 0xb2, 0xad, 0x4f, 0x9f, 0x2d, 0xe3,
- 0x64, 0xda, 0xfa, 0x83, 0xcf, 0xfe, 0x3e, 0xda, 0xbe, 0xcf, 0x3a, 0xcb, 0xb2, 0x3f, 0x7d, 0x19,
- 0x99, 0x55, 0x95, 0xf5, 0x6a, 0x3c, 0x57, 0x58, 0x2c, 0xf0, 0x67, 0x06, 0x1d, 0x11, 0x19, 0x99,
- 0x15, 0x19, 0x99, 0x19, 0x99, 0x19, 0x19, 0x01, 0xd7, 0x3c, 0xda, 0xa2, 0x1d, 0xdb, 0xf1, 0xae,
- 0xb7, 0x68, 0x53, 0x6f, 0x6c, 0x5c, 0xf7, 0x36, 0x3a, 0xd4, 0xbd, 0x4e, 0x1f, 0x51, 0xcb, 0xf3,
- 0xff, 0x9b, 0xec, 0x38, 0xb6, 0x67, 0x93, 0x12, 0xff, 0x75, 0xe9, 0x6c, 0xd3, 0x6e, 0xda, 0x08,
- 0xba, 0xce, 0xfe, 0xe2, 0xd8, 0x4b, 0x97, 0x9b, 0xb6, 0xdd, 0x6c, 0xd1, 0xeb, 0xf8, 0x6b, 0xb5,
- 0xfb, 0xe0, 0xba, 0xeb, 0x39, 0xdd, 0x86, 0x27, 0xb0, 0x13, 0x71, 0xac, 0x67, 0xb6, 0xa9, 0xeb,
- 0xe9, 0xed, 0x8e, 0x20, 0x78, 0x2a, 0x4e, 0xb0, 0xee, 0xe8, 0x9d, 0x0e, 0x75, 0x44, 0xe5, 0x97,
- 0x3e, 0x15, 0xb4, 0x53, 0x6f, 0x34, 0xa8, 0xeb, 0xb6, 0x4c, 0xd7, 0xbb, 0xfe, 0xe8, 0x45, 0xe9,
- 0x97, 0x20, 0x7c, 0x26, 0xfd, 0x83, 0xf0, 0x5f, 0x41, 0xf2, 0x42, 0x3a, 0x89, 0x5f, 0x63, 0xac,
- 0x6a, 0xf5, 0x1b, 0x79, 0x18, 0x5c, 0xa0, 0x9e, 0x6e, 0xe8, 0x9e, 0x4e, 0x2e, 0x43, 0x7f, 0xd5,
- 0x32, 0xe8, 0x63, 0x25, 0xf7, 0x74, 0xee, 0x6a, 0x61, 0xaa, 0xb4, 0xb5, 0x39, 0x91, 0xa7, 0xa6,
- 0xc6, 0x81, 0xe4, 0x49, 0x28, 0xae, 0x6c, 0x74, 0xa8, 0x92, 0x7f, 0x3a, 0x77, 0x75, 0x68, 0x6a,
- 0x68, 0x6b, 0x73, 0xa2, 0x1f, 0x85, 0xa6, 0x21, 0x98, 0x3c, 0x03, 0xf9, 0x6a, 0x45, 0x29, 0x20,
- 0xf2, 0xf4, 0xd6, 0xe6, 0xc4, 0x68, 0xd7, 0x34, 0x9e, 0xb7, 0xdb, 0xa6, 0x47, 0xdb, 0x1d, 0x6f,
- 0x43, 0xcb, 0x57, 0x2b, 0xe4, 0x0a, 0x14, 0xa7, 0x6d, 0x83, 0x2a, 0x45, 0x24, 0x22, 0x5b, 0x9b,
- 0x13, 0x63, 0x0d, 0xdb, 0xa0, 0x12, 0x15, 0xe2, 0xc9, 0xe7, 0xa1, 0xb8, 0x62, 0xb6, 0xa9, 0xd2,
- 0xff, 0x74, 0xee, 0xea, 0xf0, 0x8d, 0x4b, 0x93, 0x5c, 0x7c, 0x93, 0xbe, 0xf8, 0x26, 0x57, 0x7c,
- 0xf9, 0x4e, 0x8d, 0x7f, 0x77, 0x73, 0xa2, 0x6f, 0x6b, 0x73, 0xa2, 0xc8, 0x44, 0xfe, 0xf5, 0xef,
- 0x4d, 0xe4, 0x34, 0x2c, 0x49, 0xde, 0x84, 0xe1, 0xe9, 0x56, 0xd7, 0xf5, 0xa8, 0xb3, 0xa8, 0xb7,
- 0xa9, 0x52, 0xc2, 0x0a, 0x2f, 0x6d, 0x6d, 0x4e, 0x9c, 0x6f, 0x70, 0x70, 0xdd, 0xd2, 0xdb, 0x72,
- 0xc5, 0x32, 0xb9, 0xfa, 0x3b, 0x39, 0x38, 0x55, 0xa3, 0xae, 0x6b, 0xda, 0x56, 0x20, 0x9b, 0x4f,
- 0xc2, 0x90, 0x00, 0x55, 0x2b, 0x28, 0x9f, 0xa1, 0xa9, 0x81, 0xad, 0xcd, 0x89, 0x82, 0x6b, 0x1a,
- 0x5a, 0x88, 0x21, 0x9f, 0x81, 0x81, 0xfb, 0xa6, 0xb7, 0xb6, 0x30, 0x5b, 0x16, 0x72, 0x3a, 0xbf,
- 0xb5, 0x39, 0x41, 0xd6, 0x4d, 0x6f, 0xad, 0xde, 0x7e, 0xa0, 0x4b, 0x15, 0xfa, 0x64, 0x64, 0x1e,
- 0xc6, 0x97, 0x1d, 0xf3, 0x91, 0xee, 0xd1, 0x3b, 0x74, 0x63, 0xd9, 0x6e, 0x99, 0x8d, 0x0d, 0x21,
- 0xc5, 0xa7, 0xb7, 0x36, 0x27, 0x2e, 0x77, 0x38, 0xae, 0xfe, 0x90, 0x6e, 0xd4, 0x3b, 0x88, 0x95,
- 0x98, 0x24, 0x4a, 0xaa, 0xbf, 0x5b, 0x82, 0x91, 0xbb, 0x2e, 0x75, 0x82, 0x76, 0x5f, 0x81, 0x22,
- 0xfb, 0x2d, 0x9a, 0x8c, 0x32, 0xef, 0xba, 0xd4, 0x91, 0x65, 0xce, 0xf0, 0xe4, 0x1a, 0xf4, 0xcf,
- 0xdb, 0x4d, 0xd3, 0x12, 0xcd, 0x3e, 0xb3, 0xb5, 0x39, 0x71, 0xaa, 0xc5, 0x00, 0x12, 0x25, 0xa7,
- 0x20, 0x9f, 0x83, 0x91, 0x6a, 0x9b, 0xe9, 0x90, 0x6d, 0xe9, 0x9e, 0xed, 0x88, 0xd6, 0xa2, 0x74,
- 0x4d, 0x09, 0x2e, 0x15, 0x8c, 0xd0, 0x93, 0xd7, 0x01, 0xca, 0xf7, 0x6b, 0x9a, 0xdd, 0xa2, 0x65,
- 0x6d, 0x51, 0x28, 0x03, 0x96, 0xd6, 0xd7, 0xdd, 0xba, 0x63, 0xb7, 0x68, 0x5d, 0x77, 0xe4, 0x6a,
- 0x25, 0x6a, 0x32, 0x03, 0x63, 0x65, 0x1c, 0x15, 0x1a, 0xfd, 0xd1, 0x2e, 0x75, 0x3d, 0x57, 0xe9,
- 0x7f, 0xba, 0x70, 0x75, 0x68, 0xea, 0xc9, 0xad, 0xcd, 0x89, 0x8b, 0x7c, 0xbc, 0xd4, 0x1d, 0x81,
- 0x92, 0x58, 0xc4, 0x0a, 0x91, 0x29, 0x18, 0x2d, 0xbf, 0xdf, 0x75, 0x68, 0xd5, 0xa0, 0x96, 0x67,
- 0x7a, 0x1b, 0x42, 0x43, 0x2e, 0x6f, 0x6d, 0x4e, 0x28, 0x3a, 0x43, 0xd4, 0x4d, 0x81, 0x91, 0x98,
- 0x44, 0x8b, 0x90, 0x25, 0x38, 0x7d, 0x6b, 0x7a, 0xb9, 0x46, 0x9d, 0x47, 0x66, 0x83, 0x96, 0x1b,
- 0x0d, 0xbb, 0x6b, 0x79, 0xca, 0x00, 0xf2, 0x79, 0x66, 0x6b, 0x73, 0xe2, 0xc9, 0x66, 0xa3, 0x53,
- 0x77, 0x39, 0xb6, 0xae, 0x73, 0xb4, 0xc4, 0x2c, 0x59, 0x96, 0x7c, 0x11, 0x46, 0x57, 0x1c, 0xa6,
- 0x85, 0x46, 0x85, 0x32, 0xb8, 0x32, 0x88, 0xfa, 0x7f, 0x7e, 0x52, 0xcc, 0x54, 0x1c, 0xea, 0xf7,
- 0x2c, 0x6f, 0xac, 0xc7, 0x0b, 0xd4, 0x0d, 0xc4, 0xc9, 0x8d, 0x8d, 0xb0, 0x22, 0x14, 0x14, 0xf6,
- 0xf1, 0xa6, 0x43, 0x8d, 0x84, 0xb6, 0x0d, 0x61, 0x9b, 0xaf, 0x6d, 0x6d, 0x4e, 0x7c, 0xd2, 0x11,
- 0x34, 0xf5, 0x9e, 0x6a, 0x97, 0xc9, 0x8a, 0xcc, 0xc0, 0x20, 0xd3, 0xa6, 0x3b, 0xa6, 0x65, 0x28,
- 0xf0, 0x74, 0xee, 0xea, 0xd8, 0x8d, 0x71, 0xbf, 0xf5, 0x3e, 0x7c, 0xea, 0xc2, 0xd6, 0xe6, 0xc4,
- 0x19, 0xa6, 0x83, 0xf5, 0x87, 0xa6, 0x25, 0x4f, 0x11, 0x41, 0x51, 0x36, 0x8a, 0xa6, 0x6c, 0x0f,
- 0x87, 0xee, 0x70, 0x38, 0x8a, 0x56, 0x6d, 0x2f, 0x3e, 0x6c, 0x7d, 0x32, 0x32, 0x0d, 0xa3, 0x53,
- 0xb6, 0x57, 0xb5, 0x5c, 0x4f, 0xb7, 0x1a, 0xb4, 0x5a, 0x51, 0x46, 0xb0, 0x1c, 0xaa, 0x05, 0x2b,
- 0x67, 0x0a, 0x4c, 0x3d, 0x32, 0x29, 0x45, 0xcb, 0xa8, 0xff, 0xbc, 0x08, 0x63, 0xac, 0x4f, 0xa4,
- 0xe1, 0x53, 0x66, 0x33, 0x01, 0x83, 0xb0, 0x5a, 0xdc, 0x8e, 0xde, 0xa0, 0x62, 0x24, 0xe1, 0x57,
- 0x58, 0x3e, 0x50, 0xe2, 0x19, 0xa7, 0x27, 0xd7, 0x60, 0x90, 0x83, 0xaa, 0x15, 0x31, 0xb8, 0x46,
- 0xb7, 0x36, 0x27, 0x86, 0x5c, 0x84, 0xd5, 0x4d, 0x43, 0x0b, 0xd0, 0x4c, 0xbb, 0xf9, 0xdf, 0x73,
- 0xb6, 0xeb, 0x31, 0xe6, 0x62, 0x6c, 0xe1, 0x67, 0x88, 0x02, 0x6b, 0x02, 0x25, 0x6b, 0x77, 0xb4,
- 0x10, 0x79, 0x0d, 0x80, 0x43, 0xca, 0x86, 0xe1, 0x88, 0x01, 0x76, 0x71, 0x6b, 0x73, 0xe2, 0x9c,
- 0x60, 0xa1, 0x1b, 0x86, 0x3c, 0x3a, 0x25, 0x62, 0xd2, 0x86, 0x11, 0xfe, 0x6b, 0x5e, 0x5f, 0xa5,
- 0x2d, 0x3e, 0xba, 0x86, 0x6f, 0x5c, 0xf5, 0x3b, 0x31, 0x2a, 0x9d, 0x49, 0x99, 0x74, 0xc6, 0xf2,
- 0x9c, 0x8d, 0xa9, 0x09, 0x31, 0x21, 0x5f, 0x10, 0x55, 0xb5, 0x10, 0x27, 0x4f, 0x05, 0x72, 0x19,
- 0x36, 0x4f, 0xcf, 0xda, 0xce, 0xba, 0xee, 0x18, 0xd4, 0x98, 0xda, 0x90, 0xe7, 0xe9, 0x07, 0x3e,
- 0xb8, 0xbe, 0x2a, 0xab, 0x9e, 0x4c, 0xce, 0x3a, 0x9d, 0x73, 0xab, 0x75, 0x57, 0x51, 0xe5, 0x06,
- 0x12, 0xd2, 0x72, 0xbb, 0xab, 0x71, 0x35, 0x8b, 0x96, 0x61, 0x53, 0x01, 0x07, 0xdc, 0xa3, 0x0e,
- 0x9b, 0xc4, 0x71, 0xd4, 0x89, 0xa9, 0x40, 0x30, 0x79, 0xc4, 0x31, 0x49, 0x1e, 0xa2, 0xc8, 0xa5,
- 0xb7, 0xe1, 0x74, 0x42, 0x14, 0x64, 0x1c, 0x0a, 0x0f, 0xe9, 0x06, 0x57, 0x17, 0x8d, 0xfd, 0x49,
- 0xce, 0x42, 0xff, 0x23, 0xbd, 0xd5, 0x15, 0x4b, 0xa8, 0xc6, 0x7f, 0xbc, 0x9e, 0xff, 0x6c, 0x8e,
- 0xad, 0x38, 0x64, 0xda, 0xb6, 0x2c, 0xda, 0xf0, 0xe4, 0x45, 0xe7, 0x15, 0x18, 0x9a, 0xb7, 0x1b,
- 0x7a, 0x0b, 0xfb, 0x91, 0xeb, 0x9d, 0xb2, 0xb5, 0x39, 0x71, 0x96, 0x75, 0xe0, 0x64, 0x8b, 0x61,
- 0xa4, 0x36, 0x85, 0xa4, 0x4c, 0x01, 0x34, 0xda, 0xb6, 0x3d, 0x8a, 0x05, 0xf3, 0xa1, 0x02, 0x60,
- 0x41, 0x07, 0x51, 0xb2, 0x02, 0x84, 0xc4, 0xe4, 0x3a, 0x0c, 0x2e, 0xb3, 0x75, 0xb6, 0x61, 0xb7,
- 0x84, 0xf2, 0xe1, 0x52, 0x80, 0x6b, 0xaf, 0x3c, 0x56, 0x7d, 0x22, 0x75, 0x0e, 0xc6, 0xa6, 0x5b,
- 0x26, 0xb5, 0x3c, 0xb9, 0xd5, 0x6c, 0x24, 0x97, 0x9b, 0xd4, 0xf2, 0xe4, 0x56, 0xe3, 0x98, 0xd7,
- 0x19, 0x54, 0x6e, 0x75, 0x40, 0xaa, 0xfe, 0x61, 0x01, 0x2e, 0xde, 0xe9, 0xae, 0x52, 0xc7, 0xa2,
- 0x1e, 0x75, 0xc5, 0x82, 0x1c, 0x70, 0x5d, 0x84, 0xd3, 0x09, 0xa4, 0xe0, 0x8e, 0x0b, 0xe5, 0xc3,
- 0x00, 0x59, 0x17, 0x6b, 0xbc, 0x3c, 0xdb, 0x26, 0x8a, 0x92, 0x39, 0x38, 0x15, 0x02, 0x59, 0x23,
- 0x5c, 0x25, 0x8f, 0x4b, 0xc9, 0x53, 0x5b, 0x9b, 0x13, 0x97, 0x24, 0x6e, 0xac, 0xd9, 0xb2, 0x06,
- 0xc7, 0x8b, 0x91, 0x3b, 0x30, 0x1e, 0x82, 0x6e, 0x39, 0x76, 0xb7, 0xe3, 0x2a, 0x05, 0x64, 0x35,
- 0xb1, 0xb5, 0x39, 0xf1, 0x84, 0xc4, 0xaa, 0x89, 0x48, 0x79, 0x01, 0x8f, 0x17, 0x24, 0x3f, 0x91,
- 0x93, 0xb9, 0x89, 0x51, 0x58, 0xc4, 0x51, 0xf8, 0xaa, 0x3f, 0x0a, 0x33, 0x85, 0x34, 0x19, 0x2f,
- 0x29, 0x06, 0x65, 0xac, 0x19, 0x89, 0x41, 0x99, 0xa8, 0xf1, 0xd2, 0x34, 0x9c, 0x4b, 0xe5, 0xb5,
- 0x2b, 0xad, 0xfe, 0x67, 0x05, 0x99, 0xcb, 0xb2, 0x6d, 0x04, 0x9d, 0xb9, 0x24, 0x77, 0xe6, 0xb2,
- 0x6d, 0xe0, 0x54, 0x9f, 0x0b, 0xd7, 0x4e, 0xa9, 0xb1, 0x1d, 0xdb, 0x88, 0xcf, 0xfa, 0xc9, 0xb2,
- 0xe4, 0xcb, 0x70, 0x3e, 0x01, 0xe4, 0xd3, 0x35, 0xd7, 0xfe, 0x2b, 0x5b, 0x9b, 0x13, 0x6a, 0x0a,
- 0xd7, 0xf8, 0xec, 0x9d, 0xc1, 0x85, 0xe8, 0x70, 0x41, 0x92, 0xba, 0x6d, 0x79, 0xba, 0x69, 0x09,
- 0xe3, 0x92, 0x8f, 0x92, 0x4f, 0x6d, 0x6d, 0x4e, 0x3c, 0x2b, 0xeb, 0xa0, 0x4f, 0x13, 0x6f, 0x7c,
- 0x16, 0x1f, 0x62, 0x80, 0x92, 0x82, 0xaa, 0xb6, 0xf5, 0xa6, 0x6f, 0x31, 0x5f, 0xdd, 0xda, 0x9c,
- 0xf8, 0x44, 0x6a, 0x1d, 0x26, 0xa3, 0x92, 0x57, 0xe8, 0x2c, 0x4e, 0x44, 0x03, 0x12, 0xe2, 0x16,
- 0x6d, 0x83, 0xe2, 0x37, 0xf4, 0x23, 0x7f, 0x75, 0x6b, 0x73, 0xe2, 0x29, 0x89, 0xbf, 0x65, 0x1b,
- 0x34, 0xde, 0xfc, 0x94, 0xd2, 0xea, 0xef, 0x14, 0xe0, 0xa9, 0x5a, 0x79, 0x61, 0xbe, 0x6a, 0xf8,
- 0x26, 0xcd, 0xb2, 0x63, 0x3f, 0x32, 0x0d, 0x69, 0xf4, 0xae, 0xc2, 0x85, 0x18, 0x6a, 0x06, 0xad,
- 0xa8, 0xc0, 0x98, 0xc6, 0x6f, 0xf3, 0xcd, 0xa5, 0x8e, 0xa0, 0xa9, 0x73, 0x53, 0x2b, 0xba, 0x68,
- 0x67, 0x31, 0x62, 0x7d, 0x14, 0x43, 0xd5, 0xd6, 0x6c, 0xc7, 0x6b, 0x74, 0x3d, 0xa1, 0x04, 0xd8,
- 0x47, 0x89, 0x3a, 0x5c, 0x41, 0xd4, 0xa3, 0x0a, 0x9f, 0x0f, 0xf9, 0xe9, 0x1c, 0x8c, 0x97, 0x3d,
- 0xcf, 0x31, 0x57, 0xbb, 0x1e, 0x5d, 0xd0, 0x3b, 0x1d, 0xd3, 0x6a, 0xe2, 0x58, 0x1f, 0xbe, 0xf1,
- 0x66, 0xb0, 0x46, 0xf6, 0x94, 0xc4, 0x64, 0xbc, 0xb8, 0x34, 0x44, 0x75, 0x1f, 0x55, 0x6f, 0x73,
- 0x9c, 0x3c, 0x44, 0xe3, 0xe5, 0xd8, 0x10, 0x4d, 0xe5, 0xb5, 0xab, 0x21, 0xfa, 0x8d, 0x02, 0x5c,
- 0x5e, 0x7a, 0xe8, 0xe9, 0x1a, 0x75, 0xed, 0xae, 0xd3, 0xa0, 0xee, 0xdd, 0x8e, 0xa1, 0x7b, 0x34,
- 0x1c, 0xa9, 0x13, 0xd0, 0x5f, 0x36, 0x0c, 0x6a, 0x20, 0xbb, 0x7e, 0xbe, 0xed, 0xd3, 0x19, 0x40,
- 0xe3, 0x70, 0xf2, 0x49, 0x18, 0x10, 0x65, 0x90, 0x7b, 0xff, 0xd4, 0xf0, 0xd6, 0xe6, 0xc4, 0x40,
- 0x97, 0x83, 0x34, 0x1f, 0xc7, 0xc8, 0x2a, 0xb4, 0x45, 0x19, 0x59, 0x21, 0x24, 0x33, 0x38, 0x48,
- 0xf3, 0x71, 0xe4, 0x1d, 0x18, 0x43, 0xb6, 0x41, 0x7b, 0xc4, 0xdc, 0x77, 0xd6, 0x97, 0xae, 0xdc,
- 0x58, 0xbe, 0x34, 0x61, 0x6b, 0xea, 0x8e, 0x5f, 0x40, 0x8b, 0x31, 0x20, 0xf7, 0x61, 0x5c, 0x34,
- 0x22, 0x64, 0xda, 0xdf, 0x83, 0xe9, 0xb9, 0xad, 0xcd, 0x89, 0xd3, 0xa2, 0xfd, 0x12, 0xdb, 0x04,
- 0x13, 0xc6, 0x58, 0x34, 0x3b, 0x64, 0x5c, 0xda, 0x8e, 0xb1, 0xf8, 0x62, 0x99, 0x71, 0x9c, 0x89,
- 0xfa, 0x2e, 0x8c, 0xc8, 0x05, 0xc9, 0x79, 0xdc, 0x5a, 0xf3, 0x71, 0x82, 0x9b, 0x72, 0xd3, 0xc0,
- 0xfd, 0xf4, 0x8b, 0x30, 0x5c, 0xa1, 0x6e, 0xc3, 0x31, 0x3b, 0xcc, 0x6a, 0x10, 0x4a, 0x7e, 0x6a,
- 0x6b, 0x73, 0x62, 0xd8, 0x08, 0xc1, 0x9a, 0x4c, 0xa3, 0xfe, 0xdf, 0x39, 0x38, 0xcf, 0x78, 0x97,
- 0x5d, 0xd7, 0x6c, 0x5a, 0x6d, 0x79, 0xd9, 0x7e, 0x1e, 0x4a, 0x35, 0xac, 0x4f, 0xd4, 0x74, 0x76,
- 0x6b, 0x73, 0x62, 0x9c, 0xb7, 0x40, 0xd2, 0x43, 0x41, 0x13, 0xec, 0x2b, 0xf3, 0xdb, 0xec, 0x2b,
- 0x99, 0x49, 0xeb, 0xe9, 0x8e, 0x67, 0x5a, 0xcd, 0x9a, 0xa7, 0x7b, 0x5d, 0x37, 0x62, 0xd2, 0x0a,
- 0x4c, 0xdd, 0x45, 0x54, 0xc4, 0xa4, 0x8d, 0x14, 0x22, 0x6f, 0xc3, 0xc8, 0x8c, 0x65, 0x84, 0x4c,
- 0xf8, 0x84, 0xf8, 0x04, 0xb3, 0x34, 0x29, 0xc2, 0x93, 0x2c, 0x22, 0x05, 0xd4, 0xbf, 0x9e, 0x03,
- 0x85, 0x6f, 0x02, 0xe7, 0x4d, 0xd7, 0x5b, 0xa0, 0xed, 0x55, 0x69, 0x76, 0x9a, 0xf5, 0x77, 0x95,
- 0x0c, 0x27, 0xad, 0x45, 0x68, 0x0a, 0x88, 0x5d, 0x65, 0xcb, 0x74, 0x13, 0xdb, 0x8f, 0x58, 0x29,
- 0x52, 0x85, 0x01, 0xce, 0x99, 0xdb, 0x12, 0xc3, 0x37, 0x14, 0x5f, 0x11, 0xe2, 0x55, 0x73, 0x65,
- 0x68, 0x73, 0x62, 0x79, 0x43, 0x23, 0xca, 0xab, 0xdf, 0x2c, 0xc0, 0x78, 0xbc, 0x10, 0xb9, 0x0f,
- 0x83, 0xb7, 0x6d, 0xd3, 0xa2, 0xc6, 0x92, 0x85, 0x2d, 0xec, 0x7d, 0x38, 0xe2, 0xdb, 0xe2, 0x67,
- 0xde, 0xc3, 0x32, 0x75, 0xd9, 0x82, 0xc5, 0xb3, 0x92, 0x80, 0x19, 0xf9, 0x22, 0x0c, 0x31, 0x1b,
- 0xf0, 0x11, 0x72, 0xce, 0x6f, 0xcb, 0xf9, 0x69, 0xc1, 0xf9, 0xac, 0xc3, 0x0b, 0x25, 0x59, 0x87,
- 0xec, 0x98, 0x5e, 0x69, 0x54, 0x77, 0x6d, 0x4b, 0xf4, 0x3c, 0xea, 0x95, 0x83, 0x10, 0x59, 0xaf,
- 0x38, 0x0d, 0x33, 0x5d, 0xf9, 0xc7, 0x62, 0x37, 0x48, 0x7b, 0x17, 0x2e, 0xab, 0x78, 0x0f, 0x48,
- 0xc4, 0xc4, 0x82, 0x53, 0x42, 0xa0, 0x6b, 0x66, 0x07, 0xad, 0x7e, 0x5c, 0xd7, 0xc6, 0x6e, 0x5c,
- 0x99, 0xf4, 0x0f, 0xc5, 0x26, 0xa5, 0x23, 0xb5, 0x47, 0x2f, 0x4e, 0x2e, 0x04, 0xe4, 0xb8, 0x33,
- 0x45, 0x9d, 0x8c, 0xb1, 0x90, 0x7b, 0xbb, 0x1d, 0x21, 0x57, 0x7f, 0x32, 0x0f, 0x2f, 0x84, 0x5d,
- 0xa4, 0xd1, 0x47, 0x26, 0x5d, 0x0f, 0x39, 0x8a, 0x3d, 0x32, 0x1b, 0x62, 0xee, 0xf4, 0x9a, 0x6e,
- 0x35, 0xa9, 0x41, 0xae, 0x41, 0xbf, 0x66, 0xb7, 0xa8, 0xab, 0xe4, 0xd0, 0x3c, 0xc4, 0xe9, 0xcb,
- 0x61, 0x00, 0xf9, 0x90, 0x05, 0x29, 0x88, 0x0d, 0xa5, 0x15, 0x47, 0x37, 0x3d, 0x5f, 0x93, 0xca,
- 0x49, 0x4d, 0xda, 0x41, 0x8d, 0x93, 0x9c, 0x07, 0x5f, 0x63, 0x50, 0xf0, 0x1e, 0x02, 0x64, 0xc1,
- 0x73, 0x92, 0x4b, 0xaf, 0xc1, 0xb0, 0x44, 0xbc, 0xab, 0x45, 0xe4, 0x5b, 0x45, 0x79, 0x6c, 0xf9,
- 0xcd, 0x12, 0x63, 0xeb, 0x3a, 0x1b, 0x13, 0xae, 0xcb, 0xac, 0x18, 0x3e, 0xa8, 0x84, 0xe6, 0x23,
- 0x28, 0xaa, 0xf9, 0x08, 0x22, 0x2f, 0xc1, 0x20, 0x67, 0x11, 0xec, 0x97, 0x71, 0xaf, 0xed, 0x20,
- 0x2c, 0x6a, 0x0a, 0x04, 0x84, 0xe4, 0x57, 0x72, 0xf0, 0x64, 0x4f, 0x49, 0xa0, 0xf2, 0x0d, 0xdf,
- 0x78, 0x79, 0x4f, 0x62, 0x9c, 0x7a, 0x61, 0x6b, 0x73, 0xe2, 0x9a, 0xa4, 0x19, 0x8e, 0x44, 0x53,
- 0x6f, 0x70, 0x22, 0xa9, 0x5d, 0xbd, 0x9b, 0xc2, 0x8c, 0x55, 0x5e, 0xe9, 0x2c, 0x1e, 0x55, 0x59,
- 0x8d, 0x0d, 0xbf, 0x91, 0xc5, 0xd0, 0x58, 0x15, 0xdf, 0xfb, 0xc0, 0x27, 0x49, 0xa9, 0x26, 0x83,
- 0x0b, 0x69, 0xc0, 0x05, 0x8e, 0xa9, 0xe8, 0x1b, 0x4b, 0x0f, 0x16, 0x6c, 0xcb, 0x5b, 0xf3, 0x2b,
- 0xe8, 0x97, 0xcf, 0x7a, 0xb0, 0x02, 0x43, 0xdf, 0xa8, 0xdb, 0x0f, 0xea, 0x6d, 0x46, 0x95, 0x52,
- 0x47, 0x16, 0x27, 0x36, 0xb1, 0x8b, 0x31, 0xee, 0x4f, 0x79, 0xa5, 0xf0, 0x24, 0xce, 0x9f, 0x17,
- 0x92, 0x13, 0x5c, 0xac, 0x90, 0x5a, 0x85, 0x91, 0x79, 0xbb, 0xf1, 0x30, 0x50, 0x97, 0xd7, 0xa0,
- 0xb4, 0xa2, 0x3b, 0x4d, 0xea, 0xa1, 0x2c, 0x86, 0x6f, 0x9c, 0x9e, 0xe4, 0xa7, 0xdb, 0x8c, 0x88,
- 0x23, 0xa6, 0xc6, 0xc4, 0xec, 0x53, 0xf2, 0xf0, 0xb7, 0x26, 0x0a, 0xa8, 0xdf, 0xeb, 0x87, 0x11,
- 0x71, 0x12, 0x8b, 0xab, 0x07, 0x79, 0x3d, 0x3c, 0xdb, 0x16, 0xd3, 0x65, 0x70, 0x1a, 0x15, 0x9c,
- 0xa2, 0x8d, 0x30, 0x66, 0x7f, 0x7f, 0x73, 0x22, 0xb7, 0xb5, 0x39, 0xd1, 0xa7, 0x0d, 0x4a, 0x9b,
- 0xd8, 0x70, 0x7d, 0x93, 0x16, 0x74, 0xf9, 0x6c, 0x35, 0x56, 0x96, 0xaf, 0x77, 0x6f, 0xc3, 0x80,
- 0x68, 0x83, 0xd0, 0xb8, 0x0b, 0xe1, 0xd9, 0x49, 0xe4, 0x44, 0x39, 0x56, 0xda, 0x2f, 0x45, 0xde,
- 0x84, 0x12, 0x3f, 0x4b, 0x10, 0x02, 0x38, 0x9f, 0x7e, 0xf6, 0x12, 0x2b, 0x2e, 0xca, 0x90, 0x39,
- 0x80, 0xf0, 0x1c, 0x21, 0x38, 0x40, 0x17, 0x1c, 0x92, 0x27, 0x0c, 0x31, 0x2e, 0x52, 0x59, 0xf2,
- 0x0a, 0x8c, 0xac, 0x50, 0xa7, 0x6d, 0x5a, 0x7a, 0xab, 0x66, 0xbe, 0xef, 0x9f, 0xa1, 0xe3, 0x42,
- 0xef, 0x9a, 0xef, 0xcb, 0x23, 0x37, 0x42, 0x47, 0xbe, 0x94, 0xb6, 0x4f, 0x1f, 0xc0, 0x86, 0x3c,
- 0xb3, 0xed, 0x06, 0x36, 0xd6, 0x9e, 0x94, 0x6d, 0xfb, 0x3b, 0x30, 0x1a, 0xd9, 0xa2, 0x89, 0x43,
- 0xd2, 0x27, 0x93, 0xac, 0xa5, 0xfd, 0x66, 0x8c, 0x6d, 0x94, 0x03, 0xd3, 0xe4, 0xaa, 0x65, 0x7a,
- 0xa6, 0xde, 0x9a, 0xb6, 0xdb, 0x6d, 0xdd, 0x32, 0x94, 0xa1, 0x50, 0x93, 0x4d, 0x8e, 0xa9, 0x37,
- 0x38, 0x4a, 0xd6, 0xe4, 0x68, 0x21, 0x72, 0x07, 0xc6, 0x45, 0x1f, 0x6a, 0xb4, 0x61, 0x3b, 0xcc,
- 0xf6, 0xc0, 0x33, 0x50, 0x71, 0x0c, 0xe0, 0x72, 0x5c, 0xdd, 0xf1, 0x91, 0xb2, 0x71, 0x1f, 0x2f,
- 0x78, 0xbb, 0x38, 0x38, 0x3c, 0x3e, 0x12, 0x3f, 0xb6, 0x56, 0xff, 0x6a, 0x01, 0x86, 0x05, 0x29,
- 0x5b, 0xba, 0x4f, 0x14, 0x7c, 0x3f, 0x0a, 0x9e, 0xaa, 0xa8, 0xa5, 0x83, 0x52, 0x54, 0xf5, 0x83,
- 0x7c, 0x30, 0x1b, 0x2d, 0x3b, 0xa6, 0xb5, 0xbf, 0xd9, 0xe8, 0x0a, 0xc0, 0xf4, 0x5a, 0xd7, 0x7a,
- 0xc8, 0xaf, 0xe7, 0xf2, 0xe1, 0xf5, 0x5c, 0xc3, 0xd4, 0x24, 0x0c, 0x79, 0x12, 0x8a, 0x15, 0xc6,
- 0x9f, 0xf5, 0xcc, 0xc8, 0xd4, 0xd0, 0x77, 0x39, 0xa7, 0xdc, 0x0b, 0x1a, 0x82, 0xd9, 0x66, 0x6e,
- 0x6a, 0xc3, 0xa3, 0xdc, 0x7c, 0x2e, 0xf0, 0xcd, 0xdc, 0x2a, 0x03, 0x68, 0x1c, 0x4e, 0x6e, 0xc2,
- 0xe9, 0x0a, 0x6d, 0xe9, 0x1b, 0x0b, 0x66, 0xab, 0x65, 0xba, 0xb4, 0x61, 0x5b, 0x86, 0x8b, 0x42,
- 0x16, 0xd5, 0xb5, 0x5d, 0x2d, 0x49, 0x40, 0x54, 0x28, 0x2d, 0x3d, 0x78, 0xe0, 0x52, 0x0f, 0xc5,
- 0x57, 0x98, 0x02, 0x36, 0x39, 0xdb, 0x08, 0xd1, 0x04, 0x46, 0xfd, 0xf5, 0x1c, 0xdb, 0x2d, 0xb9,
- 0x0f, 0x3d, 0xbb, 0x13, 0x68, 0xf9, 0xbe, 0x44, 0x72, 0x2d, 0xb4, 0x2b, 0xf2, 0xf8, 0xb5, 0xa7,
- 0xc4, 0xd7, 0x0e, 0x08, 0xdb, 0x22, 0xb4, 0x28, 0x52, 0xbf, 0xaa, 0xb0, 0xcd, 0x57, 0xa9, 0x7f,
- 0x9c, 0x87, 0x0b, 0xa2, 0xc5, 0xd3, 0x2d, 0xb3, 0xb3, 0x6a, 0xeb, 0x8e, 0xa1, 0xd1, 0x06, 0x35,
- 0x1f, 0xd1, 0xa3, 0x39, 0xf0, 0xa2, 0x43, 0xa7, 0xb8, 0x8f, 0xa1, 0x73, 0x03, 0x37, 0x9e, 0x4c,
- 0x32, 0x78, 0xc0, 0xcc, 0x8d, 0x8a, 0xf1, 0xad, 0xcd, 0x89, 0x11, 0x83, 0x83, 0xf1, 0x8a, 0x41,
- 0x93, 0x89, 0x98, 0x92, 0xcc, 0x53, 0xab, 0xe9, 0xad, 0xa1, 0x92, 0xf4, 0x73, 0x25, 0x69, 0x21,
- 0x44, 0x13, 0x18, 0xf5, 0x7f, 0xcf, 0xc3, 0xd9, 0xb8, 0xc8, 0x6b, 0xd4, 0x32, 0x4e, 0xe4, 0xfd,
- 0xe1, 0xc8, 0xfb, 0xfb, 0x05, 0x78, 0x42, 0x94, 0xa9, 0xad, 0xe9, 0x0e, 0x35, 0x2a, 0xa6, 0x43,
- 0x1b, 0x9e, 0xed, 0x6c, 0x1c, 0x61, 0x03, 0xea, 0xe0, 0xc4, 0x7e, 0x13, 0x4a, 0xe2, 0xb8, 0x81,
- 0xaf, 0x33, 0x63, 0x41, 0x4b, 0x10, 0x9a, 0x58, 0xa1, 0xf8, 0x51, 0x45, 0xac, 0xb3, 0x4a, 0x3b,
- 0xe9, 0xac, 0xcf, 0xc2, 0x68, 0x20, 0x7a, 0xdc, 0xf8, 0x0e, 0x84, 0xd6, 0x96, 0xe1, 0x23, 0x70,
- 0xef, 0xab, 0x45, 0x09, 0xb1, 0x36, 0x1f, 0x50, 0xad, 0xa0, 0x35, 0x34, 0x2a, 0x6a, 0x0b, 0xca,
- 0x99, 0x86, 0x26, 0x13, 0xa9, 0x9b, 0x45, 0xb8, 0x94, 0xde, 0xed, 0x1a, 0xd5, 0x8d, 0x93, 0x5e,
- 0xff, 0x58, 0xf6, 0x3a, 0x79, 0x06, 0x8a, 0xcb, 0xba, 0xb7, 0x26, 0xae, 0xfb, 0xf1, 0x0e, 0xfa,
- 0x81, 0xd9, 0xa2, 0xf5, 0x8e, 0xee, 0xad, 0x69, 0x88, 0x92, 0xe6, 0x0c, 0x40, 0x8e, 0x29, 0x73,
- 0x86, 0xb4, 0xd8, 0x0f, 0x3f, 0x9d, 0xbb, 0x5a, 0x4c, 0x5d, 0xec, 0xbf, 0x57, 0xcc, 0x9a, 0x57,
- 0xee, 0x3b, 0xa6, 0x47, 0x4f, 0x34, 0xec, 0x44, 0xc3, 0xf6, 0xa9, 0x61, 0xff, 0x30, 0x0f, 0xa3,
- 0xc1, 0xa6, 0xe9, 0x3d, 0xda, 0x38, 0x9c, 0xb5, 0x2a, 0xdc, 0xca, 0x14, 0xf6, 0xbd, 0x95, 0xd9,
- 0x8f, 0x42, 0xa9, 0xc1, 0x11, 0x2b, 0x37, 0x0d, 0x50, 0x62, 0xfc, 0x88, 0x35, 0x38, 0x58, 0x7d,
- 0x06, 0x06, 0x16, 0xf4, 0xc7, 0x66, 0xbb, 0xdb, 0x16, 0x56, 0x3a, 0xba, 0xaf, 0xb5, 0xf5, 0xc7,
- 0x9a, 0x0f, 0x57, 0xff, 0xbb, 0x1c, 0x8c, 0x09, 0xa1, 0x0a, 0xe6, 0xfb, 0x92, 0x6a, 0x28, 0x9d,
- 0xfc, 0xbe, 0xa5, 0x53, 0xd8, 0xbb, 0x74, 0xd4, 0x3f, 0x5f, 0x00, 0x65, 0xd6, 0x6c, 0xd1, 0x15,
- 0x47, 0xb7, 0xdc, 0x07, 0xd4, 0x11, 0xdb, 0xe9, 0x19, 0xc6, 0x6a, 0x5f, 0x1f, 0x28, 0x4d, 0x29,
- 0xf9, 0x3d, 0x4d, 0x29, 0x9f, 0x86, 0x21, 0xd1, 0x98, 0xc0, 0x75, 0x12, 0x47, 0x8d, 0xe3, 0x03,
- 0xb5, 0x10, 0xcf, 0x88, 0xcb, 0x9d, 0x8e, 0x63, 0x3f, 0xa2, 0x0e, 0xbf, 0x15, 0x13, 0xc4, 0xba,
- 0x0f, 0xd4, 0x42, 0xbc, 0xc4, 0x99, 0xfa, 0xf6, 0xa2, 0xcc, 0x99, 0x3a, 0x5a, 0x88, 0x27, 0x57,
- 0x61, 0x70, 0xde, 0x6e, 0xe8, 0x28, 0x68, 0x3e, 0xad, 0x8c, 0x6c, 0x6d, 0x4e, 0x0c, 0xb6, 0x04,
- 0x4c, 0x0b, 0xb0, 0x8c, 0xb2, 0x62, 0xaf, 0x5b, 0x2d, 0x5b, 0xe7, 0xce, 0x36, 0x83, 0x9c, 0xd2,
- 0x10, 0x30, 0x2d, 0xc0, 0x32, 0x4a, 0x26, 0x73, 0x74, 0x62, 0x1a, 0x0c, 0x79, 0x3e, 0x10, 0x30,
- 0x2d, 0xc0, 0xaa, 0xbf, 0x5e, 0x64, 0xda, 0xeb, 0x9a, 0xef, 0x1f, 0xfb, 0x75, 0x21, 0x1c, 0x30,
- 0xfd, 0x7b, 0x18, 0x30, 0xc7, 0xe6, 0xc0, 0x4e, 0xfd, 0xe7, 0x03, 0x00, 0x42, 0xfa, 0x33, 0x27,
- 0x9b, 0xc3, 0xfd, 0x69, 0x4d, 0x05, 0x4e, 0xcf, 0x58, 0x6b, 0xba, 0xd5, 0xa0, 0x46, 0x78, 0x6c,
- 0x59, 0xc2, 0xa1, 0x8d, 0x4e, 0x97, 0x54, 0x20, 0xc3, 0x73, 0x4b, 0x2d, 0x59, 0x80, 0xbc, 0x08,
- 0xc3, 0x55, 0xcb, 0xa3, 0x8e, 0xde, 0xf0, 0xcc, 0x47, 0x54, 0x4c, 0x0d, 0x78, 0x13, 0x6d, 0x86,
- 0x60, 0x4d, 0xa6, 0x21, 0x37, 0x61, 0x64, 0x59, 0x77, 0x3c, 0xb3, 0x61, 0x76, 0x74, 0xcb, 0x73,
- 0x95, 0x41, 0x9c, 0xd1, 0xd0, 0xc2, 0xe8, 0x48, 0x70, 0x2d, 0x42, 0x45, 0xbe, 0x04, 0x43, 0xb8,
- 0x35, 0x45, 0xff, 0xf0, 0xa1, 0x6d, 0x2f, 0x2a, 0x9f, 0x0d, 0xdd, 0x11, 0xf9, 0xe9, 0x2b, 0xde,
- 0x38, 0xc7, 0xef, 0x2a, 0x03, 0x8e, 0xe4, 0x0b, 0x30, 0x30, 0x63, 0x19, 0xc8, 0x1c, 0xb6, 0x65,
- 0xae, 0x0a, 0xe6, 0xe7, 0x43, 0xe6, 0x76, 0x27, 0xc6, 0xdb, 0x67, 0x97, 0x3e, 0xca, 0x86, 0x3f,
- 0xbc, 0x51, 0x36, 0xf2, 0x21, 0x1c, 0x8b, 0x8f, 0x1e, 0xd4, 0xb1, 0xf8, 0xd8, 0x1e, 0x8f, 0xc5,
- 0xd5, 0xf7, 0x61, 0x78, 0x6a, 0x79, 0x36, 0x18, 0xbd, 0x17, 0xa1, 0xb0, 0x2c, 0x3c, 0x23, 0x8a,
- 0xdc, 0x9e, 0xe9, 0x98, 0x86, 0xc6, 0x60, 0xe4, 0x1a, 0x0c, 0x4e, 0xa3, 0xbb, 0x9d, 0xb8, 0x45,
- 0x2c, 0xf2, 0xf5, 0xaf, 0x81, 0x30, 0xf4, 0xba, 0xf5, 0xd1, 0xe4, 0x93, 0x30, 0xb0, 0xec, 0xd8,
- 0x4d, 0x47, 0x6f, 0x8b, 0x35, 0x18, 0x5d, 0x53, 0x3a, 0x1c, 0xa4, 0xf9, 0x38, 0xf5, 0x67, 0x73,
- 0xbe, 0xd9, 0xce, 0x4a, 0xd4, 0xba, 0x78, 0x34, 0x8f, 0x75, 0x0f, 0xf2, 0x12, 0x2e, 0x07, 0x69,
- 0x3e, 0x8e, 0x5c, 0x83, 0xfe, 0x19, 0xc7, 0xb1, 0x1d, 0xd9, 0xa7, 0x9e, 0x32, 0x80, 0x7c, 0xdd,
- 0x8b, 0x14, 0xe4, 0x55, 0x18, 0xe6, 0x73, 0x0e, 0x3f, 0xd1, 0x2c, 0xf4, 0xba, 0x29, 0x95, 0x29,
- 0xd5, 0xef, 0x14, 0x24, 0x9b, 0x8d, 0x4b, 0xfc, 0x18, 0xde, 0x0a, 0xbc, 0x04, 0x85, 0xa9, 0xe5,
- 0x59, 0x31, 0x01, 0x9e, 0xf1, 0x8b, 0x4a, 0xaa, 0x12, 0x2b, 0xc7, 0xa8, 0xc9, 0x65, 0x28, 0x2e,
- 0x33, 0xf5, 0x29, 0xa1, 0x7a, 0x0c, 0x6e, 0x6d, 0x4e, 0x14, 0x3b, 0x4c, 0x7f, 0x10, 0x8a, 0x58,
- 0xb6, 0x99, 0xe1, 0x3b, 0x26, 0x8e, 0x0d, 0xf7, 0x31, 0x97, 0xa1, 0x58, 0x76, 0x9a, 0x8f, 0xc4,
- 0xac, 0x85, 0x58, 0xdd, 0x69, 0x3e, 0xd2, 0x10, 0x4a, 0xae, 0x03, 0x68, 0xd4, 0xeb, 0x3a, 0x16,
- 0x3e, 0x77, 0x19, 0xc2, 0xf3, 0x37, 0x9c, 0x0d, 0x1d, 0x84, 0xd6, 0x1b, 0xb6, 0x41, 0x35, 0x89,
- 0x44, 0xfd, 0x2b, 0xe1, 0xc5, 0x4e, 0xc5, 0x74, 0x1f, 0x9e, 0x74, 0xe1, 0x2e, 0xba, 0x50, 0x17,
- 0x47, 0x9c, 0xc9, 0x4e, 0x9a, 0x80, 0xfe, 0xd9, 0x96, 0xde, 0x74, 0xb1, 0x0f, 0x85, 0xef, 0xda,
- 0x03, 0x06, 0xd0, 0x38, 0x3c, 0xd6, 0x4f, 0x83, 0xdb, 0xf7, 0xd3, 0xcf, 0xf7, 0x07, 0xa3, 0x6d,
- 0x91, 0x7a, 0xeb, 0xb6, 0x73, 0xd2, 0x55, 0x3b, 0xed, 0xaa, 0x2b, 0x30, 0x50, 0x73, 0x1a, 0xd2,
- 0xd1, 0x05, 0xee, 0x07, 0x5c, 0xa7, 0xc1, 0x8f, 0x2d, 0x7c, 0x24, 0xa3, 0xab, 0xb8, 0x1e, 0xd2,
- 0x0d, 0x84, 0x74, 0x86, 0xeb, 0x09, 0x3a, 0x81, 0x14, 0x74, 0xcb, 0xb6, 0xe3, 0x89, 0x8e, 0x0b,
- 0xe8, 0x3a, 0xb6, 0xe3, 0x69, 0x3e, 0x92, 0x7c, 0x1a, 0x60, 0x65, 0x7a, 0xd9, 0x77, 0xee, 0x1f,
- 0x0a, 0x7d, 0x0f, 0x85, 0x57, 0xbf, 0x26, 0xa1, 0xc9, 0x0a, 0x0c, 0x2d, 0x75, 0xa8, 0xc3, 0xb7,
- 0x42, 0xfc, 0x01, 0xcb, 0xa7, 0x62, 0xa2, 0x15, 0xfd, 0x3e, 0x29, 0xfe, 0x0f, 0xc8, 0xf9, 0xfa,
- 0x62, 0xfb, 0x3f, 0xb5, 0x90, 0x11, 0x79, 0x15, 0x4a, 0x65, 0x6e, 0xe7, 0x0d, 0x23, 0xcb, 0x40,
- 0x64, 0xb8, 0x05, 0xe5, 0x28, 0xbe, 0x67, 0xd7, 0xf1, 0x6f, 0x4d, 0x90, 0xab, 0xd7, 0x60, 0x3c,
- 0x5e, 0x0d, 0x19, 0x86, 0x81, 0xe9, 0xa5, 0xc5, 0xc5, 0x99, 0xe9, 0x95, 0xf1, 0x3e, 0x32, 0x08,
- 0xc5, 0xda, 0xcc, 0x62, 0x65, 0x3c, 0xa7, 0xfe, 0xaa, 0x34, 0x83, 0x30, 0xd5, 0x3a, 0xb9, 0x1a,
- 0xde, 0xd7, 0x7d, 0xcb, 0x38, 0xde, 0x87, 0xe2, 0x89, 0x41, 0xdb, 0xf4, 0x3c, 0x6a, 0x88, 0x55,
- 0x02, 0xef, 0x0b, 0xbd, 0xc7, 0x5a, 0x02, 0x4f, 0x9e, 0x87, 0x51, 0x84, 0x89, 0x2b, 0x42, 0xbe,
- 0x3f, 0x16, 0x05, 0x9c, 0xc7, 0x5a, 0x14, 0xa9, 0xfe, 0x41, 0x78, 0x3b, 0x3c, 0x4f, 0xf5, 0xa3,
- 0x7a, 0xa3, 0xf8, 0x11, 0xe9, 0x2f, 0xf5, 0x5f, 0x16, 0xf9, 0x93, 0x13, 0xfe, 0x3e, 0xf1, 0x30,
- 0x44, 0x19, 0x1e, 0xe9, 0x16, 0x76, 0x71, 0xa4, 0xfb, 0x3c, 0x94, 0x16, 0xa8, 0xb7, 0x66, 0xfb,
- 0x8e, 0x5f, 0xe8, 0xa1, 0xd7, 0x46, 0x88, 0xec, 0xa1, 0xc7, 0x69, 0xc8, 0x43, 0x20, 0xfe, 0xe3,
- 0xc3, 0xc0, 0xf1, 0xdb, 0x3f, 0x42, 0xbe, 0x90, 0xd8, 0xa7, 0xd4, 0xf0, 0x89, 0x32, 0xfa, 0xf4,
- 0x9f, 0x0d, 0x1c, 0xcb, 0x25, 0x4f, 0xac, 0x7f, 0xb1, 0x39, 0x51, 0xe2, 0x34, 0x5a, 0x0a, 0x5b,
- 0xf2, 0x0e, 0x0c, 0x2d, 0xcc, 0x96, 0xc5, 0x43, 0x44, 0xee, 0x15, 0x71, 0x31, 0x90, 0xa2, 0x8f,
- 0x08, 0x44, 0x82, 0xef, 0x7b, 0xda, 0x0f, 0xf4, 0xe4, 0x3b, 0xc4, 0x90, 0x0b, 0xd3, 0x16, 0xfe,
- 0x52, 0x48, 0x9c, 0x2e, 0x04, 0xda, 0x12, 0x7d, 0x3f, 0x14, 0x97, 0x15, 0xc7, 0xc6, 0xb4, 0x65,
- 0x70, 0x1f, 0xa3, 0x7b, 0x09, 0x4e, 0x97, 0x3b, 0x9d, 0x96, 0x49, 0x0d, 0xd4, 0x17, 0xad, 0xdb,
- 0xa2, 0xae, 0x70, 0xf9, 0xc1, 0xc7, 0x27, 0x3a, 0x47, 0xd6, 0xf1, 0xf9, 0x6b, 0xdd, 0xe9, 0x46,
- 0xfd, 0x33, 0x93, 0x65, 0xd5, 0x3f, 0x93, 0x87, 0xf3, 0xd3, 0x0e, 0xd5, 0x3d, 0xba, 0x30, 0x5b,
- 0x2e, 0x77, 0xd1, 0x47, 0xae, 0xd5, 0xa2, 0x56, 0xf3, 0x70, 0x86, 0xf5, 0x1b, 0x30, 0x16, 0x34,
- 0xa0, 0xd6, 0xb0, 0x3b, 0x54, 0x7e, 0xc8, 0xd5, 0xf0, 0x31, 0x75, 0x97, 0xa1, 0xb4, 0x18, 0x29,
- 0xb9, 0x03, 0x67, 0x02, 0x48, 0xb9, 0xd5, 0xb2, 0xd7, 0x35, 0xda, 0x75, 0xb9, 0x23, 0xee, 0x20,
- 0x77, 0xc4, 0x0d, 0x39, 0xe8, 0x0c, 0x5f, 0x77, 0x18, 0x81, 0x96, 0x56, 0x4a, 0xfd, 0x66, 0x01,
- 0x2e, 0xdc, 0xd3, 0x5b, 0xa6, 0x11, 0x8a, 0x46, 0xa3, 0x6e, 0xc7, 0xb6, 0x5c, 0x7a, 0x84, 0x46,
- 0x69, 0x64, 0x28, 0x14, 0x0f, 0x64, 0x28, 0x24, 0xbb, 0xa8, 0x7f, 0xdf, 0x5d, 0x54, 0xda, 0x53,
- 0x17, 0xfd, 0x6f, 0x39, 0x18, 0xf7, 0x1f, 0x1a, 0xc8, 0x8f, 0xc6, 0x25, 0x2f, 0x78, 0x3c, 0x42,
- 0x8c, 0xf9, 0x5d, 0x23, 0x9e, 0xd4, 0x60, 0x60, 0xe6, 0x71, 0xc7, 0x74, 0xa8, 0xbb, 0x03, 0xa7,
- 0xf1, 0x27, 0xc5, 0x71, 0xc9, 0x69, 0xca, 0x8b, 0x24, 0x4e, 0x4a, 0x38, 0x18, 0x9f, 0x0f, 0xf2,
- 0xa7, 0x16, 0x53, 0xfe, 0x4b, 0x78, 0xfe, 0x7c, 0x50, 0x3c, 0xc9, 0x88, 0xbc, 0x07, 0x0d, 0x49,
- 0xc9, 0xb3, 0x50, 0x58, 0x59, 0x99, 0x17, 0x33, 0x29, 0x46, 0x20, 0xf0, 0x3c, 0xf9, 0x7d, 0x24,
- 0xc3, 0xaa, 0xff, 0x24, 0x0f, 0xc0, 0x54, 0x81, 0x0f, 0xd7, 0x43, 0x51, 0xc2, 0x29, 0x18, 0xf4,
- 0x05, 0x2e, 0xd4, 0x30, 0x78, 0x25, 0x10, 0xef, 0x88, 0x78, 0xdd, 0xc1, 0x8b, 0x90, 0x09, 0xdf,
- 0x91, 0x9c, 0xdf, 0x03, 0xe0, 0xce, 0x06, 0x1d, 0xc9, 0x7d, 0xf7, 0xf1, 0x4f, 0xc3, 0x90, 0x98,
- 0xf1, 0xec, 0xc8, 0xf9, 0x7f, 0xc3, 0x07, 0x6a, 0x21, 0x3e, 0x36, 0xb5, 0x96, 0xf6, 0xb1, 0x10,
- 0xfb, 0xe2, 0xe5, 0xbd, 0x72, 0x22, 0xde, 0x03, 0x16, 0xef, 0xd7, 0x84, 0x78, 0xf9, 0x8b, 0xa1,
- 0x23, 0x2b, 0xde, 0x03, 0x3b, 0xfb, 0x56, 0xff, 0x61, 0x0e, 0x08, 0x6b, 0xd6, 0xb2, 0xee, 0xba,
- 0xeb, 0xb6, 0x63, 0x70, 0xe7, 0xf4, 0x43, 0x11, 0xcc, 0xc1, 0xdd, 0x57, 0x7e, 0x67, 0x10, 0xce,
- 0x44, 0x1c, 0x7f, 0x8f, 0xf8, 0x64, 0x75, 0x2d, 0x3a, 0x9a, 0x7a, 0xbd, 0x7a, 0xf9, 0x84, 0x7c,
- 0x21, 0xda, 0x1f, 0x79, 0xf0, 0x26, 0xdd, 0x84, 0xbe, 0x00, 0x23, 0xe2, 0x07, 0x5b, 0xa1, 0xfd,
- 0x9b, 0x2e, 0x1c, 0xa5, 0x2e, 0x03, 0x68, 0x11, 0x34, 0x79, 0x19, 0x86, 0xd8, 0x80, 0x69, 0x62,
- 0xb0, 0x92, 0x81, 0xf0, 0x45, 0x89, 0xe1, 0x03, 0xe5, 0xf5, 0x24, 0xa0, 0x94, 0xde, 0x2d, 0x0d,
- 0xee, 0xe0, 0xdd, 0xd2, 0x97, 0x61, 0xb8, 0x6c, 0x59, 0xb6, 0x87, 0x9b, 0x74, 0x57, 0x5c, 0x4d,
- 0x64, 0x5a, 0xe5, 0xcf, 0xe2, 0x63, 0xfc, 0x90, 0x3e, 0xd5, 0x2c, 0x97, 0x19, 0x92, 0x1b, 0xfe,
- 0xab, 0x18, 0xea, 0x08, 0xaf, 0x72, 0xbc, 0x9e, 0x71, 0x04, 0x2c, 0xf9, 0x28, 0x06, 0x3b, 0x6f,
- 0x74, 0xd9, 0xb1, 0x3b, 0xb6, 0x4b, 0x0d, 0x2e, 0xa8, 0xe1, 0x30, 0xb4, 0x41, 0x47, 0x20, 0xf0,
- 0xdd, 0x5c, 0x24, 0x70, 0x48, 0xa4, 0x08, 0x79, 0x00, 0x67, 0xfd, 0x8b, 0xe2, 0xe0, 0x85, 0x62,
- 0xb5, 0xe2, 0x2a, 0x23, 0xf8, 0x2a, 0x89, 0xc4, 0x95, 0xa1, 0x5a, 0x99, 0x7a, 0xca, 0xbf, 0x16,
- 0xf1, 0x9f, 0x38, 0xd6, 0x4d, 0x43, 0xee, 0xea, 0x54, 0x7e, 0xe4, 0x47, 0x60, 0x78, 0x41, 0x7f,
- 0x5c, 0xe9, 0x8a, 0xb3, 0x97, 0xd1, 0x9d, 0xdf, 0xbe, 0xb4, 0xf5, 0xc7, 0x75, 0x43, 0x94, 0x8b,
- 0xd9, 0x14, 0x32, 0x4b, 0x52, 0x87, 0xf3, 0xcb, 0x8e, 0xdd, 0xb6, 0x3d, 0x6a, 0xc4, 0x1e, 0xfb,
- 0x9d, 0x0a, 0x5f, 0x07, 0x77, 0x04, 0x45, 0xbd, 0xc7, 0xab, 0xbf, 0x0c, 0x36, 0xa4, 0x0d, 0xa7,
- 0xca, 0xae, 0xdb, 0x6d, 0xd3, 0xf0, 0x86, 0x6a, 0x7c, 0xdb, 0xcf, 0xf8, 0x94, 0xf0, 0x5a, 0x7e,
- 0x42, 0xc7, 0xa2, 0xfc, 0x82, 0xaa, 0xee, 0x99, 0x72, 0x8d, 0xf8, 0x2d, 0x71, 0xde, 0xb7, 0x8b,
- 0x83, 0x63, 0xe3, 0xa7, 0xb4, 0x0b, 0xc9, 0xc6, 0xac, 0x98, 0x5e, 0x8b, 0xaa, 0xdf, 0xce, 0x01,
- 0x84, 0x02, 0x26, 0x2f, 0x44, 0x23, 0x22, 0xe5, 0xc2, 0x8b, 0x0e, 0x11, 0x2d, 0x21, 0x12, 0x02,
- 0x89, 0x5c, 0x86, 0x22, 0x46, 0xd4, 0xc8, 0x87, 0x07, 0xab, 0x0f, 0x4d, 0xcb, 0xd0, 0x10, 0xca,
- 0xb0, 0xd2, 0xd3, 0x77, 0xc4, 0xe2, 0xa5, 0x3e, 0xb7, 0x0a, 0x2b, 0x70, 0xaa, 0xd6, 0x5d, 0xf5,
- 0xeb, 0x96, 0xde, 0xf1, 0x61, 0x60, 0x0f, 0xb7, 0xbb, 0x1a, 0x3c, 0x7e, 0x8d, 0x84, 0x4d, 0x89,
- 0x16, 0x51, 0x7f, 0x3d, 0x17, 0x9b, 0x05, 0x0f, 0x71, 0xd1, 0xfb, 0x44, 0xd2, 0x4f, 0x23, 0x39,
- 0x2d, 0xa9, 0x7f, 0x21, 0x0f, 0xc3, 0xcb, 0xb6, 0xe3, 0x89, 0x10, 0x25, 0x47, 0x7b, 0x15, 0x92,
- 0xf6, 0x4a, 0xc5, 0x5d, 0xec, 0x95, 0x2e, 0x43, 0x51, 0x72, 0x51, 0xe6, 0xf7, 0x22, 0x86, 0xe1,
- 0x68, 0x08, 0x55, 0x7f, 0x2c, 0x0f, 0xf0, 0x85, 0x17, 0x5f, 0x3c, 0xc6, 0x02, 0x52, 0x7f, 0x31,
- 0x07, 0xa7, 0xc4, 0x45, 0x9d, 0x14, 0x5b, 0x6c, 0xc0, 0xbf, 0x62, 0x95, 0xc7, 0x25, 0x07, 0x69,
- 0x3e, 0x8e, 0x2d, 0x01, 0x33, 0x8f, 0x4d, 0x0f, 0xef, 0x2a, 0xa4, 0xe0, 0x62, 0x54, 0xc0, 0xe4,
- 0x25, 0xc0, 0xa7, 0x23, 0x2f, 0xf8, 0x57, 0x90, 0x85, 0x70, 0xdd, 0x63, 0x05, 0x66, 0x52, 0xaf,
- 0x21, 0xd5, 0xdf, 0x2a, 0x42, 0x71, 0xe6, 0x31, 0x6d, 0x1c, 0xf1, 0xae, 0x91, 0x0e, 0x36, 0x8b,
- 0xfb, 0x3c, 0xd8, 0xdc, 0x8b, 0x4f, 0xc5, 0xdb, 0x61, 0x7f, 0x96, 0xa2, 0xd5, 0xc7, 0x7a, 0x3e,
- 0x5e, 0xbd, 0xdf, 0xd3, 0x47, 0xcf, 0x25, 0xe7, 0xbf, 0x2c, 0x40, 0xa1, 0x36, 0xbd, 0x7c, 0xa2,
- 0x37, 0x87, 0xaa, 0x37, 0xbd, 0xef, 0xac, 0xd5, 0xe0, 0x1a, 0x6a, 0x30, 0xf4, 0x12, 0x8d, 0xdd,
- 0x38, 0x7d, 0xbf, 0x00, 0x63, 0xb5, 0xd9, 0x95, 0x65, 0xe9, 0x24, 0xf8, 0x0e, 0xf7, 0xe4, 0x43,
- 0x9f, 0x32, 0xde, 0xa5, 0x97, 0x13, 0xf6, 0xcc, 0xdd, 0xaa, 0xe5, 0xbd, 0x72, 0xf3, 0x9e, 0xde,
- 0xea, 0x52, 0x3c, 0x7a, 0xe1, 0x7e, 0xbf, 0xae, 0xf9, 0x3e, 0xfd, 0x26, 0x06, 0x1a, 0xf0, 0x19,
- 0x90, 0x37, 0xa0, 0x70, 0x57, 0x78, 0x64, 0x64, 0xf1, 0x79, 0xe9, 0x06, 0xe7, 0xc3, 0x26, 0xc1,
- 0x42, 0xd7, 0x34, 0x90, 0x03, 0x2b, 0xc5, 0x0a, 0xdf, 0x12, 0x0b, 0xf0, 0x8e, 0x0a, 0x37, 0xfd,
- 0xc2, 0xb7, 0xaa, 0x15, 0x52, 0x83, 0xe1, 0x65, 0xea, 0xb4, 0x4d, 0xec, 0x28, 0x7f, 0xce, 0xee,
- 0xcd, 0x84, 0xed, 0x54, 0x86, 0x3b, 0x61, 0x21, 0x64, 0x26, 0x73, 0x21, 0xef, 0x02, 0x70, 0x1b,
- 0x65, 0x87, 0xf1, 0x2a, 0x9f, 0x44, 0xbb, 0x9f, 0x9b, 0x96, 0x29, 0x36, 0x9e, 0xc4, 0x8c, 0x3c,
- 0x84, 0xf1, 0x05, 0xdb, 0x30, 0x1f, 0x98, 0xdc, 0xf5, 0x12, 0x2b, 0x28, 0x6d, 0xef, 0xf0, 0xc4,
- 0x4c, 0xc9, 0xb6, 0x54, 0x2e, 0xad, 0x9a, 0x04, 0x63, 0xf5, 0x6f, 0xf5, 0x43, 0x91, 0x75, 0xfb,
- 0xc9, 0xf8, 0xdd, 0xcf, 0xf8, 0x2d, 0xc3, 0xf8, 0x7d, 0xdb, 0x79, 0x68, 0x5a, 0xcd, 0xc0, 0x2b,
- 0x5e, 0xec, 0x4d, 0xd1, 0x93, 0x67, 0x9d, 0xe3, 0xea, 0x81, 0x03, 0xbd, 0x96, 0x20, 0xdf, 0x66,
- 0x04, 0xbf, 0x06, 0xc0, 0xdf, 0xba, 0x23, 0xcd, 0x60, 0x18, 0x1c, 0x83, 0xbf, 0x84, 0x47, 0x47,
- 0x7b, 0x39, 0x38, 0x46, 0x48, 0xcc, 0x36, 0xe1, 0xdc, 0x17, 0x62, 0x08, 0xfd, 0xee, 0x71, 0x13,
- 0x8e, 0xbe, 0x10, 0xb2, 0x11, 0xc0, 0xbd, 0x22, 0x96, 0x01, 0xa4, 0xfb, 0x25, 0x88, 0x09, 0x22,
- 0x32, 0x39, 0x88, 0x70, 0x74, 0x29, 0xd7, 0x4b, 0x9a, 0xc4, 0x83, 0xbc, 0x12, 0xbb, 0x00, 0x27,
- 0x11, 0x6e, 0x99, 0xf7, 0xdf, 0xa1, 0x03, 0xd5, 0xc8, 0x76, 0x0e, 0x54, 0xea, 0x5f, 0x2b, 0xc0,
- 0x30, 0xe3, 0x56, 0xeb, 0xb6, 0xdb, 0xba, 0xb3, 0x71, 0xa2, 0xc8, 0xfb, 0x51, 0xe4, 0x3a, 0x9c,
- 0x96, 0x1d, 0xe6, 0x99, 0xe9, 0xea, 0x87, 0x36, 0x0a, 0x8e, 0x7f, 0xe2, 0x04, 0xdc, 0xb6, 0xc4,
- 0x79, 0xdf, 0x13, 0x60, 0x3c, 0x5b, 0x70, 0xb5, 0x24, 0x2f, 0xf5, 0xe7, 0x72, 0x30, 0x1e, 0x87,
- 0x06, 0xba, 0x9f, 0x4b, 0xd5, 0xfd, 0xe7, 0x61, 0x48, 0x5c, 0xa1, 0xeb, 0x86, 0xf0, 0xe8, 0x1b,
- 0xdb, 0xda, 0x9c, 0x00, 0x7c, 0xbf, 0x5c, 0x77, 0xa8, 0x6e, 0x68, 0x21, 0x01, 0x79, 0x19, 0x46,
- 0xf0, 0xc7, 0x7d, 0xc7, 0xf4, 0x3c, 0xca, 0x3b, 0xa3, 0xc8, 0x6f, 0x05, 0x78, 0x81, 0x75, 0x8e,
- 0xd0, 0x22, 0x64, 0xea, 0x07, 0x79, 0x18, 0xaa, 0x75, 0x57, 0xdd, 0x0d, 0xd7, 0xa3, 0xed, 0x23,
- 0xae, 0x43, 0xfe, 0x26, 0xbd, 0x98, 0xba, 0x49, 0x7f, 0xd6, 0x1f, 0x5a, 0xd2, 0xe9, 0x75, 0xb0,
- 0x31, 0xf0, 0x07, 0xd5, 0xdf, 0xc8, 0xc3, 0x38, 0xbf, 0x7e, 0xad, 0x98, 0x6e, 0xe3, 0x00, 0x9e,
- 0x84, 0x1c, 0xbe, 0x54, 0xf6, 0xe7, 0xb2, 0xb0, 0x83, 0x87, 0x36, 0xea, 0x57, 0xf2, 0x30, 0x5c,
- 0xee, 0x7a, 0x6b, 0x65, 0x0f, 0x67, 0xa8, 0x63, 0xb9, 0xcb, 0xfd, 0xbb, 0x39, 0x38, 0xc5, 0x1a,
- 0xb2, 0x62, 0x3f, 0xa4, 0xd6, 0x01, 0x1c, 0x5f, 0xcb, 0xc7, 0xd0, 0xf9, 0x3d, 0x1e, 0x43, 0xfb,
- 0xb2, 0x2c, 0xec, 0x4e, 0x96, 0x78, 0xe9, 0xa2, 0xd9, 0x2d, 0x7a, 0xb4, 0x3f, 0xe3, 0x00, 0x2f,
- 0x5d, 0x7c, 0x81, 0x1c, 0xc0, 0x25, 0xdf, 0xc7, 0x4b, 0x20, 0x07, 0x70, 0x42, 0xf9, 0xf1, 0x10,
- 0xc8, 0x77, 0x72, 0x30, 0x34, 0x65, 0x7b, 0x47, 0x7c, 0xe0, 0x8b, 0xaf, 0x38, 0xda, 0x6a, 0xee,
- 0x7f, 0xc5, 0xd1, 0xd6, 0x4d, 0xf5, 0x17, 0xf2, 0x70, 0x56, 0x44, 0xb4, 0x17, 0xa7, 0x58, 0x27,
- 0xd3, 0xb1, 0x18, 0x6c, 0x49, 0xd1, 0x9c, 0xcc, 0x43, 0x42, 0x34, 0xbf, 0x5c, 0x80, 0xb3, 0x18,
- 0x80, 0x97, 0xed, 0x89, 0x3e, 0x06, 0xb6, 0x08, 0x69, 0x44, 0xaf, 0xd2, 0x17, 0x52, 0xae, 0xd2,
- 0xff, 0xc5, 0xe6, 0xc4, 0x2b, 0x4d, 0xd3, 0x5b, 0xeb, 0xae, 0x4e, 0x36, 0xec, 0xf6, 0xf5, 0xa6,
- 0xa3, 0x3f, 0x32, 0xf9, 0x25, 0xb2, 0xde, 0xba, 0x1e, 0x26, 0x9a, 0xe9, 0x98, 0x22, 0x6d, 0x4c,
- 0x0d, 0xf7, 0x3a, 0x8c, 0xab, 0x7f, 0x09, 0xef, 0x02, 0xdc, 0xb6, 0x4d, 0x4b, 0x78, 0xa6, 0x72,
- 0x43, 0xb7, 0xb6, 0xb5, 0x39, 0x71, 0xee, 0x3d, 0xdb, 0xb4, 0xea, 0x71, 0xf7, 0xd4, 0xdd, 0xd6,
- 0x17, 0xb2, 0xd6, 0xa4, 0x6a, 0xd4, 0xff, 0x36, 0x07, 0x17, 0xa3, 0x5a, 0xfc, 0x71, 0xb0, 0x1d,
- 0xff, 0x6c, 0x1e, 0xce, 0xdd, 0x42, 0xe1, 0x04, 0xee, 0x40, 0x27, 0xf3, 0x96, 0x18, 0x9c, 0x29,
- 0xb2, 0x39, 0xb1, 0x28, 0xb3, 0x65, 0x73, 0x32, 0xa9, 0x0b, 0xd9, 0xfc, 0x37, 0x39, 0x38, 0xb3,
- 0x54, 0xad, 0x4c, 0x7f, 0x4c, 0x46, 0x54, 0xf2, 0x7b, 0x8e, 0xb8, 0xc1, 0x99, 0xf8, 0x9e, 0x23,
- 0x6e, 0x7a, 0x7e, 0x23, 0x0f, 0x67, 0x6a, 0xe5, 0x85, 0xf9, 0x8f, 0xcb, 0x0c, 0x3e, 0x2d, 0xfb,
- 0xae, 0xfa, 0x87, 0x60, 0xc2, 0x16, 0x90, 0x3f, 0xf3, 0xde, 0x8d, 0x6c, 0x9f, 0xd6, 0xa4, 0x50,
- 0x8e, 0xf8, 0xd4, 0x7d, 0x20, 0x42, 0x61, 0x9a, 0x1f, 0xa1, 0x3e, 0xe2, 0x9a, 0xff, 0x5f, 0x94,
- 0x60, 0xf8, 0x4e, 0x77, 0x95, 0x0a, 0x17, 0xa7, 0x63, 0x7d, 0xf2, 0x7b, 0x03, 0x86, 0x85, 0x18,
- 0xf0, 0x8e, 0x42, 0x0a, 0xc1, 0x28, 0x42, 0xea, 0xf0, 0x28, 0x57, 0x32, 0x11, 0xb9, 0x0c, 0xc5,
- 0x7b, 0xd4, 0x59, 0x95, 0x5f, 0x27, 0x3f, 0xa2, 0xce, 0xaa, 0x86, 0x50, 0x32, 0x1f, 0x3e, 0xbc,
- 0x28, 0x2f, 0x57, 0x31, 0xfd, 0x8f, 0xb8, 0xf6, 0xc3, 0x7c, 0x46, 0x81, 0xf7, 0xa4, 0xde, 0x31,
- 0x79, 0xe2, 0x20, 0x39, 0x32, 0x42, 0xbc, 0x24, 0x59, 0x84, 0xd3, 0xb2, 0xfb, 0x1c, 0xcf, 0x7d,
- 0x33, 0x98, 0xc2, 0x2e, 0x2d, 0xeb, 0x4d, 0xb2, 0x28, 0x79, 0x1b, 0x46, 0x7c, 0x20, 0x3a, 0x02,
- 0x0e, 0x85, 0x09, 0x17, 0x02, 0x56, 0xb1, 0xf8, 0xf8, 0x91, 0x02, 0x32, 0x03, 0xbc, 0x86, 0x80,
- 0x14, 0x06, 0x31, 0xc7, 0xca, 0x48, 0x01, 0xf2, 0x32, 0x32, 0xc0, 0xc7, 0x42, 0xe8, 0xf2, 0x34,
- 0x8c, 0x4f, 0x77, 0xf1, 0x0a, 0xc7, 0x11, 0x70, 0xfe, 0x40, 0x3b, 0x42, 0x46, 0x96, 0x00, 0x42,
- 0xd7, 0x14, 0x11, 0x06, 0x63, 0xd7, 0x4e, 0x33, 0x12, 0x0b, 0xf9, 0x2e, 0x6e, 0x74, 0x2f, 0x77,
- 0x71, 0xea, 0x3f, 0xc8, 0xc3, 0x70, 0xb9, 0xd3, 0x09, 0x86, 0xc2, 0x0b, 0x50, 0x2a, 0x77, 0x3a,
- 0x77, 0xb5, 0xaa, 0x1c, 0x10, 0x5f, 0xef, 0x74, 0xea, 0x5d, 0xc7, 0x94, 0x3d, 0x8b, 0x39, 0x11,
- 0x99, 0x86, 0xd1, 0x72, 0xa7, 0xb3, 0xdc, 0x5d, 0x6d, 0x99, 0x0d, 0x29, 0x9f, 0x17, 0xcf, 0x78,
- 0xd8, 0xe9, 0xd4, 0x3b, 0x88, 0x89, 0x27, 0x75, 0x8b, 0x96, 0x21, 0x5f, 0xc6, 0xe0, 0x51, 0x22,
- 0x9d, 0x14, 0x4f, 0x58, 0xa3, 0x06, 0xa1, 0xf0, 0xc3, 0xb6, 0x4d, 0x06, 0x44, 0x3c, 0x65, 0xc0,
- 0x65, 0x3f, 0xd1, 0x03, 0xab, 0x28, 0x91, 0x36, 0x2a, 0x64, 0x49, 0x3e, 0x03, 0x03, 0xe5, 0x4e,
- 0x47, 0xba, 0x6f, 0x42, 0xd7, 0x34, 0x56, 0x2a, 0x9e, 0xb1, 0x4f, 0x90, 0x5d, 0x7a, 0x13, 0xc6,
- 0xa2, 0x95, 0xed, 0x2a, 0xe5, 0xc0, 0x0f, 0x72, 0xf8, 0x41, 0x47, 0xdc, 0x33, 0xfe, 0x25, 0x28,
- 0x94, 0x3b, 0x1d, 0x31, 0x1f, 0x9d, 0x49, 0xe9, 0x8f, 0xf8, 0x43, 0xfa, 0x72, 0xa7, 0xe3, 0x7f,
- 0xfa, 0x11, 0x7f, 0x62, 0xb3, 0xa7, 0x4f, 0xff, 0x0e, 0xff, 0xf4, 0xa3, 0xfd, 0xfc, 0x45, 0xfd,
- 0xad, 0x02, 0x9c, 0x2a, 0x77, 0x3a, 0x27, 0xa9, 0x0a, 0x0e, 0xea, 0xb9, 0xfe, 0x8b, 0x00, 0xd2,
- 0xf4, 0x38, 0x10, 0x3c, 0x00, 0x1c, 0x96, 0xa6, 0x46, 0x25, 0xa7, 0x49, 0x44, 0xbe, 0xfa, 0x0d,
- 0xee, 0x4a, 0xfd, 0xbe, 0x52, 0xc0, 0xa9, 0xf8, 0xa8, 0x87, 0x1e, 0xfb, 0xa8, 0x74, 0x9b, 0xe8,
- 0x83, 0xd2, 0xae, 0xfa, 0xe0, 0xef, 0x44, 0x06, 0x0f, 0x86, 0xbe, 0x3f, 0xe9, 0x85, 0xfe, 0x7d,
- 0x99, 0xc5, 0x63, 0xb2, 0x30, 0x45, 0x3c, 0x24, 0x3f, 0xfd, 0x97, 0x88, 0xce, 0xd5, 0x60, 0xa8,
- 0xba, 0x69, 0x68, 0x31, 0x5a, 0xbf, 0x0f, 0x07, 0x76, 0xd5, 0x87, 0x9b, 0x79, 0x7c, 0x81, 0x1f,
- 0x44, 0xf7, 0xda, 0xff, 0xee, 0xe2, 0x3a, 0x00, 0xf7, 0x3c, 0x08, 0x9c, 0xe3, 0x47, 0x79, 0x20,
- 0x1f, 0x9e, 0x15, 0x4c, 0x04, 0xf2, 0x09, 0x49, 0x02, 0x5f, 0xa3, 0x42, 0xaa, 0xaf, 0xd1, 0x35,
- 0x18, 0xd4, 0xf4, 0xf5, 0x77, 0xba, 0xd4, 0xd9, 0x10, 0xe6, 0x0c, 0x0f, 0x9e, 0xa9, 0xaf, 0xd7,
- 0x7f, 0x94, 0x01, 0xb5, 0x00, 0x4d, 0xd4, 0x20, 0x84, 0x83, 0xe4, 0x11, 0xc2, 0xcf, 0xc8, 0x83,
- 0xc0, 0x0d, 0x7b, 0x51, 0x74, 0xf2, 0x3a, 0x14, 0xca, 0xf7, 0x6b, 0x42, 0xb2, 0x41, 0xd7, 0x96,
- 0xef, 0xd7, 0x84, 0xbc, 0x32, 0xcb, 0xde, 0xaf, 0xa9, 0x5f, 0xc9, 0x03, 0x49, 0x52, 0x92, 0x57,
- 0x60, 0x08, 0xa1, 0x4d, 0xa6, 0x33, 0x72, 0x3a, 0xd9, 0x75, 0xb7, 0xee, 0x20, 0x34, 0x62, 0xdc,
- 0xf9, 0xa4, 0xe4, 0x35, 0x4c, 0xd8, 0x2d, 0x12, 0x1a, 0x46, 0xd2, 0xc9, 0xae, 0xbb, 0x7e, 0x8a,
- 0xeb, 0x58, 0xbe, 0x6e, 0x41, 0x8c, 0x76, 0xe1, 0xfd, 0xda, 0x9c, 0xed, 0x7a, 0x42, 0xd4, 0xdc,
- 0x2e, 0x5c, 0x77, 0x31, 0x8f, 0x71, 0xc4, 0x2e, 0xe4, 0x64, 0x98, 0x8b, 0xed, 0x7e, 0x8d, 0x3f,
- 0x76, 0x32, 0x34, 0xbb, 0xe5, 0x1b, 0x94, 0x3c, 0x17, 0xdb, 0xba, 0x5b, 0xe7, 0x0f, 0xa5, 0x0c,
- 0xcc, 0x14, 0x1e, 0xc9, 0xc5, 0x16, 0x29, 0xa5, 0x7e, 0x75, 0x10, 0xc6, 0x2b, 0xba, 0xa7, 0xaf,
- 0xea, 0x2e, 0x95, 0x76, 0xd3, 0xa7, 0x7c, 0x98, 0xff, 0x39, 0x92, 0x1c, 0x8c, 0xd5, 0x94, 0xaf,
- 0x89, 0x17, 0x20, 0x6f, 0x84, 0x7c, 0x83, 0x4c, 0xb9, 0x72, 0xea, 0xbd, 0xd5, 0x7a, 0x47, 0x80,
- 0xb5, 0x04, 0x21, 0x79, 0x1e, 0x86, 0x7d, 0x18, 0xdb, 0x00, 0x14, 0x42, 0x9d, 0x31, 0x56, 0x99,
- 0xfd, 0xaf, 0xc9, 0x68, 0xf2, 0x1a, 0x8c, 0xf8, 0x3f, 0x25, 0xd3, 0x9a, 0xe7, 0x11, 0x5c, 0x4d,
- 0xec, 0x9e, 0x64, 0x52, 0xb9, 0x28, 0xce, 0x6f, 0xfd, 0x91, 0xa2, 0xb1, 0x54, 0x7d, 0x11, 0x52,
- 0xf2, 0xa3, 0x30, 0xe6, 0xff, 0x16, 0x1b, 0x06, 0xee, 0xfa, 0xf7, 0x7c, 0x90, 0x88, 0x3c, 0x26,
- 0xd6, 0xc9, 0x28, 0x39, 0xdf, 0x3a, 0x3c, 0xe1, 0x67, 0x9f, 0x33, 0x56, 0x93, 0x3b, 0x87, 0x58,
- 0x05, 0xa4, 0x0a, 0xa7, 0x7d, 0x48, 0xa8, 0xa1, 0x03, 0xe1, 0x8e, 0xd1, 0x58, 0xad, 0xa7, 0x2a,
- 0x69, 0xb2, 0x14, 0x69, 0xc1, 0xe5, 0x08, 0xd0, 0x70, 0xd7, 0xcc, 0x07, 0x9e, 0xd8, 0xee, 0x89,
- 0x48, 0xd6, 0x22, 0xdd, 0x68, 0xc0, 0x95, 0xd3, 0xf8, 0x79, 0x83, 0xa3, 0x39, 0xc6, 0x7a, 0x72,
- 0x23, 0x35, 0x38, 0xeb, 0xe3, 0x6f, 0x4d, 0x2f, 0x2f, 0x3b, 0xf6, 0x7b, 0xb4, 0xe1, 0x55, 0x2b,
- 0x62, 0xbb, 0x8c, 0x11, 0x0e, 0x8d, 0xd5, 0x7a, 0xb3, 0xd1, 0x61, 0x4a, 0xc1, 0x70, 0x51, 0xe6,
- 0xa9, 0x85, 0xc9, 0x3d, 0x38, 0x27, 0xc1, 0xa5, 0xa4, 0xe6, 0x10, 0xee, 0xe7, 0x05, 0xd7, 0xf4,
- 0xbc, 0xe6, 0xe9, 0xc5, 0xc9, 0x9b, 0x30, 0xea, 0x23, 0xf8, 0x2d, 0xe2, 0x30, 0xde, 0x22, 0xe2,
- 0x90, 0x34, 0x56, 0xeb, 0xf1, 0x37, 0xb9, 0x51, 0x62, 0x59, 0xa3, 0x56, 0x36, 0x3a, 0x54, 0xf8,
- 0xe4, 0xfa, 0x1a, 0xe5, 0x6d, 0x74, 0x52, 0x95, 0x91, 0x91, 0x92, 0xb7, 0x43, 0x8d, 0x5a, 0x72,
- 0xcc, 0xa6, 0xc9, 0x77, 0xd2, 0xfe, 0x33, 0xdc, 0xd5, 0xba, 0x8d, 0xc0, 0x34, 0xfd, 0xe0, 0xe4,
- 0x97, 0xca, 0x70, 0x26, 0x45, 0xc7, 0x76, 0xb5, 0x63, 0xfc, 0x20, 0x1f, 0x36, 0xe2, 0x88, 0x6f,
- 0x1b, 0xa7, 0x60, 0xd0, 0xff, 0x12, 0x61, 0x3c, 0x28, 0x59, 0x43, 0x33, 0xce, 0xc3, 0xc7, 0x47,
- 0xc4, 0x71, 0xc4, 0xb7, 0x92, 0x07, 0x21, 0x8e, 0xef, 0xe6, 0x42, 0x71, 0x1c, 0xf1, 0xed, 0xe5,
- 0xcf, 0x14, 0xc3, 0x39, 0xe9, 0x64, 0x8f, 0x79, 0x50, 0x66, 0x72, 0xe8, 0x07, 0x5b, 0xda, 0xc5,
- 0x73, 0x58, 0x59, 0x35, 0x07, 0xf6, 0xa6, 0x9a, 0xe4, 0x4d, 0x18, 0x5e, 0xb6, 0x5d, 0xaf, 0xe9,
- 0x50, 0x77, 0x39, 0xc8, 0xc4, 0x80, 0x4f, 0xa9, 0x3b, 0x02, 0x5c, 0xef, 0x44, 0x66, 0x7f, 0x99,
- 0x5c, 0xfd, 0x47, 0x85, 0x84, 0x36, 0x70, 0xc3, 0xf5, 0x48, 0x6a, 0xc3, 0x01, 0x0c, 0x75, 0x72,
- 0x23, 0x5c, 0x05, 0xb9, 0x85, 0xdf, 0x2f, 0x85, 0x99, 0x5c, 0x15, 0x06, 0x7e, 0x94, 0x84, 0xfc,
- 0x10, 0x5c, 0x88, 0x00, 0x96, 0x75, 0x47, 0x6f, 0x53, 0x2f, 0xcc, 0x7a, 0x89, 0x81, 0xc3, 0xfc,
- 0xd2, 0xf5, 0x4e, 0x80, 0x96, 0x33, 0x69, 0x66, 0x70, 0x90, 0x54, 0x6b, 0x60, 0x17, 0x2e, 0xd6,
- 0x3f, 0x5f, 0x08, 0x0d, 0x9d, 0x68, 0x00, 0x60, 0x8d, 0xba, 0xdd, 0x96, 0x77, 0x7c, 0x3b, 0x78,
- 0x6f, 0xe9, 0x55, 0xe6, 0xe0, 0x54, 0xf9, 0xc1, 0x03, 0xda, 0xf0, 0xfc, 0xb8, 0xe6, 0xae, 0x08,
- 0xf9, 0xc8, 0x37, 0x1e, 0x02, 0x25, 0xe2, 0x54, 0xcb, 0xfd, 0x1a, 0x2f, 0xa6, 0xfe, 0xe3, 0x22,
- 0x28, 0x81, 0xe1, 0x1f, 0x3c, 0x16, 0x3c, 0xc4, 0x45, 0xf6, 0x23, 0xd1, 0x2b, 0x26, 0x9c, 0x0e,
- 0x85, 0x21, 0x5e, 0x69, 0x89, 0x3c, 0xec, 0x13, 0x71, 0x66, 0x21, 0x21, 0xdf, 0x4b, 0x5c, 0x12,
- 0x7b, 0x09, 0x12, 0x3e, 0xc6, 0xac, 0xbb, 0x9c, 0x85, 0x96, 0xe4, 0x4a, 0xbe, 0x96, 0x83, 0xb3,
- 0x7e, 0xa7, 0x2c, 0xad, 0x32, 0xa3, 0x7a, 0xda, 0xee, 0x5a, 0xc1, 0x13, 0xa6, 0xd7, 0xb3, 0xab,
- 0xe3, 0x9d, 0x34, 0x99, 0x56, 0x98, 0xb7, 0x24, 0x08, 0x6e, 0x12, 0x28, 0x84, 0x8d, 0x34, 0xf5,
- 0x06, 0x12, 0x69, 0xa9, 0xf5, 0x5e, 0xba, 0x05, 0x17, 0x33, 0x59, 0x6e, 0x67, 0xc4, 0xf6, 0xcb,
- 0x46, 0xec, 0x7f, 0x9f, 0x0b, 0x27, 0xa2, 0x98, 0x90, 0xc8, 0x24, 0x40, 0x08, 0x12, 0xdb, 0x5a,
- 0x7c, 0x21, 0x15, 0x0a, 0x4d, 0x93, 0x28, 0xc8, 0x12, 0x94, 0x84, 0x58, 0x78, 0x86, 0xe9, 0x4f,
- 0x6f, 0xd3, 0x0b, 0x93, 0xb2, 0x1c, 0x70, 0xcb, 0x2a, 0xbe, 0x59, 0xb0, 0xb9, 0xf4, 0x1a, 0x0c,
- 0xef, 0xf5, 0xbb, 0xbe, 0x56, 0x00, 0x22, 0xef, 0x41, 0x0f, 0xd1, 0x40, 0x3f, 0xc2, 0x53, 0xd8,
- 0x55, 0x18, 0x64, 0x9f, 0x80, 0x39, 0x57, 0xa4, 0x18, 0xcb, 0x5d, 0x01, 0xd3, 0x02, 0x6c, 0x18,
- 0xe0, 0x6c, 0x20, 0x3d, 0xc0, 0x99, 0xfa, 0x73, 0x05, 0x38, 0x2f, 0x77, 0x48, 0x85, 0x62, 0xda,
- 0x86, 0x93, 0x4e, 0xf9, 0x10, 0x3b, 0x45, 0x85, 0x12, 0xdf, 0x7a, 0x88, 0xfc, 0x19, 0xfc, 0x58,
- 0x08, 0x21, 0x9a, 0xc0, 0xa8, 0xff, 0x4b, 0x1e, 0x46, 0x03, 0xf3, 0x4e, 0x77, 0xdc, 0x63, 0xdc,
- 0x1d, 0x9f, 0x85, 0x51, 0x0c, 0x51, 0xd5, 0xa6, 0x16, 0x0f, 0xe3, 0xd4, 0x2f, 0x25, 0xbc, 0xf1,
- 0x11, 0x22, 0xb7, 0x59, 0x84, 0x90, 0x69, 0x3f, 0xb7, 0xfc, 0xa4, 0xc0, 0x61, 0xdc, 0xec, 0xe3,
- 0x70, 0xf5, 0x2f, 0x16, 0x60, 0xc4, 0x97, 0xf2, 0x94, 0x79, 0x54, 0xef, 0x79, 0x0e, 0x57, 0xc8,
- 0xd7, 0x01, 0x96, 0x6d, 0xc7, 0xd3, 0x5b, 0x8b, 0xa1, 0xe6, 0xe3, 0x01, 0x69, 0x07, 0xa1, 0xbc,
- 0x8c, 0x44, 0x82, 0xeb, 0x57, 0x68, 0x56, 0xf3, 0x89, 0x89, 0xaf, 0x5f, 0x01, 0x54, 0x93, 0x28,
- 0xd4, 0xdf, 0xcb, 0xc3, 0x29, 0xbf, 0x93, 0x66, 0x1e, 0xd3, 0x46, 0xf7, 0x38, 0xcf, 0x4d, 0x51,
- 0x69, 0xf7, 0x6f, 0x2b, 0x6d, 0xf5, 0xff, 0x92, 0x26, 0x92, 0xe9, 0x96, 0x7d, 0x32, 0x91, 0xfc,
- 0xeb, 0xd0, 0x71, 0xf5, 0x27, 0x0a, 0x70, 0xd6, 0x97, 0xfa, 0x6c, 0xd7, 0xc2, 0xa3, 0x85, 0x69,
- 0xbd, 0xd5, 0x3a, 0xce, 0xbb, 0xf1, 0x61, 0x5f, 0x10, 0x4b, 0x22, 0xe6, 0xa3, 0xc8, 0x33, 0xf9,
- 0x40, 0x80, 0xeb, 0xb6, 0x69, 0x68, 0x32, 0x11, 0x79, 0x1b, 0x46, 0xfc, 0x9f, 0x65, 0xa7, 0xe9,
- 0x6f, 0xc1, 0xf1, 0xa2, 0x20, 0x28, 0xa4, 0x3b, 0x91, 0xd0, 0x16, 0x91, 0x02, 0xea, 0x57, 0x06,
- 0xe0, 0xd2, 0x7d, 0xd3, 0x32, 0xec, 0x75, 0xd7, 0x4f, 0x53, 0x7a, 0xe4, 0x0f, 0xca, 0x0e, 0x3b,
- 0x3d, 0xe9, 0x3b, 0x70, 0x2e, 0x2e, 0x52, 0x27, 0x08, 0x1e, 0x2f, 0x7a, 0x67, 0x9d, 0x13, 0xd4,
- 0xfd, 0x84, 0xa5, 0xe2, 0xb6, 0x4d, 0x4b, 0x2f, 0x19, 0xcf, 0x78, 0x3a, 0xb0, 0x93, 0x8c, 0xa7,
- 0xcf, 0x41, 0xa9, 0x62, 0xb7, 0x75, 0xd3, 0x0f, 0x72, 0x84, 0xa3, 0x38, 0xa8, 0x17, 0x31, 0x9a,
- 0xa0, 0x60, 0xfc, 0x45, 0xc5, 0xd8, 0x65, 0x43, 0x21, 0x7f, 0xbf, 0x00, 0xb3, 0xd2, 0x34, 0x99,
- 0x88, 0xd8, 0x30, 0x2a, 0xaa, 0x13, 0x77, 0x63, 0x80, 0x9b, 0xa7, 0x97, 0x7d, 0x19, 0x65, 0xab,
- 0xd5, 0x64, 0xa4, 0x1c, 0xdf, 0x46, 0xf1, 0x44, 0xac, 0xe2, 0x63, 0xf8, 0x2d, 0x99, 0x16, 0xe5,
- 0x2f, 0x09, 0x01, 0x27, 0x99, 0xe1, 0xa4, 0x10, 0x70, 0x96, 0x91, 0x89, 0xc8, 0x0c, 0x9c, 0xc6,
- 0x10, 0xdf, 0xc1, 0x56, 0x8a, 0xa9, 0xc4, 0x08, 0x1a, 0x95, 0x78, 0xe5, 0xc2, 0xa3, 0x82, 0xb3,
- 0x8f, 0xab, 0x37, 0x04, 0x5a, 0x4b, 0x96, 0x20, 0x17, 0xa1, 0xb0, 0x38, 0x5f, 0xc6, 0xbb, 0x9a,
- 0x41, 0x9e, 0x5e, 0xcb, 0x6a, 0xe9, 0x1a, 0x83, 0x5d, 0xfa, 0x3c, 0x90, 0xe4, 0xe7, 0xec, 0xea,
- 0x3e, 0xe6, 0xbf, 0x92, 0xb6, 0x7c, 0x47, 0xdd, 0xa3, 0xe6, 0x20, 0x26, 0xc2, 0x48, 0x66, 0xbb,
- 0xfe, 0x0f, 0x33, 0xb3, 0x5d, 0xe9, 0x40, 0x33, 0xdb, 0xa9, 0xbf, 0x96, 0x83, 0xd3, 0x89, 0x30,
- 0xf8, 0xe4, 0x25, 0x00, 0x0e, 0x91, 0xc2, 0x8d, 0x62, 0xfc, 0x9e, 0x30, 0x34, 0xbe, 0x58, 0x1e,
- 0x43, 0x32, 0x72, 0x1d, 0x06, 0xf9, 0x2f, 0x11, 0x22, 0x2c, 0x59, 0xa4, 0xdb, 0x35, 0x0d, 0x2d,
- 0x20, 0x0a, 0x6b, 0xc1, 0x1b, 0xc9, 0x42, 0x6a, 0x11, 0x6f, 0xa3, 0x13, 0xd4, 0xc2, 0xc8, 0xd4,
- 0xaf, 0xe6, 0x61, 0x24, 0x68, 0x70, 0xd9, 0x38, 0x2c, 0x9d, 0x2b, 0x89, 0x8c, 0x02, 0x85, 0xed,
- 0x32, 0x0a, 0xc4, 0xe6, 0x5b, 0x91, 0x42, 0xe0, 0xe0, 0x1e, 0x54, 0x7d, 0x3d, 0x0f, 0xa7, 0x82,
- 0x5a, 0x0f, 0xf1, 0xf2, 0xeb, 0x23, 0x24, 0x92, 0xaf, 0xe5, 0x40, 0x99, 0x32, 0x5b, 0x2d, 0xd3,
- 0x6a, 0x56, 0xad, 0x07, 0xb6, 0xd3, 0xc6, 0x09, 0xf1, 0xf0, 0x8e, 0x70, 0xd5, 0x3f, 0x99, 0x83,
- 0xd3, 0xa2, 0x41, 0xd3, 0xba, 0x63, 0x1c, 0xde, 0xf9, 0x58, 0xbc, 0x25, 0x87, 0xa7, 0x2f, 0xea,
- 0xb7, 0xf2, 0x00, 0xf3, 0x76, 0xe3, 0xe1, 0x11, 0x7f, 0x8f, 0xf5, 0x06, 0x94, 0x78, 0x9c, 0x36,
- 0xa1, 0xb1, 0xa7, 0xc5, 0xbb, 0x23, 0xf6, 0x69, 0x1c, 0x31, 0x35, 0x2e, 0xe6, 0xe3, 0x12, 0x8f,
- 0xf3, 0xa6, 0xe4, 0x34, 0x51, 0x84, 0x55, 0xca, 0xe8, 0xc4, 0x82, 0x11, 0x54, 0xca, 0x60, 0xd1,
- 0x4a, 0xb7, 0x36, 0x27, 0x8a, 0x2d, 0xbb, 0xf1, 0x50, 0x43, 0x7a, 0xf5, 0x5f, 0xe6, 0xb8, 0xec,
- 0x8e, 0xf8, 0xab, 0x52, 0xff, 0xf3, 0x8b, 0xbb, 0xfc, 0xfc, 0x3f, 0x95, 0x83, 0xb3, 0x1a, 0x6d,
- 0xd8, 0x8f, 0xa8, 0xb3, 0x31, 0x6d, 0x1b, 0xf4, 0x16, 0xb5, 0xa8, 0x73, 0x58, 0x23, 0xea, 0xf7,
- 0x31, 0x05, 0x4b, 0xd8, 0x98, 0xbb, 0x2e, 0x35, 0x8e, 0x4e, 0x7a, 0x1c, 0xf5, 0x37, 0x07, 0x40,
- 0x49, 0xb5, 0x7a, 0x8f, 0xac, 0x39, 0x97, 0xb9, 0x95, 0x29, 0x1e, 0xd4, 0x56, 0xa6, 0x7f, 0x77,
- 0x5b, 0x99, 0xd2, 0x6e, 0xb7, 0x32, 0x03, 0x3b, 0xd9, 0xca, 0xb4, 0xe3, 0x5b, 0x99, 0x41, 0xdc,
- 0xca, 0xbc, 0xd4, 0x73, 0x2b, 0x33, 0x63, 0x19, 0x7b, 0xdc, 0xc8, 0x1c, 0xd9, 0xd4, 0xcd, 0x7b,
- 0xd9, 0x81, 0x5d, 0x65, 0x93, 0x62, 0xc3, 0x76, 0x0c, 0x6a, 0x88, 0x8d, 0x17, 0x9e, 0xfa, 0x3b,
- 0x02, 0xa6, 0x05, 0xd8, 0x44, 0x1e, 0xec, 0xd1, 0x9d, 0xe4, 0xc1, 0x3e, 0x80, 0xfd, 0xd7, 0x07,
- 0x79, 0x38, 0x3d, 0x4d, 0x1d, 0x8f, 0x07, 0x82, 0x3d, 0x08, 0x97, 0xb8, 0x32, 0x9c, 0x92, 0x18,
- 0xa2, 0x45, 0x9e, 0x0f, 0xdd, 0xfc, 0x1a, 0xd4, 0xf1, 0xe2, 0x5e, 0x82, 0x71, 0x7a, 0x56, 0xbd,
- 0x9f, 0x8b, 0x4e, 0x8c, 0xdd, 0xa0, 0x7a, 0x1f, 0xce, 0x05, 0x69, 0x8a, 0x5f, 0x5a, 0x40, 0x2f,
- 0xa5, 0x97, 0x2b, 0xee, 0x3e, 0xbd, 0x9c, 0xfa, 0xab, 0x39, 0xb8, 0xa2, 0x51, 0x8b, 0xae, 0xeb,
- 0xab, 0x2d, 0x2a, 0x35, 0x4b, 0xac, 0x0c, 0x6c, 0xd6, 0x30, 0xdd, 0xb6, 0xee, 0x35, 0xd6, 0xf6,
- 0x25, 0xa3, 0x59, 0x18, 0x91, 0xe7, 0xaf, 0x5d, 0xcc, 0x6d, 0x91, 0x72, 0xea, 0x6f, 0x16, 0x61,
- 0x60, 0xca, 0xf6, 0x6e, 0xdb, 0xfb, 0xcc, 0x77, 0x18, 0x4e, 0xf9, 0xf9, 0x5d, 0x9c, 0xf5, 0x7c,
- 0x06, 0x2b, 0x97, 0x52, 0x40, 0xa0, 0x0b, 0xe9, 0xaa, 0x9d, 0x48, 0x95, 0xe1, 0x93, 0xed, 0x32,
- 0xd3, 0xe1, 0x2b, 0x30, 0x84, 0xd1, 0x5f, 0xa4, 0xd3, 0x58, 0x74, 0xd0, 0xf6, 0x18, 0x30, 0x5e,
- 0x47, 0x48, 0x4a, 0x7e, 0x28, 0x12, 0xb9, 0xb6, 0xb4, 0xff, 0xcc, 0x88, 0x72, 0x10, 0xdb, 0x97,
- 0xf8, 0x45, 0x1e, 0xb6, 0x49, 0xca, 0x22, 0x83, 0xa7, 0x28, 0xb1, 0x26, 0x05, 0x84, 0x07, 0x98,
- 0xb5, 0x70, 0x1a, 0x46, 0xa7, 0x6c, 0x4f, 0x72, 0x06, 0x1e, 0x0a, 0x9f, 0x81, 0x32, 0xc9, 0xa7,
- 0x7b, 0x02, 0x47, 0xcb, 0xa8, 0xdf, 0x2f, 0xc2, 0x88, 0xff, 0xf3, 0x90, 0x74, 0xe7, 0x05, 0x28,
- 0xcd, 0xd9, 0x52, 0x22, 0x0d, 0x74, 0x20, 0x5e, 0xb3, 0xdd, 0x98, 0x67, 0xb4, 0x20, 0x62, 0x52,
- 0x5f, 0xb4, 0x0d, 0xd9, 0xfd, 0x1d, 0xa5, 0x6e, 0xd9, 0x46, 0xe2, 0xf9, 0x70, 0x40, 0x48, 0xae,
- 0x40, 0x11, 0x5f, 0x0e, 0x48, 0x07, 0xf9, 0xb1, 0xd7, 0x02, 0x88, 0x97, 0xb4, 0xb2, 0xb4, 0x5b,
- 0xad, 0x1c, 0xd8, 0xab, 0x56, 0x0e, 0x1e, 0xac, 0x56, 0xbe, 0x0b, 0x23, 0x58, 0x93, 0x9f, 0x87,
- 0x6f, 0xfb, 0x85, 0xf5, 0xa2, 0x58, 0xfb, 0x46, 0x79, 0xbb, 0x45, 0x36, 0x3e, 0x5c, 0xf2, 0x22,
- 0xac, 0x62, 0xba, 0x0b, 0xfb, 0xd8, 0x4e, 0xff, 0xa3, 0x1c, 0x0c, 0xdc, 0xb5, 0x1e, 0x5a, 0xf6,
- 0xfa, 0xfe, 0x34, 0xee, 0x25, 0x18, 0x16, 0x6c, 0xa4, 0xd5, 0x05, 0x5f, 0x84, 0x77, 0x39, 0xb8,
- 0x8e, 0x9c, 0x34, 0x99, 0x8a, 0xbc, 0x19, 0x14, 0xc2, 0xc7, 0x41, 0x85, 0x30, 0x15, 0x8d, 0x5f,
- 0xa8, 0x11, 0xcd, 0x9e, 0x21, 0x93, 0x93, 0xcb, 0x50, 0xac, 0xb0, 0xa6, 0x4a, 0x51, 0x74, 0x59,
- 0x53, 0x34, 0x84, 0xaa, 0x1f, 0x14, 0x61, 0x2c, 0x76, 0xf0, 0xf5, 0x1c, 0x0c, 0x89, 0x83, 0x27,
- 0xd3, 0x4f, 0xe7, 0x81, 0x8f, 0x87, 0x02, 0xa0, 0x36, 0xc8, 0xff, 0xac, 0x1a, 0xe4, 0x73, 0x30,
- 0x60, 0xbb, 0xb8, 0x28, 0xe2, 0xb7, 0x8c, 0x85, 0x43, 0x68, 0xa9, 0xc6, 0xda, 0xce, 0x07, 0x87,
- 0x20, 0x91, 0x35, 0xd2, 0x76, 0xf1, 0xd3, 0x6e, 0xc2, 0x90, 0xee, 0xba, 0xd4, 0xab, 0x7b, 0x7a,
- 0x53, 0xce, 0xf0, 0x11, 0x00, 0xe5, 0xd1, 0x81, 0xc0, 0x15, 0xbd, 0x49, 0x3e, 0x0f, 0xa3, 0x0d,
- 0x87, 0xe2, 0xb2, 0xa9, 0xb7, 0x58, 0x2b, 0x25, 0xb3, 0x36, 0x82, 0x90, 0xef, 0x4f, 0x42, 0x44,
- 0xd5, 0x20, 0xf7, 0x60, 0x54, 0x7c, 0x0e, 0xf7, 0xdc, 0xc7, 0x81, 0x36, 0x16, 0x2e, 0x63, 0x5c,
- 0x24, 0xdc, 0x77, 0x5f, 0x3c, 0xe0, 0x90, 0xc9, 0x65, 0xbe, 0x86, 0x44, 0x4a, 0x96, 0x80, 0xac,
- 0xd3, 0xd5, 0xba, 0xde, 0xf5, 0xd6, 0x58, 0x5d, 0x3c, 0x40, 0xbd, 0x48, 0x6c, 0x89, 0xaf, 0x1e,
- 0x92, 0x58, 0xf9, 0x31, 0xc8, 0x3a, 0x5d, 0x2d, 0x47, 0x90, 0xe4, 0x3e, 0x9c, 0x4b, 0x16, 0x61,
- 0x9f, 0xcc, 0x2f, 0x07, 0x9e, 0xdd, 0xda, 0x9c, 0x98, 0x48, 0x25, 0x90, 0xd8, 0x9e, 0x49, 0xb0,
- 0xad, 0x1a, 0xb7, 0x8b, 0x83, 0x03, 0xe3, 0x83, 0xda, 0x18, 0x2b, 0xeb, 0x9b, 0x90, 0xa6, 0xa1,
- 0xfe, 0x41, 0x8e, 0x99, 0x8a, 0xec, 0x83, 0x30, 0xb3, 0x37, 0xd3, 0xf5, 0xf6, 0x2e, 0x75, 0xbd,
- 0x1d, 0xe6, 0xe0, 0x2c, 0xb9, 0x3d, 0x66, 0x57, 0x4d, 0x60, 0xc9, 0x24, 0x94, 0x0c, 0xf9, 0xd4,
- 0xec, 0x7c, 0xb4, 0x13, 0xfc, 0x7a, 0x34, 0x41, 0x45, 0xae, 0x42, 0x91, 0x2d, 0x59, 0xf1, 0x2d,
- 0xb3, 0x6c, 0x5d, 0x68, 0x48, 0xa1, 0xfe, 0x58, 0x1e, 0x46, 0xa4, 0xaf, 0xb9, 0xb1, 0xaf, 0xcf,
- 0x79, 0x7d, 0x67, 0xcd, 0xf4, 0x9d, 0x5e, 0x70, 0x2f, 0xe5, 0x37, 0xf9, 0x66, 0x20, 0x8a, 0x1d,
- 0x5d, 0x48, 0x09, 0xc1, 0xbc, 0x22, 0x3e, 0xb4, 0xb4, 0xf3, 0xed, 0x23, 0xa3, 0xbf, 0x5d, 0x1c,
- 0xcc, 0x8f, 0x17, 0x6e, 0x17, 0x07, 0x8b, 0xe3, 0xfd, 0x18, 0x87, 0x0b, 0x43, 0x5f, 0xf3, 0xbd,
- 0xb9, 0xf5, 0xc0, 0x6c, 0x1e, 0xf1, 0xb7, 0x23, 0x07, 0x1b, 0xa3, 0x2c, 0x26, 0x9b, 0x23, 0xfe,
- 0x90, 0xe4, 0x43, 0x95, 0xcd, 0x49, 0xce, 0x4e, 0x21, 0x9b, 0x7f, 0x9c, 0x03, 0x25, 0x55, 0x36,
- 0xe5, 0x43, 0xf2, 0x83, 0x38, 0xb8, 0xcc, 0x9d, 0x7f, 0x94, 0x87, 0xd3, 0x55, 0xcb, 0xa3, 0x4d,
- 0xbe, 0x63, 0x3c, 0xe2, 0x53, 0xc5, 0x1d, 0x18, 0x96, 0x3e, 0x46, 0xf4, 0xf9, 0x13, 0xc1, 0x7e,
- 0x3c, 0x44, 0x65, 0x70, 0x92, 0x4b, 0x1f, 0x60, 0xb2, 0xff, 0x98, 0x90, 0x8f, 0xf8, 0x9c, 0x73,
- 0x34, 0x84, 0x7c, 0xc4, 0x27, 0xaf, 0x8f, 0xa8, 0x90, 0xff, 0x8f, 0x1c, 0x9c, 0x49, 0xa9, 0x9c,
- 0x5c, 0x81, 0x81, 0x5a, 0x77, 0x15, 0xc3, 0x6e, 0xe5, 0x42, 0x8f, 0x61, 0xb7, 0xbb, 0x8a, 0x11,
- 0xb7, 0x34, 0x1f, 0x49, 0x56, 0xf0, 0x71, 0xfd, 0x52, 0xb5, 0x32, 0x2d, 0xa4, 0xaa, 0x4a, 0x61,
- 0x02, 0x18, 0x38, 0xed, 0xcb, 0x82, 0x07, 0xf8, 0xb6, 0x69, 0x34, 0x62, 0x0f, 0xf0, 0x59, 0x19,
- 0xf2, 0xc3, 0x30, 0x54, 0x7e, 0xbf, 0xeb, 0x50, 0xe4, 0xcb, 0x25, 0xfe, 0x89, 0x80, 0xaf, 0x8f,
- 0x48, 0xe3, 0xcc, 0x63, 0x09, 0x30, 0x8a, 0x38, 0xef, 0x90, 0xa1, 0xfa, 0xd5, 0x1c, 0x5c, 0xca,
- 0x6e, 0x1d, 0xf9, 0x0c, 0x0c, 0xb0, 0x9d, 0x79, 0x59, 0x5b, 0x14, 0x9f, 0xce, 0xb3, 0xdc, 0xda,
- 0x2d, 0x5a, 0xd7, 0x1d, 0xd9, 0xd8, 0xf7, 0xc9, 0xc8, 0x5b, 0x30, 0x5c, 0x75, 0xdd, 0x2e, 0x75,
- 0x6a, 0x2f, 0xdd, 0xd5, 0xaa, 0x62, 0x4f, 0x88, 0x7b, 0x0e, 0x13, 0xc1, 0x75, 0xf7, 0xa5, 0x58,
- 0x60, 0x2d, 0x99, 0x5e, 0xfd, 0xa9, 0x1c, 0x5c, 0xee, 0xf5, 0x55, 0xe4, 0x25, 0x18, 0x5c, 0xa1,
- 0x96, 0x6e, 0x79, 0xd5, 0x8a, 0x68, 0x12, 0x6e, 0xb1, 0x3c, 0x84, 0x45, 0x77, 0x0a, 0x01, 0x21,
- 0x2b, 0xc4, 0xcf, 0x15, 0x03, 0x47, 0x06, 0x7e, 0x06, 0x8a, 0xb0, 0x58, 0x21, 0x9f, 0x50, 0xfd,
- 0xc3, 0x3c, 0x8c, 0x2c, 0xb7, 0xba, 0x4d, 0x53, 0x5a, 0x38, 0xf6, 0x6c, 0x6f, 0xfb, 0xd6, 0x6f,
- 0x7e, 0x77, 0xd6, 0x2f, 0x1b, 0x6e, 0xce, 0x1e, 0x87, 0x9b, 0x5f, 0x8e, 0xbc, 0x09, 0xa5, 0x0e,
- 0x7e, 0x47, 0xfc, 0x24, 0x96, 0x7f, 0x5d, 0xd6, 0x49, 0x2c, 0x2f, 0xc3, 0xc6, 0x57, 0x63, 0x1f,
- 0xe3, 0x2b, 0x2c, 0x2b, 0x09, 0x34, 0x5c, 0x24, 0x4e, 0x04, 0x7a, 0x20, 0x02, 0x0d, 0x17, 0x84,
- 0x13, 0x81, 0xee, 0x43, 0xa0, 0xbf, 0x99, 0x87, 0xb1, 0x68, 0x95, 0xe4, 0x33, 0x30, 0xcc, 0xab,
- 0xe1, 0xe7, 0x42, 0x39, 0xc9, 0xa9, 0x38, 0x04, 0x6b, 0xc0, 0x7f, 0x88, 0x03, 0xae, 0x53, 0x6b,
- 0xba, 0x5b, 0x0f, 0x4f, 0x68, 0xf8, 0xfd, 0xed, 0x20, 0xf7, 0x84, 0x8a, 0xa1, 0xb4, 0xb1, 0x35,
- 0xdd, 0x9d, 0x0e, 0x7f, 0x93, 0x19, 0x20, 0x0e, 0xed, 0xba, 0x34, 0xca, 0xa0, 0x88, 0x0c, 0x44,
- 0x8a, 0xf1, 0x38, 0x56, 0x3b, 0xcd, 0x61, 0x32, 0x9b, 0x2f, 0x05, 0xcd, 0x46, 0x65, 0xe8, 0xdf,
- 0x41, 0xfe, 0x73, 0x89, 0x3e, 0xfd, 0x98, 0x93, 0x13, 0x54, 0x74, 0x4f, 0xe7, 0x9b, 0x72, 0xbf,
- 0x03, 0xd4, 0x1f, 0xef, 0x40, 0xff, 0x92, 0x45, 0x97, 0x1e, 0x90, 0x17, 0x61, 0x88, 0x29, 0xcc,
- 0xbc, 0xcd, 0xfa, 0x32, 0x27, 0xfc, 0x27, 0x24, 0x4d, 0x42, 0xc4, 0x5c, 0x9f, 0x16, 0x52, 0x91,
- 0x9b, 0x00, 0xe1, 0x13, 0x33, 0xa1, 0x7d, 0x44, 0x2e, 0xc3, 0x31, 0x73, 0x7d, 0x9a, 0x44, 0xe7,
- 0x97, 0x12, 0x0f, 0x74, 0x0a, 0xc9, 0x52, 0x1c, 0xe3, 0x97, 0x12, 0xe3, 0x63, 0x1e, 0x08, 0xfb,
- 0xb5, 0xac, 0xbb, 0xee, 0xba, 0xed, 0x18, 0xd3, 0x6b, 0xba, 0xd5, 0xa4, 0xf1, 0xdd, 0x53, 0x92,
- 0x62, 0xae, 0x4f, 0x4b, 0x29, 0x47, 0x5e, 0x87, 0x11, 0xd9, 0xa1, 0x34, 0xee, 0xf4, 0x21, 0xe3,
- 0xe6, 0xfa, 0xb4, 0x08, 0x2d, 0x79, 0x15, 0x86, 0xc5, 0xef, 0xdb, 0xb6, 0xb8, 0x51, 0x96, 0x62,
- 0x11, 0x49, 0xa8, 0xb9, 0x3e, 0x4d, 0xa6, 0x94, 0x2a, 0x5d, 0x76, 0x4c, 0xcb, 0x13, 0x6f, 0x94,
- 0xe3, 0x95, 0x22, 0x4e, 0xaa, 0x14, 0x7f, 0x93, 0xb7, 0x60, 0x34, 0x08, 0xf2, 0xf4, 0x1e, 0x6d,
- 0x78, 0xe2, 0xf0, 0xfb, 0x5c, 0xac, 0x30, 0x47, 0xce, 0xf5, 0x69, 0x51, 0x6a, 0x72, 0x15, 0x4a,
- 0x1a, 0x75, 0xcd, 0xf7, 0xfd, 0xeb, 0xe2, 0x31, 0x69, 0x9c, 0x9b, 0xef, 0x33, 0x29, 0x09, 0x3c,
- 0xeb, 0x9d, 0xf0, 0x7e, 0x5a, 0x1c, 0x55, 0x93, 0x58, 0x2d, 0x33, 0x96, 0xc1, 0x7a, 0x47, 0x72,
- 0x4e, 0xf8, 0x7c, 0x18, 0xfa, 0x4a, 0xa4, 0x5d, 0x1d, 0x8e, 0xc7, 0x18, 0x90, 0xb1, 0x73, 0x7d,
- 0x5a, 0x8c, 0x5e, 0x92, 0x6a, 0xc5, 0x74, 0x1f, 0x8a, 0x68, 0xa3, 0x71, 0xa9, 0x32, 0x94, 0x24,
- 0x55, 0xf6, 0x53, 0xaa, 0x7a, 0x91, 0x7a, 0xeb, 0xb6, 0xf3, 0x50, 0xc4, 0x16, 0x8d, 0x57, 0x2d,
- 0xb0, 0x52, 0xd5, 0x02, 0x22, 0x57, 0xcd, 0x06, 0xdc, 0x58, 0x7a, 0xd5, 0xba, 0xa7, 0xcb, 0x55,
- 0xf3, 0x93, 0x38, 0xbf, 0x93, 0xe6, 0xa9, 0xfe, 0x88, 0x67, 0xbf, 0x4f, 0x76, 0x28, 0xe2, 0xa4,
- 0x0e, 0xc5, 0xdf, 0xac, 0x52, 0x29, 0xc3, 0xb9, 0x48, 0x6f, 0x1f, 0x54, 0x2a, 0xa1, 0x58, 0xa5,
- 0x72, 0x2e, 0xf4, 0x9b, 0x72, 0xe2, 0x6f, 0xe5, 0x74, 0xb4, 0x83, 0x42, 0x0c, 0xeb, 0x20, 0x29,
- 0x41, 0xf8, 0x04, 0x26, 0x15, 0x56, 0x08, 0x92, 0x0f, 0x07, 0x2d, 0x9c, 0x5e, 0x9e, 0xeb, 0xd3,
- 0x30, 0xdd, 0xb0, 0xca, 0xd3, 0x55, 0x2b, 0x67, 0x90, 0x62, 0xc4, 0xa7, 0x60, 0xb0, 0xb9, 0x3e,
- 0x8d, 0xa7, 0xb2, 0x7e, 0x51, 0x4a, 0xe9, 0xa7, 0x9c, 0x8d, 0x4e, 0x11, 0x01, 0x82, 0x4d, 0x11,
- 0x61, 0xe2, 0xbf, 0xd9, 0x64, 0xda, 0x3b, 0xe5, 0x5c, 0x74, 0xa9, 0x89, 0xe3, 0xe7, 0xfa, 0xb4,
- 0x64, 0xaa, 0xbc, 0x57, 0x23, 0x99, 0xe0, 0x94, 0xf3, 0xb1, 0x00, 0x60, 0x21, 0x8a, 0x89, 0x4b,
- 0xce, 0x19, 0xb7, 0x14, 0xcb, 0x7d, 0x2f, 0x26, 0xab, 0x0b, 0xd1, 0x8d, 0x4b, 0x0a, 0xc9, 0x5c,
- 0x9f, 0x96, 0x56, 0x92, 0x4c, 0x27, 0xf2, 0xb1, 0x29, 0x4a, 0xd4, 0x37, 0x26, 0x86, 0x9e, 0xeb,
- 0xd3, 0x12, 0x19, 0xdc, 0x6e, 0xca, 0x89, 0xd0, 0x94, 0x8b, 0xd1, 0x4e, 0x0c, 0x31, 0xac, 0x13,
- 0xa5, 0x84, 0x69, 0x37, 0xe5, 0xe4, 0x58, 0xca, 0xa5, 0x64, 0xa9, 0x70, 0xe6, 0x94, 0x92, 0x68,
- 0x69, 0xe9, 0xf9, 0x7e, 0x94, 0x27, 0x44, 0xde, 0x5e, 0x51, 0x3e, 0x8d, 0x66, 0xae, 0x4f, 0x4b,
- 0xcf, 0x15, 0xa4, 0xa5, 0x27, 0xca, 0x51, 0x2e, 0xf7, 0xe2, 0x19, 0xb4, 0x2e, 0x3d, 0xc9, 0x8e,
- 0xde, 0x23, 0x6d, 0x89, 0xf2, 0x64, 0x34, 0xfa, 0x70, 0x26, 0xe1, 0x5c, 0x9f, 0xd6, 0x23, 0xf9,
- 0xc9, 0xdd, 0x8c, 0x1c, 0x22, 0xca, 0x53, 0xd1, 0xb4, 0xdd, 0xa9, 0x44, 0x73, 0x7d, 0x5a, 0x46,
- 0x06, 0x92, 0xbb, 0x19, 0x29, 0x26, 0x94, 0x89, 0x9e, 0x6c, 0x03, 0x79, 0x64, 0x24, 0xa8, 0x58,
- 0x4a, 0xcd, 0xce, 0xa0, 0x3c, 0x1d, 0x55, 0xdd, 0x14, 0x12, 0xa6, 0xba, 0x69, 0x79, 0x1d, 0x96,
- 0x52, 0xd3, 0x09, 0x28, 0xcf, 0xf4, 0x60, 0x18, 0xb4, 0x31, 0x35, 0x11, 0xc1, 0x52, 0x6a, 0x3c,
- 0x7f, 0x45, 0x8d, 0x32, 0x4c, 0x21, 0x61, 0x0c, 0xd3, 0x32, 0x01, 0x2c, 0xa5, 0x86, 0x7d, 0x57,
- 0x9e, 0xed, 0xc1, 0x30, 0x6c, 0x61, 0x5a, 0xc0, 0xf8, 0x57, 0x23, 0x71, 0xd7, 0x95, 0x4f, 0x44,
- 0xe7, 0x0d, 0x09, 0xc5, 0xe6, 0x0d, 0x39, 0x42, 0xfb, 0x74, 0x22, 0xb2, 0xac, 0xf2, 0xc9, 0xe8,
- 0x30, 0x8f, 0xa1, 0xd9, 0x30, 0x8f, 0xc7, 0xa2, 0x9d, 0x4e, 0x44, 0xd8, 0x54, 0xae, 0x64, 0x31,
- 0x41, 0x74, 0x94, 0x09, 0x8f, 0xc9, 0x59, 0x4d, 0x09, 0xf1, 0xa8, 0x7c, 0x2a, 0xea, 0xd7, 0x9d,
- 0x20, 0x98, 0xeb, 0xd3, 0x52, 0x02, 0x43, 0x6a, 0xe9, 0xf1, 0x8c, 0x94, 0xab, 0xd1, 0x61, 0x9b,
- 0x46, 0xc3, 0x86, 0x6d, 0x6a, 0x2c, 0xa4, 0xf9, 0xb4, 0xc7, 0x27, 0xca, 0xb5, 0xa8, 0x61, 0x96,
- 0xa4, 0x60, 0x86, 0x59, 0xca, 0xa3, 0x15, 0x2d, 0x3d, 0xc6, 0x8e, 0xf2, 0x5c, 0xcf, 0x16, 0x22,
- 0x4d, 0x4a, 0x0b, 0x79, 0xc8, 0x99, 0xd0, 0x76, 0xba, 0xdb, 0x69, 0xd9, 0xba, 0xa1, 0x7c, 0x3a,
- 0xd5, 0x76, 0xe2, 0x48, 0xc9, 0x76, 0xe2, 0x00, 0xb6, 0xca, 0xcb, 0x6f, 0x1c, 0x94, 0xe7, 0xa3,
- 0xab, 0xbc, 0x8c, 0x63, 0xab, 0x7c, 0xe4, 0x3d, 0xc4, 0x74, 0xe2, 0x3d, 0x80, 0xf2, 0x42, 0x54,
- 0x01, 0x62, 0x68, 0xa6, 0x00, 0xf1, 0x17, 0x04, 0x5f, 0xce, 0xf6, 0xa0, 0x57, 0x26, 0x91, 0xdb,
- 0xd3, 0x3e, 0xb7, 0x2c, 0xba, 0xb9, 0x3e, 0x2d, 0xdb, 0x0b, 0xbf, 0x9a, 0xe2, 0x10, 0xaf, 0x5c,
- 0x8f, 0x2a, 0x58, 0x82, 0x80, 0x29, 0x58, 0xd2, 0x8d, 0xbe, 0x9a, 0xe2, 0xd1, 0xae, 0x7c, 0x26,
- 0x93, 0x55, 0xf0, 0xcd, 0x29, 0x7e, 0xf0, 0x37, 0x65, 0x97, 0x74, 0xe5, 0xc5, 0xe8, 0x62, 0x17,
- 0x62, 0xd8, 0x62, 0x27, 0xb9, 0xae, 0xdf, 0x94, 0x9d, 0xb1, 0x95, 0x1b, 0xc9, 0x52, 0xe1, 0x12,
- 0x29, 0x39, 0x6d, 0x6b, 0xe9, 0x3e, 0xcc, 0xca, 0x4b, 0x51, 0xad, 0x4b, 0xa3, 0x61, 0x5a, 0x97,
- 0xea, 0xff, 0x3c, 0x9b, 0x74, 0x45, 0x56, 0x6e, 0xc6, 0x37, 0xd9, 0x51, 0x3c, 0xb3, 0x7c, 0x12,
- 0xee, 0xcb, 0x9f, 0x8f, 0x07, 0xdb, 0x53, 0x5e, 0x8e, 0x5d, 0xfb, 0x46, 0xb0, 0xcc, 0xbe, 0x8d,
- 0x05, 0xe7, 0xfb, 0x7c, 0x3c, 0x3e, 0x9d, 0xf2, 0x4a, 0x3a, 0x87, 0x40, 0x57, 0xe2, 0xf1, 0xec,
- 0x3e, 0x1f, 0x0f, 0xe9, 0xa6, 0xbc, 0x9a, 0xce, 0x21, 0x90, 0x6e, 0x3c, 0x04, 0xdc, 0x8b, 0x52,
- 0x90, 0x79, 0xe5, 0xb3, 0x51, 0xd3, 0x31, 0x40, 0x30, 0xd3, 0x31, 0x0c, 0x45, 0xff, 0xa2, 0x14,
- 0x9c, 0x5d, 0x79, 0x2d, 0x51, 0x24, 0x68, 0xac, 0x14, 0xc2, 0xfd, 0x45, 0x29, 0xa8, 0xb9, 0xf2,
- 0x7a, 0xa2, 0x48, 0xd0, 0x3a, 0x29, 0xf4, 0xb9, 0xd1, 0xeb, 0xfd, 0xaa, 0xf2, 0x46, 0xf4, 0x30,
- 0x38, 0x9b, 0x72, 0xae, 0x4f, 0xeb, 0xf5, 0x0e, 0xf6, 0xcb, 0xd9, 0x8e, 0xdd, 0xca, 0x9b, 0xd1,
- 0x21, 0x9c, 0x45, 0xc7, 0x86, 0x70, 0xa6, 0x73, 0xf8, 0x5b, 0xb1, 0x58, 0x16, 0xca, 0x5b, 0xd1,
- 0x29, 0x2e, 0x82, 0x64, 0x53, 0x5c, 0x3c, 0xf2, 0x45, 0x24, 0x48, 0x83, 0xf2, 0xb9, 0xe8, 0x14,
- 0x27, 0xe3, 0xd8, 0x14, 0x17, 0x09, 0xe8, 0x30, 0x9d, 0x88, 0x1d, 0xa0, 0xbc, 0x1d, 0x9d, 0xe2,
- 0x62, 0x68, 0x36, 0xc5, 0xc5, 0xa3, 0x0d, 0xbc, 0x15, 0x7b, 0x42, 0xaf, 0x7c, 0x3e, 0xbd, 0xfd,
- 0x88, 0x94, 0xdb, 0xcf, 0x1f, 0xdc, 0x6b, 0xe9, 0x6f, 0xc1, 0x95, 0x72, 0x74, 0xfc, 0xa6, 0xd1,
- 0xb0, 0xf1, 0x9b, 0xfa, 0x8e, 0x3c, 0xbe, 0x71, 0x10, 0x5a, 0x35, 0xd5, 0x63, 0xe3, 0x10, 0x9a,
- 0x22, 0x29, 0xe0, 0xc8, 0x1e, 0x99, 0x6f, 0x84, 0xa6, 0x33, 0xf6, 0xc8, 0xfe, 0x36, 0x28, 0x46,
- 0xcf, 0x66, 0xd7, 0x84, 0x9f, 0xb1, 0x52, 0x89, 0xce, 0xae, 0x09, 0x02, 0x36, 0xbb, 0x26, 0xbd,
- 0x93, 0x67, 0x61, 0x5c, 0x68, 0x11, 0x77, 0x9f, 0x36, 0xad, 0xa6, 0x32, 0x13, 0x7b, 0x6f, 0x19,
- 0xc3, 0xb3, 0xd9, 0x29, 0x0e, 0xc3, 0xf5, 0x9a, 0xc3, 0xa6, 0x5b, 0x66, 0x67, 0xd5, 0xd6, 0x1d,
- 0xa3, 0x46, 0x2d, 0x43, 0x99, 0x8d, 0xad, 0xd7, 0x29, 0x34, 0xb8, 0x5e, 0xa7, 0xc0, 0x31, 0x44,
- 0x5c, 0x0c, 0xae, 0xd1, 0x06, 0x35, 0x1f, 0x51, 0xe5, 0x16, 0xb2, 0x9d, 0xc8, 0x62, 0x2b, 0xc8,
- 0xe6, 0xfa, 0xb4, 0x2c, 0x0e, 0xcc, 0x56, 0x5f, 0xd8, 0xa8, 0xbd, 0x33, 0x1f, 0x84, 0x1f, 0x58,
- 0x76, 0x68, 0x47, 0x77, 0xa8, 0x32, 0x17, 0xb5, 0xd5, 0x53, 0x89, 0x98, 0xad, 0x9e, 0x8a, 0x48,
- 0xb2, 0xf5, 0xc7, 0x42, 0xb5, 0x17, 0xdb, 0x70, 0x44, 0xa4, 0x97, 0x66, 0xb3, 0x53, 0x14, 0xc1,
- 0x04, 0x34, 0x6f, 0x5b, 0x4d, 0x3c, 0xa9, 0xb8, 0x1d, 0x9d, 0x9d, 0xb2, 0x29, 0xd9, 0xec, 0x94,
- 0x8d, 0x65, 0xaa, 0x1e, 0xc5, 0xf2, 0x31, 0x78, 0x27, 0xaa, 0xea, 0x29, 0x24, 0x4c, 0xd5, 0x53,
- 0xc0, 0x49, 0x86, 0x1a, 0x75, 0xa9, 0xa7, 0xcc, 0xf7, 0x62, 0x88, 0x24, 0x49, 0x86, 0x08, 0x4e,
- 0x32, 0x9c, 0xa5, 0x5e, 0x63, 0x4d, 0x59, 0xe8, 0xc5, 0x10, 0x49, 0x92, 0x0c, 0x11, 0xcc, 0x36,
- 0x9b, 0x51, 0xf0, 0x54, 0xb7, 0xf5, 0xd0, 0xef, 0xb3, 0xc5, 0xe8, 0x66, 0x33, 0x93, 0x90, 0x6d,
- 0x36, 0x33, 0x91, 0xe4, 0xa7, 0x76, 0xec, 0x07, 0xaf, 0x2c, 0x61, 0x85, 0x93, 0xa1, 0x5d, 0xb0,
- 0x93, 0x52, 0x73, 0x7d, 0xda, 0x4e, 0xfd, 0xec, 0x3f, 0x1d, 0x38, 0x8d, 0x2a, 0xcb, 0x58, 0xd5,
- 0xa9, 0xe0, 0xac, 0x82, 0x83, 0xe7, 0xfa, 0xb4, 0xc0, 0xad, 0xf4, 0x55, 0x18, 0xc6, 0x8f, 0xaa,
- 0x5a, 0xa6, 0x57, 0x99, 0x52, 0xde, 0x89, 0x6e, 0x99, 0x24, 0x14, 0xdb, 0x32, 0x49, 0x3f, 0xd9,
- 0x24, 0x8e, 0x3f, 0xf9, 0x14, 0x53, 0x99, 0x52, 0xb4, 0xe8, 0x24, 0x1e, 0x41, 0xb2, 0x49, 0x3c,
- 0x02, 0x08, 0xea, 0xad, 0x38, 0x76, 0xa7, 0x32, 0xa5, 0xd4, 0x52, 0xea, 0xe5, 0xa8, 0xa0, 0x5e,
- 0xfe, 0x33, 0xa8, 0xb7, 0xb6, 0xd6, 0xf5, 0x2a, 0xec, 0x1b, 0x57, 0x52, 0xea, 0xf5, 0x91, 0x41,
- 0xbd, 0x3e, 0x80, 0x4d, 0x85, 0x08, 0x58, 0x76, 0x6c, 0x36, 0x69, 0xdf, 0x31, 0x5b, 0x2d, 0xe5,
- 0x6e, 0x74, 0x2a, 0x8c, 0xe3, 0xd9, 0x54, 0x18, 0x87, 0x31, 0xd3, 0x93, 0xb7, 0x8a, 0xae, 0x76,
- 0x9b, 0xca, 0xbd, 0xa8, 0xe9, 0x19, 0x62, 0x98, 0xe9, 0x19, 0xfe, 0xc2, 0xdd, 0x05, 0xfb, 0xa5,
- 0xd1, 0x07, 0x0e, 0x75, 0xd7, 0x94, 0xfb, 0xb1, 0xdd, 0x85, 0x84, 0xc3, 0xdd, 0x85, 0xf4, 0x9b,
- 0x34, 0xe1, 0x89, 0xc8, 0x42, 0xe3, 0x5f, 0xda, 0xd4, 0xa8, 0xee, 0x34, 0xd6, 0x94, 0x2f, 0x20,
- 0xab, 0x67, 0x53, 0x97, 0xaa, 0x28, 0xe9, 0x5c, 0x9f, 0xd6, 0x8b, 0x13, 0x6e, 0xcb, 0xdf, 0x99,
- 0xe7, 0x91, 0x60, 0xb5, 0xe5, 0x69, 0x7f, 0x13, 0xfa, 0x6e, 0x6c, 0x5b, 0x9e, 0x24, 0xc1, 0x6d,
- 0x79, 0x12, 0x4c, 0x3a, 0xf0, 0x54, 0x6c, 0xab, 0xb6, 0xa0, 0xb7, 0xd8, 0xbe, 0x84, 0x1a, 0xcb,
- 0x7a, 0xe3, 0x21, 0xf5, 0x94, 0x2f, 0x22, 0xef, 0x2b, 0x19, 0x1b, 0xbe, 0x18, 0xf5, 0x5c, 0x9f,
- 0xb6, 0x0d, 0x3f, 0xa2, 0x42, 0xb1, 0x36, 0xbb, 0xb2, 0xac, 0xfc, 0x50, 0xf4, 0x7c, 0x93, 0xc1,
- 0xe6, 0xfa, 0x34, 0xc4, 0x31, 0x2b, 0xed, 0x6e, 0xa7, 0xe9, 0xe8, 0x06, 0xe5, 0x86, 0x16, 0xda,
- 0x6e, 0xc2, 0x00, 0xfd, 0xe1, 0xa8, 0x95, 0x96, 0x45, 0xc7, 0xac, 0xb4, 0x2c, 0x1c, 0x53, 0xd4,
- 0x48, 0xd2, 0x13, 0xe5, 0x4b, 0x51, 0x45, 0x8d, 0x20, 0x99, 0xa2, 0x46, 0x53, 0xa4, 0x7c, 0x01,
- 0xce, 0x07, 0xfb, 0x79, 0xb1, 0xfe, 0xf2, 0x4e, 0x53, 0xbe, 0x8c, 0x7c, 0x9e, 0x4a, 0x5c, 0x06,
- 0x44, 0xa8, 0xe6, 0xfa, 0xb4, 0x8c, 0xf2, 0x6c, 0xc5, 0x4d, 0xe4, 0xf3, 0x12, 0xe6, 0xc5, 0x8f,
- 0x44, 0x57, 0xdc, 0x0c, 0x32, 0xb6, 0xe2, 0x66, 0xa0, 0x52, 0x99, 0x0b, 0xa1, 0xea, 0xdb, 0x30,
- 0x0f, 0x64, 0x9a, 0xc5, 0x21, 0x95, 0xb9, 0xb0, 0xd4, 0x56, 0xb7, 0x61, 0x1e, 0x58, 0x6b, 0x59,
- 0x1c, 0xc8, 0x55, 0x28, 0xd5, 0x6a, 0x0b, 0x5a, 0xd7, 0x52, 0x1a, 0x31, 0x6f, 0x59, 0x84, 0xce,
- 0xf5, 0x69, 0x02, 0xcf, 0xcc, 0xa0, 0x99, 0x96, 0xee, 0x7a, 0x66, 0xc3, 0xc5, 0x11, 0xe3, 0x8f,
- 0x10, 0x23, 0x6a, 0x06, 0xa5, 0xd1, 0x30, 0x33, 0x28, 0x0d, 0xce, 0xec, 0xc5, 0x69, 0xdd, 0x75,
- 0x75, 0xcb, 0x70, 0xf4, 0x29, 0x5c, 0x26, 0x68, 0xec, 0x35, 0x56, 0x04, 0xcb, 0xec, 0xc5, 0x28,
- 0x04, 0x0f, 0xdf, 0x7d, 0x88, 0x6f, 0xe6, 0x3c, 0x88, 0x1d, 0xbe, 0xc7, 0xf0, 0x78, 0xf8, 0x1e,
- 0x83, 0xa1, 0xdd, 0xe9, 0xc3, 0x34, 0xda, 0x34, 0x99, 0x88, 0x94, 0x66, 0xcc, 0xee, 0x8c, 0x13,
- 0xa0, 0xdd, 0x19, 0x07, 0x46, 0x9a, 0xe4, 0x2f, 0xb7, 0x6b, 0x19, 0x4d, 0x0a, 0x57, 0xd9, 0x44,
- 0x19, 0xb6, 0x7e, 0x87, 0x83, 0xa3, 0xb2, 0x61, 0xe9, 0x6d, 0xbb, 0x32, 0xe5, 0x4b, 0xdd, 0x8c,
- 0xae, 0xdf, 0x99, 0x84, 0x6c, 0xfd, 0xce, 0x44, 0xb2, 0xd9, 0xd5, 0xdf, 0x68, 0xad, 0xe9, 0x0e,
- 0x35, 0x2a, 0xa6, 0x83, 0x27, 0x8b, 0x1b, 0x7c, 0x6b, 0xf8, 0x5e, 0x74, 0x76, 0xed, 0x41, 0xca,
- 0x66, 0xd7, 0x1e, 0x68, 0x66, 0xe4, 0xa5, 0xa3, 0x35, 0xaa, 0x1b, 0xca, 0xc3, 0xa8, 0x91, 0x97,
- 0x4d, 0xc9, 0x8c, 0xbc, 0x6c, 0x6c, 0xf6, 0xe7, 0xdc, 0x77, 0x4c, 0x8f, 0x2a, 0xad, 0x9d, 0x7c,
- 0x0e, 0x92, 0x66, 0x7f, 0x0e, 0xa2, 0xd9, 0x86, 0x30, 0xde, 0x21, 0xed, 0xe8, 0x86, 0x30, 0xd9,
- 0x0d, 0xf1, 0x12, 0xcc, 0x62, 0x11, 0x8f, 0xf2, 0x14, 0x2b, 0x6a, 0xb1, 0x08, 0x30, 0xb3, 0x58,
- 0xc2, 0x67, 0x7b, 0x91, 0xa7, 0x58, 0x8a, 0x1d, 0x5d, 0x43, 0x65, 0x1c, 0x5b, 0x43, 0x23, 0xcf,
- 0xb6, 0x5e, 0x8d, 0xbc, 0x33, 0x50, 0x3a, 0x51, 0xab, 0x43, 0x42, 0x31, 0xab, 0x43, 0x7e, 0x91,
- 0x30, 0x0d, 0xa7, 0xf0, 0x16, 0x5c, 0xeb, 0x06, 0xf7, 0x38, 0x3f, 0x1a, 0xfd, 0xcc, 0x18, 0x9a,
- 0x7d, 0x66, 0x0c, 0x14, 0x61, 0x22, 0xa6, 0x2d, 0x27, 0x83, 0x49, 0x78, 0x3e, 0x18, 0x03, 0x91,
- 0x79, 0x20, 0xb5, 0xf2, 0xc2, 0x7c, 0xd5, 0x58, 0x96, 0xaf, 0xc8, 0xdc, 0xe8, 0x09, 0x6c, 0x92,
- 0x62, 0xae, 0x4f, 0x4b, 0x29, 0x47, 0xde, 0x83, 0xcb, 0x02, 0x2a, 0x5e, 0x5c, 0x63, 0xda, 0x7f,
- 0x23, 0x58, 0x10, 0xbc, 0xa8, 0x1f, 0x5b, 0x2f, 0xda, 0xb9, 0x3e, 0xad, 0x27, 0xaf, 0xec, 0xba,
- 0xc4, 0xfa, 0xd0, 0xdd, 0x49, 0x5d, 0xc1, 0x22, 0xd1, 0x93, 0x57, 0x76, 0x5d, 0x42, 0xee, 0x8f,
- 0x76, 0x52, 0x57, 0xd0, 0x09, 0x3d, 0x79, 0x11, 0x17, 0x26, 0x7a, 0xe1, 0xcb, 0xad, 0x96, 0xb2,
- 0x8e, 0xd5, 0x7d, 0x6a, 0x27, 0xd5, 0x95, 0xd1, 0xe0, 0xdc, 0x8e, 0x23, 0x9b, 0xa5, 0x97, 0x3a,
- 0xd4, 0xaa, 0x45, 0x16, 0xa0, 0xc7, 0xd1, 0x59, 0x3a, 0x41, 0xc0, 0x66, 0xe9, 0x04, 0x90, 0x0d,
- 0x28, 0xf9, 0xb9, 0x8a, 0xb2, 0x11, 0x1d, 0x50, 0x32, 0x8e, 0x0d, 0xa8, 0xc8, 0xd3, 0x96, 0x25,
- 0x38, 0xb3, 0xf4, 0xd0, 0xd3, 0x7d, 0x0b, 0xd2, 0x15, 0x5d, 0xf9, 0x7e, 0xec, 0x92, 0x29, 0x49,
- 0x82, 0x97, 0x4c, 0x49, 0x30, 0x1b, 0x23, 0x0c, 0x5c, 0xdb, 0xb0, 0x1a, 0xb3, 0xba, 0xd9, 0xea,
- 0x3a, 0x54, 0xf9, 0x37, 0xa2, 0x63, 0x24, 0x86, 0x66, 0x63, 0x24, 0x06, 0x62, 0x0b, 0x34, 0x03,
- 0x95, 0x5d, 0xd7, 0x6c, 0x5a, 0x62, 0x5f, 0xd9, 0x6d, 0x79, 0xca, 0xbf, 0x19, 0x5d, 0xa0, 0xd3,
- 0x68, 0xd8, 0x02, 0x9d, 0x06, 0xc7, 0x53, 0x27, 0xd6, 0x0b, 0x6c, 0xf1, 0x90, 0xef, 0x2a, 0xff,
- 0xad, 0xd8, 0xa9, 0x53, 0x0a, 0x0d, 0x9e, 0x3a, 0xa5, 0xc0, 0xd9, 0xfa, 0xc8, 0x6d, 0xb2, 0x79,
- 0x33, 0xb8, 0xab, 0xfe, 0xb7, 0xa3, 0xeb, 0x63, 0x1c, 0xcf, 0xd6, 0xc7, 0x38, 0x2c, 0xca, 0x47,
- 0x74, 0xc1, 0xbf, 0x93, 0xc5, 0x27, 0x90, 0x7f, 0xa2, 0x0c, 0xb9, 0x25, 0xf3, 0x11, 0x23, 0xe5,
- 0xc7, 0x72, 0x59, 0x8c, 0x82, 0xe1, 0x91, 0x28, 0x14, 0x65, 0xa4, 0xd1, 0x47, 0x26, 0x5d, 0x57,
- 0xbe, 0x92, 0xc9, 0x88, 0x13, 0x44, 0x19, 0x71, 0x18, 0x79, 0x17, 0xce, 0x87, 0xb0, 0x05, 0xda,
- 0x5e, 0x0d, 0x66, 0xa6, 0x1f, 0xcf, 0x45, 0xcd, 0xe0, 0x74, 0x32, 0x66, 0x06, 0xa7, 0x63, 0xd2,
- 0x58, 0x0b, 0xd1, 0xfd, 0xbb, 0xdb, 0xb0, 0x0e, 0x24, 0x98, 0xc1, 0x20, 0x8d, 0xb5, 0x90, 0xe6,
- 0x4f, 0x6c, 0xc3, 0x3a, 0x90, 0x69, 0x06, 0x03, 0xf2, 0xd3, 0x39, 0xb8, 0x92, 0x8e, 0x2a, 0xb7,
- 0x5a, 0xb3, 0xb6, 0x13, 0xe2, 0x94, 0x3f, 0x91, 0x8b, 0x1e, 0x34, 0xec, 0xac, 0xd8, 0x5c, 0x9f,
- 0xb6, 0xc3, 0x0a, 0xc8, 0xe7, 0x60, 0xb4, 0xdc, 0x35, 0x4c, 0x0f, 0x2f, 0xde, 0x98, 0xe1, 0xfc,
- 0x93, 0xb9, 0xd8, 0x16, 0x47, 0xc6, 0xe2, 0x16, 0x47, 0x06, 0x90, 0xdb, 0x70, 0xba, 0x46, 0x1b,
- 0x5d, 0xc7, 0xf4, 0x36, 0x34, 0xda, 0xb1, 0x1d, 0x8f, 0xf1, 0xf8, 0x93, 0xb9, 0xe8, 0x24, 0x96,
- 0xa0, 0x60, 0x93, 0x58, 0x02, 0x48, 0xee, 0x25, 0x6e, 0xe5, 0x45, 0x67, 0xfe, 0x54, 0xae, 0xe7,
- 0xb5, 0x7c, 0xd0, 0x97, 0xe9, 0xc5, 0xc9, 0x72, 0xec, 0x16, 0x5d, 0x70, 0xfd, 0xe9, 0x5c, 0x8f,
- 0x6b, 0x74, 0x69, 0x86, 0x4b, 0x82, 0x19, 0xc7, 0x94, 0x0c, 0xf0, 0xca, 0x9f, 0xca, 0xf5, 0xb8,
- 0xf6, 0x0e, 0x39, 0xa6, 0x25, 0x8f, 0x7f, 0x99, 0x7b, 0x8a, 0x08, 0x46, 0x3f, 0x93, 0x4b, 0xba,
- 0x8a, 0x04, 0xe5, 0x25, 0x42, 0x56, 0xec, 0xae, 0x1b, 0x28, 0xfd, 0x07, 0xb9, 0xa4, 0x6f, 0x5e,
- 0x58, 0x2c, 0xfc, 0x45, 0x28, 0x5c, 0x9a, 0x79, 0xec, 0x51, 0xc7, 0xd2, 0x5b, 0xd8, 0x9d, 0x35,
- 0xcf, 0x76, 0xf4, 0x26, 0x9d, 0xb1, 0xf4, 0xd5, 0x16, 0x55, 0xbe, 0x9a, 0x8b, 0x5a, 0xb0, 0xd9,
- 0xa4, 0xcc, 0x82, 0xcd, 0xc6, 0x92, 0x35, 0x78, 0x22, 0x0d, 0x5b, 0x31, 0x5d, 0xac, 0xe7, 0x6b,
- 0xb9, 0xa8, 0x09, 0xdb, 0x83, 0x96, 0x99, 0xb0, 0x3d, 0xd0, 0xe4, 0x06, 0x0c, 0x4d, 0xd9, 0xfe,
- 0xf4, 0xfb, 0xa7, 0x63, 0xce, 0x90, 0x01, 0x66, 0xae, 0x4f, 0x0b, 0xc9, 0x44, 0x19, 0x31, 0xa8,
- 0xbf, 0x9e, 0x2c, 0x13, 0x5e, 0x3e, 0x05, 0x3f, 0x44, 0x19, 0x21, 0xee, 0x7f, 0x2f, 0x59, 0x26,
- 0xbc, 0xe3, 0x0a, 0x7e, 0xb0, 0x99, 0x84, 0xd7, 0xb8, 0x30, 0x5b, 0x66, 0x76, 0xdb, 0xf4, 0x9a,
- 0xde, 0x6a, 0x51, 0xab, 0x49, 0x95, 0x6f, 0xc4, 0x66, 0x92, 0x74, 0x32, 0x36, 0x93, 0xa4, 0x63,
- 0xc8, 0x0f, 0xc3, 0x85, 0x7b, 0x7a, 0xcb, 0x34, 0x42, 0x9c, 0x9f, 0x0f, 0x5c, 0xf9, 0xd9, 0x5c,
- 0x74, 0x37, 0x9d, 0x41, 0xc7, 0x76, 0xd3, 0x19, 0x28, 0xb2, 0x00, 0x04, 0x97, 0xd1, 0x60, 0xb6,
- 0x60, 0xeb, 0xb3, 0xf2, 0xef, 0xe7, 0xa2, 0x76, 0x6a, 0x92, 0x84, 0xd9, 0xa9, 0x49, 0x28, 0xa9,
- 0x67, 0xa7, 0x06, 0x51, 0x7e, 0x2e, 0x17, 0x3d, 0xad, 0xc9, 0x22, 0x9c, 0xeb, 0xd3, 0xb2, 0xf3,
- 0x8b, 0xdc, 0x82, 0xf1, 0xda, 0x72, 0x75, 0x76, 0x76, 0xa6, 0x76, 0xaf, 0x5a, 0xc1, 0x87, 0x0e,
- 0x86, 0xf2, 0x67, 0x62, 0x2b, 0x56, 0x9c, 0x80, 0xad, 0x58, 0x71, 0x18, 0x79, 0x03, 0x46, 0x58,
- 0xfb, 0xd9, 0x80, 0xc1, 0x4f, 0xfe, 0xf9, 0x5c, 0xd4, 0x9c, 0x92, 0x91, 0xcc, 0x9c, 0x92, 0x7f,
- 0x93, 0x1a, 0x9c, 0x65, 0x52, 0x5c, 0x76, 0xe8, 0x03, 0xea, 0x50, 0xab, 0xe1, 0x8f, 0xe9, 0x5f,
- 0xc8, 0x45, 0xad, 0x8c, 0x34, 0x22, 0x66, 0x65, 0xa4, 0xc1, 0xc9, 0x43, 0xb8, 0x1c, 0x3f, 0x09,
- 0x92, 0x9f, 0x9d, 0x2a, 0x7f, 0x36, 0x17, 0x33, 0x86, 0x7b, 0x10, 0xa3, 0x31, 0xdc, 0x03, 0x4f,
- 0x2c, 0x78, 0x52, 0x1c, 0xab, 0x08, 0x87, 0xcb, 0x78, 0x6d, 0x7f, 0x8e, 0xd7, 0xf6, 0xc9, 0xd0,
- 0x21, 0xb0, 0x07, 0xf5, 0x5c, 0x9f, 0xd6, 0x9b, 0x1d, 0xd3, 0xb3, 0x64, 0x02, 0x0c, 0xe5, 0x17,
- 0x73, 0xe9, 0x1e, 0x29, 0x11, 0x37, 0xe5, 0xb4, 0xcc, 0x19, 0xef, 0x66, 0xa5, 0x6f, 0x50, 0xfe,
- 0x7c, 0x6c, 0xbc, 0xa5, 0x93, 0xb1, 0xf1, 0x96, 0x91, 0xff, 0xe1, 0x36, 0x9c, 0xe6, 0x4a, 0xbd,
- 0xac, 0xe3, 0x30, 0xb4, 0x9a, 0xd4, 0x50, 0xfe, 0x83, 0xd8, 0x6a, 0x97, 0xa0, 0x40, 0xd7, 0x9e,
- 0x38, 0x90, 0x4d, 0xdd, 0xb5, 0x8e, 0x6e, 0x59, 0x78, 0xcc, 0xaa, 0xfc, 0x87, 0xb1, 0xa9, 0x3b,
- 0x44, 0xa1, 0xe3, 0x6e, 0xf0, 0x8b, 0x69, 0x42, 0xaf, 0xd4, 0x47, 0xca, 0x5f, 0x88, 0x69, 0x42,
- 0x2f, 0x62, 0xa6, 0x09, 0x3d, 0xf3, 0x28, 0xdd, 0xcb, 0x78, 0x02, 0xae, 0x7c, 0x33, 0xb6, 0x22,
- 0xa7, 0x52, 0xb1, 0x15, 0x39, 0xfd, 0x05, 0xf9, 0xbd, 0x8c, 0xe7, 0xd3, 0xca, 0x2f, 0xf5, 0xe6,
- 0x1b, 0xae, 0xf4, 0xe9, 0xaf, 0xaf, 0xef, 0x65, 0x3c, 0x3d, 0x56, 0xfe, 0x62, 0x6f, 0xbe, 0xa1,
- 0x63, 0x5f, 0xfa, 0xcb, 0xe5, 0x7a, 0xf6, 0xb3, 0x5d, 0xe5, 0x2f, 0xc5, 0xa7, 0xae, 0x0c, 0x42,
- 0x9c, 0xba, 0xb2, 0xde, 0xfe, 0xae, 0xc2, 0x45, 0xae, 0x21, 0xb7, 0x1c, 0xbd, 0xb3, 0x56, 0xa3,
- 0x9e, 0x67, 0x5a, 0x4d, 0x7f, 0x27, 0xf6, 0x97, 0x73, 0xb1, 0xe3, 0xb1, 0x2c, 0x4a, 0x3c, 0x1e,
- 0xcb, 0x42, 0x32, 0xe5, 0x4d, 0x3c, 0xd0, 0x55, 0xfe, 0x4a, 0x4c, 0x79, 0x13, 0x14, 0x4c, 0x79,
- 0x93, 0xef, 0x7a, 0x6f, 0xa7, 0xbc, 0x43, 0x55, 0xfe, 0xa3, 0x6c, 0x5e, 0x41, 0xfb, 0x52, 0x9e,
- 0xaf, 0xde, 0x4e, 0x79, 0x6e, 0xa9, 0xfc, 0xc7, 0xd9, 0xbc, 0x42, 0x1f, 0xa4, 0xe4, 0x2b, 0xcd,
- 0x77, 0xe1, 0x3c, 0x9f, 0xcd, 0x67, 0xa9, 0x41, 0x23, 0x1f, 0xfa, 0xcb, 0xb1, 0xb1, 0x9f, 0x4e,
- 0x86, 0x47, 0xee, 0xa9, 0x98, 0x34, 0xd6, 0xa2, 0xad, 0x7f, 0x75, 0x1b, 0xd6, 0xe1, 0x86, 0x20,
- 0x1d, 0xc3, 0xd6, 0x1b, 0xf9, 0xf1, 0x9b, 0xf2, 0x2b, 0xb1, 0xf5, 0x46, 0x46, 0xa2, 0x3b, 0x87,
- 0xfc, 0x52, 0xee, 0x8d, 0xe8, 0x43, 0x2f, 0xe5, 0xaf, 0xa5, 0x16, 0x0e, 0x3a, 0x20, 0xfa, 0x2a,
- 0xec, 0x8d, 0xe8, 0xa3, 0x26, 0xe5, 0x57, 0x53, 0x0b, 0x07, 0x1f, 0x10, 0x7d, 0x01, 0xc5, 0xb6,
- 0x48, 0x5d, 0xcf, 0xe6, 0xac, 0x22, 0xd3, 0xc3, 0x5f, 0x8f, 0x6f, 0x91, 0x52, 0xc9, 0x70, 0x8b,
- 0x94, 0x8a, 0x49, 0x63, 0x2d, 0x3e, 0xef, 0xd7, 0xb6, 0x61, 0x2d, 0x6d, 0xec, 0x52, 0x31, 0x69,
- 0xac, 0xc5, 0xc7, 0xff, 0xfa, 0x36, 0xac, 0xa5, 0x8d, 0x5d, 0x2a, 0x86, 0x99, 0x63, 0x21, 0xe6,
- 0x1e, 0x75, 0xdc, 0x50, 0xfd, 0xfe, 0x93, 0x98, 0x39, 0x96, 0x41, 0xc7, 0xcc, 0xb1, 0x0c, 0x54,
- 0x2a, 0x77, 0x21, 0x94, 0xdf, 0xd8, 0x8e, 0x7b, 0x78, 0x2f, 0x93, 0x81, 0x4a, 0xe5, 0x2e, 0xe4,
- 0xf2, 0x37, 0xb6, 0xe3, 0x1e, 0x5e, 0xcc, 0x64, 0xa0, 0x98, 0x51, 0x54, 0xf3, 0x74, 0xcf, 0x6c,
- 0xcc, 0xd9, 0xae, 0x27, 0x2d, 0xf2, 0x7f, 0x33, 0x66, 0x14, 0xa5, 0x11, 0x31, 0xa3, 0x28, 0x0d,
- 0x9e, 0x64, 0x2a, 0xa4, 0xf1, 0x9b, 0x3d, 0x99, 0x86, 0x96, 0x56, 0x1a, 0x3c, 0xc9, 0x54, 0x08,
- 0xe1, 0x3f, 0xed, 0xc9, 0x34, 0xf4, 0x94, 0x4f, 0x83, 0x33, 0xcb, 0x74, 0xda, 0xb1, 0xd7, 0xad,
- 0xdb, 0x74, 0x9d, 0xb6, 0xc4, 0xa7, 0xff, 0x56, 0xcc, 0x32, 0x8d, 0x13, 0xe0, 0x2d, 0x4a, 0x0c,
- 0x16, 0x65, 0x24, 0x3e, 0xf7, 0xb7, 0x33, 0x19, 0x85, 0xc7, 0x44, 0x71, 0x58, 0x94, 0x91, 0xf8,
- 0xc4, 0xdf, 0xc9, 0x64, 0x14, 0x1e, 0x13, 0xc5, 0x61, 0xa4, 0x0c, 0x63, 0xf8, 0x56, 0x42, 0x77,
- 0x7d, 0xcf, 0xcf, 0xdf, 0xcf, 0x45, 0x6f, 0xbd, 0xa2, 0xe8, 0xb9, 0x3e, 0x2d, 0x56, 0x40, 0x66,
- 0x21, 0x3e, 0xe9, 0xdb, 0x19, 0x2c, 0x42, 0x7f, 0xc7, 0x28, 0x44, 0x66, 0x21, 0x3e, 0xe6, 0x3f,
- 0xcb, 0x60, 0x11, 0x3a, 0x3c, 0x46, 0x21, 0xe4, 0xb3, 0x30, 0x5c, 0x9b, 0x5d, 0x59, 0xf6, 0xd3,
- 0xf3, 0xfd, 0xad, 0x5c, 0xec, 0x55, 0x51, 0x88, 0xc3, 0x57, 0x45, 0xe1, 0xcf, 0xa9, 0x01, 0xe8,
- 0xc7, 0xa3, 0xd4, 0xdb, 0xa5, 0xc1, 0x6f, 0xe5, 0xc6, 0x7f, 0x37, 0x77, 0xbb, 0x34, 0xf8, 0xbb,
- 0xb9, 0xf1, 0xdf, 0x63, 0xff, 0xff, 0x5e, 0x6e, 0xfc, 0xf7, 0x73, 0xda, 0xc5, 0x70, 0x58, 0x94,
- 0x9b, 0xd4, 0xf2, 0x96, 0x5b, 0xba, 0x18, 0xd4, 0xa9, 0x28, 0xfe, 0x33, 0x15, 0x25, 0x52, 0x61,
- 0x7d, 0x33, 0x07, 0x23, 0x35, 0xcf, 0xa1, 0x7a, 0x5b, 0x44, 0x96, 0xbb, 0x04, 0x83, 0xdc, 0xf9,
- 0xd9, 0x7f, 0xa9, 0xad, 0x05, 0xbf, 0xc9, 0x15, 0x18, 0x9b, 0xd7, 0x5d, 0x0f, 0x9b, 0x58, 0xb5,
- 0x0c, 0xfa, 0x18, 0x1f, 0xfe, 0x15, 0xb4, 0x18, 0x94, 0xcc, 0x73, 0x3a, 0x5e, 0x0e, 0x83, 0x89,
- 0x16, 0xb6, 0x0d, 0xa8, 0x36, 0xf8, 0xdd, 0xcd, 0x89, 0x3e, 0x8c, 0x9f, 0x16, 0x2b, 0xab, 0xfe,
- 0x41, 0x0e, 0x12, 0x6e, 0xd9, 0x7b, 0x8f, 0xa0, 0xb0, 0x04, 0xa7, 0x62, 0x01, 0x6c, 0xc5, 0xeb,
- 0xc5, 0x1d, 0xc6, 0xb7, 0x8d, 0x97, 0x26, 0x9f, 0x0a, 0x5e, 0xcd, 0xdd, 0xd5, 0xe6, 0x45, 0xb0,
- 0x3c, 0x4c, 0xf3, 0xd0, 0x75, 0x5a, 0x9a, 0x84, 0x12, 0xc1, 0x90, 0x7e, 0x30, 0x1e, 0x46, 0xe7,
- 0x24, 0x57, 0x44, 0x38, 0x87, 0x5c, 0x18, 0x62, 0x2f, 0x96, 0x54, 0x9e, 0x87, 0x6f, 0xf8, 0x1c,
- 0x8c, 0x54, 0xdb, 0x1d, 0xea, 0xb8, 0xb6, 0xa5, 0x7b, 0xb6, 0x23, 0x5e, 0xc3, 0x63, 0xf8, 0x35,
- 0x53, 0x82, 0xcb, 0x21, 0xc1, 0x64, 0x7a, 0x72, 0xcd, 0xcf, 0x54, 0x57, 0xc0, 0xb8, 0xa8, 0xf8,
- 0xa4, 0x35, 0x9e, 0xa8, 0x9c, 0x53, 0x30, 0xd2, 0xbb, 0xae, 0x8e, 0xef, 0x2b, 0x03, 0xd2, 0x2e,
- 0x03, 0xc8, 0xa4, 0x48, 0x41, 0x9e, 0x87, 0x12, 0xde, 0x47, 0xb9, 0x98, 0x81, 0x52, 0x04, 0xfe,
- 0x6b, 0x21, 0x44, 0x0e, 0xb3, 0xc6, 0x69, 0xc8, 0x1d, 0x18, 0x0f, 0x2f, 0xdb, 0x6f, 0x39, 0x76,
- 0xb7, 0xe3, 0xe7, 0x9c, 0xc1, 0x04, 0xef, 0x0f, 0x03, 0x5c, 0xbd, 0x89, 0x48, 0x89, 0x45, 0xa2,
- 0x20, 0x99, 0x83, 0x53, 0x21, 0x8c, 0x89, 0xc8, 0xcf, 0x75, 0x85, 0x79, 0x46, 0x25, 0x5e, 0x4c,
- 0x9c, 0x91, 0x3c, 0xa3, 0xb1, 0x62, 0xa4, 0x0a, 0x03, 0x7e, 0xd4, 0xbf, 0xc1, 0x6d, 0x95, 0xf4,
- 0x8c, 0x88, 0xfa, 0x37, 0x20, 0xc7, 0xfb, 0xf3, 0xcb, 0x93, 0x59, 0x18, 0xd3, 0xec, 0xae, 0x47,
- 0x57, 0x6c, 0xb1, 0x4b, 0x15, 0xd1, 0x25, 0xb1, 0x4d, 0x0e, 0xc3, 0xd4, 0x3d, 0xdb, 0xcf, 0x8f,
- 0x2f, 0xe7, 0x69, 0x8f, 0x96, 0x22, 0x8b, 0x70, 0x3a, 0xe1, 0x96, 0x20, 0x67, 0xad, 0x97, 0x3e,
- 0x2f, 0xc9, 0x2c, 0x59, 0x94, 0xfc, 0x64, 0x0e, 0x4a, 0x2b, 0x8e, 0x6e, 0x7a, 0xae, 0x78, 0x9a,
- 0x79, 0x6e, 0x72, 0xdd, 0xd1, 0x3b, 0x4c, 0x3f, 0x26, 0x31, 0xf0, 0xed, 0x3d, 0xbd, 0xd5, 0xa5,
- 0xee, 0xd4, 0x7d, 0xf6, 0x75, 0xff, 0xc3, 0xe6, 0xc4, 0x1b, 0x4d, 0x3c, 0xfc, 0x9c, 0x6c, 0xd8,
- 0xed, 0xeb, 0x4d, 0x47, 0x7f, 0x64, 0x7a, 0x68, 0x62, 0xea, 0xad, 0xeb, 0x1e, 0x6d, 0xe1, 0x19,
- 0xeb, 0x75, 0xbd, 0x63, 0x5e, 0xc7, 0x00, 0xeb, 0xd7, 0x03, 0x4e, 0xbc, 0x06, 0xa6, 0x02, 0x1e,
- 0xfe, 0x25, 0xab, 0x00, 0xc7, 0x91, 0x45, 0x00, 0xf1, 0xa9, 0xe5, 0x4e, 0x47, 0xbc, 0xf3, 0x94,
- 0x4e, 0x26, 0x7d, 0x0c, 0x57, 0xec, 0x40, 0x60, 0x7a, 0x47, 0x0a, 0x2a, 0xac, 0x49, 0x1c, 0x98,
- 0x16, 0xac, 0x88, 0x16, 0xf9, 0x62, 0x1a, 0x0d, 0x25, 0xee, 0x37, 0x36, 0x45, 0x48, 0xf1, 0x62,
- 0x64, 0x15, 0x4e, 0x09, 0xbe, 0x41, 0x0a, 0x92, 0xb1, 0xe8, 0xac, 0x10, 0x43, 0x73, 0xa5, 0x0d,
- 0xda, 0x68, 0x08, 0xb0, 0x5c, 0x47, 0xac, 0x04, 0x99, 0x0a, 0x53, 0x26, 0x2f, 0xea, 0x6d, 0xea,
- 0x2a, 0xa7, 0x50, 0x63, 0x2f, 0x6f, 0x6d, 0x4e, 0x28, 0x7e, 0x79, 0x0c, 0x80, 0x29, 0x8b, 0x2e,
- 0x5a, 0x44, 0xe6, 0xc1, 0xb5, 0x7e, 0x3c, 0x85, 0x47, 0x5c, 0xe7, 0xa3, 0x45, 0xc8, 0x34, 0x8c,
- 0x06, 0xcf, 0x4c, 0xee, 0xde, 0xad, 0x56, 0xf0, 0x21, 0xa9, 0x88, 0x81, 0x1a, 0x4b, 0x12, 0x22,
- 0x33, 0x89, 0x94, 0x91, 0x62, 0x73, 0xf0, 0x97, 0xa5, 0xb1, 0xd8, 0x1c, 0x9d, 0x94, 0xd8, 0x1c,
- 0xcb, 0xe4, 0x2d, 0x18, 0x2e, 0xdf, 0xaf, 0x89, 0x98, 0x23, 0xae, 0x72, 0x26, 0xcc, 0x38, 0xa5,
- 0xaf, 0xbb, 0x75, 0x3f, 0x3e, 0x89, 0xdc, 0x74, 0x99, 0x9e, 0xcc, 0xc0, 0x58, 0xc4, 0x53, 0xcd,
- 0x55, 0xce, 0x22, 0x07, 0x6c, 0xb9, 0x8e, 0x98, 0xba, 0x23, 0x50, 0xf2, 0xf0, 0x8a, 0x16, 0x62,
- 0x5a, 0x53, 0x31, 0x5d, 0xcc, 0xde, 0xa3, 0x51, 0x0c, 0x6f, 0x82, 0xcf, 0x52, 0x07, 0xb9, 0xd6,
- 0x18, 0x02, 0x55, 0x77, 0x38, 0x4e, 0xee, 0xd1, 0x58, 0x31, 0xf2, 0x1e, 0x10, 0xcc, 0xf7, 0x43,
- 0x0d, 0xff, 0xe2, 0xb2, 0x5a, 0x71, 0x95, 0xf3, 0x18, 0x00, 0x9c, 0xc4, 0xc3, 0x29, 0x54, 0x2b,
- 0x53, 0x57, 0xc4, 0xf4, 0xf1, 0x94, 0xce, 0x4b, 0xd5, 0xfd, 0x50, 0x0a, 0x75, 0x33, 0x92, 0x0c,
- 0x39, 0x85, 0x2b, 0x59, 0x87, 0x0b, 0xcb, 0x0e, 0x7d, 0x64, 0xda, 0x5d, 0xd7, 0x5f, 0x3e, 0xfc,
- 0x79, 0xeb, 0xc2, 0xb6, 0xf3, 0xd6, 0x33, 0xa2, 0xe2, 0x73, 0x1d, 0x87, 0x3e, 0xaa, 0xfb, 0x61,
- 0x9f, 0x23, 0x51, 0x4b, 0xb3, 0xb8, 0x63, 0x4a, 0xe7, 0xf7, 0xbb, 0x0e, 0x15, 0x70, 0x93, 0xba,
- 0x8a, 0x12, 0x4e, 0xb5, 0x3c, 0x52, 0x8d, 0x19, 0xe0, 0x22, 0x29, 0x9d, 0xa3, 0xc5, 0x88, 0x06,
- 0xe4, 0xd6, 0xb4, 0x7f, 0x89, 0x5d, 0x6e, 0xf0, 0xc4, 0xb7, 0xca, 0x45, 0x64, 0xa6, 0x32, 0xb1,
- 0x34, 0x1b, 0x41, 0x08, 0xf8, 0xba, 0x2e, 0xf0, 0xb2, 0x58, 0x92, 0xa5, 0xc9, 0x3c, 0x8c, 0x2f,
- 0x3b, 0x78, 0xa4, 0x76, 0x87, 0x6e, 0x2c, 0xdb, 0x2d, 0xb3, 0xb1, 0x81, 0xaf, 0x63, 0xc5, 0x54,
- 0xd9, 0xe1, 0xb8, 0xfa, 0x43, 0xba, 0x51, 0xef, 0x20, 0x56, 0x5e, 0x56, 0xe2, 0x25, 0xe5, 0x90,
- 0xcc, 0x4f, 0xec, 0x2c, 0x24, 0x33, 0x85, 0x71, 0x71, 0x05, 0xfe, 0xd8, 0xa3, 0x16, 0x5b, 0xea,
- 0x5d, 0xf1, 0x12, 0x56, 0x89, 0x5d, 0x99, 0x07, 0x78, 0x3e, 0x75, 0x88, 0x51, 0x46, 0x03, 0xb0,
- 0xdc, 0xb0, 0x78, 0x91, 0x64, 0xdc, 0xe2, 0x27, 0xf7, 0x10, 0xb7, 0xf8, 0x6f, 0x16, 0xe4, 0xf9,
- 0x97, 0x5c, 0x86, 0xa2, 0x94, 0x56, 0x08, 0x83, 0xb2, 0x62, 0x08, 0xf6, 0xa2, 0x88, 0x35, 0x3d,
- 0x24, 0x6c, 0x97, 0x20, 0xfa, 0x0e, 0xe6, 0x91, 0x0c, 0x03, 0x75, 0x6a, 0x21, 0x01, 0xe6, 0xf0,
- 0xeb, 0xae, 0xb6, 0xcc, 0x06, 0x06, 0xe6, 0x2f, 0x48, 0xe1, 0x36, 0x10, 0xca, 0xe3, 0xf2, 0x4b,
- 0x24, 0xe4, 0x06, 0x0c, 0xfb, 0x47, 0xb9, 0x61, 0x50, 0x62, 0x8c, 0xd7, 0x2e, 0x66, 0x6b, 0x11,
- 0x0e, 0x5e, 0x22, 0x22, 0xaf, 0x03, 0x84, 0xd3, 0x81, 0xb0, 0xb4, 0x70, 0xa9, 0x90, 0x67, 0x0f,
- 0x79, 0xa9, 0x08, 0xa9, 0xd9, 0xc4, 0x29, 0xab, 0xa3, 0x9f, 0xb5, 0x14, 0x27, 0xce, 0x88, 0x0e,
- 0xcb, 0x0a, 0x12, 0x2d, 0x42, 0x96, 0xe0, 0x74, 0x42, 0x03, 0x45, 0x08, 0x63, 0xcc, 0x5c, 0x9f,
- 0xa2, 0xbe, 0xf2, 0xc2, 0x9c, 0x28, 0x4b, 0x9e, 0x85, 0xc2, 0x5d, 0xad, 0x2a, 0xc2, 0xa8, 0xf2,
- 0x08, 0xbc, 0x91, 0x18, 0x4b, 0x0c, 0xab, 0xfe, 0x78, 0x3e, 0xb1, 0x36, 0x31, 0xe9, 0x09, 0x56,
- 0x52, 0x0f, 0xa2, 0xf4, 0xfc, 0xfa, 0xb9, 0xf4, 0x24, 0x22, 0x72, 0x15, 0x06, 0x97, 0xd9, 0xcc,
- 0xd0, 0xb0, 0x5b, 0xa2, 0x3f, 0x31, 0x20, 0x56, 0x47, 0xc0, 0xb4, 0x00, 0x4b, 0x6e, 0x48, 0xc9,
- 0x76, 0xa5, 0xc8, 0xe4, 0x7e, 0xb2, 0xdd, 0x78, 0x88, 0x6e, 0x4c, 0xbb, 0x7b, 0x23, 0x96, 0xbc,
- 0x4b, 0x94, 0x49, 0x59, 0x17, 0xc3, 0x64, 0x5d, 0x81, 0x55, 0xda, 0xbf, 0x9d, 0x55, 0xaa, 0xfe,
- 0xed, 0x5c, 0x72, 0x9c, 0x91, 0x9b, 0xc9, 0x20, 0xc1, 0xb8, 0x08, 0x05, 0x40, 0xb9, 0xd6, 0x20,
- 0x5c, 0x70, 0x24, 0xdc, 0x6f, 0x7e, 0xcf, 0xe1, 0x7e, 0x0b, 0xbb, 0x0c, 0xf7, 0xab, 0xfe, 0xbf,
- 0xc5, 0x9e, 0x2e, 0xdb, 0x87, 0x12, 0x16, 0xee, 0x35, 0xb6, 0xb3, 0x62, 0xb5, 0x97, 0xdd, 0xc4,
- 0xfe, 0x80, 0x7b, 0xa4, 0xd6, 0x75, 0x3e, 0xb4, 0x5c, 0x2d, 0x4a, 0x49, 0xde, 0x86, 0x11, 0xff,
- 0x03, 0x30, 0x8c, 0xb4, 0x14, 0xfe, 0x38, 0x58, 0xd5, 0x62, 0x01, 0x97, 0x23, 0x05, 0xc8, 0xcb,
- 0x30, 0x84, 0x36, 0x4d, 0x47, 0x6f, 0xf8, 0x31, 0xc6, 0x79, 0x50, 0x72, 0x1f, 0x28, 0x87, 0x3e,
- 0x0b, 0x28, 0xc9, 0x97, 0xa0, 0x24, 0x12, 0x6d, 0xf0, 0x3c, 0xf4, 0xd7, 0x77, 0xe0, 0xe3, 0x3e,
- 0x29, 0x27, 0xd9, 0xe0, 0xbb, 0x14, 0x04, 0x44, 0x76, 0x29, 0x3c, 0xbf, 0xc6, 0x0a, 0x9c, 0x59,
- 0x76, 0xa8, 0x81, 0xaf, 0x29, 0x66, 0x1e, 0x77, 0x1c, 0x91, 0x02, 0x85, 0x8f, 0x72, 0x5c, 0xa4,
- 0x3a, 0x3e, 0x9a, 0x2d, 0x9f, 0x02, 0x2f, 0x07, 0x3a, 0x4e, 0x29, 0xce, 0x2c, 0x17, 0xde, 0x92,
- 0x3b, 0x74, 0x63, 0xdd, 0x76, 0x0c, 0x9e, 0x25, 0x44, 0xcc, 0xdf, 0x42, 0xd0, 0x0f, 0x05, 0x4a,
- 0xb6, 0x5c, 0xa2, 0x85, 0x2e, 0xbd, 0x06, 0xc3, 0x7b, 0x4d, 0x54, 0xf1, 0x1b, 0xf9, 0x8c, 0xc7,
- 0x4f, 0xc7, 0x37, 0x57, 0x60, 0x90, 0xc0, 0xba, 0x3f, 0x23, 0x81, 0xf5, 0xf7, 0xf3, 0x19, 0x2f,
- 0xbb, 0x8e, 0x75, 0xa2, 0xd9, 0x40, 0x18, 0xd1, 0x44, 0xb3, 0x61, 0x8e, 0x5f, 0xd3, 0xd0, 0x64,
- 0xa2, 0x58, 0x4a, 0xea, 0xd2, 0xb6, 0x29, 0xa9, 0x7f, 0xb9, 0xd0, 0xeb, 0xe5, 0xdb, 0x89, 0xec,
- 0x77, 0x23, 0xfb, 0x1b, 0x30, 0x1c, 0x48, 0xb6, 0x5a, 0x41, 0xa3, 0x67, 0x34, 0x48, 0x8b, 0xc3,
- 0xc1, 0x58, 0x46, 0x22, 0x22, 0xd7, 0x78, 0x5b, 0x6b, 0xe6, 0xfb, 0x3c, 0x41, 0xc3, 0xa8, 0x08,
- 0xbd, 0xaf, 0x7b, 0x7a, 0xdd, 0x35, 0xdf, 0xa7, 0x5a, 0x80, 0x56, 0xff, 0xf3, 0x7c, 0xea, 0xf3,
- 0xc1, 0x93, 0x3e, 0xda, 0x45, 0x1f, 0xa5, 0x08, 0x91, 0x3f, 0x7c, 0x3c, 0x11, 0xe2, 0x2e, 0x84,
- 0xf8, 0xc7, 0xf9, 0xd4, 0x67, 0xa2, 0x27, 0x42, 0xdc, 0xcd, 0x6c, 0xf1, 0x3c, 0x0c, 0x69, 0xf6,
- 0xba, 0x3b, 0x8d, 0x1b, 0x1b, 0x3e, 0x57, 0xe0, 0x44, 0xed, 0xd8, 0xeb, 0x6e, 0x1d, 0xb7, 0x2c,
- 0x5a, 0x48, 0xa0, 0xfe, 0x20, 0xdf, 0xe3, 0x21, 0xed, 0x89, 0xe0, 0x3f, 0xcc, 0x25, 0xf2, 0xb7,
- 0xf3, 0x91, 0x87, 0xba, 0xc7, 0x57, 0xd8, 0xd7, 0x01, 0x6a, 0x8d, 0x35, 0xda, 0xd6, 0xa5, 0x24,
- 0x57, 0x78, 0xee, 0xe0, 0x22, 0x54, 0x24, 0x47, 0x0e, 0x49, 0xd4, 0x6f, 0xe5, 0x63, 0x2f, 0x95,
- 0x4f, 0x64, 0xb7, 0x63, 0xd9, 0x05, 0x5a, 0x27, 0x1e, 0x5f, 0x9f, 0x48, 0x6e, 0xa7, 0x92, 0xfb,
- 0xa9, 0x7c, 0xec, 0x9d, 0xfa, 0xb1, 0x95, 0x1d, 0x1b, 0x80, 0xc9, 0xf7, 0xf3, 0xc7, 0x56, 0x93,
- 0x9e, 0x87, 0x21, 0x21, 0x87, 0x60, 0xa9, 0xe0, 0xf3, 0x3e, 0x07, 0xe2, 0x29, 0x6b, 0x40, 0xa0,
- 0xfe, 0x89, 0x3c, 0x44, 0xe3, 0x07, 0x1c, 0x53, 0x1d, 0xfa, 0xed, 0x7c, 0x34, 0x72, 0xc2, 0xf1,
- 0xd5, 0x9f, 0x49, 0x80, 0x5a, 0x77, 0xb5, 0x21, 0x02, 0xef, 0xf6, 0x4b, 0xc7, 0xf4, 0x01, 0x54,
- 0x93, 0x28, 0xd4, 0xff, 0x2f, 0x9f, 0x1a, 0xce, 0xe1, 0xf8, 0x0a, 0xf0, 0x25, 0x3c, 0x15, 0x6f,
- 0x58, 0xe1, 0x44, 0x8e, 0x87, 0x90, 0x6c, 0xfc, 0x25, 0x32, 0x23, 0xfa, 0x84, 0xe4, 0xb3, 0x29,
- 0xe6, 0x1a, 0xe6, 0x6d, 0x08, 0xcd, 0x35, 0xf9, 0x1a, 0x42, 0x32, 0xdc, 0xfe, 0x5e, 0x7e, 0xbb,
- 0xe8, 0x17, 0xc7, 0x79, 0x55, 0x1d, 0x58, 0xd6, 0x37, 0x30, 0x4a, 0x23, 0xeb, 0x89, 0x11, 0x9e,
- 0xb7, 0xaf, 0xc3, 0x41, 0xf2, 0xdd, 0x9b, 0xa0, 0x52, 0xff, 0x59, 0x7f, 0x7a, 0xe8, 0x85, 0xe3,
- 0x2b, 0xc2, 0xcb, 0x50, 0x5c, 0xd6, 0xbd, 0x35, 0xa1, 0xc9, 0x78, 0xa5, 0xd7, 0xd1, 0xbd, 0x35,
- 0x0d, 0xa1, 0xe4, 0x1a, 0x0c, 0x6a, 0xfa, 0x3a, 0x3f, 0xf3, 0x2c, 0x85, 0x39, 0x15, 0x1d, 0x7d,
- 0xbd, 0xce, 0xcf, 0x3d, 0x03, 0x34, 0x51, 0x83, 0x9c, 0x9e, 0xfc, 0xe4, 0x1b, 0x13, 0xca, 0xf1,
- 0x9c, 0x9e, 0x41, 0x26, 0xcf, 0xcb, 0x50, 0x9c, 0xb2, 0x8d, 0x0d, 0xbc, 0xbe, 0x1a, 0xe1, 0x95,
- 0xad, 0xda, 0xc6, 0x86, 0x86, 0x50, 0xf2, 0xd3, 0x39, 0x18, 0x98, 0xa3, 0xba, 0xc1, 0x46, 0xc8,
- 0x50, 0x2f, 0xaf, 0x93, 0x2f, 0x1c, 0x8c, 0xd7, 0xc9, 0xe9, 0x35, 0x5e, 0x99, 0xac, 0x28, 0xa2,
- 0x7e, 0x72, 0x0b, 0x06, 0xa7, 0x75, 0x8f, 0x36, 0x6d, 0x67, 0x03, 0xfd, 0x68, 0xc6, 0x42, 0xf7,
- 0xfd, 0x88, 0xfe, 0xf8, 0x44, 0xfc, 0x66, 0xac, 0x21, 0x7e, 0x69, 0x41, 0x61, 0x26, 0x96, 0x15,
- 0xdd, 0x69, 0x52, 0x4f, 0xe4, 0xaf, 0x46, 0xb1, 0x78, 0x08, 0xd1, 0x04, 0x26, 0x3c, 0x56, 0x1e,
- 0x49, 0x3f, 0x56, 0x46, 0xeb, 0x11, 0x7d, 0xed, 0x30, 0x93, 0xe6, 0x28, 0x2e, 0xfa, 0xdc, 0x7a,
- 0x44, 0x28, 0x26, 0xd2, 0xd4, 0x24, 0x12, 0xf5, 0x7b, 0xfd, 0x90, 0xfa, 0x50, 0xfb, 0x44, 0xc9,
- 0x4f, 0x94, 0x3c, 0x54, 0xf2, 0x4a, 0x42, 0xc9, 0x2f, 0x25, 0x9f, 0xfe, 0x7f, 0x44, 0x35, 0xfc,
- 0xe7, 0x8b, 0x89, 0xc0, 0x21, 0xc7, 0x7b, 0x77, 0x19, 0x4a, 0xaf, 0x7f, 0x5b, 0xe9, 0x05, 0x03,
- 0xa2, 0xb4, 0xed, 0x80, 0x18, 0xd8, 0xe9, 0x80, 0x18, 0xcc, 0x1c, 0x10, 0xa1, 0x82, 0x0c, 0x65,
- 0x2a, 0x48, 0x55, 0x0c, 0x1a, 0xe8, 0x9d, 0xbf, 0xe4, 0xf2, 0xd6, 0xe6, 0xc4, 0x18, 0x1b, 0x4d,
- 0xa9, 0x89, 0x4b, 0x90, 0x85, 0xfa, 0x07, 0xc5, 0x1e, 0xd1, 0x7e, 0x0e, 0x45, 0x47, 0x5e, 0x82,
- 0x42, 0xb9, 0xd3, 0x11, 0xfa, 0x71, 0x46, 0x0a, 0x34, 0x94, 0x51, 0x8a, 0x51, 0x93, 0xd7, 0xa1,
- 0x50, 0xbe, 0x5f, 0x8b, 0xe7, 0x2c, 0x29, 0xdf, 0xaf, 0x89, 0x2f, 0xc9, 0x2c, 0x7b, 0xbf, 0x46,
- 0xde, 0x0c, 0x83, 0x87, 0xae, 0x75, 0xad, 0x87, 0x62, 0xa3, 0x28, 0xdc, 0x6d, 0x7d, 0x77, 0x9c,
- 0x06, 0x43, 0xb1, 0xed, 0x62, 0x8c, 0x36, 0xa6, 0x4d, 0xa5, 0x9d, 0x6b, 0xd3, 0xc0, 0xb6, 0xda,
- 0x34, 0xb8, 0x53, 0x6d, 0x1a, 0xda, 0x81, 0x36, 0xc1, 0xb6, 0xda, 0x34, 0xbc, 0x7f, 0x6d, 0xea,
- 0xc0, 0xa5, 0x64, 0x84, 0xb6, 0x40, 0x23, 0x34, 0x20, 0x49, 0xac, 0x70, 0x2c, 0xc1, 0xab, 0xff,
- 0x2e, 0xc7, 0xd6, 0xd7, 0x11, 0x5d, 0x77, 0x19, 0x5e, 0xf6, 0x4f, 0x4b, 0x96, 0x56, 0x7f, 0x23,
- 0x9f, 0x1d, 0x58, 0xee, 0x68, 0x4e, 0x71, 0x3f, 0x92, 0x2a, 0xa5, 0x62, 0xf4, 0xa1, 0x7f, 0xb6,
- 0x94, 0x63, 0x6c, 0xd3, 0x64, 0xf6, 0x9d, 0x5c, 0x56, 0xb4, 0xbb, 0x7d, 0x49, 0xec, 0x93, 0x49,
- 0x8f, 0x36, 0xf4, 0xd3, 0x77, 0xa3, 0xae, 0x6c, 0xb3, 0x30, 0x22, 0x0b, 0x51, 0x48, 0x69, 0x27,
- 0x02, 0x8e, 0x94, 0x53, 0xff, 0x76, 0x0e, 0xce, 0xdc, 0xe9, 0xae, 0x52, 0xe1, 0xc1, 0x16, 0x34,
- 0xe3, 0x3d, 0x00, 0x06, 0x16, 0x4e, 0x2c, 0x39, 0x74, 0x62, 0xf9, 0xb4, 0x1c, 0xa9, 0x2e, 0x56,
- 0x60, 0x32, 0xa4, 0xe6, 0x0e, 0x2c, 0x4f, 0xfa, 0xce, 0x9c, 0x0f, 0xbb, 0xab, 0xb4, 0x9e, 0xf0,
- 0x64, 0x91, 0xb8, 0x5f, 0x7a, 0x8b, 0xbb, 0xc9, 0xef, 0xd5, 0x69, 0xe4, 0xd7, 0xf2, 0x99, 0xc1,
- 0x01, 0x8f, 0x6c, 0x16, 0xcb, 0x1f, 0x4a, 0xed, 0x95, 0x78, 0x36, 0xcb, 0x14, 0x92, 0x18, 0xc7,
- 0x34, 0x2e, 0xe9, 0x02, 0x3b, 0xe2, 0xb9, 0x55, 0x3f, 0x54, 0x81, 0xfd, 0x83, 0x5c, 0x66, 0x10,
- 0xc7, 0xa3, 0x2a, 0x30, 0xf5, 0x7f, 0x2d, 0xf8, 0xb1, 0x23, 0xf7, 0xf5, 0x09, 0xcf, 0xc3, 0x90,
- 0x78, 0x42, 0x1f, 0x75, 0xc0, 0x15, 0x47, 0x79, 0x78, 0x34, 0x1c, 0x10, 0xb0, 0x65, 0x5e, 0xf2,
- 0x0e, 0x96, 0x1c, 0x70, 0x25, 0xcf, 0x60, 0x4d, 0x22, 0x61, 0x0b, 0xf9, 0xcc, 0x63, 0xd3, 0x43,
- 0xab, 0x80, 0xf5, 0x65, 0x81, 0x2f, 0xe4, 0xf4, 0xb1, 0xe9, 0x71, 0x9b, 0x20, 0x40, 0xb3, 0x45,
- 0xba, 0x16, 0x66, 0x8e, 0x17, 0x8b, 0xb4, 0x2b, 0x12, 0xe8, 0x8b, 0x67, 0x63, 0xcf, 0xc3, 0x90,
- 0xf0, 0x6a, 0x15, 0x6e, 0x26, 0xa2, 0xb5, 0xc2, 0x0f, 0x16, 0x5b, 0x1b, 0x10, 0x30, 0x8e, 0x1a,
- 0x6d, 0x86, 0x8e, 0x75, 0xc8, 0xd1, 0x41, 0x88, 0x26, 0x30, 0xe4, 0x06, 0x8c, 0xd5, 0x3c, 0xdd,
- 0x32, 0x74, 0xc7, 0x58, 0xea, 0x7a, 0x9d, 0xae, 0x27, 0x1b, 0xa5, 0xae, 0x67, 0xd8, 0x5d, 0x4f,
- 0x8b, 0x51, 0x90, 0xcf, 0xc0, 0xa8, 0x0f, 0x99, 0x71, 0x1c, 0xdb, 0x91, 0x2d, 0x0f, 0xd7, 0x33,
- 0xa8, 0xe3, 0x68, 0x51, 0x02, 0xf2, 0x59, 0x18, 0xad, 0x5a, 0x8f, 0xec, 0x06, 0x7f, 0x46, 0xae,
- 0xcd, 0x0b, 0x3b, 0x04, 0x9f, 0x62, 0x99, 0x01, 0xa2, 0xde, 0x75, 0x5a, 0x5a, 0x94, 0x50, 0xdd,
- 0xca, 0x27, 0x43, 0x6c, 0x1e, 0xdf, 0x4d, 0xcb, 0xb5, 0xa8, 0x33, 0x1d, 0x7a, 0x90, 0xa2, 0x41,
- 0x28, 0xfb, 0xf2, 0x72, 0xbb, 0xf0, 0x06, 0x0c, 0xde, 0xa1, 0x1b, 0xdc, 0xef, 0xb3, 0x14, 0xba,
- 0x0a, 0x3f, 0x14, 0x30, 0xf9, 0xc4, 0xd5, 0xa7, 0x53, 0xbf, 0x9d, 0x4f, 0x06, 0x0f, 0x3d, 0xbe,
- 0xc2, 0xfe, 0x0c, 0x0c, 0xa0, 0x28, 0xab, 0xfe, 0x91, 0x3f, 0x0a, 0x10, 0xc5, 0x1d, 0xf5, 0x40,
- 0xf6, 0xc9, 0xd4, 0x5f, 0x2a, 0xc5, 0x23, 0xca, 0x1e, 0x5f, 0xe9, 0xbd, 0x01, 0xc3, 0xd3, 0xb6,
- 0xe5, 0x9a, 0xae, 0x47, 0xad, 0x86, 0xaf, 0xb0, 0x17, 0x99, 0x41, 0xd5, 0x08, 0xc1, 0xf2, 0x1b,
- 0x24, 0x89, 0x7a, 0x2f, 0xca, 0x4b, 0x5e, 0x81, 0x21, 0x14, 0x39, 0xfa, 0x49, 0xf3, 0x09, 0x0f,
- 0x6f, 0x0b, 0x56, 0x19, 0x30, 0xee, 0x24, 0x1d, 0x92, 0x92, 0xbb, 0x30, 0x38, 0xbd, 0x66, 0xb6,
- 0x0c, 0x87, 0x5a, 0xe8, 0x2f, 0x2c, 0x05, 0xee, 0x88, 0xf6, 0xe5, 0x24, 0xfe, 0x8b, 0xb4, 0xbc,
- 0x39, 0x0d, 0x51, 0x2c, 0xf2, 0x0a, 0x4b, 0xc0, 0x2e, 0xfd, 0x5c, 0x1e, 0x20, 0x2c, 0x40, 0x9e,
- 0x86, 0x7c, 0x90, 0x94, 0x19, 0xdd, 0x54, 0x22, 0x1a, 0x94, 0xc7, 0xa5, 0x42, 0x8c, 0xed, 0xfc,
- 0xb6, 0x63, 0xfb, 0x2e, 0x94, 0xf8, 0x89, 0x17, 0x7a, 0x92, 0x4b, 0x41, 0x2e, 0x33, 0x1b, 0x3c,
- 0x89, 0xf4, 0x7c, 0x33, 0x8b, 0x96, 0x67, 0xc4, 0x2b, 0x9b, 0x33, 0xbb, 0xd4, 0x80, 0x7e, 0xfc,
- 0x8b, 0x5c, 0x81, 0xe2, 0x8a, 0x9f, 0xd0, 0x75, 0x94, 0xcf, 0xd2, 0x31, 0xf9, 0x21, 0x9e, 0x75,
- 0xd3, 0xb4, 0x6d, 0x79, 0xac, 0x6a, 0x6c, 0xf5, 0x88, 0x90, 0x8b, 0x80, 0x45, 0xe4, 0x22, 0x60,
- 0xea, 0x7f, 0x9d, 0x4f, 0x89, 0x75, 0x7c, 0x7c, 0x87, 0xc9, 0x6b, 0x00, 0xf8, 0xa4, 0x9b, 0xc9,
- 0xd3, 0x7f, 0xa2, 0x81, 0xa3, 0x04, 0x19, 0xa1, 0xda, 0x46, 0xb6, 0x1d, 0x21, 0xb1, 0xfa, 0x77,
- 0x73, 0x89, 0x00, 0xb9, 0xfb, 0x92, 0xa3, 0x6c, 0x95, 0xe5, 0xf7, 0x68, 0xc6, 0xfa, 0x7d, 0x51,
- 0xd8, 0x5d, 0x5f, 0x44, 0xbf, 0xe5, 0x00, 0x2c, 0xd3, 0xc3, 0xfc, 0x96, 0xef, 0xe5, 0xd3, 0xc2,
- 0x05, 0x1f, 0x4d, 0x15, 0xbf, 0x19, 0x18, 0xa5, 0xc5, 0x58, 0x80, 0x76, 0x84, 0xc6, 0x93, 0x4e,
- 0x0b, 0x33, 0xf5, 0xcb, 0x70, 0x2a, 0x16, 0x44, 0x57, 0xe4, 0xff, 0xbd, 0xd2, 0x3b, 0x1a, 0x6f,
- 0x76, 0x30, 0x80, 0x08, 0x99, 0xfa, 0xff, 0xe7, 0x7a, 0x87, 0x50, 0x3e, 0x74, 0xd5, 0x49, 0x11,
- 0x40, 0xe1, 0x5f, 0x8f, 0x00, 0x0e, 0x60, 0x1b, 0x7c, 0xb4, 0x05, 0xf0, 0x11, 0x99, 0x3c, 0x3e,
- 0x6c, 0x01, 0xfc, 0x52, 0x6e, 0xdb, 0x08, 0xd8, 0x87, 0x2d, 0x03, 0xf5, 0x7f, 0xca, 0xa5, 0x46,
- 0xaa, 0xde, 0x57, 0xbb, 0xde, 0x84, 0x12, 0x77, 0xab, 0x11, 0xad, 0x92, 0x72, 0x7b, 0x31, 0x68,
- 0x56, 0x36, 0x7c, 0x8e, 0x25, 0xf3, 0x30, 0xc0, 0xdb, 0x60, 0x88, 0xde, 0xf8, 0x44, 0x8f, 0x70,
- 0xd9, 0x46, 0xd6, 0xe4, 0x28, 0xd0, 0xea, 0xdf, 0xc9, 0x25, 0x02, 0x67, 0x1f, 0xe2, 0xb7, 0x85,
- 0x53, 0x75, 0x61, 0xe7, 0x53, 0xb5, 0xfa, 0x4f, 0xf3, 0xe9, 0x71, 0xbb, 0x0f, 0xf1, 0x43, 0x0e,
- 0xe2, 0x38, 0x6d, 0x6f, 0xeb, 0xd6, 0x0a, 0x8c, 0x45, 0x65, 0x21, 0x96, 0xad, 0xa7, 0xd2, 0xa3,
- 0x97, 0x67, 0xb4, 0x22, 0xc6, 0x43, 0xfd, 0x6e, 0x2e, 0x19, 0x72, 0xfc, 0xd0, 0xe7, 0xa7, 0xbd,
- 0x69, 0x4b, 0xf4, 0x53, 0x3e, 0x22, 0x6b, 0xcd, 0x41, 0x7c, 0xca, 0x47, 0x64, 0xd5, 0xd8, 0xdb,
- 0xa7, 0xfc, 0x4a, 0x3e, 0x2b, 0x62, 0xfb, 0xa1, 0x7f, 0xd0, 0x17, 0x65, 0x21, 0xf3, 0x96, 0x89,
- 0x4f, 0x7b, 0x3a, 0x2b, 0x44, 0x7a, 0x06, 0xcf, 0x04, 0x9f, 0xbd, 0x8d, 0xf1, 0x54, 0x61, 0x7d,
- 0x44, 0x14, 0xf9, 0x68, 0x08, 0xeb, 0x23, 0x32, 0x54, 0x3e, 0x7a, 0xc2, 0xfa, 0xdd, 0xfc, 0x4e,
- 0xd3, 0x04, 0x9c, 0x08, 0x2f, 0x21, 0xbc, 0xaf, 0xe7, 0x93, 0xe9, 0x2b, 0x0e, 0x5d, 0x4c, 0xb3,
- 0x50, 0x12, 0x89, 0x34, 0x32, 0x85, 0xc3, 0xf1, 0x59, 0x16, 0x8d, 0xf8, 0x8e, 0x9b, 0x20, 0x2e,
- 0x72, 0x76, 0x26, 0x12, 0x4e, 0xab, 0xfe, 0x20, 0x17, 0xcb, 0xf5, 0x70, 0x28, 0x47, 0x08, 0x7b,
- 0x5a, 0x92, 0xc8, 0x5b, 0xfe, 0x61, 0x66, 0x31, 0x16, 0x6b, 0x3b, 0xf8, 0x9e, 0x0a, 0xf5, 0x74,
- 0xb3, 0x15, 0x2f, 0x2f, 0x62, 0x02, 0x7c, 0x3b, 0x0f, 0xa7, 0x13, 0xa4, 0xe4, 0x4a, 0x24, 0x94,
- 0x0e, 0x1e, 0x4b, 0xc6, 0x9c, 0xc7, 0x79, 0x50, 0x9d, 0x5d, 0x9c, 0xa4, 0x5e, 0x81, 0x62, 0x45,
- 0xdf, 0xe0, 0xdf, 0xd6, 0xcf, 0x59, 0x1a, 0xfa, 0x86, 0x7c, 0xe2, 0x86, 0x78, 0xb2, 0x0a, 0xe7,
- 0xf8, 0x7d, 0x88, 0x69, 0x5b, 0x2b, 0x66, 0x9b, 0x56, 0xad, 0x05, 0xb3, 0xd5, 0x32, 0x5d, 0x71,
- 0xa9, 0xf7, 0xfc, 0xd6, 0xe6, 0xc4, 0x55, 0xcf, 0xf6, 0xf4, 0x56, 0x9d, 0xfa, 0x64, 0x75, 0xcf,
- 0x6c, 0xd3, 0xba, 0x69, 0xd5, 0xdb, 0x48, 0x29, 0xb1, 0x4c, 0x67, 0x45, 0xaa, 0x3c, 0xac, 0x7a,
- 0xad, 0xa1, 0x5b, 0x16, 0x35, 0xaa, 0xd6, 0xd4, 0x86, 0x47, 0xf9, 0x65, 0x60, 0x81, 0x1f, 0x09,
- 0xf2, 0xb7, 0xe1, 0x1c, 0xcd, 0x18, 0xaf, 0x32, 0x02, 0x2d, 0xa5, 0x90, 0xfa, 0x7b, 0xc5, 0x94,
- 0x34, 0x1f, 0x47, 0x48, 0x7d, 0xfc, 0x9e, 0x2e, 0x6e, 0xd3, 0xd3, 0xd7, 0x61, 0x40, 0xc4, 0xad,
- 0x15, 0x17, 0x0c, 0xe8, 0xcc, 0xfe, 0x88, 0x83, 0xe4, 0x1b, 0x1a, 0x41, 0x45, 0x5a, 0x70, 0x69,
- 0x85, 0x75, 0x53, 0x7a, 0x67, 0x96, 0xf6, 0xd0, 0x99, 0x3d, 0xf8, 0x91, 0x77, 0xe1, 0x02, 0x62,
- 0x53, 0xba, 0x75, 0x00, 0xab, 0xc2, 0x18, 0x55, 0xbc, 0xaa, 0xf4, 0xce, 0xcd, 0x2a, 0x4f, 0xbe,
- 0x08, 0x23, 0xc1, 0x00, 0x31, 0xa9, 0x2b, 0x6e, 0x2e, 0x7a, 0x8c, 0x33, 0x1e, 0x00, 0x8e, 0x81,
- 0xd1, 0x85, 0x2c, 0x1a, 0x44, 0x2c, 0xc2, 0x4b, 0xfd, 0x1f, 0x73, 0xbd, 0xd2, 0x8d, 0x1c, 0xfa,
- 0xac, 0xfc, 0x16, 0x0c, 0x18, 0xfc, 0xa3, 0x84, 0x4e, 0xf5, 0x4e, 0x48, 0xc2, 0x49, 0x35, 0xbf,
- 0x8c, 0xfa, 0x4f, 0x72, 0x3d, 0xb3, 0x9c, 0x1c, 0xf5, 0xcf, 0xfb, 0x7a, 0x21, 0xe3, 0xf3, 0xc4,
- 0x24, 0x7a, 0x0d, 0xc6, 0xcd, 0x30, 0x0c, 0x7b, 0x3d, 0x0c, 0x3f, 0xa5, 0x9d, 0x92, 0xe0, 0x38,
- 0xba, 0x6e, 0xc2, 0x79, 0xdf, 0xf1, 0xd1, 0xf1, 0x3d, 0xc4, 0xdc, 0x7a, 0xd7, 0x31, 0xf9, 0xb8,
- 0xd4, 0xce, 0xba, 0x31, 0xf7, 0x31, 0xf7, 0xae, 0x63, 0xb2, 0x0a, 0x74, 0x6f, 0x8d, 0x5a, 0x7a,
- 0x7d, 0xdd, 0x76, 0x1e, 0x62, 0x94, 0x51, 0x3e, 0x38, 0xb5, 0x53, 0x1c, 0x7e, 0xdf, 0x07, 0x93,
- 0x67, 0x61, 0xb4, 0xd9, 0xea, 0xd2, 0x20, 0xae, 0x23, 0xbf, 0xeb, 0xd3, 0x46, 0x18, 0x30, 0xb8,
- 0x21, 0x79, 0x12, 0x00, 0x89, 0x3c, 0xcc, 0x41, 0x83, 0x17, 0x7b, 0xda, 0x10, 0x83, 0xac, 0x88,
- 0xee, 0xba, 0xc4, 0xb5, 0x9a, 0x0b, 0xa9, 0xde, 0xb2, 0xad, 0x66, 0xdd, 0xa3, 0x4e, 0x1b, 0x1b,
- 0x8a, 0xce, 0x0c, 0xda, 0x79, 0xa4, 0xc0, 0xab, 0x13, 0x77, 0xde, 0xb6, 0x9a, 0x2b, 0xd4, 0x69,
- 0xb3, 0xa6, 0x3e, 0x0f, 0x44, 0x34, 0xd5, 0xc1, 0x43, 0x0f, 0xfe, 0x71, 0xe8, 0xcd, 0xa0, 0x89,
- 0x8f, 0xe0, 0xa7, 0x21, 0xf8, 0x61, 0x13, 0x30, 0xcc, 0x83, 0xdb, 0x71, 0xa1, 0xa1, 0x0b, 0x83,
- 0x06, 0x1c, 0x84, 0xf2, 0x3a, 0x0f, 0xc2, 0xbb, 0x82, 0x7b, 0x75, 0x6b, 0xe2, 0x97, 0xfa, 0x41,
- 0x21, 0x2d, 0x31, 0xcb, 0xbe, 0x14, 0x2d, 0x9c, 0x56, 0xf3, 0xbb, 0x9a, 0x56, 0x4f, 0x59, 0xdd,
- 0x76, 0x5d, 0xef, 0x74, 0xea, 0x0f, 0xcc, 0x16, 0x3e, 0xab, 0xc2, 0x85, 0x4f, 0x1b, 0xb5, 0xba,
- 0xed, 0x72, 0xa7, 0x33, 0xcb, 0x81, 0xe4, 0x39, 0x38, 0xcd, 0xe8, 0xb0, 0x93, 0x02, 0xca, 0x22,
- 0x52, 0x32, 0x06, 0x18, 0x1d, 0xd6, 0xa7, 0xbd, 0x08, 0x83, 0x82, 0x27, 0x5f, 0xab, 0xfa, 0xb5,
- 0x01, 0xce, 0xcc, 0x65, 0x3d, 0x17, 0xb0, 0xe1, 0x93, 0x6b, 0xbf, 0x36, 0xe4, 0x97, 0xc7, 0x18,
- 0xc8, 0x56, 0xb7, 0xcd, 0x23, 0x62, 0x0d, 0x20, 0x32, 0xf8, 0x4d, 0xae, 0xc0, 0x18, 0xe3, 0x12,
- 0x08, 0x8c, 0x87, 0x8d, 0xed, 0xd7, 0x62, 0x50, 0x72, 0x03, 0xce, 0x46, 0x20, 0xdc, 0x06, 0xe5,
- 0xcf, 0x04, 0xfa, 0xb5, 0x54, 0x9c, 0xfa, 0xad, 0x42, 0x34, 0x5d, 0xcc, 0x21, 0x74, 0xc4, 0x05,
- 0x18, 0xb0, 0x9d, 0x66, 0xbd, 0xeb, 0xb4, 0xc4, 0xd8, 0x2b, 0xd9, 0x4e, 0xf3, 0xae, 0xd3, 0x22,
- 0xe7, 0xa0, 0xc4, 0x7a, 0xc7, 0x34, 0xc4, 0x10, 0xeb, 0xd7, 0x3b, 0x9d, 0xaa, 0x41, 0xca, 0xbc,
- 0x43, 0x30, 0xe4, 0x68, 0xbd, 0x81, 0x5b, 0x7b, 0xee, 0x94, 0xd0, 0xcf, 0x57, 0xbc, 0x04, 0x12,
- 0xfb, 0x09, 0x03, 0x91, 0xf2, 0x83, 0x80, 0x18, 0x0b, 0x03, 0xb7, 0x25, 0x06, 0xef, 0x93, 0x38,
- 0x0b, 0x81, 0x0c, 0x59, 0xf0, 0x4d, 0x8c, 0x41, 0x2a, 0x40, 0x42, 0xaa, 0xb6, 0x6d, 0x98, 0x0f,
- 0x4c, 0xca, 0x5f, 0x75, 0xf4, 0xf3, 0x8b, 0xdf, 0x24, 0x56, 0x1b, 0xf7, 0x99, 0x2c, 0x08, 0x08,
- 0x79, 0x83, 0x2b, 0x21, 0xa7, 0xc3, 0xb5, 0x8f, 0xf7, 0x2d, 0xb7, 0xd3, 0x62, 0x28, 0xd4, 0x4c,
- 0x2c, 0x8f, 0x0b, 0xa1, 0xfa, 0x97, 0x8b, 0xc9, 0x9c, 0x41, 0x87, 0x62, 0xd7, 0xcc, 0x01, 0x88,
- 0x94, 0x60, 0xe1, 0xe5, 0x5a, 0xe0, 0x71, 0x1e, 0x62, 0x32, 0x78, 0x48, 0x65, 0xc9, 0x35, 0x18,
- 0xe4, 0x5f, 0x54, 0xad, 0x08, 0x7b, 0x07, 0x5d, 0xc4, 0xdc, 0x8e, 0xf9, 0xe0, 0x01, 0xfa, 0x93,
- 0x05, 0x68, 0x72, 0x05, 0x06, 0x2a, 0x8b, 0xb5, 0x5a, 0x79, 0xd1, 0xbf, 0x29, 0xc6, 0xf7, 0x25,
- 0x86, 0xe5, 0xd6, 0x5d, 0xdd, 0x72, 0x35, 0x1f, 0x49, 0x9e, 0x85, 0x52, 0x75, 0x19, 0xc9, 0xf8,
- 0xab, 0xc9, 0xe1, 0xad, 0xcd, 0x89, 0x01, 0xb3, 0xc3, 0xa9, 0x04, 0x0a, 0xeb, 0xbd, 0x57, 0xad,
- 0x48, 0xee, 0x12, 0xbc, 0xde, 0x47, 0xa6, 0x81, 0xd7, 0xce, 0x5a, 0x80, 0x26, 0x2f, 0xc3, 0x48,
- 0x8d, 0x3a, 0xa6, 0xde, 0x5a, 0xec, 0xe2, 0x56, 0x51, 0x0a, 0xa5, 0xe8, 0x22, 0xbc, 0x6e, 0x21,
- 0x42, 0x8b, 0x90, 0x91, 0xcb, 0x50, 0x9c, 0x33, 0x2d, 0xff, 0x09, 0x03, 0xfa, 0xb8, 0xaf, 0x99,
- 0x96, 0xa7, 0x21, 0x94, 0x3c, 0x0b, 0x85, 0xdb, 0x2b, 0x55, 0xe1, 0x09, 0x86, 0xbc, 0xde, 0xf3,
- 0x22, 0x61, 0x19, 0x6f, 0xaf, 0x54, 0xc9, 0xcb, 0x30, 0xc4, 0x16, 0x31, 0x6a, 0x35, 0xa8, 0xab,
- 0x0c, 0xe3, 0xc7, 0xf0, 0x30, 0x82, 0x3e, 0x50, 0xf6, 0xe9, 0x08, 0x28, 0xd5, 0xff, 0x33, 0x9f,
- 0x9e, 0xd4, 0xe9, 0x10, 0x86, 0xfa, 0x1e, 0x6f, 0x91, 0x63, 0x0a, 0x56, 0xdc, 0x87, 0x82, 0x3d,
- 0x80, 0x53, 0x65, 0xa3, 0x6d, 0x5a, 0x65, 0xfc, 0xe9, 0x2e, 0xcc, 0x96, 0x71, 0xea, 0x90, 0x9e,
- 0xe7, 0xc5, 0xd0, 0xe2, 0x7b, 0x78, 0xc0, 0x5f, 0x86, 0xaa, 0xeb, 0x1c, 0x57, 0x6f, 0x3f, 0xd0,
- 0xeb, 0x0d, 0x9e, 0x0f, 0x49, 0x8b, 0x33, 0x55, 0x7f, 0x36, 0xbf, 0x4d, 0x1e, 0xaa, 0xe3, 0x28,
- 0x7d, 0xf5, 0x1b, 0xf9, 0xde, 0xa9, 0xc0, 0x8e, 0xa5, 0x50, 0xfe, 0x38, 0x9f, 0x92, 0x98, 0x6b,
- 0x5f, 0x92, 0xb8, 0x06, 0x83, 0x9c, 0x4d, 0xe0, 0xc6, 0x8b, 0xb3, 0x19, 0x57, 0x56, 0x9c, 0x45,
- 0x7d, 0x34, 0x59, 0x84, 0xb3, 0xe5, 0x07, 0x0f, 0x68, 0xc3, 0x0b, 0x43, 0x3f, 0x2f, 0x86, 0x41,
- 0x58, 0x79, 0xa8, 0x5b, 0x81, 0x0f, 0x43, 0x47, 0x63, 0xb0, 0x91, 0xd4, 0x72, 0x64, 0x05, 0xce,
- 0xc7, 0xe1, 0x35, 0xbe, 0x05, 0x28, 0x4a, 0xd1, 0x6f, 0x13, 0x1c, 0xf9, 0x7f, 0x5a, 0x46, 0xd9,
- 0xb4, 0x56, 0xe2, 0x54, 0xdd, 0xdf, 0xab, 0x95, 0x38, 0x6f, 0xa7, 0x96, 0x53, 0xbf, 0x5d, 0x90,
- 0xf3, 0x97, 0x1d, 0x5f, 0x87, 0xab, 0x9b, 0x11, 0x37, 0xeb, 0x9d, 0x0e, 0x99, 0x97, 0x45, 0x04,
- 0x11, 0xa3, 0xeb, 0xf8, 0x1e, 0x89, 0x41, 0x04, 0x03, 0x04, 0xca, 0xeb, 0x50, 0x40, 0x49, 0xaa,
- 0x50, 0x2c, 0x3b, 0x4d, 0x6e, 0xde, 0x6e, 0xf7, 0xa8, 0x4a, 0x77, 0x9a, 0x6e, 0xfa, 0xa3, 0x2a,
- 0xc6, 0x42, 0xfd, 0xd3, 0xf9, 0x1e, 0x29, 0xc7, 0x8e, 0xe5, 0x24, 0xf2, 0xe7, 0xf2, 0x59, 0xc9,
- 0xc3, 0x8e, 0xaa, 0xeb, 0xd8, 0x87, 0x2c, 0x9c, 0xa3, 0xed, 0x57, 0x77, 0xc0, 0xc2, 0xc9, 0x48,
- 0x64, 0x76, 0x22, 0x9c, 0x0f, 0xf2, 0x59, 0xb9, 0xdc, 0x8e, 0xed, 0x2c, 0x93, 0x91, 0x3e, 0xee,
- 0x44, 0x57, 0x7e, 0x31, 0x9f, 0x99, 0x41, 0xef, 0x44, 0x3a, 0xea, 0x57, 0xf3, 0x99, 0x19, 0x00,
- 0x8f, 0xe5, 0x50, 0x4a, 0xd5, 0x96, 0x93, 0xb1, 0x24, 0xa4, 0xf3, 0x87, 0xf9, 0xf4, 0x9c, 0x8b,
- 0x87, 0xa0, 0x2a, 0x07, 0xe1, 0x81, 0xe7, 0x0b, 0xb4, 0xb8, 0x2f, 0x81, 0xf6, 0x1f, 0xa8, 0x40,
- 0x0f, 0x6d, 0xec, 0x7d, 0x5c, 0x05, 0x7a, 0x00, 0x83, 0xf7, 0x38, 0x0b, 0xf4, 0x67, 0x0a, 0xc9,
- 0x3c, 0xa3, 0xc7, 0xf2, 0x88, 0x72, 0x0a, 0x06, 0xfd, 0x33, 0x0c, 0x21, 0xd0, 0x1d, 0x77, 0xa7,
- 0x5f, 0x8e, 0xbc, 0x0d, 0xa7, 0x42, 0x59, 0xca, 0x91, 0xa9, 0xf0, 0x7a, 0xa3, 0xc1, 0x50, 0xf5,
- 0xf7, 0x18, 0x4e, 0x84, 0x50, 0x89, 0x53, 0xab, 0x3f, 0x28, 0x24, 0x93, 0xb5, 0x9e, 0xf4, 0xc6,
- 0x1e, 0x7b, 0xe3, 0x2e, 0x9c, 0x9f, 0xee, 0x3a, 0x0e, 0xb5, 0xbc, 0xf4, 0x4e, 0xc1, 0xc3, 0xe5,
- 0x06, 0xa7, 0xa8, 0x27, 0x3b, 0x27, 0xa3, 0x30, 0x63, 0x2b, 0xbc, 0xef, 0xe3, 0x6c, 0x07, 0x42,
- 0xb6, 0x5d, 0x4e, 0x91, 0xc6, 0x36, 0xbd, 0xb0, 0xfa, 0xf7, 0xf2, 0xc9, 0xf4, 0xba, 0x27, 0x5d,
- 0xbf, 0xb7, 0xae, 0x57, 0x3f, 0x28, 0xc4, 0x53, 0x0c, 0x9f, 0x2c, 0x10, 0x7b, 0xef, 0x0e, 0x5f,
- 0x92, 0x38, 0x6e, 0xa4, 0xaf, 0xf0, 0xe1, 0x59, 0x5f, 0xe1, 0xe3, 0xd5, 0x5f, 0x2b, 0xc6, 0xd3,
- 0x35, 0x9f, 0x74, 0xc7, 0xe1, 0x75, 0x07, 0x59, 0x82, 0xb3, 0x62, 0x6e, 0xf3, 0x41, 0x98, 0xa2,
- 0x40, 0xcc, 0x5f, 0x3c, 0xd3, 0x99, 0x98, 0x16, 0xbb, 0x2e, 0x75, 0xea, 0x9e, 0xee, 0x3e, 0xac,
- 0x63, 0x4e, 0x03, 0x2d, 0xb5, 0x20, 0x63, 0x28, 0x66, 0xb5, 0x28, 0xc3, 0xc1, 0x90, 0xa1, 0x3f,
- 0x21, 0x26, 0x18, 0xa6, 0x15, 0x54, 0x7f, 0x3b, 0x07, 0xe3, 0xf1, 0xcf, 0x21, 0x93, 0x30, 0xc8,
- 0x7e, 0x07, 0xcf, 0xc2, 0xa5, 0x3c, 0xca, 0x9c, 0x23, 0xbf, 0x32, 0xf6, 0x69, 0xc8, 0x2b, 0x30,
- 0x84, 0xb7, 0xf3, 0x58, 0x20, 0x1f, 0xbe, 0xc6, 0x0f, 0x0b, 0x60, 0x72, 0x4f, 0x5e, 0x2c, 0x24,
- 0x25, 0x6f, 0xc0, 0x70, 0x35, 0x74, 0x43, 0x12, 0x77, 0x32, 0xe8, 0xfd, 0x28, 0x95, 0x0c, 0x09,
- 0x34, 0x99, 0x5a, 0xfd, 0x6e, 0x3e, 0x9e, 0x56, 0xfc, 0x44, 0xd5, 0xf7, 0xa6, 0xea, 0xcf, 0x2d,
- 0x70, 0x55, 0xbf, 0x63, 0x5a, 0x06, 0xb9, 0x08, 0xe7, 0xee, 0xd6, 0x66, 0xb4, 0xfa, 0x9d, 0xea,
- 0x62, 0xa5, 0x7e, 0x77, 0xb1, 0xb6, 0x3c, 0x33, 0x5d, 0x9d, 0xad, 0xce, 0x54, 0xc6, 0xfb, 0xc8,
- 0x19, 0x38, 0x15, 0xa2, 0xe6, 0xee, 0x2e, 0x94, 0x17, 0xc7, 0x73, 0xe4, 0x34, 0x8c, 0x86, 0xc0,
- 0xa9, 0xa5, 0x95, 0xf1, 0xfc, 0x73, 0x9f, 0x82, 0x61, 0x74, 0xbf, 0xe2, 0xd7, 0xc5, 0x64, 0x04,
- 0x06, 0x97, 0xa6, 0x6a, 0x33, 0xda, 0x3d, 0x64, 0x02, 0x50, 0xaa, 0xcc, 0x2c, 0x32, 0x86, 0xb9,
- 0xe7, 0xfe, 0x9f, 0x1c, 0x40, 0x6d, 0x76, 0x65, 0x59, 0x10, 0x0e, 0xc3, 0x40, 0x75, 0xf1, 0x5e,
- 0x79, 0xbe, 0xca, 0xe8, 0x06, 0xa1, 0xb8, 0xb4, 0x3c, 0xc3, 0x6a, 0x18, 0x82, 0xfe, 0xe9, 0xf9,
- 0xa5, 0xda, 0xcc, 0x78, 0x9e, 0x01, 0xb5, 0x99, 0x72, 0x65, 0xbc, 0xc0, 0x80, 0xf7, 0xb5, 0xea,
- 0xca, 0xcc, 0x78, 0x91, 0xfd, 0x39, 0x5f, 0x5b, 0x29, 0xaf, 0x8c, 0xf7, 0xb3, 0x3f, 0x67, 0xf1,
- 0xcf, 0x12, 0x63, 0x56, 0x9b, 0x59, 0xc1, 0x1f, 0x03, 0xac, 0x09, 0xb3, 0xfe, 0xaf, 0x41, 0x86,
- 0x62, 0xac, 0x2b, 0x55, 0x6d, 0x7c, 0x88, 0xfd, 0x60, 0x2c, 0xd9, 0x0f, 0x60, 0x8d, 0xd3, 0x66,
- 0x16, 0x96, 0xee, 0xcd, 0x8c, 0x0f, 0x33, 0x5e, 0x0b, 0x77, 0x18, 0x78, 0x84, 0xfd, 0xa9, 0x2d,
- 0xb0, 0x3f, 0x47, 0x19, 0x27, 0x6d, 0xa6, 0x3c, 0xbf, 0x5c, 0x5e, 0x99, 0x1b, 0x1f, 0x63, 0xed,
- 0x41, 0x9e, 0xa7, 0x78, 0xc9, 0xc5, 0xf2, 0xc2, 0xcc, 0xf8, 0xb8, 0xa0, 0xa9, 0xcc, 0x57, 0x17,
- 0xef, 0x8c, 0x9f, 0xc6, 0x86, 0xbc, 0xbb, 0x80, 0x3f, 0x08, 0x2b, 0x80, 0x7f, 0x9d, 0x79, 0xee,
- 0x87, 0xa1, 0xb4, 0x54, 0xc3, 0x51, 0x70, 0x01, 0xce, 0x2c, 0xd5, 0xea, 0x2b, 0xef, 0x2e, 0xcf,
- 0xc4, 0xe4, 0x7d, 0x1a, 0x46, 0x7d, 0xc4, 0x7c, 0x75, 0xf1, 0xee, 0x17, 0xb8, 0xb4, 0x7d, 0xd0,
- 0x42, 0x79, 0x7a, 0xa9, 0x36, 0x9e, 0x67, 0xbd, 0xe2, 0x83, 0xee, 0x57, 0x17, 0x2b, 0x4b, 0xf7,
- 0x6b, 0xe3, 0x85, 0xe7, 0x1e, 0xc1, 0x08, 0xcf, 0xed, 0xb8, 0xe4, 0x98, 0x4d, 0xd3, 0x22, 0x4f,
- 0xc2, 0xc5, 0xca, 0xcc, 0xbd, 0xea, 0xf4, 0x4c, 0x7d, 0x49, 0xab, 0xde, 0xaa, 0x2e, 0xc6, 0x6a,
- 0x3a, 0x07, 0xa7, 0xa3, 0xe8, 0xf2, 0x72, 0x75, 0x3c, 0x47, 0xce, 0x03, 0x89, 0x82, 0x6f, 0x97,
- 0x17, 0x66, 0xc7, 0xf3, 0x44, 0x81, 0xb3, 0x51, 0x78, 0x75, 0x71, 0xe5, 0xee, 0xe2, 0xcc, 0x78,
- 0xe1, 0xb9, 0xbf, 0x94, 0x83, 0x73, 0xa9, 0xf1, 0x7f, 0x89, 0x0a, 0x4f, 0xcd, 0xcc, 0x97, 0x6b,
- 0x2b, 0xd5, 0xe9, 0xda, 0x4c, 0x59, 0x9b, 0x9e, 0xab, 0x4f, 0x97, 0x57, 0x66, 0x6e, 0x2d, 0x69,
- 0xef, 0xd6, 0x6f, 0xcd, 0x2c, 0xce, 0x68, 0xe5, 0xf9, 0xf1, 0x3e, 0xf2, 0x2c, 0x4c, 0x64, 0xd0,
- 0xd4, 0x66, 0xa6, 0xef, 0x6a, 0xd5, 0x95, 0x77, 0xc7, 0x73, 0xe4, 0x19, 0x78, 0x32, 0x93, 0x88,
- 0xfd, 0x1e, 0xcf, 0x93, 0xa7, 0xe0, 0x52, 0x16, 0xc9, 0x3b, 0xf3, 0xe3, 0x85, 0xe7, 0x7e, 0x21,
- 0x07, 0x24, 0x19, 0xc0, 0x95, 0x3c, 0x0d, 0x97, 0x99, 0x5e, 0xd4, 0xb3, 0x1b, 0xf8, 0x0c, 0x3c,
- 0x99, 0x4a, 0x21, 0x35, 0x6f, 0x02, 0x9e, 0xc8, 0x20, 0x11, 0x8d, 0xbb, 0x0c, 0x4a, 0x3a, 0x01,
- 0x36, 0xed, 0xb7, 0x72, 0x70, 0x2e, 0xd5, 0x43, 0x83, 0x5c, 0x85, 0x4f, 0x94, 0x2b, 0x0b, 0xac,
- 0x6f, 0xa6, 0x57, 0xaa, 0x4b, 0x8b, 0xb5, 0xfa, 0xc2, 0x6c, 0xb9, 0xce, 0xb4, 0xef, 0x6e, 0x2d,
- 0xd6, 0x9b, 0x57, 0x40, 0xed, 0x41, 0x39, 0x3d, 0x57, 0x5e, 0xbc, 0xc5, 0x86, 0x1f, 0xf9, 0x04,
- 0x3c, 0x9d, 0x49, 0x37, 0xb3, 0x58, 0x9e, 0x9a, 0x9f, 0xa9, 0x8c, 0xe7, 0xc9, 0x27, 0xe1, 0x99,
- 0x4c, 0xaa, 0x4a, 0xb5, 0xc6, 0xc9, 0x0a, 0x53, 0x95, 0xef, 0xfe, 0xcf, 0x4f, 0xf5, 0x7d, 0xf7,
- 0x8f, 0x9e, 0xca, 0xfd, 0xfd, 0x3f, 0x7a, 0x2a, 0xf7, 0x4f, 0xff, 0xe8, 0xa9, 0xdc, 0x17, 0x6f,
- 0xec, 0x26, 0x30, 0x2f, 0x9f, 0xb6, 0x56, 0x4b, 0x78, 0x5b, 0xfa, 0xd2, 0xbf, 0x0a, 0x00, 0x00,
- 0xff, 0xff, 0xd0, 0xcc, 0x64, 0x70, 0x22, 0x7f, 0x01, 0x00,
+ 0x72, 0x18, 0x86, 0x7e, 0xa0, 0x01, 0x04, 0x1e, 0x03, 0xe4, 0xbc, 0x6a, 0x67, 0x67, 0x17, 0xbb,
+ 0xb5, 0x77, 0x73, 0x33, 0x7b, 0xbb, 0x98, 0xdb, 0xd9, 0xd9, 0xdd, 0xdb, 0xd7, 0xed, 0x35, 0xd0,
+ 0xc0, 0xa0, 0x67, 0xf0, 0xda, 0x6a, 0xcc, 0xcc, 0xed, 0x91, 0x77, 0xcd, 0x42, 0x57, 0xa2, 0x51,
+ 0x3b, 0xdd, 0x55, 0xcd, 0xaa, 0xea, 0xc1, 0x60, 0xfd, 0xe2, 0xd1, 0x14, 0x45, 0x8a, 0xc7, 0xd3,
+ 0xf9, 0x68, 0x8a, 0xd4, 0xc3, 0xd6, 0x51, 0x0f, 0x9b, 0xa2, 0x28, 0xd2, 0x94, 0x68, 0x92, 0x47,
+ 0xf2, 0x2c, 0xc9, 0xe7, 0xc7, 0x49, 0xfc, 0xcc, 0x8f, 0x94, 0x6d, 0x7d, 0xfa, 0x6c, 0x19, 0x27,
+ 0xd3, 0xd6, 0x1f, 0x7c, 0xf6, 0xf7, 0xd1, 0xf6, 0x7d, 0xd6, 0x59, 0x96, 0xfd, 0xe9, 0xcb, 0xc8,
+ 0xac, 0xaa, 0xac, 0x57, 0xe3, 0xb9, 0xc4, 0xe2, 0x06, 0x7f, 0x66, 0xd0, 0x11, 0x91, 0x91, 0x59,
+ 0x91, 0x91, 0x99, 0x91, 0x99, 0x91, 0x11, 0x70, 0xcd, 0xa3, 0x2d, 0xda, 0xb1, 0x1d, 0xef, 0x7a,
+ 0x8b, 0x36, 0xf5, 0xc6, 0xd6, 0x75, 0x6f, 0xab, 0x43, 0xdd, 0xeb, 0xf4, 0x21, 0xb5, 0x3c, 0xff,
+ 0xbf, 0xa9, 0x8e, 0x63, 0x7b, 0x36, 0x29, 0xf1, 0x5f, 0x97, 0xce, 0x35, 0xed, 0xa6, 0x8d, 0xa0,
+ 0xeb, 0xec, 0x2f, 0x8e, 0xbd, 0x74, 0xb9, 0x69, 0xdb, 0xcd, 0x16, 0xbd, 0x8e, 0xbf, 0xd6, 0xba,
+ 0xeb, 0xd7, 0x5d, 0xcf, 0xe9, 0x36, 0x3c, 0x81, 0x9d, 0x8c, 0x63, 0x3d, 0xb3, 0x4d, 0x5d, 0x4f,
+ 0x6f, 0x77, 0x04, 0xc1, 0xd3, 0x71, 0x82, 0x4d, 0x47, 0xef, 0x74, 0xa8, 0x23, 0x2a, 0xbf, 0xf4,
+ 0x89, 0xa0, 0x9d, 0x7a, 0xa3, 0x41, 0x5d, 0xb7, 0x65, 0xba, 0xde, 0xf5, 0x87, 0x2f, 0x49, 0xbf,
+ 0x04, 0xe1, 0xb3, 0xe9, 0x1f, 0x84, 0xff, 0x0a, 0x92, 0x17, 0xd3, 0x49, 0xfc, 0x1a, 0x63, 0x55,
+ 0xab, 0x5f, 0xcb, 0xc3, 0xe0, 0x22, 0xf5, 0x74, 0x43, 0xf7, 0x74, 0x72, 0x19, 0xfa, 0xab, 0x96,
+ 0x41, 0x1f, 0x29, 0xb9, 0x67, 0x72, 0x57, 0x0b, 0xd3, 0xa5, 0x9d, 0xed, 0xc9, 0x3c, 0x35, 0x35,
+ 0x0e, 0x24, 0x4f, 0x41, 0x71, 0x75, 0xab, 0x43, 0x95, 0xfc, 0x33, 0xb9, 0xab, 0x43, 0xd3, 0x43,
+ 0x3b, 0xdb, 0x93, 0xfd, 0x28, 0x34, 0x0d, 0xc1, 0xe4, 0x59, 0xc8, 0x57, 0x2b, 0x4a, 0x01, 0x91,
+ 0x13, 0x3b, 0xdb, 0x93, 0xa3, 0x5d, 0xd3, 0x78, 0xc1, 0x6e, 0x9b, 0x1e, 0x6d, 0x77, 0xbc, 0x2d,
+ 0x2d, 0x5f, 0xad, 0x90, 0x2b, 0x50, 0x9c, 0xb1, 0x0d, 0xaa, 0x14, 0x91, 0x88, 0xec, 0x6c, 0x4f,
+ 0x8e, 0x35, 0x6c, 0x83, 0x4a, 0x54, 0x88, 0x27, 0x9f, 0x85, 0xe2, 0xaa, 0xd9, 0xa6, 0x4a, 0xff,
+ 0x33, 0xb9, 0xab, 0xc3, 0x37, 0x2e, 0x4d, 0x71, 0xf1, 0x4d, 0xf9, 0xe2, 0x9b, 0x5a, 0xf5, 0xe5,
+ 0x3b, 0x3d, 0xfe, 0xed, 0xed, 0xc9, 0xbe, 0x9d, 0xed, 0xc9, 0x22, 0x13, 0xf9, 0x57, 0xbf, 0x33,
+ 0x99, 0xd3, 0xb0, 0x24, 0x79, 0x0b, 0x86, 0x67, 0x5a, 0x5d, 0xd7, 0xa3, 0xce, 0x92, 0xde, 0xa6,
+ 0x4a, 0x09, 0x2b, 0xbc, 0xb4, 0xb3, 0x3d, 0x79, 0xa1, 0xc1, 0xc1, 0x75, 0x4b, 0x6f, 0xcb, 0x15,
+ 0xcb, 0xe4, 0xea, 0x6f, 0xe5, 0xe0, 0x4c, 0x8d, 0xba, 0xae, 0x69, 0x5b, 0x81, 0x6c, 0x3e, 0x0e,
+ 0x43, 0x02, 0x54, 0xad, 0xa0, 0x7c, 0x86, 0xa6, 0x07, 0x76, 0xb6, 0x27, 0x0b, 0xae, 0x69, 0x68,
+ 0x21, 0x86, 0x7c, 0x0a, 0x06, 0xee, 0x9b, 0xde, 0xc6, 0xe2, 0x5c, 0x59, 0xc8, 0xe9, 0xc2, 0xce,
+ 0xf6, 0x24, 0xd9, 0x34, 0xbd, 0x8d, 0x7a, 0x7b, 0x5d, 0x97, 0x2a, 0xf4, 0xc9, 0xc8, 0x02, 0x8c,
+ 0xaf, 0x38, 0xe6, 0x43, 0xdd, 0xa3, 0x77, 0xe8, 0xd6, 0x8a, 0xdd, 0x32, 0x1b, 0x5b, 0x42, 0x8a,
+ 0xcf, 0xec, 0x6c, 0x4f, 0x5e, 0xee, 0x70, 0x5c, 0xfd, 0x01, 0xdd, 0xaa, 0x77, 0x10, 0x2b, 0x31,
+ 0x49, 0x94, 0x54, 0x7f, 0xbb, 0x04, 0x23, 0x77, 0x5d, 0xea, 0x04, 0xed, 0xbe, 0x02, 0x45, 0xf6,
+ 0x5b, 0x34, 0x19, 0x65, 0xde, 0x75, 0xa9, 0x23, 0xcb, 0x9c, 0xe1, 0xc9, 0x35, 0xe8, 0x5f, 0xb0,
+ 0x9b, 0xa6, 0x25, 0x9a, 0x7d, 0x76, 0x67, 0x7b, 0xf2, 0x4c, 0x8b, 0x01, 0x24, 0x4a, 0x4e, 0x41,
+ 0x3e, 0x03, 0x23, 0xd5, 0x36, 0xd3, 0x21, 0xdb, 0xd2, 0x3d, 0xdb, 0x11, 0xad, 0x45, 0xe9, 0x9a,
+ 0x12, 0x5c, 0x2a, 0x18, 0xa1, 0x27, 0x6f, 0x00, 0x94, 0xef, 0xd7, 0x34, 0xbb, 0x45, 0xcb, 0xda,
+ 0x92, 0x50, 0x06, 0x2c, 0xad, 0x6f, 0xba, 0x75, 0xc7, 0x6e, 0xd1, 0xba, 0xee, 0xc8, 0xd5, 0x4a,
+ 0xd4, 0x64, 0x16, 0xc6, 0xca, 0x38, 0x2a, 0x34, 0xfa, 0xc3, 0x5d, 0xea, 0x7a, 0xae, 0xd2, 0xff,
+ 0x4c, 0xe1, 0xea, 0xd0, 0xf4, 0x53, 0x3b, 0xdb, 0x93, 0x4f, 0xf0, 0xf1, 0x52, 0x77, 0x04, 0x4a,
+ 0x62, 0x11, 0x2b, 0x44, 0xa6, 0x61, 0xb4, 0xfc, 0x41, 0xd7, 0xa1, 0x55, 0x83, 0x5a, 0x9e, 0xe9,
+ 0x6d, 0x09, 0x0d, 0xb9, 0xbc, 0xb3, 0x3d, 0xa9, 0xe8, 0x0c, 0x51, 0x37, 0x05, 0x46, 0x62, 0x12,
+ 0x2d, 0x42, 0x96, 0x61, 0xe2, 0xd6, 0xcc, 0x4a, 0x8d, 0x3a, 0x0f, 0xcd, 0x06, 0x2d, 0x37, 0x1a,
+ 0x76, 0xd7, 0xf2, 0x94, 0x01, 0xe4, 0xf3, 0xec, 0xce, 0xf6, 0xe4, 0x53, 0xcd, 0x46, 0xa7, 0xee,
+ 0x72, 0x6c, 0x5d, 0xe7, 0x68, 0x89, 0x59, 0xb2, 0x2c, 0xf9, 0x3c, 0x8c, 0xae, 0x3a, 0x4c, 0x0b,
+ 0x8d, 0x0a, 0x65, 0x70, 0x65, 0x10, 0xf5, 0xff, 0xc2, 0x94, 0x98, 0xa9, 0x38, 0xd4, 0xef, 0x59,
+ 0xde, 0x58, 0x8f, 0x17, 0xa8, 0x1b, 0x88, 0x93, 0x1b, 0x1b, 0x61, 0x45, 0x28, 0x28, 0xec, 0xe3,
+ 0x4d, 0x87, 0x1a, 0x09, 0x6d, 0x1b, 0xc2, 0x36, 0x5f, 0xdb, 0xd9, 0x9e, 0xfc, 0xb8, 0x23, 0x68,
+ 0xea, 0x3d, 0xd5, 0x2e, 0x93, 0x15, 0x99, 0x85, 0x41, 0xa6, 0x4d, 0x77, 0x4c, 0xcb, 0x50, 0xe0,
+ 0x99, 0xdc, 0xd5, 0xb1, 0x1b, 0xe3, 0x7e, 0xeb, 0x7d, 0xf8, 0xf4, 0xc5, 0x9d, 0xed, 0xc9, 0xb3,
+ 0x4c, 0x07, 0xeb, 0x0f, 0x4c, 0x4b, 0x9e, 0x22, 0x82, 0xa2, 0x6c, 0x14, 0x4d, 0xdb, 0x1e, 0x0e,
+ 0xdd, 0xe1, 0x70, 0x14, 0xad, 0xd9, 0x5e, 0x7c, 0xd8, 0xfa, 0x64, 0x64, 0x06, 0x46, 0xa7, 0x6d,
+ 0xaf, 0x6a, 0xb9, 0x9e, 0x6e, 0x35, 0x68, 0xb5, 0xa2, 0x8c, 0x60, 0x39, 0x54, 0x0b, 0x56, 0xce,
+ 0x14, 0x98, 0x7a, 0x64, 0x52, 0x8a, 0x96, 0x51, 0xff, 0x45, 0x11, 0xc6, 0x58, 0x9f, 0x48, 0xc3,
+ 0xa7, 0xcc, 0x66, 0x02, 0x06, 0x61, 0xb5, 0xb8, 0x1d, 0xbd, 0x41, 0xc5, 0x48, 0xc2, 0xaf, 0xb0,
+ 0x7c, 0xa0, 0xc4, 0x33, 0x4e, 0x4f, 0xae, 0xc1, 0x20, 0x07, 0x55, 0x2b, 0x62, 0x70, 0x8d, 0xee,
+ 0x6c, 0x4f, 0x0e, 0xb9, 0x08, 0xab, 0x9b, 0x86, 0x16, 0xa0, 0x99, 0x76, 0xf3, 0xbf, 0xe7, 0x6d,
+ 0xd7, 0x63, 0xcc, 0xc5, 0xd8, 0xc2, 0xcf, 0x10, 0x05, 0x36, 0x04, 0x4a, 0xd6, 0xee, 0x68, 0x21,
+ 0xf2, 0x3a, 0x00, 0x87, 0x94, 0x0d, 0xc3, 0x11, 0x03, 0xec, 0x89, 0x9d, 0xed, 0xc9, 0xf3, 0x82,
+ 0x85, 0x6e, 0x18, 0xf2, 0xe8, 0x94, 0x88, 0x49, 0x1b, 0x46, 0xf8, 0xaf, 0x05, 0x7d, 0x8d, 0xb6,
+ 0xf8, 0xe8, 0x1a, 0xbe, 0x71, 0xd5, 0xef, 0xc4, 0xa8, 0x74, 0xa6, 0x64, 0xd2, 0x59, 0xcb, 0x73,
+ 0xb6, 0xa6, 0x27, 0xc5, 0x84, 0x7c, 0x51, 0x54, 0xd5, 0x42, 0x9c, 0x3c, 0x15, 0xc8, 0x65, 0xd8,
+ 0x3c, 0x3d, 0x67, 0x3b, 0x9b, 0xba, 0x63, 0x50, 0x63, 0x7a, 0x4b, 0x9e, 0xa7, 0xd7, 0x7d, 0x70,
+ 0x7d, 0x4d, 0x56, 0x3d, 0x99, 0x9c, 0x75, 0x3a, 0xe7, 0x56, 0xeb, 0xae, 0xa1, 0xca, 0x0d, 0x24,
+ 0xa4, 0xe5, 0x76, 0xd7, 0xe2, 0x6a, 0x16, 0x2d, 0xc3, 0xa6, 0x02, 0x0e, 0xb8, 0x47, 0x1d, 0x36,
+ 0x89, 0xe3, 0xa8, 0x13, 0x53, 0x81, 0x60, 0xf2, 0x90, 0x63, 0x92, 0x3c, 0x44, 0x91, 0x4b, 0xef,
+ 0xc0, 0x44, 0x42, 0x14, 0x64, 0x1c, 0x0a, 0x0f, 0xe8, 0x16, 0x57, 0x17, 0x8d, 0xfd, 0x49, 0xce,
+ 0x41, 0xff, 0x43, 0xbd, 0xd5, 0x15, 0x4b, 0xa8, 0xc6, 0x7f, 0xbc, 0x91, 0xff, 0x74, 0x8e, 0xad,
+ 0x38, 0x64, 0xc6, 0xb6, 0x2c, 0xda, 0xf0, 0xe4, 0x45, 0xe7, 0x55, 0x18, 0x5a, 0xb0, 0x1b, 0x7a,
+ 0x0b, 0xfb, 0x91, 0xeb, 0x9d, 0xb2, 0xb3, 0x3d, 0x79, 0x8e, 0x75, 0xe0, 0x54, 0x8b, 0x61, 0xa4,
+ 0x36, 0x85, 0xa4, 0x4c, 0x01, 0x34, 0xda, 0xb6, 0x3d, 0x8a, 0x05, 0xf3, 0xa1, 0x02, 0x60, 0x41,
+ 0x07, 0x51, 0xb2, 0x02, 0x84, 0xc4, 0xe4, 0x3a, 0x0c, 0xae, 0xb0, 0x75, 0xb6, 0x61, 0xb7, 0x84,
+ 0xf2, 0xe1, 0x52, 0x80, 0x6b, 0xaf, 0x3c, 0x56, 0x7d, 0x22, 0x75, 0x1e, 0xc6, 0x66, 0x5a, 0x26,
+ 0xb5, 0x3c, 0xb9, 0xd5, 0x6c, 0x24, 0x97, 0x9b, 0xd4, 0xf2, 0xe4, 0x56, 0xe3, 0x98, 0xd7, 0x19,
+ 0x54, 0x6e, 0x75, 0x40, 0xaa, 0xfe, 0x7e, 0x01, 0x9e, 0xb8, 0xd3, 0x5d, 0xa3, 0x8e, 0x45, 0x3d,
+ 0xea, 0x8a, 0x05, 0x39, 0xe0, 0xba, 0x04, 0x13, 0x09, 0xa4, 0xe0, 0x8e, 0x0b, 0xe5, 0x83, 0x00,
+ 0x59, 0x17, 0x6b, 0xbc, 0x3c, 0xdb, 0x26, 0x8a, 0x92, 0x79, 0x38, 0x13, 0x02, 0x59, 0x23, 0x5c,
+ 0x25, 0x8f, 0x4b, 0xc9, 0xd3, 0x3b, 0xdb, 0x93, 0x97, 0x24, 0x6e, 0xac, 0xd9, 0xb2, 0x06, 0xc7,
+ 0x8b, 0x91, 0x3b, 0x30, 0x1e, 0x82, 0x6e, 0x39, 0x76, 0xb7, 0xe3, 0x2a, 0x05, 0x64, 0x35, 0xb9,
+ 0xb3, 0x3d, 0xf9, 0xa4, 0xc4, 0xaa, 0x89, 0x48, 0x79, 0x01, 0x8f, 0x17, 0x24, 0x3f, 0x96, 0x93,
+ 0xb9, 0x89, 0x51, 0x58, 0xc4, 0x51, 0xf8, 0x9a, 0x3f, 0x0a, 0x33, 0x85, 0x34, 0x15, 0x2f, 0x29,
+ 0x06, 0x65, 0xac, 0x19, 0x89, 0x41, 0x99, 0xa8, 0xf1, 0xd2, 0x0c, 0x9c, 0x4f, 0xe5, 0xb5, 0x2f,
+ 0xad, 0xfe, 0xe7, 0x05, 0x99, 0xcb, 0x8a, 0x6d, 0x04, 0x9d, 0xb9, 0x2c, 0x77, 0xe6, 0x8a, 0x6d,
+ 0xe0, 0x54, 0x9f, 0x0b, 0xd7, 0x4e, 0xa9, 0xb1, 0x1d, 0xdb, 0x88, 0xcf, 0xfa, 0xc9, 0xb2, 0xe4,
+ 0x8b, 0x70, 0x21, 0x01, 0xe4, 0xd3, 0x35, 0xd7, 0xfe, 0x2b, 0x3b, 0xdb, 0x93, 0x6a, 0x0a, 0xd7,
+ 0xf8, 0xec, 0x9d, 0xc1, 0x85, 0xe8, 0x70, 0x51, 0x92, 0xba, 0x6d, 0x79, 0xba, 0x69, 0x09, 0xe3,
+ 0x92, 0x8f, 0x92, 0x4f, 0xec, 0x6c, 0x4f, 0x3e, 0x27, 0xeb, 0xa0, 0x4f, 0x13, 0x6f, 0x7c, 0x16,
+ 0x1f, 0x62, 0x80, 0x92, 0x82, 0xaa, 0xb6, 0xf5, 0xa6, 0x6f, 0x31, 0x5f, 0xdd, 0xd9, 0x9e, 0xfc,
+ 0x58, 0x6a, 0x1d, 0x26, 0xa3, 0x92, 0x57, 0xe8, 0x2c, 0x4e, 0x44, 0x03, 0x12, 0xe2, 0x96, 0x6c,
+ 0x83, 0xe2, 0x37, 0xf4, 0x23, 0x7f, 0x75, 0x67, 0x7b, 0xf2, 0x69, 0x89, 0xbf, 0x65, 0x1b, 0x34,
+ 0xde, 0xfc, 0x94, 0xd2, 0xea, 0x6f, 0x15, 0xe0, 0xe9, 0x5a, 0x79, 0x71, 0xa1, 0x6a, 0xf8, 0x26,
+ 0xcd, 0x8a, 0x63, 0x3f, 0x34, 0x0d, 0x69, 0xf4, 0xae, 0xc1, 0xc5, 0x18, 0x6a, 0x16, 0xad, 0xa8,
+ 0xc0, 0x98, 0xc6, 0x6f, 0xf3, 0xcd, 0xa5, 0x8e, 0xa0, 0xa9, 0x73, 0x53, 0x2b, 0xba, 0x68, 0x67,
+ 0x31, 0x62, 0x7d, 0x14, 0x43, 0xd5, 0x36, 0x6c, 0xc7, 0x6b, 0x74, 0x3d, 0xa1, 0x04, 0xd8, 0x47,
+ 0x89, 0x3a, 0x5c, 0x41, 0xd4, 0xa3, 0x0a, 0x9f, 0x0f, 0xf9, 0xc9, 0x1c, 0x8c, 0x97, 0x3d, 0xcf,
+ 0x31, 0xd7, 0xba, 0x1e, 0x5d, 0xd4, 0x3b, 0x1d, 0xd3, 0x6a, 0xe2, 0x58, 0x1f, 0xbe, 0xf1, 0x56,
+ 0xb0, 0x46, 0xf6, 0x94, 0xc4, 0x54, 0xbc, 0xb8, 0x34, 0x44, 0x75, 0x1f, 0x55, 0x6f, 0x73, 0x9c,
+ 0x3c, 0x44, 0xe3, 0xe5, 0xd8, 0x10, 0x4d, 0xe5, 0xb5, 0xaf, 0x21, 0xfa, 0xb5, 0x02, 0x5c, 0x5e,
+ 0x7e, 0xe0, 0xe9, 0x1a, 0x75, 0xed, 0xae, 0xd3, 0xa0, 0xee, 0xdd, 0x8e, 0xa1, 0x7b, 0x34, 0x1c,
+ 0xa9, 0x93, 0xd0, 0x5f, 0x36, 0x0c, 0x6a, 0x20, 0xbb, 0x7e, 0xbe, 0xed, 0xd3, 0x19, 0x40, 0xe3,
+ 0x70, 0xf2, 0x71, 0x18, 0x10, 0x65, 0x90, 0x7b, 0xff, 0xf4, 0xf0, 0xce, 0xf6, 0xe4, 0x40, 0x97,
+ 0x83, 0x34, 0x1f, 0xc7, 0xc8, 0x2a, 0xb4, 0x45, 0x19, 0x59, 0x21, 0x24, 0x33, 0x38, 0x48, 0xf3,
+ 0x71, 0xe4, 0x5d, 0x18, 0x43, 0xb6, 0x41, 0x7b, 0xc4, 0xdc, 0x77, 0xce, 0x97, 0xae, 0xdc, 0x58,
+ 0xbe, 0x34, 0x61, 0x6b, 0xea, 0x8e, 0x5f, 0x40, 0x8b, 0x31, 0x20, 0xf7, 0x61, 0x5c, 0x34, 0x22,
+ 0x64, 0xda, 0xdf, 0x83, 0xe9, 0xf9, 0x9d, 0xed, 0xc9, 0x09, 0xd1, 0x7e, 0x89, 0x6d, 0x82, 0x09,
+ 0x63, 0x2c, 0x9a, 0x1d, 0x32, 0x2e, 0xed, 0xc6, 0x58, 0x7c, 0xb1, 0xcc, 0x38, 0xce, 0x44, 0x7d,
+ 0x0f, 0x46, 0xe4, 0x82, 0xe4, 0x02, 0x6e, 0xad, 0xf9, 0x38, 0xc1, 0x4d, 0xb9, 0x69, 0xe0, 0x7e,
+ 0xfa, 0x25, 0x18, 0xae, 0x50, 0xb7, 0xe1, 0x98, 0x1d, 0x66, 0x35, 0x08, 0x25, 0x3f, 0xb3, 0xb3,
+ 0x3d, 0x39, 0x6c, 0x84, 0x60, 0x4d, 0xa6, 0x51, 0xff, 0xef, 0x1c, 0x5c, 0x60, 0xbc, 0xcb, 0xae,
+ 0x6b, 0x36, 0xad, 0xb6, 0xbc, 0x6c, 0xbf, 0x00, 0xa5, 0x1a, 0xd6, 0x27, 0x6a, 0x3a, 0xb7, 0xb3,
+ 0x3d, 0x39, 0xce, 0x5b, 0x20, 0xe9, 0xa1, 0xa0, 0x09, 0xf6, 0x95, 0xf9, 0x5d, 0xf6, 0x95, 0xcc,
+ 0xa4, 0xf5, 0x74, 0xc7, 0x33, 0xad, 0x66, 0xcd, 0xd3, 0xbd, 0xae, 0x1b, 0x31, 0x69, 0x05, 0xa6,
+ 0xee, 0x22, 0x2a, 0x62, 0xd2, 0x46, 0x0a, 0x91, 0x77, 0x60, 0x64, 0xd6, 0x32, 0x42, 0x26, 0x7c,
+ 0x42, 0x7c, 0x92, 0x59, 0x9a, 0x14, 0xe1, 0x49, 0x16, 0x91, 0x02, 0xea, 0xdf, 0xca, 0x81, 0xc2,
+ 0x37, 0x81, 0x0b, 0xa6, 0xeb, 0x2d, 0xd2, 0xf6, 0x9a, 0x34, 0x3b, 0xcd, 0xf9, 0xbb, 0x4a, 0x86,
+ 0x93, 0xd6, 0x22, 0x34, 0x05, 0xc4, 0xae, 0xb2, 0x65, 0xba, 0x89, 0xed, 0x47, 0xac, 0x14, 0xa9,
+ 0xc2, 0x00, 0xe7, 0xcc, 0x6d, 0x89, 0xe1, 0x1b, 0x8a, 0xaf, 0x08, 0xf1, 0xaa, 0xb9, 0x32, 0xb4,
+ 0x39, 0xb1, 0xbc, 0xa1, 0x11, 0xe5, 0xd5, 0xaf, 0x17, 0x60, 0x3c, 0x5e, 0x88, 0xdc, 0x87, 0xc1,
+ 0xdb, 0xb6, 0x69, 0x51, 0x63, 0xd9, 0xc2, 0x16, 0xf6, 0x3e, 0x1c, 0xf1, 0x6d, 0xf1, 0xb3, 0xef,
+ 0x63, 0x99, 0xba, 0x6c, 0xc1, 0xe2, 0x59, 0x49, 0xc0, 0x8c, 0x7c, 0x1e, 0x86, 0x98, 0x0d, 0xf8,
+ 0x10, 0x39, 0xe7, 0x77, 0xe5, 0xfc, 0x8c, 0xe0, 0x7c, 0xce, 0xe1, 0x85, 0x92, 0xac, 0x43, 0x76,
+ 0x4c, 0xaf, 0x34, 0xaa, 0xbb, 0xb6, 0x25, 0x7a, 0x1e, 0xf5, 0xca, 0x41, 0x88, 0xac, 0x57, 0x9c,
+ 0x86, 0x99, 0xae, 0xfc, 0x63, 0xb1, 0x1b, 0xa4, 0xbd, 0x0b, 0x97, 0x55, 0xbc, 0x07, 0x24, 0x62,
+ 0x62, 0xc1, 0x19, 0x21, 0xd0, 0x0d, 0xb3, 0x83, 0x56, 0x3f, 0xae, 0x6b, 0x63, 0x37, 0xae, 0x4c,
+ 0xf9, 0x87, 0x62, 0x53, 0xd2, 0x91, 0xda, 0xc3, 0x97, 0xa6, 0x16, 0x03, 0x72, 0xdc, 0x99, 0xa2,
+ 0x4e, 0xc6, 0x58, 0xc8, 0xbd, 0xdd, 0x8e, 0x90, 0xab, 0x3f, 0x9e, 0x87, 0x17, 0xc3, 0x2e, 0xd2,
+ 0xe8, 0x43, 0x93, 0x6e, 0x86, 0x1c, 0xc5, 0x1e, 0x99, 0x0d, 0x31, 0x77, 0x66, 0x43, 0xb7, 0x9a,
+ 0xd4, 0x20, 0xd7, 0xa0, 0x5f, 0xb3, 0x5b, 0xd4, 0x55, 0x72, 0x68, 0x1e, 0xe2, 0xf4, 0xe5, 0x30,
+ 0x80, 0x7c, 0xc8, 0x82, 0x14, 0xc4, 0x86, 0xd2, 0xaa, 0xa3, 0x9b, 0x9e, 0xaf, 0x49, 0xe5, 0xa4,
+ 0x26, 0xed, 0xa1, 0xc6, 0x29, 0xce, 0x83, 0xaf, 0x31, 0x28, 0x78, 0x0f, 0x01, 0xb2, 0xe0, 0x39,
+ 0xc9, 0xa5, 0xd7, 0x61, 0x58, 0x22, 0xde, 0xd7, 0x22, 0xf2, 0x8d, 0xa2, 0x3c, 0xb6, 0xfc, 0x66,
+ 0x89, 0xb1, 0x75, 0x9d, 0x8d, 0x09, 0xd7, 0x65, 0x56, 0x0c, 0x1f, 0x54, 0x42, 0xf3, 0x11, 0x14,
+ 0xd5, 0x7c, 0x04, 0x91, 0x97, 0x61, 0x90, 0xb3, 0x08, 0xf6, 0xcb, 0xb8, 0xd7, 0x76, 0x10, 0x16,
+ 0x35, 0x05, 0x02, 0x42, 0xf2, 0x4b, 0x39, 0x78, 0xaa, 0xa7, 0x24, 0x50, 0xf9, 0x86, 0x6f, 0xbc,
+ 0x72, 0x20, 0x31, 0x4e, 0xbf, 0xb8, 0xb3, 0x3d, 0x79, 0x4d, 0xd2, 0x0c, 0x47, 0xa2, 0xa9, 0x37,
+ 0x38, 0x91, 0xd4, 0xae, 0xde, 0x4d, 0x61, 0xc6, 0x2a, 0xaf, 0x74, 0x0e, 0x8f, 0xaa, 0xac, 0xc6,
+ 0x96, 0xdf, 0xc8, 0x62, 0x68, 0xac, 0x8a, 0xef, 0x5d, 0xf7, 0x49, 0x52, 0xaa, 0xc9, 0xe0, 0x42,
+ 0x1a, 0x70, 0x91, 0x63, 0x2a, 0xfa, 0xd6, 0xf2, 0xfa, 0xa2, 0x6d, 0x79, 0x1b, 0x7e, 0x05, 0xfd,
+ 0xf2, 0x59, 0x0f, 0x56, 0x60, 0xe8, 0x5b, 0x75, 0x7b, 0xbd, 0xde, 0x66, 0x54, 0x29, 0x75, 0x64,
+ 0x71, 0x62, 0x13, 0xbb, 0x18, 0xe3, 0xfe, 0x94, 0x57, 0x0a, 0x4f, 0xe2, 0xfc, 0x79, 0x21, 0x39,
+ 0xc1, 0xc5, 0x0a, 0xa9, 0x55, 0x18, 0x59, 0xb0, 0x1b, 0x0f, 0x02, 0x75, 0x79, 0x1d, 0x4a, 0xab,
+ 0xba, 0xd3, 0xa4, 0x1e, 0xca, 0x62, 0xf8, 0xc6, 0xc4, 0x14, 0x3f, 0xdd, 0x66, 0x44, 0x1c, 0x31,
+ 0x3d, 0x26, 0x66, 0x9f, 0x92, 0x87, 0xbf, 0x35, 0x51, 0x40, 0xfd, 0x4e, 0x3f, 0x8c, 0x88, 0x93,
+ 0x58, 0x5c, 0x3d, 0xc8, 0x1b, 0xe1, 0xd9, 0xb6, 0x98, 0x2e, 0x83, 0xd3, 0xa8, 0xe0, 0x14, 0x6d,
+ 0x84, 0x31, 0xfb, 0x83, 0xed, 0xc9, 0xdc, 0xce, 0xf6, 0x64, 0x9f, 0x36, 0x28, 0x6d, 0x62, 0xc3,
+ 0xf5, 0x4d, 0x5a, 0xd0, 0xe5, 0xb3, 0xd5, 0x58, 0x59, 0xbe, 0xde, 0xbd, 0x03, 0x03, 0xa2, 0x0d,
+ 0x42, 0xe3, 0x2e, 0x86, 0x67, 0x27, 0x91, 0x13, 0xe5, 0x58, 0x69, 0xbf, 0x14, 0x79, 0x0b, 0x4a,
+ 0xfc, 0x2c, 0x41, 0x08, 0xe0, 0x42, 0xfa, 0xd9, 0x4b, 0xac, 0xb8, 0x28, 0x43, 0xe6, 0x01, 0xc2,
+ 0x73, 0x84, 0xe0, 0x00, 0x5d, 0x70, 0x48, 0x9e, 0x30, 0xc4, 0xb8, 0x48, 0x65, 0xc9, 0xab, 0x30,
+ 0xb2, 0x4a, 0x9d, 0xb6, 0x69, 0xe9, 0xad, 0x9a, 0xf9, 0x81, 0x7f, 0x86, 0x8e, 0x0b, 0xbd, 0x6b,
+ 0x7e, 0x20, 0x8f, 0xdc, 0x08, 0x1d, 0xf9, 0x42, 0xda, 0x3e, 0x7d, 0x00, 0x1b, 0xf2, 0xec, 0xae,
+ 0x1b, 0xd8, 0x58, 0x7b, 0x52, 0xb6, 0xed, 0xef, 0xc2, 0x68, 0x64, 0x8b, 0x26, 0x0e, 0x49, 0x9f,
+ 0x4a, 0xb2, 0x96, 0xf6, 0x9b, 0x31, 0xb6, 0x51, 0x0e, 0x4c, 0x93, 0xab, 0x96, 0xe9, 0x99, 0x7a,
+ 0x6b, 0xc6, 0x6e, 0xb7, 0x75, 0xcb, 0x50, 0x86, 0x42, 0x4d, 0x36, 0x39, 0xa6, 0xde, 0xe0, 0x28,
+ 0x59, 0x93, 0xa3, 0x85, 0xc8, 0x1d, 0x18, 0x17, 0x7d, 0xa8, 0xd1, 0x86, 0xed, 0x30, 0xdb, 0x03,
+ 0xcf, 0x40, 0xc5, 0x31, 0x80, 0xcb, 0x71, 0x75, 0xc7, 0x47, 0xca, 0xc6, 0x7d, 0xbc, 0xe0, 0xed,
+ 0xe2, 0xe0, 0xf0, 0xf8, 0x48, 0xfc, 0xd8, 0x5a, 0xfd, 0x1b, 0x05, 0x18, 0x16, 0xa4, 0x6c, 0xe9,
+ 0x3e, 0x55, 0xf0, 0xc3, 0x28, 0x78, 0xaa, 0xa2, 0x96, 0x8e, 0x4a, 0x51, 0xd5, 0x2f, 0xe7, 0x83,
+ 0xd9, 0x68, 0xc5, 0x31, 0xad, 0xc3, 0xcd, 0x46, 0x57, 0x00, 0x66, 0x36, 0xba, 0xd6, 0x03, 0x7e,
+ 0x3d, 0x97, 0x0f, 0xaf, 0xe7, 0x1a, 0xa6, 0x26, 0x61, 0xc8, 0x53, 0x50, 0xac, 0x30, 0xfe, 0xac,
+ 0x67, 0x46, 0xa6, 0x87, 0xbe, 0xcd, 0x39, 0xe5, 0x5e, 0xd4, 0x10, 0xcc, 0x36, 0x73, 0xd3, 0x5b,
+ 0x1e, 0xe5, 0xe6, 0x73, 0x81, 0x6f, 0xe6, 0xd6, 0x18, 0x40, 0xe3, 0x70, 0x72, 0x13, 0x26, 0x2a,
+ 0xb4, 0xa5, 0x6f, 0x2d, 0x9a, 0xad, 0x96, 0xe9, 0xd2, 0x86, 0x6d, 0x19, 0x2e, 0x0a, 0x59, 0x54,
+ 0xd7, 0x76, 0xb5, 0x24, 0x01, 0x51, 0xa1, 0xb4, 0xbc, 0xbe, 0xee, 0x52, 0x0f, 0xc5, 0x57, 0x98,
+ 0x06, 0x36, 0x39, 0xdb, 0x08, 0xd1, 0x04, 0x46, 0xfd, 0xd5, 0x1c, 0xdb, 0x2d, 0xb9, 0x0f, 0x3c,
+ 0xbb, 0x13, 0x68, 0xf9, 0xa1, 0x44, 0x72, 0x2d, 0xb4, 0x2b, 0xf2, 0xf8, 0xb5, 0x67, 0xc4, 0xd7,
+ 0x0e, 0x08, 0xdb, 0x22, 0xb4, 0x28, 0x52, 0xbf, 0xaa, 0xb0, 0xcb, 0x57, 0xa9, 0x7f, 0x9c, 0x87,
+ 0x8b, 0xa2, 0xc5, 0x33, 0x2d, 0xb3, 0xb3, 0x66, 0xeb, 0x8e, 0xa1, 0xd1, 0x06, 0x35, 0x1f, 0xd2,
+ 0x93, 0x39, 0xf0, 0xa2, 0x43, 0xa7, 0x78, 0x88, 0xa1, 0x73, 0x03, 0x37, 0x9e, 0x4c, 0x32, 0x78,
+ 0xc0, 0xcc, 0x8d, 0x8a, 0xf1, 0x9d, 0xed, 0xc9, 0x11, 0x83, 0x83, 0xf1, 0x8a, 0x41, 0x93, 0x89,
+ 0x98, 0x92, 0x2c, 0x50, 0xab, 0xe9, 0x6d, 0xa0, 0x92, 0xf4, 0x73, 0x25, 0x69, 0x21, 0x44, 0x13,
+ 0x18, 0xf5, 0x7f, 0xcf, 0xc3, 0xb9, 0xb8, 0xc8, 0x6b, 0xd4, 0x32, 0x4e, 0xe5, 0xfd, 0xe1, 0xc8,
+ 0xfb, 0xbb, 0x05, 0x78, 0x52, 0x94, 0xa9, 0x6d, 0xe8, 0x0e, 0x35, 0x2a, 0xa6, 0x43, 0x1b, 0x9e,
+ 0xed, 0x6c, 0x9d, 0x60, 0x03, 0xea, 0xe8, 0xc4, 0x7e, 0x13, 0x4a, 0xe2, 0xb8, 0x81, 0xaf, 0x33,
+ 0x63, 0x41, 0x4b, 0x10, 0x9a, 0x58, 0xa1, 0xf8, 0x51, 0x45, 0xac, 0xb3, 0x4a, 0x7b, 0xe9, 0xac,
+ 0x4f, 0xc3, 0x68, 0x20, 0x7a, 0xdc, 0xf8, 0x0e, 0x84, 0xd6, 0x96, 0xe1, 0x23, 0x70, 0xef, 0xab,
+ 0x45, 0x09, 0xb1, 0x36, 0x1f, 0x50, 0xad, 0xa0, 0x35, 0x34, 0x2a, 0x6a, 0x0b, 0xca, 0x99, 0x86,
+ 0x26, 0x13, 0xa9, 0xdb, 0x45, 0xb8, 0x94, 0xde, 0xed, 0x1a, 0xd5, 0x8d, 0xd3, 0x5e, 0xff, 0xbe,
+ 0xec, 0x75, 0xf2, 0x2c, 0x14, 0x57, 0x74, 0x6f, 0x43, 0x5c, 0xf7, 0xe3, 0x1d, 0xf4, 0xba, 0xd9,
+ 0xa2, 0xf5, 0x8e, 0xee, 0x6d, 0x68, 0x88, 0x92, 0xe6, 0x0c, 0x40, 0x8e, 0x29, 0x73, 0x86, 0xb4,
+ 0xd8, 0x0f, 0x3f, 0x93, 0xbb, 0x5a, 0x4c, 0x5d, 0xec, 0xbf, 0x53, 0xcc, 0x9a, 0x57, 0xee, 0x3b,
+ 0xa6, 0x47, 0x4f, 0x35, 0xec, 0x54, 0xc3, 0x0e, 0xa9, 0x61, 0xff, 0x28, 0x0f, 0xa3, 0xc1, 0xa6,
+ 0xe9, 0x7d, 0xda, 0x38, 0x9e, 0xb5, 0x2a, 0xdc, 0xca, 0x14, 0x0e, 0xbd, 0x95, 0x39, 0x8c, 0x42,
+ 0xa9, 0xc1, 0x11, 0x2b, 0x37, 0x0d, 0x50, 0x62, 0xfc, 0x88, 0x35, 0x38, 0x58, 0x7d, 0x16, 0x06,
+ 0x16, 0xf5, 0x47, 0x66, 0xbb, 0xdb, 0x16, 0x56, 0x3a, 0xba, 0xaf, 0xb5, 0xf5, 0x47, 0x9a, 0x0f,
+ 0x57, 0xff, 0xbb, 0x1c, 0x8c, 0x09, 0xa1, 0x0a, 0xe6, 0x87, 0x92, 0x6a, 0x28, 0x9d, 0xfc, 0xa1,
+ 0xa5, 0x53, 0x38, 0xb8, 0x74, 0xd4, 0xbf, 0x54, 0x00, 0x65, 0xce, 0x6c, 0xd1, 0x55, 0x47, 0xb7,
+ 0xdc, 0x75, 0xea, 0x88, 0xed, 0xf4, 0x2c, 0x63, 0x75, 0xa8, 0x0f, 0x94, 0xa6, 0x94, 0xfc, 0x81,
+ 0xa6, 0x94, 0x4f, 0xc2, 0x90, 0x68, 0x4c, 0xe0, 0x3a, 0x89, 0xa3, 0xc6, 0xf1, 0x81, 0x5a, 0x88,
+ 0x67, 0xc4, 0xe5, 0x4e, 0xc7, 0xb1, 0x1f, 0x52, 0x87, 0xdf, 0x8a, 0x09, 0x62, 0xdd, 0x07, 0x6a,
+ 0x21, 0x5e, 0xe2, 0x4c, 0x7d, 0x7b, 0x51, 0xe6, 0x4c, 0x1d, 0x2d, 0xc4, 0x93, 0xab, 0x30, 0xb8,
+ 0x60, 0x37, 0x74, 0x14, 0x34, 0x9f, 0x56, 0x46, 0x76, 0xb6, 0x27, 0x07, 0x5b, 0x02, 0xa6, 0x05,
+ 0x58, 0x46, 0x59, 0xb1, 0x37, 0xad, 0x96, 0xad, 0x73, 0x67, 0x9b, 0x41, 0x4e, 0x69, 0x08, 0x98,
+ 0x16, 0x60, 0x19, 0x25, 0x93, 0x39, 0x3a, 0x31, 0x0d, 0x86, 0x3c, 0xd7, 0x05, 0x4c, 0x0b, 0xb0,
+ 0xea, 0xaf, 0x16, 0x99, 0xf6, 0xba, 0xe6, 0x07, 0x8f, 0xfd, 0xba, 0x10, 0x0e, 0x98, 0xfe, 0x03,
+ 0x0c, 0x98, 0xc7, 0xe6, 0xc0, 0x4e, 0xfd, 0x17, 0x03, 0x00, 0x42, 0xfa, 0xb3, 0xa7, 0x9b, 0xc3,
+ 0xc3, 0x69, 0x4d, 0x05, 0x26, 0x66, 0xad, 0x0d, 0xdd, 0x6a, 0x50, 0x23, 0x3c, 0xb6, 0x2c, 0xe1,
+ 0xd0, 0x46, 0xa7, 0x4b, 0x2a, 0x90, 0xe1, 0xb9, 0xa5, 0x96, 0x2c, 0x40, 0x5e, 0x82, 0xe1, 0xaa,
+ 0xe5, 0x51, 0x47, 0x6f, 0x78, 0xe6, 0x43, 0x2a, 0xa6, 0x06, 0xbc, 0x89, 0x36, 0x43, 0xb0, 0x26,
+ 0xd3, 0x90, 0x9b, 0x30, 0xb2, 0xa2, 0x3b, 0x9e, 0xd9, 0x30, 0x3b, 0xba, 0xe5, 0xb9, 0xca, 0x20,
+ 0xce, 0x68, 0x68, 0x61, 0x74, 0x24, 0xb8, 0x16, 0xa1, 0x22, 0x5f, 0x80, 0x21, 0xdc, 0x9a, 0xa2,
+ 0x7f, 0xf8, 0xd0, 0xae, 0x17, 0x95, 0xcf, 0x85, 0xee, 0x88, 0xfc, 0xf4, 0x15, 0x6f, 0x9c, 0xe3,
+ 0x77, 0x95, 0x01, 0x47, 0xf2, 0x39, 0x18, 0x98, 0xb5, 0x0c, 0x64, 0x0e, 0xbb, 0x32, 0x57, 0x05,
+ 0xf3, 0x0b, 0x21, 0x73, 0xbb, 0x13, 0xe3, 0xed, 0xb3, 0x4b, 0x1f, 0x65, 0xc3, 0x1f, 0xde, 0x28,
+ 0x1b, 0xf9, 0x10, 0x8e, 0xc5, 0x47, 0x8f, 0xea, 0x58, 0x7c, 0xec, 0x80, 0xc7, 0xe2, 0xea, 0x07,
+ 0x30, 0x3c, 0xbd, 0x32, 0x17, 0x8c, 0xde, 0x27, 0xa0, 0xb0, 0x22, 0x3c, 0x23, 0x8a, 0xdc, 0x9e,
+ 0xe9, 0x98, 0x86, 0xc6, 0x60, 0xe4, 0x1a, 0x0c, 0xce, 0xa0, 0xbb, 0x9d, 0xb8, 0x45, 0x2c, 0xf2,
+ 0xf5, 0xaf, 0x81, 0x30, 0xf4, 0xba, 0xf5, 0xd1, 0xe4, 0xe3, 0x30, 0xb0, 0xe2, 0xd8, 0x4d, 0x47,
+ 0x6f, 0x8b, 0x35, 0x18, 0x5d, 0x53, 0x3a, 0x1c, 0xa4, 0xf9, 0x38, 0xf5, 0x67, 0x72, 0xbe, 0xd9,
+ 0xce, 0x4a, 0xd4, 0xba, 0x78, 0x34, 0x8f, 0x75, 0x0f, 0xf2, 0x12, 0x2e, 0x07, 0x69, 0x3e, 0x8e,
+ 0x5c, 0x83, 0xfe, 0x59, 0xc7, 0xb1, 0x1d, 0xd9, 0xa7, 0x9e, 0x32, 0x80, 0x7c, 0xdd, 0x8b, 0x14,
+ 0xe4, 0x35, 0x18, 0xe6, 0x73, 0x0e, 0x3f, 0xd1, 0x2c, 0xf4, 0xba, 0x29, 0x95, 0x29, 0xd5, 0x6f,
+ 0x15, 0x24, 0x9b, 0x8d, 0x4b, 0xfc, 0x31, 0xbc, 0x15, 0x78, 0x19, 0x0a, 0xd3, 0x2b, 0x73, 0x62,
+ 0x02, 0x3c, 0xeb, 0x17, 0x95, 0x54, 0x25, 0x56, 0x8e, 0x51, 0x93, 0xcb, 0x50, 0x5c, 0x61, 0xea,
+ 0x53, 0x42, 0xf5, 0x18, 0xdc, 0xd9, 0x9e, 0x2c, 0x76, 0x98, 0xfe, 0x20, 0x14, 0xb1, 0x6c, 0x33,
+ 0xc3, 0x77, 0x4c, 0x1c, 0x1b, 0xee, 0x63, 0x2e, 0x43, 0xb1, 0xec, 0x34, 0x1f, 0x8a, 0x59, 0x0b,
+ 0xb1, 0xba, 0xd3, 0x7c, 0xa8, 0x21, 0x94, 0x5c, 0x07, 0xd0, 0xa8, 0xd7, 0x75, 0x2c, 0x7c, 0xee,
+ 0x32, 0x84, 0xe7, 0x6f, 0x38, 0x1b, 0x3a, 0x08, 0xad, 0x37, 0x6c, 0x83, 0x6a, 0x12, 0x89, 0xfa,
+ 0xd7, 0xc3, 0x8b, 0x9d, 0x8a, 0xe9, 0x3e, 0x38, 0xed, 0xc2, 0x7d, 0x74, 0xa1, 0x2e, 0x8e, 0x38,
+ 0x93, 0x9d, 0x34, 0x09, 0xfd, 0x73, 0x2d, 0xbd, 0xe9, 0x62, 0x1f, 0x0a, 0xdf, 0xb5, 0x75, 0x06,
+ 0xd0, 0x38, 0x3c, 0xd6, 0x4f, 0x83, 0xbb, 0xf7, 0xd3, 0xcf, 0xf5, 0x07, 0xa3, 0x6d, 0x89, 0x7a,
+ 0x9b, 0xb6, 0x73, 0xda, 0x55, 0x7b, 0xed, 0xaa, 0x2b, 0x30, 0x50, 0x73, 0x1a, 0xd2, 0xd1, 0x05,
+ 0xee, 0x07, 0x5c, 0xa7, 0xc1, 0x8f, 0x2d, 0x7c, 0x24, 0xa3, 0xab, 0xb8, 0x1e, 0xd2, 0x0d, 0x84,
+ 0x74, 0x86, 0xeb, 0x09, 0x3a, 0x81, 0x14, 0x74, 0x2b, 0xb6, 0xe3, 0x89, 0x8e, 0x0b, 0xe8, 0x3a,
+ 0xb6, 0xe3, 0x69, 0x3e, 0x92, 0x7c, 0x12, 0x60, 0x75, 0x66, 0xc5, 0x77, 0xee, 0x1f, 0x0a, 0x7d,
+ 0x0f, 0x85, 0x57, 0xbf, 0x26, 0xa1, 0xc9, 0x2a, 0x0c, 0x2d, 0x77, 0xa8, 0xc3, 0xb7, 0x42, 0xfc,
+ 0x01, 0xcb, 0x27, 0x62, 0xa2, 0x15, 0xfd, 0x3e, 0x25, 0xfe, 0x0f, 0xc8, 0xf9, 0xfa, 0x62, 0xfb,
+ 0x3f, 0xb5, 0x90, 0x11, 0x79, 0x0d, 0x4a, 0x65, 0x6e, 0xe7, 0x0d, 0x23, 0xcb, 0x40, 0x64, 0xb8,
+ 0x05, 0xe5, 0x28, 0xbe, 0x67, 0xd7, 0xf1, 0x6f, 0x4d, 0x90, 0xab, 0xd7, 0x60, 0x3c, 0x5e, 0x0d,
+ 0x19, 0x86, 0x81, 0x99, 0xe5, 0xa5, 0xa5, 0xd9, 0x99, 0xd5, 0xf1, 0x3e, 0x32, 0x08, 0xc5, 0xda,
+ 0xec, 0x52, 0x65, 0x3c, 0xa7, 0xfe, 0xb2, 0x34, 0x83, 0x30, 0xd5, 0x3a, 0xbd, 0x1a, 0x3e, 0xd4,
+ 0x7d, 0xcb, 0x38, 0xde, 0x87, 0xe2, 0x89, 0x41, 0xdb, 0xf4, 0x3c, 0x6a, 0x88, 0x55, 0x02, 0xef,
+ 0x0b, 0xbd, 0x47, 0x5a, 0x02, 0x4f, 0x5e, 0x80, 0x51, 0x84, 0x89, 0x2b, 0x42, 0xbe, 0x3f, 0x16,
+ 0x05, 0x9c, 0x47, 0x5a, 0x14, 0xa9, 0xfe, 0x5e, 0x78, 0x3b, 0xbc, 0x40, 0xf5, 0x93, 0x7a, 0xa3,
+ 0xf8, 0x11, 0xe9, 0x2f, 0xf5, 0x5f, 0x15, 0xf9, 0x93, 0x13, 0xfe, 0x3e, 0xf1, 0x38, 0x44, 0x19,
+ 0x1e, 0xe9, 0x16, 0xf6, 0x71, 0xa4, 0xfb, 0x02, 0x94, 0x16, 0xa9, 0xb7, 0x61, 0xfb, 0x8e, 0x5f,
+ 0xe8, 0xa1, 0xd7, 0x46, 0x88, 0xec, 0xa1, 0xc7, 0x69, 0xc8, 0x03, 0x20, 0xfe, 0xe3, 0xc3, 0xc0,
+ 0xf1, 0xdb, 0x3f, 0x42, 0xbe, 0x98, 0xd8, 0xa7, 0xd4, 0xf0, 0x89, 0x32, 0xfa, 0xf4, 0x9f, 0x0b,
+ 0x1c, 0xcb, 0x25, 0x4f, 0xac, 0x7f, 0xb9, 0x3d, 0x59, 0xe2, 0x34, 0x5a, 0x0a, 0x5b, 0xf2, 0x2e,
+ 0x0c, 0x2d, 0xce, 0x95, 0xc5, 0x43, 0x44, 0xee, 0x15, 0xf1, 0x44, 0x20, 0x45, 0x1f, 0x11, 0x88,
+ 0x04, 0xdf, 0xf7, 0xb4, 0xd7, 0xf5, 0xe4, 0x3b, 0xc4, 0x90, 0x0b, 0xd3, 0x16, 0xfe, 0x52, 0x48,
+ 0x9c, 0x2e, 0x04, 0xda, 0x12, 0x7d, 0x3f, 0x14, 0x97, 0x15, 0xc7, 0xc6, 0xb4, 0x65, 0xf0, 0x10,
+ 0xa3, 0x7b, 0x19, 0x26, 0xca, 0x9d, 0x4e, 0xcb, 0xa4, 0x06, 0xea, 0x8b, 0xd6, 0x6d, 0x51, 0x57,
+ 0xb8, 0xfc, 0xe0, 0xe3, 0x13, 0x9d, 0x23, 0xeb, 0xf8, 0xfc, 0xb5, 0xee, 0x74, 0xa3, 0xfe, 0x99,
+ 0xc9, 0xb2, 0xea, 0x9f, 0xcb, 0xc3, 0x85, 0x19, 0x87, 0xea, 0x1e, 0x5d, 0x9c, 0x2b, 0x97, 0xbb,
+ 0xe8, 0x23, 0xd7, 0x6a, 0x51, 0xab, 0x79, 0x3c, 0xc3, 0xfa, 0x4d, 0x18, 0x0b, 0x1a, 0x50, 0x6b,
+ 0xd8, 0x1d, 0x2a, 0x3f, 0xe4, 0x6a, 0xf8, 0x98, 0xba, 0xcb, 0x50, 0x5a, 0x8c, 0x94, 0xdc, 0x81,
+ 0xb3, 0x01, 0xa4, 0xdc, 0x6a, 0xd9, 0x9b, 0x1a, 0xed, 0xba, 0xdc, 0x11, 0x77, 0x90, 0x3b, 0xe2,
+ 0x86, 0x1c, 0x74, 0x86, 0xaf, 0x3b, 0x8c, 0x40, 0x4b, 0x2b, 0xa5, 0x7e, 0xbd, 0x00, 0x17, 0xef,
+ 0xe9, 0x2d, 0xd3, 0x08, 0x45, 0xa3, 0x51, 0xb7, 0x63, 0x5b, 0x2e, 0x3d, 0x41, 0xa3, 0x34, 0x32,
+ 0x14, 0x8a, 0x47, 0x32, 0x14, 0x92, 0x5d, 0xd4, 0x7f, 0xe8, 0x2e, 0x2a, 0x1d, 0xa8, 0x8b, 0xfe,
+ 0xb7, 0x1c, 0x8c, 0xfb, 0x0f, 0x0d, 0xe4, 0x47, 0xe3, 0x92, 0x17, 0x3c, 0x1e, 0x21, 0xc6, 0xfc,
+ 0xae, 0x11, 0x4f, 0x6a, 0x30, 0x30, 0xfb, 0xa8, 0x63, 0x3a, 0xd4, 0xdd, 0x83, 0xd3, 0xf8, 0x53,
+ 0xe2, 0xb8, 0x64, 0x82, 0xf2, 0x22, 0x89, 0x93, 0x12, 0x0e, 0xc6, 0xe7, 0x83, 0xfc, 0xa9, 0xc5,
+ 0xb4, 0xff, 0x12, 0x9e, 0x3f, 0x1f, 0x14, 0x4f, 0x32, 0x22, 0xef, 0x41, 0x43, 0x52, 0xf2, 0x1c,
+ 0x14, 0x56, 0x57, 0x17, 0xc4, 0x4c, 0x8a, 0x11, 0x08, 0x3c, 0x4f, 0x7e, 0x1f, 0xc9, 0xb0, 0xea,
+ 0x3f, 0xcd, 0x03, 0x30, 0x55, 0xe0, 0xc3, 0xf5, 0x58, 0x94, 0x70, 0x1a, 0x06, 0x7d, 0x81, 0x0b,
+ 0x35, 0x0c, 0x5e, 0x09, 0xc4, 0x3b, 0x22, 0x5e, 0x77, 0xf0, 0x22, 0x64, 0xd2, 0x77, 0x24, 0xe7,
+ 0xf7, 0x00, 0xb8, 0xb3, 0x41, 0x47, 0x72, 0xdf, 0x7d, 0xfc, 0x93, 0x30, 0x24, 0x66, 0x3c, 0x3b,
+ 0x72, 0xfe, 0xdf, 0xf0, 0x81, 0x5a, 0x88, 0x8f, 0x4d, 0xad, 0xa5, 0x43, 0x2c, 0xc4, 0xbe, 0x78,
+ 0x79, 0xaf, 0x9c, 0x8a, 0xf7, 0x88, 0xc5, 0xfb, 0x15, 0x21, 0x5e, 0xfe, 0x62, 0xe8, 0xc4, 0x8a,
+ 0xf7, 0xc8, 0xce, 0xbe, 0xd5, 0x7f, 0x94, 0x03, 0xc2, 0x9a, 0xb5, 0xa2, 0xbb, 0xee, 0xa6, 0xed,
+ 0x18, 0xdc, 0x39, 0xfd, 0x58, 0x04, 0x73, 0x74, 0xf7, 0x95, 0xdf, 0x1a, 0x84, 0xb3, 0x11, 0xc7,
+ 0xdf, 0x13, 0x3e, 0x59, 0x5d, 0x8b, 0x8e, 0xa6, 0x5e, 0xaf, 0x5e, 0x3e, 0x26, 0x5f, 0x88, 0xf6,
+ 0x47, 0x1e, 0xbc, 0x49, 0x37, 0xa1, 0x2f, 0xc2, 0x88, 0xf8, 0xc1, 0x56, 0x68, 0xff, 0xa6, 0x0b,
+ 0x47, 0xa9, 0xcb, 0x00, 0x5a, 0x04, 0x4d, 0x5e, 0x81, 0x21, 0x36, 0x60, 0x9a, 0x18, 0xac, 0x64,
+ 0x20, 0x7c, 0x51, 0x62, 0xf8, 0x40, 0x79, 0x3d, 0x09, 0x28, 0xa5, 0x77, 0x4b, 0x83, 0x7b, 0x78,
+ 0xb7, 0xf4, 0x45, 0x18, 0x2e, 0x5b, 0x96, 0xed, 0xe1, 0x26, 0xdd, 0x15, 0x57, 0x13, 0x99, 0x56,
+ 0xf9, 0x73, 0xf8, 0x18, 0x3f, 0xa4, 0x4f, 0x35, 0xcb, 0x65, 0x86, 0xe4, 0x86, 0xff, 0x2a, 0x86,
+ 0x3a, 0xc2, 0xab, 0x1c, 0xaf, 0x67, 0x1c, 0x01, 0x4b, 0x3e, 0x8a, 0xc1, 0xce, 0x1b, 0x5d, 0x71,
+ 0xec, 0x8e, 0xed, 0x52, 0x83, 0x0b, 0x6a, 0x38, 0x0c, 0x6d, 0xd0, 0x11, 0x08, 0x7c, 0x37, 0x17,
+ 0x09, 0x1c, 0x12, 0x29, 0x42, 0xd6, 0xe1, 0x9c, 0x7f, 0x51, 0x1c, 0xbc, 0x50, 0xac, 0x56, 0x5c,
+ 0x65, 0x04, 0x5f, 0x25, 0x91, 0xb8, 0x32, 0x54, 0x2b, 0xd3, 0x4f, 0xfb, 0xd7, 0x22, 0xfe, 0x13,
+ 0xc7, 0xba, 0x69, 0xc8, 0x5d, 0x9d, 0xca, 0x8f, 0xfc, 0x10, 0x0c, 0x2f, 0xea, 0x8f, 0x2a, 0x5d,
+ 0x71, 0xf6, 0x32, 0xba, 0xf7, 0xdb, 0x97, 0xb6, 0xfe, 0xa8, 0x6e, 0x88, 0x72, 0x31, 0x9b, 0x42,
+ 0x66, 0x49, 0xea, 0x70, 0x61, 0xc5, 0xb1, 0xdb, 0xb6, 0x47, 0x8d, 0xd8, 0x63, 0xbf, 0x33, 0xe1,
+ 0xeb, 0xe0, 0x8e, 0xa0, 0xa8, 0xf7, 0x78, 0xf5, 0x97, 0xc1, 0x86, 0xb4, 0xe1, 0x4c, 0xd9, 0x75,
+ 0xbb, 0x6d, 0x1a, 0xde, 0x50, 0x8d, 0xef, 0xfa, 0x19, 0x9f, 0x10, 0x5e, 0xcb, 0x4f, 0xea, 0x58,
+ 0x94, 0x5f, 0x50, 0xd5, 0x3d, 0x53, 0xae, 0x11, 0xbf, 0x25, 0xce, 0xfb, 0x76, 0x71, 0x70, 0x6c,
+ 0xfc, 0x8c, 0x76, 0x31, 0xd9, 0x98, 0x55, 0xd3, 0x6b, 0x51, 0xf5, 0x9b, 0x39, 0x80, 0x50, 0xc0,
+ 0xe4, 0xc5, 0x68, 0x44, 0xa4, 0x5c, 0x78, 0xd1, 0x21, 0xa2, 0x25, 0x44, 0x42, 0x20, 0x91, 0xcb,
+ 0x50, 0xc4, 0x88, 0x1a, 0xf9, 0xf0, 0x60, 0xf5, 0x81, 0x69, 0x19, 0x1a, 0x42, 0x19, 0x56, 0x7a,
+ 0xfa, 0x8e, 0x58, 0xbc, 0xd4, 0xe7, 0x56, 0x61, 0x05, 0xce, 0xd4, 0xba, 0x6b, 0x7e, 0xdd, 0xd2,
+ 0x3b, 0x3e, 0x0c, 0xec, 0xe1, 0x76, 0xd7, 0x82, 0xc7, 0xaf, 0x91, 0xb0, 0x29, 0xd1, 0x22, 0xea,
+ 0xaf, 0xe6, 0x62, 0xb3, 0xe0, 0x31, 0x2e, 0x7a, 0x1f, 0x4b, 0xfa, 0x69, 0x24, 0xa7, 0x25, 0xf5,
+ 0x2f, 0xe7, 0x61, 0x78, 0xc5, 0x76, 0x3c, 0x11, 0xa2, 0xe4, 0x64, 0xaf, 0x42, 0xd2, 0x5e, 0xa9,
+ 0xb8, 0x8f, 0xbd, 0xd2, 0x65, 0x28, 0x4a, 0x2e, 0xca, 0xfc, 0x5e, 0xc4, 0x30, 0x1c, 0x0d, 0xa1,
+ 0xea, 0x8f, 0xe4, 0x01, 0x3e, 0xf7, 0xd2, 0x4b, 0x8f, 0xb1, 0x80, 0xd4, 0xbf, 0x98, 0x83, 0x33,
+ 0xe2, 0xa2, 0x4e, 0x8a, 0x2d, 0x36, 0xe0, 0x5f, 0xb1, 0xca, 0xe3, 0x92, 0x83, 0x34, 0x1f, 0xc7,
+ 0x96, 0x80, 0xd9, 0x47, 0xa6, 0x87, 0x77, 0x15, 0x52, 0x70, 0x31, 0x2a, 0x60, 0xf2, 0x12, 0xe0,
+ 0xd3, 0x91, 0x17, 0xfd, 0x2b, 0xc8, 0x42, 0xb8, 0xee, 0xb1, 0x02, 0xb3, 0xa9, 0xd7, 0x90, 0xea,
+ 0x6f, 0x14, 0xa1, 0x38, 0xfb, 0x88, 0x36, 0x4e, 0x78, 0xd7, 0x48, 0x07, 0x9b, 0xc5, 0x43, 0x1e,
+ 0x6c, 0x1e, 0xc4, 0xa7, 0xe2, 0x9d, 0xb0, 0x3f, 0x4b, 0xd1, 0xea, 0x63, 0x3d, 0x1f, 0xaf, 0xde,
+ 0xef, 0xe9, 0x93, 0xe7, 0x92, 0xf3, 0x5f, 0x16, 0xa0, 0x50, 0x9b, 0x59, 0x39, 0xd5, 0x9b, 0x63,
+ 0xd5, 0x9b, 0xde, 0x77, 0xd6, 0x6a, 0x70, 0x0d, 0x35, 0x18, 0x7a, 0x89, 0xc6, 0x6e, 0x9c, 0xbe,
+ 0x5b, 0x80, 0xb1, 0xda, 0xdc, 0xea, 0x8a, 0x74, 0x12, 0x7c, 0x87, 0x7b, 0xf2, 0xa1, 0x4f, 0x19,
+ 0xef, 0xd2, 0xcb, 0x09, 0x7b, 0xe6, 0x6e, 0xd5, 0xf2, 0x5e, 0xbd, 0x79, 0x4f, 0x6f, 0x75, 0x29,
+ 0x1e, 0xbd, 0x70, 0xbf, 0x5f, 0xd7, 0xfc, 0x80, 0x7e, 0x1d, 0x03, 0x0d, 0xf8, 0x0c, 0xc8, 0x9b,
+ 0x50, 0xb8, 0x2b, 0x3c, 0x32, 0xb2, 0xf8, 0xbc, 0x7c, 0x83, 0xf3, 0x61, 0x93, 0x60, 0xa1, 0x6b,
+ 0x1a, 0xc8, 0x81, 0x95, 0x62, 0x85, 0x6f, 0x89, 0x05, 0x78, 0x4f, 0x85, 0x9b, 0x7e, 0xe1, 0x5b,
+ 0xd5, 0x0a, 0xa9, 0xc1, 0xf0, 0x0a, 0x75, 0xda, 0x26, 0x76, 0x94, 0x3f, 0x67, 0xf7, 0x66, 0xc2,
+ 0x76, 0x2a, 0xc3, 0x9d, 0xb0, 0x10, 0x32, 0x93, 0xb9, 0x90, 0xf7, 0x00, 0xb8, 0x8d, 0xb2, 0xc7,
+ 0x78, 0x95, 0x4f, 0xa1, 0xdd, 0xcf, 0x4d, 0xcb, 0x14, 0x1b, 0x4f, 0x62, 0x46, 0x1e, 0xc0, 0xf8,
+ 0xa2, 0x6d, 0x98, 0xeb, 0x26, 0x77, 0xbd, 0xc4, 0x0a, 0x4a, 0xbb, 0x3b, 0x3c, 0x31, 0x53, 0xb2,
+ 0x2d, 0x95, 0x4b, 0xab, 0x26, 0xc1, 0x58, 0xfd, 0xbb, 0xfd, 0x50, 0x64, 0xdd, 0x7e, 0x3a, 0x7e,
+ 0x0f, 0x33, 0x7e, 0xcb, 0x30, 0x7e, 0xdf, 0x76, 0x1e, 0x98, 0x56, 0x33, 0xf0, 0x8a, 0x17, 0x7b,
+ 0x53, 0xf4, 0xe4, 0xd9, 0xe4, 0xb8, 0x7a, 0xe0, 0x40, 0xaf, 0x25, 0xc8, 0x77, 0x19, 0xc1, 0xaf,
+ 0x03, 0xf0, 0xb7, 0xee, 0x48, 0x33, 0x18, 0x06, 0xc7, 0xe0, 0x2f, 0xe1, 0xd1, 0xd1, 0x5e, 0x0e,
+ 0x8e, 0x11, 0x12, 0xb3, 0x4d, 0x38, 0xf7, 0x85, 0x18, 0x42, 0xbf, 0x7b, 0xdc, 0x84, 0xa3, 0x2f,
+ 0x84, 0x6c, 0x04, 0x70, 0xaf, 0x88, 0x15, 0x00, 0xe9, 0x7e, 0x09, 0x62, 0x82, 0x88, 0x4c, 0x0e,
+ 0x22, 0x1c, 0x5d, 0xca, 0xf5, 0x92, 0x26, 0xf1, 0x20, 0xaf, 0xc6, 0x2e, 0xc0, 0x49, 0x84, 0x5b,
+ 0xe6, 0xfd, 0x77, 0xe8, 0x40, 0x35, 0xb2, 0x9b, 0x03, 0x95, 0xfa, 0x37, 0x0b, 0x30, 0xcc, 0xb8,
+ 0xd5, 0xba, 0xed, 0xb6, 0xee, 0x6c, 0x9d, 0x2a, 0xf2, 0x61, 0x14, 0xb9, 0x0e, 0x13, 0xb2, 0xc3,
+ 0x3c, 0x33, 0x5d, 0xfd, 0xd0, 0x46, 0xc1, 0xf1, 0x4f, 0x9c, 0x80, 0xdb, 0x96, 0x38, 0xef, 0x7b,
+ 0x02, 0x8c, 0x67, 0x0b, 0xae, 0x96, 0xe4, 0xa5, 0xfe, 0x6c, 0x0e, 0xc6, 0xe3, 0xd0, 0x40, 0xf7,
+ 0x73, 0xa9, 0xba, 0xff, 0x02, 0x0c, 0x89, 0x2b, 0x74, 0xdd, 0x10, 0x1e, 0x7d, 0x63, 0x3b, 0xdb,
+ 0x93, 0x80, 0xef, 0x97, 0xeb, 0x0e, 0xd5, 0x0d, 0x2d, 0x24, 0x20, 0xaf, 0xc0, 0x08, 0xfe, 0xb8,
+ 0xef, 0x98, 0x9e, 0x47, 0x79, 0x67, 0x14, 0xf9, 0xad, 0x00, 0x2f, 0xb0, 0xc9, 0x11, 0x5a, 0x84,
+ 0x4c, 0xfd, 0x72, 0x1e, 0x86, 0x6a, 0xdd, 0x35, 0x77, 0xcb, 0xf5, 0x68, 0xfb, 0x84, 0xeb, 0x90,
+ 0xbf, 0x49, 0x2f, 0xa6, 0x6e, 0xd2, 0x9f, 0xf3, 0x87, 0x96, 0x74, 0x7a, 0x1d, 0x6c, 0x0c, 0xfc,
+ 0x41, 0xf5, 0xb7, 0xf3, 0x30, 0xce, 0xaf, 0x5f, 0x2b, 0xa6, 0xdb, 0x38, 0x82, 0x27, 0x21, 0xc7,
+ 0x2f, 0x95, 0xc3, 0xb9, 0x2c, 0xec, 0xe1, 0xa1, 0x8d, 0xfa, 0xa5, 0x3c, 0x0c, 0x97, 0xbb, 0xde,
+ 0x46, 0xd9, 0xc3, 0x19, 0xea, 0xb1, 0xdc, 0xe5, 0xfe, 0x83, 0x1c, 0x9c, 0x61, 0x0d, 0x59, 0xb5,
+ 0x1f, 0x50, 0xeb, 0x08, 0x8e, 0xaf, 0xe5, 0x63, 0xe8, 0xfc, 0x01, 0x8f, 0xa1, 0x7d, 0x59, 0x16,
+ 0xf6, 0x27, 0x4b, 0xbc, 0x74, 0xd1, 0xec, 0x16, 0x3d, 0xd9, 0x9f, 0x71, 0x84, 0x97, 0x2e, 0xbe,
+ 0x40, 0x8e, 0xe0, 0x92, 0xef, 0xfb, 0x4b, 0x20, 0x47, 0x70, 0x42, 0xf9, 0xfd, 0x21, 0x90, 0x6f,
+ 0xe5, 0x60, 0x68, 0xda, 0xf6, 0x4e, 0xf8, 0xc0, 0x17, 0x5f, 0x71, 0xb2, 0xd5, 0xdc, 0xff, 0x8a,
+ 0x93, 0xad, 0x9b, 0xea, 0xcf, 0xe7, 0xe1, 0x9c, 0x88, 0x68, 0x2f, 0x4e, 0xb1, 0x4e, 0xa7, 0x63,
+ 0x31, 0xd8, 0x92, 0xa2, 0x39, 0x9d, 0x87, 0x84, 0x68, 0x7e, 0xb1, 0x00, 0xe7, 0x30, 0x00, 0x2f,
+ 0xdb, 0x13, 0x7d, 0x1f, 0xd8, 0x22, 0xa4, 0x11, 0xbd, 0x4a, 0x5f, 0x4c, 0xb9, 0x4a, 0xff, 0x97,
+ 0xdb, 0x93, 0xaf, 0x36, 0x4d, 0x6f, 0xa3, 0xbb, 0x36, 0xd5, 0xb0, 0xdb, 0xd7, 0x9b, 0x8e, 0xfe,
+ 0xd0, 0xe4, 0x97, 0xc8, 0x7a, 0xeb, 0x7a, 0x98, 0x68, 0xa6, 0x63, 0x8a, 0xb4, 0x31, 0x35, 0xdc,
+ 0xeb, 0x30, 0xae, 0xfe, 0x25, 0xbc, 0x0b, 0x70, 0xdb, 0x36, 0x2d, 0xe1, 0x99, 0xca, 0x0d, 0xdd,
+ 0xda, 0xce, 0xf6, 0xe4, 0xf9, 0xf7, 0x6d, 0xd3, 0xaa, 0xc7, 0xdd, 0x53, 0xf7, 0x5b, 0x5f, 0xc8,
+ 0x5a, 0x93, 0xaa, 0x51, 0xff, 0xdb, 0x1c, 0x3c, 0x11, 0xd5, 0xe2, 0xef, 0x07, 0xdb, 0xf1, 0xcf,
+ 0xe7, 0xe1, 0xfc, 0x2d, 0x14, 0x4e, 0xe0, 0x0e, 0x74, 0x3a, 0x6f, 0x89, 0xc1, 0x99, 0x22, 0x9b,
+ 0x53, 0x8b, 0x32, 0x5b, 0x36, 0xa7, 0x93, 0xba, 0x90, 0xcd, 0x7f, 0x93, 0x83, 0xb3, 0xcb, 0xd5,
+ 0xca, 0xcc, 0xf7, 0xc9, 0x88, 0x4a, 0x7e, 0xcf, 0x09, 0x37, 0x38, 0x13, 0xdf, 0x73, 0xc2, 0x4d,
+ 0xcf, 0xaf, 0xe5, 0xe1, 0x6c, 0xad, 0xbc, 0xb8, 0xf0, 0xfd, 0x32, 0x83, 0xcf, 0xc8, 0xbe, 0xab,
+ 0xfe, 0x21, 0x98, 0xb0, 0x05, 0xe4, 0xcf, 0xbc, 0x77, 0x23, 0xdb, 0xa7, 0x35, 0x29, 0x94, 0x13,
+ 0x3e, 0x75, 0x1f, 0x89, 0x50, 0x98, 0xe6, 0x47, 0xa8, 0x4f, 0xb8, 0xe6, 0xff, 0x17, 0x25, 0x18,
+ 0xbe, 0xd3, 0x5d, 0xa3, 0xc2, 0xc5, 0xe9, 0xb1, 0x3e, 0xf9, 0xbd, 0x01, 0xc3, 0x42, 0x0c, 0x78,
+ 0x47, 0x21, 0x85, 0x60, 0x14, 0x21, 0x75, 0x78, 0x94, 0x2b, 0x99, 0x88, 0x5c, 0x86, 0xe2, 0x3d,
+ 0xea, 0xac, 0xc9, 0xaf, 0x93, 0x1f, 0x52, 0x67, 0x4d, 0x43, 0x28, 0x59, 0x08, 0x1f, 0x5e, 0x94,
+ 0x57, 0xaa, 0x98, 0xfe, 0x47, 0x5c, 0xfb, 0x61, 0x3e, 0xa3, 0xc0, 0x7b, 0x52, 0xef, 0x98, 0x3c,
+ 0x71, 0x90, 0x1c, 0x19, 0x21, 0x5e, 0x92, 0x2c, 0xc1, 0x84, 0xec, 0x3e, 0xc7, 0x73, 0xdf, 0x0c,
+ 0xa6, 0xb0, 0x4b, 0xcb, 0x7a, 0x93, 0x2c, 0x4a, 0xde, 0x81, 0x11, 0x1f, 0x88, 0x8e, 0x80, 0x43,
+ 0x61, 0xc2, 0x85, 0x80, 0x55, 0x2c, 0x3e, 0x7e, 0xa4, 0x80, 0xcc, 0x00, 0xaf, 0x21, 0x20, 0x85,
+ 0x41, 0xcc, 0xb1, 0x32, 0x52, 0x80, 0xbc, 0x82, 0x0c, 0xf0, 0xb1, 0x10, 0xba, 0x3c, 0x0d, 0xe3,
+ 0xd3, 0x5d, 0xbc, 0xc2, 0x71, 0x04, 0x9c, 0x3f, 0xd0, 0x8e, 0x90, 0x91, 0x65, 0x80, 0xd0, 0x35,
+ 0x45, 0x84, 0xc1, 0xd8, 0xb7, 0xd3, 0x8c, 0xc4, 0x42, 0xbe, 0x8b, 0x1b, 0x3d, 0xc8, 0x5d, 0x9c,
+ 0xfa, 0x87, 0x79, 0x18, 0x2e, 0x77, 0x3a, 0xc1, 0x50, 0x78, 0x11, 0x4a, 0xe5, 0x4e, 0xe7, 0xae,
+ 0x56, 0x95, 0x03, 0xe2, 0xeb, 0x9d, 0x4e, 0xbd, 0xeb, 0x98, 0xb2, 0x67, 0x31, 0x27, 0x22, 0x33,
+ 0x30, 0x5a, 0xee, 0x74, 0x56, 0xba, 0x6b, 0x2d, 0xb3, 0x21, 0xe5, 0xf3, 0xe2, 0x19, 0x0f, 0x3b,
+ 0x9d, 0x7a, 0x07, 0x31, 0xf1, 0xa4, 0x6e, 0xd1, 0x32, 0xe4, 0x8b, 0x18, 0x3c, 0x4a, 0xa4, 0x93,
+ 0xe2, 0x09, 0x6b, 0xd4, 0x20, 0x14, 0x7e, 0xd8, 0xb6, 0xa9, 0x80, 0x88, 0xa7, 0x0c, 0xb8, 0xec,
+ 0x27, 0x7a, 0x60, 0x15, 0x25, 0xd2, 0x46, 0x85, 0x2c, 0xc9, 0xa7, 0x60, 0xa0, 0xdc, 0xe9, 0x48,
+ 0xf7, 0x4d, 0xe8, 0x9a, 0xc6, 0x4a, 0xc5, 0x33, 0xf6, 0x09, 0xb2, 0x4b, 0x6f, 0xc1, 0x58, 0xb4,
+ 0xb2, 0x7d, 0xa5, 0x1c, 0xf8, 0x5e, 0x0e, 0x3f, 0xe8, 0x84, 0x7b, 0xc6, 0xbf, 0x0c, 0x85, 0x72,
+ 0xa7, 0x23, 0xe6, 0xa3, 0xb3, 0x29, 0xfd, 0x11, 0x7f, 0x48, 0x5f, 0xee, 0x74, 0xfc, 0x4f, 0x3f,
+ 0xe1, 0x4f, 0x6c, 0x0e, 0xf4, 0xe9, 0xdf, 0xe2, 0x9f, 0x7e, 0xb2, 0x9f, 0xbf, 0xa8, 0xbf, 0x51,
+ 0x80, 0x33, 0xe5, 0x4e, 0xe7, 0x34, 0x55, 0xc1, 0x51, 0x3d, 0xd7, 0x7f, 0x09, 0x40, 0x9a, 0x1e,
+ 0x07, 0x82, 0x07, 0x80, 0xc3, 0xd2, 0xd4, 0xa8, 0xe4, 0x34, 0x89, 0xc8, 0x57, 0xbf, 0xc1, 0x7d,
+ 0xa9, 0xdf, 0x97, 0x0a, 0x38, 0x15, 0x9f, 0xf4, 0xd0, 0x63, 0x1f, 0x95, 0x6e, 0x13, 0x7d, 0x50,
+ 0xda, 0x57, 0x1f, 0xfc, 0xfd, 0xc8, 0xe0, 0xc1, 0xd0, 0xf7, 0xa7, 0xbd, 0xd0, 0x7f, 0x28, 0xb3,
+ 0x78, 0x4c, 0x16, 0xa6, 0x88, 0x87, 0xe4, 0xa7, 0xff, 0x12, 0xd1, 0xb9, 0x1a, 0x0c, 0x55, 0x37,
+ 0x0d, 0x2d, 0x46, 0xeb, 0xf7, 0xe1, 0xc0, 0xbe, 0xfa, 0x70, 0x3b, 0x8f, 0x2f, 0xf0, 0x83, 0xe8,
+ 0x5e, 0x87, 0xdf, 0x5d, 0x5c, 0x07, 0xe0, 0x9e, 0x07, 0x81, 0x73, 0xfc, 0x28, 0x0f, 0xe4, 0xc3,
+ 0xb3, 0x82, 0x89, 0x40, 0x3e, 0x21, 0x49, 0xe0, 0x6b, 0x54, 0x48, 0xf5, 0x35, 0xba, 0x06, 0x83,
+ 0x9a, 0xbe, 0xf9, 0x6e, 0x97, 0x3a, 0x5b, 0xc2, 0x9c, 0xe1, 0xc1, 0x33, 0xf5, 0xcd, 0xfa, 0x0f,
+ 0x33, 0xa0, 0x16, 0xa0, 0x89, 0x1a, 0x84, 0x70, 0x90, 0x3c, 0x42, 0xf8, 0x19, 0x79, 0x10, 0xb8,
+ 0xe1, 0x20, 0x8a, 0x4e, 0xde, 0x80, 0x42, 0xf9, 0x7e, 0x4d, 0x48, 0x36, 0xe8, 0xda, 0xf2, 0xfd,
+ 0x9a, 0x90, 0x57, 0x66, 0xd9, 0xfb, 0x35, 0xf5, 0x4b, 0x79, 0x20, 0x49, 0x4a, 0xf2, 0x2a, 0x0c,
+ 0x21, 0xb4, 0xc9, 0x74, 0x46, 0x4e, 0x27, 0xbb, 0xe9, 0xd6, 0x1d, 0x84, 0x46, 0x8c, 0x3b, 0x9f,
+ 0x94, 0xbc, 0x8e, 0x09, 0xbb, 0x45, 0x42, 0xc3, 0x48, 0x3a, 0xd9, 0x4d, 0xd7, 0x4f, 0x71, 0x1d,
+ 0xcb, 0xd7, 0x2d, 0x88, 0xd1, 0x2e, 0xbc, 0x5f, 0x9b, 0xb7, 0x5d, 0x4f, 0x88, 0x9a, 0xdb, 0x85,
+ 0x9b, 0x2e, 0xe6, 0x31, 0x8e, 0xd8, 0x85, 0x9c, 0x0c, 0x73, 0xb1, 0xdd, 0xaf, 0xf1, 0xc7, 0x4e,
+ 0x86, 0x66, 0xb7, 0x7c, 0x83, 0x92, 0xe7, 0x62, 0xdb, 0x74, 0xeb, 0xfc, 0xa1, 0x94, 0x81, 0x99,
+ 0xc2, 0x23, 0xb9, 0xd8, 0x22, 0xa5, 0xd4, 0x9f, 0x1e, 0x84, 0xf1, 0x8a, 0xee, 0xe9, 0x6b, 0xba,
+ 0x4b, 0xa5, 0xdd, 0xf4, 0x19, 0x1f, 0xe6, 0x7f, 0x8e, 0x24, 0x07, 0x63, 0x2d, 0xe5, 0x6b, 0xe2,
+ 0x05, 0xc8, 0x9b, 0x21, 0xdf, 0x20, 0x53, 0xae, 0x9c, 0x7a, 0x6f, 0xad, 0xde, 0x11, 0x60, 0x2d,
+ 0x41, 0x48, 0x5e, 0x80, 0x61, 0x1f, 0xc6, 0x36, 0x00, 0x85, 0x50, 0x67, 0x8c, 0x35, 0x66, 0xff,
+ 0x6b, 0x32, 0x9a, 0xbc, 0x0e, 0x23, 0xfe, 0x4f, 0xc9, 0xb4, 0xe6, 0x79, 0x04, 0xd7, 0x12, 0xbb,
+ 0x27, 0x99, 0x54, 0x2e, 0x8a, 0xf3, 0x5b, 0x7f, 0xa4, 0x68, 0x2c, 0x55, 0x5f, 0x84, 0x94, 0xfc,
+ 0x30, 0x8c, 0xf9, 0xbf, 0xc5, 0x86, 0x81, 0xbb, 0xfe, 0xbd, 0x10, 0x24, 0x22, 0x8f, 0x89, 0x75,
+ 0x2a, 0x4a, 0xce, 0xb7, 0x0e, 0x4f, 0xfa, 0xd9, 0xe7, 0x8c, 0xb5, 0xe4, 0xce, 0x21, 0x56, 0x01,
+ 0xa9, 0xc2, 0x84, 0x0f, 0x09, 0x35, 0x74, 0x20, 0xdc, 0x31, 0x1a, 0x6b, 0xf5, 0x54, 0x25, 0x4d,
+ 0x96, 0x22, 0x2d, 0xb8, 0x1c, 0x01, 0x1a, 0xee, 0x86, 0xb9, 0xee, 0x89, 0xed, 0x9e, 0x88, 0x64,
+ 0x2d, 0xd2, 0x8d, 0x06, 0x5c, 0x39, 0x8d, 0x9f, 0x37, 0x38, 0x9a, 0x63, 0xac, 0x27, 0x37, 0x52,
+ 0x83, 0x73, 0x3e, 0xfe, 0xd6, 0xcc, 0xca, 0x8a, 0x63, 0xbf, 0x4f, 0x1b, 0x5e, 0xb5, 0x22, 0xb6,
+ 0xcb, 0x18, 0xe1, 0xd0, 0x58, 0xab, 0x37, 0x1b, 0x1d, 0xa6, 0x14, 0x0c, 0x17, 0x65, 0x9e, 0x5a,
+ 0x98, 0xdc, 0x83, 0xf3, 0x12, 0x5c, 0x4a, 0x6a, 0x0e, 0xe1, 0x7e, 0x5e, 0x70, 0x4d, 0xcf, 0x6b,
+ 0x9e, 0x5e, 0x9c, 0xbc, 0x05, 0xa3, 0x3e, 0x82, 0xdf, 0x22, 0x0e, 0xe3, 0x2d, 0x22, 0x0e, 0x49,
+ 0x63, 0xad, 0x1e, 0x7f, 0x93, 0x1b, 0x25, 0x96, 0x35, 0x6a, 0x75, 0xab, 0x43, 0x85, 0x4f, 0xae,
+ 0xaf, 0x51, 0xde, 0x56, 0x27, 0x55, 0x19, 0x19, 0x29, 0x79, 0x27, 0xd4, 0xa8, 0x65, 0xc7, 0x6c,
+ 0x9a, 0x7c, 0x27, 0xed, 0x3f, 0xc3, 0x5d, 0xab, 0xdb, 0x08, 0x4c, 0xd3, 0x0f, 0x4e, 0x7e, 0xa9,
+ 0x0c, 0x67, 0x53, 0x74, 0x6c, 0x5f, 0x3b, 0xc6, 0x2f, 0xe7, 0xc3, 0x46, 0x9c, 0xf0, 0x6d, 0xe3,
+ 0x34, 0x0c, 0xfa, 0x5f, 0x22, 0x8c, 0x07, 0x25, 0x6b, 0x68, 0xc6, 0x79, 0xf8, 0xf8, 0x88, 0x38,
+ 0x4e, 0xf8, 0x56, 0xf2, 0x28, 0xc4, 0xf1, 0xed, 0x5c, 0x28, 0x8e, 0x13, 0xbe, 0xbd, 0xfc, 0xa9,
+ 0x62, 0x38, 0x27, 0x9d, 0xee, 0x31, 0x8f, 0xca, 0x4c, 0x0e, 0xfd, 0x60, 0x4b, 0xfb, 0x78, 0x0e,
+ 0x2b, 0xab, 0xe6, 0xc0, 0xc1, 0x54, 0x93, 0xbc, 0x05, 0xc3, 0x2b, 0xb6, 0xeb, 0x35, 0x1d, 0xea,
+ 0xae, 0x04, 0x99, 0x18, 0xf0, 0x29, 0x75, 0x47, 0x80, 0xeb, 0x9d, 0xc8, 0xec, 0x2f, 0x93, 0xab,
+ 0xff, 0xb8, 0x90, 0xd0, 0x06, 0x6e, 0xb8, 0x9e, 0x48, 0x6d, 0x38, 0x82, 0xa1, 0x4e, 0x6e, 0x84,
+ 0xab, 0x20, 0xb7, 0xf0, 0xfb, 0xa5, 0x30, 0x93, 0x6b, 0xc2, 0xc0, 0x8f, 0x92, 0x90, 0x1f, 0x80,
+ 0x8b, 0x11, 0xc0, 0x8a, 0xee, 0xe8, 0x6d, 0xea, 0x85, 0x59, 0x2f, 0x31, 0x70, 0x98, 0x5f, 0xba,
+ 0xde, 0x09, 0xd0, 0x72, 0x26, 0xcd, 0x0c, 0x0e, 0x92, 0x6a, 0x0d, 0xec, 0xc3, 0xc5, 0xfa, 0xe7,
+ 0x0a, 0xa1, 0xa1, 0x13, 0x0d, 0x00, 0xac, 0x51, 0xb7, 0xdb, 0xf2, 0x1e, 0xdf, 0x0e, 0x3e, 0x58,
+ 0x7a, 0x95, 0x79, 0x38, 0x53, 0x5e, 0x5f, 0xa7, 0x0d, 0xcf, 0x8f, 0x6b, 0xee, 0x8a, 0x90, 0x8f,
+ 0x7c, 0xe3, 0x21, 0x50, 0x22, 0x4e, 0xb5, 0xdc, 0xaf, 0xf1, 0x62, 0xea, 0x3f, 0x29, 0x82, 0x12,
+ 0x18, 0xfe, 0xc1, 0x63, 0xc1, 0x63, 0x5c, 0x64, 0x3f, 0x12, 0xbd, 0x62, 0xc2, 0x44, 0x28, 0x0c,
+ 0xf1, 0x4a, 0x4b, 0xe4, 0x61, 0x9f, 0x8c, 0x33, 0x0b, 0x09, 0xf9, 0x5e, 0xe2, 0x92, 0xd8, 0x4b,
+ 0x90, 0xf0, 0x31, 0x66, 0xdd, 0xe5, 0x2c, 0xb4, 0x24, 0x57, 0xf2, 0x95, 0x1c, 0x9c, 0xf3, 0x3b,
+ 0x65, 0x79, 0x8d, 0x19, 0xd5, 0x33, 0x76, 0xd7, 0x0a, 0x9e, 0x30, 0xbd, 0x91, 0x5d, 0x1d, 0xef,
+ 0xa4, 0xa9, 0xb4, 0xc2, 0xbc, 0x25, 0x41, 0x70, 0x93, 0x40, 0x21, 0x6c, 0xa4, 0xa9, 0x37, 0x90,
+ 0x48, 0x4b, 0xad, 0xf7, 0xd2, 0x2d, 0x78, 0x22, 0x93, 0xe5, 0x6e, 0x46, 0x6c, 0xbf, 0x6c, 0xc4,
+ 0xfe, 0xf7, 0xb9, 0x70, 0x22, 0x8a, 0x09, 0x89, 0x4c, 0x01, 0x84, 0x20, 0xb1, 0xad, 0xc5, 0x17,
+ 0x52, 0xa1, 0xd0, 0x34, 0x89, 0x82, 0x2c, 0x43, 0x49, 0x88, 0x85, 0x67, 0x98, 0xfe, 0xe4, 0x2e,
+ 0xbd, 0x30, 0x25, 0xcb, 0x01, 0xb7, 0xac, 0xe2, 0x9b, 0x05, 0x9b, 0x4b, 0xaf, 0xc3, 0xf0, 0x41,
+ 0xbf, 0xeb, 0x2b, 0x05, 0x20, 0xf2, 0x1e, 0xf4, 0x18, 0x0d, 0xf4, 0x13, 0x3c, 0x85, 0x5d, 0x85,
+ 0x41, 0xf6, 0x09, 0x98, 0x73, 0x45, 0x8a, 0xb1, 0xdc, 0x15, 0x30, 0x2d, 0xc0, 0x86, 0x01, 0xce,
+ 0x06, 0xd2, 0x03, 0x9c, 0xa9, 0x3f, 0x5b, 0x80, 0x0b, 0x72, 0x87, 0x54, 0x28, 0xa6, 0x6d, 0x38,
+ 0xed, 0x94, 0x0f, 0xb1, 0x53, 0x54, 0x28, 0xf1, 0xad, 0x87, 0xc8, 0x9f, 0xc1, 0x8f, 0x85, 0x10,
+ 0xa2, 0x09, 0x8c, 0xfa, 0xbf, 0xe4, 0x61, 0x34, 0x30, 0xef, 0x74, 0xc7, 0x7d, 0x8c, 0xbb, 0xe3,
+ 0xd3, 0x30, 0x8a, 0x21, 0xaa, 0xda, 0xd4, 0xe2, 0x61, 0x9c, 0xfa, 0xa5, 0x84, 0x37, 0x3e, 0x42,
+ 0xe4, 0x36, 0x8b, 0x10, 0x32, 0xed, 0xe7, 0x96, 0x9f, 0x14, 0x38, 0x8c, 0x9b, 0x7d, 0x1c, 0xae,
+ 0xfe, 0x95, 0x02, 0x8c, 0xf8, 0x52, 0x9e, 0x36, 0x4f, 0xea, 0x3d, 0xcf, 0xf1, 0x0a, 0xf9, 0x3a,
+ 0xc0, 0x8a, 0xed, 0x78, 0x7a, 0x6b, 0x29, 0xd4, 0x7c, 0x3c, 0x20, 0xed, 0x20, 0x94, 0x97, 0x91,
+ 0x48, 0x70, 0xfd, 0x0a, 0xcd, 0x6a, 0x3e, 0x31, 0xf1, 0xf5, 0x2b, 0x80, 0x6a, 0x12, 0x85, 0xfa,
+ 0x3b, 0x79, 0x38, 0xe3, 0x77, 0xd2, 0xec, 0x23, 0xda, 0xe8, 0x3e, 0xce, 0x73, 0x53, 0x54, 0xda,
+ 0xfd, 0xbb, 0x4a, 0x5b, 0xfd, 0xbf, 0xa4, 0x89, 0x64, 0xa6, 0x65, 0x9f, 0x4e, 0x24, 0x7f, 0x12,
+ 0x3a, 0xae, 0xfe, 0x58, 0x01, 0xce, 0xf9, 0x52, 0x9f, 0xeb, 0x5a, 0x78, 0xb4, 0x30, 0xa3, 0xb7,
+ 0x5a, 0x8f, 0xf3, 0x6e, 0x7c, 0xd8, 0x17, 0xc4, 0xb2, 0x88, 0xf9, 0x28, 0xf2, 0x4c, 0xae, 0x0b,
+ 0x70, 0xdd, 0x36, 0x0d, 0x4d, 0x26, 0x22, 0xef, 0xc0, 0x88, 0xff, 0xb3, 0xec, 0x34, 0xfd, 0x2d,
+ 0x38, 0x5e, 0x14, 0x04, 0x85, 0x74, 0x27, 0x12, 0xda, 0x22, 0x52, 0x40, 0xfd, 0xd2, 0x00, 0x5c,
+ 0xba, 0x6f, 0x5a, 0x86, 0xbd, 0xe9, 0xfa, 0x69, 0x4a, 0x4f, 0xfc, 0x41, 0xd9, 0x71, 0xa7, 0x27,
+ 0x7d, 0x17, 0xce, 0xc7, 0x45, 0xea, 0x04, 0xc1, 0xe3, 0x45, 0xef, 0x6c, 0x72, 0x82, 0xba, 0x9f,
+ 0xb0, 0x54, 0xdc, 0xb6, 0x69, 0xe9, 0x25, 0xe3, 0x19, 0x4f, 0x07, 0xf6, 0x92, 0xf1, 0xf4, 0x79,
+ 0x28, 0x55, 0xec, 0xb6, 0x6e, 0xfa, 0x41, 0x8e, 0x70, 0x14, 0x07, 0xf5, 0x22, 0x46, 0x13, 0x14,
+ 0x8c, 0xbf, 0xa8, 0x18, 0xbb, 0x6c, 0x28, 0xe4, 0xef, 0x17, 0x60, 0x56, 0x9a, 0x26, 0x13, 0x11,
+ 0x1b, 0x46, 0x45, 0x75, 0xe2, 0x6e, 0x0c, 0x70, 0xf3, 0xf4, 0x8a, 0x2f, 0xa3, 0x6c, 0xb5, 0x9a,
+ 0x8a, 0x94, 0xe3, 0xdb, 0x28, 0x9e, 0x88, 0x55, 0x7c, 0x0c, 0xbf, 0x25, 0xd3, 0xa2, 0xfc, 0x25,
+ 0x21, 0xe0, 0x24, 0x33, 0x9c, 0x14, 0x02, 0xce, 0x32, 0x32, 0x11, 0x99, 0x85, 0x09, 0x0c, 0xf1,
+ 0x1d, 0x6c, 0xa5, 0x98, 0x4a, 0x8c, 0xa0, 0x51, 0x89, 0x57, 0x2e, 0x3c, 0x2a, 0x38, 0xfb, 0xb8,
+ 0x7a, 0x43, 0xa0, 0xb5, 0x64, 0x09, 0xf2, 0x04, 0x14, 0x96, 0x16, 0xca, 0x78, 0x57, 0x33, 0xc8,
+ 0xd3, 0x6b, 0x59, 0x2d, 0x5d, 0x63, 0xb0, 0x4b, 0x9f, 0x05, 0x92, 0xfc, 0x9c, 0x7d, 0xdd, 0xc7,
+ 0xfc, 0x57, 0xd2, 0x96, 0xef, 0xa4, 0x7b, 0xd4, 0x1c, 0xc5, 0x44, 0x18, 0xc9, 0x6c, 0xd7, 0xff,
+ 0x61, 0x66, 0xb6, 0x2b, 0x1d, 0x69, 0x66, 0x3b, 0xf5, 0x57, 0x72, 0x30, 0x91, 0x08, 0x83, 0x4f,
+ 0x5e, 0x06, 0xe0, 0x10, 0x29, 0xdc, 0x28, 0xc6, 0xef, 0x09, 0x43, 0xe3, 0x8b, 0xe5, 0x31, 0x24,
+ 0x23, 0xd7, 0x61, 0x90, 0xff, 0x12, 0x21, 0xc2, 0x92, 0x45, 0xba, 0x5d, 0xd3, 0xd0, 0x02, 0xa2,
+ 0xb0, 0x16, 0xbc, 0x91, 0x2c, 0xa4, 0x16, 0xf1, 0xb6, 0x3a, 0x41, 0x2d, 0x8c, 0x4c, 0xfd, 0xe9,
+ 0x3c, 0x8c, 0x04, 0x0d, 0x2e, 0x1b, 0xc7, 0xa5, 0x73, 0x25, 0x91, 0x51, 0xa0, 0xb0, 0x5b, 0x46,
+ 0x81, 0xd8, 0x7c, 0x2b, 0x52, 0x08, 0x1c, 0xdd, 0x83, 0xaa, 0xaf, 0xe6, 0xe1, 0x4c, 0x50, 0xeb,
+ 0x31, 0x5e, 0x7e, 0x7d, 0x84, 0x44, 0xf2, 0x95, 0x1c, 0x28, 0xd3, 0x66, 0xab, 0x65, 0x5a, 0xcd,
+ 0xaa, 0xb5, 0x6e, 0x3b, 0x6d, 0x9c, 0x10, 0x8f, 0xef, 0x08, 0x57, 0xfd, 0xd3, 0x39, 0x98, 0x10,
+ 0x0d, 0x9a, 0xd1, 0x1d, 0xe3, 0xf8, 0xce, 0xc7, 0xe2, 0x2d, 0x39, 0x3e, 0x7d, 0x51, 0xbf, 0x91,
+ 0x07, 0x58, 0xb0, 0x1b, 0x0f, 0x4e, 0xf8, 0x7b, 0xac, 0x37, 0xa1, 0xc4, 0xe3, 0xb4, 0x09, 0x8d,
+ 0x9d, 0x10, 0xef, 0x8e, 0xd8, 0xa7, 0x71, 0xc4, 0xf4, 0xb8, 0x98, 0x8f, 0x4b, 0x3c, 0xce, 0x9b,
+ 0x92, 0xd3, 0x44, 0x11, 0x56, 0x29, 0xa3, 0x13, 0x0b, 0x46, 0x50, 0x29, 0x83, 0x45, 0x2b, 0xdd,
+ 0xd9, 0x9e, 0x2c, 0xb6, 0xec, 0xc6, 0x03, 0x0d, 0xe9, 0xd5, 0x7f, 0x95, 0xe3, 0xb2, 0x3b, 0xe1,
+ 0xaf, 0x4a, 0xfd, 0xcf, 0x2f, 0xee, 0xf3, 0xf3, 0xff, 0x4c, 0x0e, 0xce, 0x69, 0xb4, 0x61, 0x3f,
+ 0xa4, 0xce, 0xd6, 0x8c, 0x6d, 0xd0, 0x5b, 0xd4, 0xa2, 0xce, 0x71, 0x8d, 0xa8, 0xdf, 0xc5, 0x14,
+ 0x2c, 0x61, 0x63, 0xee, 0xba, 0xd4, 0x38, 0x39, 0xe9, 0x71, 0xd4, 0x5f, 0x1f, 0x00, 0x25, 0xd5,
+ 0xea, 0x3d, 0xb1, 0xe6, 0x5c, 0xe6, 0x56, 0xa6, 0x78, 0x54, 0x5b, 0x99, 0xfe, 0xfd, 0x6d, 0x65,
+ 0x4a, 0xfb, 0xdd, 0xca, 0x0c, 0xec, 0x65, 0x2b, 0xd3, 0x8e, 0x6f, 0x65, 0x06, 0x71, 0x2b, 0xf3,
+ 0x72, 0xcf, 0xad, 0xcc, 0xac, 0x65, 0x1c, 0x70, 0x23, 0x73, 0x62, 0x53, 0x37, 0x1f, 0x64, 0x07,
+ 0x76, 0x95, 0x4d, 0x8a, 0x0d, 0xdb, 0x31, 0xa8, 0x21, 0x36, 0x5e, 0x78, 0xea, 0xef, 0x08, 0x98,
+ 0x16, 0x60, 0x13, 0x79, 0xb0, 0x47, 0xf7, 0x92, 0x07, 0xfb, 0x08, 0xf6, 0x5f, 0x5f, 0xce, 0xc3,
+ 0xc4, 0x0c, 0x75, 0x3c, 0x1e, 0x08, 0xf6, 0x28, 0x5c, 0xe2, 0xca, 0x70, 0x46, 0x62, 0x88, 0x16,
+ 0x79, 0x3e, 0x74, 0xf3, 0x6b, 0x50, 0xc7, 0x8b, 0x7b, 0x09, 0xc6, 0xe9, 0x59, 0xf5, 0x7e, 0x2e,
+ 0x3a, 0x31, 0x76, 0x83, 0xea, 0x7d, 0x38, 0x17, 0xa4, 0x29, 0x7e, 0x69, 0x01, 0xbd, 0x94, 0x5e,
+ 0xae, 0xb8, 0xff, 0xf4, 0x72, 0xea, 0x2f, 0xe7, 0xe0, 0x8a, 0x46, 0x2d, 0xba, 0xa9, 0xaf, 0xb5,
+ 0xa8, 0xd4, 0x2c, 0xb1, 0x32, 0xb0, 0x59, 0xc3, 0x74, 0xdb, 0xba, 0xd7, 0xd8, 0x38, 0x94, 0x8c,
+ 0xe6, 0x60, 0x44, 0x9e, 0xbf, 0xf6, 0x31, 0xb7, 0x45, 0xca, 0xa9, 0xbf, 0x5e, 0x84, 0x81, 0x69,
+ 0xdb, 0xbb, 0x6d, 0x1f, 0x32, 0xdf, 0x61, 0x38, 0xe5, 0xe7, 0xf7, 0x71, 0xd6, 0xf3, 0x29, 0xac,
+ 0x5c, 0x4a, 0x01, 0x81, 0x2e, 0xa4, 0x6b, 0x76, 0x22, 0x55, 0x86, 0x4f, 0xb6, 0xcf, 0x4c, 0x87,
+ 0xaf, 0xc2, 0x10, 0x46, 0x7f, 0x91, 0x4e, 0x63, 0xd1, 0x41, 0xdb, 0x63, 0xc0, 0x78, 0x1d, 0x21,
+ 0x29, 0xf9, 0x81, 0x48, 0xe4, 0xda, 0xd2, 0xe1, 0x33, 0x23, 0xca, 0x41, 0x6c, 0x5f, 0xe6, 0x17,
+ 0x79, 0xd8, 0x26, 0x29, 0x8b, 0x0c, 0x9e, 0xa2, 0xc4, 0x9a, 0x14, 0x10, 0x1e, 0x61, 0xd6, 0xc2,
+ 0x19, 0x18, 0x9d, 0xb6, 0x3d, 0xc9, 0x19, 0x78, 0x28, 0x7c, 0x06, 0xca, 0x24, 0x9f, 0xee, 0x09,
+ 0x1c, 0x2d, 0xa3, 0x7e, 0xb7, 0x08, 0x23, 0xfe, 0xcf, 0x63, 0xd2, 0x9d, 0x17, 0xa1, 0x34, 0x6f,
+ 0x4b, 0x89, 0x34, 0xd0, 0x81, 0x78, 0xc3, 0x76, 0x63, 0x9e, 0xd1, 0x82, 0x88, 0x49, 0x7d, 0xc9,
+ 0x36, 0x64, 0xf7, 0x77, 0x94, 0xba, 0x65, 0x1b, 0x89, 0xe7, 0xc3, 0x01, 0x21, 0xb9, 0x02, 0x45,
+ 0x7c, 0x39, 0x20, 0x1d, 0xe4, 0xc7, 0x5e, 0x0b, 0x20, 0x5e, 0xd2, 0xca, 0xd2, 0x7e, 0xb5, 0x72,
+ 0xe0, 0xa0, 0x5a, 0x39, 0x78, 0xb4, 0x5a, 0xf9, 0x1e, 0x8c, 0x60, 0x4d, 0x7e, 0x1e, 0xbe, 0xdd,
+ 0x17, 0xd6, 0x27, 0xc4, 0xda, 0x37, 0xca, 0xdb, 0x2d, 0xb2, 0xf1, 0xe1, 0x92, 0x17, 0x61, 0x15,
+ 0xd3, 0x5d, 0x38, 0xc4, 0x76, 0xfa, 0x1f, 0xe7, 0x60, 0xe0, 0xae, 0xf5, 0xc0, 0xb2, 0x37, 0x0f,
+ 0xa7, 0x71, 0x2f, 0xc3, 0xb0, 0x60, 0x23, 0xad, 0x2e, 0xf8, 0x22, 0xbc, 0xcb, 0xc1, 0x75, 0xe4,
+ 0xa4, 0xc9, 0x54, 0xe4, 0xad, 0xa0, 0x10, 0x3e, 0x0e, 0x2a, 0x84, 0xa9, 0x68, 0xfc, 0x42, 0x8d,
+ 0x68, 0xf6, 0x0c, 0x99, 0x9c, 0x5c, 0x86, 0x62, 0x85, 0x35, 0x55, 0x8a, 0xa2, 0xcb, 0x9a, 0xa2,
+ 0x21, 0x54, 0xfd, 0x72, 0x11, 0xc6, 0x62, 0x07, 0x5f, 0xcf, 0xc3, 0x90, 0x38, 0x78, 0x32, 0xfd,
+ 0x74, 0x1e, 0xf8, 0x78, 0x28, 0x00, 0x6a, 0x83, 0xfc, 0xcf, 0xaa, 0x41, 0x3e, 0x03, 0x03, 0xb6,
+ 0x8b, 0x8b, 0x22, 0x7e, 0xcb, 0x58, 0x38, 0x84, 0x96, 0x6b, 0xac, 0xed, 0x7c, 0x70, 0x08, 0x12,
+ 0x59, 0x23, 0x6d, 0x17, 0x3f, 0xed, 0x26, 0x0c, 0xe9, 0xae, 0x4b, 0xbd, 0xba, 0xa7, 0x37, 0xe5,
+ 0x0c, 0x1f, 0x01, 0x50, 0x1e, 0x1d, 0x08, 0x5c, 0xd5, 0x9b, 0xe4, 0xb3, 0x30, 0xda, 0x70, 0x28,
+ 0x2e, 0x9b, 0x7a, 0x8b, 0xb5, 0x52, 0x32, 0x6b, 0x23, 0x08, 0xf9, 0xfe, 0x24, 0x44, 0x54, 0x0d,
+ 0x72, 0x0f, 0x46, 0xc5, 0xe7, 0x70, 0xcf, 0x7d, 0x1c, 0x68, 0x63, 0xe1, 0x32, 0xc6, 0x45, 0xc2,
+ 0x7d, 0xf7, 0xc5, 0x03, 0x0e, 0x99, 0x5c, 0xe6, 0x6b, 0x48, 0xa4, 0x64, 0x19, 0xc8, 0x26, 0x5d,
+ 0xab, 0xeb, 0x5d, 0x6f, 0x83, 0xd5, 0xc5, 0x03, 0xd4, 0x8b, 0xc4, 0x96, 0xf8, 0xea, 0x21, 0x89,
+ 0x95, 0x1f, 0x83, 0x6c, 0xd2, 0xb5, 0x72, 0x04, 0x49, 0xee, 0xc3, 0xf9, 0x64, 0x11, 0xf6, 0xc9,
+ 0xfc, 0x72, 0xe0, 0xb9, 0x9d, 0xed, 0xc9, 0xc9, 0x54, 0x02, 0x89, 0xed, 0xd9, 0x04, 0xdb, 0xaa,
+ 0x71, 0xbb, 0x38, 0x38, 0x30, 0x3e, 0xa8, 0x8d, 0xb1, 0xb2, 0xbe, 0x09, 0x69, 0x1a, 0xea, 0xef,
+ 0xe5, 0x98, 0xa9, 0xc8, 0x3e, 0x08, 0x33, 0x7b, 0x33, 0x5d, 0x6f, 0xef, 0x53, 0xd7, 0xdb, 0x61,
+ 0x0e, 0xce, 0x92, 0xdb, 0x63, 0x76, 0xd5, 0x04, 0x96, 0x4c, 0x41, 0xc9, 0x90, 0x4f, 0xcd, 0x2e,
+ 0x44, 0x3b, 0xc1, 0xaf, 0x47, 0x13, 0x54, 0xe4, 0x2a, 0x14, 0xd9, 0x92, 0x15, 0xdf, 0x32, 0xcb,
+ 0xd6, 0x85, 0x86, 0x14, 0xea, 0x8f, 0xe4, 0x61, 0x44, 0xfa, 0x9a, 0x1b, 0x87, 0xfa, 0x9c, 0x37,
+ 0xf6, 0xd6, 0x4c, 0xdf, 0xe9, 0x05, 0xf7, 0x52, 0x7e, 0x93, 0x6f, 0x06, 0xa2, 0xd8, 0xd3, 0x85,
+ 0x94, 0x10, 0xcc, 0xab, 0xe2, 0x43, 0x4b, 0x7b, 0xdf, 0x3e, 0x32, 0xfa, 0xdb, 0xc5, 0xc1, 0xfc,
+ 0x78, 0xe1, 0x76, 0x71, 0xb0, 0x38, 0xde, 0x8f, 0x71, 0xb8, 0x30, 0xf4, 0x35, 0xdf, 0x9b, 0x5b,
+ 0xeb, 0x66, 0xf3, 0x84, 0xbf, 0x1d, 0x39, 0xda, 0x18, 0x65, 0x31, 0xd9, 0x9c, 0xf0, 0x87, 0x24,
+ 0x1f, 0xaa, 0x6c, 0x4e, 0x73, 0x76, 0x0a, 0xd9, 0xfc, 0x93, 0x1c, 0x28, 0xa9, 0xb2, 0x29, 0x1f,
+ 0x93, 0x1f, 0xc4, 0xd1, 0x65, 0xee, 0xfc, 0xa3, 0x3c, 0x4c, 0x54, 0x2d, 0x8f, 0x36, 0xf9, 0x8e,
+ 0xf1, 0x84, 0x4f, 0x15, 0x77, 0x60, 0x58, 0xfa, 0x18, 0xd1, 0xe7, 0x4f, 0x06, 0xfb, 0xf1, 0x10,
+ 0x95, 0xc1, 0x49, 0x2e, 0x7d, 0x84, 0xc9, 0xfe, 0x63, 0x42, 0x3e, 0xe1, 0x73, 0xce, 0xc9, 0x10,
+ 0xf2, 0x09, 0x9f, 0xbc, 0x3e, 0xa2, 0x42, 0xfe, 0x3f, 0x72, 0x70, 0x36, 0xa5, 0x72, 0x72, 0x05,
+ 0x06, 0x6a, 0xdd, 0x35, 0x0c, 0xbb, 0x95, 0x0b, 0x3d, 0x86, 0xdd, 0xee, 0x1a, 0x46, 0xdc, 0xd2,
+ 0x7c, 0x24, 0x59, 0xc5, 0xc7, 0xf5, 0xcb, 0xd5, 0xca, 0x8c, 0x90, 0xaa, 0x2a, 0x85, 0x09, 0x60,
+ 0xe0, 0xb4, 0x2f, 0x0b, 0x1e, 0xe0, 0xdb, 0xa6, 0xd1, 0x88, 0x3d, 0xc0, 0x67, 0x65, 0xc8, 0x0f,
+ 0xc2, 0x50, 0xf9, 0x83, 0xae, 0x43, 0x91, 0x2f, 0x97, 0xf8, 0xc7, 0x02, 0xbe, 0x3e, 0x22, 0x8d,
+ 0x33, 0x8f, 0x25, 0xc0, 0x28, 0xe2, 0xbc, 0x43, 0x86, 0xea, 0x4f, 0xe7, 0xe0, 0x52, 0x76, 0xeb,
+ 0xc8, 0xa7, 0x60, 0x80, 0xed, 0xcc, 0xcb, 0xda, 0x92, 0xf8, 0x74, 0x9e, 0xe5, 0xd6, 0x6e, 0xd1,
+ 0xba, 0xee, 0xc8, 0xc6, 0xbe, 0x4f, 0x46, 0xde, 0x86, 0xe1, 0xaa, 0xeb, 0x76, 0xa9, 0x53, 0x7b,
+ 0xf9, 0xae, 0x56, 0x15, 0x7b, 0x42, 0xdc, 0x73, 0x98, 0x08, 0xae, 0xbb, 0x2f, 0xc7, 0x02, 0x6b,
+ 0xc9, 0xf4, 0xea, 0x4f, 0xe4, 0xe0, 0x72, 0xaf, 0xaf, 0x22, 0x2f, 0xc3, 0xe0, 0x2a, 0xb5, 0x74,
+ 0xcb, 0xab, 0x56, 0x44, 0x93, 0x70, 0x8b, 0xe5, 0x21, 0x2c, 0xba, 0x53, 0x08, 0x08, 0x59, 0x21,
+ 0x7e, 0xae, 0x18, 0x38, 0x32, 0xf0, 0x33, 0x50, 0x84, 0xc5, 0x0a, 0xf9, 0x84, 0xea, 0xef, 0xe7,
+ 0x61, 0x64, 0xa5, 0xd5, 0x6d, 0x9a, 0xd2, 0xc2, 0x71, 0x60, 0x7b, 0xdb, 0xb7, 0x7e, 0xf3, 0xfb,
+ 0xb3, 0x7e, 0xd9, 0x70, 0x73, 0x0e, 0x38, 0xdc, 0xfc, 0x72, 0xe4, 0x2d, 0x28, 0x75, 0xf0, 0x3b,
+ 0xe2, 0x27, 0xb1, 0xfc, 0xeb, 0xb2, 0x4e, 0x62, 0x79, 0x19, 0x36, 0xbe, 0x1a, 0x87, 0x18, 0x5f,
+ 0x61, 0x59, 0x49, 0xa0, 0xe1, 0x22, 0x71, 0x2a, 0xd0, 0x23, 0x11, 0x68, 0xb8, 0x20, 0x9c, 0x0a,
+ 0xf4, 0x10, 0x02, 0xfd, 0xf5, 0x3c, 0x8c, 0x45, 0xab, 0x24, 0x9f, 0x82, 0x61, 0x5e, 0x0d, 0x3f,
+ 0x17, 0xca, 0x49, 0x4e, 0xc5, 0x21, 0x58, 0x03, 0xfe, 0x43, 0x1c, 0x70, 0x9d, 0xd9, 0xd0, 0xdd,
+ 0x7a, 0x78, 0x42, 0xc3, 0xef, 0x6f, 0x07, 0xb9, 0x27, 0x54, 0x0c, 0xa5, 0x8d, 0x6d, 0xe8, 0xee,
+ 0x4c, 0xf8, 0x9b, 0xcc, 0x02, 0x71, 0x68, 0xd7, 0xa5, 0x51, 0x06, 0x45, 0x64, 0x20, 0x52, 0x8c,
+ 0xc7, 0xb1, 0xda, 0x04, 0x87, 0xc9, 0x6c, 0xbe, 0x10, 0x34, 0x1b, 0x95, 0xa1, 0x7f, 0x0f, 0xf9,
+ 0xcf, 0x25, 0xfa, 0xf4, 0x63, 0x4e, 0x4e, 0x50, 0xd1, 0x3d, 0x9d, 0x6f, 0xca, 0xfd, 0x0e, 0x50,
+ 0x7f, 0xb4, 0x03, 0xfd, 0xcb, 0x16, 0x5d, 0x5e, 0x27, 0x2f, 0xc1, 0x10, 0x53, 0x98, 0x05, 0x9b,
+ 0xf5, 0x65, 0x4e, 0xf8, 0x4f, 0x48, 0x9a, 0x84, 0x88, 0xf9, 0x3e, 0x2d, 0xa4, 0x22, 0x37, 0x01,
+ 0xc2, 0x27, 0x66, 0x42, 0xfb, 0x88, 0x5c, 0x86, 0x63, 0xe6, 0xfb, 0x34, 0x89, 0xce, 0x2f, 0x25,
+ 0x1e, 0xe8, 0x14, 0x92, 0xa5, 0x38, 0xc6, 0x2f, 0x25, 0xc6, 0xc7, 0x02, 0x10, 0xf6, 0x6b, 0x45,
+ 0x77, 0xdd, 0x4d, 0xdb, 0x31, 0x66, 0x36, 0x74, 0xab, 0x49, 0xe3, 0xbb, 0xa7, 0x24, 0xc5, 0x7c,
+ 0x9f, 0x96, 0x52, 0x8e, 0xbc, 0x01, 0x23, 0xb2, 0x43, 0x69, 0xdc, 0xe9, 0x43, 0xc6, 0xcd, 0xf7,
+ 0x69, 0x11, 0x5a, 0xf2, 0x1a, 0x0c, 0x8b, 0xdf, 0xb7, 0x6d, 0x71, 0xa3, 0x2c, 0xc5, 0x22, 0x92,
+ 0x50, 0xf3, 0x7d, 0x9a, 0x4c, 0x29, 0x55, 0xba, 0xe2, 0x98, 0x96, 0x27, 0xde, 0x28, 0xc7, 0x2b,
+ 0x45, 0x9c, 0x54, 0x29, 0xfe, 0x26, 0x6f, 0xc3, 0x68, 0x10, 0xe4, 0xe9, 0x7d, 0xda, 0xf0, 0xc4,
+ 0xe1, 0xf7, 0xf9, 0x58, 0x61, 0x8e, 0x9c, 0xef, 0xd3, 0xa2, 0xd4, 0xe4, 0x2a, 0x94, 0x34, 0xea,
+ 0x9a, 0x1f, 0xf8, 0xd7, 0xc5, 0x63, 0xd2, 0x38, 0x37, 0x3f, 0x60, 0x52, 0x12, 0x78, 0xd6, 0x3b,
+ 0xe1, 0xfd, 0xb4, 0x38, 0xaa, 0x26, 0xb1, 0x5a, 0x66, 0x2d, 0x83, 0xf5, 0x8e, 0xe4, 0x9c, 0xf0,
+ 0xd9, 0x30, 0xf4, 0x95, 0x48, 0xbb, 0x3a, 0x1c, 0x8f, 0x31, 0x20, 0x63, 0xe7, 0xfb, 0xb4, 0x18,
+ 0xbd, 0x24, 0xd5, 0x8a, 0xe9, 0x3e, 0x10, 0xd1, 0x46, 0xe3, 0x52, 0x65, 0x28, 0x49, 0xaa, 0xec,
+ 0xa7, 0x54, 0xf5, 0x12, 0xf5, 0x36, 0x6d, 0xe7, 0x81, 0x88, 0x2d, 0x1a, 0xaf, 0x5a, 0x60, 0xa5,
+ 0xaa, 0x05, 0x44, 0xae, 0x9a, 0x0d, 0xb8, 0xb1, 0xf4, 0xaa, 0x75, 0x4f, 0x97, 0xab, 0xe6, 0x27,
+ 0x71, 0x7e, 0x27, 0x2d, 0x50, 0xfd, 0x21, 0xcf, 0x7e, 0x9f, 0xec, 0x50, 0xc4, 0x49, 0x1d, 0x8a,
+ 0xbf, 0x59, 0xa5, 0x52, 0x86, 0x73, 0x91, 0xde, 0x3e, 0xa8, 0x54, 0x42, 0xb1, 0x4a, 0xe5, 0x5c,
+ 0xe8, 0x37, 0xe5, 0xc4, 0xdf, 0xca, 0x44, 0xb4, 0x83, 0x42, 0x0c, 0xeb, 0x20, 0x29, 0x41, 0xf8,
+ 0x24, 0x26, 0x15, 0x56, 0x08, 0x92, 0x0f, 0x07, 0x2d, 0x9c, 0x59, 0x99, 0xef, 0xd3, 0x30, 0xdd,
+ 0xb0, 0xca, 0xd3, 0x55, 0x2b, 0x67, 0x91, 0x62, 0xc4, 0xa7, 0x60, 0xb0, 0xf9, 0x3e, 0x8d, 0xa7,
+ 0xb2, 0x7e, 0x49, 0x4a, 0xe9, 0xa7, 0x9c, 0x8b, 0x4e, 0x11, 0x01, 0x82, 0x4d, 0x11, 0x61, 0xe2,
+ 0xbf, 0xb9, 0x64, 0xda, 0x3b, 0xe5, 0x7c, 0x74, 0xa9, 0x89, 0xe3, 0xe7, 0xfb, 0xb4, 0x64, 0xaa,
+ 0xbc, 0xd7, 0x22, 0x99, 0xe0, 0x94, 0x0b, 0xb1, 0x00, 0x60, 0x21, 0x8a, 0x89, 0x4b, 0xce, 0x19,
+ 0xb7, 0x1c, 0xcb, 0x7d, 0x2f, 0x26, 0xab, 0x8b, 0xd1, 0x8d, 0x4b, 0x0a, 0xc9, 0x7c, 0x9f, 0x96,
+ 0x56, 0x92, 0xcc, 0x24, 0xf2, 0xb1, 0x29, 0x4a, 0xd4, 0x37, 0x26, 0x86, 0x9e, 0xef, 0xd3, 0x12,
+ 0x19, 0xdc, 0x6e, 0xca, 0x89, 0xd0, 0x94, 0x27, 0xa2, 0x9d, 0x18, 0x62, 0x58, 0x27, 0x4a, 0x09,
+ 0xd3, 0x6e, 0xca, 0xc9, 0xb1, 0x94, 0x4b, 0xc9, 0x52, 0xe1, 0xcc, 0x29, 0x25, 0xd1, 0xd2, 0xd2,
+ 0xf3, 0xfd, 0x28, 0x4f, 0x8a, 0xbc, 0xbd, 0xa2, 0x7c, 0x1a, 0xcd, 0x7c, 0x9f, 0x96, 0x9e, 0x2b,
+ 0x48, 0x4b, 0x4f, 0x94, 0xa3, 0x5c, 0xee, 0xc5, 0x33, 0x68, 0x5d, 0x7a, 0x92, 0x1d, 0xbd, 0x47,
+ 0xda, 0x12, 0xe5, 0xa9, 0x68, 0xf4, 0xe1, 0x4c, 0xc2, 0xf9, 0x3e, 0xad, 0x47, 0xf2, 0x93, 0xbb,
+ 0x19, 0x39, 0x44, 0x94, 0xa7, 0xa3, 0x69, 0xbb, 0x53, 0x89, 0xe6, 0xfb, 0xb4, 0x8c, 0x0c, 0x24,
+ 0x77, 0x33, 0x52, 0x4c, 0x28, 0x93, 0x3d, 0xd9, 0x06, 0xf2, 0xc8, 0x48, 0x50, 0xb1, 0x9c, 0x9a,
+ 0x9d, 0x41, 0x79, 0x26, 0xaa, 0xba, 0x29, 0x24, 0x4c, 0x75, 0xd3, 0xf2, 0x3a, 0x2c, 0xa7, 0xa6,
+ 0x13, 0x50, 0x9e, 0xed, 0xc1, 0x30, 0x68, 0x63, 0x6a, 0x22, 0x82, 0xe5, 0xd4, 0x78, 0xfe, 0x8a,
+ 0x1a, 0x65, 0x98, 0x42, 0xc2, 0x18, 0xa6, 0x65, 0x02, 0x58, 0x4e, 0x0d, 0xfb, 0xae, 0x3c, 0xd7,
+ 0x83, 0x61, 0xd8, 0xc2, 0xb4, 0x80, 0xf1, 0xaf, 0x45, 0xe2, 0xae, 0x2b, 0x1f, 0x8b, 0xce, 0x1b,
+ 0x12, 0x8a, 0xcd, 0x1b, 0x72, 0x84, 0xf6, 0x99, 0x44, 0x64, 0x59, 0xe5, 0xe3, 0xd1, 0x61, 0x1e,
+ 0x43, 0xb3, 0x61, 0x1e, 0x8f, 0x45, 0x3b, 0x93, 0x88, 0xb0, 0xa9, 0x5c, 0xc9, 0x62, 0x82, 0xe8,
+ 0x28, 0x13, 0x1e, 0x93, 0xb3, 0x9a, 0x12, 0xe2, 0x51, 0xf9, 0x44, 0xd4, 0xaf, 0x3b, 0x41, 0x30,
+ 0xdf, 0xa7, 0xa5, 0x04, 0x86, 0xd4, 0xd2, 0xe3, 0x19, 0x29, 0x57, 0xa3, 0xc3, 0x36, 0x8d, 0x86,
+ 0x0d, 0xdb, 0xd4, 0x58, 0x48, 0x0b, 0x69, 0x8f, 0x4f, 0x94, 0x6b, 0x51, 0xc3, 0x2c, 0x49, 0xc1,
+ 0x0c, 0xb3, 0x94, 0x47, 0x2b, 0x5a, 0x7a, 0x8c, 0x1d, 0xe5, 0xf9, 0x9e, 0x2d, 0x44, 0x9a, 0x94,
+ 0x16, 0xf2, 0x90, 0x33, 0xa1, 0xed, 0x74, 0xb7, 0xd3, 0xb2, 0x75, 0x43, 0xf9, 0x64, 0xaa, 0xed,
+ 0xc4, 0x91, 0x92, 0xed, 0xc4, 0x01, 0x6c, 0x95, 0x97, 0xdf, 0x38, 0x28, 0x2f, 0x44, 0x57, 0x79,
+ 0x19, 0xc7, 0x56, 0xf9, 0xc8, 0x7b, 0x88, 0x99, 0xc4, 0x7b, 0x00, 0xe5, 0xc5, 0xa8, 0x02, 0xc4,
+ 0xd0, 0x4c, 0x01, 0xe2, 0x2f, 0x08, 0xbe, 0x98, 0xed, 0x41, 0xaf, 0x4c, 0x21, 0xb7, 0x67, 0x7c,
+ 0x6e, 0x59, 0x74, 0xf3, 0x7d, 0x5a, 0xb6, 0x17, 0x7e, 0x35, 0xc5, 0x21, 0x5e, 0xb9, 0x1e, 0x55,
+ 0xb0, 0x04, 0x01, 0x53, 0xb0, 0xa4, 0x1b, 0x7d, 0x35, 0xc5, 0xa3, 0x5d, 0xf9, 0x54, 0x26, 0xab,
+ 0xe0, 0x9b, 0x53, 0xfc, 0xe0, 0x6f, 0xca, 0x2e, 0xe9, 0xca, 0x4b, 0xd1, 0xc5, 0x2e, 0xc4, 0xb0,
+ 0xc5, 0x4e, 0x72, 0x5d, 0xbf, 0x29, 0x3b, 0x63, 0x2b, 0x37, 0x92, 0xa5, 0xc2, 0x25, 0x52, 0x72,
+ 0xda, 0xd6, 0xd2, 0x7d, 0x98, 0x95, 0x97, 0xa3, 0x5a, 0x97, 0x46, 0xc3, 0xb4, 0x2e, 0xd5, 0xff,
+ 0x79, 0x2e, 0xe9, 0x8a, 0xac, 0xdc, 0x8c, 0x6f, 0xb2, 0xa3, 0x78, 0x66, 0xf9, 0x24, 0xdc, 0x97,
+ 0x3f, 0x1b, 0x0f, 0xb6, 0xa7, 0xbc, 0x12, 0xbb, 0xf6, 0x8d, 0x60, 0x99, 0x7d, 0x1b, 0x0b, 0xce,
+ 0xf7, 0xd9, 0x78, 0x7c, 0x3a, 0xe5, 0xd5, 0x74, 0x0e, 0x81, 0xae, 0xc4, 0xe3, 0xd9, 0x7d, 0x36,
+ 0x1e, 0xd2, 0x4d, 0x79, 0x2d, 0x9d, 0x43, 0x20, 0xdd, 0x78, 0x08, 0xb8, 0x97, 0xa4, 0x20, 0xf3,
+ 0xca, 0xa7, 0xa3, 0xa6, 0x63, 0x80, 0x60, 0xa6, 0x63, 0x18, 0x8a, 0xfe, 0x25, 0x29, 0x38, 0xbb,
+ 0xf2, 0x7a, 0xa2, 0x48, 0xd0, 0x58, 0x29, 0x84, 0xfb, 0x4b, 0x52, 0x50, 0x73, 0xe5, 0x8d, 0x44,
+ 0x91, 0xa0, 0x75, 0x52, 0xe8, 0x73, 0xa3, 0xd7, 0xfb, 0x55, 0xe5, 0xcd, 0xe8, 0x61, 0x70, 0x36,
+ 0xe5, 0x7c, 0x9f, 0xd6, 0xeb, 0x1d, 0xec, 0x17, 0xb3, 0x1d, 0xbb, 0x95, 0xb7, 0xa2, 0x43, 0x38,
+ 0x8b, 0x8e, 0x0d, 0xe1, 0x4c, 0xe7, 0xf0, 0xb7, 0x63, 0xb1, 0x2c, 0x94, 0xb7, 0xa3, 0x53, 0x5c,
+ 0x04, 0xc9, 0xa6, 0xb8, 0x78, 0xe4, 0x8b, 0x48, 0x90, 0x06, 0xe5, 0x33, 0xd1, 0x29, 0x4e, 0xc6,
+ 0xb1, 0x29, 0x2e, 0x12, 0xd0, 0x61, 0x26, 0x11, 0x3b, 0x40, 0x79, 0x27, 0x3a, 0xc5, 0xc5, 0xd0,
+ 0x6c, 0x8a, 0x8b, 0x47, 0x1b, 0x78, 0x3b, 0xf6, 0x84, 0x5e, 0xf9, 0x6c, 0x7a, 0xfb, 0x11, 0x29,
+ 0xb7, 0x9f, 0x3f, 0xb8, 0xd7, 0xd2, 0xdf, 0x82, 0x2b, 0xe5, 0xe8, 0xf8, 0x4d, 0xa3, 0x61, 0xe3,
+ 0x37, 0xf5, 0x1d, 0x79, 0x7c, 0xe3, 0x20, 0xb4, 0x6a, 0xba, 0xc7, 0xc6, 0x21, 0x34, 0x45, 0x52,
+ 0xc0, 0x91, 0x3d, 0x32, 0xdf, 0x08, 0xcd, 0x64, 0xec, 0x91, 0xfd, 0x6d, 0x50, 0x8c, 0x9e, 0xcd,
+ 0xae, 0x09, 0x3f, 0x63, 0xa5, 0x12, 0x9d, 0x5d, 0x13, 0x04, 0x6c, 0x76, 0x4d, 0x7a, 0x27, 0xcf,
+ 0xc1, 0xb8, 0xd0, 0x22, 0xee, 0x3e, 0x6d, 0x5a, 0x4d, 0x65, 0x36, 0xf6, 0xde, 0x32, 0x86, 0x67,
+ 0xb3, 0x53, 0x1c, 0x86, 0xeb, 0x35, 0x87, 0xcd, 0xb4, 0xcc, 0xce, 0x9a, 0xad, 0x3b, 0x46, 0x8d,
+ 0x5a, 0x86, 0x32, 0x17, 0x5b, 0xaf, 0x53, 0x68, 0x70, 0xbd, 0x4e, 0x81, 0x63, 0x88, 0xb8, 0x18,
+ 0x5c, 0xa3, 0x0d, 0x6a, 0x3e, 0xa4, 0xca, 0x2d, 0x64, 0x3b, 0x99, 0xc5, 0x56, 0x90, 0xcd, 0xf7,
+ 0x69, 0x59, 0x1c, 0x98, 0xad, 0xbe, 0xb8, 0x55, 0x7b, 0x77, 0x21, 0x08, 0x3f, 0xb0, 0xe2, 0xd0,
+ 0x8e, 0xee, 0x50, 0x65, 0x3e, 0x6a, 0xab, 0xa7, 0x12, 0x31, 0x5b, 0x3d, 0x15, 0x91, 0x64, 0xeb,
+ 0x8f, 0x85, 0x6a, 0x2f, 0xb6, 0xe1, 0x88, 0x48, 0x2f, 0xcd, 0x66, 0xa7, 0x28, 0x82, 0x09, 0x68,
+ 0xc1, 0xb6, 0x9a, 0x78, 0x52, 0x71, 0x3b, 0x3a, 0x3b, 0x65, 0x53, 0xb2, 0xd9, 0x29, 0x1b, 0xcb,
+ 0x54, 0x3d, 0x8a, 0xe5, 0x63, 0xf0, 0x4e, 0x54, 0xd5, 0x53, 0x48, 0x98, 0xaa, 0xa7, 0x80, 0x93,
+ 0x0c, 0x35, 0xea, 0x52, 0x4f, 0x59, 0xe8, 0xc5, 0x10, 0x49, 0x92, 0x0c, 0x11, 0x9c, 0x64, 0x38,
+ 0x47, 0xbd, 0xc6, 0x86, 0xb2, 0xd8, 0x8b, 0x21, 0x92, 0x24, 0x19, 0x22, 0x98, 0x6d, 0x36, 0xa3,
+ 0xe0, 0xe9, 0x6e, 0xeb, 0x81, 0xdf, 0x67, 0x4b, 0xd1, 0xcd, 0x66, 0x26, 0x21, 0xdb, 0x6c, 0x66,
+ 0x22, 0xc9, 0x4f, 0xec, 0xd9, 0x0f, 0x5e, 0x59, 0xc6, 0x0a, 0xa7, 0x42, 0xbb, 0x60, 0x2f, 0xa5,
+ 0xe6, 0xfb, 0xb4, 0xbd, 0xfa, 0xd9, 0x7f, 0x32, 0x70, 0x1a, 0x55, 0x56, 0xb0, 0xaa, 0x33, 0xc1,
+ 0x59, 0x05, 0x07, 0xcf, 0xf7, 0x69, 0x81, 0x5b, 0xe9, 0x6b, 0x30, 0x8c, 0x1f, 0x55, 0xb5, 0x4c,
+ 0xaf, 0x32, 0xad, 0xbc, 0x1b, 0xdd, 0x32, 0x49, 0x28, 0xb6, 0x65, 0x92, 0x7e, 0xb2, 0x49, 0x1c,
+ 0x7f, 0xf2, 0x29, 0xa6, 0x32, 0xad, 0x68, 0xd1, 0x49, 0x3c, 0x82, 0x64, 0x93, 0x78, 0x04, 0x10,
+ 0xd4, 0x5b, 0x71, 0xec, 0x4e, 0x65, 0x5a, 0xa9, 0xa5, 0xd4, 0xcb, 0x51, 0x41, 0xbd, 0xfc, 0x67,
+ 0x50, 0x6f, 0x6d, 0xa3, 0xeb, 0x55, 0xd8, 0x37, 0xae, 0xa6, 0xd4, 0xeb, 0x23, 0x83, 0x7a, 0x7d,
+ 0x00, 0x9b, 0x0a, 0x11, 0xb0, 0xe2, 0xd8, 0x6c, 0xd2, 0xbe, 0x63, 0xb6, 0x5a, 0xca, 0xdd, 0xe8,
+ 0x54, 0x18, 0xc7, 0xb3, 0xa9, 0x30, 0x0e, 0x63, 0xa6, 0x27, 0x6f, 0x15, 0x5d, 0xeb, 0x36, 0x95,
+ 0x7b, 0x51, 0xd3, 0x33, 0xc4, 0x30, 0xd3, 0x33, 0xfc, 0x85, 0xbb, 0x0b, 0xf6, 0x4b, 0xa3, 0xeb,
+ 0x0e, 0x75, 0x37, 0x94, 0xfb, 0xb1, 0xdd, 0x85, 0x84, 0xc3, 0xdd, 0x85, 0xf4, 0x9b, 0x34, 0xe1,
+ 0xc9, 0xc8, 0x42, 0xe3, 0x5f, 0xda, 0xd4, 0xa8, 0xee, 0x34, 0x36, 0x94, 0xcf, 0x21, 0xab, 0xe7,
+ 0x52, 0x97, 0xaa, 0x28, 0xe9, 0x7c, 0x9f, 0xd6, 0x8b, 0x13, 0x6e, 0xcb, 0xdf, 0x5d, 0xe0, 0x91,
+ 0x60, 0xb5, 0x95, 0x19, 0x7f, 0x13, 0xfa, 0x5e, 0x6c, 0x5b, 0x9e, 0x24, 0xc1, 0x6d, 0x79, 0x12,
+ 0x4c, 0x3a, 0xf0, 0x74, 0x6c, 0xab, 0xb6, 0xa8, 0xb7, 0xd8, 0xbe, 0x84, 0x1a, 0x2b, 0x7a, 0xe3,
+ 0x01, 0xf5, 0x94, 0xcf, 0x23, 0xef, 0x2b, 0x19, 0x1b, 0xbe, 0x18, 0xf5, 0x7c, 0x9f, 0xb6, 0x0b,
+ 0x3f, 0xa2, 0x42, 0xb1, 0x36, 0xb7, 0xba, 0xa2, 0xfc, 0x40, 0xf4, 0x7c, 0x93, 0xc1, 0xe6, 0xfb,
+ 0x34, 0xc4, 0x31, 0x2b, 0xed, 0x6e, 0xa7, 0xe9, 0xe8, 0x06, 0xe5, 0x86, 0x16, 0xda, 0x6e, 0xc2,
+ 0x00, 0xfd, 0xc1, 0xa8, 0x95, 0x96, 0x45, 0xc7, 0xac, 0xb4, 0x2c, 0x1c, 0x53, 0xd4, 0x48, 0xd2,
+ 0x13, 0xe5, 0x0b, 0x51, 0x45, 0x8d, 0x20, 0x99, 0xa2, 0x46, 0x53, 0xa4, 0x7c, 0x0e, 0x2e, 0x04,
+ 0xfb, 0x79, 0xb1, 0xfe, 0xf2, 0x4e, 0x53, 0xbe, 0x88, 0x7c, 0x9e, 0x4e, 0x5c, 0x06, 0x44, 0xa8,
+ 0xe6, 0xfb, 0xb4, 0x8c, 0xf2, 0x6c, 0xc5, 0x4d, 0xe4, 0xf3, 0x12, 0xe6, 0xc5, 0x0f, 0x45, 0x57,
+ 0xdc, 0x0c, 0x32, 0xb6, 0xe2, 0x66, 0xa0, 0x52, 0x99, 0x0b, 0xa1, 0xea, 0xbb, 0x30, 0x0f, 0x64,
+ 0x9a, 0xc5, 0x21, 0x95, 0xb9, 0xb0, 0xd4, 0xd6, 0x76, 0x61, 0x1e, 0x58, 0x6b, 0x59, 0x1c, 0xc8,
+ 0x55, 0x28, 0xd5, 0x6a, 0x8b, 0x5a, 0xd7, 0x52, 0x1a, 0x31, 0x6f, 0x59, 0x84, 0xce, 0xf7, 0x69,
+ 0x02, 0xcf, 0xcc, 0xa0, 0xd9, 0x96, 0xee, 0x7a, 0x66, 0xc3, 0xc5, 0x11, 0xe3, 0x8f, 0x10, 0x23,
+ 0x6a, 0x06, 0xa5, 0xd1, 0x30, 0x33, 0x28, 0x0d, 0xce, 0xec, 0xc5, 0x19, 0xdd, 0x75, 0x75, 0xcb,
+ 0x70, 0xf4, 0x69, 0x5c, 0x26, 0x68, 0xec, 0x35, 0x56, 0x04, 0xcb, 0xec, 0xc5, 0x28, 0x04, 0x0f,
+ 0xdf, 0x7d, 0x88, 0x6f, 0xe6, 0xac, 0xc7, 0x0e, 0xdf, 0x63, 0x78, 0x3c, 0x7c, 0x8f, 0xc1, 0xd0,
+ 0xee, 0xf4, 0x61, 0x1a, 0x6d, 0x9a, 0x4c, 0x44, 0x4a, 0x33, 0x66, 0x77, 0xc6, 0x09, 0xd0, 0xee,
+ 0x8c, 0x03, 0x23, 0x4d, 0xf2, 0x97, 0xdb, 0x8d, 0x8c, 0x26, 0x85, 0xab, 0x6c, 0xa2, 0x0c, 0x5b,
+ 0xbf, 0xc3, 0xc1, 0x51, 0xd9, 0xb2, 0xf4, 0xb6, 0x5d, 0x99, 0xf6, 0xa5, 0x6e, 0x46, 0xd7, 0xef,
+ 0x4c, 0x42, 0xb6, 0x7e, 0x67, 0x22, 0xd9, 0xec, 0xea, 0x6f, 0xb4, 0x36, 0x74, 0x87, 0x1a, 0x15,
+ 0xd3, 0xc1, 0x93, 0xc5, 0x2d, 0xbe, 0x35, 0x7c, 0x3f, 0x3a, 0xbb, 0xf6, 0x20, 0x65, 0xb3, 0x6b,
+ 0x0f, 0x34, 0x33, 0xf2, 0xd2, 0xd1, 0x1a, 0xd5, 0x0d, 0xe5, 0x41, 0xd4, 0xc8, 0xcb, 0xa6, 0x64,
+ 0x46, 0x5e, 0x36, 0x36, 0xfb, 0x73, 0xee, 0x3b, 0xa6, 0x47, 0x95, 0xd6, 0x5e, 0x3e, 0x07, 0x49,
+ 0xb3, 0x3f, 0x07, 0xd1, 0x6c, 0x43, 0x18, 0xef, 0x90, 0x76, 0x74, 0x43, 0x98, 0xec, 0x86, 0x78,
+ 0x09, 0x66, 0xb1, 0x88, 0x47, 0x79, 0x8a, 0x15, 0xb5, 0x58, 0x04, 0x98, 0x59, 0x2c, 0xe1, 0xb3,
+ 0xbd, 0xc8, 0x53, 0x2c, 0xc5, 0x8e, 0xae, 0xa1, 0x32, 0x8e, 0xad, 0xa1, 0x91, 0x67, 0x5b, 0xaf,
+ 0x45, 0xde, 0x19, 0x28, 0x9d, 0xa8, 0xd5, 0x21, 0xa1, 0x98, 0xd5, 0x21, 0xbf, 0x48, 0x98, 0x81,
+ 0x33, 0x78, 0x0b, 0xae, 0x75, 0x83, 0x7b, 0x9c, 0x1f, 0x8e, 0x7e, 0x66, 0x0c, 0xcd, 0x3e, 0x33,
+ 0x06, 0x8a, 0x30, 0x11, 0xd3, 0x96, 0x93, 0xc1, 0x24, 0x3c, 0x1f, 0x8c, 0x81, 0xc8, 0x02, 0x90,
+ 0x5a, 0x79, 0x71, 0xa1, 0x6a, 0xac, 0xc8, 0x57, 0x64, 0x6e, 0xf4, 0x04, 0x36, 0x49, 0x31, 0xdf,
+ 0xa7, 0xa5, 0x94, 0x23, 0xef, 0xc3, 0x65, 0x01, 0x15, 0x2f, 0xae, 0x31, 0xed, 0xbf, 0x11, 0x2c,
+ 0x08, 0x5e, 0xd4, 0x8f, 0xad, 0x17, 0xed, 0x7c, 0x9f, 0xd6, 0x93, 0x57, 0x76, 0x5d, 0x62, 0x7d,
+ 0xe8, 0xee, 0xa5, 0xae, 0x60, 0x91, 0xe8, 0xc9, 0x2b, 0xbb, 0x2e, 0x21, 0xf7, 0x87, 0x7b, 0xa9,
+ 0x2b, 0xe8, 0x84, 0x9e, 0xbc, 0x88, 0x0b, 0x93, 0xbd, 0xf0, 0xe5, 0x56, 0x4b, 0xd9, 0xc4, 0xea,
+ 0x3e, 0xb1, 0x97, 0xea, 0xca, 0x68, 0x70, 0xee, 0xc6, 0x91, 0xcd, 0xd2, 0xcb, 0x1d, 0x6a, 0xd5,
+ 0x22, 0x0b, 0xd0, 0xa3, 0xe8, 0x2c, 0x9d, 0x20, 0x60, 0xb3, 0x74, 0x02, 0xc8, 0x06, 0x94, 0xfc,
+ 0x5c, 0x45, 0xd9, 0x8a, 0x0e, 0x28, 0x19, 0xc7, 0x06, 0x54, 0xe4, 0x69, 0xcb, 0x32, 0x9c, 0x5d,
+ 0x7e, 0xe0, 0xe9, 0xbe, 0x05, 0xe9, 0x8a, 0xae, 0xfc, 0x20, 0x76, 0xc9, 0x94, 0x24, 0xc1, 0x4b,
+ 0xa6, 0x24, 0x98, 0x8d, 0x11, 0x06, 0xae, 0x6d, 0x59, 0x8d, 0x39, 0xdd, 0x6c, 0x75, 0x1d, 0xaa,
+ 0xfc, 0x1b, 0xd1, 0x31, 0x12, 0x43, 0xb3, 0x31, 0x12, 0x03, 0xb1, 0x05, 0x9a, 0x81, 0xca, 0xae,
+ 0x6b, 0x36, 0x2d, 0xb1, 0xaf, 0xec, 0xb6, 0x3c, 0xe5, 0xdf, 0x8c, 0x2e, 0xd0, 0x69, 0x34, 0x6c,
+ 0x81, 0x4e, 0x83, 0xe3, 0xa9, 0x13, 0xeb, 0x05, 0xb6, 0x78, 0xc8, 0x77, 0x95, 0xff, 0x56, 0xec,
+ 0xd4, 0x29, 0x85, 0x06, 0x4f, 0x9d, 0x52, 0xe0, 0x6c, 0x7d, 0xe4, 0x36, 0xd9, 0x82, 0x19, 0xdc,
+ 0x55, 0xff, 0xdb, 0xd1, 0xf5, 0x31, 0x8e, 0x67, 0xeb, 0x63, 0x1c, 0x16, 0xe5, 0x23, 0xba, 0xe0,
+ 0xdf, 0xc9, 0xe2, 0x13, 0xc8, 0x3f, 0x51, 0x86, 0xdc, 0x92, 0xf9, 0x88, 0x91, 0xf2, 0x23, 0xb9,
+ 0x2c, 0x46, 0xc1, 0xf0, 0x48, 0x14, 0x8a, 0x32, 0xd2, 0xe8, 0x43, 0x93, 0x6e, 0x2a, 0x5f, 0xca,
+ 0x64, 0xc4, 0x09, 0xa2, 0x8c, 0x38, 0x8c, 0xbc, 0x07, 0x17, 0x42, 0xd8, 0x22, 0x6d, 0xaf, 0x05,
+ 0x33, 0xd3, 0x8f, 0xe6, 0xa2, 0x66, 0x70, 0x3a, 0x19, 0x33, 0x83, 0xd3, 0x31, 0x69, 0xac, 0x85,
+ 0xe8, 0xfe, 0xdd, 0x5d, 0x58, 0x07, 0x12, 0xcc, 0x60, 0x90, 0xc6, 0x5a, 0x48, 0xf3, 0xc7, 0x76,
+ 0x61, 0x1d, 0xc8, 0x34, 0x83, 0x01, 0xf9, 0xc9, 0x1c, 0x5c, 0x49, 0x47, 0x95, 0x5b, 0xad, 0x39,
+ 0xdb, 0x09, 0x71, 0xca, 0x9f, 0xca, 0x45, 0x0f, 0x1a, 0xf6, 0x56, 0x6c, 0xbe, 0x4f, 0xdb, 0x63,
+ 0x05, 0xe4, 0x33, 0x30, 0x5a, 0xee, 0x1a, 0xa6, 0x87, 0x17, 0x6f, 0xcc, 0x70, 0xfe, 0xf1, 0x5c,
+ 0x6c, 0x8b, 0x23, 0x63, 0x71, 0x8b, 0x23, 0x03, 0xc8, 0x6d, 0x98, 0xa8, 0xd1, 0x46, 0xd7, 0x31,
+ 0xbd, 0x2d, 0x8d, 0x76, 0x6c, 0xc7, 0x63, 0x3c, 0xfe, 0x74, 0x2e, 0x3a, 0x89, 0x25, 0x28, 0xd8,
+ 0x24, 0x96, 0x00, 0x92, 0x7b, 0x89, 0x5b, 0x79, 0xd1, 0x99, 0x3f, 0x91, 0xeb, 0x79, 0x2d, 0x1f,
+ 0xf4, 0x65, 0x7a, 0x71, 0xb2, 0x12, 0xbb, 0x45, 0x17, 0x5c, 0x7f, 0x32, 0xd7, 0xe3, 0x1a, 0x5d,
+ 0x9a, 0xe1, 0x92, 0x60, 0xc6, 0x31, 0x25, 0x03, 0xbc, 0xf2, 0x67, 0x72, 0x3d, 0xae, 0xbd, 0x43,
+ 0x8e, 0x69, 0xc9, 0xe3, 0x5f, 0xe1, 0x9e, 0x22, 0x82, 0xd1, 0x4f, 0xe5, 0x92, 0xae, 0x22, 0x41,
+ 0x79, 0x89, 0x90, 0x15, 0xbb, 0xeb, 0x06, 0x4a, 0xff, 0xe5, 0x5c, 0xd2, 0x37, 0x2f, 0x2c, 0x16,
+ 0xfe, 0x22, 0x14, 0x2e, 0xcd, 0x3e, 0xf2, 0xa8, 0x63, 0xe9, 0x2d, 0xec, 0xce, 0x9a, 0x67, 0x3b,
+ 0x7a, 0x93, 0xce, 0x5a, 0xfa, 0x5a, 0x8b, 0x2a, 0x3f, 0x9d, 0x8b, 0x5a, 0xb0, 0xd9, 0xa4, 0xcc,
+ 0x82, 0xcd, 0xc6, 0x92, 0x0d, 0x78, 0x32, 0x0d, 0x5b, 0x31, 0x5d, 0xac, 0xe7, 0x2b, 0xb9, 0xa8,
+ 0x09, 0xdb, 0x83, 0x96, 0x99, 0xb0, 0x3d, 0xd0, 0xe4, 0x06, 0x0c, 0x4d, 0xdb, 0xfe, 0xf4, 0xfb,
+ 0x67, 0x63, 0xce, 0x90, 0x01, 0x66, 0xbe, 0x4f, 0x0b, 0xc9, 0x44, 0x19, 0x31, 0xa8, 0xbf, 0x9a,
+ 0x2c, 0x13, 0x5e, 0x3e, 0x05, 0x3f, 0x44, 0x19, 0x21, 0xee, 0x7f, 0x2f, 0x59, 0x26, 0xbc, 0xe3,
+ 0x0a, 0x7e, 0xb0, 0x99, 0x84, 0xd7, 0xb8, 0x38, 0x57, 0x66, 0x76, 0xdb, 0xcc, 0x86, 0xde, 0x6a,
+ 0x51, 0xab, 0x49, 0x95, 0xaf, 0xc5, 0x66, 0x92, 0x74, 0x32, 0x36, 0x93, 0xa4, 0x63, 0xc8, 0x0f,
+ 0xc2, 0xc5, 0x7b, 0x7a, 0xcb, 0x34, 0x42, 0x9c, 0x9f, 0x0f, 0x5c, 0xf9, 0x99, 0x5c, 0x74, 0x37,
+ 0x9d, 0x41, 0xc7, 0x76, 0xd3, 0x19, 0x28, 0xb2, 0x08, 0x04, 0x97, 0xd1, 0x60, 0xb6, 0x60, 0xeb,
+ 0xb3, 0xf2, 0xef, 0xe7, 0xa2, 0x76, 0x6a, 0x92, 0x84, 0xd9, 0xa9, 0x49, 0x28, 0xa9, 0x67, 0xa7,
+ 0x06, 0x51, 0x7e, 0x36, 0x17, 0x3d, 0xad, 0xc9, 0x22, 0x9c, 0xef, 0xd3, 0xb2, 0xf3, 0x8b, 0xdc,
+ 0x82, 0xf1, 0xda, 0x4a, 0x75, 0x6e, 0x6e, 0xb6, 0x76, 0xaf, 0x5a, 0xc1, 0x87, 0x0e, 0x86, 0xf2,
+ 0xe7, 0x62, 0x2b, 0x56, 0x9c, 0x80, 0xad, 0x58, 0x71, 0x18, 0x79, 0x13, 0x46, 0x58, 0xfb, 0xd9,
+ 0x80, 0xc1, 0x4f, 0xfe, 0xb9, 0x5c, 0xd4, 0x9c, 0x92, 0x91, 0xcc, 0x9c, 0x92, 0x7f, 0x93, 0x1a,
+ 0x9c, 0x63, 0x52, 0x5c, 0x71, 0xe8, 0x3a, 0x75, 0xa8, 0xd5, 0xf0, 0xc7, 0xf4, 0xcf, 0xe7, 0xa2,
+ 0x56, 0x46, 0x1a, 0x11, 0xb3, 0x32, 0xd2, 0xe0, 0xe4, 0x01, 0x5c, 0x8e, 0x9f, 0x04, 0xc9, 0xcf,
+ 0x4e, 0x95, 0x3f, 0x9f, 0x8b, 0x19, 0xc3, 0x3d, 0x88, 0xd1, 0x18, 0xee, 0x81, 0x27, 0x16, 0x3c,
+ 0x25, 0x8e, 0x55, 0x84, 0xc3, 0x65, 0xbc, 0xb6, 0xbf, 0xc0, 0x6b, 0xfb, 0x78, 0xe8, 0x10, 0xd8,
+ 0x83, 0x7a, 0xbe, 0x4f, 0xeb, 0xcd, 0x8e, 0xe9, 0x59, 0x32, 0x01, 0x86, 0xf2, 0x17, 0x73, 0xe9,
+ 0x1e, 0x29, 0x11, 0x37, 0xe5, 0xb4, 0xcc, 0x19, 0xef, 0x65, 0xa5, 0x6f, 0x50, 0xfe, 0x52, 0x6c,
+ 0xbc, 0xa5, 0x93, 0xb1, 0xf1, 0x96, 0x91, 0xff, 0xe1, 0x36, 0x4c, 0x70, 0xa5, 0x5e, 0xd1, 0x71,
+ 0x18, 0x5a, 0x4d, 0x6a, 0x28, 0xff, 0x41, 0x6c, 0xb5, 0x4b, 0x50, 0xa0, 0x6b, 0x4f, 0x1c, 0xc8,
+ 0xa6, 0xee, 0x5a, 0x47, 0xb7, 0x2c, 0x3c, 0x66, 0x55, 0xfe, 0xc3, 0xd8, 0xd4, 0x1d, 0xa2, 0xd0,
+ 0x71, 0x37, 0xf8, 0xc5, 0x34, 0xa1, 0x57, 0xea, 0x23, 0xe5, 0x2f, 0xc7, 0x34, 0xa1, 0x17, 0x31,
+ 0xd3, 0x84, 0x9e, 0x79, 0x94, 0xee, 0x65, 0x3c, 0x01, 0x57, 0xbe, 0x1e, 0x5b, 0x91, 0x53, 0xa9,
+ 0xd8, 0x8a, 0x9c, 0xfe, 0x82, 0xfc, 0x5e, 0xc6, 0xf3, 0x69, 0xe5, 0x17, 0x7a, 0xf3, 0x0d, 0x57,
+ 0xfa, 0xf4, 0xd7, 0xd7, 0xf7, 0x32, 0x9e, 0x1e, 0x2b, 0x7f, 0xa5, 0x37, 0xdf, 0xd0, 0xb1, 0x2f,
+ 0xfd, 0xe5, 0x72, 0x3d, 0xfb, 0xd9, 0xae, 0xf2, 0x57, 0xe3, 0x53, 0x57, 0x06, 0x21, 0x4e, 0x5d,
+ 0x59, 0x6f, 0x7f, 0xd7, 0xe0, 0x09, 0xae, 0x21, 0xb7, 0x1c, 0xbd, 0xb3, 0x51, 0xa3, 0x9e, 0x67,
+ 0x5a, 0x4d, 0x7f, 0x27, 0xf6, 0xd7, 0x72, 0xb1, 0xe3, 0xb1, 0x2c, 0x4a, 0x3c, 0x1e, 0xcb, 0x42,
+ 0x32, 0xe5, 0x4d, 0x3c, 0xd0, 0x55, 0xfe, 0x7a, 0x4c, 0x79, 0x13, 0x14, 0x4c, 0x79, 0x93, 0xef,
+ 0x7a, 0x6f, 0xa7, 0xbc, 0x43, 0x55, 0xfe, 0xa3, 0x6c, 0x5e, 0x41, 0xfb, 0x52, 0x9e, 0xaf, 0xde,
+ 0x4e, 0x79, 0x6e, 0xa9, 0xfc, 0xc7, 0xd9, 0xbc, 0x42, 0x1f, 0xa4, 0xe4, 0x2b, 0xcd, 0xf7, 0xe0,
+ 0x02, 0x9f, 0xcd, 0xe7, 0xa8, 0x41, 0x23, 0x1f, 0xfa, 0x8b, 0xb1, 0xb1, 0x9f, 0x4e, 0x86, 0x47,
+ 0xee, 0xa9, 0x98, 0x34, 0xd6, 0xa2, 0xad, 0x7f, 0x63, 0x17, 0xd6, 0xe1, 0x86, 0x20, 0x1d, 0xc3,
+ 0xd6, 0x1b, 0xf9, 0xf1, 0x9b, 0xf2, 0x4b, 0xb1, 0xf5, 0x46, 0x46, 0xa2, 0x3b, 0x87, 0xfc, 0x52,
+ 0xee, 0xcd, 0xe8, 0x43, 0x2f, 0xe5, 0x6f, 0xa6, 0x16, 0x0e, 0x3a, 0x20, 0xfa, 0x2a, 0xec, 0xcd,
+ 0xe8, 0xa3, 0x26, 0xe5, 0x97, 0x53, 0x0b, 0x07, 0x1f, 0x10, 0x7d, 0x01, 0xc5, 0xb6, 0x48, 0x5d,
+ 0xcf, 0xe6, 0xac, 0x22, 0xd3, 0xc3, 0xdf, 0x8a, 0x6f, 0x91, 0x52, 0xc9, 0x70, 0x8b, 0x94, 0x8a,
+ 0x49, 0x63, 0x2d, 0x3e, 0xef, 0x57, 0x76, 0x61, 0x2d, 0x6d, 0xec, 0x52, 0x31, 0x69, 0xac, 0xc5,
+ 0xc7, 0xff, 0xea, 0x2e, 0xac, 0xa5, 0x8d, 0x5d, 0x2a, 0x86, 0x99, 0x63, 0x21, 0xe6, 0x1e, 0x75,
+ 0xdc, 0x50, 0xfd, 0xfe, 0x93, 0x98, 0x39, 0x96, 0x41, 0xc7, 0xcc, 0xb1, 0x0c, 0x54, 0x2a, 0x77,
+ 0x21, 0x94, 0x5f, 0xdb, 0x8d, 0x7b, 0x78, 0x2f, 0x93, 0x81, 0x4a, 0xe5, 0x2e, 0xe4, 0xf2, 0xb7,
+ 0x77, 0xe3, 0x1e, 0x5e, 0xcc, 0x64, 0xa0, 0x98, 0x51, 0x54, 0xf3, 0x74, 0xcf, 0x6c, 0xcc, 0xdb,
+ 0xae, 0x27, 0x2d, 0xf2, 0x7f, 0x27, 0x66, 0x14, 0xa5, 0x11, 0x31, 0xa3, 0x28, 0x0d, 0x9e, 0x64,
+ 0x2a, 0xa4, 0xf1, 0xeb, 0x3d, 0x99, 0x86, 0x96, 0x56, 0x1a, 0x3c, 0xc9, 0x54, 0x08, 0xe1, 0x3f,
+ 0xed, 0xc9, 0x34, 0xf4, 0x94, 0x4f, 0x83, 0x33, 0xcb, 0x74, 0xc6, 0xb1, 0x37, 0xad, 0xdb, 0x74,
+ 0x93, 0xb6, 0xc4, 0xa7, 0xff, 0x46, 0xcc, 0x32, 0x8d, 0x13, 0xe0, 0x2d, 0x4a, 0x0c, 0x16, 0x65,
+ 0x24, 0x3e, 0xf7, 0x37, 0x33, 0x19, 0x85, 0xc7, 0x44, 0x71, 0x58, 0x94, 0x91, 0xf8, 0xc4, 0xdf,
+ 0xca, 0x64, 0x14, 0x1e, 0x13, 0xc5, 0x61, 0xa4, 0x0c, 0x63, 0xf8, 0x56, 0x42, 0x77, 0x7d, 0xcf,
+ 0xcf, 0xdf, 0xcd, 0x45, 0x6f, 0xbd, 0xa2, 0xe8, 0xf9, 0x3e, 0x2d, 0x56, 0x40, 0x66, 0x21, 0x3e,
+ 0xe9, 0x9b, 0x19, 0x2c, 0x42, 0x7f, 0xc7, 0x28, 0x44, 0x66, 0x21, 0x3e, 0xe6, 0x3f, 0xcb, 0x60,
+ 0x11, 0x3a, 0x3c, 0x46, 0x21, 0xe4, 0xd3, 0x30, 0x5c, 0x9b, 0x5b, 0x5d, 0xf1, 0xd3, 0xf3, 0xfd,
+ 0xdd, 0x5c, 0xec, 0x55, 0x51, 0x88, 0xc3, 0x57, 0x45, 0xe1, 0xcf, 0xe9, 0x01, 0xe8, 0xc7, 0xa3,
+ 0xd4, 0xdb, 0xa5, 0xc1, 0x6f, 0xe4, 0xc6, 0x7f, 0x3b, 0x77, 0xbb, 0x34, 0xf8, 0xdb, 0xb9, 0xf1,
+ 0xdf, 0x61, 0xff, 0xff, 0x4e, 0x6e, 0xfc, 0x77, 0x73, 0xda, 0x13, 0xe1, 0xb0, 0x28, 0x37, 0xa9,
+ 0xe5, 0xad, 0xb4, 0x74, 0x31, 0xa8, 0x53, 0x51, 0xfc, 0x67, 0x2a, 0x4a, 0xa4, 0xc2, 0xfa, 0x7a,
+ 0x0e, 0x46, 0x6a, 0x9e, 0x43, 0xf5, 0xb6, 0x88, 0x2c, 0x77, 0x09, 0x06, 0xb9, 0xf3, 0xb3, 0xff,
+ 0x52, 0x5b, 0x0b, 0x7e, 0x93, 0x2b, 0x30, 0xb6, 0xa0, 0xbb, 0x1e, 0x36, 0xb1, 0x6a, 0x19, 0xf4,
+ 0x11, 0x3e, 0xfc, 0x2b, 0x68, 0x31, 0x28, 0x59, 0xe0, 0x74, 0xbc, 0x1c, 0x06, 0x13, 0x2d, 0xec,
+ 0x1a, 0x50, 0x6d, 0xf0, 0xdb, 0xdb, 0x93, 0x7d, 0x18, 0x3f, 0x2d, 0x56, 0x56, 0xfd, 0xbd, 0x1c,
+ 0x24, 0xdc, 0xb2, 0x0f, 0x1e, 0x41, 0x61, 0x19, 0xce, 0xc4, 0x02, 0xd8, 0x8a, 0xd7, 0x8b, 0x7b,
+ 0x8c, 0x6f, 0x1b, 0x2f, 0x4d, 0x3e, 0x11, 0xbc, 0x9a, 0xbb, 0xab, 0x2d, 0x88, 0x60, 0x79, 0x98,
+ 0xe6, 0xa1, 0xeb, 0xb4, 0x34, 0x09, 0x25, 0x82, 0x21, 0x7d, 0x6f, 0x3c, 0x8c, 0xce, 0x49, 0xae,
+ 0x88, 0x70, 0x0e, 0xb9, 0x30, 0xc4, 0x5e, 0x2c, 0xa9, 0x3c, 0x0f, 0xdf, 0xf0, 0x19, 0x18, 0xa9,
+ 0xb6, 0x3b, 0xd4, 0x71, 0x6d, 0x4b, 0xf7, 0x6c, 0x47, 0xbc, 0x86, 0xc7, 0xf0, 0x6b, 0xa6, 0x04,
+ 0x97, 0x43, 0x82, 0xc9, 0xf4, 0xe4, 0x9a, 0x9f, 0xa9, 0xae, 0x80, 0x71, 0x51, 0xf1, 0x49, 0x6b,
+ 0x3c, 0x51, 0x39, 0xa7, 0x60, 0xa4, 0x77, 0x5d, 0x1d, 0xdf, 0x57, 0x06, 0xa4, 0x5d, 0x06, 0x90,
+ 0x49, 0x91, 0x82, 0xbc, 0x00, 0x25, 0xbc, 0x8f, 0x72, 0x31, 0x03, 0xa5, 0x08, 0xfc, 0xd7, 0x42,
+ 0x88, 0x1c, 0x66, 0x8d, 0xd3, 0x90, 0x3b, 0x30, 0x1e, 0x5e, 0xb6, 0xdf, 0x72, 0xec, 0x6e, 0xc7,
+ 0xcf, 0x39, 0x83, 0x09, 0xde, 0x1f, 0x04, 0xb8, 0x7a, 0x13, 0x91, 0x12, 0x8b, 0x44, 0x41, 0x32,
+ 0x0f, 0x67, 0x42, 0x18, 0x13, 0x91, 0x9f, 0xeb, 0x0a, 0xf3, 0x8c, 0x4a, 0xbc, 0x98, 0x38, 0x23,
+ 0x79, 0x46, 0x63, 0xc5, 0x48, 0x15, 0x06, 0xfc, 0xa8, 0x7f, 0x83, 0xbb, 0x2a, 0xe9, 0x59, 0x11,
+ 0xf5, 0x6f, 0x40, 0x8e, 0xf7, 0xe7, 0x97, 0x27, 0x73, 0x30, 0xa6, 0xd9, 0x5d, 0x8f, 0xae, 0xda,
+ 0x62, 0x97, 0x2a, 0xa2, 0x4b, 0x62, 0x9b, 0x1c, 0x86, 0xa9, 0x7b, 0xb6, 0x9f, 0x1f, 0x5f, 0xce,
+ 0xd3, 0x1e, 0x2d, 0x45, 0x96, 0x60, 0x22, 0xe1, 0x96, 0x20, 0x67, 0xad, 0x97, 0x3e, 0x2f, 0xc9,
+ 0x2c, 0x59, 0x94, 0xfc, 0x78, 0x0e, 0x4a, 0xab, 0x8e, 0x6e, 0x7a, 0xae, 0x78, 0x9a, 0x79, 0x7e,
+ 0x6a, 0xd3, 0xd1, 0x3b, 0x4c, 0x3f, 0xa6, 0x30, 0xf0, 0xed, 0x3d, 0xbd, 0xd5, 0xa5, 0xee, 0xf4,
+ 0x7d, 0xf6, 0x75, 0xff, 0xc3, 0xf6, 0xe4, 0x9b, 0x4d, 0x3c, 0xfc, 0x9c, 0x6a, 0xd8, 0xed, 0xeb,
+ 0x4d, 0x47, 0x7f, 0x68, 0x7a, 0x68, 0x62, 0xea, 0xad, 0xeb, 0x1e, 0x6d, 0xe1, 0x19, 0xeb, 0x75,
+ 0xbd, 0x63, 0x5e, 0xc7, 0x00, 0xeb, 0xd7, 0x03, 0x4e, 0xbc, 0x06, 0xa6, 0x02, 0x1e, 0xfe, 0x25,
+ 0xab, 0x00, 0xc7, 0x91, 0x25, 0x00, 0xf1, 0xa9, 0xe5, 0x4e, 0x47, 0xbc, 0xf3, 0x94, 0x4e, 0x26,
+ 0x7d, 0x0c, 0x57, 0xec, 0x40, 0x60, 0x7a, 0x47, 0x0a, 0x2a, 0xac, 0x49, 0x1c, 0x98, 0x16, 0xac,
+ 0x8a, 0x16, 0xf9, 0x62, 0x1a, 0x0d, 0x25, 0xee, 0x37, 0x36, 0x45, 0x48, 0xf1, 0x62, 0x64, 0x0d,
+ 0xce, 0x08, 0xbe, 0x41, 0x0a, 0x92, 0xb1, 0xe8, 0xac, 0x10, 0x43, 0x73, 0xa5, 0x0d, 0xda, 0x68,
+ 0x08, 0xb0, 0x5c, 0x47, 0xac, 0x04, 0x99, 0x0e, 0x53, 0x26, 0x2f, 0xe9, 0x6d, 0xea, 0x2a, 0x67,
+ 0x50, 0x63, 0x2f, 0xef, 0x6c, 0x4f, 0x2a, 0x7e, 0x79, 0x0c, 0x80, 0x29, 0x8b, 0x2e, 0x5a, 0x44,
+ 0xe6, 0xc1, 0xb5, 0x7e, 0x3c, 0x85, 0x47, 0x5c, 0xe7, 0xa3, 0x45, 0xc8, 0x0c, 0x8c, 0x06, 0xcf,
+ 0x4c, 0xee, 0xde, 0xad, 0x56, 0xf0, 0x21, 0xa9, 0x88, 0x81, 0x1a, 0x4b, 0x12, 0x22, 0x33, 0x89,
+ 0x94, 0x91, 0x62, 0x73, 0xf0, 0x97, 0xa5, 0xb1, 0xd8, 0x1c, 0x9d, 0x94, 0xd8, 0x1c, 0x2b, 0xe4,
+ 0x6d, 0x18, 0x2e, 0xdf, 0xaf, 0x89, 0x98, 0x23, 0xae, 0x72, 0x36, 0xcc, 0x38, 0xa5, 0x6f, 0xba,
+ 0x75, 0x3f, 0x3e, 0x89, 0xdc, 0x74, 0x99, 0x9e, 0xcc, 0xc2, 0x58, 0xc4, 0x53, 0xcd, 0x55, 0xce,
+ 0x21, 0x07, 0x6c, 0xb9, 0x8e, 0x98, 0xba, 0x23, 0x50, 0xf2, 0xf0, 0x8a, 0x16, 0x62, 0x5a, 0x53,
+ 0x31, 0x5d, 0xcc, 0xde, 0xa3, 0x51, 0x0c, 0x6f, 0x82, 0xcf, 0x52, 0x07, 0xb9, 0xd6, 0x18, 0x02,
+ 0x55, 0x77, 0x38, 0x4e, 0xee, 0xd1, 0x58, 0x31, 0xf2, 0x3e, 0x10, 0xcc, 0xf7, 0x43, 0x0d, 0xff,
+ 0xe2, 0xb2, 0x5a, 0x71, 0x95, 0x0b, 0x18, 0x00, 0x9c, 0xc4, 0xc3, 0x29, 0x54, 0x2b, 0xd3, 0x57,
+ 0xc4, 0xf4, 0xf1, 0xb4, 0xce, 0x4b, 0xd5, 0xfd, 0x50, 0x0a, 0x75, 0x33, 0x92, 0x0c, 0x39, 0x85,
+ 0x2b, 0xd9, 0x84, 0x8b, 0x2b, 0x0e, 0x7d, 0x68, 0xda, 0x5d, 0xd7, 0x5f, 0x3e, 0xfc, 0x79, 0xeb,
+ 0xe2, 0xae, 0xf3, 0xd6, 0xb3, 0xa2, 0xe2, 0xf3, 0x1d, 0x87, 0x3e, 0xac, 0xfb, 0x61, 0x9f, 0x23,
+ 0x51, 0x4b, 0xb3, 0xb8, 0x63, 0x4a, 0xe7, 0x0f, 0xba, 0x0e, 0x15, 0x70, 0x93, 0xba, 0x8a, 0x12,
+ 0x4e, 0xb5, 0x3c, 0x52, 0x8d, 0x19, 0xe0, 0x22, 0x29, 0x9d, 0xa3, 0xc5, 0x88, 0x06, 0xe4, 0xd6,
+ 0x8c, 0x7f, 0x89, 0x5d, 0x6e, 0xf0, 0xc4, 0xb7, 0xca, 0x13, 0xc8, 0x4c, 0x65, 0x62, 0x69, 0x36,
+ 0x82, 0x10, 0xf0, 0x75, 0x5d, 0xe0, 0x65, 0xb1, 0x24, 0x4b, 0x93, 0x05, 0x18, 0x5f, 0x71, 0xf0,
+ 0x48, 0xed, 0x0e, 0xdd, 0x5a, 0xb1, 0x5b, 0x66, 0x63, 0x0b, 0x5f, 0xc7, 0x8a, 0xa9, 0xb2, 0xc3,
+ 0x71, 0xf5, 0x07, 0x74, 0xab, 0xde, 0x41, 0xac, 0xbc, 0xac, 0xc4, 0x4b, 0xca, 0x21, 0x99, 0x9f,
+ 0xdc, 0x5b, 0x48, 0x66, 0x0a, 0xe3, 0xe2, 0x0a, 0xfc, 0x91, 0x47, 0x2d, 0xb6, 0xd4, 0xbb, 0xe2,
+ 0x25, 0xac, 0x12, 0xbb, 0x32, 0x0f, 0xf0, 0x7c, 0xea, 0x10, 0xa3, 0x8c, 0x06, 0x60, 0xb9, 0x61,
+ 0xf1, 0x22, 0xc9, 0xb8, 0xc5, 0x4f, 0x1d, 0x20, 0x6e, 0xf1, 0xdf, 0x29, 0xc8, 0xf3, 0x2f, 0xb9,
+ 0x0c, 0x45, 0x29, 0xad, 0x10, 0x06, 0x65, 0xc5, 0x10, 0xec, 0x45, 0x11, 0x6b, 0x7a, 0x48, 0xd8,
+ 0x2e, 0x41, 0xf4, 0x1d, 0xcc, 0x23, 0x19, 0x06, 0xea, 0xd4, 0x42, 0x02, 0xcc, 0xe1, 0xd7, 0x5d,
+ 0x6b, 0x99, 0x0d, 0x0c, 0xcc, 0x5f, 0x90, 0xc2, 0x6d, 0x20, 0x94, 0xc7, 0xe5, 0x97, 0x48, 0xc8,
+ 0x0d, 0x18, 0xf6, 0x8f, 0x72, 0xc3, 0xa0, 0xc4, 0x18, 0xaf, 0x5d, 0xcc, 0xd6, 0x22, 0x1c, 0xbc,
+ 0x44, 0x44, 0xde, 0x00, 0x08, 0xa7, 0x03, 0x61, 0x69, 0xe1, 0x52, 0x21, 0xcf, 0x1e, 0xf2, 0x52,
+ 0x11, 0x52, 0xb3, 0x89, 0x53, 0x56, 0x47, 0x3f, 0x6b, 0x29, 0x4e, 0x9c, 0x11, 0x1d, 0x96, 0x15,
+ 0x24, 0x5a, 0x84, 0x2c, 0xc3, 0x44, 0x42, 0x03, 0x45, 0x08, 0x63, 0xcc, 0x5c, 0x9f, 0xa2, 0xbe,
+ 0xf2, 0xc2, 0x9c, 0x28, 0x4b, 0x9e, 0x83, 0xc2, 0x5d, 0xad, 0x2a, 0xc2, 0xa8, 0xf2, 0x08, 0xbc,
+ 0x91, 0x18, 0x4b, 0x0c, 0xab, 0xfe, 0x68, 0x3e, 0xb1, 0x36, 0x31, 0xe9, 0x09, 0x56, 0x52, 0x0f,
+ 0xa2, 0xf4, 0xfc, 0xfa, 0xb9, 0xf4, 0x24, 0x22, 0x72, 0x15, 0x06, 0x57, 0xd8, 0xcc, 0xd0, 0xb0,
+ 0x5b, 0xa2, 0x3f, 0x31, 0x20, 0x56, 0x47, 0xc0, 0xb4, 0x00, 0x4b, 0x6e, 0x48, 0xc9, 0x76, 0xa5,
+ 0xc8, 0xe4, 0x7e, 0xb2, 0xdd, 0x78, 0x88, 0x6e, 0x4c, 0xbb, 0x7b, 0x23, 0x96, 0xbc, 0x4b, 0x94,
+ 0x49, 0x59, 0x17, 0xc3, 0x64, 0x5d, 0x81, 0x55, 0xda, 0xbf, 0x9b, 0x55, 0xaa, 0xfe, 0xbd, 0x5c,
+ 0x72, 0x9c, 0x91, 0x9b, 0xc9, 0x20, 0xc1, 0xb8, 0x08, 0x05, 0x40, 0xb9, 0xd6, 0x20, 0x5c, 0x70,
+ 0x24, 0xdc, 0x6f, 0xfe, 0xc0, 0xe1, 0x7e, 0x0b, 0xfb, 0x0c, 0xf7, 0xab, 0xfe, 0xbf, 0xc5, 0x9e,
+ 0x2e, 0xdb, 0xc7, 0x12, 0x16, 0xee, 0x75, 0xb6, 0xb3, 0x62, 0xb5, 0x97, 0xdd, 0xc4, 0xfe, 0x80,
+ 0x7b, 0xa4, 0xd6, 0x75, 0x3e, 0xb4, 0x5c, 0x2d, 0x4a, 0x49, 0xde, 0x81, 0x11, 0xff, 0x03, 0x30,
+ 0x8c, 0xb4, 0x14, 0xfe, 0x38, 0x58, 0xd5, 0x62, 0x01, 0x97, 0x23, 0x05, 0xc8, 0x2b, 0x30, 0x84,
+ 0x36, 0x4d, 0x47, 0x6f, 0xf8, 0x31, 0xc6, 0x79, 0x50, 0x72, 0x1f, 0x28, 0x87, 0x3e, 0x0b, 0x28,
+ 0xc9, 0x17, 0xa0, 0x24, 0x12, 0x6d, 0xf0, 0x3c, 0xf4, 0xd7, 0xf7, 0xe0, 0xe3, 0x3e, 0x25, 0x27,
+ 0xd9, 0xe0, 0xbb, 0x14, 0x04, 0x44, 0x76, 0x29, 0x3c, 0xbf, 0xc6, 0x2a, 0x9c, 0x5d, 0x71, 0xa8,
+ 0x81, 0xaf, 0x29, 0x66, 0x1f, 0x75, 0x1c, 0x91, 0x02, 0x85, 0x8f, 0x72, 0x5c, 0xa4, 0x3a, 0x3e,
+ 0x9a, 0x2d, 0x9f, 0x02, 0x2f, 0x07, 0x3a, 0x4e, 0x29, 0xce, 0x2c, 0x17, 0xde, 0x92, 0x3b, 0x74,
+ 0x6b, 0xd3, 0x76, 0x0c, 0x9e, 0x25, 0x44, 0xcc, 0xdf, 0x42, 0xd0, 0x0f, 0x04, 0x4a, 0xb6, 0x5c,
+ 0xa2, 0x85, 0x2e, 0xbd, 0x0e, 0xc3, 0x07, 0x4d, 0x54, 0xf1, 0x6b, 0xf9, 0x8c, 0xc7, 0x4f, 0x8f,
+ 0x6f, 0xae, 0xc0, 0x20, 0x81, 0x75, 0x7f, 0x46, 0x02, 0xeb, 0xef, 0xe6, 0x33, 0x5e, 0x76, 0x3d,
+ 0xd6, 0x89, 0x66, 0x03, 0x61, 0x44, 0x13, 0xcd, 0x86, 0x39, 0x7e, 0x4d, 0x43, 0x93, 0x89, 0x62,
+ 0x29, 0xa9, 0x4b, 0xbb, 0xa6, 0xa4, 0xfe, 0xc5, 0x42, 0xaf, 0x97, 0x6f, 0xa7, 0xb2, 0xdf, 0x8f,
+ 0xec, 0x6f, 0xc0, 0x70, 0x20, 0xd9, 0x6a, 0x05, 0x8d, 0x9e, 0xd1, 0x20, 0x2d, 0x0e, 0x07, 0x63,
+ 0x19, 0x89, 0x88, 0x5c, 0xe3, 0x6d, 0xad, 0x99, 0x1f, 0xf0, 0x04, 0x0d, 0xa3, 0x22, 0xf4, 0xbe,
+ 0xee, 0xe9, 0x75, 0xd7, 0xfc, 0x80, 0x6a, 0x01, 0x5a, 0xfd, 0xcf, 0xf3, 0xa9, 0xcf, 0x07, 0x4f,
+ 0xfb, 0x68, 0x1f, 0x7d, 0x94, 0x22, 0x44, 0xfe, 0xf0, 0xf1, 0x54, 0x88, 0xfb, 0x10, 0xe2, 0x1f,
+ 0xe7, 0x53, 0x9f, 0x89, 0x9e, 0x0a, 0x71, 0x3f, 0xb3, 0xc5, 0x0b, 0x30, 0xa4, 0xd9, 0x9b, 0xee,
+ 0x0c, 0x6e, 0x6c, 0xf8, 0x5c, 0x81, 0x13, 0xb5, 0x63, 0x6f, 0xba, 0x75, 0xdc, 0xb2, 0x68, 0x21,
+ 0x81, 0xfa, 0xbd, 0x7c, 0x8f, 0x87, 0xb4, 0xa7, 0x82, 0xff, 0x30, 0x97, 0xc8, 0xdf, 0xcc, 0x47,
+ 0x1e, 0xea, 0x3e, 0xbe, 0xc2, 0xbe, 0x0e, 0x50, 0x6b, 0x6c, 0xd0, 0xb6, 0x2e, 0x25, 0xb9, 0xc2,
+ 0x73, 0x07, 0x17, 0xa1, 0x22, 0x39, 0x72, 0x48, 0xa2, 0x7e, 0x23, 0x1f, 0x7b, 0xa9, 0x7c, 0x2a,
+ 0xbb, 0x3d, 0xcb, 0x2e, 0xd0, 0x3a, 0xf1, 0xf8, 0xfa, 0x54, 0x72, 0x7b, 0x95, 0xdc, 0x4f, 0xe4,
+ 0x63, 0xef, 0xd4, 0x1f, 0x5b, 0xd9, 0xb1, 0x01, 0x98, 0x7c, 0x3f, 0xff, 0xd8, 0x6a, 0xd2, 0x0b,
+ 0x30, 0x24, 0xe4, 0x10, 0x2c, 0x15, 0x7c, 0xde, 0xe7, 0x40, 0x3c, 0x65, 0x0d, 0x08, 0xd4, 0x3f,
+ 0x95, 0x87, 0x68, 0xfc, 0x80, 0xc7, 0x54, 0x87, 0x7e, 0x33, 0x1f, 0x8d, 0x9c, 0xf0, 0xf8, 0xea,
+ 0xcf, 0x14, 0x40, 0xad, 0xbb, 0xd6, 0x10, 0x81, 0x77, 0xfb, 0xa5, 0x63, 0xfa, 0x00, 0xaa, 0x49,
+ 0x14, 0xea, 0xff, 0x97, 0x4f, 0x0d, 0xe7, 0xf0, 0xf8, 0x0a, 0xf0, 0x65, 0x3c, 0x15, 0x6f, 0x58,
+ 0xe1, 0x44, 0x8e, 0x87, 0x90, 0x6c, 0xfc, 0x25, 0x32, 0x23, 0xfa, 0x84, 0xe4, 0xd3, 0x29, 0xe6,
+ 0x1a, 0xe6, 0x6d, 0x08, 0xcd, 0x35, 0xf9, 0x1a, 0x42, 0x32, 0xdc, 0xfe, 0x61, 0x7e, 0xb7, 0xe8,
+ 0x17, 0x8f, 0xf3, 0xaa, 0x3a, 0xb0, 0xa2, 0x6f, 0x61, 0x94, 0x46, 0xd6, 0x13, 0x23, 0x3c, 0x6f,
+ 0x5f, 0x87, 0x83, 0xe4, 0xbb, 0x37, 0x41, 0xa5, 0xfe, 0xf3, 0xfe, 0xf4, 0xd0, 0x0b, 0x8f, 0xaf,
+ 0x08, 0x2f, 0x43, 0x71, 0x45, 0xf7, 0x36, 0x84, 0x26, 0xe3, 0x95, 0x5e, 0x47, 0xf7, 0x36, 0x34,
+ 0x84, 0x92, 0x6b, 0x30, 0xa8, 0xe9, 0x9b, 0xfc, 0xcc, 0xb3, 0x14, 0xe6, 0x54, 0x74, 0xf4, 0xcd,
+ 0x3a, 0x3f, 0xf7, 0x0c, 0xd0, 0x44, 0x0d, 0x72, 0x7a, 0xf2, 0x93, 0x6f, 0x4c, 0x28, 0xc7, 0x73,
+ 0x7a, 0x06, 0x99, 0x3c, 0x2f, 0x43, 0x71, 0xda, 0x36, 0xb6, 0xf0, 0xfa, 0x6a, 0x84, 0x57, 0xb6,
+ 0x66, 0x1b, 0x5b, 0x1a, 0x42, 0xc9, 0x4f, 0xe6, 0x60, 0x60, 0x9e, 0xea, 0x06, 0x1b, 0x21, 0x43,
+ 0xbd, 0xbc, 0x4e, 0x3e, 0x77, 0x34, 0x5e, 0x27, 0x13, 0x1b, 0xbc, 0x32, 0x59, 0x51, 0x44, 0xfd,
+ 0xe4, 0x16, 0x0c, 0xce, 0xe8, 0x1e, 0x6d, 0xda, 0xce, 0x16, 0xfa, 0xd1, 0x8c, 0x85, 0xee, 0xfb,
+ 0x11, 0xfd, 0xf1, 0x89, 0xf8, 0xcd, 0x58, 0x43, 0xfc, 0xd2, 0x82, 0xc2, 0x4c, 0x2c, 0xab, 0xba,
+ 0xd3, 0xa4, 0x9e, 0xc8, 0x5f, 0x8d, 0x62, 0xf1, 0x10, 0xa2, 0x09, 0x4c, 0x78, 0xac, 0x3c, 0x92,
+ 0x7e, 0xac, 0x8c, 0xd6, 0x23, 0xfa, 0xda, 0x61, 0x26, 0xcd, 0x51, 0x5c, 0xf4, 0xb9, 0xf5, 0x88,
+ 0x50, 0x4c, 0xa4, 0xa9, 0x49, 0x24, 0xea, 0x77, 0xfa, 0x21, 0xf5, 0xa1, 0xf6, 0xa9, 0x92, 0x9f,
+ 0x2a, 0x79, 0xa8, 0xe4, 0x95, 0x84, 0x92, 0x5f, 0x4a, 0x3e, 0xfd, 0xff, 0x88, 0x6a, 0xf8, 0xcf,
+ 0x15, 0x13, 0x81, 0x43, 0x1e, 0xef, 0xdd, 0x65, 0x28, 0xbd, 0xfe, 0x5d, 0xa5, 0x17, 0x0c, 0x88,
+ 0xd2, 0xae, 0x03, 0x62, 0x60, 0xaf, 0x03, 0x62, 0x30, 0x73, 0x40, 0x84, 0x0a, 0x32, 0x94, 0xa9,
+ 0x20, 0x55, 0x31, 0x68, 0xa0, 0x77, 0xfe, 0x92, 0xcb, 0x3b, 0xdb, 0x93, 0x63, 0x6c, 0x34, 0xa5,
+ 0x26, 0x2e, 0x41, 0x16, 0xea, 0xef, 0x15, 0x7b, 0x44, 0xfb, 0x39, 0x16, 0x1d, 0x79, 0x19, 0x0a,
+ 0xe5, 0x4e, 0x47, 0xe8, 0xc7, 0x59, 0x29, 0xd0, 0x50, 0x46, 0x29, 0x46, 0x4d, 0xde, 0x80, 0x42,
+ 0xf9, 0x7e, 0x2d, 0x9e, 0xb3, 0xa4, 0x7c, 0xbf, 0x26, 0xbe, 0x24, 0xb3, 0xec, 0xfd, 0x1a, 0x79,
+ 0x2b, 0x0c, 0x1e, 0xba, 0xd1, 0xb5, 0x1e, 0x88, 0x8d, 0xa2, 0x70, 0xb7, 0xf5, 0xdd, 0x71, 0x1a,
+ 0x0c, 0xc5, 0xb6, 0x8b, 0x31, 0xda, 0x98, 0x36, 0x95, 0xf6, 0xae, 0x4d, 0x03, 0xbb, 0x6a, 0xd3,
+ 0xe0, 0x5e, 0xb5, 0x69, 0x68, 0x0f, 0xda, 0x04, 0xbb, 0x6a, 0xd3, 0xf0, 0xe1, 0xb5, 0xa9, 0x03,
+ 0x97, 0x92, 0x11, 0xda, 0x02, 0x8d, 0xd0, 0x80, 0x24, 0xb1, 0xc2, 0xb1, 0x04, 0xaf, 0xfe, 0xbb,
+ 0x1c, 0x5b, 0xdf, 0x44, 0x74, 0xdd, 0x65, 0x78, 0xd9, 0x3f, 0x2d, 0x59, 0x5a, 0xfd, 0xb5, 0x7c,
+ 0x76, 0x60, 0xb9, 0x93, 0x39, 0xc5, 0xfd, 0x50, 0xaa, 0x94, 0x8a, 0xd1, 0x87, 0xfe, 0xd9, 0x52,
+ 0x8e, 0xb1, 0x4d, 0x93, 0xd9, 0xb7, 0x72, 0x59, 0xd1, 0xee, 0x0e, 0x25, 0xb1, 0x8f, 0x27, 0x3d,
+ 0xda, 0xd0, 0x4f, 0xdf, 0x8d, 0xba, 0xb2, 0xcd, 0xc1, 0x88, 0x2c, 0x44, 0x21, 0xa5, 0xbd, 0x08,
+ 0x38, 0x52, 0x4e, 0xfd, 0x7b, 0x39, 0x38, 0x7b, 0xa7, 0xbb, 0x46, 0x85, 0x07, 0x5b, 0xd0, 0x8c,
+ 0xf7, 0x01, 0x18, 0x58, 0x38, 0xb1, 0xe4, 0xd0, 0x89, 0xe5, 0x93, 0x72, 0xa4, 0xba, 0x58, 0x81,
+ 0xa9, 0x90, 0x9a, 0x3b, 0xb0, 0x3c, 0xe5, 0x3b, 0x73, 0x3e, 0xe8, 0xae, 0xd1, 0x7a, 0xc2, 0x93,
+ 0x45, 0xe2, 0x7e, 0xe9, 0x6d, 0xee, 0x26, 0x7f, 0x50, 0xa7, 0x91, 0x5f, 0xc9, 0x67, 0x06, 0x07,
+ 0x3c, 0xb1, 0x59, 0x2c, 0x7f, 0x20, 0xb5, 0x57, 0xe2, 0xd9, 0x2c, 0x53, 0x48, 0x62, 0x1c, 0xd3,
+ 0xb8, 0xa4, 0x0b, 0xec, 0x84, 0xe7, 0x56, 0xfd, 0x50, 0x05, 0xf6, 0x87, 0xb9, 0xcc, 0x20, 0x8e,
+ 0x27, 0x55, 0x60, 0xea, 0xff, 0x5a, 0xf0, 0x63, 0x47, 0x1e, 0xea, 0x13, 0x5e, 0x80, 0x21, 0xf1,
+ 0x84, 0x3e, 0xea, 0x80, 0x2b, 0x8e, 0xf2, 0xf0, 0x68, 0x38, 0x20, 0x60, 0xcb, 0xbc, 0xe4, 0x1d,
+ 0x2c, 0x39, 0xe0, 0x4a, 0x9e, 0xc1, 0x9a, 0x44, 0xc2, 0x16, 0xf2, 0xd9, 0x47, 0xa6, 0x87, 0x56,
+ 0x01, 0xeb, 0xcb, 0x02, 0x5f, 0xc8, 0xe9, 0x23, 0xd3, 0xe3, 0x36, 0x41, 0x80, 0x66, 0x8b, 0x74,
+ 0x2d, 0xcc, 0x1c, 0x2f, 0x16, 0x69, 0x57, 0x24, 0xd0, 0x17, 0xcf, 0xc6, 0x5e, 0x80, 0x21, 0xe1,
+ 0xd5, 0x2a, 0xdc, 0x4c, 0x44, 0x6b, 0x85, 0x1f, 0x2c, 0xb6, 0x36, 0x20, 0x60, 0x1c, 0x35, 0xda,
+ 0x0c, 0x1d, 0xeb, 0x90, 0xa3, 0x83, 0x10, 0x4d, 0x60, 0xc8, 0x0d, 0x18, 0xab, 0x79, 0xba, 0x65,
+ 0xe8, 0x8e, 0xb1, 0xdc, 0xf5, 0x3a, 0x5d, 0x4f, 0x36, 0x4a, 0x5d, 0xcf, 0xb0, 0xbb, 0x9e, 0x16,
+ 0xa3, 0x20, 0x9f, 0x82, 0x51, 0x1f, 0x32, 0xeb, 0x38, 0xb6, 0x23, 0x5b, 0x1e, 0xae, 0x67, 0x50,
+ 0xc7, 0xd1, 0xa2, 0x04, 0xe4, 0xd3, 0x30, 0x5a, 0xb5, 0x1e, 0xda, 0x0d, 0xfe, 0x8c, 0x5c, 0x5b,
+ 0x10, 0x76, 0x08, 0x3e, 0xc5, 0x32, 0x03, 0x44, 0xbd, 0xeb, 0xb4, 0xb4, 0x28, 0xa1, 0xba, 0x93,
+ 0x4f, 0x86, 0xd8, 0x7c, 0x7c, 0x37, 0x2d, 0xd7, 0xa2, 0xce, 0x74, 0xe8, 0x41, 0x8a, 0x06, 0xa1,
+ 0xec, 0xcb, 0xcb, 0xed, 0xc2, 0x1b, 0x30, 0x78, 0x87, 0x6e, 0x71, 0xbf, 0xcf, 0x52, 0xe8, 0x2a,
+ 0xfc, 0x40, 0xc0, 0xe4, 0x13, 0x57, 0x9f, 0x4e, 0xfd, 0x66, 0x3e, 0x19, 0x3c, 0xf4, 0xf1, 0x15,
+ 0xf6, 0xa7, 0x60, 0x00, 0x45, 0x59, 0xf5, 0x8f, 0xfc, 0x51, 0x80, 0x28, 0xee, 0xa8, 0x07, 0xb2,
+ 0x4f, 0xa6, 0xfe, 0x42, 0x29, 0x1e, 0x51, 0xf6, 0xf1, 0x95, 0xde, 0x9b, 0x30, 0x3c, 0x63, 0x5b,
+ 0xae, 0xe9, 0x7a, 0xd4, 0x6a, 0xf8, 0x0a, 0xfb, 0x04, 0x33, 0xa8, 0x1a, 0x21, 0x58, 0x7e, 0x83,
+ 0x24, 0x51, 0x1f, 0x44, 0x79, 0xc9, 0xab, 0x30, 0x84, 0x22, 0x47, 0x3f, 0x69, 0x3e, 0xe1, 0xe1,
+ 0x6d, 0xc1, 0x1a, 0x03, 0xc6, 0x9d, 0xa4, 0x43, 0x52, 0x72, 0x17, 0x06, 0x67, 0x36, 0xcc, 0x96,
+ 0xe1, 0x50, 0x0b, 0xfd, 0x85, 0xa5, 0xc0, 0x1d, 0xd1, 0xbe, 0x9c, 0xc2, 0x7f, 0x91, 0x96, 0x37,
+ 0xa7, 0x21, 0x8a, 0x45, 0x5e, 0x61, 0x09, 0xd8, 0xa5, 0x9f, 0xcd, 0x03, 0x84, 0x05, 0xc8, 0x33,
+ 0x90, 0x0f, 0x92, 0x32, 0xa3, 0x9b, 0x4a, 0x44, 0x83, 0xf2, 0xb8, 0x54, 0x88, 0xb1, 0x9d, 0xdf,
+ 0x75, 0x6c, 0xdf, 0x85, 0x12, 0x3f, 0xf1, 0x42, 0x4f, 0x72, 0x29, 0xc8, 0x65, 0x66, 0x83, 0xa7,
+ 0x90, 0x9e, 0x6f, 0x66, 0xd1, 0xf2, 0x8c, 0x78, 0x65, 0x73, 0x66, 0x97, 0x1a, 0xd0, 0x8f, 0x7f,
+ 0x91, 0x2b, 0x50, 0x5c, 0xf5, 0x13, 0xba, 0x8e, 0xf2, 0x59, 0x3a, 0x26, 0x3f, 0xc4, 0xb3, 0x6e,
+ 0x9a, 0xb1, 0x2d, 0x8f, 0x55, 0x8d, 0xad, 0x1e, 0x11, 0x72, 0x11, 0xb0, 0x88, 0x5c, 0x04, 0x4c,
+ 0xfd, 0xaf, 0xf3, 0x29, 0xb1, 0x8e, 0x1f, 0xdf, 0x61, 0xf2, 0x3a, 0x00, 0x3e, 0xe9, 0x66, 0xf2,
+ 0xf4, 0x9f, 0x68, 0xe0, 0x28, 0x41, 0x46, 0xa8, 0xb6, 0x91, 0x6d, 0x47, 0x48, 0xac, 0xfe, 0x83,
+ 0x5c, 0x22, 0x40, 0xee, 0xa1, 0xe4, 0x28, 0x5b, 0x65, 0xf9, 0x03, 0x9a, 0xb1, 0x7e, 0x5f, 0x14,
+ 0xf6, 0xd7, 0x17, 0xd1, 0x6f, 0x39, 0x02, 0xcb, 0xf4, 0x38, 0xbf, 0xe5, 0x3b, 0xf9, 0xb4, 0x70,
+ 0xc1, 0x27, 0x53, 0xc5, 0x6f, 0x06, 0x46, 0x69, 0x31, 0x16, 0xa0, 0x1d, 0xa1, 0xf1, 0xa4, 0xd3,
+ 0xc2, 0x4c, 0xfd, 0x22, 0x9c, 0x89, 0x05, 0xd1, 0x15, 0xf9, 0x7f, 0xaf, 0xf4, 0x8e, 0xc6, 0x9b,
+ 0x1d, 0x0c, 0x20, 0x42, 0xa6, 0xfe, 0xff, 0xb9, 0xde, 0x21, 0x94, 0x8f, 0x5d, 0x75, 0x52, 0x04,
+ 0x50, 0xf8, 0x93, 0x11, 0xc0, 0x11, 0x6c, 0x83, 0x4f, 0xb6, 0x00, 0x3e, 0x22, 0x93, 0xc7, 0x87,
+ 0x2d, 0x80, 0x5f, 0xc8, 0xed, 0x1a, 0x01, 0xfb, 0xb8, 0x65, 0xa0, 0xfe, 0x4f, 0xb9, 0xd4, 0x48,
+ 0xd5, 0x87, 0x6a, 0xd7, 0x5b, 0x50, 0xe2, 0x6e, 0x35, 0xa2, 0x55, 0x52, 0x6e, 0x2f, 0x06, 0xcd,
+ 0xca, 0x86, 0xcf, 0xb1, 0x64, 0x01, 0x06, 0x78, 0x1b, 0x0c, 0xd1, 0x1b, 0x1f, 0xeb, 0x11, 0x2e,
+ 0xdb, 0xc8, 0x9a, 0x1c, 0x05, 0x5a, 0xfd, 0xfb, 0xb9, 0x44, 0xe0, 0xec, 0x63, 0xfc, 0xb6, 0x70,
+ 0xaa, 0x2e, 0xec, 0x7d, 0xaa, 0x56, 0xff, 0x59, 0x3e, 0x3d, 0x6e, 0xf7, 0x31, 0x7e, 0xc8, 0x51,
+ 0x1c, 0xa7, 0x1d, 0x6c, 0xdd, 0x5a, 0x85, 0xb1, 0xa8, 0x2c, 0xc4, 0xb2, 0xf5, 0x74, 0x7a, 0xf4,
+ 0xf2, 0x8c, 0x56, 0xc4, 0x78, 0xa8, 0xdf, 0xce, 0x25, 0x43, 0x8e, 0x1f, 0xfb, 0xfc, 0x74, 0x30,
+ 0x6d, 0x89, 0x7e, 0xca, 0x47, 0x64, 0xad, 0x39, 0x8a, 0x4f, 0xf9, 0x88, 0xac, 0x1a, 0x07, 0xfb,
+ 0x94, 0x5f, 0xca, 0x67, 0x45, 0x6c, 0x3f, 0xf6, 0x0f, 0xfa, 0xbc, 0x2c, 0x64, 0xde, 0x32, 0xf1,
+ 0x69, 0xcf, 0x64, 0x85, 0x48, 0xcf, 0xe0, 0x99, 0xe0, 0x73, 0xb0, 0x31, 0x9e, 0x2a, 0xac, 0x8f,
+ 0x88, 0x22, 0x9f, 0x0c, 0x61, 0x7d, 0x44, 0x86, 0xca, 0x47, 0x4f, 0x58, 0xbf, 0x9d, 0xdf, 0x6b,
+ 0x9a, 0x80, 0x53, 0xe1, 0x25, 0x84, 0xf7, 0xd5, 0x7c, 0x32, 0x7d, 0xc5, 0xb1, 0x8b, 0x69, 0x0e,
+ 0x4a, 0x22, 0x91, 0x46, 0xa6, 0x70, 0x38, 0x3e, 0xcb, 0xa2, 0x11, 0xdf, 0x71, 0x13, 0xc4, 0x45,
+ 0xce, 0xde, 0x44, 0xc2, 0x69, 0xd5, 0xef, 0xe5, 0x62, 0xb9, 0x1e, 0x8e, 0xe5, 0x08, 0xe1, 0x40,
+ 0x4b, 0x12, 0x79, 0xdb, 0x3f, 0xcc, 0x2c, 0xc6, 0x62, 0x6d, 0x07, 0xdf, 0x53, 0xa1, 0x9e, 0x6e,
+ 0xb6, 0xe2, 0xe5, 0x45, 0x4c, 0x80, 0x6f, 0xe6, 0x61, 0x22, 0x41, 0x4a, 0xae, 0x44, 0x42, 0xe9,
+ 0xe0, 0xb1, 0x64, 0xcc, 0x79, 0x9c, 0x07, 0xd5, 0xd9, 0xc7, 0x49, 0xea, 0x15, 0x28, 0x56, 0xf4,
+ 0x2d, 0xfe, 0x6d, 0xfd, 0x9c, 0xa5, 0xa1, 0x6f, 0xc9, 0x27, 0x6e, 0x88, 0x27, 0x6b, 0x70, 0x9e,
+ 0xdf, 0x87, 0x98, 0xb6, 0xb5, 0x6a, 0xb6, 0x69, 0xd5, 0x5a, 0x34, 0x5b, 0x2d, 0xd3, 0x15, 0x97,
+ 0x7a, 0x2f, 0xec, 0x6c, 0x4f, 0x5e, 0xf5, 0x6c, 0x4f, 0x6f, 0xd5, 0xa9, 0x4f, 0x56, 0xf7, 0xcc,
+ 0x36, 0xad, 0x9b, 0x56, 0xbd, 0x8d, 0x94, 0x12, 0xcb, 0x74, 0x56, 0xa4, 0xca, 0xc3, 0xaa, 0xd7,
+ 0x1a, 0xba, 0x65, 0x51, 0xa3, 0x6a, 0x4d, 0x6f, 0x79, 0x94, 0x5f, 0x06, 0x16, 0xf8, 0x91, 0x20,
+ 0x7f, 0x1b, 0xce, 0xd1, 0x8c, 0xf1, 0x1a, 0x23, 0xd0, 0x52, 0x0a, 0xa9, 0xbf, 0x53, 0x4c, 0x49,
+ 0xf3, 0x71, 0x82, 0xd4, 0xc7, 0xef, 0xe9, 0xe2, 0x2e, 0x3d, 0x7d, 0x1d, 0x06, 0x44, 0xdc, 0x5a,
+ 0x71, 0xc1, 0x80, 0xce, 0xec, 0x0f, 0x39, 0x48, 0xbe, 0xa1, 0x11, 0x54, 0xa4, 0x05, 0x97, 0x56,
+ 0x59, 0x37, 0xa5, 0x77, 0x66, 0xe9, 0x00, 0x9d, 0xd9, 0x83, 0x1f, 0x79, 0x0f, 0x2e, 0x22, 0x36,
+ 0xa5, 0x5b, 0x07, 0xb0, 0x2a, 0x8c, 0x51, 0xc5, 0xab, 0x4a, 0xef, 0xdc, 0xac, 0xf2, 0xe4, 0xf3,
+ 0x30, 0x12, 0x0c, 0x10, 0x93, 0xba, 0xe2, 0xe6, 0xa2, 0xc7, 0x38, 0xe3, 0x01, 0xe0, 0x18, 0x18,
+ 0x5d, 0xc8, 0xa2, 0x41, 0xc4, 0x22, 0xbc, 0xd4, 0xff, 0x31, 0xd7, 0x2b, 0xdd, 0xc8, 0xb1, 0xcf,
+ 0xca, 0x6f, 0xc3, 0x80, 0xc1, 0x3f, 0x4a, 0xe8, 0x54, 0xef, 0x84, 0x24, 0x9c, 0x54, 0xf3, 0xcb,
+ 0xa8, 0xff, 0x34, 0xd7, 0x33, 0xcb, 0xc9, 0x49, 0xff, 0xbc, 0xaf, 0x16, 0x32, 0x3e, 0x4f, 0x4c,
+ 0xa2, 0xd7, 0x60, 0xdc, 0x0c, 0xc3, 0xb0, 0xd7, 0xc3, 0xf0, 0x53, 0xda, 0x19, 0x09, 0x8e, 0xa3,
+ 0xeb, 0x26, 0x5c, 0xf0, 0x1d, 0x1f, 0x1d, 0xdf, 0x43, 0xcc, 0xad, 0x77, 0x1d, 0x93, 0x8f, 0x4b,
+ 0xed, 0x9c, 0x1b, 0x73, 0x1f, 0x73, 0xef, 0x3a, 0x26, 0xab, 0x40, 0xf7, 0x36, 0xa8, 0xa5, 0xd7,
+ 0x37, 0x6d, 0xe7, 0x01, 0x46, 0x19, 0xe5, 0x83, 0x53, 0x3b, 0xc3, 0xe1, 0xf7, 0x7d, 0x30, 0x79,
+ 0x0e, 0x46, 0x9b, 0xad, 0x2e, 0x0d, 0xe2, 0x3a, 0xf2, 0xbb, 0x3e, 0x6d, 0x84, 0x01, 0x83, 0x1b,
+ 0x92, 0xa7, 0x00, 0x90, 0xc8, 0xc3, 0x1c, 0x34, 0x78, 0xb1, 0xa7, 0x0d, 0x31, 0xc8, 0xaa, 0xe8,
+ 0xae, 0x4b, 0x5c, 0xab, 0xb9, 0x90, 0xea, 0x2d, 0xdb, 0x6a, 0xd6, 0x3d, 0xea, 0xb4, 0xb1, 0xa1,
+ 0xe8, 0xcc, 0xa0, 0x5d, 0x40, 0x0a, 0xbc, 0x3a, 0x71, 0x17, 0x6c, 0xab, 0xb9, 0x4a, 0x9d, 0x36,
+ 0x6b, 0xea, 0x0b, 0x40, 0x44, 0x53, 0x1d, 0x3c, 0xf4, 0xe0, 0x1f, 0x87, 0xde, 0x0c, 0x9a, 0xf8,
+ 0x08, 0x7e, 0x1a, 0x82, 0x1f, 0x36, 0x09, 0xc3, 0x3c, 0xb8, 0x1d, 0x17, 0x1a, 0xba, 0x30, 0x68,
+ 0xc0, 0x41, 0x28, 0xaf, 0x0b, 0x20, 0xbc, 0x2b, 0xb8, 0x57, 0xb7, 0x26, 0x7e, 0xa9, 0x5f, 0x2e,
+ 0xa4, 0x25, 0x66, 0x39, 0x94, 0xa2, 0x85, 0xd3, 0x6a, 0x7e, 0x5f, 0xd3, 0xea, 0x19, 0xab, 0xdb,
+ 0xae, 0xeb, 0x9d, 0x4e, 0x7d, 0xdd, 0x6c, 0xe1, 0xb3, 0x2a, 0x5c, 0xf8, 0xb4, 0x51, 0xab, 0xdb,
+ 0x2e, 0x77, 0x3a, 0x73, 0x1c, 0x48, 0x9e, 0x87, 0x09, 0x46, 0x87, 0x9d, 0x14, 0x50, 0x16, 0x91,
+ 0x92, 0x31, 0xc0, 0xe8, 0xb0, 0x3e, 0xed, 0x13, 0x30, 0x28, 0x78, 0xf2, 0xb5, 0xaa, 0x5f, 0x1b,
+ 0xe0, 0xcc, 0x5c, 0xd6, 0x73, 0x01, 0x1b, 0x3e, 0xb9, 0xf6, 0x6b, 0x43, 0x7e, 0x79, 0x8c, 0x81,
+ 0x6c, 0x75, 0xdb, 0x3c, 0x22, 0xd6, 0x00, 0x22, 0x83, 0xdf, 0xe4, 0x0a, 0x8c, 0x31, 0x2e, 0x81,
+ 0xc0, 0x78, 0xd8, 0xd8, 0x7e, 0x2d, 0x06, 0x25, 0x37, 0xe0, 0x5c, 0x04, 0xc2, 0x6d, 0x50, 0xfe,
+ 0x4c, 0xa0, 0x5f, 0x4b, 0xc5, 0xa9, 0xdf, 0x28, 0x44, 0xd3, 0xc5, 0x1c, 0x43, 0x47, 0x5c, 0x84,
+ 0x01, 0xdb, 0x69, 0xd6, 0xbb, 0x4e, 0x4b, 0x8c, 0xbd, 0x92, 0xed, 0x34, 0xef, 0x3a, 0x2d, 0x72,
+ 0x1e, 0x4a, 0xac, 0x77, 0x4c, 0x43, 0x0c, 0xb1, 0x7e, 0xbd, 0xd3, 0xa9, 0x1a, 0xa4, 0xcc, 0x3b,
+ 0x04, 0x43, 0x8e, 0xd6, 0x1b, 0xb8, 0xb5, 0xe7, 0x4e, 0x09, 0xfd, 0x7c, 0xc5, 0x4b, 0x20, 0xb1,
+ 0x9f, 0x30, 0x10, 0x29, 0x3f, 0x08, 0x88, 0xb1, 0x30, 0x70, 0x5b, 0x62, 0xf0, 0x3e, 0x89, 0xb3,
+ 0x10, 0xc8, 0x90, 0x05, 0xdf, 0xc4, 0x18, 0xa4, 0x02, 0x24, 0xa4, 0x6a, 0xdb, 0x86, 0xb9, 0x6e,
+ 0x52, 0xfe, 0xaa, 0xa3, 0x9f, 0x5f, 0xfc, 0x26, 0xb1, 0xda, 0xb8, 0xcf, 0x64, 0x51, 0x40, 0xc8,
+ 0x9b, 0x5c, 0x09, 0x39, 0x1d, 0xae, 0x7d, 0xbc, 0x6f, 0xb9, 0x9d, 0x16, 0x43, 0xa1, 0x66, 0x62,
+ 0x79, 0x5c, 0x08, 0xd5, 0xbf, 0x56, 0x4c, 0xe6, 0x0c, 0x3a, 0x16, 0xbb, 0x66, 0x1e, 0x40, 0xa4,
+ 0x04, 0x0b, 0x2f, 0xd7, 0x02, 0x8f, 0xf3, 0x10, 0x93, 0xc1, 0x43, 0x2a, 0x4b, 0xae, 0xc1, 0x20,
+ 0xff, 0xa2, 0x6a, 0x45, 0xd8, 0x3b, 0xe8, 0x22, 0xe6, 0x76, 0xcc, 0xf5, 0x75, 0xf4, 0x27, 0x0b,
+ 0xd0, 0xe4, 0x0a, 0x0c, 0x54, 0x96, 0x6a, 0xb5, 0xf2, 0x92, 0x7f, 0x53, 0x8c, 0xef, 0x4b, 0x0c,
+ 0xcb, 0xad, 0xbb, 0xba, 0xe5, 0x6a, 0x3e, 0x92, 0x3c, 0x07, 0xa5, 0xea, 0x0a, 0x92, 0xf1, 0x57,
+ 0x93, 0xc3, 0x3b, 0xdb, 0x93, 0x03, 0x66, 0x87, 0x53, 0x09, 0x14, 0xd6, 0x7b, 0xaf, 0x5a, 0x91,
+ 0xdc, 0x25, 0x78, 0xbd, 0x0f, 0x4d, 0x03, 0xaf, 0x9d, 0xb5, 0x00, 0x4d, 0x5e, 0x81, 0x91, 0x1a,
+ 0x75, 0x4c, 0xbd, 0xb5, 0xd4, 0xc5, 0xad, 0xa2, 0x14, 0x4a, 0xd1, 0x45, 0x78, 0xdd, 0x42, 0x84,
+ 0x16, 0x21, 0x23, 0x97, 0xa1, 0x38, 0x6f, 0x5a, 0xfe, 0x13, 0x06, 0xf4, 0x71, 0xdf, 0x30, 0x2d,
+ 0x4f, 0x43, 0x28, 0x79, 0x0e, 0x0a, 0xb7, 0x57, 0xab, 0xc2, 0x13, 0x0c, 0x79, 0xbd, 0xef, 0x45,
+ 0xc2, 0x32, 0xde, 0x5e, 0xad, 0x92, 0x57, 0x60, 0x88, 0x2d, 0x62, 0xd4, 0x6a, 0x50, 0x57, 0x19,
+ 0xc6, 0x8f, 0xe1, 0x61, 0x04, 0x7d, 0xa0, 0xec, 0xd3, 0x11, 0x50, 0xaa, 0xff, 0x67, 0x3e, 0x3d,
+ 0xa9, 0xd3, 0x31, 0x0c, 0xf5, 0x03, 0xde, 0x22, 0xc7, 0x14, 0xac, 0x78, 0x08, 0x05, 0x5b, 0x87,
+ 0x33, 0x65, 0xa3, 0x6d, 0x5a, 0x65, 0xfc, 0xe9, 0x2e, 0xce, 0x95, 0x71, 0xea, 0x90, 0x9e, 0xe7,
+ 0xc5, 0xd0, 0xe2, 0x7b, 0x78, 0xc0, 0x5f, 0x86, 0xaa, 0xeb, 0x1c, 0x57, 0x6f, 0xaf, 0xeb, 0xf5,
+ 0x06, 0xcf, 0x87, 0xa4, 0xc5, 0x99, 0xaa, 0x3f, 0x93, 0xdf, 0x25, 0x0f, 0xd5, 0xe3, 0x28, 0x7d,
+ 0xf5, 0x6b, 0xf9, 0xde, 0xa9, 0xc0, 0x1e, 0x4b, 0xa1, 0xfc, 0x71, 0x3e, 0x25, 0x31, 0xd7, 0xa1,
+ 0x24, 0x71, 0x0d, 0x06, 0x39, 0x9b, 0xc0, 0x8d, 0x17, 0x67, 0x33, 0xae, 0xac, 0x38, 0x8b, 0xfa,
+ 0x68, 0xb2, 0x04, 0xe7, 0xca, 0xeb, 0xeb, 0xb4, 0xe1, 0x85, 0xa1, 0x9f, 0x97, 0xc2, 0x20, 0xac,
+ 0x3c, 0xd4, 0xad, 0xc0, 0x87, 0xa1, 0xa3, 0x31, 0xd8, 0x48, 0x6a, 0x39, 0xb2, 0x0a, 0x17, 0xe2,
+ 0xf0, 0x1a, 0xdf, 0x02, 0x14, 0xa5, 0xe8, 0xb7, 0x09, 0x8e, 0xfc, 0x3f, 0x2d, 0xa3, 0x6c, 0x5a,
+ 0x2b, 0x71, 0xaa, 0xee, 0xef, 0xd5, 0x4a, 0x9c, 0xb7, 0x53, 0xcb, 0xa9, 0xdf, 0x2c, 0xc8, 0xf9,
+ 0xcb, 0x1e, 0x5f, 0x87, 0xab, 0x9b, 0x11, 0x37, 0xeb, 0xbd, 0x0e, 0x99, 0x57, 0x44, 0x04, 0x11,
+ 0xa3, 0xeb, 0xf8, 0x1e, 0x89, 0x41, 0x04, 0x03, 0x04, 0xca, 0xeb, 0x50, 0x40, 0x49, 0xaa, 0x50,
+ 0x2c, 0x3b, 0x4d, 0x6e, 0xde, 0xee, 0xf6, 0xa8, 0x4a, 0x77, 0x9a, 0x6e, 0xfa, 0xa3, 0x2a, 0xc6,
+ 0x42, 0xfd, 0xb3, 0xf9, 0x1e, 0x29, 0xc7, 0x1e, 0xcb, 0x49, 0xe4, 0x2f, 0xe4, 0xb3, 0x92, 0x87,
+ 0x9d, 0x54, 0xd7, 0xb1, 0x0f, 0x59, 0x38, 0x27, 0xdb, 0xaf, 0xee, 0x08, 0x85, 0xf3, 0x07, 0xf9,
+ 0xac, 0x4c, 0x68, 0xa7, 0xc2, 0x39, 0xd8, 0x04, 0x99, 0x2a, 0xd2, 0xc7, 0xd8, 0xe6, 0x96, 0x55,
+ 0xa1, 0xff, 0x80, 0xee, 0x53, 0x69, 0x22, 0x3d, 0x1d, 0xc2, 0x87, 0xd2, 0xd2, 0x3f, 0xcc, 0x67,
+ 0x66, 0xfc, 0x3b, 0x95, 0xe9, 0x51, 0xca, 0xf4, 0x74, 0xe8, 0x1f, 0x6a, 0xe8, 0xa7, 0xca, 0xf4,
+ 0x74, 0xec, 0x1f, 0x4a, 0x4f, 0x7f, 0x3f, 0x9f, 0x9e, 0xd3, 0xf2, 0x18, 0x94, 0xf4, 0x28, 0x3c,
+ 0x1c, 0xfd, 0x6e, 0x28, 0x1e, 0xaa, 0x1b, 0xfa, 0x0f, 0x61, 0x45, 0x25, 0x05, 0x7a, 0x6c, 0xa3,
+ 0xfe, 0xfb, 0x55, 0xa0, 0x47, 0x30, 0xe4, 0x1f, 0x67, 0x81, 0xfe, 0x54, 0x21, 0x99, 0xc7, 0xf5,
+ 0x71, 0x5d, 0x93, 0x9c, 0x03, 0xae, 0x49, 0x7e, 0x39, 0xf2, 0x0e, 0x9c, 0x09, 0x65, 0x29, 0x47,
+ 0xfe, 0xc2, 0xeb, 0xa3, 0x06, 0x43, 0xd5, 0xdf, 0x67, 0x38, 0x11, 0xa2, 0x26, 0x4e, 0xad, 0x7e,
+ 0xaf, 0x90, 0x4c, 0x86, 0x7b, 0xda, 0x1b, 0x07, 0xec, 0x8d, 0xbb, 0x70, 0x61, 0xa6, 0xeb, 0x38,
+ 0xd4, 0xf2, 0xd2, 0x3b, 0x05, 0x0f, 0xef, 0x1b, 0x9c, 0xa2, 0x9e, 0xec, 0x9c, 0x8c, 0xc2, 0x8c,
+ 0xad, 0x78, 0xdd, 0x10, 0x67, 0x3b, 0x10, 0xb2, 0xed, 0x72, 0x8a, 0x34, 0xb6, 0xe9, 0x85, 0xd5,
+ 0x7f, 0x98, 0x4f, 0xa6, 0x2f, 0x3e, 0xed, 0xfa, 0x83, 0x75, 0xbd, 0xfa, 0xe5, 0x42, 0x3c, 0x85,
+ 0xf3, 0xe9, 0x02, 0x71, 0xf0, 0xee, 0xf0, 0x25, 0x89, 0xe3, 0x46, 0xfa, 0x0a, 0x1f, 0x9e, 0xf5,
+ 0x15, 0x3e, 0x5e, 0xfd, 0x95, 0x62, 0x3c, 0x1d, 0xf6, 0x69, 0x77, 0x1c, 0x5f, 0x77, 0x90, 0x65,
+ 0x38, 0x27, 0xe6, 0x36, 0x1f, 0x84, 0x29, 0x20, 0xc4, 0xfc, 0xc5, 0x33, 0xc9, 0x89, 0x69, 0xb1,
+ 0xeb, 0x52, 0xa7, 0xee, 0xe9, 0xee, 0x83, 0x3a, 0xe6, 0x8c, 0xd0, 0x52, 0x0b, 0x32, 0x86, 0x62,
+ 0x56, 0x8b, 0x32, 0x1c, 0x0c, 0x19, 0xfa, 0x13, 0x62, 0x82, 0x61, 0x5a, 0x41, 0xf5, 0x37, 0x73,
+ 0x30, 0x1e, 0xff, 0x1c, 0x32, 0x05, 0x83, 0xec, 0x77, 0xf0, 0xec, 0x5e, 0xca, 0x53, 0xcd, 0x39,
+ 0xf2, 0x2b, 0x79, 0x9f, 0x86, 0xbc, 0x0a, 0x43, 0xe8, 0xfd, 0x80, 0x05, 0xf2, 0x61, 0xb4, 0x83,
+ 0xb0, 0x00, 0x26, 0x4f, 0xe5, 0xc5, 0x42, 0x52, 0xf2, 0x26, 0x0c, 0x57, 0x43, 0x37, 0x2f, 0x71,
+ 0xe7, 0x85, 0xde, 0xa5, 0x52, 0xc9, 0x90, 0x40, 0x93, 0xa9, 0xd5, 0x6f, 0xe7, 0xe3, 0x69, 0xdb,
+ 0x4f, 0x55, 0xfd, 0x60, 0xaa, 0xfe, 0xfc, 0x22, 0x57, 0xf5, 0x3b, 0xa6, 0x65, 0x90, 0x27, 0xe0,
+ 0xfc, 0xdd, 0xda, 0xac, 0x56, 0xbf, 0x53, 0x5d, 0xaa, 0xd4, 0xef, 0x2e, 0xd5, 0x56, 0x66, 0x67,
+ 0xaa, 0x73, 0xd5, 0xd9, 0xca, 0x78, 0x1f, 0x39, 0x0b, 0x67, 0x42, 0xd4, 0xfc, 0xdd, 0xc5, 0xf2,
+ 0xd2, 0x78, 0x8e, 0x4c, 0xc0, 0x68, 0x08, 0x9c, 0x5e, 0x5e, 0x1d, 0xcf, 0x3f, 0xff, 0x09, 0x18,
+ 0x46, 0xf7, 0x36, 0x7e, 0x1d, 0x4f, 0x46, 0x60, 0x70, 0x79, 0xba, 0x36, 0xab, 0xdd, 0x43, 0x26,
+ 0x00, 0xa5, 0xca, 0xec, 0x12, 0x63, 0x98, 0x7b, 0xfe, 0xff, 0xc9, 0x01, 0xd4, 0xe6, 0x56, 0x57,
+ 0x04, 0xe1, 0x30, 0x0c, 0x54, 0x97, 0xee, 0x95, 0x17, 0xaa, 0x8c, 0x6e, 0x10, 0x8a, 0xcb, 0x2b,
+ 0xb3, 0xac, 0x86, 0x21, 0xe8, 0x9f, 0x59, 0x58, 0xae, 0xcd, 0x8e, 0xe7, 0x19, 0x50, 0x9b, 0x2d,
+ 0x57, 0xc6, 0x0b, 0x0c, 0x78, 0x5f, 0xab, 0xae, 0xce, 0x8e, 0x17, 0xd9, 0x9f, 0x0b, 0xb5, 0xd5,
+ 0xf2, 0xea, 0x78, 0x3f, 0xfb, 0x73, 0x0e, 0xff, 0x2c, 0x31, 0x66, 0xb5, 0xd9, 0x55, 0xfc, 0x31,
+ 0xc0, 0x9a, 0x30, 0xe7, 0xff, 0x1a, 0x64, 0x28, 0xc6, 0xba, 0x52, 0xd5, 0xc6, 0x87, 0xd8, 0x0f,
+ 0xc6, 0x92, 0xfd, 0x00, 0xd6, 0x38, 0x6d, 0x76, 0x71, 0xf9, 0xde, 0xec, 0xf8, 0x30, 0xe3, 0xb5,
+ 0x78, 0x87, 0x81, 0x47, 0xd8, 0x9f, 0xda, 0x22, 0xfb, 0x73, 0x94, 0x71, 0xd2, 0x66, 0xcb, 0x0b,
+ 0x2b, 0xe5, 0xd5, 0xf9, 0xf1, 0x31, 0xd6, 0x1e, 0xe4, 0x79, 0x86, 0x97, 0x5c, 0x2a, 0x2f, 0xce,
+ 0x8e, 0x8f, 0x0b, 0x9a, 0xca, 0x42, 0x75, 0xe9, 0xce, 0xf8, 0x04, 0x36, 0xe4, 0xbd, 0x45, 0xfc,
+ 0x41, 0x58, 0x01, 0xfc, 0xeb, 0xec, 0xf3, 0x3f, 0x08, 0xa5, 0xe5, 0x1a, 0x8e, 0x82, 0x8b, 0x70,
+ 0x76, 0xb9, 0x56, 0x5f, 0x7d, 0x6f, 0x65, 0x36, 0x26, 0xef, 0x09, 0x18, 0xf5, 0x11, 0x0b, 0xd5,
+ 0xa5, 0xbb, 0x9f, 0xe3, 0xd2, 0xf6, 0x41, 0x8b, 0xe5, 0x99, 0xe5, 0xda, 0x78, 0x9e, 0xf5, 0x8a,
+ 0x0f, 0xba, 0x5f, 0x5d, 0xaa, 0x2c, 0xdf, 0xaf, 0x8d, 0x17, 0x9e, 0x7f, 0x08, 0x23, 0x3c, 0x77,
+ 0xe6, 0xb2, 0x63, 0x36, 0x4d, 0x8b, 0x3c, 0x05, 0x4f, 0x54, 0x66, 0xef, 0x55, 0x67, 0x66, 0xeb,
+ 0xcb, 0x5a, 0xf5, 0x56, 0x75, 0x29, 0x56, 0xd3, 0x79, 0x98, 0x88, 0xa2, 0xcb, 0x2b, 0xd5, 0xf1,
+ 0x1c, 0xb9, 0x00, 0x24, 0x0a, 0xbe, 0x5d, 0x5e, 0x9c, 0x1b, 0xcf, 0x13, 0x05, 0xce, 0x45, 0xe1,
+ 0xd5, 0xa5, 0xd5, 0xbb, 0x4b, 0xb3, 0xe3, 0x85, 0xe7, 0xff, 0x6a, 0x0e, 0xce, 0xa7, 0xc6, 0x57,
+ 0x26, 0x2a, 0x3c, 0x3d, 0xbb, 0x50, 0xae, 0xad, 0x56, 0x67, 0x6a, 0xb3, 0x65, 0x6d, 0x66, 0xbe,
+ 0x3e, 0x53, 0x5e, 0x9d, 0xbd, 0xb5, 0xac, 0xbd, 0x57, 0xbf, 0x35, 0xbb, 0x34, 0xab, 0x95, 0x17,
+ 0xc6, 0xfb, 0xc8, 0x73, 0x30, 0x99, 0x41, 0x53, 0x9b, 0x9d, 0xb9, 0xab, 0x55, 0x57, 0xdf, 0x1b,
+ 0xcf, 0x91, 0x67, 0xe1, 0xa9, 0x4c, 0x22, 0xf6, 0x7b, 0x3c, 0x4f, 0x9e, 0x86, 0x4b, 0x59, 0x24,
+ 0xef, 0x2e, 0x8c, 0x17, 0x9e, 0xff, 0xf9, 0x1c, 0x90, 0x64, 0x80, 0x5c, 0xf2, 0x0c, 0x5c, 0x66,
+ 0x7a, 0x51, 0xcf, 0x6e, 0xe0, 0xb3, 0xf0, 0x54, 0x2a, 0x85, 0xd4, 0xbc, 0x49, 0x78, 0x32, 0x83,
+ 0x44, 0x34, 0xee, 0x32, 0x28, 0xe9, 0x04, 0xd8, 0xb4, 0xdf, 0xc8, 0xc1, 0xf9, 0x54, 0x0f, 0x18,
+ 0x72, 0x15, 0x3e, 0x56, 0xae, 0x2c, 0xb2, 0xbe, 0x99, 0x59, 0xad, 0x2e, 0x2f, 0xd5, 0xea, 0x8b,
+ 0x73, 0xe5, 0x3a, 0xd3, 0xbe, 0xbb, 0xb5, 0x58, 0x6f, 0x5e, 0x01, 0xb5, 0x07, 0xe5, 0xcc, 0x7c,
+ 0x79, 0xe9, 0x16, 0x1b, 0x7e, 0xe4, 0x63, 0xf0, 0x4c, 0x26, 0xdd, 0xec, 0x52, 0x79, 0x7a, 0x61,
+ 0xb6, 0x32, 0x9e, 0x27, 0x1f, 0x87, 0x67, 0x33, 0xa9, 0x2a, 0xd5, 0x1a, 0x27, 0x2b, 0x4c, 0x57,
+ 0xbe, 0xfd, 0x3f, 0x3f, 0xdd, 0xf7, 0xed, 0x3f, 0x7a, 0x3a, 0xf7, 0x07, 0x7f, 0xf4, 0x74, 0xee,
+ 0x9f, 0xfd, 0xd1, 0xd3, 0xb9, 0xcf, 0xdf, 0xd8, 0x4f, 0xe0, 0x63, 0x3e, 0x6d, 0xad, 0x95, 0xf0,
+ 0x36, 0xfa, 0xe5, 0x7f, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x1c, 0xd7, 0xbc, 0x0e, 0x82, 0x80, 0x01,
+ 0x00,
}
func (m *Metadata) Marshal() (dAtA []byte, err error) {
@@ -36854,6 +36867,16 @@ func (m *AutoUpdateConfigCreate) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ {
+ size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -36921,6 +36944,16 @@ func (m *AutoUpdateConfigUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ {
+ size, err := m.ResourceMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -36988,6 +37021,16 @@ func (m *AutoUpdateConfigDelete) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ {
+ size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -37055,6 +37098,16 @@ func (m *AutoUpdateVersionCreate) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ {
+ size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -37122,6 +37175,16 @@ func (m *AutoUpdateVersionUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ {
+ size, err := m.ResourceMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -37189,6 +37252,16 @@ func (m *AutoUpdateVersionDelete) MarshalToSizedBuffer(dAtA []byte) (int, error)
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
+ {
+ size, err := m.Status.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x2a
{
size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
@@ -46268,6 +46341,8 @@ func (m *AutoUpdateConfigCreate) Size() (n int) {
n += 1 + l + sovEvents(uint64(l))
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = m.Status.Size()
+ n += 1 + l + sovEvents(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -46288,6 +46363,8 @@ func (m *AutoUpdateConfigUpdate) Size() (n int) {
n += 1 + l + sovEvents(uint64(l))
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = m.ResourceMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -46308,6 +46385,8 @@ func (m *AutoUpdateConfigDelete) Size() (n int) {
n += 1 + l + sovEvents(uint64(l))
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = m.Status.Size()
+ n += 1 + l + sovEvents(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -46328,6 +46407,8 @@ func (m *AutoUpdateVersionCreate) Size() (n int) {
n += 1 + l + sovEvents(uint64(l))
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = m.Status.Size()
+ n += 1 + l + sovEvents(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -46348,6 +46429,8 @@ func (m *AutoUpdateVersionUpdate) Size() (n int) {
n += 1 + l + sovEvents(uint64(l))
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = m.ResourceMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -46368,6 +46451,8 @@ func (m *AutoUpdateVersionDelete) Size() (n int) {
n += 1 + l + sovEvents(uint64(l))
l = m.ConnectionMetadata.Size()
n += 1 + l + sovEvents(uint64(l))
+ l = m.Status.Size()
+ n += 1 + l + sovEvents(uint64(l))
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
@@ -102273,6 +102358,39 @@ func (m *AutoUpdateConfigCreate) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -102456,6 +102574,39 @@ func (m *AutoUpdateConfigUpdate) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ResourceMetadata", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ResourceMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -102639,6 +102790,39 @@ func (m *AutoUpdateConfigDelete) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -102822,6 +103006,39 @@ func (m *AutoUpdateVersionCreate) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -103005,6 +103222,39 @@ func (m *AutoUpdateVersionUpdate) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ResourceMetadata", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.ResourceMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -103188,6 +103438,39 @@ func (m *AutoUpdateVersionDelete) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
+ case 5:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
+ }
+ var msglen int
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ msglen |= int(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ if msglen < 0 {
+ return ErrInvalidLengthEvents
+ }
+ postIndex := iNdEx + msglen
+ if postIndex < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if postIndex > l {
+ return io.ErrUnexpectedEOF
+ }
+ if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
diff --git a/api/types/events/oneof.go b/api/types/events/oneof.go
index b25890e99debf..6e856b3c5f2b2 100644
--- a/api/types/events/oneof.go
+++ b/api/types/events/oneof.go
@@ -765,6 +765,31 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_SFTPSummary{
SFTPSummary: e,
}
+ case *AutoUpdateConfigCreate:
+ out.Event = &OneOf_AutoUpdateConfigCreate{
+ AutoUpdateConfigCreate: e,
+ }
+ case *AutoUpdateConfigUpdate:
+ out.Event = &OneOf_AutoUpdateConfigUpdate{
+ AutoUpdateConfigUpdate: e,
+ }
+ case *AutoUpdateConfigDelete:
+ out.Event = &OneOf_AutoUpdateConfigDelete{
+ AutoUpdateConfigDelete: e,
+ }
+
+ case *AutoUpdateVersionCreate:
+ out.Event = &OneOf_AutoUpdateVersionCreate{
+ AutoUpdateVersionCreate: e,
+ }
+ case *AutoUpdateVersionUpdate:
+ out.Event = &OneOf_AutoUpdateVersionUpdate{
+ AutoUpdateVersionUpdate: e,
+ }
+ case *AutoUpdateVersionDelete:
+ out.Event = &OneOf_AutoUpdateVersionDelete{
+ AutoUpdateVersionDelete: e,
+ }
default:
slog.ErrorContext(context.Background(), "Attempted to convert dynamic event of unknown type into protobuf event.", "event_type", in.GetType())
unknown := &Unknown{}
diff --git a/integration/autoupdate/tools/main_test.go b/integration/autoupdate/tools/main_test.go
index a14a6dc9fc683..bbc3f559f65c0 100644
--- a/integration/autoupdate/tools/main_test.go
+++ b/integration/autoupdate/tools/main_test.go
@@ -37,7 +37,8 @@ import (
"github.com/gravitational/trace"
- "github.com/gravitational/teleport/integration/helpers"
+ "github.com/gravitational/teleport/api/constants"
+ "github.com/gravitational/teleport/integration/helpers/archive"
)
const (
@@ -133,9 +134,9 @@ func buildAndArchiveApps(ctx context.Context, path string, toolsDir string, vers
for _, app := range []string{"tsh", "tctl"} {
output := filepath.Join(versionPath, app)
switch runtime.GOOS {
- case "windows":
+ case constants.WindowsOS:
output = filepath.Join(versionPath, app+".exe")
- case "darwin":
+ case constants.DarwinOS:
output = filepath.Join(versionPath, app+".app", "Contents", "MacOS", app)
}
if err := buildBinary(output, toolsDir, version, baseURL); err != nil {
@@ -143,15 +144,15 @@ func buildAndArchiveApps(ctx context.Context, path string, toolsDir string, vers
}
}
switch runtime.GOOS {
- case "darwin":
+ case constants.DarwinOS:
archivePath := filepath.Join(path, fmt.Sprintf("teleport-%s.pkg", version))
- return trace.Wrap(helpers.CompressDirToPkgFile(ctx, versionPath, archivePath, "com.example.pkgtest"))
- case "windows":
+ return trace.Wrap(archive.CompressDirToPkgFile(ctx, versionPath, archivePath, "com.example.pkgtest"))
+ case constants.WindowsOS:
archivePath := filepath.Join(path, fmt.Sprintf("teleport-v%s-windows-amd64-bin.zip", version))
- return trace.Wrap(helpers.CompressDirToZipFile(ctx, versionPath, archivePath))
+ return trace.Wrap(archive.CompressDirToZipFile(ctx, versionPath, archivePath))
default:
archivePath := filepath.Join(path, fmt.Sprintf("teleport-v%s-linux-%s-bin.tar.gz", version, runtime.GOARCH))
- return trace.Wrap(helpers.CompressDirToTarGzFile(ctx, versionPath, archivePath))
+ return trace.Wrap(archive.CompressDirToTarGzFile(ctx, versionPath, archivePath))
}
}
diff --git a/integration/autoupdate/tools/updater/main.go b/integration/autoupdate/tools/updater/main.go
index e14c76e5d5aa8..775c7ab7b2e9d 100644
--- a/integration/autoupdate/tools/updater/main.go
+++ b/integration/autoupdate/tools/updater/main.go
@@ -25,11 +25,9 @@ import (
"log"
"os"
"os/signal"
- "runtime"
"syscall"
"time"
- "github.com/gravitational/teleport/api/constants"
"github.com/gravitational/teleport/lib/autoupdate/tools"
)
@@ -40,17 +38,20 @@ var (
)
func main() {
- ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
+ ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
defer cancel()
ctx, _ = signal.NotifyContext(ctx, syscall.SIGINT, syscall.SIGTERM)
updater := tools.NewUpdater(
- clientTools(),
+ tools.DefaultClientTools(),
toolsDir,
version,
tools.WithBaseURL(baseURL),
)
- toolsVersion, reExec := updater.CheckLocal()
+ toolsVersion, reExec, err := updater.CheckLocal()
+ if err != nil {
+ log.Fatal(err)
+ }
if reExec {
// Download and update the version of client tools required by the cluster.
// This is required if the user passed in the TELEPORT_TOOLS_VERSION explicitly.
@@ -76,13 +77,3 @@ func main() {
fmt.Printf("Teleport v%v git\n", version)
}
}
-
-// clientTools list of the client tools needs to be updated.
-func clientTools() []string {
- switch runtime.GOOS {
- case constants.WindowsOS:
- return []string{"tsh.exe", "tctl.exe"}
- default:
- return []string{"tsh", "tctl"}
- }
-}
diff --git a/integration/autoupdate/tools/updater_test.go b/integration/autoupdate/tools/updater_test.go
index 52d7a7b8ab385..d429a7483910a 100644
--- a/integration/autoupdate/tools/updater_test.go
+++ b/integration/autoupdate/tools/updater_test.go
@@ -26,7 +26,6 @@ import (
"os/exec"
"path/filepath"
"regexp"
- "runtime"
"strings"
"testing"
"time"
@@ -34,7 +33,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
- "github.com/gravitational/teleport/api/constants"
"github.com/gravitational/teleport/lib/autoupdate/tools"
)
@@ -51,7 +49,7 @@ func TestUpdate(t *testing.T) {
// Fetch compiled test binary with updater logic and install to $TELEPORT_HOME.
updater := tools.NewUpdater(
- clientTools(),
+ tools.DefaultClientTools(),
toolsDir,
testVersions[0],
tools.WithBaseURL(baseURL),
@@ -93,7 +91,7 @@ func TestParallelUpdate(t *testing.T) {
// Initial fetch the updater binary un-archive and replace.
updater := tools.NewUpdater(
- clientTools(),
+ tools.DefaultClientTools(),
toolsDir,
testVersions[0],
tools.WithBaseURL(baseURL),
@@ -167,7 +165,7 @@ func TestUpdateInterruptSignal(t *testing.T) {
// Initial fetch the updater binary un-archive and replace.
updater := tools.NewUpdater(
- clientTools(),
+ tools.DefaultClientTools(),
toolsDir,
testVersions[0],
tools.WithBaseURL(baseURL),
@@ -220,12 +218,3 @@ func TestUpdateInterruptSignal(t *testing.T) {
}
assert.Contains(t, output.String(), "Update progress:")
}
-
-func clientTools() []string {
- switch runtime.GOOS {
- case constants.WindowsOS:
- return []string{"tsh.exe", "tctl.exe"}
- default:
- return []string{"tsh", "tctl"}
- }
-}
diff --git a/integration/helpers/archive.go b/integration/helpers/archive/packaging.go
similarity index 99%
rename from integration/helpers/archive.go
rename to integration/helpers/archive/packaging.go
index 6e48108013d86..ee237749115a3 100644
--- a/integration/helpers/archive.go
+++ b/integration/helpers/archive/packaging.go
@@ -16,7 +16,7 @@
* along with this program. If not, see .
*/
-package helpers
+package archive
import (
"archive/tar"
diff --git a/integrations/event-handler/go.sum b/integrations/event-handler/go.sum
index 954c812c1dae5..4435d8a842238 100644
--- a/integrations/event-handler/go.sum
+++ b/integrations/event-handler/go.sum
@@ -1133,7 +1133,10 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM=
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
+github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/google/renameio/v2 v2.0.0 h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg=
+github.com/google/renameio/v2 v2.0.0/go.mod h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4=
github.com/google/s2a-go v0.1.8 h1:zZDs9gcbt9ZPLV0ndSyQk6Kacx2g/X+SKYovpnz3SMM=
github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA=
github.com/google/safetext v0.0.0-20240104143208-7a7d9b3d812f h1:o2yGZLlsOj5H5uvtQNEdi6DeA0GbUP3lm0gWW5RvY0s=
diff --git a/integrations/terraform/go.mod b/integrations/terraform/go.mod
index ad3f225b52b3b..a749d90332994 100644
--- a/integrations/terraform/go.mod
+++ b/integrations/terraform/go.mod
@@ -187,6 +187,7 @@ require (
github.com/google/go-tspi v0.3.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect
+ github.com/google/renameio/v2 v2.0.0 // indirect
github.com/google/s2a-go v0.1.8 // indirect
github.com/google/safetext v0.0.0-20240104143208-7a7d9b3d812f // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
diff --git a/integrations/terraform/go.sum b/integrations/terraform/go.sum
index 8f0b1ec8e60a7..f4aee0e7d14e0 100644
--- a/integrations/terraform/go.sum
+++ b/integrations/terraform/go.sum
@@ -1260,7 +1260,6 @@ github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM=
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo=
-github.com/google/renameio v0.1.0 h1:GOZbcHa3HfsPKPlmyPyN2KEohoMXOhdMbHrvbpl2QaA=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/renameio/v2 v2.0.0 h1:UifI23ZTGY8Tt29JbYFiuyIU3eX+RNFtUwefq9qAhxg=
github.com/google/renameio/v2 v2.0.0/go.mod h1:BtmJXm5YlszgC+TD4HOEEUFgkJP3nLxehU6hfe7jRt4=
diff --git a/lib/auth/autoupdate/autoupdatev1/service.go b/lib/auth/autoupdate/autoupdatev1/service.go
index 4852edaf6707a..993860203746f 100644
--- a/lib/auth/autoupdate/autoupdatev1/service.go
+++ b/lib/auth/autoupdate/autoupdatev1/service.go
@@ -20,13 +20,16 @@ package autoupdatev1
import (
"context"
+ "log/slog"
"github.com/gravitational/trace"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/gravitational/teleport/api/gen/proto/go/teleport/autoupdate/v1"
"github.com/gravitational/teleport/api/types"
+ apievents "github.com/gravitational/teleport/api/types/events"
"github.com/gravitational/teleport/lib/authz"
+ "github.com/gravitational/teleport/lib/events"
"github.com/gravitational/teleport/lib/services"
)
@@ -50,6 +53,8 @@ type ServiceConfig struct {
Backend services.AutoUpdateService
// Cache is the cache used to store AutoUpdate resources.
Cache Cache
+ // Emitter is the event emitter.
+ Emitter apievents.Emitter
}
// Service implements the gRPC API layer for the AutoUpdate.
@@ -58,6 +63,7 @@ type Service struct {
authorizer authz.Authorizer
backend services.AutoUpdateService
+ emitter apievents.Emitter
cache Cache
}
@@ -70,11 +76,14 @@ func NewService(cfg ServiceConfig) (*Service, error) {
return nil, trace.BadParameter("authorizer is required")
case cfg.Cache == nil:
return nil, trace.BadParameter("cache is required")
+ case cfg.Emitter == nil:
+ return nil, trace.BadParameter("Emitter is required")
}
return &Service{
authorizer: cfg.Authorizer,
backend: cfg.Backend,
cache: cfg.Cache,
+ emitter: cfg.Emitter,
}, nil
}
@@ -113,6 +122,27 @@ func (s *Service) CreateAutoUpdateConfig(ctx context.Context, req *autoupdate.Cr
}
config, err := s.backend.CreateAutoUpdateConfig(ctx, req.Config)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateConfigCreate{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateConfigCreateEvent,
+ Code: events.AutoUpdateConfigCreateCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateConfig,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
return config, trace.Wrap(err)
}
@@ -132,6 +162,27 @@ func (s *Service) UpdateAutoUpdateConfig(ctx context.Context, req *autoupdate.Up
}
config, err := s.backend.UpdateAutoUpdateConfig(ctx, req.Config)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateConfigUpdate{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateConfigUpdateEvent,
+ Code: events.AutoUpdateConfigUpdateCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateConfig,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
return config, trace.Wrap(err)
}
@@ -151,6 +202,27 @@ func (s *Service) UpsertAutoUpdateConfig(ctx context.Context, req *autoupdate.Up
}
config, err := s.backend.UpsertAutoUpdateConfig(ctx, req.Config)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateConfigUpdate{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateConfigUpdateEvent,
+ Code: events.AutoUpdateConfigUpdateCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateConfig,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
return config, trace.Wrap(err)
}
@@ -169,10 +241,29 @@ func (s *Service) DeleteAutoUpdateConfig(ctx context.Context, req *autoupdate.De
return nil, trace.Wrap(err)
}
- if err := s.backend.DeleteAutoUpdateConfig(ctx); err != nil {
- return nil, trace.Wrap(err)
- }
- return &emptypb.Empty{}, nil
+ err = s.backend.DeleteAutoUpdateConfig(ctx)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateConfigDelete{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateConfigDeleteEvent,
+ Code: events.AutoUpdateConfigDeleteCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateConfig,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
+ return &emptypb.Empty{}, trace.Wrap(err)
}
// GetAutoUpdateVersion gets the current AutoUpdateVersion singleton.
@@ -210,6 +301,28 @@ func (s *Service) CreateAutoUpdateVersion(ctx context.Context, req *autoupdate.C
}
autoUpdateVersion, err := s.backend.CreateAutoUpdateVersion(ctx, req.Version)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateVersionCreate{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateVersionCreateEvent,
+ Code: events.AutoUpdateVersionCreateCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateVersion,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
+
return autoUpdateVersion, trace.Wrap(err)
}
@@ -229,6 +342,28 @@ func (s *Service) UpdateAutoUpdateVersion(ctx context.Context, req *autoupdate.U
}
autoUpdateVersion, err := s.backend.UpdateAutoUpdateVersion(ctx, req.Version)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateVersionUpdate{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateVersionUpdateEvent,
+ Code: events.AutoUpdateVersionUpdateCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateVersion,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
+
return autoUpdateVersion, trace.Wrap(err)
}
@@ -248,6 +383,28 @@ func (s *Service) UpsertAutoUpdateVersion(ctx context.Context, req *autoupdate.U
}
autoUpdateVersion, err := s.backend.UpsertAutoUpdateVersion(ctx, req.Version)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateVersionUpdate{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateVersionUpdateEvent,
+ Code: events.AutoUpdateVersionUpdateCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateVersion,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
+
return autoUpdateVersion, trace.Wrap(err)
}
@@ -266,10 +423,29 @@ func (s *Service) DeleteAutoUpdateVersion(ctx context.Context, req *autoupdate.D
return nil, trace.Wrap(err)
}
- if err := s.backend.DeleteAutoUpdateVersion(ctx); err != nil {
- return nil, trace.Wrap(err)
- }
- return &emptypb.Empty{}, nil
+ err = s.backend.DeleteAutoUpdateVersion(ctx)
+ var errMsg string
+ if err != nil {
+ errMsg = err.Error()
+ }
+ userMetadata := authz.ClientUserMetadata(ctx)
+ s.emitEvent(ctx, &apievents.AutoUpdateVersionDelete{
+ Metadata: apievents.Metadata{
+ Type: events.AutoUpdateVersionDeleteEvent,
+ Code: events.AutoUpdateVersionDeleteCode,
+ },
+ UserMetadata: userMetadata,
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: types.MetaNameAutoUpdateVersion,
+ UpdatedBy: userMetadata.User,
+ },
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ Status: apievents.Status{
+ Success: err == nil,
+ Error: errMsg,
+ },
+ })
+ return &emptypb.Empty{}, trace.Wrap(err)
}
// GetAutoUpdateAgentRollout gets the current AutoUpdateAgentRollout singleton.
@@ -404,3 +580,12 @@ func (s *Service) DeleteAutoUpdateAgentRollout(ctx context.Context, req *autoupd
}
return &emptypb.Empty{}, nil
}
+
+func (s *Service) emitEvent(ctx context.Context, e apievents.AuditEvent) {
+ if err := s.emitter.EmitAuditEvent(ctx, e); err != nil {
+ slog.WarnContext(ctx, "Failed to emit audit event",
+ "type", e.GetType(),
+ "error", err,
+ )
+ }
+}
diff --git a/lib/auth/autoupdate/autoupdatev1/service_test.go b/lib/auth/autoupdate/autoupdatev1/service_test.go
index dd1d6df087db5..eb3220792b939 100644
--- a/lib/auth/autoupdate/autoupdatev1/service_test.go
+++ b/lib/auth/autoupdate/autoupdatev1/service_test.go
@@ -25,10 +25,14 @@ import (
"github.com/gravitational/trace"
"github.com/stretchr/testify/require"
- "github.com/gravitational/teleport/api/gen/proto/go/teleport/autoupdate/v1"
+ autoupdatev1pb "github.com/gravitational/teleport/api/gen/proto/go/teleport/autoupdate/v1"
"github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/api/types/autoupdate"
+ apievents "github.com/gravitational/teleport/api/types/events"
"github.com/gravitational/teleport/lib/authz"
"github.com/gravitational/teleport/lib/backend/memory"
+ libevents "github.com/gravitational/teleport/lib/events"
+ "github.com/gravitational/teleport/lib/events/eventstest"
"github.com/gravitational/teleport/lib/services"
"github.com/gravitational/teleport/lib/services/local"
"github.com/gravitational/teleport/lib/utils"
@@ -63,7 +67,7 @@ func otherAdminStates(states []authz.AdminActionAuthState) []authz.AdminActionAu
// callMethod calls a method with given name in the DatabaseObjectService service
func callMethod(t *testing.T, service *Service, method string) error {
- for _, desc := range autoupdate.AutoUpdateService_ServiceDesc.Methods {
+ for _, desc := range autoupdatev1pb.AutoUpdateService_ServiceDesc.Methods {
if desc.MethodName == method {
_, err := desc.Handler(service, context.Background(), func(_ any) error { return nil }, nil)
return err
@@ -225,7 +229,7 @@ func TestServiceAccess(t *testing.T) {
t.Run(stateToString(state), func(t *testing.T) {
for _, verbs := range utils.Combinations(tt.allowedVerbs) {
t.Run(fmt.Sprintf("verbs=%v", verbs), func(t *testing.T) {
- service := newService(t, state, fakeChecker{allowedVerbs: verbs, builtinRole: tt.builtinRole})
+ service := newService(t, state, fakeChecker{allowedVerbs: verbs, builtinRole: tt.builtinRole}, &libevents.DiscardEmitter{})
err := callMethod(t, service, tt.name)
// expect access denied except with full set of verbs.
if len(verbs) == len(tt.allowedVerbs) {
@@ -249,7 +253,7 @@ func TestServiceAccess(t *testing.T) {
t.Run(stateToString(state), func(t *testing.T) {
// it is enough to test against tt.allowedVerbs,
// this is the only different data point compared to the test cases above.
- service := newService(t, state, fakeChecker{allowedVerbs: tt.allowedVerbs, builtinRole: tt.builtinRole})
+ service := newService(t, state, fakeChecker{allowedVerbs: tt.allowedVerbs, builtinRole: tt.builtinRole}, &libevents.DiscardEmitter{})
err := callMethod(t, service, tt.name)
require.True(t, trace.IsAccessDenied(err))
})
@@ -260,7 +264,7 @@ func TestServiceAccess(t *testing.T) {
// verify that all declared methods have matching test cases
t.Run("verify coverage", func(t *testing.T) {
- for _, method := range autoupdate.AutoUpdateService_ServiceDesc.Methods {
+ for _, method := range autoupdatev1pb.AutoUpdateService_ServiceDesc.Methods {
t.Run(method.MethodName, func(t *testing.T) {
match := false
for _, testCase := range testCases {
@@ -272,6 +276,98 @@ func TestServiceAccess(t *testing.T) {
})
}
+func TestAutoUpdateConfigEvents(t *testing.T) {
+ rwVerbs := []string{types.VerbList, types.VerbCreate, types.VerbRead, types.VerbUpdate, types.VerbDelete}
+ mockEmitter := &eventstest.MockRecorderEmitter{}
+ service := newService(t, authz.AdminActionAuthMFAVerified, fakeChecker{allowedVerbs: rwVerbs}, mockEmitter)
+ ctx := context.Background()
+
+ config, err := autoupdate.NewAutoUpdateConfig(&autoupdatev1pb.AutoUpdateConfigSpec{
+ Tools: &autoupdatev1pb.AutoUpdateConfigSpecTools{
+ Mode: autoupdate.ToolsUpdateModeEnabled,
+ },
+ })
+ require.NoError(t, err)
+
+ _, err = service.CreateAutoUpdateConfig(ctx, &autoupdatev1pb.CreateAutoUpdateConfigRequest{Config: config})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateConfigCreateEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateConfigCreateCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateConfig, mockEmitter.LastEvent().(*apievents.AutoUpdateConfigCreate).Name)
+ mockEmitter.Reset()
+
+ _, err = service.UpdateAutoUpdateConfig(ctx, &autoupdatev1pb.UpdateAutoUpdateConfigRequest{Config: config})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateConfigUpdateEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateConfigUpdateCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateConfig, mockEmitter.LastEvent().(*apievents.AutoUpdateConfigUpdate).Name)
+ mockEmitter.Reset()
+
+ _, err = service.UpsertAutoUpdateConfig(ctx, &autoupdatev1pb.UpsertAutoUpdateConfigRequest{Config: config})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateConfigUpdateEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateConfigUpdateCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateConfig, mockEmitter.LastEvent().(*apievents.AutoUpdateConfigUpdate).Name)
+ mockEmitter.Reset()
+
+ _, err = service.DeleteAutoUpdateConfig(ctx, &autoupdatev1pb.DeleteAutoUpdateConfigRequest{})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateConfigDeleteEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateConfigDeleteCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateConfig, mockEmitter.LastEvent().(*apievents.AutoUpdateConfigDelete).Name)
+ mockEmitter.Reset()
+}
+
+func TestAutoUpdateVersionEvents(t *testing.T) {
+ rwVerbs := []string{types.VerbList, types.VerbCreate, types.VerbRead, types.VerbUpdate, types.VerbDelete}
+ mockEmitter := &eventstest.MockRecorderEmitter{}
+ service := newService(t, authz.AdminActionAuthMFAVerified, fakeChecker{allowedVerbs: rwVerbs}, mockEmitter)
+ ctx := context.Background()
+
+ config, err := autoupdate.NewAutoUpdateVersion(&autoupdatev1pb.AutoUpdateVersionSpec{
+ Tools: &autoupdatev1pb.AutoUpdateVersionSpecTools{
+ TargetVersion: "1.2.3",
+ },
+ })
+ require.NoError(t, err)
+
+ _, err = service.CreateAutoUpdateVersion(ctx, &autoupdatev1pb.CreateAutoUpdateVersionRequest{Version: config})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateVersionCreateEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateVersionCreateCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateVersion, mockEmitter.LastEvent().(*apievents.AutoUpdateVersionCreate).Name)
+ mockEmitter.Reset()
+
+ _, err = service.UpdateAutoUpdateVersion(ctx, &autoupdatev1pb.UpdateAutoUpdateVersionRequest{Version: config})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateVersionUpdateEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateVersionUpdateCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateVersion, mockEmitter.LastEvent().(*apievents.AutoUpdateVersionUpdate).Name)
+ mockEmitter.Reset()
+
+ _, err = service.UpsertAutoUpdateVersion(ctx, &autoupdatev1pb.UpsertAutoUpdateVersionRequest{Version: config})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateVersionUpdateEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateVersionUpdateCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateVersion, mockEmitter.LastEvent().(*apievents.AutoUpdateVersionUpdate).Name)
+ mockEmitter.Reset()
+
+ _, err = service.DeleteAutoUpdateVersion(ctx, &autoupdatev1pb.DeleteAutoUpdateVersionRequest{})
+ require.NoError(t, err)
+ require.Len(t, mockEmitter.Events(), 1)
+ require.Equal(t, libevents.AutoUpdateVersionDeleteEvent, mockEmitter.LastEvent().GetType())
+ require.Equal(t, libevents.AutoUpdateVersionDeleteCode, mockEmitter.LastEvent().GetCode())
+ require.Equal(t, types.MetaNameAutoUpdateVersion, mockEmitter.LastEvent().(*apievents.AutoUpdateVersionDelete).Name)
+ mockEmitter.Reset()
+}
+
type fakeChecker struct {
allowedVerbs []string
builtinRole *authz.BuiltinRole
@@ -304,7 +400,7 @@ func (f fakeChecker) identityGetter() authz.IdentityGetter {
return nil
}
-func newService(t *testing.T, authState authz.AdminActionAuthState, checker fakeChecker) *Service {
+func newService(t *testing.T, authState authz.AdminActionAuthState, checker fakeChecker, emitter apievents.Emitter) *Service {
t.Helper()
bk, err := memory.New(memory.Config{})
@@ -313,10 +409,10 @@ func newService(t *testing.T, authState authz.AdminActionAuthState, checker fake
storage, err := local.NewAutoUpdateService(bk)
require.NoError(t, err)
- return newServiceWithStorage(t, authState, checker, storage)
+ return newServiceWithStorage(t, authState, checker, storage, emitter)
}
-func newServiceWithStorage(t *testing.T, authState authz.AdminActionAuthState, checker fakeChecker, storage services.AutoUpdateService) *Service {
+func newServiceWithStorage(t *testing.T, authState authz.AdminActionAuthState, checker fakeChecker, storage services.AutoUpdateService, emitter apievents.Emitter) *Service {
t.Helper()
authorizer := authz.AuthorizerFunc(func(ctx context.Context) (*authz.Context, error) {
@@ -337,6 +433,7 @@ func newServiceWithStorage(t *testing.T, authState authz.AdminActionAuthState, c
Authorizer: authorizer,
Backend: storage,
Cache: storage,
+ Emitter: emitter,
})
require.NoError(t, err)
return service
diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go
index e94eea9fb04f9..b4bd1d985ea97 100644
--- a/lib/auth/grpcserver.go
+++ b/lib/auth/grpcserver.go
@@ -5336,6 +5336,7 @@ func NewGRPCServer(cfg GRPCServerConfig) (*GRPCServer, error) {
autoUpdateServiceServer, err := autoupdatev1.NewService(autoupdatev1.ServiceConfig{
Authorizer: cfg.Authorizer,
+ Emitter: cfg.Emitter,
Backend: cfg.AuthServer.Services,
Cache: cfg.AuthServer.Cache,
})
diff --git a/lib/autoupdate/tools/progress.go b/lib/autoupdate/tools/progress.go
index 95395003730ec..34bbad2ff888d 100644
--- a/lib/autoupdate/tools/progress.go
+++ b/lib/autoupdate/tools/progress.go
@@ -20,24 +20,59 @@ package tools
import (
"fmt"
+ "io"
"strings"
+
+ "github.com/gravitational/trace"
)
type progressWriter struct {
- n int64
- limit int64
+ n int64
+ limit int64
+ size int
+ progress int
}
-func (w *progressWriter) Write(p []byte) (int, error) {
- w.n = w.n + int64(len(p))
+// newProgressWriter creates progress writer instance and prints empty
+// progress bar right after initialisation.
+func newProgressWriter(size int) (*progressWriter, func()) {
+ pw := &progressWriter{size: size}
+ pw.Print(0)
+ return pw, func() {
+ fmt.Print("\n")
+ }
+}
- n := int((w.n*100)/w.limit) / 10
- bricks := strings.Repeat("▒", n) + strings.Repeat(" ", 10-n)
+// Print prints the update progress bar with `n` bricks.
+func (w *progressWriter) Print(n int) {
+ bricks := strings.Repeat("▒", n) + strings.Repeat(" ", w.size-n)
fmt.Print("\rUpdate progress: [" + bricks + "] (Ctrl-C to cancel update)")
+}
- if w.n == w.limit {
- fmt.Print("\n")
+func (w *progressWriter) Write(p []byte) (int, error) {
+ if w.limit == 0 || w.size == 0 {
+ return len(p), nil
+ }
+
+ w.n += int64(len(p))
+ bricks := int((w.n*100)/w.limit) / w.size
+ if w.progress != bricks {
+ w.Print(bricks)
+ w.progress = bricks
}
return len(p), nil
}
+
+// CopyLimit sets the limit of writing bytes to the progress writer and initiate copying process.
+func (w *progressWriter) CopyLimit(dst io.Writer, src io.Reader, limit int64) (written int64, err error) {
+ if limit < 0 {
+ n, err := io.Copy(dst, io.TeeReader(src, w))
+ w.Print(w.size)
+ return n, trace.Wrap(err)
+ }
+
+ w.limit = limit
+ n, err := io.CopyN(dst, io.TeeReader(src, w), limit)
+ return n, trace.Wrap(err)
+}
diff --git a/lib/autoupdate/tools/updater.go b/lib/autoupdate/tools/updater.go
index 96991044ccc31..96352e34d9910 100644
--- a/lib/autoupdate/tools/updater.go
+++ b/lib/autoupdate/tools/updater.go
@@ -36,12 +36,12 @@ import (
"syscall"
"time"
+ "github.com/coreos/go-semver/semver"
"github.com/google/uuid"
"github.com/gravitational/trace"
"github.com/gravitational/teleport/api/client/webclient"
"github.com/gravitational/teleport/api/constants"
- "github.com/gravitational/teleport/api/types/autoupdate"
"github.com/gravitational/teleport/lib/utils"
"github.com/gravitational/teleport/lib/utils/packaging"
)
@@ -114,30 +114,37 @@ func NewUpdater(tools []string, toolsDir string, localVersion string, options ..
// CheckLocal is run at client tool startup and will only perform local checks.
// Returns the version needs to be updated and re-executed, by re-execution flag we
// understand that update and re-execute is required.
-func (u *Updater) CheckLocal() (version string, reExec bool) {
+func (u *Updater) CheckLocal() (version string, reExec bool, err error) {
// Check if the user has requested a specific version of client tools.
requestedVersion := os.Getenv(teleportToolsVersionEnv)
switch requestedVersion {
// The user has turned off any form of automatic updates.
case "off":
- return "", false
+ return "", false, nil
// Requested version already the same as client version.
case u.localVersion:
- return u.localVersion, false
+ return u.localVersion, false, nil
+ // No requested version, we continue.
+ case "":
+ // Requested version that is not the local one.
+ default:
+ if _, err := semver.NewVersion(requestedVersion); err != nil {
+ return "", false, trace.Wrap(err, "checking that request version is semantic")
+ }
+ return requestedVersion, true, nil
}
// If a version of client tools has already been downloaded to
// tools directory, return that.
- toolsVersion, err := checkToolVersion(u.toolsDir)
- if err != nil {
- return "", false
+ toolsVersion, err := CheckToolVersion(u.toolsDir)
+ if trace.IsNotFound(err) {
+ return u.localVersion, false, nil
}
- // The user has requested a specific version of client tools.
- if requestedVersion != "" && requestedVersion != toolsVersion {
- return requestedVersion, true
+ if err != nil {
+ return "", false, trace.Wrap(err)
}
- return toolsVersion, false
+ return toolsVersion, true, nil
}
// CheckRemote first checks the version set by the environment variable. If not set or disabled,
@@ -145,7 +152,7 @@ func (u *Updater) CheckLocal() (version string, reExec bool) {
// the `webapi/find` handler, which stores information about the required client tools version to
// operate with this cluster. It returns the semantic version that needs updating and whether
// re-execution is necessary, by re-execution flag we understand that update and re-execute is required.
-func (u *Updater) CheckRemote(ctx context.Context, proxyAddr string) (version string, reExec bool, err error) {
+func (u *Updater) CheckRemote(ctx context.Context, proxyAddr string, insecure bool) (version string, reExec bool, err error) {
// Check if the user has requested a specific version of client tools.
requestedVersion := os.Getenv(teleportToolsVersionEnv)
switch requestedVersion {
@@ -155,6 +162,14 @@ func (u *Updater) CheckRemote(ctx context.Context, proxyAddr string) (version st
// Requested version already the same as client version.
case u.localVersion:
return u.localVersion, false, nil
+ // No requested version, we continue.
+ case "":
+ // Requested version that is not the local one.
+ default:
+ if _, err := semver.NewVersion(requestedVersion); err != nil {
+ return "", false, trace.Wrap(err, "checking that request version is semantic")
+ }
+ return requestedVersion, true, nil
}
certPool, err := x509.SystemCertPool()
@@ -165,7 +180,8 @@ func (u *Updater) CheckRemote(ctx context.Context, proxyAddr string) (version st
Context: ctx,
ProxyAddr: proxyAddr,
Pool: certPool,
- Timeout: 30 * time.Second,
+ Timeout: 10 * time.Second,
+ Insecure: insecure,
})
if err != nil {
return "", false, trace.Wrap(err)
@@ -173,28 +189,28 @@ func (u *Updater) CheckRemote(ctx context.Context, proxyAddr string) (version st
// If a version of client tools has already been downloaded to
// tools directory, return that.
- toolsVersion, err := checkToolVersion(u.toolsDir)
- if err != nil {
+ toolsVersion, err := CheckToolVersion(u.toolsDir)
+ if err != nil && !trace.IsNotFound(err) {
return "", false, trace.Wrap(err)
}
switch {
- case requestedVersion != "" && requestedVersion != toolsVersion:
- return requestedVersion, true, nil
- case resp.AutoUpdate.ToolsMode != autoupdate.ToolsUpdateModeEnabled || resp.AutoUpdate.ToolsVersion == "":
- return "", false, nil
+ case !resp.AutoUpdate.ToolsAutoUpdate || resp.AutoUpdate.ToolsVersion == "":
+ if toolsVersion == "" {
+ return u.localVersion, false, nil
+ }
case u.localVersion == resp.AutoUpdate.ToolsVersion:
- return resp.AutoUpdate.ToolsVersion, false, nil
+ return u.localVersion, false, nil
case resp.AutoUpdate.ToolsVersion != toolsVersion:
return resp.AutoUpdate.ToolsVersion, true, nil
}
- return toolsVersion, false, nil
+ return toolsVersion, true, nil
}
// UpdateWithLock acquires filesystem lock, downloads requested version package,
// unarchive and replace existing one.
-func (u *Updater) UpdateWithLock(ctx context.Context, toolsVersion string) (err error) {
+func (u *Updater) UpdateWithLock(ctx context.Context, updateToolsVersion string) (err error) {
// Create tools directory if it does not exist.
if err := os.MkdirAll(u.toolsDir, 0o755); err != nil {
return trace.Wrap(err)
@@ -211,21 +227,20 @@ func (u *Updater) UpdateWithLock(ctx context.Context, toolsVersion string) (err
// If the version of the running binary or the version downloaded to
// tools directory is the same as the requested version of client tools,
// nothing to be done, exit early.
- teleportVersion, err := checkToolVersion(u.toolsDir)
+ toolsVersion, err := CheckToolVersion(u.toolsDir)
if err != nil && !trace.IsNotFound(err) {
return trace.Wrap(err)
-
}
- if toolsVersion == u.localVersion || toolsVersion == teleportVersion {
+ if updateToolsVersion == toolsVersion {
return nil
}
// Download and update client tools in tools directory.
- if err := u.Update(ctx, toolsVersion); err != nil {
+ if err := u.Update(ctx, updateToolsVersion); err != nil {
return trace.Wrap(err)
}
- return
+ return nil
}
// Update downloads requested version and replace it with existing one and cleanups the previous downloads
@@ -237,10 +252,18 @@ func (u *Updater) Update(ctx context.Context, toolsVersion string) error {
return trace.Wrap(err)
}
+ var pkgNames []string
for _, pkg := range packages {
- if err := u.update(ctx, pkg); err != nil {
+ pkgName := fmt.Sprint(uuid.New().String(), updatePackageSuffix)
+ if err := u.update(ctx, pkg, pkgName); err != nil {
return trace.Wrap(err)
}
+ pkgNames = append(pkgNames, pkgName)
+ }
+
+ // Cleanup the tools directory with previously downloaded and un-archived versions.
+ if err := packaging.RemoveWithSuffix(u.toolsDir, updatePackageSuffix, pkgNames); err != nil {
+ slog.WarnContext(ctx, "failed to clean up tools directory", "error", err)
}
return nil
@@ -248,16 +271,8 @@ func (u *Updater) Update(ctx context.Context, toolsVersion string) error {
// update downloads the archive and validate against the hash. Download to a
// temporary path within tools directory.
-func (u *Updater) update(ctx context.Context, pkg packageURL) error {
- hash, err := u.downloadHash(ctx, pkg.Hash)
- if pkg.Optional && trace.IsNotFound(err) {
- return nil
- }
- if err != nil {
- return trace.Wrap(err)
- }
-
- f, err := os.CreateTemp(u.toolsDir, "tmp-")
+func (u *Updater) update(ctx context.Context, pkg packageURL, pkgName string) error {
+ f, err := os.CreateTemp("", "teleport-")
if err != nil {
return trace.Wrap(err)
}
@@ -275,11 +290,19 @@ func (u *Updater) update(ctx context.Context, pkg packageURL) error {
if err != nil {
return trace.Wrap(err)
}
+
+ hash, err := u.downloadHash(ctx, pkg.Hash)
+ if pkg.Optional && trace.IsNotFound(err) {
+ return nil
+ }
+ if err != nil {
+ return trace.Wrap(err)
+ }
+
if !bytes.Equal(archiveHash, hash) {
return trace.BadParameter("hash of archive does not match downloaded archive")
}
- pkgName := fmt.Sprint(uuid.New().String(), updatePackageSuffix)
extractDir := filepath.Join(u.toolsDir, pkgName)
if runtime.GOOS != constants.DarwinOS {
if err := os.Mkdir(extractDir, 0o755); err != nil {
@@ -291,10 +314,6 @@ func (u *Updater) update(ctx context.Context, pkg packageURL) error {
if err := packaging.ReplaceToolsBinaries(u.toolsDir, f.Name(), extractDir, u.tools); err != nil {
return trace.Wrap(err)
}
- // Cleanup the tools directory with previously downloaded and un-archived versions.
- if err := packaging.RemoveWithSuffix(u.toolsDir, updatePackageSuffix, pkgName); err != nil {
- return trace.Wrap(err)
- }
return nil
}
@@ -340,7 +359,7 @@ func (u *Updater) downloadHash(ctx context.Context, url string) ([]byte, error)
}
defer resp.Body.Close()
if resp.StatusCode == http.StatusNotFound {
- return nil, trace.NotFound("hash file is not found: %v", resp.StatusCode)
+ return nil, trace.NotFound("hash file is not found: %q", url)
}
if resp.StatusCode != http.StatusOK {
return nil, trace.BadParameter("bad status when downloading archive hash: %v", resp.StatusCode)
@@ -362,6 +381,11 @@ func (u *Updater) downloadHash(ctx context.Context, url string) ([]byte, error)
// downloadArchive downloads the archive package by `url` and writes content to the writer interface,
// return calculated sha256 hash sum of the content.
func (u *Updater) downloadArchive(ctx context.Context, url string, f io.Writer) ([]byte, error) {
+ // Display a progress bar before initiating the update request to inform the user that
+ // an update is in progress, allowing them the option to cancel before actual response
+ // which might be delayed with slow internet connection or complete isolation to CDN.
+ pw, finish := newProgressWriter(10)
+ defer finish()
req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
if err != nil {
return nil, trace.Wrap(err)
@@ -385,14 +409,10 @@ func (u *Updater) downloadArchive(ctx context.Context, url string, f io.Writer)
}
h := sha256.New()
- pw := &progressWriter{n: 0, limit: resp.ContentLength}
- body := io.TeeReader(io.TeeReader(resp.Body, h), pw)
-
// It is a little inefficient to download the file to disk and then re-load
// it into memory to unarchive later, but this is safer as it allows client
// tools to validate the hash before trying to operate on the archive.
- _, err = io.CopyN(f, body, resp.ContentLength)
- if err != nil {
+ if _, err := pw.CopyLimit(f, io.TeeReader(resp.Body, h), resp.ContentLength); err != nil {
return nil, trace.Wrap(err)
}
diff --git a/lib/autoupdate/tools/utils.go b/lib/autoupdate/tools/utils.go
index d552b31abefe4..f937d228b5cd4 100644
--- a/lib/autoupdate/tools/utils.go
+++ b/lib/autoupdate/tools/utils.go
@@ -33,6 +33,7 @@ import (
"github.com/coreos/go-semver/semver"
"github.com/gravitational/trace"
+ "github.com/gravitational/teleport/api/constants"
"github.com/gravitational/teleport/api/types"
"github.com/gravitational/teleport/lib/modules"
"github.com/gravitational/teleport/lib/utils"
@@ -52,14 +53,26 @@ func Dir() (string, error) {
return filepath.Join(home, ".tsh", "bin"), nil
}
-func checkToolVersion(toolsDir string) (string, error) {
+// DefaultClientTools list of the client tools needs to be updated by default.
+func DefaultClientTools() []string {
+ switch runtime.GOOS {
+ case constants.WindowsOS:
+ return []string{"tsh.exe", "tctl.exe"}
+ default:
+ return []string{"tsh", "tctl"}
+ }
+}
+
+// CheckToolVersion returns current installed client tools version, must return NotFoundError if
+// the client tools is not found in tools directory.
+func CheckToolVersion(toolsDir string) (string, error) {
// Find the path to the current executable.
path, err := toolName(toolsDir)
if err != nil {
return "", trace.Wrap(err)
}
if _, err := os.Stat(path); errors.Is(err, os.ErrNotExist) {
- return "", nil
+ return "", trace.NotFound("autoupdate tool not found in %q", toolsDir)
} else if err != nil {
return "", trace.Wrap(err)
}
@@ -76,7 +89,7 @@ func checkToolVersion(toolsDir string) (string, error) {
command.Env = []string{teleportToolsVersionEnv + "=off"}
output, err := command.Output()
if err != nil {
- return "", trace.Wrap(err)
+ return "", trace.WrapWithMessage(err, "failed to determine version of %q tool", path)
}
// The output for "{tsh, tctl} version" can be multiple lines. Find the
diff --git a/lib/client/api.go b/lib/client/api.go
index 9bae4f434d34c..f811efa3824a9 100644
--- a/lib/client/api.go
+++ b/lib/client/api.go
@@ -74,6 +74,7 @@ import (
"github.com/gravitational/teleport/lib/auth/touchid"
wancli "github.com/gravitational/teleport/lib/auth/webauthncli"
"github.com/gravitational/teleport/lib/authz"
+ "github.com/gravitational/teleport/lib/autoupdate/tools"
libmfa "github.com/gravitational/teleport/lib/client/mfa"
"github.com/gravitational/teleport/lib/client/sso"
"github.com/gravitational/teleport/lib/client/terminal"
@@ -95,6 +96,7 @@ import (
"github.com/gravitational/teleport/lib/utils"
"github.com/gravitational/teleport/lib/utils/agentconn"
logutils "github.com/gravitational/teleport/lib/utils/log"
+ "github.com/gravitational/teleport/lib/utils/signal"
)
const (
@@ -705,6 +707,39 @@ func RetryWithRelogin(ctx context.Context, tc *TeleportClient, fn func() error,
return trace.Wrap(err)
}
+ // The user has typed a command like `tsh ssh ...` without being logged in,
+ // if the running binary needs to be updated, update and re-exec.
+ //
+ // If needed, download the new version of {tsh, tctl} and re-exec. Make
+ // sure to exit this process with the same exit code as the child process.
+ //
+ toolsDir, err := tools.Dir()
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ updater := tools.NewUpdater(tools.DefaultClientTools(), toolsDir, teleport.Version)
+ toolsVersion, reExec, err := updater.CheckRemote(ctx, tc.WebProxyAddr, tc.InsecureSkipVerify)
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ if reExec {
+ ctxUpdate, cancel := signal.GetSignalHandler().NotifyContext(context.Background())
+ defer cancel()
+ // Download the version of client tools required by the cluster.
+ err := updater.UpdateWithLock(ctxUpdate, toolsVersion)
+ if err != nil && !errors.Is(err, context.Canceled) {
+ utils.FatalError(err)
+ }
+ // Re-execute client tools with the correct version of client tools.
+ code, err := updater.Exec()
+ if err != nil && !errors.Is(err, os.ErrNotExist) {
+ log.Debugf("Failed to re-exec client tool: %v.", err)
+ os.Exit(code)
+ } else if err == nil {
+ os.Exit(code)
+ }
+ }
+
if opt.afterLoginHook != nil {
if err := opt.afterLoginHook(); err != nil {
return trace.Wrap(err)
diff --git a/lib/events/api.go b/lib/events/api.go
index fa38e95bc8324..20b72ddd2e5f9 100644
--- a/lib/events/api.go
+++ b/lib/events/api.go
@@ -824,6 +824,20 @@ const (
UserTaskUpdateEvent = "user_task.update"
// UserTaskDeleteEvent is emitted when a user task resource is deleted.
UserTaskDeleteEvent = "user_task.delete"
+
+ // AutoUpdateConfigCreateEvent is emitted when a AutoUpdateConfig resource is created.
+ AutoUpdateConfigCreateEvent = "auto_update_config.create"
+ // AutoUpdateConfigUpdateEvent is emitted when a AutoUpdateConfig resource is updated.
+ AutoUpdateConfigUpdateEvent = "auto_update_config.update"
+ // AutoUpdateConfigDeleteEvent is emitted when a AutoUpdateConfig resource is deleted.
+ AutoUpdateConfigDeleteEvent = "auto_update_config.delete"
+
+ // AutoUpdateVersionCreateEvent is emitted when a AutoUpdateVersion resource is created.
+ AutoUpdateVersionCreateEvent = "auto_update_version.create"
+ // AutoUpdateVersionUpdateEvent is emitted when a AutoUpdateVersion resource is updated.
+ AutoUpdateVersionUpdateEvent = "auto_update_version.update"
+ // AutoUpdateVersionDeleteEvent is emitted when a AutoUpdateVersion resource is deleted.
+ AutoUpdateVersionDeleteEvent = "auto_update_version.delete"
)
// Add an entry to eventsMap in lib/events/events_test.go when you add
diff --git a/lib/events/codes.go b/lib/events/codes.go
index 760a8a0fbc4ca..fa8c284fe925b 100644
--- a/lib/events/codes.go
+++ b/lib/events/codes.go
@@ -655,6 +655,20 @@ const (
// UserTaskDeleteCode is the user task delete event code.
UserTaskDeleteCode = "UT003I"
+ // AutoUpdateConfigCreateCode is the auto update config create event code.
+ AutoUpdateConfigCreateCode = "AUC001I"
+ // AutoUpdateConfigUpdateCode is the auto update config update event code.
+ AutoUpdateConfigUpdateCode = "AUC002I"
+ // AutoUpdateConfigDeleteCode is the auto update config delete event code.
+ AutoUpdateConfigDeleteCode = "AUC003I"
+
+ // AutoUpdateVersionCreateCode is the auto update version create event code.
+ AutoUpdateVersionCreateCode = "AUV001I"
+ // AutoUpdateVersionUpdateCode is the auto update version update event code.
+ AutoUpdateVersionUpdateCode = "AUV002I"
+ // AutoUpdateVersionDeleteCode is the auto update version delete event code.
+ AutoUpdateVersionDeleteCode = "AUV003I"
+
// UnknownCode is used when an event of unknown type is encountered.
UnknownCode = apievents.UnknownCode
)
diff --git a/lib/events/dynamic.go b/lib/events/dynamic.go
index 9294c42f25e58..476528255e5ba 100644
--- a/lib/events/dynamic.go
+++ b/lib/events/dynamic.go
@@ -448,6 +448,20 @@ func FromEventFields(fields EventFields) (events.AuditEvent, error) {
case SFTPSummaryEvent:
e = &events.SFTPSummary{}
+
+ case AutoUpdateConfigCreateEvent:
+ e = &events.AutoUpdateConfigCreate{}
+ case AutoUpdateConfigUpdateEvent:
+ e = &events.AutoUpdateConfigUpdate{}
+ case AutoUpdateConfigDeleteEvent:
+ e = &events.AutoUpdateConfigDelete{}
+
+ case AutoUpdateVersionCreateEvent:
+ e = &events.AutoUpdateVersionCreate{}
+ case AutoUpdateVersionUpdateEvent:
+ e = &events.AutoUpdateVersionUpdate{}
+ case AutoUpdateVersionDeleteEvent:
+ e = &events.AutoUpdateVersionDelete{}
default:
slog.ErrorContext(context.Background(), "Attempted to convert dynamic event of unknown type into protobuf event.", "event_type", eventType)
unknown := &events.Unknown{}
diff --git a/lib/events/events_test.go b/lib/events/events_test.go
index 4f5ae73a4df6a..c178aa3272d31 100644
--- a/lib/events/events_test.go
+++ b/lib/events/events_test.go
@@ -236,6 +236,12 @@ var eventsMap = map[string]apievents.AuditEvent{
UserTaskUpdateEvent: &apievents.UserTaskUpdate{},
UserTaskDeleteEvent: &apievents.UserTaskDelete{},
SFTPSummaryEvent: &apievents.SFTPSummary{},
+ AutoUpdateConfigCreateEvent: &apievents.AutoUpdateConfigCreate{},
+ AutoUpdateConfigUpdateEvent: &apievents.AutoUpdateConfigUpdate{},
+ AutoUpdateConfigDeleteEvent: &apievents.AutoUpdateConfigDelete{},
+ AutoUpdateVersionCreateEvent: &apievents.AutoUpdateVersionCreate{},
+ AutoUpdateVersionUpdateEvent: &apievents.AutoUpdateVersionUpdate{},
+ AutoUpdateVersionDeleteEvent: &apievents.AutoUpdateVersionDelete{},
}
// TestJSON tests JSON marshal events
diff --git a/lib/utils/packaging/unarchive.go b/lib/utils/packaging/unarchive.go
index f1a197e095b1a..6496afbc182c3 100644
--- a/lib/utils/packaging/unarchive.go
+++ b/lib/utils/packaging/unarchive.go
@@ -38,13 +38,13 @@ const (
)
// RemoveWithSuffix removes all that matches the provided suffix, except for file or directory with `skipName`.
-func RemoveWithSuffix(dir, suffix, skipName string) error {
+func RemoveWithSuffix(dir, suffix string, skipNames []string) error {
var removePaths []string
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return trace.Wrap(err)
}
- if skipName == info.Name() {
+ if slices.Contains(skipNames, info.Name()) {
return nil
}
if !strings.HasSuffix(info.Name(), suffix) {
@@ -59,12 +59,13 @@ func RemoveWithSuffix(dir, suffix, skipName string) error {
if err != nil {
return trace.Wrap(err)
}
+ var aggErr []error
for _, path := range removePaths {
if err := os.RemoveAll(path); err != nil {
- return trace.Wrap(err)
+ aggErr = append(aggErr, err)
}
}
- return nil
+ return trace.NewAggregate(aggErr...)
}
// replaceZip un-archives the Teleport package in .zip format, iterates through
@@ -118,7 +119,7 @@ func replaceZip(toolsDir string, archivePath string, extractDir string, execName
defer file.Close()
dest := filepath.Join(extractDir, baseName)
- destFile, err := os.OpenFile(dest, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0755)
+ destFile, err := os.OpenFile(dest, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0o755)
if err != nil {
return trace.Wrap(err)
}
@@ -131,7 +132,10 @@ func replaceZip(toolsDir string, archivePath string, extractDir string, execName
if err := os.Remove(appPath); err != nil && !os.IsNotExist(err) {
return trace.Wrap(err)
}
- if err := os.Symlink(dest, appPath); err != nil {
+ // For the Windows build we have to copy binary to be able
+ // to do this without administrative access as it required
+ // for symlinks.
+ if err := utils.CopyFile(dest, appPath, 0o755); err != nil {
return trace.Wrap(err)
}
return trace.Wrap(destFile.Close())
diff --git a/lib/utils/packaging/unarchive_test.go b/lib/utils/packaging/unarchive_test.go
index 30933bbb75927..b124b603b0fd5 100644
--- a/lib/utils/packaging/unarchive_test.go
+++ b/lib/utils/packaging/unarchive_test.go
@@ -30,7 +30,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
- "github.com/gravitational/teleport/integration/helpers"
+ "github.com/gravitational/teleport/integration/helpers/archive"
)
// TestPackaging verifies un-archiving of all supported teleport package formats.
@@ -63,7 +63,7 @@ func TestPackaging(t *testing.T) {
t.Run("tar.gz", func(t *testing.T) {
archivePath := filepath.Join(toolsDir, "tsh.tar.gz")
- err = helpers.CompressDirToTarGzFile(ctx, sourceDir, archivePath)
+ err = archive.CompressDirToTarGzFile(ctx, sourceDir, archivePath)
require.NoError(t, err)
require.FileExists(t, archivePath, "archive not created")
@@ -85,7 +85,7 @@ func TestPackaging(t *testing.T) {
t.Skip("unsupported platform")
}
archivePath := filepath.Join(toolsDir, "tsh.pkg")
- err = helpers.CompressDirToPkgFile(ctx, sourceDir, archivePath, "com.example.pkgtest")
+ err = archive.CompressDirToPkgFile(ctx, sourceDir, archivePath, "com.example.pkgtest")
require.NoError(t, err)
require.FileExists(t, archivePath, "archive not created")
@@ -101,7 +101,7 @@ func TestPackaging(t *testing.T) {
t.Run("zip", func(t *testing.T) {
archivePath := filepath.Join(toolsDir, "tsh.zip")
- err = helpers.CompressDirToZipFile(ctx, sourceDir, archivePath)
+ err = archive.CompressDirToZipFile(ctx, sourceDir, archivePath)
require.NoError(t, err)
require.FileExists(t, archivePath, "archive not created")
@@ -132,7 +132,7 @@ func TestRemoveWithSuffix(t *testing.T) {
dirInSkipPath := filepath.Join(skipPath, dirForRemove)
require.NoError(t, os.MkdirAll(skipPath, 0o755))
- err := RemoveWithSuffix(testDir, dirForRemove, skipName)
+ err := RemoveWithSuffix(testDir, dirForRemove, []string{skipName})
require.NoError(t, err)
_, err = os.Stat(filepath.Join(testDir, dirForRemove))
diff --git a/lib/utils/packaging/unarchive_unix.go b/lib/utils/packaging/unarchive_unix.go
index ea51afdbbc7f0..8daf1b3aa5525 100644
--- a/lib/utils/packaging/unarchive_unix.go
+++ b/lib/utils/packaging/unarchive_unix.go
@@ -186,9 +186,10 @@ func replacePkg(toolsDir string, archivePath string, extractDir string, execName
// swap operations. This ensures that the "com.apple.macl" extended
// attribute is set and macOS will not send a SIGKILL to the process
// if multiple processes are trying to operate on it.
- command := exec.Command(path, "version", "--client")
+ command := exec.Command(path, "version")
+ command.Env = []string{"TELEPORT_TOOLS_VERSION=off"}
if err := command.Run(); err != nil {
- return trace.Wrap(err)
+ return trace.WrapWithMessage(err, "failed to validate binary")
}
// Due to macOS applications not being a single binary (they are a
diff --git a/lib/utils/signal/stack_handler.go b/lib/utils/signal/stack_handler.go
new file mode 100644
index 0000000000000..0fcbefb081d11
--- /dev/null
+++ b/lib/utils/signal/stack_handler.go
@@ -0,0 +1,98 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package signal
+
+import (
+ "container/list"
+ "context"
+ "os"
+ "os/signal"
+ "sync"
+ "syscall"
+)
+
+// Handler implements stack for context cancellation.
+type Handler struct {
+ mu sync.Mutex
+ list *list.List
+}
+
+var handler = &Handler{
+ list: list.New(),
+}
+
+// GetSignalHandler returns global singleton instance of signal
+func GetSignalHandler() *Handler {
+ return handler
+}
+
+// NotifyContext creates context which going to be canceled after SIGINT, SIGTERM
+// in order of adding them to the stack. When very first context is canceled
+// we stop watching the OS signals.
+func (s *Handler) NotifyContext(parent context.Context) (context.Context, context.CancelFunc) {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+
+ if s.list.Len() == 0 {
+ s.listenSignals()
+ }
+
+ ctx, cancel := context.WithCancel(parent)
+ element := s.list.PushBack(cancel)
+
+ return ctx, func() {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+
+ s.list.Remove(element)
+ cancel()
+ }
+}
+
+// listenSignals sets up the signal listener for SIGINT, SIGTERM.
+func (s *Handler) listenSignals() {
+ sigChan := make(chan os.Signal, 1)
+ signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
+ go func() {
+ for {
+ if sig := <-sigChan; sig == nil {
+ return
+ }
+ if !s.cancelNext() {
+ signal.Stop(sigChan)
+ return
+ }
+ }
+ }()
+}
+
+// cancelNext calls the most recent cancel func in the stack.
+func (s *Handler) cancelNext() bool {
+ s.mu.Lock()
+ defer s.mu.Unlock()
+
+ if s.list.Len() > 0 {
+ cancel := s.list.Remove(s.list.Back())
+ if cancel != nil {
+ cancel.(context.CancelFunc)()
+ }
+ }
+
+ return s.list.Len() != 0
+}
diff --git a/lib/utils/signal/stack_handler_test.go b/lib/utils/signal/stack_handler_test.go
new file mode 100644
index 0000000000000..b900939b886e8
--- /dev/null
+++ b/lib/utils/signal/stack_handler_test.go
@@ -0,0 +1,88 @@
+/*
+ * Teleport
+ * Copyright (C) 2024 Gravitational, Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+
+package signal
+
+import (
+ "context"
+ "os"
+ "syscall"
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
+)
+
+// TestGetSignalHandler verifies the cancellation stack order.
+func TestGetSignalHandler(t *testing.T) {
+ testHandler := GetSignalHandler()
+ parent := context.Background()
+
+ ctx1, cancel1 := testHandler.NotifyContext(parent)
+ ctx2, cancel2 := testHandler.NotifyContext(parent)
+ ctx3, cancel3 := testHandler.NotifyContext(parent)
+ ctx4, cancel4 := testHandler.NotifyContext(parent)
+ t.Cleanup(func() {
+ cancel4()
+ cancel2()
+ cancel1()
+ })
+
+ // Verify that all context not canceled.
+ require.NoError(t, ctx4.Err())
+ require.NoError(t, ctx3.Err())
+ require.NoError(t, ctx2.Err())
+ require.NoError(t, ctx1.Err())
+
+ // Cancel context manually to ensure it was removed from stack in right order.
+ cancel3()
+
+ // Check that last added context is canceled.
+ require.NoError(t, syscall.Kill(os.Getpid(), syscall.SIGINT))
+ select {
+ case <-ctx4.Done():
+ assert.ErrorIs(t, ctx3.Err(), context.Canceled)
+ assert.NoError(t, ctx2.Err())
+ assert.NoError(t, ctx1.Err())
+ case <-time.After(time.Second):
+ assert.Fail(t, "context 3 must be canceled")
+ }
+
+ // Send interrupt signal to cancel next context in the stack.
+ require.NoError(t, syscall.Kill(os.Getpid(), syscall.SIGINT))
+ select {
+ case <-ctx2.Done():
+ assert.ErrorIs(t, ctx4.Err(), context.Canceled)
+ assert.ErrorIs(t, ctx3.Err(), context.Canceled)
+ assert.NoError(t, ctx1.Err())
+ case <-time.After(time.Second):
+ assert.Fail(t, "context 2 must be canceled")
+ }
+
+ // All context must be canceled.
+ require.NoError(t, syscall.Kill(os.Getpid(), syscall.SIGINT))
+ select {
+ case <-ctx1.Done():
+ assert.ErrorIs(t, ctx4.Err(), context.Canceled)
+ assert.ErrorIs(t, ctx3.Err(), context.Canceled)
+ assert.ErrorIs(t, ctx2.Err(), context.Canceled)
+ case <-time.After(time.Second):
+ assert.Fail(t, "context 1 must be canceled")
+ }
+}
diff --git a/lib/web/apiserver.go b/lib/web/apiserver.go
index ee0683f2f87be..9aea2c57c3dc1 100644
--- a/lib/web/apiserver.go
+++ b/lib/web/apiserver.go
@@ -65,6 +65,7 @@ import (
"github.com/gravitational/teleport/api/client/webclient"
"github.com/gravitational/teleport/api/constants"
apidefaults "github.com/gravitational/teleport/api/defaults"
+ autoupdatepb "github.com/gravitational/teleport/api/gen/proto/go/teleport/autoupdate/v1"
mfav1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/mfa/v1"
notificationsv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/notifications/v1"
"github.com/gravitational/teleport/api/mfa"
@@ -1549,69 +1550,58 @@ func (h *Handler) ping(w http.ResponseWriter, r *http.Request, p httprouter.Para
MinClientVersion: teleport.MinClientVersion,
ClusterName: h.auth.clusterName,
AutomaticUpgrades: pr.ServerFeatures.GetAutomaticUpgrades(),
+ AutoUpdate: h.automaticUpdateSettings(r.Context()),
}, nil
}
func (h *Handler) find(w http.ResponseWriter, r *http.Request, p httprouter.Params) (interface{}, error) {
// cache the generic answer to avoid doing work for each request
resp, err := utils.FnCacheGet[*webclient.PingResponse](r.Context(), h.findEndpointCache, "find", func(ctx context.Context) (*webclient.PingResponse, error) {
- response := webclient.PingResponse{
- ServerVersion: teleport.Version,
- MinClientVersion: teleport.MinClientVersion,
- ClusterName: h.auth.clusterName,
- }
-
- proxyConfig, err := h.cfg.ProxySettings.GetProxySettings(r.Context())
+ proxyConfig, err := h.cfg.ProxySettings.GetProxySettings(ctx)
if err != nil {
return nil, trace.Wrap(err)
}
- response.Proxy = *proxyConfig
- authPref, err := h.cfg.AccessPoint.GetAuthPreference(r.Context())
+ authPref, err := h.cfg.AccessPoint.GetAuthPreference(ctx)
if err != nil {
return nil, trace.Wrap(err)
}
- response.Auth = webclient.AuthenticationSettings{SignatureAlgorithmSuite: authPref.GetSignatureAlgorithmSuite()}
-
- autoUpdateConfig, err := h.cfg.AccessPoint.GetAutoUpdateConfig(r.Context())
- // TODO(vapopov) DELETE IN v18.0.0 check of IsNotImplemented, must be backported to all latest supported versions.
- if err != nil && !trace.IsNotFound(err) && !trace.IsNotImplemented(err) {
- h.logger.ErrorContext(r.Context(), "failed to receive AutoUpdateConfig", "error", err)
- }
- // If we can't get the AU config or tools AU are not configured, we default to "disabled".
- // This ensures we fail open and don't accidentally update agents if something is going wrong.
- // If we want to enable AUs by default, it would be better to create a default "autoupdate_config" resource
- // than changing this logic.
- if autoUpdateConfig.GetSpec().GetTools() == nil {
- response.AutoUpdate.ToolsMode = autoupdate.ToolsUpdateModeDisabled
- } else {
- response.AutoUpdate.ToolsMode = autoUpdateConfig.GetSpec().GetTools().GetMode()
- }
-
- autoUpdateVersion, err := h.cfg.AccessPoint.GetAutoUpdateVersion(r.Context())
- // TODO(vapopov) DELETE IN v18.0.0 check of IsNotImplemented, must be backported to all latest supported versions.
- if err != nil && !trace.IsNotFound(err) && !trace.IsNotImplemented(err) {
- h.logger.ErrorContext(r.Context(), "failed to receive AutoUpdateVersion", "error", err)
- }
- // If we can't get the AU version or tools AU version is not specified, we default to the current proxy version.
- // This ensures we always advertise a version compatible with the cluster.
- if autoUpdateVersion.GetSpec().GetTools() == nil {
- response.AutoUpdate.ToolsVersion = api.Version
- } else {
- response.AutoUpdate.ToolsVersion = autoUpdateVersion.GetSpec().GetTools().GetTargetVersion()
- }
- return &response, nil
+ return &webclient.PingResponse{
+ Proxy: *proxyConfig,
+ Auth: webclient.AuthenticationSettings{SignatureAlgorithmSuite: authPref.GetSignatureAlgorithmSuite()},
+ ServerVersion: teleport.Version,
+ MinClientVersion: teleport.MinClientVersion,
+ ClusterName: h.auth.clusterName,
+ AutoUpdate: h.automaticUpdateSettings(ctx),
+ }, nil
})
if err != nil {
return nil, trace.Wrap(err)
}
-
- // If you need to modulate the response based on the request params (will need to do this for automatic updates)
- // Do it here.
return resp, nil
}
+// TODO: add the request as a parameter when we'll need to modulate the content based on the UUID and group
+func (h *Handler) automaticUpdateSettings(ctx context.Context) webclient.AutoUpdateSettings {
+ autoUpdateConfig, err := h.cfg.AccessPoint.GetAutoUpdateConfig(ctx)
+ // TODO(vapopov) DELETE IN v18.0.0 check of IsNotImplemented, must be backported to all latest supported versions.
+ if err != nil && !trace.IsNotFound(err) && !trace.IsNotImplemented(err) {
+ h.logger.ErrorContext(ctx, "failed to receive AutoUpdateConfig", "error", err)
+ }
+
+ autoUpdateVersion, err := h.cfg.AccessPoint.GetAutoUpdateVersion(ctx)
+ // TODO(vapopov) DELETE IN v18.0.0 check of IsNotImplemented, must be backported to all latest supported versions.
+ if err != nil && !trace.IsNotFound(err) && !trace.IsNotImplemented(err) {
+ h.logger.ErrorContext(ctx, "failed to receive AutoUpdateVersion", "error", err)
+ }
+
+ return webclient.AutoUpdateSettings{
+ ToolsAutoUpdate: getToolsAutoUpdate(autoUpdateConfig),
+ ToolsVersion: getToolsVersion(autoUpdateVersion),
+ }
+}
+
func (h *Handler) pingWithConnector(w http.ResponseWriter, r *http.Request, p httprouter.Params) (interface{}, error) {
authClient := h.cfg.ProxyClient
connectorName := p.ByName("connector")
@@ -5174,3 +5164,23 @@ func readEtagFromAppHash(fs http.FileSystem) (string, error) {
return etag, nil
}
+
+func getToolsAutoUpdate(config *autoupdatepb.AutoUpdateConfig) bool {
+ // If we can't get the AU config or if AUs are not configured, we default to "disabled".
+ // This ensures we fail open and don't accidentally update agents if something is going wrong.
+ // If we want to enable AUs by default, it would be better to create a default "autoupdate_config" resource
+ // than changing this logic.
+ if config.GetSpec().GetTools() != nil {
+ return config.GetSpec().GetTools().GetMode() == autoupdate.ToolsUpdateModeEnabled
+ }
+ return false
+}
+
+func getToolsVersion(version *autoupdatepb.AutoUpdateVersion) string {
+ // If we can't get the AU version or tools AU version is not specified, we default to the current proxy version.
+ // This ensures we always advertise a version compatible with the cluster.
+ if version.GetSpec().GetTools() == nil {
+ return api.Version
+ }
+ return version.GetSpec().GetTools().GetTargetVersion()
+}
diff --git a/lib/web/apiserver_ping_test.go b/lib/web/apiserver_ping_test.go
index 231c8625ffacd..bee504fe7b20f 100644
--- a/lib/web/apiserver_ping_test.go
+++ b/lib/web/apiserver_ping_test.go
@@ -305,8 +305,8 @@ func TestPing_autoUpdateResources(t *testing.T) {
{
name: "resources not defined",
expected: webclient.AutoUpdateSettings{
- ToolsVersion: api.Version,
- ToolsMode: autoupdate.ToolsUpdateModeDisabled,
+ ToolsVersion: api.Version,
+ ToolsAutoUpdate: false,
},
},
{
@@ -317,36 +317,36 @@ func TestPing_autoUpdateResources(t *testing.T) {
},
},
expected: webclient.AutoUpdateSettings{
- ToolsMode: autoupdate.ToolsUpdateModeEnabled,
- ToolsVersion: api.Version,
+ ToolsAutoUpdate: true,
+ ToolsVersion: api.Version,
},
cleanup: true,
},
{
- name: "no autoupdate tool config nor version",
+ name: "empty config and version",
config: &autoupdatev1pb.AutoUpdateConfigSpec{},
version: &autoupdatev1pb.AutoUpdateVersionSpec{},
expected: webclient.AutoUpdateSettings{
- ToolsVersion: api.Version,
- ToolsMode: autoupdate.ToolsUpdateModeDisabled,
+ ToolsVersion: api.Version,
+ ToolsAutoUpdate: false,
},
cleanup: true,
},
{
- name: "set auto update version",
+ name: "set tools auto update version",
version: &autoupdatev1pb.AutoUpdateVersionSpec{
Tools: &autoupdatev1pb.AutoUpdateVersionSpecTools{
TargetVersion: "1.2.3",
},
},
expected: webclient.AutoUpdateSettings{
- ToolsVersion: "1.2.3",
- ToolsMode: autoupdate.ToolsUpdateModeDisabled,
+ ToolsVersion: "1.2.3",
+ ToolsAutoUpdate: false,
},
cleanup: true,
},
{
- name: "enable auto update and set version",
+ name: "enable tools auto update and set version",
config: &autoupdatev1pb.AutoUpdateConfigSpec{
Tools: &autoupdatev1pb.AutoUpdateConfigSpecTools{
Mode: autoupdate.ToolsUpdateModeEnabled,
@@ -358,8 +358,8 @@ func TestPing_autoUpdateResources(t *testing.T) {
},
},
expected: webclient.AutoUpdateSettings{
- ToolsMode: autoupdate.ToolsUpdateModeEnabled,
- ToolsVersion: "1.2.3",
+ ToolsAutoUpdate: true,
+ ToolsVersion: "1.2.3",
},
},
{
@@ -375,8 +375,8 @@ func TestPing_autoUpdateResources(t *testing.T) {
},
},
expected: webclient.AutoUpdateSettings{
- ToolsMode: autoupdate.ToolsUpdateModeDisabled,
- ToolsVersion: "3.2.1",
+ ToolsAutoUpdate: false,
+ ToolsVersion: "3.2.1",
},
},
}
diff --git a/tool/tctl/common/tctl.go b/tool/tctl/common/tctl.go
index 986db7a670972..5af22702f8b17 100644
--- a/tool/tctl/common/tctl.go
+++ b/tool/tctl/common/tctl.go
@@ -44,6 +44,7 @@ import (
"github.com/gravitational/teleport/lib/auth/authclient"
"github.com/gravitational/teleport/lib/auth/state"
"github.com/gravitational/teleport/lib/auth/storage"
+ "github.com/gravitational/teleport/lib/autoupdate/tools"
"github.com/gravitational/teleport/lib/client"
"github.com/gravitational/teleport/lib/client/identityfile"
libmfa "github.com/gravitational/teleport/lib/client/mfa"
@@ -55,6 +56,7 @@ import (
"github.com/gravitational/teleport/lib/service/servicecfg"
"github.com/gravitational/teleport/lib/utils"
"github.com/gravitational/teleport/lib/utils/hostid"
+ "github.com/gravitational/teleport/lib/utils/signal"
"github.com/gravitational/teleport/tool/common"
)
@@ -105,8 +107,43 @@ type CLICommand interface {
// "distributions" like OSS or Enterprise
//
// distribution: name of the Teleport distribution
-func Run(commands []CLICommand) {
- err := TryRun(commands, os.Args[1:])
+func Run(ctx context.Context, commands []CLICommand) {
+ // The user has typed a command like `tsh ssh ...` without being logged in,
+ // if the running binary needs to be updated, update and re-exec.
+ //
+ // If needed, download the new version of {tsh, tctl} and re-exec. Make
+ // sure to exit this process with the same exit code as the child process.
+ //
+ toolsDir, err := tools.Dir()
+ if err != nil {
+ utils.FatalError(err)
+ }
+ updater := tools.NewUpdater(tools.DefaultClientTools(), toolsDir, teleport.Version)
+ toolsVersion, reExec, err := updater.CheckLocal()
+ if err != nil {
+ utils.FatalError(err)
+ }
+ if reExec {
+ ctxUpdate, cancel := signal.GetSignalHandler().NotifyContext(ctx)
+ defer cancel()
+ // Download the version of client tools required by the cluster. This
+ // is required if the user passed in the TELEPORT_TOOLS_VERSION
+ // explicitly.
+ err := updater.UpdateWithLock(ctxUpdate, toolsVersion)
+ if err != nil && !errors.Is(err, context.Canceled) {
+ utils.FatalError(err)
+ }
+ // Re-execute client tools with the correct version of client tools.
+ code, err := updater.Exec()
+ if err != nil && !errors.Is(err, os.ErrNotExist) {
+ log.Debugf("Failed to re-exec client tool: %v.", err)
+ os.Exit(code)
+ } else if err == nil {
+ os.Exit(code)
+ }
+ }
+
+ err = TryRun(commands, os.Args[1:])
if err != nil {
var exitError *common.ExitCodeError
if errors.As(err, &exitError) {
diff --git a/tool/tctl/main.go b/tool/tctl/main.go
index f363e347f25c9..6dfae87ffdef2 100644
--- a/tool/tctl/main.go
+++ b/tool/tctl/main.go
@@ -19,9 +19,15 @@
package main
import (
+ "context"
+
+ "github.com/gravitational/teleport/lib/utils/signal"
"github.com/gravitational/teleport/tool/tctl/common"
)
func main() {
- common.Run(common.Commands())
+ ctx, cancel := signal.GetSignalHandler().NotifyContext(context.Background())
+ defer cancel()
+
+ common.Run(ctx, common.Commands())
}
diff --git a/tool/tsh/common/tsh.go b/tool/tsh/common/tsh.go
index d90e3206f9eef..4875f836b3a4f 100644
--- a/tool/tsh/common/tsh.go
+++ b/tool/tsh/common/tsh.go
@@ -41,7 +41,6 @@ import (
"strconv"
"strings"
"sync"
- "syscall"
"time"
"github.com/alecthomas/kingpin/v2"
@@ -74,6 +73,7 @@ import (
"github.com/gravitational/teleport/lib/asciitable"
"github.com/gravitational/teleport/lib/auth/authclient"
wancli "github.com/gravitational/teleport/lib/auth/webauthncli"
+ "github.com/gravitational/teleport/lib/autoupdate/tools"
"github.com/gravitational/teleport/lib/benchmark"
benchmarkdb "github.com/gravitational/teleport/lib/benchmark/db"
"github.com/gravitational/teleport/lib/client"
@@ -94,6 +94,7 @@ import (
"github.com/gravitational/teleport/lib/utils"
"github.com/gravitational/teleport/lib/utils/diagnostics/latency"
"github.com/gravitational/teleport/lib/utils/mlock"
+ stacksignal "github.com/gravitational/teleport/lib/utils/signal"
"github.com/gravitational/teleport/tool/common"
"github.com/gravitational/teleport/tool/common/fido2"
"github.com/gravitational/teleport/tool/common/touchid"
@@ -609,7 +610,7 @@ func Main() {
cmdLineOrig := os.Args[1:]
var cmdLine []string
- ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGTERM, syscall.SIGINT)
+ ctx, cancel := stacksignal.GetSignalHandler().NotifyContext(context.Background())
defer cancel()
// lets see: if the executable name is 'ssh' or 'scp' we convert
@@ -707,6 +708,38 @@ func initLogger(cf *CLIConf) {
//
// DO NOT RUN TESTS that call Run() in parallel (unless you taken precautions).
func Run(ctx context.Context, args []string, opts ...CliOption) error {
+ // At process startup, check if a version has already been downloaded to
+ // $TELEPORT_HOME/bin or if the user has set the TELEPORT_TOOLS_VERSION
+ // environment variable. If so, re-exec that version of {tsh, tctl}.
+ toolsDir, err := tools.Dir()
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ updater := tools.NewUpdater(tools.DefaultClientTools(), toolsDir, teleport.Version)
+ toolsVersion, reExec, err := updater.CheckLocal()
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ if reExec {
+ ctxUpdate, cancel := stacksignal.GetSignalHandler().NotifyContext(ctx)
+ defer cancel()
+ // Download the version of client tools required by the cluster. This
+ // is required if the user passed in the TELEPORT_TOOLS_VERSION
+ // explicitly.
+ err := updater.UpdateWithLock(ctxUpdate, toolsVersion)
+ if err != nil && !errors.Is(err, context.Canceled) {
+ return trace.Wrap(err)
+ }
+ // Re-execute client tools with the correct version of client tools.
+ code, err := updater.Exec()
+ if err != nil && !errors.Is(err, os.ErrNotExist) {
+ log.Debugf("Failed to re-exec client tool: %v.", err)
+ os.Exit(code)
+ } else if err == nil {
+ os.Exit(code)
+ }
+ }
+
cf := CLIConf{
Context: ctx,
TracingProvider: tracing.NoopProvider(),
@@ -1240,8 +1273,6 @@ func Run(ctx context.Context, args []string, opts ...CliOption) error {
bench.Hidden()
}
- var err error
-
cf.executablePath, err = os.Executable()
if err != nil {
return trace.Wrap(err)
@@ -1867,6 +1898,14 @@ func onLogin(cf *CLIConf) error {
}
tc.HomePath = cf.HomePath
+ // The user is not logged in and has typed in `tsh --proxy=... login`, if
+ // the running binary needs to be updated, update and re-exec.
+ if profile == nil {
+ if err := updateAndRun(cf.Context, tc.WebProxyAddr, tc.InsecureSkipVerify); err != nil {
+ return trace.Wrap(err)
+ }
+ }
+
// client is already logged in and profile is not expired
if profile != nil && !profile.IsExpired(time.Now()) {
switch {
@@ -1877,6 +1916,13 @@ func onLogin(cf *CLIConf) error {
// current status
case cf.Proxy == "" && cf.SiteName == "" && cf.DesiredRoles == "" && cf.RequestID == "" && cf.IdentityFileOut == "" ||
host(cf.Proxy) == host(profile.ProxyURL.Host) && cf.SiteName == profile.Cluster && cf.DesiredRoles == "" && cf.RequestID == "":
+
+ // The user has typed `tsh login`, if the running binary needs to
+ // be updated, update and re-exec.
+ if err := updateAndRun(cf.Context, tc.WebProxyAddr, tc.InsecureSkipVerify); err != nil {
+ return trace.Wrap(err)
+ }
+
_, err := tc.PingAndShowMOTD(cf.Context)
if err != nil {
return trace.Wrap(err)
@@ -1890,6 +1936,13 @@ func onLogin(cf *CLIConf) error {
// if the proxy names match but nothing else is specified; show motd and update active profile and kube configs
case host(cf.Proxy) == host(profile.ProxyURL.Host) &&
cf.SiteName == "" && cf.DesiredRoles == "" && cf.RequestID == "" && cf.IdentityFileOut == "":
+
+ // The user has typed `tsh login`, if the running binary needs to
+ // be updated, update and re-exec.
+ if err := updateAndRun(cf.Context, tc.WebProxyAddr, tc.InsecureSkipVerify); err != nil {
+ return trace.Wrap(err)
+ }
+
_, err := tc.PingAndShowMOTD(cf.Context)
if err != nil {
return trace.Wrap(err)
@@ -1960,7 +2013,11 @@ func onLogin(cf *CLIConf) error {
// otherwise just pass through to standard login
default:
-
+ // The user is logged in and has typed in `tsh --proxy=... login`, if
+ // the running binary needs to be updated, update and re-exec.
+ if err := updateAndRun(cf.Context, tc.WebProxyAddr, tc.InsecureSkipVerify); err != nil {
+ return trace.Wrap(err)
+ }
}
}
@@ -5557,6 +5614,43 @@ const (
"https://goteleport.com/docs/access-controls/guides/headless/#troubleshooting"
)
+func updateAndRun(ctx context.Context, proxy string, insecure bool) error {
+ // The user has typed a command like `tsh ssh ...` without being logged in,
+ // if the running binary needs to be updated, update and re-exec.
+ //
+ // If needed, download the new version of {tsh, tctl} and re-exec. Make
+ // sure to exit this process with the same exit code as the child process.
+ //
+ toolsDir, err := tools.Dir()
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ updater := tools.NewUpdater(tools.DefaultClientTools(), toolsDir, teleport.Version)
+ toolsVersion, reExec, err := updater.CheckRemote(ctx, proxy, insecure)
+ if err != nil {
+ return trace.Wrap(err)
+ }
+ if reExec {
+ ctxUpdate, cancel := stacksignal.GetSignalHandler().NotifyContext(context.Background())
+ defer cancel()
+ // Download the version of client tools required by the cluster.
+ err := updater.UpdateWithLock(ctxUpdate, toolsVersion)
+ if err != nil && !errors.Is(err, context.Canceled) {
+ return trace.Wrap(err)
+ }
+ // Re-execute client tools with the correct version of client tools.
+ code, err := updater.Exec()
+ if err != nil && !errors.Is(err, os.ErrNotExist) {
+ log.Debugf("Failed to re-exec client tool: %v.", err)
+ os.Exit(code)
+ } else if err == nil {
+ os.Exit(code)
+ }
+ }
+
+ return nil
+}
+
// Lock the process memory to prevent rsa keys and certificates in memory from being exposed in a swap.
func tryLockMemory(cf *CLIConf) error {
if cf.MlockMode == mlockModeAuto {