diff --git a/api/gen/proto/go/teleport/machineid/v1/federation.pb.go b/api/gen/proto/go/teleport/machineid/v1/federation.pb.go
new file mode 100644
index 0000000000000..ae54d9eda14ed
--- /dev/null
+++ b/api/gen/proto/go/teleport/machineid/v1/federation.pb.go
@@ -0,0 +1,620 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.34.2
+// protoc (unknown)
+// source: teleport/machineid/v1/federation.proto
+
+package machineidv1
+
+import (
+ v1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/header/v1"
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ durationpb "google.golang.org/protobuf/types/known/durationpb"
+ timestamppb "google.golang.org/protobuf/types/known/timestamppb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// SPIFFEFederation is a resource that represents the configuration of a trust
+// domain federation.
+type SPIFFEFederation struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The kind of resource represented.
+ Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
+ // Differentiates variations of the same kind. All resources should
+ // contain one, even if it is never populated.
+ SubKind string `protobuf:"bytes,2,opt,name=sub_kind,json=subKind,proto3" json:"sub_kind,omitempty"`
+ // The version of the resource being represented.
+ Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
+ // Common metadata that all resources share.
+ // Importantly, the name MUST match the name of the trust domain you federate
+ // with.
+ Metadata *v1.Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"`
+ // The configured properties of the trust domain federation
+ Spec *SPIFFEFederationSpec `protobuf:"bytes,5,opt,name=spec,proto3" json:"spec,omitempty"`
+ // Fields that are set by the server as results of operations. These should
+ // not be modified by users.
+ Status *SPIFFEFederationStatus `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
+}
+
+func (x *SPIFFEFederation) Reset() {
+ *x = SPIFFEFederation{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SPIFFEFederation) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SPIFFEFederation) ProtoMessage() {}
+
+func (x *SPIFFEFederation) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SPIFFEFederation.ProtoReflect.Descriptor instead.
+func (*SPIFFEFederation) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *SPIFFEFederation) GetKind() string {
+ if x != nil {
+ return x.Kind
+ }
+ return ""
+}
+
+func (x *SPIFFEFederation) GetSubKind() string {
+ if x != nil {
+ return x.SubKind
+ }
+ return ""
+}
+
+func (x *SPIFFEFederation) GetVersion() string {
+ if x != nil {
+ return x.Version
+ }
+ return ""
+}
+
+func (x *SPIFFEFederation) GetMetadata() *v1.Metadata {
+ if x != nil {
+ return x.Metadata
+ }
+ return nil
+}
+
+func (x *SPIFFEFederation) GetSpec() *SPIFFEFederationSpec {
+ if x != nil {
+ return x.Spec
+ }
+ return nil
+}
+
+func (x *SPIFFEFederation) GetStatus() *SPIFFEFederationStatus {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+
+// SPIFFEFederationBundleSourceStatic is a static bundle source. It should be an
+// option of last resort, as it requires manual updates.
+type SPIFFEFederationBundleSourceStatic struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The SPIFFE JWKS bundle.
+ Bundle string `protobuf:"bytes,1,opt,name=bundle,proto3" json:"bundle,omitempty"`
+}
+
+func (x *SPIFFEFederationBundleSourceStatic) Reset() {
+ *x = SPIFFEFederationBundleSourceStatic{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SPIFFEFederationBundleSourceStatic) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SPIFFEFederationBundleSourceStatic) ProtoMessage() {}
+
+func (x *SPIFFEFederationBundleSourceStatic) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SPIFFEFederationBundleSourceStatic.ProtoReflect.Descriptor instead.
+func (*SPIFFEFederationBundleSourceStatic) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *SPIFFEFederationBundleSourceStatic) GetBundle() string {
+ if x != nil {
+ return x.Bundle
+ }
+ return ""
+}
+
+// SPIFFEFederationBundleSourceHTTPSWeb is a bundle source that fetches the bundle
+// from a HTTPS endpoint that is protected by a Web PKI certificate.
+type SPIFFEFederationBundleSourceHTTPSWeb struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The URL of the SPIFFE Bundle Endpoint.
+ BundleEndpointUrl string `protobuf:"bytes,1,opt,name=bundle_endpoint_url,json=bundleEndpointUrl,proto3" json:"bundle_endpoint_url,omitempty"`
+}
+
+func (x *SPIFFEFederationBundleSourceHTTPSWeb) Reset() {
+ *x = SPIFFEFederationBundleSourceHTTPSWeb{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SPIFFEFederationBundleSourceHTTPSWeb) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SPIFFEFederationBundleSourceHTTPSWeb) ProtoMessage() {}
+
+func (x *SPIFFEFederationBundleSourceHTTPSWeb) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SPIFFEFederationBundleSourceHTTPSWeb.ProtoReflect.Descriptor instead.
+func (*SPIFFEFederationBundleSourceHTTPSWeb) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *SPIFFEFederationBundleSourceHTTPSWeb) GetBundleEndpointUrl() string {
+ if x != nil {
+ return x.BundleEndpointUrl
+ }
+ return ""
+}
+
+// SPIFFEFederationBundleSource configures how the federation bundle is sourced.
+// Only one field can be set.
+type SPIFFEFederationBundleSource struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Static *SPIFFEFederationBundleSourceStatic `protobuf:"bytes,1,opt,name=static,proto3" json:"static,omitempty"`
+ HttpsWeb *SPIFFEFederationBundleSourceHTTPSWeb `protobuf:"bytes,2,opt,name=https_web,json=httpsWeb,proto3" json:"https_web,omitempty"`
+}
+
+func (x *SPIFFEFederationBundleSource) Reset() {
+ *x = SPIFFEFederationBundleSource{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SPIFFEFederationBundleSource) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SPIFFEFederationBundleSource) ProtoMessage() {}
+
+func (x *SPIFFEFederationBundleSource) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SPIFFEFederationBundleSource.ProtoReflect.Descriptor instead.
+func (*SPIFFEFederationBundleSource) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *SPIFFEFederationBundleSource) GetStatic() *SPIFFEFederationBundleSourceStatic {
+ if x != nil {
+ return x.Static
+ }
+ return nil
+}
+
+func (x *SPIFFEFederationBundleSource) GetHttpsWeb() *SPIFFEFederationBundleSourceHTTPSWeb {
+ if x != nil {
+ return x.HttpsWeb
+ }
+ return nil
+}
+
+// SPIFFEFederationSpec is the configuration of a trust domain federation.
+type SPIFFEFederationSpec struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The source of the federation bundle.
+ BundleSource *SPIFFEFederationBundleSource `protobuf:"bytes,1,opt,name=bundle_source,json=bundleSource,proto3" json:"bundle_source,omitempty"`
+}
+
+func (x *SPIFFEFederationSpec) Reset() {
+ *x = SPIFFEFederationSpec{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SPIFFEFederationSpec) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SPIFFEFederationSpec) ProtoMessage() {}
+
+func (x *SPIFFEFederationSpec) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SPIFFEFederationSpec.ProtoReflect.Descriptor instead.
+func (*SPIFFEFederationSpec) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *SPIFFEFederationSpec) GetBundleSource() *SPIFFEFederationBundleSource {
+ if x != nil {
+ return x.BundleSource
+ }
+ return nil
+}
+
+// FederationStatus is the status of a trust domain federation.
+type SPIFFEFederationStatus struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The most recently fetched bundle from the federated trust domain.
+ CurrentBundle string `protobuf:"bytes,1,opt,name=current_bundle,json=currentBundle,proto3" json:"current_bundle,omitempty"`
+ // The time that the most recently fetched bundle was obtained.
+ CurrentBundleSyncedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=current_bundle_synced_at,json=currentBundleSyncedAt,proto3" json:"current_bundle_synced_at,omitempty"`
+ // The duration that the current bundle suggests the next bundle should be
+ // refresh after.
+ CurrentBundleRefreshHint *durationpb.Duration `protobuf:"bytes,3,opt,name=current_bundle_refresh_hint,json=currentBundleRefreshHint,proto3" json:"current_bundle_refresh_hint,omitempty"`
+}
+
+func (x *SPIFFEFederationStatus) Reset() {
+ *x = SPIFFEFederationStatus{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SPIFFEFederationStatus) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SPIFFEFederationStatus) ProtoMessage() {}
+
+func (x *SPIFFEFederationStatus) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SPIFFEFederationStatus.ProtoReflect.Descriptor instead.
+func (*SPIFFEFederationStatus) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *SPIFFEFederationStatus) GetCurrentBundle() string {
+ if x != nil {
+ return x.CurrentBundle
+ }
+ return ""
+}
+
+func (x *SPIFFEFederationStatus) GetCurrentBundleSyncedAt() *timestamppb.Timestamp {
+ if x != nil {
+ return x.CurrentBundleSyncedAt
+ }
+ return nil
+}
+
+func (x *SPIFFEFederationStatus) GetCurrentBundleRefreshHint() *durationpb.Duration {
+ if x != nil {
+ return x.CurrentBundleRefreshHint
+ }
+ return nil
+}
+
+var File_teleport_machineid_v1_federation_proto protoreflect.FileDescriptor
+
+var file_teleport_machineid_v1_federation_proto_rawDesc = []byte{
+ 0x0a, 0x26, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f,
+ 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x1a,
+ 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
+ 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x1a, 0x21, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65,
+ 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x02, 0x0a, 0x10, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65,
+ 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x08,
+ 0x73, 0x75, 0x62, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
+ 0x73, 0x75, 0x62, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
+ 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x68,
+ 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
+ 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x04, 0x73,
+ 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x65, 0x6c, 0x65,
+ 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76,
+ 0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x45, 0x0a, 0x06,
+ 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74,
+ 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69,
+ 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x22, 0x3c, 0x0a, 0x22, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64,
+ 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x6f, 0x75,
+ 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x6e,
+ 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x6e, 0x64, 0x6c,
+ 0x65, 0x22, 0x56, 0x0a, 0x24, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x48, 0x54, 0x54, 0x50, 0x53, 0x57, 0x65, 0x62, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x75, 0x6e,
+ 0x64, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x45, 0x6e,
+ 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x22, 0xcb, 0x01, 0x0a, 0x1c, 0x53, 0x50,
+ 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75,
+ 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x73, 0x74,
+ 0x61, 0x74, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x74, 0x65, 0x6c,
+ 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e,
+ 0x76, 0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53,
+ 0x74, 0x61, 0x74, 0x69, 0x63, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x12, 0x58, 0x0a,
+ 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x5f, 0x77, 0x65, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x3b, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68,
+ 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46,
+ 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53,
+ 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x54, 0x54, 0x50, 0x53, 0x57, 0x65, 0x62, 0x52, 0x08, 0x68,
+ 0x74, 0x74, 0x70, 0x73, 0x57, 0x65, 0x62, 0x22, 0x70, 0x0a, 0x14, 0x53, 0x50, 0x49, 0x46, 0x46,
+ 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12,
+ 0x58, 0x0a, 0x0d, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53,
+ 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42,
+ 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x6e,
+ 0x64, 0x6c, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xee, 0x01, 0x0a, 0x16, 0x53, 0x50,
+ 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
+ 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f,
+ 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x53, 0x0a, 0x18, 0x63,
+ 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x79,
+ 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x15, 0x63, 0x75, 0x72, 0x72, 0x65,
+ 0x6e, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x41, 0x74,
+ 0x12, 0x58, 0x0a, 0x1b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x6e, 0x64,
+ 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x52, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52,
+ 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x48, 0x69, 0x6e, 0x74, 0x42, 0x56, 0x5a, 0x54, 0x67, 0x69,
+ 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f,
+ 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f,
+ 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
+ 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64,
+ 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_teleport_machineid_v1_federation_proto_rawDescOnce sync.Once
+ file_teleport_machineid_v1_federation_proto_rawDescData = file_teleport_machineid_v1_federation_proto_rawDesc
+)
+
+func file_teleport_machineid_v1_federation_proto_rawDescGZIP() []byte {
+ file_teleport_machineid_v1_federation_proto_rawDescOnce.Do(func() {
+ file_teleport_machineid_v1_federation_proto_rawDescData = protoimpl.X.CompressGZIP(file_teleport_machineid_v1_federation_proto_rawDescData)
+ })
+ return file_teleport_machineid_v1_federation_proto_rawDescData
+}
+
+var file_teleport_machineid_v1_federation_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
+var file_teleport_machineid_v1_federation_proto_goTypes = []any{
+ (*SPIFFEFederation)(nil), // 0: teleport.machineid.v1.SPIFFEFederation
+ (*SPIFFEFederationBundleSourceStatic)(nil), // 1: teleport.machineid.v1.SPIFFEFederationBundleSourceStatic
+ (*SPIFFEFederationBundleSourceHTTPSWeb)(nil), // 2: teleport.machineid.v1.SPIFFEFederationBundleSourceHTTPSWeb
+ (*SPIFFEFederationBundleSource)(nil), // 3: teleport.machineid.v1.SPIFFEFederationBundleSource
+ (*SPIFFEFederationSpec)(nil), // 4: teleport.machineid.v1.SPIFFEFederationSpec
+ (*SPIFFEFederationStatus)(nil), // 5: teleport.machineid.v1.SPIFFEFederationStatus
+ (*v1.Metadata)(nil), // 6: teleport.header.v1.Metadata
+ (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp
+ (*durationpb.Duration)(nil), // 8: google.protobuf.Duration
+}
+var file_teleport_machineid_v1_federation_proto_depIdxs = []int32{
+ 6, // 0: teleport.machineid.v1.SPIFFEFederation.metadata:type_name -> teleport.header.v1.Metadata
+ 4, // 1: teleport.machineid.v1.SPIFFEFederation.spec:type_name -> teleport.machineid.v1.SPIFFEFederationSpec
+ 5, // 2: teleport.machineid.v1.SPIFFEFederation.status:type_name -> teleport.machineid.v1.SPIFFEFederationStatus
+ 1, // 3: teleport.machineid.v1.SPIFFEFederationBundleSource.static:type_name -> teleport.machineid.v1.SPIFFEFederationBundleSourceStatic
+ 2, // 4: teleport.machineid.v1.SPIFFEFederationBundleSource.https_web:type_name -> teleport.machineid.v1.SPIFFEFederationBundleSourceHTTPSWeb
+ 3, // 5: teleport.machineid.v1.SPIFFEFederationSpec.bundle_source:type_name -> teleport.machineid.v1.SPIFFEFederationBundleSource
+ 7, // 6: teleport.machineid.v1.SPIFFEFederationStatus.current_bundle_synced_at:type_name -> google.protobuf.Timestamp
+ 8, // 7: teleport.machineid.v1.SPIFFEFederationStatus.current_bundle_refresh_hint:type_name -> google.protobuf.Duration
+ 8, // [8:8] is the sub-list for method output_type
+ 8, // [8:8] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
+}
+
+func init() { file_teleport_machineid_v1_federation_proto_init() }
+func file_teleport_machineid_v1_federation_proto_init() {
+ if File_teleport_machineid_v1_federation_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_teleport_machineid_v1_federation_proto_msgTypes[0].Exporter = func(v any, i int) any {
+ switch v := v.(*SPIFFEFederation); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_proto_msgTypes[1].Exporter = func(v any, i int) any {
+ switch v := v.(*SPIFFEFederationBundleSourceStatic); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_proto_msgTypes[2].Exporter = func(v any, i int) any {
+ switch v := v.(*SPIFFEFederationBundleSourceHTTPSWeb); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_proto_msgTypes[3].Exporter = func(v any, i int) any {
+ switch v := v.(*SPIFFEFederationBundleSource); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_proto_msgTypes[4].Exporter = func(v any, i int) any {
+ switch v := v.(*SPIFFEFederationSpec); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_proto_msgTypes[5].Exporter = func(v any, i int) any {
+ switch v := v.(*SPIFFEFederationStatus); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_teleport_machineid_v1_federation_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 6,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_teleport_machineid_v1_federation_proto_goTypes,
+ DependencyIndexes: file_teleport_machineid_v1_federation_proto_depIdxs,
+ MessageInfos: file_teleport_machineid_v1_federation_proto_msgTypes,
+ }.Build()
+ File_teleport_machineid_v1_federation_proto = out.File
+ file_teleport_machineid_v1_federation_proto_rawDesc = nil
+ file_teleport_machineid_v1_federation_proto_goTypes = nil
+ file_teleport_machineid_v1_federation_proto_depIdxs = nil
+}
diff --git a/api/gen/proto/go/teleport/machineid/v1/federation_service.pb.go b/api/gen/proto/go/teleport/machineid/v1/federation_service.pb.go
new file mode 100644
index 0000000000000..84df89d5208c8
--- /dev/null
+++ b/api/gen/proto/go/teleport/machineid/v1/federation_service.pb.go
@@ -0,0 +1,510 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.34.2
+// protoc (unknown)
+// source: teleport/machineid/v1/federation_service.proto
+
+package machineidv1
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// GetSPIFFEFederationRequest
+type GetSPIFFEFederationRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *GetSPIFFEFederationRequest) Reset() {
+ *x = GetSPIFFEFederationRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetSPIFFEFederationRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetSPIFFEFederationRequest) ProtoMessage() {}
+
+func (x *GetSPIFFEFederationRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetSPIFFEFederationRequest.ProtoReflect.Descriptor instead.
+func (*GetSPIFFEFederationRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_service_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *GetSPIFFEFederationRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// Request for ListSPIFFEFederations.
+//
+// Follows the pagination semantics of
+// https://cloud.google.com/apis/design/standard_methods#list
+type ListSPIFFEFederationsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The maximum number of items to return.
+ // The server may impose a different page size at its discretion.
+ PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
+ // The page_token value returned from a previous ListBotInstances request, if
+ // any.
+ PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
+}
+
+func (x *ListSPIFFEFederationsRequest) Reset() {
+ *x = ListSPIFFEFederationsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListSPIFFEFederationsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListSPIFFEFederationsRequest) ProtoMessage() {}
+
+func (x *ListSPIFFEFederationsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListSPIFFEFederationsRequest.ProtoReflect.Descriptor instead.
+func (*ListSPIFFEFederationsRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_service_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListSPIFFEFederationsRequest) GetPageSize() int32 {
+ if x != nil {
+ return x.PageSize
+ }
+ return 0
+}
+
+func (x *ListSPIFFEFederationsRequest) GetPageToken() string {
+ if x != nil {
+ return x.PageToken
+ }
+ return ""
+}
+
+// ListSPIFFEFederationsResponse
+type ListSPIFFEFederationsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SpiffeFederations []*SPIFFEFederation `protobuf:"bytes,1,rep,name=spiffe_federations,json=spiffeFederations,proto3" json:"spiffe_federations,omitempty"`
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results exist.
+ NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
+}
+
+func (x *ListSPIFFEFederationsResponse) Reset() {
+ *x = ListSPIFFEFederationsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListSPIFFEFederationsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListSPIFFEFederationsResponse) ProtoMessage() {}
+
+func (x *ListSPIFFEFederationsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListSPIFFEFederationsResponse.ProtoReflect.Descriptor instead.
+func (*ListSPIFFEFederationsResponse) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_service_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ListSPIFFEFederationsResponse) GetSpiffeFederations() []*SPIFFEFederation {
+ if x != nil {
+ return x.SpiffeFederations
+ }
+ return nil
+}
+
+func (x *ListSPIFFEFederationsResponse) GetNextPageToken() string {
+ if x != nil {
+ return x.NextPageToken
+ }
+ return ""
+}
+
+// DeleteSPIFFEFederationRequest
+type DeleteSPIFFEFederationRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+}
+
+func (x *DeleteSPIFFEFederationRequest) Reset() {
+ *x = DeleteSPIFFEFederationRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeleteSPIFFEFederationRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeleteSPIFFEFederationRequest) ProtoMessage() {}
+
+func (x *DeleteSPIFFEFederationRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeleteSPIFFEFederationRequest.ProtoReflect.Descriptor instead.
+func (*DeleteSPIFFEFederationRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_service_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *DeleteSPIFFEFederationRequest) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+
+// CreateSPIFFEFederationRequest
+type CreateSPIFFEFederationRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SpiffeFederation *SPIFFEFederation `protobuf:"bytes,1,opt,name=spiffe_federation,json=spiffeFederation,proto3" json:"spiffe_federation,omitempty"`
+}
+
+func (x *CreateSPIFFEFederationRequest) Reset() {
+ *x = CreateSPIFFEFederationRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CreateSPIFFEFederationRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CreateSPIFFEFederationRequest) ProtoMessage() {}
+
+func (x *CreateSPIFFEFederationRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_teleport_machineid_v1_federation_service_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CreateSPIFFEFederationRequest.ProtoReflect.Descriptor instead.
+func (*CreateSPIFFEFederationRequest) Descriptor() ([]byte, []int) {
+ return file_teleport_machineid_v1_federation_service_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *CreateSPIFFEFederationRequest) GetSpiffeFederation() *SPIFFEFederation {
+ if x != nil {
+ return x.SpiffeFederation
+ }
+ return nil
+}
+
+var File_teleport_machineid_v1_federation_service_proto protoreflect.FileDescriptor
+
+var file_teleport_machineid_v1_federation_service_proto_rawDesc = []byte{
+ 0x0a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x12, 0x15, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69,
+ 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d,
+ 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x64, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, 0x1a,
+ 0x47, 0x65, 0x74, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5a,
+ 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b,
+ 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70,
+ 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9f, 0x01, 0x0a, 0x1d, 0x4c,
+ 0x69, 0x73, 0x74, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x12,
+ 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31,
+ 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x11, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67,
+ 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e,
+ 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x33, 0x0a, 0x1d,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x22, 0x75, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x50, 0x49, 0x46, 0x46,
+ 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x54, 0x0a, 0x11, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x5f, 0x66, 0x65, 0x64,
+ 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e,
+ 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65,
+ 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x73, 0x70, 0x69, 0x66, 0x66, 0x65, 0x46, 0x65,
+ 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xf2, 0x03, 0x0a, 0x17, 0x53, 0x50, 0x49,
+ 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72,
+ 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x50, 0x49, 0x46, 0x46,
+ 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x74, 0x65,
+ 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64,
+ 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64,
+ 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
+ 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
+ 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64,
+ 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x82, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74,
+ 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63,
+ 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x50,
+ 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x16,
+ 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72,
+ 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x44,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x50, 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x12, 0x77, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x50,
+ 0x49, 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34,
+ 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
+ 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x50, 0x49,
+ 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e,
+ 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x50, 0x49,
+ 0x46, 0x46, 0x45, 0x46, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x56, 0x5a,
+ 0x54, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76,
+ 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f,
+ 0x72, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2f, 0x67, 0x6f, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x6d, 0x61, 0x63,
+ 0x68, 0x69, 0x6e, 0x65, 0x69, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e,
+ 0x65, 0x69, 0x64, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_teleport_machineid_v1_federation_service_proto_rawDescOnce sync.Once
+ file_teleport_machineid_v1_federation_service_proto_rawDescData = file_teleport_machineid_v1_federation_service_proto_rawDesc
+)
+
+func file_teleport_machineid_v1_federation_service_proto_rawDescGZIP() []byte {
+ file_teleport_machineid_v1_federation_service_proto_rawDescOnce.Do(func() {
+ file_teleport_machineid_v1_federation_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_teleport_machineid_v1_federation_service_proto_rawDescData)
+ })
+ return file_teleport_machineid_v1_federation_service_proto_rawDescData
+}
+
+var file_teleport_machineid_v1_federation_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
+var file_teleport_machineid_v1_federation_service_proto_goTypes = []any{
+ (*GetSPIFFEFederationRequest)(nil), // 0: teleport.machineid.v1.GetSPIFFEFederationRequest
+ (*ListSPIFFEFederationsRequest)(nil), // 1: teleport.machineid.v1.ListSPIFFEFederationsRequest
+ (*ListSPIFFEFederationsResponse)(nil), // 2: teleport.machineid.v1.ListSPIFFEFederationsResponse
+ (*DeleteSPIFFEFederationRequest)(nil), // 3: teleport.machineid.v1.DeleteSPIFFEFederationRequest
+ (*CreateSPIFFEFederationRequest)(nil), // 4: teleport.machineid.v1.CreateSPIFFEFederationRequest
+ (*SPIFFEFederation)(nil), // 5: teleport.machineid.v1.SPIFFEFederation
+ (*emptypb.Empty)(nil), // 6: google.protobuf.Empty
+}
+var file_teleport_machineid_v1_federation_service_proto_depIdxs = []int32{
+ 5, // 0: teleport.machineid.v1.ListSPIFFEFederationsResponse.spiffe_federations:type_name -> teleport.machineid.v1.SPIFFEFederation
+ 5, // 1: teleport.machineid.v1.CreateSPIFFEFederationRequest.spiffe_federation:type_name -> teleport.machineid.v1.SPIFFEFederation
+ 0, // 2: teleport.machineid.v1.SPIFFEFederationService.GetSPIFFEFederation:input_type -> teleport.machineid.v1.GetSPIFFEFederationRequest
+ 1, // 3: teleport.machineid.v1.SPIFFEFederationService.ListSPIFFEFederations:input_type -> teleport.machineid.v1.ListSPIFFEFederationsRequest
+ 3, // 4: teleport.machineid.v1.SPIFFEFederationService.DeleteSPIFFEFederation:input_type -> teleport.machineid.v1.DeleteSPIFFEFederationRequest
+ 4, // 5: teleport.machineid.v1.SPIFFEFederationService.CreateSPIFFEFederation:input_type -> teleport.machineid.v1.CreateSPIFFEFederationRequest
+ 5, // 6: teleport.machineid.v1.SPIFFEFederationService.GetSPIFFEFederation:output_type -> teleport.machineid.v1.SPIFFEFederation
+ 2, // 7: teleport.machineid.v1.SPIFFEFederationService.ListSPIFFEFederations:output_type -> teleport.machineid.v1.ListSPIFFEFederationsResponse
+ 6, // 8: teleport.machineid.v1.SPIFFEFederationService.DeleteSPIFFEFederation:output_type -> google.protobuf.Empty
+ 5, // 9: teleport.machineid.v1.SPIFFEFederationService.CreateSPIFFEFederation:output_type -> teleport.machineid.v1.SPIFFEFederation
+ 6, // [6:10] is the sub-list for method output_type
+ 2, // [2:6] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
+}
+
+func init() { file_teleport_machineid_v1_federation_service_proto_init() }
+func file_teleport_machineid_v1_federation_service_proto_init() {
+ if File_teleport_machineid_v1_federation_service_proto != nil {
+ return
+ }
+ file_teleport_machineid_v1_federation_proto_init()
+ if !protoimpl.UnsafeEnabled {
+ file_teleport_machineid_v1_federation_service_proto_msgTypes[0].Exporter = func(v any, i int) any {
+ switch v := v.(*GetSPIFFEFederationRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_service_proto_msgTypes[1].Exporter = func(v any, i int) any {
+ switch v := v.(*ListSPIFFEFederationsRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_service_proto_msgTypes[2].Exporter = func(v any, i int) any {
+ switch v := v.(*ListSPIFFEFederationsResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_service_proto_msgTypes[3].Exporter = func(v any, i int) any {
+ switch v := v.(*DeleteSPIFFEFederationRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_teleport_machineid_v1_federation_service_proto_msgTypes[4].Exporter = func(v any, i int) any {
+ switch v := v.(*CreateSPIFFEFederationRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_teleport_machineid_v1_federation_service_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 5,
+ NumExtensions: 0,
+ NumServices: 1,
+ },
+ GoTypes: file_teleport_machineid_v1_federation_service_proto_goTypes,
+ DependencyIndexes: file_teleport_machineid_v1_federation_service_proto_depIdxs,
+ MessageInfos: file_teleport_machineid_v1_federation_service_proto_msgTypes,
+ }.Build()
+ File_teleport_machineid_v1_federation_service_proto = out.File
+ file_teleport_machineid_v1_federation_service_proto_rawDesc = nil
+ file_teleport_machineid_v1_federation_service_proto_goTypes = nil
+ file_teleport_machineid_v1_federation_service_proto_depIdxs = nil
+}
diff --git a/api/gen/proto/go/teleport/machineid/v1/federation_service_grpc.pb.go b/api/gen/proto/go/teleport/machineid/v1/federation_service_grpc.pb.go
new file mode 100644
index 0000000000000..6c8e886d4034b
--- /dev/null
+++ b/api/gen/proto/go/teleport/machineid/v1/federation_service_grpc.pb.go
@@ -0,0 +1,263 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
+// versions:
+// - protoc-gen-go-grpc v1.5.0
+// - protoc (unknown)
+// source: teleport/machineid/v1/federation_service.proto
+
+package machineidv1
+
+import (
+ context "context"
+ grpc "google.golang.org/grpc"
+ codes "google.golang.org/grpc/codes"
+ status "google.golang.org/grpc/status"
+ emptypb "google.golang.org/protobuf/types/known/emptypb"
+)
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+// Requires gRPC-Go v1.64.0 or later.
+const _ = grpc.SupportPackageIsVersion9
+
+const (
+ SPIFFEFederationService_GetSPIFFEFederation_FullMethodName = "/teleport.machineid.v1.SPIFFEFederationService/GetSPIFFEFederation"
+ SPIFFEFederationService_ListSPIFFEFederations_FullMethodName = "/teleport.machineid.v1.SPIFFEFederationService/ListSPIFFEFederations"
+ SPIFFEFederationService_DeleteSPIFFEFederation_FullMethodName = "/teleport.machineid.v1.SPIFFEFederationService/DeleteSPIFFEFederation"
+ SPIFFEFederationService_CreateSPIFFEFederation_FullMethodName = "/teleport.machineid.v1.SPIFFEFederationService/CreateSPIFFEFederation"
+)
+
+// SPIFFEFederationServiceClient is the client API for SPIFFEFederationService service.
+//
+// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
+//
+// SPIFFEFederation
+type SPIFFEFederationServiceClient interface {
+ // GetSPIFFEFederation
+ GetSPIFFEFederation(ctx context.Context, in *GetSPIFFEFederationRequest, opts ...grpc.CallOption) (*SPIFFEFederation, error)
+ // ListSPIFFEFederations
+ ListSPIFFEFederations(ctx context.Context, in *ListSPIFFEFederationsRequest, opts ...grpc.CallOption) (*ListSPIFFEFederationsResponse, error)
+ // DeleteSPIFFEFederation
+ DeleteSPIFFEFederation(ctx context.Context, in *DeleteSPIFFEFederationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
+ // CreateSPIFFEFederation
+ CreateSPIFFEFederation(ctx context.Context, in *CreateSPIFFEFederationRequest, opts ...grpc.CallOption) (*SPIFFEFederation, error)
+}
+
+type sPIFFEFederationServiceClient struct {
+ cc grpc.ClientConnInterface
+}
+
+func NewSPIFFEFederationServiceClient(cc grpc.ClientConnInterface) SPIFFEFederationServiceClient {
+ return &sPIFFEFederationServiceClient{cc}
+}
+
+func (c *sPIFFEFederationServiceClient) GetSPIFFEFederation(ctx context.Context, in *GetSPIFFEFederationRequest, opts ...grpc.CallOption) (*SPIFFEFederation, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(SPIFFEFederation)
+ err := c.cc.Invoke(ctx, SPIFFEFederationService_GetSPIFFEFederation_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sPIFFEFederationServiceClient) ListSPIFFEFederations(ctx context.Context, in *ListSPIFFEFederationsRequest, opts ...grpc.CallOption) (*ListSPIFFEFederationsResponse, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(ListSPIFFEFederationsResponse)
+ err := c.cc.Invoke(ctx, SPIFFEFederationService_ListSPIFFEFederations_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sPIFFEFederationServiceClient) DeleteSPIFFEFederation(ctx context.Context, in *DeleteSPIFFEFederationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(emptypb.Empty)
+ err := c.cc.Invoke(ctx, SPIFFEFederationService_DeleteSPIFFEFederation_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *sPIFFEFederationServiceClient) CreateSPIFFEFederation(ctx context.Context, in *CreateSPIFFEFederationRequest, opts ...grpc.CallOption) (*SPIFFEFederation, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(SPIFFEFederation)
+ err := c.cc.Invoke(ctx, SPIFFEFederationService_CreateSPIFFEFederation_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// SPIFFEFederationServiceServer is the server API for SPIFFEFederationService service.
+// All implementations must embed UnimplementedSPIFFEFederationServiceServer
+// for forward compatibility.
+//
+// SPIFFEFederation
+type SPIFFEFederationServiceServer interface {
+ // GetSPIFFEFederation
+ GetSPIFFEFederation(context.Context, *GetSPIFFEFederationRequest) (*SPIFFEFederation, error)
+ // ListSPIFFEFederations
+ ListSPIFFEFederations(context.Context, *ListSPIFFEFederationsRequest) (*ListSPIFFEFederationsResponse, error)
+ // DeleteSPIFFEFederation
+ DeleteSPIFFEFederation(context.Context, *DeleteSPIFFEFederationRequest) (*emptypb.Empty, error)
+ // CreateSPIFFEFederation
+ CreateSPIFFEFederation(context.Context, *CreateSPIFFEFederationRequest) (*SPIFFEFederation, error)
+ mustEmbedUnimplementedSPIFFEFederationServiceServer()
+}
+
+// UnimplementedSPIFFEFederationServiceServer must be embedded to have
+// forward compatible implementations.
+//
+// NOTE: this should be embedded by value instead of pointer to avoid a nil
+// pointer dereference when methods are called.
+type UnimplementedSPIFFEFederationServiceServer struct{}
+
+func (UnimplementedSPIFFEFederationServiceServer) GetSPIFFEFederation(context.Context, *GetSPIFFEFederationRequest) (*SPIFFEFederation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetSPIFFEFederation not implemented")
+}
+func (UnimplementedSPIFFEFederationServiceServer) ListSPIFFEFederations(context.Context, *ListSPIFFEFederationsRequest) (*ListSPIFFEFederationsResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method ListSPIFFEFederations not implemented")
+}
+func (UnimplementedSPIFFEFederationServiceServer) DeleteSPIFFEFederation(context.Context, *DeleteSPIFFEFederationRequest) (*emptypb.Empty, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method DeleteSPIFFEFederation not implemented")
+}
+func (UnimplementedSPIFFEFederationServiceServer) CreateSPIFFEFederation(context.Context, *CreateSPIFFEFederationRequest) (*SPIFFEFederation, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method CreateSPIFFEFederation not implemented")
+}
+func (UnimplementedSPIFFEFederationServiceServer) mustEmbedUnimplementedSPIFFEFederationServiceServer() {
+}
+func (UnimplementedSPIFFEFederationServiceServer) testEmbeddedByValue() {}
+
+// UnsafeSPIFFEFederationServiceServer may be embedded to opt out of forward compatibility for this service.
+// Use of this interface is not recommended, as added methods to SPIFFEFederationServiceServer will
+// result in compilation errors.
+type UnsafeSPIFFEFederationServiceServer interface {
+ mustEmbedUnimplementedSPIFFEFederationServiceServer()
+}
+
+func RegisterSPIFFEFederationServiceServer(s grpc.ServiceRegistrar, srv SPIFFEFederationServiceServer) {
+ // If the following call pancis, it indicates UnimplementedSPIFFEFederationServiceServer was
+ // embedded by pointer and is nil. This will cause panics if an
+ // unimplemented method is ever invoked, so we test this at initialization
+ // time to prevent it from happening at runtime later due to I/O.
+ if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
+ t.testEmbeddedByValue()
+ }
+ s.RegisterService(&SPIFFEFederationService_ServiceDesc, srv)
+}
+
+func _SPIFFEFederationService_GetSPIFFEFederation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetSPIFFEFederationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SPIFFEFederationServiceServer).GetSPIFFEFederation(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: SPIFFEFederationService_GetSPIFFEFederation_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SPIFFEFederationServiceServer).GetSPIFFEFederation(ctx, req.(*GetSPIFFEFederationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _SPIFFEFederationService_ListSPIFFEFederations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(ListSPIFFEFederationsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SPIFFEFederationServiceServer).ListSPIFFEFederations(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: SPIFFEFederationService_ListSPIFFEFederations_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SPIFFEFederationServiceServer).ListSPIFFEFederations(ctx, req.(*ListSPIFFEFederationsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _SPIFFEFederationService_DeleteSPIFFEFederation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(DeleteSPIFFEFederationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SPIFFEFederationServiceServer).DeleteSPIFFEFederation(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: SPIFFEFederationService_DeleteSPIFFEFederation_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SPIFFEFederationServiceServer).DeleteSPIFFEFederation(ctx, req.(*DeleteSPIFFEFederationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _SPIFFEFederationService_CreateSPIFFEFederation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CreateSPIFFEFederationRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(SPIFFEFederationServiceServer).CreateSPIFFEFederation(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: SPIFFEFederationService_CreateSPIFFEFederation_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(SPIFFEFederationServiceServer).CreateSPIFFEFederation(ctx, req.(*CreateSPIFFEFederationRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+// SPIFFEFederationService_ServiceDesc is the grpc.ServiceDesc for SPIFFEFederationService service.
+// It's only intended for direct use with grpc.RegisterService,
+// and not to be introspected or modified (even as a copy)
+var SPIFFEFederationService_ServiceDesc = grpc.ServiceDesc{
+ ServiceName: "teleport.machineid.v1.SPIFFEFederationService",
+ HandlerType: (*SPIFFEFederationServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "GetSPIFFEFederation",
+ Handler: _SPIFFEFederationService_GetSPIFFEFederation_Handler,
+ },
+ {
+ MethodName: "ListSPIFFEFederations",
+ Handler: _SPIFFEFederationService_ListSPIFFEFederations_Handler,
+ },
+ {
+ MethodName: "DeleteSPIFFEFederation",
+ Handler: _SPIFFEFederationService_DeleteSPIFFEFederation_Handler,
+ },
+ {
+ MethodName: "CreateSPIFFEFederation",
+ Handler: _SPIFFEFederationService_CreateSPIFFEFederation_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "teleport/machineid/v1/federation_service.proto",
+}
diff --git a/api/proto/teleport/legacy/types/events/events.proto b/api/proto/teleport/legacy/types/events/events.proto
index c4a4bb1c6ad15..fa4f1221220fd 100644
--- a/api/proto/teleport/legacy/types/events/events.proto
+++ b/api/proto/teleport/legacy/types/events/events.proto
@@ -4454,6 +4454,8 @@ message OneOf {
events.IntegrationCreate IntegrationCreate = 165;
events.IntegrationUpdate IntegrationUpdate = 166;
events.IntegrationDelete IntegrationDelete = 167;
+ events.SPIFFEFederationCreate SPIFFEFederationCreate = 168;
+ events.SPIFFEFederationDelete SPIFFEFederationDelete = 169;
}
}
@@ -6664,3 +6666,65 @@ message AccessGraphSettingsUpdate {
(gogoproto.jsontag) = ""
];
}
+
+// SPIFFEFederationCreate is emitted when a SPIFFE federation is created.
+message SPIFFEFederationCreate {
+ // Metadata is a common event metadata
+ Metadata Metadata = 1 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata Resource = 2 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+
+ // User is a common user event metadata
+ UserMetadata User = 3 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+
+ // ConnectionMetadata holds information about the connection
+ ConnectionMetadata Connection = 4 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+}
+
+// SPIFFEFederationDelete is emitted when a SPIFFE federation is deleted.
+message SPIFFEFederationDelete {
+ // Metadata is a common event metadata
+ Metadata Metadata = 1 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata Resource = 2 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+
+ // User is a common user event metadata
+ UserMetadata User = 3 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+
+ // ConnectionMetadata holds information about the connection
+ ConnectionMetadata Connection = 4 [
+ (gogoproto.nullable) = false,
+ (gogoproto.embed) = true,
+ (gogoproto.jsontag) = ""
+ ];
+}
diff --git a/api/proto/teleport/machineid/v1/federation.proto b/api/proto/teleport/machineid/v1/federation.proto
new file mode 100644
index 0000000000000..343b8e0f8efa6
--- /dev/null
+++ b/api/proto/teleport/machineid/v1/federation.proto
@@ -0,0 +1,67 @@
+syntax = "proto3";
+package teleport.machineid.v1;
+
+import "google/protobuf/duration.proto";
+import "google/protobuf/timestamp.proto";
+import "teleport/header/v1/metadata.proto";
+
+option go_package = "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1;machineidv1";
+
+// SPIFFEFederation is a resource that represents the configuration of a trust
+// domain federation.
+message SPIFFEFederation {
+ // The kind of resource represented.
+ string kind = 1;
+ // Differentiates variations of the same kind. All resources should
+ // contain one, even if it is never populated.
+ string sub_kind = 2;
+ // The version of the resource being represented.
+ string version = 3;
+ // Common metadata that all resources share.
+ // Importantly, the name MUST match the name of the trust domain you federate
+ // with.
+ teleport.header.v1.Metadata metadata = 4;
+ // The configured properties of the trust domain federation
+ SPIFFEFederationSpec spec = 5;
+ // Fields that are set by the server as results of operations. These should
+ // not be modified by users.
+ SPIFFEFederationStatus status = 6;
+}
+
+// SPIFFEFederationBundleSourceStatic is a static bundle source. It should be an
+// option of last resort, as it requires manual updates.
+message SPIFFEFederationBundleSourceStatic {
+ // The SPIFFE JWKS bundle.
+ string bundle = 1;
+}
+
+// SPIFFEFederationBundleSourceHTTPSWeb is a bundle source that fetches the bundle
+// from a HTTPS endpoint that is protected by a Web PKI certificate.
+message SPIFFEFederationBundleSourceHTTPSWeb {
+ // The URL of the SPIFFE Bundle Endpoint.
+ string bundle_endpoint_url = 1;
+}
+
+// SPIFFEFederationBundleSource configures how the federation bundle is sourced.
+// Only one field can be set.
+message SPIFFEFederationBundleSource {
+ SPIFFEFederationBundleSourceStatic static = 1;
+ SPIFFEFederationBundleSourceHTTPSWeb https_web = 2;
+}
+
+// SPIFFEFederationSpec is the configuration of a trust domain federation.
+message SPIFFEFederationSpec {
+ // The source of the federation bundle.
+ SPIFFEFederationBundleSource bundle_source = 1;
+}
+
+// FederationStatus is the status of a trust domain federation.
+message SPIFFEFederationStatus {
+ // The most recently fetched bundle from the federated trust domain.
+ string current_bundle = 1;
+ // The time that the most recently fetched bundle was obtained.
+ google.protobuf.Timestamp current_bundle_synced_at = 2;
+ // The duration that the current bundle suggests the next bundle should be
+ // refresh after.
+ google.protobuf.Duration current_bundle_refresh_hint = 3;
+}
diff --git a/api/proto/teleport/machineid/v1/federation_service.proto b/api/proto/teleport/machineid/v1/federation_service.proto
new file mode 100644
index 0000000000000..1526f6ae402be
--- /dev/null
+++ b/api/proto/teleport/machineid/v1/federation_service.proto
@@ -0,0 +1,70 @@
+// Copyright 2024 Gravitational, Inc
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package teleport.machineid.v1;
+
+import "google/protobuf/empty.proto";
+import "teleport/machineid/v1/federation.proto";
+
+option go_package = "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1;machineidv1";
+
+// GetSPIFFEFederationRequest
+message GetSPIFFEFederationRequest {
+ string name = 1;
+}
+
+// Request for ListSPIFFEFederations.
+//
+// Follows the pagination semantics of
+// https://cloud.google.com/apis/design/standard_methods#list
+message ListSPIFFEFederationsRequest {
+ // The maximum number of items to return.
+ // The server may impose a different page size at its discretion.
+ int32 page_size = 1;
+ // The page_token value returned from a previous ListBotInstances request, if
+ // any.
+ string page_token = 2;
+}
+
+// ListSPIFFEFederationsResponse
+message ListSPIFFEFederationsResponse {
+ repeated SPIFFEFederation spiffe_federations = 1;
+ // Token to retrieve the next page of results, or empty if there are no
+ // more results exist.
+ string next_page_token = 2;
+}
+
+// DeleteSPIFFEFederationRequest
+message DeleteSPIFFEFederationRequest {
+ string name = 1;
+}
+
+// CreateSPIFFEFederationRequest
+message CreateSPIFFEFederationRequest {
+ SPIFFEFederation spiffe_federation = 1;
+}
+
+// SPIFFEFederation
+service SPIFFEFederationService {
+ // GetSPIFFEFederation
+ rpc GetSPIFFEFederation(GetSPIFFEFederationRequest) returns (SPIFFEFederation);
+ // ListSPIFFEFederations
+ rpc ListSPIFFEFederations(ListSPIFFEFederationsRequest) returns (ListSPIFFEFederationsResponse);
+ // DeleteSPIFFEFederation
+ rpc DeleteSPIFFEFederation(DeleteSPIFFEFederationRequest) returns (google.protobuf.Empty);
+ // CreateSPIFFEFederation
+ rpc CreateSPIFFEFederation(CreateSPIFFEFederationRequest) returns (SPIFFEFederation);
+}
diff --git a/api/types/constants.go b/api/types/constants.go
index f598dcf32e760..8eb83f9b748e0 100644
--- a/api/types/constants.go
+++ b/api/types/constants.go
@@ -67,6 +67,8 @@ const (
KindBot = "bot"
// KindBotInstance is an instance of a Machine ID bot
KindBotInstance = "bot_instance"
+ // KindSPIFFEFederation is a SPIFFE federation resource
+ KindSPIFFEFederation = "spiffe_federation"
// KindHostCert is a host certificate
KindHostCert = "host_cert"
diff --git a/api/types/events/events.pb.go b/api/types/events/events.pb.go
index dc74c9474cc7a..9fdd549ad7b36 100644
--- a/api/types/events/events.pb.go
+++ b/api/types/events/events.pb.go
@@ -7513,6 +7513,8 @@ type OneOf struct {
// *OneOf_IntegrationCreate
// *OneOf_IntegrationUpdate
// *OneOf_IntegrationDelete
+ // *OneOf_SPIFFEFederationCreate
+ // *OneOf_SPIFFEFederationDelete
Event isOneOf_Event `protobuf_oneof:"Event"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
@@ -8056,6 +8058,12 @@ type OneOf_IntegrationUpdate struct {
type OneOf_IntegrationDelete struct {
IntegrationDelete *IntegrationDelete `protobuf:"bytes,167,opt,name=IntegrationDelete,proto3,oneof" json:"IntegrationDelete,omitempty"`
}
+type OneOf_SPIFFEFederationCreate struct {
+ SPIFFEFederationCreate *SPIFFEFederationCreate `protobuf:"bytes,168,opt,name=SPIFFEFederationCreate,proto3,oneof" json:"SPIFFEFederationCreate,omitempty"`
+}
+type OneOf_SPIFFEFederationDelete struct {
+ SPIFFEFederationDelete *SPIFFEFederationDelete `protobuf:"bytes,169,opt,name=SPIFFEFederationDelete,proto3,oneof" json:"SPIFFEFederationDelete,omitempty"`
+}
func (*OneOf_UserLogin) isOneOf_Event() {}
func (*OneOf_UserCreate) isOneOf_Event() {}
@@ -8223,6 +8231,8 @@ func (*OneOf_AccessGraphSettingsUpdate) isOneOf_Event() {}
func (*OneOf_IntegrationCreate) isOneOf_Event() {}
func (*OneOf_IntegrationUpdate) isOneOf_Event() {}
func (*OneOf_IntegrationDelete) isOneOf_Event() {}
+func (*OneOf_SPIFFEFederationCreate) isOneOf_Event() {}
+func (*OneOf_SPIFFEFederationDelete) isOneOf_Event() {}
func (m *OneOf) GetEvent() isOneOf_Event {
if m != nil {
@@ -9393,6 +9403,20 @@ func (m *OneOf) GetIntegrationDelete() *IntegrationDelete {
return nil
}
+func (m *OneOf) GetSPIFFEFederationCreate() *SPIFFEFederationCreate {
+ if x, ok := m.GetEvent().(*OneOf_SPIFFEFederationCreate); ok {
+ return x.SPIFFEFederationCreate
+ }
+ return nil
+}
+
+func (m *OneOf) GetSPIFFEFederationDelete() *SPIFFEFederationDelete {
+ if x, ok := m.GetEvent().(*OneOf_SPIFFEFederationDelete); ok {
+ return x.SPIFFEFederationDelete
+ }
+ return nil
+}
+
// XXX_OneofWrappers is for the internal use of the proto package.
func (*OneOf) XXX_OneofWrappers() []interface{} {
return []interface{}{
@@ -9562,6 +9586,8 @@ func (*OneOf) XXX_OneofWrappers() []interface{} {
(*OneOf_IntegrationCreate)(nil),
(*OneOf_IntegrationUpdate)(nil),
(*OneOf_IntegrationDelete)(nil),
+ (*OneOf_SPIFFEFederationCreate)(nil),
+ (*OneOf_SPIFFEFederationDelete)(nil),
}
}
@@ -13386,6 +13412,102 @@ func (m *AccessGraphSettingsUpdate) XXX_DiscardUnknown() {
var xxx_messageInfo_AccessGraphSettingsUpdate proto.InternalMessageInfo
+// SPIFFEFederationCreate is emitted when a SPIFFE federation is created.
+type SPIFFEFederationCreate struct {
+ // Metadata is a common event metadata
+ Metadata `protobuf:"bytes,1,opt,name=Metadata,proto3,embedded=Metadata" json:""`
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata `protobuf:"bytes,2,opt,name=Resource,proto3,embedded=Resource" json:""`
+ // 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:""`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SPIFFEFederationCreate) Reset() { *m = SPIFFEFederationCreate{} }
+func (m *SPIFFEFederationCreate) String() string { return proto.CompactTextString(m) }
+func (*SPIFFEFederationCreate) ProtoMessage() {}
+func (*SPIFFEFederationCreate) Descriptor() ([]byte, []int) {
+ return fileDescriptor_007ba1c3d6266d56, []int{209}
+}
+func (m *SPIFFEFederationCreate) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *SPIFFEFederationCreate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_SPIFFEFederationCreate.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *SPIFFEFederationCreate) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SPIFFEFederationCreate.Merge(m, src)
+}
+func (m *SPIFFEFederationCreate) XXX_Size() int {
+ return m.Size()
+}
+func (m *SPIFFEFederationCreate) XXX_DiscardUnknown() {
+ xxx_messageInfo_SPIFFEFederationCreate.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SPIFFEFederationCreate proto.InternalMessageInfo
+
+// SPIFFEFederationDelete is emitted when a SPIFFE federation is deleted.
+type SPIFFEFederationDelete struct {
+ // Metadata is a common event metadata
+ Metadata `protobuf:"bytes,1,opt,name=Metadata,proto3,embedded=Metadata" json:""`
+ // ResourceMetadata is a common resource event metadata
+ ResourceMetadata `protobuf:"bytes,2,opt,name=Resource,proto3,embedded=Resource" json:""`
+ // 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:""`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *SPIFFEFederationDelete) Reset() { *m = SPIFFEFederationDelete{} }
+func (m *SPIFFEFederationDelete) String() string { return proto.CompactTextString(m) }
+func (*SPIFFEFederationDelete) ProtoMessage() {}
+func (*SPIFFEFederationDelete) Descriptor() ([]byte, []int) {
+ return fileDescriptor_007ba1c3d6266d56, []int{210}
+}
+func (m *SPIFFEFederationDelete) XXX_Unmarshal(b []byte) error {
+ return m.Unmarshal(b)
+}
+func (m *SPIFFEFederationDelete) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ if deterministic {
+ return xxx_messageInfo_SPIFFEFederationDelete.Marshal(b, m, deterministic)
+ } else {
+ b = b[:cap(b)]
+ n, err := m.MarshalToSizedBuffer(b)
+ if err != nil {
+ return nil, err
+ }
+ return b[:n], nil
+ }
+}
+func (m *SPIFFEFederationDelete) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_SPIFFEFederationDelete.Merge(m, src)
+}
+func (m *SPIFFEFederationDelete) XXX_Size() int {
+ return m.Size()
+}
+func (m *SPIFFEFederationDelete) XXX_DiscardUnknown() {
+ xxx_messageInfo_SPIFFEFederationDelete.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SPIFFEFederationDelete proto.InternalMessageInfo
+
func init() {
proto.RegisterEnum("events.UserKind", UserKind_name, UserKind_value)
proto.RegisterEnum("events.EventAction", EventAction_name, EventAction_value)
@@ -13619,6 +13741,8 @@ func init() {
proto.RegisterType((*AccessPathChanged)(nil), "events.AccessPathChanged")
proto.RegisterType((*SpannerRPC)(nil), "events.SpannerRPC")
proto.RegisterType((*AccessGraphSettingsUpdate)(nil), "events.AccessGraphSettingsUpdate")
+ proto.RegisterType((*SPIFFEFederationCreate)(nil), "events.SPIFFEFederationCreate")
+ proto.RegisterType((*SPIFFEFederationDelete)(nil), "events.SPIFFEFederationDelete")
}
func init() {
@@ -13626,987 +13750,990 @@ func init() {
}
var fileDescriptor_007ba1c3d6266d56 = []byte{
- // 15665 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x5b, 0x74, 0x24, 0xc7,
- 0x75, 0x20, 0x88, 0x7a, 0xa0, 0x00, 0x5c, 0x3c, 0x1a, 0x88, 0x7e, 0x25, 0x9b, 0xdd, 0x5d, 0x64,
- 0x52, 0x6c, 0x75, 0x53, 0x64, 0xb7, 0xd8, 0x6c, 0x92, 0xe2, 0x4b, 0x64, 0x01, 0x05, 0x34, 0x8a,
- 0x8d, 0x17, 0xb3, 0xd0, 0xdd, 0xa2, 0x5e, 0xe5, 0x44, 0x65, 0x00, 0x48, 0xa2, 0x2a, 0xb3, 0x94,
- 0x99, 0xd5, 0x68, 0x70, 0x5f, 0x96, 0xd7, 0x0f, 0xc9, 0x2b, 0xc9, 0x5a, 0x79, 0x6d, 0xd9, 0x6b,
- 0xef, 0x5a, 0x7e, 0xed, 0x7a, 0x7d, 0xbc, 0xf6, 0x7a, 0xd7, 0xc7, 0xb6, 0xec, 0xd5, 0x59, 0x7b,
- 0xb5, 0x0f, 0x7a, 0x75, 0xbc, 0xc7, 0xf6, 0xee, 0xf8, 0xf8, 0xcc, 0x78, 0x20, 0x8f, 0x66, 0x3c,
- 0x1f, 0x38, 0x33, 0xe7, 0x78, 0x66, 0x74, 0xc6, 0x1a, 0x8f, 0x67, 0xce, 0x9c, 0xb8, 0x11, 0x99,
- 0x19, 0xf9, 0xa8, 0xc2, 0x93, 0x06, 0xa1, 0xc6, 0x4f, 0x37, 0xea, 0xde, 0x1b, 0x37, 0x22, 0x6f,
- 0xdc, 0x88, 0xb8, 0x11, 0x71, 0xe3, 0x5e, 0xb8, 0xe2, 0xd1, 0x06, 0x6d, 0xd9, 0x8e, 0x77, 0xad,
- 0x41, 0x57, 0xf4, 0xfa, 0xc6, 0x35, 0x6f, 0xa3, 0x45, 0xdd, 0x6b, 0xf4, 0x1e, 0xb5, 0x3c, 0xff,
- 0xbf, 0xab, 0x2d, 0xc7, 0xf6, 0x6c, 0x52, 0xe0, 0xbf, 0xce, 0x9d, 0x5a, 0xb1, 0x57, 0x6c, 0x04,
- 0x5d, 0x63, 0x7f, 0x71, 0xec, 0xb9, 0xf3, 0x2b, 0xb6, 0xbd, 0xd2, 0xa0, 0xd7, 0xf0, 0xd7, 0x52,
- 0x7b, 0xf9, 0x9a, 0xeb, 0x39, 0xed, 0xba, 0x27, 0xb0, 0xc5, 0x38, 0xd6, 0x33, 0x9b, 0xd4, 0xf5,
- 0xf4, 0x66, 0x4b, 0x10, 0x5c, 0x8c, 0x13, 0xac, 0x3b, 0x7a, 0xab, 0x45, 0x1d, 0x51, 0xf9, 0xb9,
- 0x47, 0xd3, 0xdb, 0x89, 0xff, 0x0a, 0x92, 0xa7, 0xd2, 0x49, 0x7c, 0x46, 0x31, 0x8e, 0xea, 0x97,
- 0xb2, 0xd0, 0x3f, 0x4b, 0x3d, 0xdd, 0xd0, 0x3d, 0x9d, 0x9c, 0x87, 0xde, 0x8a, 0x65, 0xd0, 0xfb,
- 0x4a, 0xe6, 0x91, 0xcc, 0xe5, 0xdc, 0x78, 0x61, 0x6b, 0xb3, 0x98, 0xa5, 0xa6, 0xc6, 0x81, 0xe4,
- 0x02, 0xe4, 0x17, 0x37, 0x5a, 0x54, 0xc9, 0x3e, 0x92, 0xb9, 0x3c, 0x30, 0x3e, 0xb0, 0xb5, 0x59,
- 0xec, 0x45, 0x59, 0x68, 0x08, 0x26, 0x8f, 0x42, 0xb6, 0x52, 0x56, 0x72, 0x88, 0x1c, 0xdb, 0xda,
- 0x2c, 0x0e, 0xb7, 0x4d, 0xe3, 0x49, 0xbb, 0x69, 0x7a, 0xb4, 0xd9, 0xf2, 0x36, 0xb4, 0x6c, 0xa5,
- 0x4c, 0x2e, 0x41, 0x7e, 0xc2, 0x36, 0xa8, 0x92, 0x47, 0x22, 0xb2, 0xb5, 0x59, 0x1c, 0xa9, 0xdb,
- 0x06, 0x95, 0xa8, 0x10, 0x4f, 0x5e, 0x83, 0xfc, 0xa2, 0xd9, 0xa4, 0x4a, 0xef, 0x23, 0x99, 0xcb,
- 0x83, 0xd7, 0xcf, 0x5d, 0xe5, 0x52, 0xb9, 0xea, 0x4b, 0xe5, 0xea, 0xa2, 0x2f, 0xb6, 0xf1, 0xd1,
- 0x77, 0x36, 0x8b, 0x3d, 0x5b, 0x9b, 0xc5, 0x3c, 0x93, 0xe4, 0x17, 0xbf, 0x59, 0xcc, 0x68, 0x58,
- 0x92, 0xbc, 0x0c, 0x83, 0x13, 0x8d, 0xb6, 0xeb, 0x51, 0x67, 0x4e, 0x6f, 0x52, 0xa5, 0x80, 0x15,
- 0x9e, 0xdb, 0xda, 0x2c, 0x9e, 0xa9, 0x73, 0x70, 0xcd, 0xd2, 0x9b, 0x72, 0xc5, 0x32, 0xb9, 0xfa,
- 0xdb, 0x19, 0x38, 0x51, 0xa5, 0xae, 0x6b, 0xda, 0x56, 0x20, 0x9b, 0xc7, 0x61, 0x40, 0x80, 0x2a,
- 0x65, 0x94, 0xcf, 0xc0, 0x78, 0xdf, 0xd6, 0x66, 0x31, 0xe7, 0x9a, 0x86, 0x16, 0x62, 0xc8, 0x07,
- 0xa1, 0xef, 0xae, 0xe9, 0xad, 0xce, 0x4e, 0x95, 0x84, 0x9c, 0xce, 0x6c, 0x6d, 0x16, 0xc9, 0xba,
- 0xe9, 0xad, 0xd6, 0x9a, 0xcb, 0xba, 0x54, 0xa1, 0x4f, 0x46, 0x66, 0x60, 0x74, 0xc1, 0x31, 0xef,
- 0xe9, 0x1e, 0xbd, 0x45, 0x37, 0x16, 0xec, 0x86, 0x59, 0xdf, 0x10, 0x52, 0x7c, 0x64, 0x6b, 0xb3,
- 0x78, 0xbe, 0xc5, 0x71, 0xb5, 0x35, 0xba, 0x51, 0x6b, 0x21, 0x56, 0x62, 0x92, 0x28, 0xa9, 0xfe,
- 0x4e, 0x01, 0x86, 0x6e, 0xbb, 0xd4, 0x09, 0xda, 0x7d, 0x09, 0xf2, 0xec, 0xb7, 0x68, 0x32, 0xca,
- 0xbc, 0xed, 0x52, 0x47, 0x96, 0x39, 0xc3, 0x93, 0x2b, 0xd0, 0x3b, 0x63, 0xaf, 0x98, 0x96, 0x68,
- 0xf6, 0xc9, 0xad, 0xcd, 0xe2, 0x89, 0x06, 0x03, 0x48, 0x94, 0x9c, 0x82, 0x7c, 0x18, 0x86, 0x2a,
- 0x4d, 0xa6, 0x43, 0xb6, 0xa5, 0x7b, 0xb6, 0x23, 0x5a, 0x8b, 0xd2, 0x35, 0x25, 0xb8, 0x54, 0x30,
- 0x42, 0x4f, 0x5e, 0x04, 0x28, 0xdd, 0xad, 0x6a, 0x76, 0x83, 0x96, 0xb4, 0x39, 0xa1, 0x0c, 0x58,
- 0x5a, 0x5f, 0x77, 0x6b, 0x8e, 0xdd, 0xa0, 0x35, 0xdd, 0x91, 0xab, 0x95, 0xa8, 0xc9, 0x24, 0x8c,
- 0x94, 0xea, 0x75, 0xea, 0xba, 0x1a, 0xfd, 0x54, 0x9b, 0xba, 0x9e, 0xab, 0xf4, 0x3e, 0x92, 0xbb,
- 0x3c, 0x30, 0x7e, 0x61, 0x6b, 0xb3, 0xf8, 0x90, 0x8e, 0x98, 0x9a, 0x23, 0x50, 0x12, 0x8b, 0x58,
- 0x21, 0x32, 0x0e, 0xc3, 0xa5, 0xb7, 0xdb, 0x0e, 0xad, 0x18, 0xd4, 0xf2, 0x4c, 0x6f, 0x43, 0x68,
- 0xc8, 0xf9, 0xad, 0xcd, 0xa2, 0xa2, 0x33, 0x44, 0xcd, 0x14, 0x18, 0x89, 0x49, 0xb4, 0x08, 0x99,
- 0x87, 0xb1, 0x9b, 0x13, 0x0b, 0x55, 0xea, 0xdc, 0x33, 0xeb, 0xb4, 0x54, 0xaf, 0xdb, 0x6d, 0xcb,
- 0x53, 0xfa, 0x90, 0xcf, 0xa3, 0x5b, 0x9b, 0xc5, 0x0b, 0x2b, 0xf5, 0x56, 0xcd, 0xe5, 0xd8, 0x9a,
- 0xce, 0xd1, 0x12, 0xb3, 0x64, 0x59, 0xf2, 0x51, 0x18, 0x5e, 0x74, 0x98, 0x16, 0x1a, 0x65, 0xca,
- 0xe0, 0x4a, 0x3f, 0xea, 0xff, 0x99, 0xab, 0x62, 0x02, 0xe2, 0x50, 0xbf, 0x67, 0x79, 0x63, 0x3d,
- 0x5e, 0xa0, 0x66, 0x20, 0x4e, 0x6e, 0x6c, 0x84, 0x15, 0xa1, 0xa0, 0xb0, 0x8f, 0x37, 0x1d, 0x6a,
- 0x24, 0xb4, 0x6d, 0x00, 0xdb, 0x7c, 0x65, 0x6b, 0xb3, 0xf8, 0xb8, 0x23, 0x68, 0x6a, 0x5d, 0xd5,
- 0xae, 0x23, 0x2b, 0x32, 0x09, 0xfd, 0x4c, 0x9b, 0x6e, 0x99, 0x96, 0xa1, 0xc0, 0x23, 0x99, 0xcb,
- 0x23, 0xd7, 0x47, 0xfd, 0xd6, 0xfb, 0xf0, 0xf1, 0xb3, 0x5b, 0x9b, 0xc5, 0x93, 0x4c, 0x07, 0x6b,
- 0x6b, 0xa6, 0x25, 0x4f, 0x11, 0x41, 0x51, 0x36, 0x8a, 0xc6, 0x6d, 0x0f, 0x87, 0xee, 0x60, 0x38,
- 0x8a, 0x96, 0x6c, 0x2f, 0x3e, 0x6c, 0x7d, 0x32, 0x32, 0x01, 0xc3, 0xe3, 0xb6, 0x57, 0xb1, 0x5c,
- 0x4f, 0xb7, 0xea, 0xb4, 0x52, 0x56, 0x86, 0xb0, 0x1c, 0xaa, 0x05, 0x2b, 0x67, 0x0a, 0x4c, 0x2d,
- 0x32, 0x29, 0x45, 0xcb, 0xa8, 0x7f, 0x9d, 0x87, 0x11, 0xd6, 0x27, 0xd2, 0xf0, 0x29, 0xb1, 0x99,
- 0x80, 0x41, 0x58, 0x2d, 0x6e, 0x4b, 0xaf, 0x53, 0x31, 0x92, 0xf0, 0x2b, 0x2c, 0x1f, 0x28, 0xf1,
- 0x8c, 0xd3, 0x93, 0x2b, 0xd0, 0xcf, 0x41, 0x95, 0xb2, 0x18, 0x5c, 0xc3, 0x5b, 0x9b, 0xc5, 0x01,
- 0x17, 0x61, 0x35, 0xd3, 0xd0, 0x02, 0x34, 0xd3, 0x6e, 0xfe, 0xf7, 0xb4, 0xed, 0x7a, 0x8c, 0xb9,
- 0x18, 0x5b, 0xf8, 0x19, 0xa2, 0xc0, 0xaa, 0x40, 0xc9, 0xda, 0x1d, 0x2d, 0x44, 0x5e, 0x00, 0xe0,
- 0x90, 0x92, 0x61, 0x38, 0x62, 0x80, 0x3d, 0xb4, 0xb5, 0x59, 0x3c, 0x2d, 0x58, 0xe8, 0x86, 0x21,
- 0x8f, 0x4e, 0x89, 0x98, 0x34, 0x61, 0x88, 0xff, 0x9a, 0xd1, 0x97, 0x68, 0x83, 0x8f, 0xae, 0xc1,
- 0xeb, 0x97, 0xfd, 0x4e, 0x8c, 0x4a, 0xe7, 0xaa, 0x4c, 0x3a, 0x69, 0x79, 0xce, 0xc6, 0x78, 0x51,
- 0x4c, 0xc8, 0x67, 0x45, 0x55, 0x0d, 0xc4, 0xc9, 0x53, 0x81, 0x5c, 0x86, 0xcd, 0xd3, 0x53, 0xb6,
- 0xb3, 0xae, 0x3b, 0x06, 0x35, 0xc6, 0x37, 0xe4, 0x79, 0x7a, 0xd9, 0x07, 0xd7, 0x96, 0x64, 0xd5,
- 0x93, 0xc9, 0x59, 0xa7, 0x73, 0x6e, 0xd5, 0xf6, 0x12, 0xaa, 0x5c, 0x5f, 0x42, 0x5a, 0x6e, 0x7b,
- 0x29, 0xae, 0x66, 0xd1, 0x32, 0x6c, 0x2a, 0xe0, 0x80, 0x3b, 0xd4, 0x61, 0x93, 0x38, 0x8e, 0x3a,
- 0x31, 0x15, 0x08, 0x26, 0xf7, 0x38, 0x26, 0xc9, 0x43, 0x14, 0x39, 0xf7, 0x2a, 0x8c, 0x25, 0x44,
- 0x41, 0x46, 0x21, 0xb7, 0x46, 0x37, 0xb8, 0xba, 0x68, 0xec, 0x4f, 0x72, 0x0a, 0x7a, 0xef, 0xe9,
- 0x8d, 0xb6, 0x58, 0x42, 0x35, 0xfe, 0xe3, 0xc5, 0xec, 0x87, 0x32, 0x6c, 0xc5, 0x21, 0x13, 0xb6,
- 0x65, 0xd1, 0xba, 0x27, 0x2f, 0x3a, 0xcf, 0xc1, 0xc0, 0x8c, 0x5d, 0xd7, 0x1b, 0xd8, 0x8f, 0x5c,
- 0xef, 0x94, 0xad, 0xcd, 0xe2, 0x29, 0xd6, 0x81, 0x57, 0x1b, 0x0c, 0x23, 0xb5, 0x29, 0x24, 0x65,
- 0x0a, 0xa0, 0xd1, 0xa6, 0xed, 0x51, 0x2c, 0x98, 0x0d, 0x15, 0x00, 0x0b, 0x3a, 0x88, 0x92, 0x15,
- 0x20, 0x24, 0x26, 0xd7, 0xa0, 0x7f, 0x81, 0xad, 0xb3, 0x75, 0xbb, 0x21, 0x94, 0x0f, 0x97, 0x02,
- 0x5c, 0x7b, 0xe5, 0xb1, 0xea, 0x13, 0xa9, 0xd3, 0x30, 0x32, 0xd1, 0x30, 0xa9, 0xe5, 0xc9, 0xad,
- 0x66, 0x23, 0xb9, 0xb4, 0x42, 0x2d, 0x4f, 0x6e, 0x35, 0x8e, 0x79, 0x9d, 0x41, 0xe5, 0x56, 0x07,
- 0xa4, 0xea, 0xff, 0x9b, 0x83, 0x87, 0x6e, 0xb5, 0x97, 0xa8, 0x63, 0x51, 0x8f, 0xba, 0x62, 0x41,
- 0x0e, 0xb8, 0xce, 0xc1, 0x58, 0x02, 0x29, 0xb8, 0xe3, 0x42, 0xb9, 0x16, 0x20, 0x6b, 0x62, 0x8d,
- 0x97, 0x67, 0xdb, 0x44, 0x51, 0x32, 0x0d, 0x27, 0x42, 0x20, 0x6b, 0x84, 0xab, 0x64, 0x71, 0x29,
- 0xb9, 0xb8, 0xb5, 0x59, 0x3c, 0x27, 0x71, 0x63, 0xcd, 0x96, 0x35, 0x38, 0x5e, 0x8c, 0xdc, 0x82,
- 0xd1, 0x10, 0x74, 0xd3, 0xb1, 0xdb, 0x2d, 0x57, 0xc9, 0x21, 0xab, 0xe2, 0xd6, 0x66, 0xf1, 0x61,
- 0x89, 0xd5, 0x0a, 0x22, 0xe5, 0x05, 0x3c, 0x5e, 0x90, 0x7c, 0x7f, 0x46, 0xe6, 0x26, 0x46, 0x61,
- 0x1e, 0x47, 0xe1, 0xf3, 0xfe, 0x28, 0xec, 0x28, 0xa4, 0xab, 0xf1, 0x92, 0x62, 0x50, 0xc6, 0x9a,
- 0x91, 0x18, 0x94, 0x89, 0x1a, 0xcf, 0x4d, 0xc0, 0xe9, 0x54, 0x5e, 0xbb, 0xd2, 0xea, 0xbf, 0xcc,
- 0xc9, 0x5c, 0x16, 0x6c, 0x23, 0xe8, 0xcc, 0x79, 0xb9, 0x33, 0x17, 0x6c, 0x03, 0xa7, 0xfa, 0x4c,
- 0xb8, 0x76, 0x4a, 0x8d, 0x6d, 0xd9, 0x46, 0x7c, 0xd6, 0x4f, 0x96, 0x25, 0x9f, 0x84, 0x33, 0x09,
- 0x20, 0x9f, 0xae, 0xb9, 0xf6, 0x5f, 0xda, 0xda, 0x2c, 0xaa, 0x29, 0x5c, 0xe3, 0xb3, 0x77, 0x07,
- 0x2e, 0x44, 0x87, 0xb3, 0x92, 0xd4, 0x6d, 0xcb, 0xd3, 0x4d, 0x4b, 0x18, 0x97, 0x7c, 0x94, 0xbc,
- 0x7f, 0x6b, 0xb3, 0xf8, 0x98, 0xac, 0x83, 0x3e, 0x4d, 0xbc, 0xf1, 0x9d, 0xf8, 0x10, 0x03, 0x94,
- 0x14, 0x54, 0xa5, 0xa9, 0xaf, 0xf8, 0x16, 0xf3, 0xe5, 0xad, 0xcd, 0xe2, 0xfb, 0x52, 0xeb, 0x30,
- 0x19, 0x95, 0xbc, 0x42, 0x77, 0xe2, 0x44, 0x34, 0x20, 0x21, 0x6e, 0xce, 0x36, 0x28, 0x7e, 0x43,
- 0x2f, 0xf2, 0x57, 0xb7, 0x36, 0x8b, 0x17, 0x25, 0xfe, 0x96, 0x6d, 0xd0, 0x78, 0xf3, 0x53, 0x4a,
- 0xab, 0xbf, 0x9d, 0x83, 0x8b, 0xd5, 0xd2, 0xec, 0x4c, 0xc5, 0xf0, 0x4d, 0x9a, 0x05, 0xc7, 0xbe,
- 0x67, 0x1a, 0xd2, 0xe8, 0x5d, 0x82, 0xb3, 0x31, 0xd4, 0x24, 0x5a, 0x51, 0x81, 0x31, 0x8d, 0xdf,
- 0xe6, 0x9b, 0x4b, 0x2d, 0x41, 0x53, 0xe3, 0xa6, 0x56, 0x74, 0xd1, 0xee, 0xc4, 0x88, 0xf5, 0x51,
- 0x0c, 0x55, 0x5d, 0xb5, 0x1d, 0xaf, 0xde, 0xf6, 0x84, 0x12, 0x60, 0x1f, 0x25, 0xea, 0x70, 0x05,
- 0x51, 0x97, 0x2a, 0x7c, 0x3e, 0xe4, 0xb3, 0x19, 0x18, 0x2d, 0x79, 0x9e, 0x63, 0x2e, 0xb5, 0x3d,
- 0x3a, 0xab, 0xb7, 0x5a, 0xa6, 0xb5, 0x82, 0x63, 0x7d, 0xf0, 0xfa, 0xcb, 0xc1, 0x1a, 0xd9, 0x55,
- 0x12, 0x57, 0xe3, 0xc5, 0xa5, 0x21, 0xaa, 0xfb, 0xa8, 0x5a, 0x93, 0xe3, 0xe4, 0x21, 0x1a, 0x2f,
- 0xc7, 0x86, 0x68, 0x2a, 0xaf, 0x5d, 0x0d, 0xd1, 0x2f, 0xe5, 0xe0, 0xfc, 0xfc, 0x9a, 0xa7, 0x6b,
- 0xd4, 0xb5, 0xdb, 0x4e, 0x9d, 0xba, 0xb7, 0x5b, 0x86, 0xee, 0xd1, 0x70, 0xa4, 0x16, 0xa1, 0xb7,
- 0x64, 0x18, 0xd4, 0x40, 0x76, 0xbd, 0x7c, 0xdb, 0xa7, 0x33, 0x80, 0xc6, 0xe1, 0xe4, 0x71, 0xe8,
- 0x13, 0x65, 0x90, 0x7b, 0xef, 0xf8, 0xe0, 0xd6, 0x66, 0xb1, 0xaf, 0xcd, 0x41, 0x9a, 0x8f, 0x63,
- 0x64, 0x65, 0xda, 0xa0, 0x8c, 0x2c, 0x17, 0x92, 0x19, 0x1c, 0xa4, 0xf9, 0x38, 0xf2, 0x06, 0x8c,
- 0x20, 0xdb, 0xa0, 0x3d, 0x62, 0xee, 0x3b, 0xe5, 0x4b, 0x57, 0x6e, 0x2c, 0x5f, 0x9a, 0xb0, 0x35,
- 0x35, 0xc7, 0x2f, 0xa0, 0xc5, 0x18, 0x90, 0xbb, 0x30, 0x2a, 0x1a, 0x11, 0x32, 0xed, 0xed, 0xc2,
- 0xf4, 0xf4, 0xd6, 0x66, 0x71, 0x4c, 0xb4, 0x5f, 0x62, 0x9b, 0x60, 0xc2, 0x18, 0x8b, 0x66, 0x87,
- 0x8c, 0x0b, 0xdb, 0x31, 0x16, 0x5f, 0x2c, 0x33, 0x8e, 0x33, 0x51, 0xdf, 0x84, 0x21, 0xb9, 0x20,
- 0x39, 0x83, 0x5b, 0x6b, 0x3e, 0x4e, 0x70, 0x53, 0x6e, 0x1a, 0xb8, 0x9f, 0x7e, 0x1a, 0x06, 0xcb,
- 0xd4, 0xad, 0x3b, 0x66, 0x8b, 0x59, 0x0d, 0x42, 0xc9, 0x4f, 0x6c, 0x6d, 0x16, 0x07, 0x8d, 0x10,
- 0xac, 0xc9, 0x34, 0xea, 0xbf, 0xce, 0xc0, 0x19, 0xc6, 0xbb, 0xe4, 0xba, 0xe6, 0x8a, 0xd5, 0x94,
- 0x97, 0xed, 0x27, 0xa1, 0x50, 0xc5, 0xfa, 0x44, 0x4d, 0xa7, 0xb6, 0x36, 0x8b, 0xa3, 0xbc, 0x05,
- 0x92, 0x1e, 0x0a, 0x9a, 0x60, 0x5f, 0x99, 0xdd, 0x66, 0x5f, 0xc9, 0x4c, 0x5a, 0x4f, 0x77, 0x3c,
- 0xd3, 0x5a, 0xa9, 0x7a, 0xba, 0xd7, 0x76, 0x23, 0x26, 0xad, 0xc0, 0xd4, 0x5c, 0x44, 0x45, 0x4c,
- 0xda, 0x48, 0x21, 0xf2, 0x2a, 0x0c, 0x4d, 0x5a, 0x46, 0xc8, 0x84, 0x4f, 0x88, 0x0f, 0x33, 0x4b,
- 0x93, 0x22, 0x3c, 0xc9, 0x22, 0x52, 0x40, 0xfd, 0x1f, 0x33, 0xa0, 0xf0, 0x4d, 0xe0, 0x8c, 0xe9,
- 0x7a, 0xb3, 0xb4, 0xb9, 0x24, 0xcd, 0x4e, 0x53, 0xfe, 0xae, 0x92, 0xe1, 0xa4, 0xb5, 0x08, 0x4d,
- 0x01, 0xb1, 0xab, 0x6c, 0x98, 0x6e, 0x62, 0xfb, 0x11, 0x2b, 0x45, 0x2a, 0xd0, 0xc7, 0x39, 0x73,
- 0x5b, 0x62, 0xf0, 0xba, 0xe2, 0x2b, 0x42, 0xbc, 0x6a, 0xae, 0x0c, 0x4d, 0x4e, 0x2c, 0x6f, 0x68,
- 0x44, 0x79, 0xf5, 0x7f, 0xca, 0xc2, 0x68, 0xbc, 0x10, 0xb9, 0x0b, 0xfd, 0xaf, 0xdb, 0xa6, 0x45,
- 0x8d, 0x79, 0x0b, 0x5b, 0xd8, 0xfd, 0x70, 0xc4, 0xb7, 0xc5, 0x4f, 0xbe, 0x85, 0x65, 0x6a, 0xb2,
- 0x05, 0x8b, 0x67, 0x25, 0x01, 0x33, 0xf2, 0x51, 0x18, 0x60, 0x36, 0xe0, 0x3d, 0xe4, 0x9c, 0xdd,
- 0x96, 0xf3, 0x23, 0x82, 0xf3, 0x29, 0x87, 0x17, 0x4a, 0xb2, 0x0e, 0xd9, 0x31, 0xbd, 0xd2, 0xa8,
- 0xee, 0xda, 0x96, 0xe8, 0x79, 0xd4, 0x2b, 0x07, 0x21, 0xb2, 0x5e, 0x71, 0x1a, 0x66, 0xba, 0xf2,
- 0x8f, 0xc5, 0x6e, 0x90, 0xf6, 0x2e, 0x5c, 0x56, 0xf1, 0x1e, 0x90, 0x88, 0xd5, 0x1f, 0xcc, 0xc2,
- 0x53, 0xa1, 0xc8, 0x34, 0x7a, 0xcf, 0xa4, 0xeb, 0x42, 0x9c, 0xab, 0x66, 0x4b, 0xec, 0x59, 0x99,
- 0xca, 0xbb, 0x13, 0xab, 0xba, 0xb5, 0x42, 0x0d, 0x72, 0x05, 0x7a, 0x35, 0xbb, 0x41, 0x5d, 0x25,
- 0x83, 0xe6, 0x1a, 0x4e, 0x27, 0x0e, 0x03, 0xc8, 0x87, 0x1e, 0x48, 0x41, 0x6c, 0x28, 0x2c, 0x3a,
- 0xba, 0xe9, 0xf9, 0x3d, 0x5b, 0x4a, 0xf6, 0xec, 0x0e, 0x6a, 0xbc, 0xca, 0x79, 0xf0, 0x39, 0x1f,
- 0x05, 0xe1, 0x21, 0x40, 0x16, 0x04, 0x27, 0x39, 0xf7, 0x02, 0x0c, 0x4a, 0xc4, 0xbb, 0x9a, 0xd4,
- 0xbf, 0x9a, 0x97, 0x75, 0xdd, 0x6f, 0x96, 0xd0, 0xf5, 0x6b, 0x4c, 0x47, 0x5d, 0x97, 0x59, 0x15,
- 0x5c, 0xc9, 0x85, 0x26, 0x22, 0x28, 0xaa, 0x89, 0x08, 0x22, 0xcf, 0x40, 0x3f, 0x67, 0x11, 0xec,
- 0x5f, 0x71, 0xef, 0xeb, 0x20, 0x2c, 0xba, 0x34, 0x07, 0x84, 0xe4, 0x97, 0x33, 0x70, 0xa1, 0xab,
- 0x24, 0x50, 0x19, 0x06, 0xaf, 0x3f, 0xbb, 0x27, 0x31, 0x8e, 0x3f, 0xb5, 0xb5, 0x59, 0xbc, 0xd2,
- 0x0c, 0x48, 0x6a, 0x8e, 0x44, 0x53, 0xab, 0x73, 0x22, 0xa9, 0x5d, 0xdd, 0x9b, 0xc2, 0x8c, 0x47,
- 0x5e, 0xe9, 0x14, 0x1e, 0x1d, 0x59, 0xf5, 0x0d, 0xbf, 0x91, 0xf9, 0xd0, 0x78, 0x14, 0xdf, 0xbb,
- 0xec, 0x93, 0xa4, 0x54, 0xd3, 0x81, 0x0b, 0xa9, 0xc3, 0x59, 0x8e, 0x29, 0xeb, 0x1b, 0xf3, 0xcb,
- 0xb3, 0xb6, 0xe5, 0xad, 0xfa, 0x15, 0xf4, 0xca, 0x67, 0x2f, 0x58, 0x81, 0xa1, 0x6f, 0xd4, 0xec,
- 0xe5, 0x5a, 0x93, 0x51, 0xa5, 0xd4, 0xd1, 0x89, 0x13, 0x9b, 0x68, 0xc5, 0x98, 0xf3, 0xa7, 0xa0,
- 0x42, 0x78, 0x32, 0xe6, 0x8f, 0xd3, 0xe4, 0x84, 0x13, 0x2b, 0xa4, 0x56, 0x60, 0x68, 0xc6, 0xae,
- 0xaf, 0x05, 0xea, 0xf2, 0x02, 0x14, 0x16, 0x75, 0x67, 0x85, 0x7a, 0x28, 0x8b, 0xc1, 0xeb, 0x63,
- 0x57, 0xf9, 0x69, 0x33, 0x23, 0xe2, 0x88, 0xf1, 0x11, 0x31, 0x1b, 0x14, 0x3c, 0xfc, 0xad, 0x89,
- 0x02, 0xea, 0x37, 0x7b, 0x61, 0x48, 0x9c, 0x8c, 0xe2, 0x6c, 0x4e, 0x5e, 0x0c, 0xcf, 0x9a, 0xc5,
- 0xf4, 0x15, 0x9c, 0x0e, 0x05, 0xa7, 0x5a, 0x43, 0x8c, 0xd9, 0x1f, 0x6d, 0x16, 0x33, 0x5b, 0x9b,
- 0xc5, 0x1e, 0xad, 0x5f, 0xda, 0x54, 0x86, 0xeb, 0x8d, 0xb4, 0xc0, 0xca, 0x67, 0x9d, 0xb1, 0xb2,
- 0x7c, 0xfd, 0x79, 0x15, 0xfa, 0x44, 0x1b, 0x84, 0xc6, 0x9d, 0x0d, 0xcf, 0x32, 0x22, 0x27, 0xbc,
- 0xb1, 0xd2, 0x7e, 0x29, 0xf2, 0x32, 0x14, 0xf8, 0xde, 0x5e, 0x08, 0xe0, 0x4c, 0xfa, 0x59, 0x48,
- 0xac, 0xb8, 0x28, 0x43, 0xa6, 0x01, 0xc2, 0x7d, 0x7d, 0x70, 0xa0, 0x2d, 0x38, 0x24, 0x77, 0xfc,
- 0x31, 0x2e, 0x52, 0x59, 0xf2, 0x1c, 0x0c, 0x2d, 0x52, 0xa7, 0x69, 0x5a, 0x7a, 0xa3, 0x6a, 0xbe,
- 0xed, 0x9f, 0x69, 0xe3, 0xc2, 0xeb, 0x9a, 0x6f, 0xcb, 0x23, 0x37, 0x42, 0x47, 0x3e, 0x91, 0xb6,
- 0x6f, 0xee, 0xc3, 0x86, 0x3c, 0xba, 0xed, 0x86, 0x32, 0xd6, 0x9e, 0x94, 0x6d, 0xf4, 0x1b, 0x30,
- 0x1c, 0xd9, 0x32, 0x89, 0x43, 0xcb, 0x0b, 0x49, 0xd6, 0xd2, 0xfe, 0x2f, 0xc6, 0x36, 0xca, 0x81,
- 0x69, 0x72, 0xc5, 0x32, 0x3d, 0x53, 0x6f, 0x4c, 0xd8, 0xcd, 0xa6, 0x6e, 0x19, 0xca, 0x40, 0xa8,
- 0xc9, 0x26, 0xc7, 0xd4, 0xea, 0x1c, 0x25, 0x6b, 0x72, 0xb4, 0x10, 0xdb, 0x96, 0x8b, 0x3e, 0xd4,
- 0x68, 0xdd, 0x76, 0x98, 0x2d, 0x80, 0x67, 0x92, 0x62, 0x5b, 0xee, 0x72, 0x5c, 0xcd, 0xf1, 0x91,
- 0xb2, 0xb1, 0x1d, 0x2f, 0xf8, 0x7a, 0xbe, 0x7f, 0x70, 0x74, 0x28, 0x7e, 0x8c, 0xac, 0xfe, 0x0f,
- 0x39, 0x18, 0x14, 0xa4, 0x6c, 0x29, 0x3d, 0x56, 0xf0, 0xfd, 0x28, 0x78, 0xaa, 0xa2, 0x16, 0x0e,
- 0x4a, 0x51, 0xd5, 0xcf, 0x65, 0x83, 0xd9, 0x68, 0xc1, 0x31, 0xad, 0xfd, 0xcd, 0x46, 0x97, 0x00,
- 0x26, 0x56, 0xdb, 0xd6, 0x1a, 0xbf, 0x2e, 0xcb, 0x86, 0xd7, 0x65, 0x75, 0x53, 0x93, 0x30, 0xe4,
- 0x02, 0xe4, 0xcb, 0x8c, 0x3f, 0xeb, 0x99, 0xa1, 0xf1, 0x81, 0x77, 0x38, 0xa7, 0xcc, 0x53, 0x1a,
- 0x82, 0xd9, 0xe6, 0x6a, 0x7c, 0xc3, 0xa3, 0xdc, 0x9c, 0xcd, 0xf1, 0xcd, 0xd5, 0x12, 0x03, 0x68,
- 0x1c, 0x4e, 0x6e, 0xc0, 0x58, 0x99, 0x36, 0xf4, 0x8d, 0x59, 0xb3, 0xd1, 0x30, 0x5d, 0x5a, 0xb7,
- 0x2d, 0xc3, 0x45, 0x21, 0x8b, 0xea, 0x9a, 0xae, 0x96, 0x24, 0x20, 0x2a, 0x14, 0xe6, 0x97, 0x97,
- 0x5d, 0xea, 0xa1, 0xf8, 0x72, 0xe3, 0xc0, 0x26, 0x67, 0x1b, 0x21, 0x9a, 0xc0, 0xa8, 0xbf, 0x96,
- 0x61, 0xbb, 0x17, 0x77, 0xcd, 0xb3, 0x5b, 0x81, 0x96, 0xef, 0x4b, 0x24, 0x57, 0x42, 0xbb, 0x22,
- 0x8b, 0x5f, 0x7b, 0x42, 0x7c, 0x6d, 0x9f, 0xb0, 0x2d, 0x42, 0x8b, 0x22, 0xf5, 0xab, 0x72, 0xdb,
- 0x7c, 0x95, 0xfa, 0x57, 0x59, 0x38, 0x2b, 0x5a, 0x3c, 0xd1, 0x30, 0x5b, 0x4b, 0xb6, 0xee, 0x18,
- 0x1a, 0xad, 0x53, 0xf3, 0x1e, 0x3d, 0x9a, 0x03, 0x2f, 0x3a, 0x74, 0xf2, 0xfb, 0x18, 0x3a, 0xd7,
- 0x71, 0x23, 0xc8, 0x24, 0x83, 0x07, 0xbe, 0xdc, 0xa8, 0x18, 0xdd, 0xda, 0x2c, 0x0e, 0x19, 0x1c,
- 0x8c, 0x47, 0xfe, 0x9a, 0x4c, 0xc4, 0x94, 0x64, 0x86, 0x5a, 0x2b, 0xde, 0x2a, 0x2a, 0x49, 0x2f,
- 0x57, 0x92, 0x06, 0x42, 0x34, 0x81, 0x51, 0xff, 0x79, 0x16, 0x4e, 0xc5, 0x45, 0x5e, 0xa5, 0x96,
- 0x71, 0x2c, 0xef, 0x77, 0x47, 0xde, 0xdf, 0xce, 0xc1, 0xc3, 0xa2, 0x4c, 0x75, 0x55, 0x77, 0xa8,
- 0x51, 0x36, 0x1d, 0x5a, 0xf7, 0x6c, 0x67, 0xe3, 0x08, 0x1b, 0x50, 0x07, 0x27, 0xf6, 0x1b, 0x50,
- 0x10, 0xdb, 0x7f, 0xbe, 0xce, 0x8c, 0x04, 0x2d, 0x41, 0x68, 0x62, 0x85, 0xe2, 0x47, 0x07, 0xb1,
- 0xce, 0x2a, 0xec, 0xa4, 0xb3, 0x3e, 0x04, 0xc3, 0x81, 0xe8, 0x71, 0x23, 0xda, 0x17, 0x5a, 0x5b,
- 0x86, 0x8f, 0xc0, 0xbd, 0xa8, 0x16, 0x25, 0xc4, 0xda, 0x7c, 0x40, 0xa5, 0x8c, 0xd6, 0xd0, 0xb0,
- 0xa8, 0x2d, 0x28, 0x67, 0x1a, 0x9a, 0x4c, 0xa4, 0x6e, 0xe6, 0xe1, 0x5c, 0x7a, 0xb7, 0x6b, 0x54,
- 0x37, 0x8e, 0x7b, 0xfd, 0xbb, 0xb2, 0xd7, 0xc9, 0xa3, 0x90, 0x5f, 0xd0, 0xbd, 0x55, 0x71, 0xfd,
- 0x8e, 0x77, 0xc2, 0xcb, 0x66, 0x83, 0xd6, 0x5a, 0xba, 0xb7, 0xaa, 0x21, 0x4a, 0x9a, 0x33, 0x00,
- 0x39, 0xa6, 0xcc, 0x19, 0xd2, 0x62, 0x3f, 0xf8, 0x48, 0xe6, 0x72, 0x3e, 0x75, 0xb1, 0xff, 0x66,
- 0xbe, 0xd3, 0xbc, 0x72, 0xd7, 0x31, 0x3d, 0x7a, 0xac, 0x61, 0xc7, 0x1a, 0xb6, 0x4f, 0x0d, 0xfb,
- 0x93, 0x2c, 0x0c, 0x07, 0x9b, 0xa6, 0xb7, 0x68, 0xfd, 0x70, 0xd6, 0xaa, 0x70, 0x2b, 0x93, 0xdb,
- 0xf7, 0x56, 0x66, 0x3f, 0x0a, 0xa5, 0x06, 0x47, 0x9e, 0xdc, 0x34, 0x40, 0x89, 0xf1, 0x23, 0xcf,
- 0xe0, 0xa0, 0xf3, 0x51, 0xe8, 0x9b, 0xd5, 0xef, 0x9b, 0xcd, 0x76, 0x53, 0x58, 0xe9, 0xe8, 0x4e,
- 0xd6, 0xd4, 0xef, 0x6b, 0x3e, 0x5c, 0xfd, 0xff, 0x33, 0x30, 0x22, 0x84, 0x2a, 0x98, 0xef, 0x4b,
- 0xaa, 0xa1, 0x74, 0xb2, 0xfb, 0x96, 0x4e, 0x6e, 0xef, 0xd2, 0x51, 0x7f, 0x3a, 0x07, 0xca, 0x94,
- 0xd9, 0xa0, 0x8b, 0x8e, 0x6e, 0xb9, 0xcb, 0xd4, 0x11, 0xdb, 0xe9, 0x49, 0xc6, 0x6a, 0x5f, 0x1f,
- 0x28, 0x4d, 0x29, 0xd9, 0x3d, 0x4d, 0x29, 0x1f, 0x80, 0x01, 0xd1, 0x98, 0xc0, 0x95, 0x11, 0x47,
- 0x8d, 0xe3, 0x03, 0xb5, 0x10, 0xcf, 0x88, 0x4b, 0xad, 0x96, 0x63, 0xdf, 0xa3, 0x0e, 0xbf, 0xa5,
- 0x12, 0xc4, 0xba, 0x0f, 0xd4, 0x42, 0xbc, 0xc4, 0x99, 0xfa, 0xf6, 0xa2, 0xcc, 0x99, 0x3a, 0x5a,
- 0x88, 0x27, 0x97, 0xa1, 0x7f, 0xc6, 0xae, 0xeb, 0x28, 0x68, 0x3e, 0xad, 0x0c, 0x6d, 0x6d, 0x16,
- 0xfb, 0x1b, 0x02, 0xa6, 0x05, 0x58, 0x46, 0x59, 0xb6, 0xd7, 0xad, 0x86, 0xad, 0x73, 0xe7, 0x97,
- 0x7e, 0x4e, 0x69, 0x08, 0x98, 0x16, 0x60, 0x19, 0x25, 0x93, 0x39, 0x3a, 0x15, 0xf5, 0x87, 0x3c,
- 0x97, 0x05, 0x4c, 0x0b, 0xb0, 0xea, 0xaf, 0xe5, 0x99, 0xf6, 0xba, 0xe6, 0xdb, 0x0f, 0xfc, 0xba,
- 0x10, 0x0e, 0x98, 0xde, 0x3d, 0x0c, 0x98, 0x07, 0xe6, 0xc0, 0x4e, 0xfd, 0xeb, 0x3e, 0x00, 0x21,
- 0xfd, 0xc9, 0xe3, 0xcd, 0xe1, 0xfe, 0xb4, 0xa6, 0x0c, 0x63, 0x93, 0xd6, 0xaa, 0x6e, 0xd5, 0xa9,
- 0x11, 0x1e, 0x5b, 0x16, 0x70, 0x68, 0xa3, 0x13, 0x24, 0x15, 0xc8, 0xf0, 0xdc, 0x52, 0x4b, 0x16,
- 0x20, 0x4f, 0xc3, 0x60, 0xc5, 0xf2, 0xa8, 0xa3, 0xd7, 0x3d, 0xf3, 0x1e, 0x15, 0x53, 0x03, 0xde,
- 0x0c, 0x9b, 0x21, 0x58, 0x93, 0x69, 0xc8, 0x0d, 0x18, 0x5a, 0xd0, 0x1d, 0xcf, 0xac, 0x9b, 0x2d,
- 0xdd, 0xf2, 0x5c, 0xa5, 0x1f, 0x67, 0x34, 0xb4, 0x30, 0x5a, 0x12, 0x5c, 0x8b, 0x50, 0x91, 0x4f,
- 0xc0, 0x00, 0x6e, 0x4d, 0xd1, 0x5f, 0x7b, 0x60, 0xdb, 0x8b, 0xc3, 0xc7, 0x42, 0xf7, 0x40, 0x7e,
- 0xfa, 0x8a, 0x37, 0xc0, 0xf1, 0xbb, 0xc3, 0x80, 0x23, 0xf9, 0x08, 0xf4, 0x4d, 0x5a, 0x06, 0x32,
- 0x87, 0x6d, 0x99, 0xab, 0x82, 0xf9, 0x99, 0x90, 0xb9, 0xdd, 0x8a, 0xf1, 0xf6, 0xd9, 0xa5, 0x8f,
- 0xb2, 0xc1, 0x77, 0x6f, 0x94, 0x0d, 0xbd, 0x0b, 0xc7, 0xe2, 0xc3, 0x07, 0x75, 0x2c, 0x3e, 0xb2,
- 0xc7, 0x63, 0x71, 0xf5, 0x6d, 0x18, 0x1c, 0x5f, 0x98, 0x0a, 0x46, 0xef, 0x43, 0x90, 0x5b, 0x10,
- 0x9e, 0x0a, 0x79, 0x6e, 0xcf, 0xb4, 0x4c, 0x43, 0x63, 0x30, 0x72, 0x05, 0xfa, 0x27, 0xd0, 0xfd,
- 0x4d, 0xdc, 0x22, 0xe6, 0xf9, 0xfa, 0x57, 0x47, 0x18, 0x7a, 0xc1, 0xfa, 0x68, 0xf2, 0x38, 0xf4,
- 0x2d, 0x38, 0xf6, 0x8a, 0xa3, 0x37, 0xc5, 0x1a, 0x8c, 0xae, 0x22, 0x2d, 0x0e, 0xd2, 0x7c, 0x9c,
- 0xfa, 0xa3, 0x19, 0xdf, 0x6c, 0x67, 0x25, 0xaa, 0x6d, 0x3c, 0x9a, 0xc7, 0xba, 0xfb, 0x79, 0x09,
- 0x97, 0x83, 0x34, 0x1f, 0x47, 0xae, 0x40, 0xef, 0xa4, 0xe3, 0xd8, 0x8e, 0xec, 0xe3, 0x4e, 0x19,
- 0x40, 0xbe, 0xee, 0x45, 0x0a, 0xf2, 0x3c, 0x0c, 0xf2, 0x39, 0x87, 0x9f, 0x68, 0xe6, 0xba, 0xdd,
- 0x94, 0xca, 0x94, 0xea, 0xd7, 0x73, 0x92, 0xcd, 0xc6, 0x25, 0xfe, 0x00, 0xde, 0x0a, 0x3c, 0x03,
- 0xb9, 0xf1, 0x85, 0x29, 0x31, 0x01, 0x9e, 0xf4, 0x8b, 0x4a, 0xaa, 0x12, 0x2b, 0xc7, 0xa8, 0xc9,
- 0x79, 0xc8, 0x2f, 0x30, 0xf5, 0x29, 0xa0, 0x7a, 0xf4, 0x6f, 0x6d, 0x16, 0xf3, 0x2d, 0xa6, 0x3f,
- 0x08, 0x45, 0x2c, 0xdb, 0xcc, 0xf0, 0x1d, 0x13, 0xc7, 0x86, 0xfb, 0x98, 0xf3, 0x90, 0x2f, 0x39,
- 0x2b, 0xf7, 0xc4, 0xac, 0x85, 0x58, 0xdd, 0x59, 0xb9, 0xa7, 0x21, 0x94, 0x5c, 0x03, 0xd0, 0xa8,
- 0xd7, 0x76, 0x2c, 0x7c, 0x7e, 0x32, 0x80, 0xe7, 0x6f, 0x38, 0x1b, 0x3a, 0x08, 0xad, 0xd5, 0x6d,
- 0x83, 0x6a, 0x12, 0x89, 0xfa, 0x8b, 0xe1, 0xc5, 0x4e, 0xd9, 0x74, 0xd7, 0x8e, 0xbb, 0x70, 0x17,
- 0x5d, 0xa8, 0x8b, 0x23, 0xce, 0x64, 0x27, 0x15, 0xa1, 0x77, 0xaa, 0xa1, 0xaf, 0xb8, 0xd8, 0x87,
- 0xc2, 0x97, 0x6c, 0x99, 0x01, 0x34, 0x0e, 0x8f, 0xf5, 0x53, 0xff, 0xf6, 0xfd, 0xf4, 0xe5, 0xde,
- 0x60, 0xb4, 0xcd, 0x51, 0x6f, 0xdd, 0x76, 0x8e, 0xbb, 0x6a, 0xa7, 0x5d, 0x75, 0x09, 0xfa, 0xaa,
- 0x4e, 0x5d, 0x3a, 0xba, 0xc0, 0xfd, 0x80, 0xeb, 0xd4, 0xf9, 0xb1, 0x85, 0x8f, 0x64, 0x74, 0x65,
- 0xd7, 0x43, 0xba, 0xbe, 0x90, 0xce, 0x70, 0x3d, 0x41, 0x27, 0x90, 0x82, 0x6e, 0xc1, 0x76, 0x3c,
- 0xd1, 0x71, 0x01, 0x5d, 0xcb, 0x76, 0x3c, 0xcd, 0x47, 0x92, 0x0f, 0x00, 0x2c, 0x4e, 0x2c, 0xf8,
- 0xce, 0xf6, 0x03, 0xa1, 0x2f, 0xa0, 0xf0, 0xb2, 0xd7, 0x24, 0x34, 0x59, 0x84, 0x81, 0xf9, 0x16,
- 0x75, 0xf8, 0x56, 0x88, 0x3f, 0x28, 0x79, 0x7f, 0x4c, 0xb4, 0xa2, 0xdf, 0xaf, 0x8a, 0xff, 0x03,
- 0x72, 0xbe, 0xbe, 0xd8, 0xfe, 0x4f, 0x2d, 0x64, 0x44, 0x9e, 0x87, 0x42, 0x89, 0xdb, 0x79, 0x83,
- 0xc8, 0x32, 0x10, 0x19, 0x6e, 0x41, 0x39, 0x8a, 0xef, 0xd9, 0x75, 0xfc, 0x5b, 0x13, 0xe4, 0xea,
- 0x15, 0x18, 0x8d, 0x57, 0x43, 0x06, 0xa1, 0x6f, 0x62, 0x7e, 0x6e, 0x6e, 0x72, 0x62, 0x71, 0xb4,
- 0x87, 0xf4, 0x43, 0xbe, 0x3a, 0x39, 0x57, 0x1e, 0xcd, 0xa8, 0xbf, 0x22, 0xcd, 0x20, 0x4c, 0xb5,
- 0x8e, 0xaf, 0x86, 0xf7, 0x75, 0xdf, 0x32, 0x8a, 0xf7, 0xa1, 0x78, 0x62, 0xd0, 0x34, 0x3d, 0x8f,
- 0x1a, 0x62, 0x95, 0xc0, 0xfb, 0x42, 0xef, 0xbe, 0x96, 0xc0, 0x93, 0x27, 0x61, 0x18, 0x61, 0xe2,
- 0x8a, 0x90, 0xef, 0x8f, 0x45, 0x01, 0xe7, 0xbe, 0x16, 0x45, 0xaa, 0xdf, 0x08, 0x6f, 0x87, 0x67,
- 0xa8, 0x7e, 0x54, 0x6f, 0x14, 0xdf, 0x23, 0xfd, 0xa5, 0xfe, 0x6d, 0x9e, 0x3f, 0x01, 0xe1, 0xef,
- 0x05, 0x0f, 0x43, 0x94, 0xe1, 0x91, 0x6e, 0x6e, 0x17, 0x47, 0xba, 0x4f, 0x42, 0x61, 0x96, 0x7a,
- 0xab, 0xb6, 0xef, 0xf8, 0x85, 0x1e, 0x7a, 0x4d, 0x84, 0xc8, 0x1e, 0x7a, 0x9c, 0x86, 0xac, 0x01,
- 0xf1, 0x1f, 0x03, 0x06, 0x8e, 0xd8, 0xfe, 0x11, 0xf2, 0xd9, 0xc4, 0x3e, 0xa5, 0x8a, 0x2f, 0x81,
- 0xd1, 0xc7, 0xfe, 0x54, 0xe0, 0xe8, 0x2d, 0x79, 0x62, 0xfd, 0xcd, 0x66, 0xb1, 0xc0, 0x69, 0xb4,
- 0x14, 0xb6, 0xe4, 0x0d, 0x18, 0x98, 0x9d, 0x2a, 0x89, 0x87, 0x81, 0xdc, 0x2b, 0xe2, 0xa1, 0x40,
- 0x8a, 0x3e, 0x22, 0x10, 0x09, 0xbe, 0xb7, 0x69, 0x2e, 0xeb, 0xc9, 0x77, 0x81, 0x21, 0x17, 0xa6,
- 0x2d, 0xfc, 0xe5, 0x8e, 0x38, 0x5d, 0x08, 0xb4, 0x25, 0xfa, 0x9e, 0x27, 0x2e, 0x2b, 0x8e, 0x8d,
- 0x69, 0x4b, 0xff, 0x3e, 0x46, 0xf7, 0x3c, 0x8c, 0x95, 0x5a, 0xad, 0x86, 0x49, 0x0d, 0xd4, 0x17,
- 0xad, 0xdd, 0xa0, 0xae, 0x70, 0xf9, 0xc1, 0xc7, 0x20, 0x3a, 0x47, 0xd6, 0xf0, 0x39, 0x6a, 0xcd,
- 0x69, 0x47, 0xfd, 0x33, 0x93, 0x65, 0xd5, 0x1f, 0xcf, 0xc2, 0x99, 0x09, 0x87, 0xea, 0x1e, 0x9d,
- 0x9d, 0x2a, 0x95, 0xda, 0xe8, 0x23, 0xd7, 0x68, 0x50, 0x6b, 0xe5, 0x70, 0x86, 0xf5, 0x4b, 0x30,
- 0x12, 0x34, 0xa0, 0x5a, 0xb7, 0x5b, 0x54, 0x7e, 0x58, 0x55, 0xf7, 0x31, 0x35, 0x97, 0xa1, 0xb4,
- 0x18, 0x29, 0xb9, 0x05, 0x27, 0x03, 0x48, 0xa9, 0xd1, 0xb0, 0xd7, 0x35, 0xda, 0x76, 0xb9, 0x63,
- 0x6c, 0x3f, 0x77, 0x8c, 0x0d, 0x39, 0xe8, 0x0c, 0x5f, 0x73, 0x18, 0x81, 0x96, 0x56, 0x4a, 0xfd,
- 0x4a, 0x0e, 0xce, 0xde, 0xd1, 0x1b, 0xa6, 0x11, 0x8a, 0x46, 0xa3, 0x6e, 0xcb, 0xb6, 0x5c, 0x7a,
- 0x84, 0x46, 0x69, 0x64, 0x28, 0xe4, 0x0f, 0x64, 0x28, 0x24, 0xbb, 0xa8, 0x77, 0xdf, 0x5d, 0x54,
- 0xd8, 0x53, 0x17, 0xfd, 0xb3, 0x0c, 0x8c, 0xfa, 0x8e, 0xff, 0xf2, 0x23, 0x6e, 0xc9, 0x2b, 0x1d,
- 0x8f, 0x10, 0x63, 0x7e, 0xd0, 0x88, 0x27, 0x55, 0xe8, 0x9b, 0xbc, 0xdf, 0x32, 0x1d, 0xea, 0xee,
- 0xc0, 0x89, 0xfb, 0x82, 0x38, 0x2e, 0x19, 0xa3, 0xbc, 0x48, 0xe2, 0xa4, 0x84, 0x83, 0xf1, 0x39,
- 0x1f, 0x7f, 0xfa, 0x30, 0xee, 0xbf, 0x4c, 0xe7, 0xcf, 0xf9, 0xc4, 0x13, 0x89, 0xc8, 0xfb, 0xcc,
- 0x90, 0x94, 0x3c, 0x06, 0xb9, 0xc5, 0xc5, 0x19, 0x31, 0x93, 0x62, 0x44, 0x00, 0xcf, 0x93, 0xdf,
- 0x2b, 0x32, 0xac, 0xfa, 0xe7, 0x59, 0x00, 0xa6, 0x0a, 0x7c, 0xb8, 0x1e, 0x8a, 0x12, 0x8e, 0x43,
- 0xbf, 0x2f, 0x70, 0xa1, 0x86, 0x81, 0xd7, 0x7e, 0xbc, 0x23, 0xe2, 0x75, 0x07, 0x2f, 0x34, 0x8a,
- 0xbe, 0x23, 0x39, 0xbf, 0x07, 0xc0, 0x9d, 0x0d, 0x3a, 0x92, 0xfb, 0xee, 0xe3, 0x1f, 0x80, 0x01,
- 0x31, 0xe3, 0xd9, 0x91, 0xf3, 0xff, 0xba, 0x0f, 0xd4, 0x42, 0x7c, 0x6c, 0x6a, 0x2d, 0xec, 0x63,
- 0x21, 0xf6, 0xc5, 0xcb, 0x7b, 0xe5, 0x58, 0xbc, 0x07, 0x2c, 0xde, 0x2f, 0x08, 0xf1, 0xf2, 0x17,
- 0x3c, 0x47, 0x56, 0xbc, 0x07, 0x76, 0xf6, 0xad, 0xfe, 0x49, 0x06, 0x08, 0x6b, 0xd6, 0x82, 0xee,
- 0xba, 0xeb, 0xb6, 0x63, 0x70, 0xe7, 0xf4, 0x43, 0x11, 0xcc, 0xc1, 0xdd, 0x57, 0x7e, 0xbd, 0x1f,
- 0x4e, 0x46, 0x1c, 0x7f, 0x8f, 0xf8, 0x64, 0x75, 0x25, 0x3a, 0x9a, 0xba, 0xbd, 0x7a, 0x79, 0x9f,
- 0x7c, 0x21, 0xda, 0x1b, 0x79, 0x80, 0x26, 0xdd, 0x84, 0x3e, 0x05, 0x43, 0xe2, 0x07, 0x5b, 0xa1,
- 0xfd, 0x9b, 0x2e, 0x1c, 0xa5, 0x2e, 0x03, 0x68, 0x11, 0x34, 0x79, 0x16, 0x06, 0xd8, 0x80, 0x59,
- 0xc1, 0xe0, 0x21, 0x7d, 0xe1, 0x8b, 0x12, 0xc3, 0x07, 0xca, 0xeb, 0x49, 0x40, 0x29, 0xbd, 0x23,
- 0xea, 0xdf, 0xc1, 0x3b, 0xa2, 0x4f, 0xc2, 0x60, 0xc9, 0xb2, 0x6c, 0x0f, 0x37, 0xe9, 0xae, 0xb8,
- 0x9a, 0xe8, 0x68, 0x95, 0x3f, 0x86, 0x8f, 0xe3, 0x43, 0xfa, 0x54, 0xb3, 0x5c, 0x66, 0x48, 0xae,
- 0xfb, 0xaf, 0x62, 0xa8, 0x23, 0xbc, 0xca, 0xf1, 0x7a, 0xc6, 0x11, 0xb0, 0xe4, 0xa3, 0x18, 0xec,
- 0xbc, 0xe1, 0x05, 0xc7, 0x6e, 0xd9, 0x2e, 0x35, 0xb8, 0xa0, 0x06, 0xc3, 0x50, 0x03, 0x2d, 0x81,
- 0xc0, 0x77, 0x6c, 0x91, 0x40, 0x1e, 0x91, 0x22, 0x64, 0x19, 0x4e, 0xf9, 0x17, 0xc5, 0xc1, 0x8b,
- 0xc1, 0x4a, 0xd9, 0x55, 0x86, 0xf0, 0x55, 0x12, 0x89, 0x2b, 0x43, 0xa5, 0x3c, 0x7e, 0xd1, 0xbf,
- 0x16, 0xf1, 0x9f, 0x1c, 0xd6, 0x4c, 0x43, 0xee, 0xea, 0x54, 0x7e, 0xe4, 0x7b, 0x60, 0x70, 0x56,
- 0xbf, 0x5f, 0x6e, 0x8b, 0xb3, 0x97, 0xe1, 0x9d, 0xdf, 0xbe, 0x34, 0xf5, 0xfb, 0x35, 0x43, 0x94,
- 0x8b, 0xd9, 0x14, 0x32, 0x4b, 0x52, 0x83, 0x33, 0x0b, 0x8e, 0xdd, 0xb4, 0x3d, 0x6a, 0xc4, 0x1e,
- 0xdf, 0x9d, 0x08, 0x5f, 0xeb, 0xb6, 0x04, 0x45, 0xad, 0xcb, 0x2b, 0xbc, 0x0e, 0x6c, 0x48, 0x13,
- 0x4e, 0x94, 0x5c, 0xb7, 0xdd, 0xa4, 0xe1, 0x0d, 0xd5, 0xe8, 0xb6, 0x9f, 0xf1, 0x7e, 0xe1, 0xb5,
- 0xfc, 0xb0, 0x8e, 0x45, 0xf9, 0x05, 0x55, 0xcd, 0x33, 0xe5, 0x1a, 0xf1, 0x5b, 0xe2, 0xbc, 0x5f,
- 0xcf, 0xf7, 0x8f, 0x8c, 0x9e, 0xd0, 0xce, 0x26, 0x1b, 0xb3, 0x68, 0x7a, 0x0d, 0xaa, 0x7e, 0x2d,
- 0x03, 0x10, 0x0a, 0x98, 0x3c, 0x15, 0x8d, 0x50, 0x94, 0x09, 0x2f, 0x3a, 0x44, 0xf4, 0x82, 0x48,
- 0x48, 0x22, 0x72, 0x1e, 0xf2, 0x18, 0xe1, 0x22, 0x1b, 0x1e, 0xac, 0xae, 0x99, 0x96, 0xa1, 0x21,
- 0x94, 0x61, 0xa5, 0xa7, 0xe8, 0x88, 0xc5, 0x4b, 0x7d, 0x6e, 0x15, 0x96, 0xe1, 0x44, 0xb5, 0xbd,
- 0xe4, 0xd7, 0x2d, 0xbd, 0xab, 0xc3, 0x40, 0x1b, 0x6e, 0x7b, 0x29, 0x78, 0x8c, 0x1a, 0x09, 0x63,
- 0x12, 0x2d, 0xa2, 0xfe, 0x5a, 0x26, 0x36, 0x0b, 0x1e, 0xe2, 0xa2, 0xf7, 0xbe, 0xa4, 0x9f, 0x46,
- 0x72, 0x5a, 0x52, 0x7f, 0x26, 0x0b, 0x83, 0x0b, 0xb6, 0xe3, 0x89, 0x90, 0x21, 0x47, 0x7b, 0x15,
- 0x92, 0xf6, 0x4a, 0xf9, 0x5d, 0xec, 0x95, 0xce, 0x43, 0x5e, 0x72, 0x51, 0xe6, 0xf7, 0x22, 0x86,
- 0xe1, 0x68, 0x08, 0x55, 0xbf, 0x37, 0x0b, 0xf0, 0x91, 0xa7, 0x9f, 0x7e, 0x80, 0x05, 0xa4, 0xfe,
- 0x54, 0x06, 0x4e, 0x88, 0x8b, 0x3a, 0x29, 0xd6, 0x57, 0x9f, 0x7f, 0xc5, 0x2a, 0x8f, 0x4b, 0x0e,
- 0xd2, 0x7c, 0x1c, 0x5b, 0x02, 0x26, 0xef, 0x9b, 0x1e, 0xde, 0x55, 0x48, 0xc1, 0xbe, 0xa8, 0x80,
- 0xc9, 0x4b, 0x80, 0x4f, 0x47, 0x9e, 0xf2, 0xaf, 0x20, 0x73, 0xe1, 0xba, 0xc7, 0x0a, 0x4c, 0xa6,
- 0x5e, 0x43, 0xaa, 0xbf, 0x99, 0x87, 0xfc, 0xe4, 0x7d, 0x5a, 0x3f, 0xe2, 0x5d, 0x23, 0x1d, 0x6c,
- 0xe6, 0xf7, 0x79, 0xb0, 0xb9, 0x17, 0x9f, 0x8a, 0x57, 0xc3, 0xfe, 0x2c, 0x44, 0xab, 0x8f, 0xf5,
- 0x7c, 0xbc, 0x7a, 0xbf, 0xa7, 0x8f, 0x9e, 0x4b, 0xce, 0xff, 0x99, 0x83, 0x5c, 0x75, 0x62, 0xe1,
- 0x58, 0x6f, 0x0e, 0x55, 0x6f, 0xba, 0xdf, 0x59, 0xab, 0xc1, 0x35, 0x54, 0x7f, 0xe8, 0x25, 0x1a,
- 0xbb, 0x71, 0xfa, 0x76, 0x0e, 0x46, 0xaa, 0x53, 0x8b, 0x0b, 0xd2, 0x49, 0xf0, 0x2d, 0xee, 0xc9,
- 0x87, 0x3e, 0x65, 0xbc, 0x4b, 0xcf, 0x27, 0xec, 0x99, 0xdb, 0x15, 0xcb, 0x7b, 0xee, 0xc6, 0x1d,
- 0xbd, 0xd1, 0xa6, 0x78, 0xf4, 0xc2, 0xfd, 0x7e, 0x5d, 0xf3, 0x6d, 0xfa, 0x15, 0x7c, 0xf8, 0xef,
- 0x33, 0x20, 0x2f, 0x41, 0xee, 0xb6, 0xf0, 0xc8, 0xe8, 0xc4, 0xe7, 0x99, 0xeb, 0x9c, 0x0f, 0x9b,
- 0x04, 0x73, 0x6d, 0xd3, 0x40, 0x0e, 0xac, 0x14, 0x2b, 0x7c, 0x53, 0x2c, 0xc0, 0x3b, 0x2a, 0xbc,
- 0xe2, 0x17, 0xbe, 0x59, 0x29, 0x93, 0x2a, 0x0c, 0x2e, 0x50, 0xa7, 0x69, 0x62, 0x47, 0xf9, 0x73,
- 0x76, 0x77, 0x26, 0x6c, 0xa7, 0x32, 0xd8, 0x0a, 0x0b, 0x21, 0x33, 0x99, 0x0b, 0x79, 0x13, 0x80,
- 0xdb, 0x28, 0x3b, 0x8c, 0x1f, 0x79, 0x01, 0xed, 0x7e, 0x6e, 0x5a, 0xa6, 0xd8, 0x78, 0x12, 0x33,
- 0xb2, 0x06, 0xa3, 0xb3, 0xb6, 0x61, 0x2e, 0x9b, 0xdc, 0xf5, 0x12, 0x2b, 0x28, 0x6c, 0xef, 0xf0,
- 0xc4, 0x4c, 0xc9, 0xa6, 0x54, 0x2e, 0xad, 0x9a, 0x04, 0x63, 0xf5, 0x7f, 0xeb, 0x85, 0x3c, 0xeb,
- 0xf6, 0xe3, 0xf1, 0xbb, 0x9f, 0xf1, 0x5b, 0x82, 0xd1, 0xbb, 0xb6, 0xb3, 0x66, 0x5a, 0x2b, 0x81,
- 0x57, 0xbc, 0xd8, 0x9b, 0xa2, 0x27, 0xcf, 0x3a, 0xc7, 0xd5, 0x02, 0x07, 0x7a, 0x2d, 0x41, 0xbe,
- 0xcd, 0x08, 0x7e, 0x01, 0x80, 0xbf, 0x75, 0x47, 0x9a, 0xfe, 0x30, 0x58, 0x05, 0x7f, 0x09, 0x8f,
- 0x8e, 0xf6, 0x72, 0xb0, 0x8a, 0x90, 0x98, 0x6d, 0xc2, 0xb9, 0x2f, 0xc4, 0x00, 0xfa, 0xdd, 0xe3,
- 0x26, 0x1c, 0x7d, 0x21, 0x64, 0x23, 0x80, 0x7b, 0x45, 0x2c, 0x00, 0x48, 0xf7, 0x4b, 0x10, 0x13,
- 0x44, 0x64, 0x72, 0x10, 0xe1, 0xe1, 0x52, 0xae, 0x97, 0x34, 0x89, 0x07, 0x79, 0x2e, 0x76, 0x01,
- 0x4e, 0x22, 0xdc, 0x3a, 0xde, 0x7f, 0x87, 0x0e, 0x54, 0x43, 0xdb, 0x39, 0x50, 0xa9, 0x9f, 0xcb,
- 0xc2, 0x40, 0xb5, 0xbd, 0xe4, 0x6e, 0xb8, 0x1e, 0x6d, 0x1e, 0x71, 0x35, 0xf6, 0xb7, 0x57, 0xf9,
- 0xd4, 0xed, 0xd5, 0x63, 0xbe, 0x50, 0xa4, 0x73, 0xc7, 0xc0, 0xa4, 0xf3, 0xc5, 0xf1, 0x3f, 0x67,
- 0x61, 0x94, 0x5f, 0x9c, 0x95, 0x4d, 0xb7, 0x7e, 0x00, 0xce, 0xfc, 0x87, 0x2f, 0x95, 0xfd, 0x5d,
- 0x36, 0xef, 0xe0, 0x89, 0x84, 0xfa, 0xe9, 0x2c, 0x0c, 0x96, 0xda, 0xde, 0x6a, 0xc9, 0x43, 0xdd,
- 0x7a, 0x20, 0xf7, 0x27, 0x7f, 0x90, 0x81, 0x13, 0xac, 0x21, 0x8b, 0xf6, 0x1a, 0xb5, 0x0e, 0xe0,
- 0xe0, 0x51, 0x3e, 0x40, 0xcc, 0xee, 0xf1, 0x00, 0xd1, 0x97, 0x65, 0x6e, 0x77, 0xb2, 0xc4, 0xe3,
- 0x72, 0xcd, 0x6e, 0xd0, 0xa3, 0xfd, 0x19, 0x07, 0x78, 0x5c, 0xee, 0x0b, 0xe4, 0x00, 0xae, 0x67,
- 0xbe, 0xbb, 0x04, 0x72, 0x00, 0x67, 0x4b, 0xdf, 0x1d, 0x02, 0xf9, 0x7a, 0x06, 0x06, 0xc6, 0x6d,
- 0xef, 0x88, 0x0f, 0x7c, 0xf1, 0x15, 0x47, 0x5b, 0xcd, 0xfd, 0xaf, 0x38, 0xda, 0xba, 0xa9, 0xfe,
- 0x44, 0x16, 0x4e, 0x89, 0xd8, 0xe0, 0xe2, 0xfc, 0xe1, 0x78, 0x3a, 0x16, 0x83, 0x2d, 0x29, 0x9a,
- 0xe3, 0x79, 0x48, 0x88, 0xe6, 0x97, 0x72, 0x70, 0x0a, 0x43, 0x99, 0xb2, 0x6d, 0xd9, 0x77, 0x81,
- 0x2d, 0x42, 0xea, 0xd1, 0x4b, 0xd0, 0xd9, 0x94, 0x4b, 0xd0, 0xbf, 0xd9, 0x2c, 0x3e, 0xb7, 0x62,
- 0x7a, 0xab, 0xed, 0xa5, 0xab, 0x75, 0xbb, 0x79, 0x6d, 0xc5, 0xd1, 0xef, 0x99, 0xfc, 0xfa, 0x4f,
- 0x6f, 0x5c, 0x0b, 0xd2, 0x6c, 0xe8, 0x2d, 0x53, 0x24, 0xe0, 0xa8, 0xe2, 0x5e, 0x87, 0x71, 0xf5,
- 0xaf, 0x4f, 0x5d, 0x80, 0xd7, 0x6d, 0xd3, 0x12, 0x3e, 0x85, 0xdc, 0xd0, 0xad, 0xb2, 0xfd, 0xe1,
- 0x5b, 0xb6, 0x69, 0xd5, 0xe2, 0x8e, 0x85, 0xbb, 0xad, 0x2f, 0x64, 0xad, 0x49, 0xd5, 0xa8, 0xff,
- 0x5f, 0x06, 0x1e, 0x8a, 0x6a, 0xf1, 0x77, 0x83, 0xed, 0xf8, 0x93, 0x59, 0x38, 0x7d, 0x13, 0x85,
- 0x13, 0x38, 0x72, 0x1c, 0xcf, 0x5b, 0x62, 0x70, 0xa6, 0xc8, 0xe6, 0xd8, 0xa2, 0xec, 0x2c, 0x9b,
- 0xe3, 0x49, 0x5d, 0xc8, 0xe6, 0x0f, 0x33, 0x70, 0x72, 0xbe, 0x52, 0x9e, 0xf8, 0x2e, 0x19, 0x51,
- 0xc9, 0xef, 0x39, 0xe2, 0x06, 0x67, 0xe2, 0x7b, 0x8e, 0xb8, 0xe9, 0xf9, 0xa5, 0x2c, 0x9c, 0xac,
- 0x96, 0x66, 0x67, 0xbe, 0x5b, 0x66, 0xf0, 0x09, 0xd9, 0xeb, 0xd0, 0x3f, 0x04, 0x13, 0xb6, 0x80,
- 0xfc, 0x99, 0x77, 0xae, 0x77, 0xf6, 0x46, 0x4c, 0x0a, 0xe5, 0x88, 0x4f, 0xdd, 0x07, 0x22, 0x14,
- 0xa6, 0xf9, 0x11, 0xea, 0x23, 0xae, 0xf9, 0xff, 0x47, 0x01, 0x06, 0x6f, 0xb5, 0x97, 0xa8, 0x70,
- 0x4e, 0x79, 0xa0, 0x4f, 0x7e, 0xaf, 0xc3, 0xa0, 0x10, 0x03, 0xde, 0x9a, 0x48, 0xc1, 0xf3, 0x44,
- 0x30, 0x14, 0x1e, 0x9f, 0x48, 0x26, 0x22, 0xe7, 0x21, 0x7f, 0x87, 0x3a, 0x4b, 0xf2, 0xbb, 0xd2,
- 0x7b, 0xd4, 0x59, 0xd2, 0x10, 0x4a, 0x66, 0x42, 0x97, 0xf9, 0xd2, 0x42, 0x05, 0x13, 0xa9, 0x88,
- 0x0b, 0x1b, 0xcc, 0x0c, 0x13, 0xf8, 0xbd, 0xe9, 0x2d, 0x93, 0xa7, 0x60, 0x91, 0xdf, 0xb4, 0xc7,
- 0x4b, 0x92, 0x39, 0x18, 0x93, 0x1d, 0x9f, 0x78, 0x16, 0x91, 0xfe, 0x14, 0x76, 0x69, 0xf9, 0x43,
- 0x92, 0x45, 0xc9, 0xab, 0x30, 0xe4, 0x03, 0xd1, 0x85, 0x6b, 0x20, 0x0c, 0x5d, 0x1f, 0xb0, 0x8a,
- 0xa5, 0x28, 0x8a, 0x14, 0x90, 0x19, 0xe0, 0x35, 0x04, 0xa4, 0x30, 0x88, 0xb9, 0xc4, 0x45, 0x0a,
- 0x90, 0x67, 0x91, 0x01, 0x3e, 0xf3, 0x40, 0x67, 0x95, 0x41, 0x7c, 0x74, 0x89, 0x2e, 0xf9, 0x8e,
- 0x80, 0xf3, 0xa7, 0xb5, 0x11, 0x32, 0x32, 0x0f, 0x10, 0x3a, 0x15, 0x88, 0x00, 0x06, 0xbb, 0x76,
- 0x77, 0x90, 0x58, 0xc8, 0xd7, 0x81, 0xc3, 0x7b, 0xb9, 0x0e, 0x54, 0xff, 0x38, 0x0b, 0x83, 0xa5,
- 0x56, 0x2b, 0x18, 0x0a, 0x4f, 0x41, 0xa1, 0xd4, 0x6a, 0xdd, 0xd6, 0x2a, 0x72, 0x28, 0x73, 0xbd,
- 0xd5, 0xaa, 0xb5, 0x1d, 0x53, 0xf6, 0x09, 0xe5, 0x44, 0x64, 0x02, 0x86, 0x4b, 0xad, 0xd6, 0x42,
- 0x7b, 0xa9, 0x61, 0xd6, 0xa5, 0xcc, 0x48, 0x3c, 0x77, 0x5c, 0xab, 0x55, 0x6b, 0x21, 0x26, 0x9e,
- 0x1e, 0x2b, 0x5a, 0x86, 0x7c, 0x12, 0xc3, 0xfe, 0x88, 0xc4, 0x3c, 0x3c, 0xf5, 0x87, 0x1a, 0x04,
- 0x31, 0x0f, 0xdb, 0x76, 0x35, 0x20, 0xe2, 0xc1, 0xde, 0xcf, 0xfb, 0x21, 0xf3, 0x59, 0x45, 0x89,
- 0x04, 0x3c, 0x21, 0x4b, 0xf2, 0x41, 0xe8, 0x2b, 0xb5, 0x5a, 0xd2, 0x7d, 0x13, 0x3a, 0x15, 0xb1,
- 0x52, 0xf1, 0xdc, 0x67, 0x82, 0xec, 0xdc, 0xcb, 0x30, 0x12, 0xad, 0x6c, 0x57, 0xc1, 0xe2, 0xbf,
- 0x93, 0xc1, 0x0f, 0x3a, 0xe2, 0x3e, 0xcd, 0xcf, 0x40, 0xae, 0xd4, 0x6a, 0x89, 0xf9, 0xe8, 0x64,
- 0x4a, 0x7f, 0xc4, 0x9f, 0x40, 0x97, 0x5a, 0x2d, 0xff, 0xd3, 0x8f, 0xf8, 0xe3, 0x88, 0x3d, 0x7d,
- 0xfa, 0xd7, 0xf9, 0xa7, 0x1f, 0xed, 0x87, 0x0b, 0xea, 0x6f, 0xe6, 0xe0, 0x44, 0xa9, 0xd5, 0x3a,
- 0x0e, 0x32, 0x7f, 0x50, 0x0f, 0xad, 0x9f, 0x06, 0x90, 0xa6, 0xc7, 0xbe, 0xe0, 0xe9, 0xd6, 0xa0,
- 0x34, 0x35, 0x2a, 0x19, 0x4d, 0x22, 0xf2, 0xd5, 0xaf, 0x7f, 0x57, 0xea, 0xf7, 0xe9, 0x1c, 0x4e,
- 0xc5, 0x47, 0x3d, 0x68, 0xd4, 0x7b, 0xa5, 0xdb, 0x44, 0x1f, 0x14, 0x76, 0xd5, 0x07, 0xbf, 0x1f,
- 0x19, 0x3c, 0x18, 0xb4, 0xfc, 0xb8, 0x17, 0x7a, 0xf7, 0x65, 0x16, 0x8f, 0xc8, 0xc2, 0x14, 0x91,
- 0x6c, 0xfc, 0x44, 0x4a, 0x22, 0xae, 0x52, 0x9d, 0xa1, 0x6a, 0xa6, 0xa1, 0xc5, 0x68, 0xfd, 0x3e,
- 0xec, 0xdb, 0x55, 0x1f, 0x6e, 0x66, 0xf1, 0xed, 0x74, 0x10, 0x97, 0x69, 0xff, 0xbb, 0x8b, 0x6b,
- 0x00, 0xdc, 0xf3, 0x20, 0x70, 0x6b, 0x1e, 0xe6, 0x21, 0x58, 0x78, 0x7e, 0x25, 0x11, 0x82, 0x25,
- 0x24, 0x09, 0x3c, 0xa4, 0x72, 0xa9, 0x1e, 0x52, 0x57, 0xa0, 0x5f, 0xd3, 0xd7, 0xdf, 0x68, 0x53,
- 0x67, 0x43, 0x98, 0x33, 0x3c, 0xec, 0xa1, 0xbe, 0x5e, 0xfb, 0x14, 0x03, 0x6a, 0x01, 0x9a, 0xa8,
- 0xc1, 0xe3, 0x7b, 0xc9, 0x23, 0x84, 0x9f, 0x91, 0x07, 0x4f, 0xee, 0xf7, 0xa2, 0xe8, 0xe4, 0x45,
- 0xc8, 0x95, 0xee, 0x56, 0x85, 0x64, 0x83, 0xae, 0x2d, 0xdd, 0xad, 0x0a, 0x79, 0x75, 0x2c, 0x7b,
- 0xb7, 0xaa, 0x7e, 0x3a, 0x0b, 0x24, 0x49, 0x49, 0x9e, 0x83, 0x01, 0x84, 0xae, 0x30, 0x9d, 0x91,
- 0x13, 0x73, 0xae, 0xbb, 0x35, 0x07, 0xa1, 0x11, 0xe3, 0xce, 0x27, 0x25, 0x2f, 0x60, 0xea, 0x63,
- 0x91, 0x1a, 0x2e, 0x92, 0x98, 0x73, 0xdd, 0xf5, 0x93, 0x05, 0xc7, 0x32, 0x1f, 0x0b, 0x62, 0xb4,
- 0x0b, 0xef, 0x56, 0xa7, 0x6d, 0xd7, 0x13, 0xa2, 0xe6, 0x76, 0xe1, 0xba, 0x8b, 0x19, 0x61, 0x23,
- 0x76, 0x21, 0x27, 0xc3, 0xac, 0x56, 0x77, 0xab, 0xfc, 0x99, 0x8a, 0xa1, 0xd9, 0x0d, 0xdf, 0xa0,
- 0xe4, 0x59, 0xad, 0xd6, 0xdd, 0x1a, 0x7f, 0xe2, 0x62, 0x60, 0xce, 0xe5, 0x48, 0x56, 0xab, 0x48,
- 0x29, 0xf5, 0xf3, 0xfd, 0x30, 0x5a, 0xd6, 0x3d, 0x7d, 0x49, 0x77, 0xa9, 0xb4, 0x9b, 0x3e, 0xe1,
- 0xc3, 0xfc, 0xcf, 0x91, 0xe4, 0x60, 0x2c, 0xa5, 0x7c, 0x4d, 0xbc, 0x00, 0x79, 0x29, 0xe4, 0x1b,
- 0xe4, 0x1c, 0x95, 0x93, 0x98, 0x2d, 0xd5, 0x5a, 0x02, 0xac, 0x25, 0x08, 0xc9, 0x93, 0x30, 0xe8,
- 0xc3, 0xd8, 0x06, 0x20, 0x17, 0xea, 0x8c, 0xb1, 0xc4, 0xec, 0x7f, 0x4d, 0x46, 0x93, 0x17, 0x60,
- 0xc8, 0xff, 0x29, 0x99, 0xd6, 0x3c, 0x23, 0xdb, 0x52, 0x62, 0xf7, 0x24, 0x93, 0xca, 0x45, 0x71,
- 0x7e, 0xeb, 0x8d, 0x14, 0x8d, 0x25, 0x3d, 0x8b, 0x90, 0x92, 0x4f, 0xc1, 0x88, 0xff, 0x5b, 0x6c,
- 0x18, 0x78, 0x7e, 0xb8, 0x27, 0x83, 0x94, 0xce, 0x31, 0xb1, 0x5e, 0x8d, 0x92, 0xf3, 0xad, 0xc3,
- 0xc3, 0x7e, 0x1e, 0x2f, 0x63, 0x29, 0xb9, 0x73, 0x88, 0x55, 0x40, 0x2a, 0x30, 0xe6, 0x43, 0x42,
- 0x0d, 0xed, 0x0b, 0x77, 0x8c, 0xc6, 0x52, 0x2d, 0x55, 0x49, 0x93, 0xa5, 0x48, 0x03, 0xce, 0x47,
- 0x80, 0x86, 0xbb, 0x6a, 0x2e, 0x7b, 0x62, 0xbb, 0x27, 0x62, 0x10, 0x8b, 0xc4, 0x8d, 0x01, 0x57,
- 0x4e, 0xe3, 0x67, 0x60, 0x8d, 0x66, 0x87, 0xea, 0xca, 0x8d, 0x54, 0xe1, 0x94, 0x8f, 0xbf, 0x39,
- 0xb1, 0xb0, 0xe0, 0xd8, 0x6f, 0xd1, 0xba, 0x57, 0x29, 0x8b, 0xed, 0x32, 0xc6, 0xa6, 0x33, 0x96,
- 0x6a, 0x2b, 0xf5, 0x16, 0x53, 0x0a, 0x86, 0x8b, 0x32, 0x4f, 0x2d, 0x4c, 0xee, 0xc0, 0x69, 0x09,
- 0x2e, 0xa5, 0x87, 0x86, 0x70, 0x3f, 0x2f, 0xb8, 0xa6, 0x67, 0x88, 0x4e, 0x2f, 0x4e, 0x5e, 0x86,
- 0x61, 0x1f, 0xc1, 0x6f, 0x11, 0x07, 0xf1, 0x16, 0x11, 0x87, 0xa4, 0xb1, 0x54, 0x8b, 0xbf, 0xa6,
- 0x8c, 0x12, 0xcb, 0x1a, 0x85, 0x19, 0xf5, 0x87, 0x22, 0x1a, 0xe5, 0x6d, 0xb4, 0x52, 0x95, 0x11,
- 0xb3, 0xec, 0xbf, 0x1a, 0x6a, 0xd4, 0xbc, 0x63, 0xae, 0x98, 0x7c, 0x27, 0xed, 0x3f, 0xa0, 0x5c,
- 0xaa, 0xd9, 0x08, 0x4c, 0xd3, 0x0f, 0x4e, 0x7e, 0xae, 0x04, 0x27, 0x53, 0x74, 0x6c, 0x57, 0x3b,
- 0xc6, 0xcf, 0x65, 0xc3, 0x46, 0x1c, 0xf1, 0x6d, 0xe3, 0x38, 0xf4, 0xfb, 0x5f, 0x22, 0x8c, 0x07,
- 0xa5, 0xd3, 0xd0, 0x8c, 0xf3, 0xf0, 0xf1, 0x11, 0x71, 0x1c, 0xf1, 0xad, 0xe4, 0x41, 0x88, 0xe3,
- 0x9d, 0x4c, 0x28, 0x8e, 0x23, 0xbe, 0xbd, 0xfc, 0xc3, 0x5c, 0x38, 0x27, 0x1d, 0xef, 0x31, 0x0f,
- 0xca, 0x4c, 0x0e, 0xfd, 0x60, 0x0b, 0xbb, 0x78, 0xc8, 0x28, 0xab, 0x66, 0xdf, 0x1e, 0x55, 0xf3,
- 0x4f, 0x93, 0xfd, 0xc9, 0x4d, 0xcf, 0x23, 0xd9, 0x9f, 0x07, 0x30, 0x58, 0xc9, 0xf5, 0x70, 0x1d,
- 0xe3, 0x36, 0x7a, 0xaf, 0x14, 0xe2, 0x6f, 0x49, 0x98, 0xe8, 0x51, 0x12, 0xf2, 0x31, 0x38, 0x1b,
- 0x01, 0x2c, 0xe8, 0x8e, 0xde, 0xa4, 0x5e, 0x98, 0x71, 0x10, 0x83, 0x36, 0xf9, 0xa5, 0x6b, 0xad,
- 0x00, 0x2d, 0x67, 0x31, 0xec, 0xc0, 0x41, 0x52, 0x8e, 0xbe, 0x5d, 0x38, 0x49, 0x7f, 0x39, 0x17,
- 0x9a, 0x2a, 0xd1, 0xe0, 0xab, 0x1a, 0x75, 0xdb, 0x0d, 0xef, 0xc1, 0xed, 0xe0, 0xbd, 0xa5, 0xb6,
- 0x98, 0x86, 0x13, 0xa5, 0xe5, 0x65, 0x5a, 0xf7, 0xfc, 0x98, 0xd2, 0xae, 0x08, 0xb7, 0xc7, 0xb7,
- 0x0e, 0x02, 0x25, 0x62, 0x04, 0x47, 0x72, 0xe3, 0xc7, 0x8a, 0xa9, 0x7f, 0x96, 0x07, 0x25, 0x30,
- 0xdd, 0x83, 0x87, 0x5a, 0x87, 0xb8, 0x4c, 0xbe, 0x27, 0x7a, 0xc5, 0x84, 0xb1, 0x50, 0x18, 0xd5,
- 0x76, 0xb3, 0xa9, 0xe3, 0xd0, 0x63, 0x5b, 0x83, 0x62, 0x9c, 0x59, 0x48, 0xc8, 0x77, 0x03, 0xe7,
- 0xc4, 0x6e, 0x80, 0x84, 0x0f, 0xe1, 0x6a, 0x2e, 0x67, 0xa1, 0x25, 0xb9, 0x92, 0x2f, 0x64, 0xe0,
- 0x94, 0xdf, 0x29, 0xf3, 0x4b, 0xcc, 0x2c, 0x9e, 0xb0, 0xdb, 0x96, 0xe7, 0xef, 0x44, 0x5e, 0xec,
- 0x5c, 0x1d, 0xef, 0xa4, 0xab, 0x69, 0x85, 0x79, 0x4b, 0x82, 0xc0, 0x12, 0x81, 0x42, 0xd8, 0x48,
- 0x53, 0xab, 0x23, 0x91, 0x96, 0x5a, 0xef, 0xb9, 0x9b, 0xf0, 0x50, 0x47, 0x96, 0xdb, 0x99, 0xa1,
- 0xbd, 0xb2, 0x19, 0xfa, 0xf7, 0x32, 0xe1, 0x44, 0x14, 0x13, 0x12, 0xb9, 0x0a, 0x10, 0x82, 0xc4,
- 0xc6, 0x74, 0x64, 0x6b, 0xb3, 0x08, 0xa1, 0xd0, 0x34, 0x89, 0x82, 0xcc, 0x43, 0x41, 0x88, 0x85,
- 0x67, 0xf7, 0xfd, 0xc0, 0x36, 0xbd, 0x70, 0x55, 0x96, 0x03, 0x6e, 0x3a, 0xc5, 0x37, 0x0b, 0x36,
- 0xe7, 0x5e, 0x80, 0xc1, 0xbd, 0x7e, 0xd7, 0x17, 0x72, 0x40, 0xe4, 0x5d, 0xe4, 0x21, 0x9a, 0xd8,
- 0x47, 0x78, 0x0a, 0xbb, 0x0c, 0xfd, 0xec, 0x13, 0x30, 0xdf, 0x85, 0x14, 0xdf, 0xb6, 0x2d, 0x60,
- 0x5a, 0x80, 0x0d, 0x83, 0x4b, 0xf5, 0xa5, 0x07, 0x97, 0x52, 0x7f, 0x2c, 0x07, 0x67, 0xe4, 0x0e,
- 0x29, 0x53, 0x0c, 0x99, 0x7f, 0xdc, 0x29, 0xef, 0x62, 0xa7, 0xa8, 0x50, 0xe0, 0x9b, 0x07, 0x91,
- 0xbb, 0x80, 0x1f, 0xec, 0x20, 0x44, 0x13, 0x18, 0xf5, 0x1f, 0x67, 0x61, 0x78, 0xc1, 0x76, 0xbd,
- 0x15, 0x87, 0xba, 0x0b, 0xba, 0xe3, 0x3e, 0xc0, 0xdd, 0xf1, 0x21, 0x18, 0xc6, 0xf0, 0x40, 0x4d,
- 0x6a, 0xf1, 0x10, 0x3a, 0xbd, 0x52, 0xb2, 0x11, 0x1f, 0x21, 0xf2, 0x4a, 0x45, 0x08, 0x99, 0xf6,
- 0x73, 0xcb, 0x4f, 0x0a, 0xda, 0xc4, 0xcd, 0x3e, 0x0e, 0x57, 0x7f, 0x2e, 0x07, 0x43, 0xbe, 0x94,
- 0xc7, 0xcd, 0xa3, 0x7a, 0x53, 0x73, 0xb8, 0x42, 0xbe, 0x06, 0xb0, 0x60, 0x3b, 0x9e, 0xde, 0x98,
- 0x0b, 0x35, 0x1f, 0x8f, 0x38, 0x5b, 0x08, 0xe5, 0x65, 0x24, 0x12, 0x5c, 0xbf, 0x42, 0xb3, 0x9a,
- 0x4f, 0x4c, 0x7c, 0xfd, 0x0a, 0xa0, 0x9a, 0x44, 0xa1, 0xfe, 0x6e, 0x16, 0x4e, 0xf8, 0x9d, 0x34,
- 0x79, 0x9f, 0xd6, 0xdb, 0x0f, 0xf2, 0xdc, 0x14, 0x95, 0x76, 0xef, 0xb6, 0xd2, 0x56, 0xff, 0x95,
- 0x34, 0x91, 0x4c, 0x34, 0xec, 0xe3, 0x89, 0xe4, 0xef, 0x42, 0xc7, 0xd5, 0xef, 0xcf, 0xc1, 0x29,
- 0x5f, 0xea, 0x53, 0x6d, 0x0b, 0x0f, 0x07, 0x26, 0xf4, 0x46, 0xe3, 0x41, 0xde, 0x8d, 0x0f, 0xfa,
- 0x82, 0x98, 0x17, 0xf1, 0xf6, 0x44, 0x8e, 0xbf, 0x65, 0x01, 0xae, 0xd9, 0xa6, 0xa1, 0xc9, 0x44,
- 0xe4, 0x55, 0x18, 0xf2, 0x7f, 0x96, 0x9c, 0x15, 0x7f, 0x0b, 0x8e, 0x47, 0xfd, 0x41, 0x21, 0xdd,
- 0x89, 0x84, 0x15, 0x88, 0x14, 0x50, 0xff, 0x69, 0x01, 0xce, 0xdd, 0x35, 0x2d, 0xc3, 0x5e, 0x77,
- 0xfd, 0x14, 0x91, 0x47, 0xfe, 0xa8, 0xeb, 0xb0, 0x53, 0x43, 0xbe, 0x01, 0xa7, 0xe3, 0x22, 0x75,
- 0x82, 0xc0, 0xdd, 0xa2, 0x77, 0xd6, 0x39, 0x41, 0xcd, 0x4f, 0x16, 0x29, 0xee, 0xcb, 0xb4, 0xf4,
- 0x92, 0xf1, 0x6c, 0x93, 0x7d, 0x3b, 0xc9, 0x36, 0xf9, 0x04, 0x14, 0xca, 0x76, 0x53, 0x37, 0xfd,
- 0x00, 0x33, 0x38, 0x8a, 0x83, 0x7a, 0x11, 0xa3, 0x09, 0x0a, 0xc6, 0x5f, 0x54, 0x8c, 0x5d, 0x36,
- 0x10, 0xf2, 0xf7, 0x0b, 0x30, 0x2b, 0x4d, 0x93, 0x89, 0x88, 0x0d, 0xc3, 0xa2, 0x3a, 0x71, 0xbb,
- 0x05, 0xb8, 0x79, 0x7a, 0xd6, 0x97, 0x51, 0x67, 0xb5, 0xba, 0x1a, 0x29, 0xc7, 0xb7, 0x51, 0x3c,
- 0x09, 0xa6, 0xf8, 0x18, 0x7e, 0xcf, 0xa5, 0x45, 0xf9, 0x4b, 0x42, 0xc0, 0x49, 0x66, 0x30, 0x29,
- 0x04, 0x9c, 0x65, 0x64, 0x22, 0x32, 0x09, 0x63, 0x18, 0x5e, 0x39, 0xd8, 0x4a, 0x31, 0x95, 0x18,
- 0x42, 0xa3, 0x12, 0x2f, 0x4d, 0x78, 0x44, 0x66, 0xf6, 0x71, 0xb5, 0xba, 0x40, 0x6b, 0xc9, 0x12,
- 0xe7, 0x5e, 0x03, 0x92, 0x6c, 0xf3, 0xae, 0xae, 0x4d, 0xfe, 0x2f, 0x69, 0x5f, 0x77, 0xd4, 0x1d,
- 0x5f, 0x0e, 0x62, 0xb6, 0x8b, 0xa4, 0x0e, 0xeb, 0x7d, 0x37, 0x53, 0x87, 0x15, 0x0e, 0x34, 0x75,
- 0x98, 0xfa, 0xab, 0x19, 0x18, 0x4b, 0xc4, 0x19, 0x27, 0xcf, 0x00, 0x70, 0x88, 0x14, 0xcf, 0x11,
- 0x03, 0xa4, 0x84, 0xb1, 0xc7, 0xc5, 0x1a, 0x18, 0x92, 0x91, 0x6b, 0xd0, 0xcf, 0x7f, 0x89, 0x18,
- 0x4c, 0xc9, 0x22, 0xed, 0xb6, 0x69, 0x68, 0x01, 0x51, 0x58, 0x0b, 0x5e, 0x1c, 0xe6, 0x52, 0x8b,
- 0x78, 0x1b, 0xad, 0xa0, 0x16, 0x46, 0xa6, 0x7e, 0x3e, 0x0b, 0x43, 0x41, 0x83, 0x4b, 0xc6, 0x61,
- 0xe9, 0x5c, 0x41, 0x84, 0x6c, 0xcf, 0x6d, 0x17, 0xb2, 0x3d, 0x36, 0xa9, 0x8a, 0x18, 0xed, 0x07,
- 0xf7, 0xee, 0xe9, 0x8b, 0x59, 0x38, 0x11, 0xd4, 0x7a, 0x88, 0x77, 0x54, 0xef, 0x21, 0x91, 0x7c,
- 0x21, 0x03, 0xca, 0xb8, 0xd9, 0x68, 0x98, 0xd6, 0x4a, 0xc5, 0x5a, 0xb6, 0x9d, 0x26, 0xce, 0x7a,
- 0x87, 0x77, 0x4e, 0xab, 0xfe, 0x50, 0x06, 0xc6, 0x44, 0x83, 0x26, 0x74, 0xc7, 0x38, 0xbc, 0x43,
- 0xb0, 0x78, 0x4b, 0x0e, 0x4f, 0x5f, 0xd4, 0xaf, 0x66, 0x01, 0x66, 0xec, 0xfa, 0xda, 0x11, 0x7f,
- 0x36, 0xf5, 0x12, 0x14, 0x78, 0x20, 0x2c, 0xa1, 0xb1, 0x63, 0xe2, 0x79, 0x10, 0xfb, 0x34, 0x8e,
- 0x18, 0x1f, 0x15, 0xf3, 0x71, 0x81, 0x07, 0xd2, 0x52, 0x32, 0x9a, 0x28, 0xc2, 0x2a, 0x65, 0x74,
- 0x62, 0xc1, 0x08, 0x2a, 0x65, 0xb0, 0x68, 0xa5, 0x5b, 0x9b, 0xc5, 0x7c, 0xc3, 0xae, 0xaf, 0x69,
- 0x48, 0xaf, 0xfe, 0x6d, 0x86, 0xcb, 0xee, 0x88, 0x3f, 0xfe, 0xf4, 0x3f, 0x3f, 0xbf, 0xcb, 0xcf,
- 0xff, 0xe1, 0x0c, 0x9c, 0xd2, 0x68, 0xdd, 0xbe, 0x47, 0x9d, 0x8d, 0x09, 0xdb, 0xa0, 0x37, 0xa9,
- 0x45, 0x9d, 0xc3, 0x1a, 0x51, 0xff, 0x2b, 0xe6, 0xb8, 0x08, 0x1b, 0x73, 0xdb, 0xa5, 0xc6, 0xd1,
- 0xc9, 0x3f, 0xa2, 0xfe, 0x46, 0x1f, 0x28, 0xa9, 0xa6, 0xed, 0x91, 0x35, 0xe7, 0x3a, 0xee, 0x57,
- 0xf2, 0x07, 0xb5, 0x5f, 0xe9, 0xdd, 0xdd, 0x7e, 0xa5, 0xb0, 0xdb, 0xfd, 0x4a, 0xdf, 0x4e, 0xf6,
- 0x2b, 0xcd, 0xf8, 0x7e, 0xa5, 0x1f, 0xf7, 0x2b, 0xcf, 0x74, 0xdd, 0xaf, 0x4c, 0x5a, 0xc6, 0x1e,
- 0x77, 0x2b, 0x47, 0x36, 0x37, 0xee, 0x5e, 0xb6, 0x59, 0x97, 0xd9, 0xa4, 0x58, 0xb7, 0x1d, 0x83,
- 0x1a, 0x62, 0x77, 0x85, 0x47, 0xfb, 0x8e, 0x80, 0x69, 0x01, 0x36, 0x91, 0x68, 0x78, 0x78, 0x27,
- 0x89, 0x86, 0x0f, 0x60, 0xff, 0xf5, 0xb9, 0x2c, 0x8c, 0x4d, 0x50, 0xc7, 0xe3, 0x91, 0x36, 0x0f,
- 0xc2, 0x73, 0xad, 0x04, 0x27, 0x24, 0x86, 0x68, 0x91, 0x67, 0x43, 0x6f, 0xbc, 0x3a, 0x75, 0xbc,
- 0xb8, 0x33, 0x5f, 0x9c, 0x9e, 0x55, 0xef, 0x27, 0xfb, 0x12, 0x63, 0x37, 0xa8, 0xde, 0x87, 0x73,
- 0x41, 0x9a, 0xe2, 0x97, 0x16, 0xd0, 0x4b, 0xf9, 0xbb, 0xf2, 0xbb, 0xcf, 0xdf, 0xa5, 0xfe, 0x4a,
- 0x06, 0x2e, 0x69, 0xd4, 0xa2, 0xeb, 0xfa, 0x52, 0x83, 0x4a, 0xcd, 0x12, 0x2b, 0x03, 0x9b, 0x35,
- 0x4c, 0xb7, 0xa9, 0x7b, 0xf5, 0xd5, 0x7d, 0xc9, 0x68, 0x0a, 0x86, 0xe4, 0xf9, 0x6b, 0x17, 0x73,
- 0x5b, 0xa4, 0x9c, 0xfa, 0x1b, 0x79, 0xe8, 0x1b, 0xb7, 0xbd, 0xd7, 0xed, 0x7d, 0x26, 0x94, 0x0b,
- 0xa7, 0xfc, 0xec, 0x2e, 0x0e, 0x74, 0x3e, 0x88, 0x95, 0x4b, 0x31, 0xf6, 0xd1, 0xd3, 0x73, 0xc9,
- 0x4e, 0xe4, 0x22, 0xf0, 0xc9, 0x76, 0x99, 0x4a, 0xee, 0x39, 0x18, 0xc0, 0x20, 0x2d, 0xd2, 0x91,
- 0x2b, 0xfa, 0x51, 0x7b, 0x0c, 0x18, 0xaf, 0x23, 0x24, 0x25, 0x1f, 0x8b, 0x84, 0x06, 0x2d, 0xec,
- 0x3f, 0xf5, 0x9c, 0x1c, 0x25, 0xf4, 0x19, 0x7e, 0x5b, 0x87, 0x6d, 0x92, 0xd2, 0x74, 0xe0, 0x51,
- 0x49, 0xac, 0x49, 0x01, 0xe1, 0x01, 0xa6, 0x85, 0x9b, 0x80, 0xe1, 0x71, 0xdb, 0x93, 0x7c, 0x76,
- 0x07, 0xc2, 0xd7, 0x9a, 0x4c, 0xf2, 0xe9, 0x0e, 0xbb, 0xd1, 0x32, 0xea, 0xb7, 0xf3, 0x30, 0xe4,
- 0xff, 0x3c, 0x24, 0xdd, 0x79, 0x0a, 0x0a, 0xd3, 0xb6, 0x94, 0xa9, 0x00, 0xfd, 0x7c, 0x57, 0x6d,
- 0x37, 0xe6, 0xc0, 0x2c, 0x88, 0x98, 0xd4, 0xe7, 0x6c, 0x43, 0xf6, 0x52, 0x47, 0xa9, 0x5b, 0xb6,
- 0x91, 0x78, 0xe5, 0x1b, 0x10, 0x92, 0x4b, 0x90, 0x47, 0x07, 0x7f, 0xe9, 0xb4, 0x3e, 0xe6, 0xd4,
- 0x8f, 0x78, 0x49, 0x2b, 0x0b, 0xbb, 0xd5, 0xca, 0xbe, 0xbd, 0x6a, 0x65, 0xff, 0xc1, 0x6a, 0xe5,
- 0x9b, 0x30, 0x84, 0x35, 0xf9, 0x89, 0xce, 0xb6, 0x5f, 0x58, 0x1f, 0x12, 0x6b, 0xdf, 0x30, 0x6f,
- 0xb7, 0x48, 0x77, 0x86, 0x4b, 0x5e, 0x84, 0x55, 0x4c, 0x77, 0x61, 0x1f, 0xdb, 0xe9, 0x3f, 0xcd,
- 0x40, 0xdf, 0x6d, 0x6b, 0xcd, 0xb2, 0xd7, 0xf7, 0xa7, 0x71, 0xcf, 0xc0, 0xa0, 0x60, 0x23, 0xad,
- 0x2e, 0xf8, 0x70, 0xbb, 0xcd, 0xc1, 0x35, 0xe4, 0xa4, 0xc9, 0x54, 0xe4, 0xe5, 0xa0, 0x10, 0xbe,
- 0xe1, 0xc9, 0x85, 0xb9, 0x3e, 0xfc, 0x42, 0xf5, 0x68, 0x7a, 0x02, 0x99, 0x9c, 0x9c, 0x87, 0x7c,
- 0x99, 0x35, 0x55, 0x0a, 0x76, 0xcb, 0x9a, 0xa2, 0x21, 0x54, 0xfd, 0x5c, 0x1e, 0x46, 0x62, 0x07,
- 0x5f, 0x4f, 0xc0, 0x80, 0x38, 0x78, 0x32, 0xfd, 0x7c, 0x09, 0xf8, 0xc6, 0x27, 0x00, 0x6a, 0xfd,
- 0xfc, 0xcf, 0x8a, 0x41, 0x3e, 0x0c, 0x7d, 0xb6, 0x8b, 0x8b, 0x22, 0x7e, 0xcb, 0x48, 0x38, 0x84,
- 0xe6, 0xab, 0xac, 0xed, 0x7c, 0x70, 0x08, 0x12, 0x59, 0x23, 0x6d, 0x17, 0x3f, 0xed, 0x06, 0x0c,
- 0xe8, 0xae, 0x4b, 0xbd, 0x9a, 0xa7, 0xaf, 0xc8, 0x29, 0x14, 0x02, 0xa0, 0x3c, 0x3a, 0x10, 0xb8,
- 0xa8, 0xaf, 0x90, 0xd7, 0x60, 0xb8, 0xee, 0x50, 0x5c, 0x36, 0xf5, 0x06, 0x6b, 0xa5, 0x64, 0xd6,
- 0x46, 0x10, 0xf2, 0x25, 0x49, 0x88, 0xa8, 0x18, 0xe4, 0x0e, 0x0c, 0x8b, 0xcf, 0xe1, 0x0e, 0xf6,
- 0x38, 0xd0, 0x46, 0xc2, 0x65, 0x8c, 0x8b, 0x84, 0xbb, 0xd8, 0x8b, 0x77, 0x16, 0x32, 0xb9, 0xcc,
- 0xd7, 0x90, 0x48, 0xc9, 0x3c, 0x90, 0x75, 0xba, 0x54, 0xd3, 0xdb, 0xde, 0x2a, 0xab, 0x8b, 0x47,
- 0x00, 0x17, 0x99, 0x03, 0xf1, 0x71, 0x42, 0x12, 0x2b, 0xbf, 0xd9, 0x58, 0xa7, 0x4b, 0xa5, 0x08,
- 0x92, 0xdc, 0x85, 0xd3, 0xc9, 0x22, 0xec, 0x93, 0xf9, 0x0d, 0xc0, 0x63, 0x5b, 0x9b, 0xc5, 0x62,
- 0x2a, 0x81, 0xc4, 0xf6, 0x64, 0x82, 0x6d, 0xc5, 0x78, 0x3d, 0xdf, 0xdf, 0x37, 0xda, 0xaf, 0x8d,
- 0xb0, 0xb2, 0xbe, 0x09, 0x69, 0x1a, 0xea, 0x37, 0x32, 0xcc, 0x54, 0x64, 0x1f, 0x84, 0xa9, 0x93,
- 0x99, 0xae, 0x37, 0x77, 0xa9, 0xeb, 0xcd, 0x30, 0xc9, 0x61, 0xc1, 0xed, 0x32, 0xbb, 0x6a, 0x02,
- 0x4b, 0xae, 0x42, 0xc1, 0x90, 0x4f, 0xcd, 0xce, 0x44, 0x3b, 0xc1, 0xaf, 0x47, 0x13, 0x54, 0xe4,
- 0x32, 0xe4, 0xd9, 0x92, 0x15, 0xdf, 0x32, 0xcb, 0xd6, 0x85, 0x86, 0x14, 0xea, 0xf7, 0x66, 0x61,
- 0x48, 0xfa, 0x9a, 0xeb, 0xfb, 0xfa, 0x9c, 0x17, 0x77, 0xd6, 0x4c, 0xdf, 0xb3, 0x05, 0xf7, 0x52,
- 0x7e, 0x93, 0x6f, 0x04, 0xa2, 0xd8, 0xd1, 0xad, 0x93, 0x10, 0xcc, 0x73, 0xe2, 0x43, 0x0b, 0x3b,
- 0xdf, 0x3e, 0x32, 0xfa, 0xd7, 0xf3, 0xfd, 0xd9, 0xd1, 0xdc, 0xeb, 0xf9, 0xfe, 0xfc, 0x68, 0x2f,
- 0x86, 0xcb, 0xc2, 0x08, 0xd5, 0x7c, 0x6f, 0x6e, 0x2d, 0x9b, 0x2b, 0x47, 0xfc, 0x89, 0xc7, 0xc1,
- 0x86, 0x12, 0x8b, 0xc9, 0xe6, 0x88, 0xbf, 0xf7, 0x78, 0x57, 0x65, 0x73, 0x9c, 0x14, 0x51, 0xc8,
- 0xe6, 0xcf, 0x32, 0xa0, 0xa4, 0xca, 0xa6, 0x74, 0x48, 0xce, 0x0e, 0x07, 0x97, 0x1a, 0xf1, 0x5b,
- 0x59, 0x18, 0xab, 0x58, 0x1e, 0x5d, 0xe1, 0x3b, 0xc6, 0x23, 0x3e, 0x55, 0xdc, 0x82, 0x41, 0xe9,
- 0x63, 0x44, 0x9f, 0x3f, 0x1c, 0xec, 0xc7, 0x43, 0x54, 0x07, 0x4e, 0x72, 0xe9, 0x03, 0xcc, 0xa6,
- 0x1e, 0x13, 0xf2, 0x11, 0x9f, 0x73, 0x8e, 0x86, 0x90, 0x8f, 0xf8, 0xe4, 0xf5, 0x1e, 0x15, 0xf2,
- 0xbf, 0xc8, 0xc0, 0xc9, 0x94, 0xca, 0xc9, 0x25, 0xe8, 0xab, 0xb6, 0x97, 0x30, 0x3a, 0x56, 0x26,
- 0x74, 0x0b, 0x76, 0xdb, 0x4b, 0x18, 0x18, 0x4b, 0xf3, 0x91, 0x64, 0x11, 0xdf, 0xc0, 0xcf, 0x57,
- 0xca, 0x13, 0x42, 0xaa, 0xaa, 0xf4, 0x9a, 0x9f, 0x81, 0xd3, 0xbe, 0x2c, 0x78, 0x27, 0x6f, 0x9b,
- 0x46, 0x3d, 0xf6, 0x4e, 0x9e, 0x95, 0x21, 0x1f, 0x87, 0x81, 0xd2, 0xdb, 0x6d, 0x87, 0x22, 0x5f,
- 0x2e, 0xf1, 0xf7, 0x05, 0x7c, 0x7d, 0x44, 0x1a, 0x67, 0xfe, 0xe4, 0x9f, 0x51, 0xc4, 0x79, 0x87,
- 0x0c, 0xd5, 0xcf, 0x67, 0xe0, 0x5c, 0xe7, 0xd6, 0x91, 0x0f, 0x42, 0x1f, 0xdb, 0x99, 0x97, 0xb4,
- 0x39, 0xf1, 0xe9, 0x3c, 0x8d, 0xa8, 0xdd, 0xa0, 0x35, 0xdd, 0x91, 0x8d, 0x7d, 0x9f, 0x8c, 0xbc,
- 0x02, 0x83, 0x15, 0xd7, 0x6d, 0x53, 0xa7, 0xfa, 0xcc, 0x6d, 0xad, 0x22, 0xf6, 0x84, 0xb8, 0xe7,
- 0x30, 0x11, 0x5c, 0x73, 0x9f, 0x89, 0xc5, 0xbf, 0x92, 0xe9, 0xd5, 0xcf, 0x64, 0xe0, 0x7c, 0xb7,
- 0xaf, 0x22, 0xcf, 0x40, 0xff, 0x22, 0xb5, 0x74, 0xcb, 0xab, 0x94, 0x45, 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, 0x2f, 0x2c, 0x41, 0xef, 0xbc, 0x45, 0xe7, 0x97, 0xc9, 0xd3,
- 0x30, 0xc0, 0x74, 0x1f, 0x73, 0xf8, 0x8b, 0x81, 0x36, 0x26, 0x0f, 0x18, 0x44, 0x4c, 0xf7, 0x68,
- 0x21, 0x15, 0xb9, 0x21, 0x27, 0x0e, 0x17, 0xea, 0x40, 0xe4, 0x32, 0x1c, 0x33, 0xdd, 0xa3, 0xc9,
- 0x09, 0xc6, 0x6f, 0xc8, 0x09, 0x9b, 0x45, 0x67, 0x47, 0x4a, 0x71, 0x8c, 0x5f, 0x4a, 0x4c, 0x03,
- 0x33, 0x69, 0x59, 0x8d, 0xe3, 0x36, 0x41, 0x92, 0x62, 0xba, 0x47, 0x4b, 0xcf, 0x86, 0x3c, 0x24,
- 0xfb, 0x42, 0xc5, 0xaf, 0x32, 0x65, 0xdc, 0x74, 0x8f, 0x16, 0xa1, 0x25, 0xcf, 0xc3, 0xa0, 0xf8,
- 0xfd, 0xba, 0x6d, 0x5a, 0xf1, 0x40, 0x18, 0x12, 0x6a, 0xba, 0x47, 0x93, 0x29, 0xa5, 0x4a, 0x17,
- 0x1c, 0xd3, 0xf2, 0xc4, 0xf3, 0xba, 0x78, 0xa5, 0x88, 0x93, 0x2a, 0xc5, 0xdf, 0xe4, 0x15, 0x18,
- 0x0e, 0x22, 0x8c, 0xbc, 0x45, 0xeb, 0x9e, 0x38, 0xd2, 0x39, 0x1d, 0x2b, 0xcc, 0x91, 0xd3, 0x3d,
- 0x5a, 0x94, 0x9a, 0x5c, 0x86, 0x82, 0x46, 0x5d, 0xf3, 0x6d, 0xff, 0x12, 0x64, 0x44, 0x9a, 0xce,
- 0xcc, 0xb7, 0x99, 0x94, 0x04, 0x9e, 0xf5, 0x4e, 0x78, 0xeb, 0x22, 0x0e, 0x60, 0x48, 0xac, 0x96,
- 0x49, 0xcb, 0x60, 0xbd, 0x23, 0x5d, 0xb9, 0xbd, 0x16, 0xc6, 0x5d, 0x11, 0xd9, 0xda, 0x06, 0xe3,
- 0x0f, 0x5c, 0x65, 0xec, 0x74, 0x8f, 0x16, 0xa3, 0x97, 0xa4, 0x5a, 0x36, 0xdd, 0x35, 0x11, 0xea,
- 0x2e, 0x2e, 0x55, 0x86, 0x92, 0xa4, 0xca, 0x7e, 0x4a, 0x55, 0xcf, 0x51, 0x6f, 0xdd, 0x76, 0xd6,
- 0x44, 0x60, 0xbb, 0x78, 0xd5, 0x02, 0x2b, 0x55, 0x2d, 0x20, 0x72, 0xd5, 0x6c, 0x91, 0x19, 0x49,
- 0xaf, 0x5a, 0xf7, 0x74, 0xb9, 0x6a, 0xbe, 0xbf, 0xf4, 0x3b, 0x69, 0x86, 0xea, 0xf7, 0x78, 0xd2,
- 0xdc, 0x64, 0x87, 0x22, 0x4e, 0xea, 0x50, 0xfc, 0xcd, 0x2a, 0x95, 0x12, 0xa3, 0x8a, 0xac, 0xb8,
- 0x41, 0xa5, 0x12, 0x8a, 0x55, 0x2a, 0xa7, 0x50, 0xbd, 0x21, 0xe7, 0x0b, 0x55, 0xc6, 0xa2, 0x1d,
- 0x14, 0x62, 0x58, 0x07, 0x49, 0x79, 0x45, 0x8b, 0x98, 0x8b, 0x50, 0x21, 0x48, 0x3e, 0x18, 0xb4,
- 0x70, 0x62, 0x61, 0xba, 0x47, 0xc3, 0x2c, 0x85, 0x2a, 0xcf, 0x72, 0xa9, 0x9c, 0x44, 0x8a, 0x21,
- 0x9f, 0x82, 0xc1, 0xa6, 0x7b, 0x34, 0x9e, 0x01, 0xf3, 0x69, 0x29, 0x9f, 0x94, 0x72, 0x2a, 0x3a,
- 0x45, 0x04, 0x08, 0x36, 0x45, 0x84, 0x59, 0xa7, 0xa6, 0x92, 0x39, 0x97, 0x94, 0xd3, 0xd1, 0x15,
- 0x35, 0x8e, 0x9f, 0xee, 0xd1, 0x92, 0x79, 0x9a, 0x9e, 0x8f, 0xa4, 0x21, 0x52, 0xce, 0xc4, 0xa2,
- 0xcf, 0x84, 0x28, 0x26, 0x2e, 0x39, 0x61, 0xd1, 0x7c, 0x6a, 0xe2, 0x70, 0xe5, 0x6c, 0x74, 0x39,
- 0x4e, 0x21, 0x99, 0xee, 0xd1, 0x52, 0x53, 0x8e, 0x4f, 0x24, 0x92, 0x01, 0x29, 0x4a, 0xf4, 0xc6,
- 0x37, 0x86, 0x9e, 0xee, 0xd1, 0x12, 0xe9, 0x83, 0x6e, 0xc8, 0x59, 0x78, 0x94, 0x87, 0xa2, 0x9d,
- 0x18, 0x62, 0x58, 0x27, 0x4a, 0xd9, 0x7a, 0x6e, 0xc8, 0x99, 0x59, 0x94, 0x73, 0xc9, 0x52, 0xe1,
- 0xcc, 0x29, 0x65, 0x70, 0xd1, 0xd2, 0x93, 0x4d, 0x28, 0x0f, 0x8b, 0x74, 0x7f, 0xa2, 0x7c, 0x1a,
- 0xcd, 0x74, 0x8f, 0x96, 0x9e, 0xa8, 0x42, 0x4b, 0xcf, 0xd2, 0xa0, 0x9c, 0xef, 0xc6, 0x33, 0x68,
- 0x5d, 0x7a, 0x86, 0x07, 0xbd, 0x4b, 0xcc, 0x7c, 0xe5, 0x42, 0x34, 0xf4, 0x65, 0x47, 0xc2, 0xe9,
- 0x1e, 0xad, 0x4b, 0xe4, 0xfd, 0xdb, 0x1d, 0x02, 0xd8, 0x2b, 0x17, 0xa3, 0xd9, 0x3e, 0x53, 0x89,
- 0xa6, 0x7b, 0xb4, 0x0e, 0xe1, 0xef, 0x6f, 0x77, 0x88, 0x6f, 0xae, 0x14, 0xbb, 0xb2, 0x0d, 0xe4,
- 0xd1, 0x21, 0x3a, 0xfa, 0x7c, 0x6a, 0x68, 0x70, 0xe5, 0x91, 0xa8, 0xea, 0xa6, 0x90, 0x30, 0xd5,
- 0x4d, 0x0b, 0x2a, 0x3e, 0x9f, 0x1a, 0xcb, 0x5a, 0x79, 0xb4, 0x0b, 0xc3, 0xa0, 0x8d, 0xa9, 0x51,
- 0xb0, 0xe7, 0x53, 0x83, 0x49, 0x2b, 0x6a, 0x94, 0x61, 0x0a, 0x09, 0x63, 0x98, 0x16, 0x86, 0x7a,
- 0x3e, 0x35, 0xe6, 0xb0, 0xf2, 0x58, 0x17, 0x86, 0x61, 0x0b, 0xd3, 0xa2, 0x15, 0x3f, 0x1f, 0x09,
- 0xfa, 0xab, 0xbc, 0x2f, 0x3a, 0x6f, 0x48, 0x28, 0x36, 0x6f, 0xc8, 0xe1, 0x81, 0x27, 0x12, 0x61,
- 0x0d, 0x95, 0xc7, 0xa3, 0xc3, 0x3c, 0x86, 0x66, 0xc3, 0x3c, 0x1e, 0x08, 0x71, 0x22, 0x11, 0xde,
- 0x4d, 0xb9, 0xd4, 0x89, 0x09, 0xa2, 0xa3, 0x4c, 0x78, 0x40, 0xb8, 0x4a, 0x4a, 0x7c, 0x31, 0xe5,
- 0xfd, 0x51, 0x6f, 0xc5, 0x04, 0xc1, 0x74, 0x8f, 0x96, 0x12, 0x95, 0x4c, 0x4b, 0x0f, 0xa6, 0xa1,
- 0x5c, 0x8e, 0x0e, 0xdb, 0x34, 0x1a, 0x36, 0x6c, 0x53, 0x03, 0x71, 0xcc, 0xa4, 0xb9, 0x54, 0x2b,
- 0x57, 0xa2, 0x86, 0x59, 0x92, 0x82, 0x19, 0x66, 0x29, 0xae, 0xd8, 0x5a, 0x7a, 0x78, 0x08, 0xe5,
- 0x89, 0xae, 0x2d, 0x44, 0x9a, 0x94, 0x16, 0xf2, 0x68, 0x09, 0xa1, 0xed, 0x74, 0xbb, 0xd5, 0xb0,
- 0x75, 0x43, 0xf9, 0x40, 0xaa, 0xed, 0xc4, 0x91, 0x92, 0xed, 0xc4, 0x01, 0x6c, 0x95, 0x97, 0x3d,
- 0x77, 0x95, 0x27, 0xa3, 0xab, 0xbc, 0x8c, 0x63, 0xab, 0x7c, 0xc4, 0xcb, 0x77, 0x22, 0xe1, 0xe5,
- 0xaa, 0x3c, 0x15, 0x55, 0x80, 0x18, 0x9a, 0x29, 0x40, 0xdc, 0x2f, 0xf6, 0x93, 0x9d, 0xfd, 0x42,
- 0x95, 0xab, 0xc8, 0xed, 0x11, 0x9f, 0x5b, 0x27, 0xba, 0xe9, 0x1e, 0xad, 0xb3, 0x6f, 0x69, 0x25,
- 0xc5, 0xcd, 0x53, 0xb9, 0x16, 0x55, 0xb0, 0x04, 0x01, 0x53, 0xb0, 0xa4, 0x73, 0x68, 0x25, 0xc5,
- 0x4f, 0x53, 0xf9, 0x60, 0x47, 0x56, 0xc1, 0x37, 0xa7, 0x78, 0x77, 0xde, 0x90, 0x1d, 0x2d, 0x95,
- 0xa7, 0xa3, 0x8b, 0x5d, 0x88, 0x61, 0x8b, 0x9d, 0xe4, 0x90, 0x79, 0x43, 0x76, 0x31, 0x54, 0xae,
- 0x27, 0x4b, 0x85, 0x4b, 0xa4, 0xe4, 0x8a, 0xa8, 0xa5, 0x7b, 0xe6, 0x29, 0xcf, 0x44, 0xb5, 0x2e,
- 0x8d, 0x86, 0x69, 0x5d, 0xaa, 0x57, 0xdf, 0x54, 0xd2, 0xc1, 0x4e, 0xb9, 0x11, 0x3f, 0x4b, 0x88,
- 0xe2, 0x99, 0xe5, 0x93, 0x70, 0xca, 0x7b, 0x2d, 0x1e, 0xe9, 0x49, 0x79, 0x36, 0x76, 0x99, 0x11,
- 0xc1, 0x32, 0xfb, 0x36, 0x16, 0x19, 0xea, 0xb5, 0x78, 0x70, 0x24, 0xe5, 0xb9, 0x74, 0x0e, 0x81,
- 0xae, 0xc4, 0x83, 0x29, 0xbd, 0x16, 0x8f, 0x27, 0xa4, 0x3c, 0x9f, 0xce, 0x21, 0x90, 0x6e, 0x3c,
- 0xfe, 0xd0, 0xd3, 0x52, 0x84, 0x63, 0xe5, 0x43, 0x51, 0xd3, 0x31, 0x40, 0x30, 0xd3, 0x31, 0x8c,
- 0x83, 0xfc, 0xb4, 0x14, 0x19, 0x58, 0x79, 0x21, 0x51, 0x24, 0x68, 0xac, 0x14, 0x3f, 0xf8, 0x69,
- 0x29, 0xa2, 0xae, 0xf2, 0x62, 0xa2, 0x48, 0xd0, 0x3a, 0x29, 0xee, 0xae, 0xd1, 0xed, 0xe9, 0x95,
- 0xf2, 0x52, 0xf4, 0x88, 0xa3, 0x33, 0xe5, 0x74, 0x8f, 0xd6, 0xed, 0x09, 0xd7, 0x27, 0x3b, 0xbb,
- 0x2b, 0x2a, 0x2f, 0x47, 0x87, 0x70, 0x27, 0x3a, 0x36, 0x84, 0x3b, 0xba, 0x3c, 0xbe, 0x12, 0x7b,
- 0x86, 0xad, 0xbc, 0x12, 0x9d, 0xe2, 0x22, 0x48, 0x36, 0xc5, 0xc5, 0x1f, 0x6d, 0x47, 0xde, 0x17,
- 0x2b, 0x1f, 0x8e, 0x4e, 0x71, 0x32, 0x8e, 0x4d, 0x71, 0x91, 0xb7, 0xc8, 0x13, 0x89, 0x67, 0xaf,
- 0xca, 0xab, 0xd1, 0x29, 0x2e, 0x86, 0x66, 0x53, 0x5c, 0xfc, 0xa1, 0xec, 0x2b, 0xb1, 0xd7, 0x9f,
- 0xca, 0x6b, 0xe9, 0xed, 0x47, 0xa4, 0xdc, 0x7e, 0xfe, 0x56, 0x54, 0x4b, 0x7f, 0xc6, 0xa8, 0x94,
- 0xa2, 0xe3, 0x37, 0x8d, 0x86, 0x8d, 0xdf, 0xd4, 0x27, 0x90, 0xf1, 0x8d, 0x83, 0xd0, 0xaa, 0xf1,
- 0x2e, 0x1b, 0x87, 0xd0, 0x14, 0x49, 0x01, 0x47, 0xf6, 0xc8, 0x7c, 0x23, 0x34, 0xd1, 0x61, 0x8f,
- 0xec, 0x6f, 0x83, 0x62, 0xf4, 0x6c, 0x76, 0x4d, 0x78, 0xcf, 0x29, 0xe5, 0xe8, 0xec, 0x9a, 0x20,
- 0x60, 0xb3, 0x6b, 0xd2, 0xe7, 0x6e, 0x0a, 0x46, 0x85, 0x16, 0x71, 0xa7, 0x40, 0xd3, 0x5a, 0x51,
- 0x26, 0x63, 0xaf, 0x88, 0x62, 0x78, 0x36, 0x3b, 0xc5, 0x61, 0xb8, 0x5e, 0x73, 0xd8, 0x44, 0xc3,
- 0x6c, 0x2d, 0xd9, 0xba, 0x63, 0x54, 0xa9, 0x65, 0x28, 0x53, 0xb1, 0xf5, 0x3a, 0x85, 0x06, 0xd7,
- 0xeb, 0x14, 0x38, 0x46, 0x37, 0x8a, 0xc1, 0x35, 0x5a, 0xa7, 0xe6, 0x3d, 0xaa, 0xdc, 0x44, 0xb6,
- 0xc5, 0x4e, 0x6c, 0x05, 0xd9, 0x74, 0x8f, 0xd6, 0x89, 0x03, 0xb3, 0xd5, 0x67, 0x37, 0xaa, 0x6f,
- 0xcc, 0x04, 0x2f, 0x67, 0x17, 0x1c, 0xda, 0xd2, 0x1d, 0xaa, 0x4c, 0x47, 0x6d, 0xf5, 0x54, 0x22,
- 0x66, 0xab, 0xa7, 0x22, 0x92, 0x6c, 0xfd, 0xb1, 0x50, 0xe9, 0xc6, 0x36, 0x1c, 0x11, 0xe9, 0xa5,
- 0xd9, 0xec, 0x14, 0x45, 0x30, 0x01, 0xcd, 0xd8, 0xd6, 0x0a, 0x9e, 0x54, 0xbc, 0x1e, 0x9d, 0x9d,
- 0x3a, 0x53, 0xb2, 0xd9, 0xa9, 0x33, 0x96, 0xa9, 0x7a, 0x14, 0xcb, 0xc7, 0xe0, 0xad, 0xa8, 0xaa,
- 0xa7, 0x90, 0x30, 0x55, 0x4f, 0x01, 0x27, 0x19, 0x6a, 0xd4, 0xa5, 0x9e, 0x32, 0xd3, 0x8d, 0x21,
- 0x92, 0x24, 0x19, 0x22, 0x38, 0xc9, 0x70, 0x8a, 0x7a, 0xf5, 0x55, 0x65, 0xb6, 0x1b, 0x43, 0x24,
- 0x49, 0x32, 0x44, 0x30, 0xdb, 0x6c, 0x46, 0xc1, 0xe3, 0xed, 0xc6, 0x9a, 0xdf, 0x67, 0x73, 0xd1,
- 0xcd, 0x66, 0x47, 0x42, 0xb6, 0xd9, 0xec, 0x88, 0x24, 0x9f, 0xd9, 0xb1, 0x77, 0xa7, 0x32, 0x8f,
- 0x15, 0x5e, 0x0d, 0xed, 0x82, 0x9d, 0x94, 0x9a, 0xee, 0xd1, 0x76, 0xea, 0x3d, 0xfa, 0x81, 0xc0,
- 0x15, 0x4a, 0x59, 0xc0, 0xaa, 0x4e, 0x04, 0x67, 0x15, 0x1c, 0x3c, 0xdd, 0xa3, 0x05, 0xce, 0x52,
- 0xcf, 0xc3, 0x20, 0x7e, 0x54, 0xc5, 0x32, 0xbd, 0xf2, 0xb8, 0xf2, 0x46, 0x74, 0xcb, 0x24, 0xa1,
- 0xd8, 0x96, 0x49, 0xfa, 0xc9, 0x26, 0x71, 0xfc, 0xc9, 0xa7, 0x98, 0xf2, 0xb8, 0xa2, 0x45, 0x27,
- 0xf1, 0x08, 0x92, 0x4d, 0xe2, 0x11, 0x40, 0x50, 0x6f, 0xd9, 0xb1, 0x5b, 0xe5, 0x71, 0xa5, 0x9a,
- 0x52, 0x2f, 0x47, 0x05, 0xf5, 0xf2, 0x9f, 0x41, 0xbd, 0xd5, 0xd5, 0xb6, 0x57, 0x66, 0xdf, 0xb8,
- 0x98, 0x52, 0xaf, 0x8f, 0x0c, 0xea, 0xf5, 0x01, 0x6c, 0x2a, 0x44, 0xc0, 0x82, 0x63, 0xb3, 0x49,
- 0xfb, 0x96, 0xd9, 0x68, 0x28, 0xb7, 0xa3, 0x53, 0x61, 0x1c, 0xcf, 0xa6, 0xc2, 0x38, 0x8c, 0x99,
- 0x9e, 0xbc, 0x55, 0x74, 0xa9, 0xbd, 0xa2, 0xdc, 0x89, 0x9a, 0x9e, 0x21, 0x86, 0x99, 0x9e, 0xe1,
- 0x2f, 0xdc, 0x5d, 0xb0, 0x5f, 0x1a, 0x5d, 0x76, 0xa8, 0xbb, 0xaa, 0xdc, 0x8d, 0xed, 0x2e, 0x24,
- 0x1c, 0xee, 0x2e, 0xa4, 0xdf, 0x64, 0x05, 0x1e, 0x8e, 0x2c, 0x34, 0xfe, 0xdd, 0x53, 0x95, 0xea,
- 0x4e, 0x7d, 0x55, 0xf9, 0x08, 0xb2, 0x7a, 0x2c, 0x75, 0xa9, 0x8a, 0x92, 0x4e, 0xf7, 0x68, 0xdd,
- 0x38, 0xe1, 0xb6, 0xfc, 0x8d, 0x19, 0x1e, 0x86, 0x50, 0x5b, 0x98, 0xf0, 0x37, 0xa1, 0x6f, 0xc6,
- 0xb6, 0xe5, 0x49, 0x12, 0xdc, 0x96, 0x27, 0xc1, 0xa4, 0x05, 0x17, 0x63, 0x5b, 0xb5, 0x59, 0xbd,
- 0xc1, 0xf6, 0x25, 0xd4, 0x58, 0xd0, 0xeb, 0x6b, 0xd4, 0x53, 0x3e, 0x8a, 0xbc, 0x2f, 0x75, 0xd8,
- 0xf0, 0xc5, 0xa8, 0xa7, 0x7b, 0xb4, 0x6d, 0xf8, 0x11, 0x15, 0xf2, 0xd5, 0xa9, 0xc5, 0x05, 0xe5,
- 0x63, 0xd1, 0xf3, 0x4d, 0x06, 0x9b, 0xee, 0xd1, 0x10, 0xc7, 0xac, 0xb4, 0xdb, 0xad, 0x15, 0x47,
- 0x37, 0x28, 0x37, 0xb4, 0xd0, 0x76, 0x13, 0x06, 0xe8, 0xc7, 0xa3, 0x56, 0x5a, 0x27, 0x3a, 0x66,
- 0xa5, 0x75, 0xc2, 0x31, 0x45, 0x8d, 0x44, 0xdc, 0x57, 0x3e, 0x11, 0x55, 0xd4, 0x08, 0x92, 0x29,
- 0x6a, 0x34, 0x3e, 0xff, 0x47, 0xe0, 0x4c, 0xb0, 0x9f, 0x17, 0xeb, 0x2f, 0xef, 0x34, 0xe5, 0x93,
- 0xc8, 0xe7, 0x62, 0xe2, 0x32, 0x20, 0x42, 0x35, 0xdd, 0xa3, 0x75, 0x28, 0xcf, 0x56, 0xdc, 0x44,
- 0x32, 0x19, 0x61, 0x5e, 0x7c, 0x4f, 0x74, 0xc5, 0xed, 0x40, 0xc6, 0x56, 0xdc, 0x0e, 0xa8, 0x54,
- 0xe6, 0x42, 0xa8, 0xfa, 0x36, 0xcc, 0x03, 0x99, 0x76, 0xe2, 0x90, 0xca, 0x5c, 0x58, 0x6a, 0x4b,
- 0xdb, 0x30, 0x0f, 0xac, 0xb5, 0x4e, 0x1c, 0xc8, 0x65, 0x28, 0x54, 0xab, 0xb3, 0x5a, 0xdb, 0x52,
- 0xea, 0x31, 0x1f, 0x30, 0x84, 0x4e, 0xf7, 0x68, 0x02, 0xcf, 0xcc, 0xa0, 0xc9, 0x86, 0xee, 0x7a,
- 0x66, 0xdd, 0xc5, 0x11, 0xe3, 0x8f, 0x10, 0x23, 0x6a, 0x06, 0xa5, 0xd1, 0x30, 0x33, 0x28, 0x0d,
- 0xce, 0xec, 0xc5, 0x09, 0xdd, 0x75, 0x75, 0xcb, 0x70, 0xf4, 0x71, 0x5c, 0x26, 0x68, 0xec, 0x8d,
- 0x41, 0x04, 0xcb, 0xec, 0xc5, 0x28, 0x04, 0x0f, 0xdf, 0x7d, 0x88, 0x6f, 0xe6, 0x2c, 0xc7, 0x0e,
- 0xdf, 0x63, 0x78, 0x3c, 0x7c, 0x8f, 0xc1, 0xd0, 0xee, 0xf4, 0x61, 0x1a, 0x5d, 0x31, 0x99, 0x88,
- 0x94, 0x95, 0x98, 0xdd, 0x19, 0x27, 0x40, 0xbb, 0x33, 0x0e, 0x8c, 0x34, 0xc9, 0x5f, 0x6e, 0x57,
- 0x3b, 0x34, 0x29, 0x5c, 0x65, 0x13, 0x65, 0xd8, 0xfa, 0x1d, 0x0e, 0x8e, 0xf2, 0x86, 0xa5, 0x37,
- 0xed, 0xf2, 0xb8, 0x2f, 0x75, 0x33, 0xba, 0x7e, 0x77, 0x24, 0x64, 0xeb, 0x77, 0x47, 0x24, 0x9b,
- 0x5d, 0xfd, 0x8d, 0xd6, 0xaa, 0xee, 0x50, 0xa3, 0x6c, 0x3a, 0x78, 0xb2, 0xb8, 0xc1, 0xb7, 0x86,
- 0x6f, 0x45, 0x67, 0xd7, 0x2e, 0xa4, 0x6c, 0x76, 0xed, 0x82, 0x66, 0x46, 0x5e, 0x3a, 0x5a, 0xa3,
- 0xba, 0xa1, 0xac, 0x45, 0x8d, 0xbc, 0xce, 0x94, 0xcc, 0xc8, 0xeb, 0x8c, 0xed, 0xfc, 0x39, 0x77,
- 0x1d, 0xd3, 0xa3, 0x4a, 0x63, 0x27, 0x9f, 0x83, 0xa4, 0x9d, 0x3f, 0x07, 0xd1, 0x6c, 0x43, 0x18,
- 0xef, 0x90, 0x66, 0x74, 0x43, 0x98, 0xec, 0x86, 0x78, 0x09, 0x66, 0xb1, 0x88, 0xa7, 0x26, 0x8a,
- 0x15, 0xb5, 0x58, 0x04, 0x98, 0x59, 0x2c, 0xe1, 0x63, 0x94, 0xc8, 0x03, 0x03, 0xc5, 0x8e, 0xae,
- 0xa1, 0x32, 0x8e, 0xad, 0xa1, 0x91, 0xc7, 0x08, 0xcf, 0x47, 0xbc, 0x67, 0x95, 0x56, 0xd4, 0xea,
- 0x90, 0x50, 0xcc, 0xea, 0x90, 0xfd, 0x6c, 0x27, 0xe0, 0x04, 0xde, 0x82, 0x6b, 0xed, 0xe0, 0x1e,
- 0xe7, 0x53, 0xd1, 0xcf, 0x8c, 0xa1, 0xd9, 0x67, 0xc6, 0x40, 0x11, 0x26, 0x62, 0xda, 0x72, 0x3a,
- 0x30, 0x09, 0xcf, 0x07, 0x63, 0x20, 0x32, 0x03, 0xa4, 0x5a, 0x9a, 0x9d, 0xa9, 0x18, 0x0b, 0xf2,
- 0x15, 0x99, 0x1b, 0x3d, 0x81, 0x4d, 0x52, 0x4c, 0xf7, 0x68, 0x29, 0xe5, 0xc8, 0x5b, 0x70, 0x5e,
- 0x40, 0xc5, 0x3b, 0x42, 0xcc, 0x39, 0x6d, 0x04, 0x0b, 0x82, 0x17, 0xf5, 0xce, 0xe8, 0x46, 0x3b,
- 0xdd, 0xa3, 0x75, 0xe5, 0xd5, 0xb9, 0x2e, 0xb1, 0x3e, 0xb4, 0x77, 0x52, 0x57, 0xb0, 0x48, 0x74,
- 0xe5, 0xd5, 0xb9, 0x2e, 0x21, 0xf7, 0x7b, 0x3b, 0xa9, 0x2b, 0xe8, 0x84, 0xae, 0xbc, 0x88, 0x0b,
- 0xc5, 0x6e, 0xf8, 0x52, 0xa3, 0xa1, 0xac, 0x63, 0x75, 0xef, 0xdf, 0x49, 0x75, 0x25, 0x34, 0x38,
- 0xb7, 0xe3, 0xc8, 0x66, 0xe9, 0xf9, 0x16, 0xb5, 0xaa, 0x91, 0x05, 0xe8, 0x7e, 0x74, 0x96, 0x4e,
- 0x10, 0xb0, 0x59, 0x3a, 0x01, 0x64, 0x03, 0x4a, 0x76, 0xc2, 0x56, 0x36, 0xa2, 0x03, 0x4a, 0xc6,
- 0xb1, 0x01, 0x15, 0x71, 0xd8, 0x9e, 0x87, 0x93, 0xf3, 0x6b, 0x9e, 0xee, 0x5b, 0x90, 0xae, 0xe8,
- 0xca, 0xb7, 0x63, 0x97, 0x4c, 0x49, 0x12, 0xbc, 0x64, 0x4a, 0x82, 0xd9, 0x18, 0x61, 0xe0, 0xea,
- 0x86, 0x55, 0x9f, 0xd2, 0xcd, 0x46, 0xdb, 0xa1, 0xca, 0x7f, 0x14, 0x1d, 0x23, 0x31, 0x34, 0x1b,
- 0x23, 0x31, 0x10, 0x5b, 0xa0, 0x19, 0xa8, 0xe4, 0xba, 0xe6, 0x8a, 0x25, 0xf6, 0x95, 0xed, 0x86,
- 0xa7, 0xfc, 0xc7, 0xd1, 0x05, 0x3a, 0x8d, 0x86, 0x2d, 0xd0, 0x69, 0x70, 0x3c, 0x75, 0x4a, 0xc9,
- 0xc7, 0xae, 0xfc, 0x27, 0xb1, 0x53, 0xa7, 0x14, 0x1a, 0x3c, 0x75, 0x4a, 0xcb, 0xe5, 0x3e, 0x05,
- 0xa3, 0xdc, 0x26, 0x9b, 0x31, 0x83, 0xbb, 0xea, 0xff, 0x34, 0xba, 0x3e, 0xc6, 0xf1, 0x6c, 0x7d,
- 0x8c, 0xc3, 0xa2, 0x7c, 0x44, 0x17, 0xfc, 0x67, 0x9d, 0xf8, 0x04, 0xf2, 0x4f, 0x94, 0x21, 0x37,
- 0x65, 0x3e, 0x62, 0xa4, 0x7c, 0x6f, 0xa6, 0x13, 0xa3, 0x60, 0x78, 0x24, 0x0a, 0x45, 0x19, 0x69,
- 0xf4, 0x9e, 0x49, 0xd7, 0x95, 0x4f, 0x77, 0x64, 0xc4, 0x09, 0xa2, 0x8c, 0x38, 0x8c, 0xbc, 0x09,
- 0x67, 0x42, 0xd8, 0x2c, 0x6d, 0x2e, 0x05, 0x33, 0xd3, 0xf7, 0x65, 0xa2, 0x66, 0x70, 0x3a, 0x19,
- 0x33, 0x83, 0xd3, 0x31, 0x69, 0xac, 0x85, 0xe8, 0xfe, 0xf3, 0x6d, 0x58, 0x07, 0x12, 0xec, 0xc0,
- 0x20, 0x8d, 0xb5, 0x90, 0xe6, 0xf7, 0x6f, 0xc3, 0x3a, 0x90, 0x69, 0x07, 0x06, 0xe4, 0xb3, 0x19,
- 0xb8, 0x94, 0x8e, 0x2a, 0x35, 0x1a, 0x53, 0xb6, 0x13, 0xe2, 0x94, 0x1f, 0xc8, 0x44, 0x0f, 0x1a,
- 0x76, 0x56, 0x6c, 0xba, 0x47, 0xdb, 0x61, 0x05, 0xe4, 0xc3, 0x30, 0x5c, 0x6a, 0x1b, 0xa6, 0x87,
- 0x17, 0x6f, 0xcc, 0x70, 0xfe, 0xc1, 0x4c, 0x6c, 0x8b, 0x23, 0x63, 0x71, 0x8b, 0x23, 0x03, 0xc8,
- 0xeb, 0x30, 0x56, 0xa5, 0xf5, 0xb6, 0x63, 0x7a, 0x1b, 0x1a, 0xe6, 0xda, 0x67, 0x3c, 0x7e, 0x28,
- 0x13, 0x9d, 0xc4, 0x12, 0x14, 0x6c, 0x12, 0x4b, 0x00, 0xc9, 0x9d, 0x0e, 0x19, 0xd9, 0x95, 0xcf,
- 0x64, 0xba, 0x5e, 0xcb, 0x07, 0x7d, 0xd9, 0x21, 0xa1, 0xfb, 0x42, 0x6a, 0x86, 0x6b, 0xe5, 0xb3,
- 0x99, 0x2e, 0xd7, 0xe8, 0xd2, 0x0c, 0x97, 0x92, 0x1c, 0x7b, 0x21, 0x35, 0xfd, 0xb0, 0xf2, 0xc3,
- 0x99, 0x2e, 0xd7, 0xde, 0x21, 0xc7, 0xb4, 0xcc, 0xc5, 0xcf, 0x72, 0x4f, 0x11, 0xc1, 0xe8, 0xbf,
- 0xc8, 0x24, 0x5d, 0x45, 0x82, 0xf2, 0x12, 0x21, 0x2b, 0x76, 0xdb, 0x0d, 0x94, 0xfe, 0x73, 0x99,
- 0xa4, 0x6f, 0x5e, 0x58, 0x2c, 0xfc, 0x45, 0x28, 0x9c, 0x9b, 0xbc, 0xef, 0x51, 0xc7, 0xd2, 0x1b,
- 0xd8, 0x9d, 0x55, 0xcf, 0x76, 0xf4, 0x15, 0x3a, 0x69, 0xe9, 0x4b, 0x0d, 0xaa, 0x7c, 0x3e, 0x13,
- 0xb5, 0x60, 0x3b, 0x93, 0x32, 0x0b, 0xb6, 0x33, 0x96, 0xac, 0xc2, 0xc3, 0x69, 0xd8, 0xb2, 0xe9,
- 0x62, 0x3d, 0x5f, 0xc8, 0x44, 0x4d, 0xd8, 0x2e, 0xb4, 0xcc, 0x84, 0xed, 0x82, 0x26, 0xd7, 0x61,
- 0x60, 0xdc, 0xf6, 0xa7, 0xdf, 0x1f, 0x89, 0x39, 0x43, 0x06, 0x98, 0xe9, 0x1e, 0x2d, 0x24, 0x13,
- 0x65, 0xc4, 0xa0, 0xfe, 0x62, 0xb2, 0x4c, 0x78, 0xf9, 0x14, 0xfc, 0x10, 0x65, 0x84, 0xb8, 0xff,
- 0xcb, 0x64, 0x99, 0xf0, 0x8e, 0x2b, 0xf8, 0xc1, 0x66, 0x12, 0x5e, 0xe3, 0xec, 0x54, 0x89, 0xd9,
- 0x6d, 0x13, 0xab, 0x7a, 0xa3, 0x41, 0xad, 0x15, 0xaa, 0x7c, 0x29, 0x36, 0x93, 0xa4, 0x93, 0xb1,
- 0x99, 0x24, 0x1d, 0x43, 0x3e, 0x0e, 0x67, 0xef, 0xe8, 0x0d, 0xd3, 0x08, 0x71, 0x7e, 0x32, 0x5a,
- 0xe5, 0x47, 0x33, 0xd1, 0xdd, 0x74, 0x07, 0x3a, 0xb6, 0x9b, 0xee, 0x80, 0x22, 0xb3, 0x40, 0x70,
- 0x19, 0x0d, 0x66, 0x0b, 0xb6, 0x3e, 0x2b, 0xff, 0x55, 0x26, 0x6a, 0xa7, 0x26, 0x49, 0x98, 0x9d,
- 0x9a, 0x84, 0x92, 0x5a, 0xe7, 0xa8, 0xf6, 0xca, 0x8f, 0x65, 0xa2, 0xa7, 0x35, 0x9d, 0x08, 0xa7,
- 0x7b, 0xb4, 0xce, 0xa1, 0xf1, 0x6f, 0xc2, 0x68, 0x75, 0xa1, 0x32, 0x35, 0x35, 0x59, 0xbd, 0x53,
- 0x29, 0xa3, 0xfb, 0xae, 0xa1, 0xfc, 0x78, 0x6c, 0xc5, 0x8a, 0x13, 0xb0, 0x15, 0x2b, 0x0e, 0x23,
- 0x2f, 0xc1, 0x10, 0x6b, 0x3f, 0x1b, 0x30, 0xf8, 0xc9, 0x5f, 0xce, 0x44, 0xcd, 0x29, 0x19, 0xc9,
- 0xcc, 0x29, 0xf9, 0x37, 0xa9, 0xc2, 0x29, 0x26, 0xc5, 0x05, 0x87, 0x2e, 0x53, 0x87, 0x5a, 0x75,
- 0x7f, 0x4c, 0xff, 0x44, 0x26, 0x6a, 0x65, 0xa4, 0x11, 0x31, 0x2b, 0x23, 0x0d, 0x4e, 0xd6, 0xe0,
- 0x7c, 0xfc, 0x24, 0x48, 0x7e, 0x4c, 0xa5, 0xfc, 0x64, 0x26, 0x66, 0x0c, 0x77, 0x21, 0x46, 0x63,
- 0xb8, 0x0b, 0x9e, 0x58, 0x70, 0x41, 0x1c, 0xab, 0x08, 0x87, 0xcb, 0x78, 0x6d, 0xff, 0x35, 0xaf,
- 0xed, 0xf1, 0xd0, 0x21, 0xb0, 0x0b, 0xf5, 0x74, 0x8f, 0xd6, 0x9d, 0x1d, 0xd3, 0xb3, 0x64, 0xec,
- 0x76, 0xe5, 0xa7, 0x32, 0xe9, 0x1e, 0x29, 0x11, 0x37, 0xe5, 0xb4, 0xa0, 0xef, 0x6f, 0x76, 0x8a,
- 0x3c, 0xae, 0xfc, 0x74, 0x6c, 0xbc, 0xa5, 0x93, 0xb1, 0xf1, 0xd6, 0x21, 0x74, 0xf9, 0xeb, 0x30,
- 0xc6, 0x95, 0x7a, 0x41, 0xc7, 0x61, 0x68, 0xad, 0x50, 0x43, 0xf9, 0x6f, 0x62, 0xab, 0x5d, 0x82,
- 0x02, 0x5d, 0x7b, 0xe2, 0x40, 0x36, 0x75, 0x57, 0x5b, 0xba, 0x65, 0xe1, 0x31, 0xab, 0xf2, 0xdf,
- 0xc6, 0xa6, 0xee, 0x10, 0x85, 0x8e, 0xbb, 0xc1, 0x2f, 0xa6, 0x09, 0xdd, 0xb2, 0x76, 0x28, 0x3f,
- 0x13, 0xd3, 0x84, 0x6e, 0xc4, 0x4c, 0x13, 0xba, 0xa6, 0x00, 0xb9, 0xd3, 0xe1, 0x61, 0xa3, 0xf2,
- 0x95, 0xd8, 0x8a, 0x9c, 0x4a, 0xc5, 0x56, 0xe4, 0xf4, 0x77, 0x91, 0x77, 0x3a, 0x3c, 0x0a, 0x54,
- 0x7e, 0xb6, 0x3b, 0xdf, 0x70, 0xa5, 0x4f, 0x7f, 0x53, 0x78, 0xa7, 0xc3, 0x83, 0x3a, 0xe5, 0xe7,
- 0xba, 0xf3, 0x0d, 0x1d, 0xfb, 0xd2, 0xdf, 0xe3, 0xd5, 0x3a, 0x3f, 0x46, 0x53, 0x7e, 0x3e, 0x3e,
- 0x75, 0x75, 0x20, 0xc4, 0xa9, 0xab, 0xd3, 0x8b, 0xb6, 0x25, 0x78, 0x88, 0x6b, 0xc8, 0x4d, 0x47,
- 0x6f, 0xad, 0x56, 0xa9, 0xe7, 0x99, 0xd6, 0x8a, 0xbf, 0x13, 0xfb, 0x85, 0x4c, 0xec, 0x78, 0xac,
- 0x13, 0x25, 0x1e, 0x8f, 0x75, 0x42, 0x32, 0xe5, 0x4d, 0x3c, 0x3b, 0x53, 0x7e, 0x31, 0xa6, 0xbc,
- 0x09, 0x0a, 0xa6, 0xbc, 0xc9, 0xd7, 0x6a, 0xaf, 0xa7, 0xbc, 0xae, 0x52, 0xfe, 0xbb, 0xce, 0xbc,
- 0x82, 0xf6, 0xa5, 0x3c, 0xca, 0x7a, 0x3d, 0xe5, 0x11, 0x91, 0xf2, 0xdf, 0x77, 0xe6, 0x15, 0xfa,
- 0x20, 0x25, 0x80, 0xe3, 0x7d, 0xd0, 0x8b, 0xbb, 0x5a, 0xf5, 0x2b, 0x19, 0x18, 0xaa, 0x7a, 0x0e,
- 0xd5, 0x9b, 0x22, 0xa2, 0xc4, 0x39, 0xe8, 0xe7, 0xee, 0x61, 0xfe, 0x0b, 0x0d, 0x2d, 0xf8, 0x4d,
- 0x2e, 0xc1, 0xc8, 0x8c, 0xee, 0x7a, 0x58, 0xb2, 0x62, 0x19, 0xf4, 0x3e, 0x3e, 0x8d, 0xc8, 0x69,
- 0x31, 0x28, 0x99, 0xe1, 0x74, 0xbc, 0x1c, 0x06, 0x11, 0xca, 0x6d, 0x1b, 0x48, 0xa1, 0xff, 0x9d,
- 0xcd, 0x62, 0x0f, 0xc6, 0x4d, 0x88, 0x95, 0x55, 0xbf, 0x91, 0x81, 0x84, 0xe3, 0xda, 0xde, 0x5f,
- 0x4e, 0xcd, 0xc3, 0x89, 0x58, 0xe0, 0x2a, 0xf1, 0xbe, 0x63, 0x87, 0x71, 0xad, 0xe2, 0xa5, 0xc9,
- 0xfb, 0x83, 0x77, 0x05, 0xb7, 0xb5, 0x19, 0x11, 0x24, 0xa3, 0x6f, 0x6b, 0xb3, 0x98, 0x6b, 0x3b,
- 0x0d, 0x4d, 0x42, 0x89, 0x47, 0xd0, 0xdf, 0x19, 0x0d, 0xa3, 0xf2, 0x90, 0x4b, 0xe2, 0x19, 0x57,
- 0x26, 0x0c, 0xad, 0x11, 0xcb, 0xf9, 0xc8, 0x9f, 0x6d, 0x7d, 0x18, 0x86, 0x2a, 0xcd, 0x16, 0x75,
- 0x5c, 0xdb, 0xd2, 0x3d, 0xdb, 0xcf, 0x2d, 0x8f, 0x61, 0x17, 0x4c, 0x09, 0x2e, 0x87, 0x02, 0x90,
- 0xe9, 0xc9, 0x15, 0x3f, 0x0d, 0x45, 0x0e, 0xe3, 0x21, 0x61, 0x50, 0xcf, 0x78, 0x1e, 0x41, 0x4e,
- 0xc1, 0x48, 0x6f, 0xbb, 0x3a, 0xbe, 0x40, 0x09, 0x48, 0xdb, 0x0c, 0x20, 0x93, 0x22, 0x05, 0x79,
- 0x12, 0x0a, 0x78, 0x62, 0xe7, 0x62, 0x7a, 0x19, 0x11, 0xf0, 0xa3, 0x81, 0x10, 0x39, 0xbc, 0x02,
- 0xa7, 0x21, 0xb7, 0x60, 0x34, 0xbc, 0x8e, 0xb8, 0xe9, 0xd8, 0xed, 0x96, 0x1f, 0x50, 0x1a, 0xf3,
- 0x2f, 0xae, 0x05, 0xb8, 0xda, 0x0a, 0x22, 0x25, 0x16, 0x89, 0x82, 0x64, 0x1a, 0x4e, 0x84, 0x30,
- 0x26, 0x22, 0x3f, 0x90, 0x3d, 0x26, 0x11, 0x92, 0x78, 0x31, 0x71, 0x46, 0x92, 0x08, 0xc5, 0x8a,
- 0x91, 0x0a, 0xf4, 0xf9, 0xd1, 0x3e, 0xfa, 0xb7, 0x55, 0xd2, 0x93, 0x22, 0xda, 0x47, 0x9f, 0x1c,
- 0xe7, 0xc3, 0x2f, 0x4f, 0xa6, 0x60, 0x44, 0xb3, 0xdb, 0x1e, 0x5d, 0xb4, 0xc5, 0x3a, 0x2e, 0xa2,
- 0xca, 0x60, 0x9b, 0x1c, 0x86, 0xa9, 0x79, 0xb6, 0x9f, 0xbe, 0x52, 0x4e, 0xa3, 0x18, 0x2d, 0x45,
- 0xe6, 0x60, 0x2c, 0x71, 0x71, 0x23, 0x27, 0x95, 0x94, 0x3e, 0x2f, 0xc9, 0x2c, 0x59, 0x94, 0xfc,
- 0x60, 0x06, 0x0a, 0x8b, 0x8e, 0x6e, 0x7a, 0xae, 0x78, 0xbc, 0x72, 0xfa, 0xea, 0xba, 0xa3, 0xb7,
- 0x98, 0x7e, 0x5c, 0xc5, 0x80, 0x57, 0x77, 0xf4, 0x46, 0x9b, 0xba, 0xe3, 0x77, 0xd9, 0xd7, 0xfd,
- 0xfd, 0xcd, 0xe2, 0x4b, 0x2b, 0xb8, 0x3d, 0xbc, 0x5a, 0xb7, 0x9b, 0xd7, 0x56, 0x1c, 0xfd, 0x9e,
- 0xe9, 0xe1, 0xd4, 0xa1, 0x37, 0xae, 0x79, 0xb4, 0x81, 0xbb, 0xd0, 0x6b, 0x7a, 0xcb, 0xbc, 0x86,
- 0x81, 0x15, 0xaf, 0x05, 0x9c, 0x78, 0x0d, 0x4c, 0x05, 0x3c, 0xfc, 0x4b, 0x56, 0x01, 0x8e, 0x23,
- 0x73, 0x6c, 0xf3, 0x86, 0x9f, 0x5a, 0x6a, 0xb5, 0xc4, 0x4b, 0x18, 0x69, 0xef, 0xe6, 0x63, 0xb8,
- 0x62, 0x07, 0x02, 0xd3, 0x5b, 0x2d, 0x39, 0x6d, 0x6d, 0x48, 0xc7, 0xb4, 0x60, 0x51, 0xb4, 0xc8,
- 0x17, 0xd3, 0x70, 0x28, 0x71, 0xbf, 0xb1, 0x29, 0x42, 0x8a, 0x17, 0x23, 0x4b, 0x70, 0x42, 0xf0,
- 0x0d, 0x42, 0x0f, 0x8f, 0x44, 0x67, 0x85, 0x18, 0x9a, 0x2b, 0x6d, 0xd0, 0x46, 0x43, 0x80, 0xe5,
- 0x3a, 0x62, 0x25, 0xc8, 0x78, 0x98, 0x0f, 0x6d, 0x4e, 0x6f, 0x52, 0x57, 0x39, 0x81, 0x1a, 0x7b,
- 0x7e, 0x6b, 0xb3, 0xa8, 0xf8, 0xe5, 0x31, 0xf0, 0x4d, 0x6a, 0x76, 0x4f, 0x2c, 0x22, 0xf3, 0xe0,
- 0x5a, 0x3f, 0x9a, 0xc2, 0x23, 0xae, 0xf3, 0xd1, 0x22, 0x64, 0x02, 0x86, 0x03, 0x47, 0xdc, 0xdb,
- 0xb7, 0x2b, 0x65, 0x7c, 0x6a, 0x23, 0x62, 0x1f, 0xc5, 0x82, 0x03, 0xcb, 0x4c, 0x22, 0x65, 0xa4,
- 0x37, 0x79, 0xfc, 0xed, 0x4d, 0xec, 0x4d, 0x5e, 0x2b, 0xe5, 0x4d, 0xde, 0x02, 0x79, 0x05, 0x06,
- 0x4b, 0x77, 0xab, 0xe2, 0xad, 0xa1, 0xab, 0x9c, 0x0c, 0xc3, 0xc9, 0x63, 0x82, 0x57, 0xf1, 0x2e,
- 0x51, 0x6e, 0xba, 0x4c, 0x4f, 0x26, 0x61, 0x24, 0x72, 0x97, 0xef, 0x2a, 0xa7, 0x90, 0x03, 0xb6,
- 0x5c, 0x47, 0x4c, 0xcd, 0x11, 0xa8, 0x48, 0xca, 0xe1, 0x48, 0x21, 0xa6, 0x35, 0x6c, 0x3b, 0xdc,
- 0x68, 0xd8, 0xeb, 0x1a, 0xc5, 0x67, 0x8d, 0xf8, 0x70, 0xa7, 0x9f, 0x6b, 0x8d, 0x21, 0x50, 0x35,
- 0x87, 0xe3, 0x22, 0x39, 0x86, 0xa3, 0xc5, 0xc8, 0x5b, 0x40, 0x30, 0x98, 0x37, 0x35, 0xfc, 0xa3,
- 0xdd, 0x4a, 0xd9, 0x55, 0xce, 0x60, 0xe0, 0x3f, 0x12, 0x7f, 0x57, 0x5b, 0x29, 0x8f, 0x5f, 0x12,
- 0xd3, 0xc7, 0x45, 0x9d, 0x97, 0xaa, 0x39, 0x02, 0x57, 0x33, 0x23, 0x99, 0xce, 0x52, 0xb8, 0x92,
- 0x75, 0x38, 0xbb, 0xe0, 0xd0, 0x7b, 0xa6, 0xdd, 0x76, 0xfd, 0xe5, 0xc3, 0x9f, 0xb7, 0xce, 0x6e,
- 0x3b, 0x6f, 0x3d, 0x2a, 0x2a, 0x3e, 0xdd, 0x72, 0xe8, 0xbd, 0x9a, 0x1f, 0xee, 0x2d, 0x12, 0xad,
- 0xa8, 0x13, 0x77, 0xcc, 0xd7, 0xf6, 0x76, 0xdb, 0xa1, 0x02, 0x6e, 0x52, 0x57, 0x51, 0xc2, 0xa9,
- 0x96, 0xbf, 0x50, 0x35, 0x03, 0x5c, 0x24, 0x5f, 0x5b, 0xb4, 0x18, 0xd1, 0x80, 0xdc, 0x9c, 0xf0,
- 0x8f, 0xf9, 0x4b, 0x75, 0x9e, 0xd5, 0x4a, 0x79, 0x08, 0x99, 0xa9, 0x4c, 0x2c, 0x2b, 0xf5, 0x20,
- 0xf4, 0x63, 0x4d, 0x17, 0x78, 0x59, 0x2c, 0xc9, 0xd2, 0x64, 0x06, 0x46, 0x17, 0x1c, 0xdc, 0x74,
- 0xdc, 0xa2, 0x1b, 0x0b, 0x76, 0xc3, 0xac, 0x6f, 0xe0, 0xfb, 0x21, 0x31, 0x55, 0xb6, 0x38, 0xae,
- 0xb6, 0x46, 0x37, 0x6a, 0x2d, 0xc4, 0xca, 0xcb, 0x4a, 0xbc, 0xa4, 0x1c, 0x8a, 0xed, 0xe1, 0x9d,
- 0x85, 0x62, 0xa3, 0x30, 0x2a, 0x2e, 0x09, 0xee, 0x7b, 0xd4, 0x62, 0x4b, 0xbd, 0x2b, 0xde, 0x0a,
- 0x29, 0xb1, 0x4b, 0x85, 0x00, 0x2f, 0xf2, 0x0d, 0xf3, 0x51, 0x46, 0x03, 0xb0, 0xdc, 0xb0, 0x78,
- 0x91, 0x64, 0xbc, 0xb2, 0x0b, 0x7b, 0x88, 0x57, 0xf6, 0xbf, 0xe4, 0xe4, 0xf9, 0x97, 0x9c, 0x87,
- 0xbc, 0x14, 0x4e, 0x1c, 0x83, 0x31, 0x61, 0xe8, 0xc5, 0xbc, 0x88, 0x31, 0x37, 0x20, 0x6c, 0x97,
- 0xe0, 0xd5, 0x2d, 0x26, 0x89, 0x09, 0x03, 0xf4, 0x68, 0x21, 0x01, 0x26, 0xe8, 0x68, 0x2f, 0x35,
- 0xcc, 0x3a, 0x06, 0xe4, 0xcc, 0x49, 0x09, 0x3a, 0x10, 0xca, 0xe3, 0x71, 0x4a, 0x24, 0xe4, 0x3a,
- 0x0c, 0xfa, 0x9b, 0xdd, 0x30, 0x18, 0x19, 0xc6, 0x69, 0xf4, 0xd3, 0x3b, 0xf3, 0x30, 0x90, 0x12,
- 0x11, 0x79, 0x11, 0x13, 0x9c, 0xfb, 0x2f, 0x9a, 0x7b, 0x43, 0x1b, 0x48, 0x9e, 0x3d, 0x62, 0x19,
- 0xce, 0xfd, 0x87, 0xcd, 0xe3, 0x30, 0x2c, 0xab, 0xa3, 0x9f, 0x92, 0x08, 0x27, 0xce, 0x88, 0x0e,
- 0xcb, 0x0a, 0x12, 0x2d, 0x42, 0xe6, 0x61, 0x2c, 0xa1, 0x81, 0x22, 0x74, 0x19, 0xa6, 0xa5, 0x4c,
- 0x51, 0x5f, 0x79, 0x61, 0x4e, 0x94, 0x25, 0x8f, 0x41, 0xee, 0xb6, 0x56, 0x11, 0xe1, 0x93, 0x78,
- 0xe4, 0xad, 0xc8, 0xdb, 0x6a, 0x86, 0x55, 0xbf, 0x2f, 0x9b, 0x58, 0x9b, 0x98, 0xf4, 0x04, 0x2b,
- 0xa9, 0x07, 0x51, 0x7a, 0x7e, 0xfd, 0x5c, 0x7a, 0x12, 0x11, 0xb9, 0x0c, 0xfd, 0xb1, 0x44, 0xe8,
- 0xf8, 0x10, 0x3e, 0xc8, 0x82, 0x1e, 0x60, 0xc9, 0x75, 0x29, 0x93, 0x96, 0x14, 0x91, 0xd0, 0xcf,
- 0xa4, 0x15, 0x0f, 0xcd, 0x87, 0x39, 0xb5, 0xae, 0xc7, 0x82, 0xf6, 0xfb, 0xf9, 0xaa, 0x93, 0xeb,
- 0x62, 0x18, 0xa4, 0x3f, 0xb0, 0x4a, 0x7b, 0xb7, 0xb3, 0x4a, 0xd5, 0xdf, 0xcb, 0x24, 0xc7, 0x19,
- 0xb9, 0x91, 0x0c, 0x0e, 0xc6, 0x53, 0x55, 0xfb, 0x40, 0xb9, 0xd6, 0x20, 0x4c, 0x58, 0x24, 0xcc,
- 0x57, 0x76, 0xcf, 0x61, 0xbe, 0x72, 0xbb, 0x0c, 0xf3, 0xa5, 0xfe, 0xdb, 0x7c, 0x57, 0xa7, 0xb6,
- 0x43, 0x09, 0x07, 0xf1, 0x02, 0xdb, 0x59, 0xb1, 0xda, 0x4b, 0x6e, 0x62, 0x7f, 0xc0, 0x7d, 0x76,
- 0x6a, 0x3a, 0x1f, 0x5a, 0xae, 0x16, 0xa5, 0x24, 0xaf, 0xc2, 0x90, 0xff, 0x01, 0x18, 0x3e, 0x4e,
- 0x0a, 0x7b, 0x16, 0xac, 0x6a, 0xf1, 0x6c, 0xe3, 0x72, 0x01, 0xf2, 0x2c, 0x0c, 0xa0, 0x4d, 0xd3,
- 0xd2, 0xeb, 0x7e, 0x6c, 0x41, 0x1e, 0x8c, 0xd0, 0x07, 0xca, 0x21, 0x0f, 0x02, 0x4a, 0xf2, 0x09,
- 0x28, 0x44, 0xd2, 0xdd, 0x5f, 0xdb, 0x81, 0x17, 0xe0, 0x55, 0x39, 0xb8, 0x2e, 0xdf, 0xa5, 0xc4,
- 0x53, 0xdd, 0x0b, 0xa6, 0x64, 0x11, 0x4e, 0x2e, 0x38, 0xd4, 0x40, 0x7f, 0xd3, 0xc9, 0xfb, 0x2d,
- 0x47, 0x84, 0x3e, 0xe6, 0xa3, 0x1c, 0x17, 0xa9, 0x96, 0x8f, 0x66, 0xcb, 0xa7, 0xc0, 0xcb, 0x01,
- 0xce, 0x52, 0x8a, 0x33, 0xcb, 0x85, 0xb7, 0xe4, 0x16, 0xdd, 0x58, 0xc7, 0x94, 0xa7, 0xfd, 0xa1,
- 0xe5, 0x22, 0x04, 0xbd, 0x26, 0x50, 0xb2, 0xe5, 0x12, 0x2d, 0x74, 0xee, 0x05, 0x18, 0xdc, 0x6b,
- 0x80, 0xda, 0x5f, 0xcf, 0x76, 0x70, 0x0f, 0x7f, 0x70, 0x73, 0x84, 0x04, 0xd9, 0xe9, 0x7a, 0x3b,
- 0x64, 0xa7, 0xfb, 0x76, 0xb6, 0x83, 0xef, 0xfb, 0x03, 0x9d, 0x45, 0x2a, 0x10, 0x46, 0x34, 0x8b,
- 0x54, 0x98, 0xc0, 0xcb, 0x34, 0x34, 0x99, 0x28, 0x96, 0x6f, 0xae, 0xb0, 0x6d, 0xbe, 0xb9, 0x5f,
- 0xca, 0x75, 0x7b, 0x1b, 0x70, 0x2c, 0xfb, 0xdd, 0xc8, 0xfe, 0x3a, 0x0c, 0x06, 0x92, 0xad, 0x94,
- 0xd1, 0xe8, 0x19, 0x0e, 0xc2, 0x61, 0x73, 0x30, 0x96, 0x91, 0x88, 0xc8, 0x15, 0xde, 0xd6, 0xaa,
- 0xf9, 0x36, 0x0f, 0xcc, 0x3a, 0x2c, 0x42, 0x6e, 0xea, 0x9e, 0x5e, 0x73, 0xcd, 0xb7, 0xa9, 0x16,
- 0xa0, 0xd5, 0xff, 0x3d, 0x9b, 0xfa, 0xc0, 0xe2, 0xb8, 0x8f, 0x76, 0xd1, 0x47, 0x29, 0x42, 0xe4,
- 0x4f, 0x43, 0x8e, 0x85, 0xb8, 0x0b, 0x21, 0xfe, 0x55, 0x36, 0xf5, 0x21, 0xcd, 0xb1, 0x10, 0x77,
- 0x33, 0x5b, 0x3c, 0x09, 0x03, 0x9a, 0xbd, 0xee, 0x62, 0x72, 0x69, 0x31, 0x57, 0xe0, 0x44, 0xed,
- 0xd8, 0xeb, 0x2e, 0x4f, 0xbc, 0xad, 0x85, 0x04, 0xea, 0x77, 0xb2, 0x5d, 0x9e, 0x1a, 0x1d, 0x0b,
- 0xfe, 0xdd, 0x5c, 0x22, 0x7f, 0x2b, 0x1b, 0x79, 0xca, 0xf4, 0x40, 0xa7, 0x63, 0xad, 0xd6, 0x57,
- 0x69, 0x53, 0x8f, 0xa7, 0x63, 0x75, 0x11, 0x2a, 0x92, 0xa2, 0x85, 0x24, 0xea, 0x57, 0xb3, 0xb1,
- 0xb7, 0x5c, 0xc7, 0xb2, 0xdb, 0xb1, 0xec, 0x02, 0xad, 0x13, 0xcf, 0xd3, 0x8e, 0x25, 0xb7, 0x53,
- 0xc9, 0x7d, 0x26, 0x1b, 0x7b, 0xc9, 0xf7, 0xc0, 0xca, 0x8e, 0x0d, 0xc0, 0xe4, 0x0b, 0xc3, 0x07,
- 0x56, 0x93, 0x9e, 0x84, 0x01, 0x21, 0x87, 0x60, 0xa9, 0xe0, 0xf3, 0x3e, 0x07, 0xe2, 0x29, 0x6b,
- 0x40, 0xa0, 0xfe, 0x40, 0x16, 0xa2, 0x2f, 0x2c, 0x1f, 0x50, 0x1d, 0xfa, 0xad, 0x6c, 0xf4, 0x6d,
- 0xe9, 0x83, 0xab, 0x3f, 0x57, 0x01, 0xaa, 0xed, 0xa5, 0xba, 0x08, 0x4d, 0xd8, 0x2b, 0x1d, 0xd3,
- 0x07, 0x50, 0x4d, 0xa2, 0x50, 0xff, 0x5d, 0x36, 0xf5, 0xc1, 0xeb, 0x83, 0x2b, 0xc0, 0x67, 0xf0,
- 0x54, 0xbc, 0x6e, 0x85, 0x13, 0x39, 0x1e, 0x42, 0xb2, 0xf1, 0x97, 0xc8, 0x88, 0xe2, 0x13, 0x92,
- 0x0f, 0xa5, 0x98, 0x6b, 0x18, 0xaf, 0x35, 0x34, 0xd7, 0xe4, 0x6b, 0x08, 0xc9, 0x70, 0xfb, 0x7f,
- 0xb2, 0xdb, 0xbd, 0x0f, 0x7e, 0x90, 0x57, 0xd5, 0xbe, 0x05, 0x7d, 0x03, 0xe3, 0x58, 0xb1, 0x9e,
- 0x18, 0xe2, 0xf9, 0x3a, 0x5a, 0x1c, 0x24, 0xdf, 0xbd, 0x09, 0x2a, 0xf5, 0x2f, 0x7b, 0xd3, 0x1f,
- 0xa7, 0x3e, 0xb8, 0x22, 0x3c, 0x0f, 0xf9, 0x05, 0xdd, 0x5b, 0x15, 0x9a, 0x8c, 0x57, 0x7a, 0x2d,
- 0xdd, 0x5b, 0xd5, 0x10, 0x4a, 0xae, 0x40, 0xbf, 0xa6, 0xaf, 0xf3, 0x33, 0xcf, 0x42, 0x98, 0x4b,
- 0xc5, 0xd1, 0xd7, 0x6b, 0xfc, 0xdc, 0x33, 0x40, 0x13, 0x35, 0xc8, 0xe5, 0xc3, 0x4f, 0xbe, 0x31,
- 0x91, 0x04, 0xcf, 0xe5, 0x13, 0x64, 0xf0, 0x39, 0x0f, 0xf9, 0x71, 0xdb, 0xd8, 0xc0, 0xeb, 0xab,
- 0x21, 0x5e, 0xd9, 0x92, 0x6d, 0x6c, 0x68, 0x08, 0x25, 0x9f, 0xcd, 0x40, 0xdf, 0x34, 0xd5, 0x0d,
- 0x36, 0x42, 0x06, 0xba, 0x79, 0x9d, 0x7c, 0xe4, 0x60, 0xbc, 0x4e, 0xc6, 0x56, 0x79, 0x65, 0xb2,
- 0xa2, 0x88, 0xfa, 0xc9, 0x4d, 0xe8, 0x9f, 0xd0, 0x3d, 0xba, 0x62, 0x3b, 0x1b, 0xe8, 0x47, 0x33,
- 0x12, 0x3a, 0x38, 0x46, 0xf4, 0xc7, 0x27, 0xe2, 0x37, 0x63, 0x75, 0xf1, 0x4b, 0x0b, 0x0a, 0x33,
- 0xb1, 0x88, 0xec, 0xa2, 0x83, 0xa1, 0x58, 0x78, 0x1a, 0xd1, 0x20, 0x89, 0x68, 0x70, 0xac, 0x3c,
- 0x94, 0x7e, 0xac, 0x8c, 0xd6, 0x23, 0xfa, 0xda, 0x61, 0x06, 0x9d, 0x61, 0x5c, 0xf4, 0xb9, 0xf5,
- 0x88, 0x50, 0x4c, 0xa0, 0xa3, 0x49, 0x24, 0xea, 0x37, 0x7b, 0x21, 0xf5, 0x29, 0xdb, 0xb1, 0x92,
- 0x1f, 0x2b, 0x79, 0xa8, 0xe4, 0xe5, 0x84, 0x92, 0x9f, 0x4b, 0x3e, 0x8e, 0x7c, 0x8f, 0x6a, 0xf8,
- 0x97, 0xf3, 0x89, 0xa7, 0xd5, 0x0f, 0xf6, 0xee, 0x32, 0x94, 0x5e, 0xef, 0xb6, 0xd2, 0x0b, 0x06,
- 0x44, 0x61, 0xdb, 0x01, 0xd1, 0xb7, 0xd3, 0x01, 0xd1, 0xdf, 0x71, 0x40, 0x84, 0x0a, 0x32, 0xd0,
- 0x51, 0x41, 0x2a, 0x62, 0xd0, 0x40, 0xf7, 0xec, 0x6c, 0xe7, 0xb7, 0x36, 0x8b, 0x23, 0x6c, 0x34,
- 0xa5, 0xe6, 0x65, 0x43, 0x16, 0xea, 0x37, 0xf2, 0x5d, 0xe2, 0x21, 0x1c, 0x8a, 0x8e, 0x3c, 0x03,
- 0xb9, 0x52, 0xab, 0x25, 0xf4, 0xe3, 0xa4, 0x14, 0x8a, 0xa1, 0x43, 0x29, 0x46, 0x4d, 0x5e, 0x84,
- 0x5c, 0xe9, 0x6e, 0x35, 0x1e, 0xd5, 0xbd, 0x74, 0xb7, 0x2a, 0xbe, 0xa4, 0x63, 0xd9, 0xbb, 0x55,
- 0xf2, 0x72, 0x18, 0x5e, 0x6d, 0xb5, 0x6d, 0xad, 0x89, 0x8d, 0xa2, 0x70, 0xb7, 0xf5, 0xdd, 0x71,
- 0xea, 0x0c, 0xc5, 0xb6, 0x8b, 0x31, 0xda, 0x98, 0x36, 0x15, 0x76, 0xae, 0x4d, 0x7d, 0xdb, 0x6a,
- 0x53, 0xff, 0x4e, 0xb5, 0x69, 0x60, 0x07, 0xda, 0x04, 0xdb, 0x6a, 0xd3, 0xe0, 0xfe, 0xb5, 0xa9,
- 0x05, 0xe7, 0x92, 0x31, 0x6c, 0x02, 0x8d, 0xd0, 0x80, 0x24, 0xb1, 0xc2, 0xb1, 0x04, 0xaf, 0xfe,
- 0xdb, 0x1c, 0x5b, 0xe3, 0x59, 0x80, 0xe3, 0x39, 0x74, 0xb5, 0x94, 0xd2, 0xea, 0xaf, 0x67, 0x3b,
- 0x87, 0xde, 0x39, 0x9a, 0x53, 0xdc, 0xf7, 0xa4, 0x4a, 0x29, 0x1f, 0x7d, 0x0a, 0xd9, 0x59, 0xca,
- 0x31, 0xb6, 0x69, 0x32, 0xfb, 0x7a, 0xa6, 0x53, 0x3c, 0xa0, 0x7d, 0x49, 0xec, 0xf1, 0xa4, 0x47,
- 0x1b, 0xfa, 0xe9, 0xbb, 0x51, 0x57, 0xb6, 0x78, 0x52, 0xd9, 0xdc, 0x1e, 0x93, 0xca, 0xfe, 0x5e,
- 0x06, 0x4e, 0xde, 0x6a, 0x2f, 0x51, 0xe1, 0xc1, 0x16, 0x34, 0xe3, 0x2d, 0x00, 0x06, 0x16, 0x4e,
- 0x2c, 0x19, 0x74, 0x62, 0xf9, 0x80, 0x1c, 0xcb, 0x27, 0x56, 0xe0, 0x6a, 0x48, 0xcd, 0x1d, 0x58,
- 0x2e, 0xf8, 0xce, 0x9c, 0x6b, 0xed, 0x25, 0x5a, 0x4b, 0x78, 0xb2, 0x48, 0xdc, 0xcf, 0xbd, 0xc2,
- 0xdd, 0xe4, 0xf7, 0xea, 0x34, 0xf2, 0xab, 0xd9, 0x8e, 0xe1, 0x93, 0x8e, 0x6c, 0xf6, 0x9a, 0x8f,
- 0xa5, 0xf6, 0x4a, 0x3c, 0x8b, 0x4d, 0x0a, 0x49, 0x8c, 0x63, 0x1a, 0x97, 0x74, 0x81, 0x1d, 0xf1,
- 0x9c, 0x4a, 0xef, 0xaa, 0xc0, 0xfe, 0x38, 0xd3, 0x31, 0xcc, 0xd5, 0x51, 0x15, 0x98, 0xfa, 0x4f,
- 0x72, 0x7e, 0x74, 0xad, 0x7d, 0x7d, 0xc2, 0x93, 0x30, 0x20, 0x1e, 0x19, 0x46, 0x1d, 0x70, 0xc5,
- 0x51, 0x1e, 0x1e, 0x0d, 0x07, 0x04, 0x6c, 0x99, 0x97, 0xbc, 0x83, 0x25, 0x07, 0x5c, 0xc9, 0x33,
- 0x58, 0x93, 0x48, 0xd8, 0x42, 0x3e, 0x79, 0xdf, 0xf4, 0xd0, 0x2a, 0x60, 0x7d, 0x99, 0xe3, 0x0b,
- 0x39, 0xbd, 0x6f, 0x7a, 0xdc, 0x26, 0x08, 0xd0, 0x6c, 0x91, 0xae, 0x86, 0x19, 0x23, 0xc5, 0x22,
- 0xed, 0x8a, 0xc4, 0x99, 0xe2, 0xd9, 0xd8, 0x93, 0x30, 0x20, 0xbc, 0x5a, 0x85, 0x9b, 0x89, 0x68,
- 0xad, 0xf0, 0x83, 0xc5, 0xd6, 0x06, 0x04, 0x8c, 0xa3, 0x46, 0x57, 0x42, 0xc7, 0x3a, 0xe4, 0xe8,
- 0x20, 0x44, 0x13, 0x18, 0x72, 0x1d, 0x46, 0xaa, 0x9e, 0x6e, 0x19, 0xba, 0x63, 0xcc, 0xb7, 0xbd,
- 0x56, 0xdb, 0x93, 0x8d, 0x52, 0xd7, 0x33, 0xec, 0xb6, 0xa7, 0xc5, 0x28, 0xc8, 0x07, 0x61, 0xd8,
- 0x87, 0x4c, 0x3a, 0x8e, 0xed, 0xc8, 0x96, 0x87, 0xeb, 0x19, 0xd4, 0x71, 0xb4, 0x28, 0x01, 0xf9,
- 0x10, 0x0c, 0x57, 0xac, 0x7b, 0x36, 0x4f, 0x45, 0x7a, 0x5b, 0x9b, 0x11, 0x76, 0x08, 0x3e, 0xc5,
- 0x32, 0x03, 0x44, 0xad, 0xed, 0x34, 0xb4, 0x28, 0xa1, 0xba, 0x95, 0x4d, 0x06, 0x21, 0x7b, 0x70,
- 0x37, 0x2d, 0x57, 0xa2, 0xce, 0x74, 0xe8, 0x41, 0x8a, 0x06, 0xa1, 0xec, 0xcb, 0xcb, 0xed, 0xc2,
- 0xeb, 0xd0, 0x7f, 0x8b, 0x6e, 0x70, 0xbf, 0xcf, 0x42, 0xe8, 0x2a, 0xbc, 0x26, 0x60, 0xf2, 0x89,
- 0xab, 0x4f, 0xa7, 0x7e, 0x2d, 0x9b, 0x0c, 0xaf, 0xf6, 0xe0, 0x0a, 0xfb, 0x83, 0xd0, 0x87, 0xa2,
- 0xac, 0xf8, 0x47, 0xfe, 0x28, 0x40, 0x14, 0x77, 0xd4, 0x03, 0xd9, 0x27, 0x53, 0x7f, 0xb6, 0x10,
- 0x8f, 0xb9, 0xf7, 0xe0, 0x4a, 0xef, 0x25, 0x18, 0x9c, 0xb0, 0x2d, 0xd7, 0x74, 0x3d, 0x6a, 0xd5,
- 0x7d, 0x85, 0x7d, 0x88, 0x19, 0x54, 0xf5, 0x10, 0x2c, 0xbf, 0x41, 0x92, 0xa8, 0xf7, 0xa2, 0xbc,
- 0xe4, 0x39, 0x18, 0x40, 0x91, 0xa3, 0x9f, 0xb4, 0x94, 0xea, 0x7c, 0x89, 0x01, 0xe3, 0x4e, 0xd2,
- 0x21, 0x29, 0xb9, 0x0d, 0xfd, 0x13, 0xab, 0x66, 0xc3, 0x70, 0xa8, 0x85, 0xfe, 0xc2, 0xd2, 0xd3,
- 0xe6, 0x68, 0x5f, 0x5e, 0xc5, 0x7f, 0x91, 0x96, 0x37, 0xa7, 0x2e, 0x8a, 0x45, 0x5e, 0x61, 0x09,
- 0xd8, 0xb9, 0x1f, 0xcb, 0x02, 0x84, 0x05, 0xc8, 0x23, 0x90, 0x0d, 0x92, 0xb1, 0xa1, 0x9b, 0x4a,
- 0x44, 0x83, 0xb2, 0xb8, 0x54, 0x88, 0xb1, 0x9d, 0xdd, 0x76, 0x6c, 0xdf, 0x86, 0x02, 0x3f, 0xf1,
- 0x42, 0x4f, 0x72, 0x29, 0x0c, 0x58, 0xc7, 0x06, 0x5f, 0x45, 0x7a, 0xbe, 0x99, 0x45, 0xcb, 0x33,
- 0xe2, 0x95, 0xcd, 0x99, 0x9d, 0xab, 0x43, 0x2f, 0xfe, 0x45, 0x2e, 0x41, 0x1e, 0xa5, 0x98, 0xc1,
- 0x7d, 0x2c, 0xce, 0xd2, 0x31, 0xf9, 0x21, 0x9e, 0x75, 0xd3, 0x84, 0x6d, 0x79, 0xac, 0x6a, 0x6c,
- 0xf5, 0x90, 0x90, 0x8b, 0x80, 0x45, 0xe4, 0x22, 0x60, 0xea, 0xff, 0x9d, 0x4d, 0x89, 0x06, 0xf9,
- 0xe0, 0x0e, 0x93, 0x17, 0x00, 0xf0, 0x49, 0x37, 0x93, 0xa7, 0xff, 0x44, 0x03, 0x47, 0x09, 0x32,
- 0x42, 0xb5, 0x8d, 0x6c, 0x3b, 0x42, 0x62, 0xf5, 0x0f, 0x32, 0x89, 0x10, 0x82, 0xfb, 0x92, 0xa3,
- 0x6c, 0x95, 0x65, 0xf7, 0x68, 0xc6, 0xfa, 0x7d, 0x91, 0xdb, 0x5d, 0x5f, 0x44, 0xbf, 0xe5, 0x00,
- 0x2c, 0xd3, 0xc3, 0xfc, 0x96, 0x6f, 0x66, 0xd3, 0x02, 0x2a, 0x1e, 0x4d, 0x15, 0xbf, 0x11, 0x18,
- 0xa5, 0xf9, 0x9d, 0xa4, 0x31, 0x17, 0x66, 0xea, 0x27, 0xe1, 0x44, 0x2c, 0xcc, 0xa0, 0xc8, 0x90,
- 0x78, 0xa9, 0x7b, 0xbc, 0xc2, 0xce, 0xc1, 0x00, 0x22, 0x64, 0xea, 0xbf, 0xcf, 0x74, 0x0f, 0x32,
- 0x79, 0xe8, 0xaa, 0x93, 0x22, 0x80, 0xdc, 0xdf, 0x8d, 0x00, 0x0e, 0x60, 0x1b, 0x7c, 0xb4, 0x05,
- 0xf0, 0x1e, 0x99, 0x3c, 0xde, 0x6d, 0x01, 0xfc, 0x6c, 0x66, 0xdb, 0x18, 0xa1, 0x87, 0x2d, 0x03,
- 0xf5, 0x1f, 0x66, 0x52, 0x63, 0x79, 0xee, 0xab, 0x5d, 0x2f, 0x43, 0x81, 0xbb, 0xd5, 0x88, 0x56,
- 0x49, 0xd9, 0x4f, 0x18, 0xb4, 0x43, 0x79, 0x51, 0x86, 0xcc, 0x40, 0x1f, 0x6f, 0x83, 0x11, 0xcf,
- 0x12, 0x9c, 0xd2, 0x4e, 0xa3, 0xd3, 0xe4, 0x28, 0xd0, 0xea, 0xef, 0x67, 0x12, 0xa1, 0x45, 0x0f,
- 0xf1, 0xdb, 0xc2, 0xa9, 0x3a, 0xb7, 0xf3, 0xa9, 0x5a, 0xfd, 0x8b, 0x6c, 0x7a, 0x64, 0xd3, 0x43,
- 0xfc, 0x90, 0x83, 0x38, 0x4e, 0xdb, 0xdb, 0xba, 0xb5, 0x08, 0x23, 0x51, 0x59, 0x88, 0x65, 0xeb,
- 0x62, 0x7a, 0x7c, 0xd7, 0x0e, 0xad, 0x88, 0xf1, 0x50, 0xdf, 0xc9, 0x24, 0x83, 0xb2, 0x1e, 0xfa,
- 0xfc, 0xb4, 0x37, 0x6d, 0x89, 0x7e, 0xca, 0x7b, 0x64, 0xad, 0x39, 0x88, 0x4f, 0x79, 0x8f, 0xac,
- 0x1a, 0x7b, 0xfb, 0x94, 0x5f, 0xce, 0x76, 0x8a, 0x69, 0x7b, 0xe8, 0x1f, 0xf4, 0x51, 0x59, 0xc8,
- 0xbc, 0x65, 0xe2, 0xd3, 0x1e, 0xe9, 0x14, 0x44, 0xb6, 0x03, 0xcf, 0x04, 0x9f, 0xbd, 0x8d, 0xf1,
- 0x54, 0x61, 0xbd, 0x47, 0x14, 0xf9, 0x68, 0x08, 0xeb, 0x3d, 0x32, 0x54, 0xde, 0x7b, 0xc2, 0xfa,
- 0x9d, 0xec, 0x4e, 0x03, 0x29, 0x1f, 0x0b, 0x2f, 0x21, 0xbc, 0x2f, 0x66, 0x93, 0x01, 0xbe, 0x0f,
- 0x5d, 0x4c, 0x53, 0x50, 0x10, 0xa1, 0xc6, 0x3b, 0x0a, 0x87, 0xe3, 0x3b, 0x59, 0x34, 0xe2, 0x3b,
- 0x6e, 0x80, 0xb8, 0xc8, 0xd9, 0x99, 0x48, 0x38, 0xad, 0xfa, 0x9d, 0x4c, 0x2c, 0x1a, 0xf6, 0xa1,
- 0x1c, 0x21, 0xec, 0x69, 0x49, 0x22, 0xaf, 0xf8, 0x87, 0x99, 0xf9, 0x58, 0x34, 0xd2, 0xe0, 0x7b,
- 0xca, 0xd4, 0xd3, 0xcd, 0x46, 0xbc, 0xbc, 0x88, 0x09, 0xf0, 0xb5, 0x2c, 0x8c, 0x25, 0x48, 0xc9,
- 0xa5, 0x48, 0x28, 0x1d, 0x3c, 0x96, 0x8c, 0x39, 0x8f, 0xf3, 0xa0, 0x3a, 0xbb, 0x38, 0x49, 0xbd,
- 0x04, 0xf9, 0xb2, 0xbe, 0xc1, 0xbf, 0xad, 0x97, 0xb3, 0x34, 0xf4, 0x0d, 0xf9, 0xc4, 0x0d, 0xf1,
- 0x64, 0x09, 0x4e, 0xf3, 0xfb, 0x10, 0xd3, 0xb6, 0x16, 0xcd, 0x26, 0xad, 0x58, 0xb3, 0x66, 0xa3,
- 0x61, 0xba, 0xe2, 0x52, 0xef, 0xc9, 0xad, 0xcd, 0xe2, 0x65, 0xcf, 0xf6, 0xf4, 0x46, 0x8d, 0xfa,
- 0x64, 0x35, 0xcf, 0x6c, 0xd2, 0x9a, 0x69, 0xd5, 0x9a, 0x48, 0x29, 0xb1, 0x4c, 0x67, 0x45, 0x2a,
- 0x3c, 0xf0, 0x6c, 0xb5, 0xae, 0x5b, 0x16, 0x35, 0x2a, 0xd6, 0xf8, 0x86, 0x47, 0xf9, 0x65, 0x60,
- 0x8e, 0x1f, 0x09, 0xf2, 0xb7, 0xe1, 0x1c, 0xcd, 0x18, 0x2f, 0x31, 0x02, 0x2d, 0xa5, 0x90, 0xfa,
- 0xbb, 0xf9, 0x94, 0x40, 0xe8, 0x47, 0x48, 0x7d, 0xfc, 0x9e, 0xce, 0x6f, 0xd3, 0xd3, 0xd7, 0xa0,
- 0xef, 0x0e, 0x75, 0xf0, 0x7c, 0x8b, 0x5f, 0x30, 0xa0, 0x33, 0xfb, 0x3d, 0x0e, 0x92, 0x6f, 0x68,
- 0x04, 0x15, 0x69, 0xc0, 0xb9, 0x45, 0xd6, 0x4d, 0xe9, 0x9d, 0x59, 0xd8, 0x43, 0x67, 0x76, 0xe1,
- 0x47, 0xde, 0x84, 0xb3, 0x88, 0x4d, 0xe9, 0xd6, 0x3e, 0xac, 0x0a, 0x63, 0x54, 0xf1, 0xaa, 0xd2,
- 0x3b, 0xb7, 0x53, 0x79, 0xf2, 0x51, 0x18, 0x0a, 0x06, 0x88, 0x49, 0x5d, 0x71, 0x73, 0xd1, 0x65,
- 0x9c, 0xf1, 0x00, 0x70, 0x0c, 0x8c, 0x2e, 0x64, 0xd1, 0x20, 0x62, 0x11, 0x5e, 0xea, 0x3f, 0xc8,
- 0x74, 0x0b, 0xc8, 0x7e, 0xe8, 0xb3, 0xf2, 0x2b, 0xd0, 0x67, 0xf0, 0x8f, 0x12, 0x3a, 0xd5, 0x3d,
- 0x64, 0x3b, 0x27, 0xd5, 0xfc, 0x32, 0xea, 0x9f, 0x67, 0xba, 0xc6, 0x81, 0x3f, 0xea, 0x9f, 0xf7,
- 0xc5, 0x5c, 0x87, 0xcf, 0x13, 0x93, 0xe8, 0x15, 0x18, 0x35, 0xc3, 0x40, 0xb5, 0xb5, 0x30, 0xfc,
- 0x94, 0x76, 0x42, 0x82, 0xe3, 0xe8, 0xba, 0x01, 0x67, 0x7c, 0xc7, 0x47, 0xc7, 0xf7, 0x10, 0x73,
- 0x6b, 0x6d, 0xc7, 0xe4, 0xe3, 0x52, 0x3b, 0xe5, 0xc6, 0xdc, 0xc7, 0xdc, 0xdb, 0x8e, 0xc9, 0x2a,
- 0xd0, 0xbd, 0x55, 0x6a, 0xe9, 0xb5, 0x75, 0xdb, 0x59, 0xc3, 0x28, 0xa3, 0x7c, 0x70, 0x6a, 0x27,
- 0x38, 0xfc, 0xae, 0x0f, 0x26, 0x8f, 0xc1, 0xf0, 0x4a, 0xa3, 0x4d, 0x83, 0xb8, 0x8e, 0xfc, 0xae,
- 0x4f, 0x1b, 0x62, 0xc0, 0xe0, 0x86, 0xe4, 0x02, 0x00, 0x12, 0x79, 0x18, 0xa5, 0x1f, 0x2f, 0xf6,
- 0xb4, 0x01, 0x06, 0x59, 0x14, 0xdd, 0x75, 0x8e, 0x6b, 0x35, 0x17, 0x52, 0xad, 0x61, 0x5b, 0x2b,
- 0x35, 0x8f, 0x3a, 0x4d, 0x6c, 0x28, 0x3a, 0x33, 0x68, 0x67, 0x90, 0x02, 0xaf, 0x4e, 0xdc, 0x19,
- 0xdb, 0x5a, 0x59, 0xa4, 0x4e, 0x93, 0x35, 0xf5, 0x49, 0x20, 0xa2, 0xa9, 0x0e, 0x1e, 0x7a, 0xf0,
- 0x8f, 0x43, 0x6f, 0x06, 0x4d, 0x7c, 0x04, 0x3f, 0x0d, 0xc1, 0x0f, 0x2b, 0xc2, 0x20, 0x0f, 0x6e,
- 0xc7, 0x85, 0x86, 0x2e, 0x0c, 0x1a, 0x70, 0x10, 0xca, 0xeb, 0x0c, 0x08, 0xef, 0x0a, 0xee, 0xd5,
- 0xad, 0x89, 0x5f, 0xea, 0xe7, 0x72, 0x69, 0xa1, 0xeb, 0xf7, 0xa5, 0x68, 0xe1, 0xb4, 0x9a, 0xdd,
- 0xd5, 0xb4, 0x7a, 0xc2, 0x6a, 0x37, 0x6b, 0x7a, 0xab, 0x55, 0x5b, 0x36, 0x1b, 0xf8, 0xac, 0x0a,
- 0x17, 0x3e, 0x6d, 0xd8, 0x6a, 0x37, 0x4b, 0xad, 0xd6, 0x14, 0x07, 0x92, 0x27, 0x60, 0x8c, 0xd1,
- 0x61, 0x27, 0x05, 0x94, 0x79, 0xa4, 0x64, 0x0c, 0x30, 0x3a, 0xac, 0x4f, 0xfb, 0x10, 0xf4, 0x0b,
- 0x9e, 0x7c, 0xad, 0xea, 0xd5, 0xfa, 0x38, 0x33, 0x97, 0xf5, 0x5c, 0xc0, 0x86, 0x4f, 0xae, 0xbd,
- 0xda, 0x80, 0x5f, 0x1e, 0x63, 0x20, 0x5b, 0xed, 0x26, 0x8f, 0x88, 0xd5, 0x87, 0xc8, 0xe0, 0x37,
- 0xb9, 0x04, 0x23, 0x8c, 0x4b, 0x20, 0x30, 0x1e, 0x36, 0xb6, 0x57, 0x8b, 0x41, 0xc9, 0x75, 0x38,
- 0x15, 0x81, 0x70, 0x1b, 0x94, 0x3f, 0x13, 0xe8, 0xd5, 0x52, 0x71, 0xea, 0x57, 0x73, 0xd1, 0x80,
- 0xfa, 0x87, 0xd0, 0x11, 0x67, 0xa1, 0xcf, 0x76, 0x56, 0x6a, 0x6d, 0xa7, 0x21, 0xc6, 0x5e, 0xc1,
- 0x76, 0x56, 0x6e, 0x3b, 0x0d, 0x72, 0x1a, 0x0a, 0xac, 0x77, 0x4c, 0x43, 0x0c, 0xb1, 0x5e, 0xbd,
- 0xd5, 0xaa, 0x18, 0xa4, 0xc4, 0x3b, 0x04, 0x43, 0x8e, 0xd6, 0xea, 0xb8, 0xb5, 0xe7, 0x4e, 0x09,
- 0xbd, 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, 0x0c, 0x24,
- 0xa4, 0x6a, 0xda, 0x86, 0xb9, 0x6c, 0x52, 0xfe, 0xaa, 0xa3, 0x97, 0x5f, 0xfc, 0x26, 0xb1, 0xda,
- 0xa8, 0xcf, 0x64, 0x56, 0x40, 0xc8, 0x4b, 0x5c, 0x09, 0x39, 0x1d, 0xae, 0x7d, 0xbc, 0x6f, 0xb9,
- 0x9d, 0x16, 0x43, 0xa1, 0x66, 0x62, 0x79, 0x5c, 0x08, 0xd5, 0x77, 0x72, 0xc9, 0xac, 0x0a, 0x87,
- 0x62, 0xd7, 0x4c, 0x03, 0x88, 0xa4, 0x29, 0xe1, 0xe5, 0x5a, 0xe0, 0x71, 0x1e, 0x62, 0x3a, 0xf0,
- 0x90, 0xca, 0x92, 0x2b, 0xd0, 0xcf, 0xbf, 0xa8, 0x52, 0x16, 0xf6, 0x0e, 0xba, 0x88, 0xb9, 0x2d,
- 0x73, 0x79, 0x19, 0xfd, 0xc9, 0x02, 0x34, 0xb9, 0x04, 0x7d, 0xe5, 0xb9, 0x6a, 0xb5, 0x34, 0xe7,
- 0xdf, 0x14, 0xe3, 0xfb, 0x12, 0xc3, 0x72, 0x6b, 0xae, 0x6e, 0xb9, 0x9a, 0x8f, 0x24, 0x8f, 0x41,
- 0xa1, 0xb2, 0x80, 0x64, 0xfc, 0xd5, 0xe4, 0xe0, 0xd6, 0x66, 0xb1, 0xcf, 0x6c, 0x71, 0x2a, 0x81,
- 0xc2, 0x7a, 0xef, 0x54, 0xca, 0x92, 0xbb, 0x04, 0xaf, 0xf7, 0x9e, 0x69, 0xe0, 0xb5, 0xb3, 0x16,
- 0xa0, 0xc9, 0xb3, 0x30, 0x54, 0xa5, 0x8e, 0xa9, 0x37, 0xe6, 0xda, 0xb8, 0x55, 0x94, 0x42, 0x29,
- 0xba, 0x08, 0xaf, 0x59, 0x88, 0xd0, 0x22, 0x64, 0xe4, 0x3c, 0xe4, 0xa7, 0x4d, 0xcb, 0x7f, 0xc2,
- 0x80, 0x3e, 0xee, 0xab, 0xa6, 0xe5, 0x69, 0x08, 0x55, 0xff, 0x65, 0x36, 0x3d, 0x35, 0xc5, 0x21,
- 0x0c, 0xc7, 0x3d, 0xde, 0xf4, 0xc6, 0x94, 0x20, 0xbf, 0x0f, 0x25, 0x58, 0x86, 0x13, 0x25, 0xa3,
- 0x69, 0x5a, 0x25, 0xfc, 0xe9, 0xce, 0x4e, 0x95, 0x70, 0x78, 0x4b, 0x4f, 0xe8, 0x62, 0x68, 0xf1,
- 0x3d, 0x3c, 0x28, 0x2f, 0x43, 0xd5, 0x74, 0x8e, 0xab, 0x35, 0x97, 0xf5, 0x5a, 0x9d, 0x67, 0x75,
- 0xd0, 0xe2, 0x4c, 0xd5, 0x1f, 0xcd, 0x6e, 0x93, 0x4d, 0xe3, 0x41, 0x94, 0xbe, 0xfa, 0xa5, 0x6c,
- 0xf7, 0x84, 0x26, 0x0f, 0xa4, 0x50, 0xfe, 0x2a, 0x9b, 0x92, 0x5e, 0x64, 0x5f, 0x92, 0xb8, 0x02,
- 0xfd, 0x9c, 0x4d, 0xe0, 0x6a, 0x8b, 0x33, 0x0e, 0x57, 0x56, 0x9c, 0xe9, 0x7c, 0x34, 0x99, 0x83,
- 0x53, 0xa5, 0xe5, 0x65, 0x5a, 0xf7, 0xc2, 0xf0, 0xcc, 0x73, 0x61, 0xa0, 0x54, 0x1e, 0x8e, 0x56,
- 0xe0, 0xc3, 0xf0, 0xce, 0x18, 0x10, 0x24, 0xb5, 0x1c, 0x59, 0x84, 0x33, 0x71, 0x78, 0x95, 0x9b,
- 0xe9, 0x79, 0x29, 0x42, 0x6d, 0x82, 0x23, 0xff, 0x4f, 0xeb, 0x50, 0x36, 0xad, 0x95, 0x38, 0x9d,
- 0xf6, 0x76, 0x6b, 0x25, 0xce, 0xad, 0xa9, 0xe5, 0xd4, 0xaf, 0xe5, 0xe4, 0x2c, 0x2c, 0x0f, 0xae,
- 0x53, 0xd4, 0x8d, 0x88, 0x2b, 0xf4, 0x4e, 0x87, 0xcc, 0xb3, 0x22, 0xca, 0x87, 0xd1, 0x76, 0x7c,
- 0xaf, 0xc1, 0x20, 0xca, 0x00, 0x02, 0x65, 0xff, 0xbf, 0x80, 0x92, 0x54, 0x20, 0x5f, 0x72, 0x56,
- 0xb8, 0x09, 0xba, 0xdd, 0xc3, 0x27, 0xdd, 0x59, 0x71, 0xd3, 0x1f, 0x3e, 0x31, 0x16, 0xea, 0x8f,
- 0x64, 0xbb, 0x24, 0x4e, 0x79, 0x10, 0x27, 0x91, 0x27, 0x66, 0x79, 0x90, 0xe3, 0x5b, 0xa6, 0x65,
- 0x90, 0x87, 0xe0, 0xf4, 0xed, 0xea, 0xa4, 0x56, 0xbb, 0x55, 0x99, 0x2b, 0xd7, 0x6e, 0xcf, 0x55,
- 0x17, 0x26, 0x27, 0x2a, 0x53, 0x95, 0xc9, 0xf2, 0x68, 0x0f, 0x39, 0x09, 0x27, 0x42, 0xd4, 0xf4,
- 0xed, 0xd9, 0xd2, 0xdc, 0x68, 0x86, 0x8c, 0xc1, 0x70, 0x08, 0x1c, 0x9f, 0x5f, 0x1c, 0xcd, 0x3e,
- 0xf1, 0x7e, 0x18, 0xc4, 0x5d, 0x1c, 0x5f, 0xd1, 0xc8, 0x10, 0xf4, 0xcf, 0x8f, 0x57, 0x27, 0xb5,
- 0x3b, 0xc8, 0x04, 0xa0, 0x50, 0x9e, 0x9c, 0x63, 0x0c, 0x33, 0x4f, 0xfc, 0x9b, 0x0c, 0x40, 0x75,
- 0x6a, 0x71, 0x41, 0x10, 0x0e, 0x42, 0x5f, 0x65, 0xee, 0x4e, 0x69, 0xa6, 0xc2, 0xe8, 0xfa, 0x21,
- 0x3f, 0xbf, 0x30, 0xc9, 0x6a, 0x18, 0x80, 0xde, 0x89, 0x99, 0xf9, 0xea, 0xe4, 0x68, 0x96, 0x01,
- 0xb5, 0xc9, 0x52, 0x79, 0x34, 0xc7, 0x80, 0x77, 0xb5, 0xca, 0xe2, 0xe4, 0x68, 0x9e, 0xfd, 0x39,
- 0x53, 0x5d, 0x2c, 0x2d, 0x8e, 0xf6, 0xb2, 0x3f, 0xa7, 0xf0, 0xcf, 0x02, 0x63, 0x56, 0x9d, 0x5c,
- 0xc4, 0x1f, 0x7d, 0xac, 0x09, 0x53, 0xfe, 0xaf, 0x7e, 0x86, 0x62, 0xac, 0xcb, 0x15, 0x6d, 0x74,
- 0x80, 0xfd, 0x60, 0x2c, 0xd9, 0x0f, 0x60, 0x8d, 0xd3, 0x26, 0x67, 0xe7, 0xef, 0x4c, 0x8e, 0x0e,
- 0x32, 0x5e, 0xb3, 0xb7, 0x18, 0x78, 0x88, 0xfd, 0xa9, 0xcd, 0xb2, 0x3f, 0x87, 0x19, 0x27, 0x6d,
- 0xb2, 0x34, 0xb3, 0x50, 0x5a, 0x9c, 0x1e, 0x1d, 0x61, 0xed, 0x41, 0x9e, 0x27, 0x78, 0xc9, 0xb9,
- 0xd2, 0xec, 0xe4, 0xe8, 0xa8, 0xa0, 0x29, 0xcf, 0x54, 0xe6, 0x6e, 0x8d, 0x8e, 0x61, 0x43, 0xde,
- 0x9c, 0xc5, 0x1f, 0x84, 0x15, 0xc0, 0xbf, 0x4e, 0x3e, 0xf1, 0x71, 0x28, 0xcc, 0x57, 0xd1, 0x6e,
- 0x3b, 0x0b, 0x27, 0xe7, 0xab, 0xb5, 0xc5, 0x37, 0x17, 0x26, 0x63, 0xf2, 0x1e, 0x83, 0x61, 0x1f,
- 0x31, 0x53, 0x99, 0xbb, 0xfd, 0x11, 0x2e, 0x6d, 0x1f, 0x34, 0x5b, 0x9a, 0x98, 0xaf, 0x8e, 0x66,
- 0x59, 0xaf, 0xf8, 0xa0, 0xbb, 0x95, 0xb9, 0xf2, 0xfc, 0xdd, 0xea, 0x68, 0xee, 0x89, 0x7b, 0x7e,
- 0x6e, 0xd7, 0x79, 0xc7, 0x5c, 0x31, 0x2d, 0x72, 0x01, 0x1e, 0x2a, 0x4f, 0xde, 0xa9, 0x4c, 0x4c,
- 0xd6, 0xe6, 0xb5, 0xca, 0xcd, 0xca, 0x5c, 0xac, 0xa6, 0xd3, 0x30, 0x16, 0x45, 0x97, 0x16, 0x2a,
- 0xa3, 0x19, 0x72, 0x06, 0x48, 0x14, 0xfc, 0x7a, 0x69, 0x76, 0x6a, 0x34, 0x4b, 0x14, 0x38, 0x15,
- 0x85, 0x57, 0xe6, 0x16, 0x6f, 0xcf, 0x4d, 0x8e, 0xe6, 0x9e, 0xf8, 0xf9, 0x0c, 0x9c, 0x4e, 0x0d,
- 0x23, 0x40, 0x54, 0xb8, 0x38, 0x39, 0x53, 0xaa, 0x2e, 0x56, 0x26, 0xaa, 0x93, 0x25, 0x6d, 0x62,
- 0xba, 0x36, 0x51, 0x5a, 0x9c, 0xbc, 0x39, 0xaf, 0xbd, 0x59, 0xbb, 0x39, 0x39, 0x37, 0xa9, 0x95,
- 0x66, 0x46, 0x7b, 0xc8, 0x63, 0x50, 0xec, 0x40, 0x53, 0x9d, 0x9c, 0xb8, 0xad, 0x55, 0x16, 0xdf,
- 0x1c, 0xcd, 0x90, 0x47, 0xe1, 0x42, 0x47, 0x22, 0xf6, 0x7b, 0x34, 0x4b, 0x2e, 0xc2, 0xb9, 0x4e,
- 0x24, 0x6f, 0xcc, 0x8c, 0xe6, 0x9e, 0xf8, 0x89, 0x0c, 0x90, 0xe4, 0x3b, 0x70, 0xf2, 0x08, 0x9c,
- 0x67, 0x7a, 0x51, 0xeb, 0xdc, 0xc0, 0x47, 0xe1, 0x42, 0x2a, 0x85, 0xd4, 0xbc, 0x22, 0x3c, 0xdc,
- 0x81, 0x44, 0x34, 0xee, 0x3c, 0x28, 0xe9, 0x04, 0xd8, 0xb4, 0xdf, 0xcc, 0xc0, 0xe9, 0x54, 0x23,
- 0x92, 0x5c, 0x86, 0xf7, 0x95, 0xca, 0xb3, 0xac, 0x6f, 0x26, 0x16, 0x2b, 0xf3, 0x73, 0xd5, 0xda,
- 0xec, 0x54, 0xa9, 0xc6, 0xb4, 0xef, 0x76, 0x35, 0xd6, 0x9b, 0x97, 0x40, 0xed, 0x42, 0x39, 0x31,
- 0x5d, 0x9a, 0xbb, 0xc9, 0x86, 0x1f, 0x79, 0x1f, 0x3c, 0xd2, 0x91, 0x6e, 0x72, 0xae, 0x34, 0x3e,
- 0x33, 0x59, 0x1e, 0xcd, 0x92, 0xc7, 0xe1, 0xd1, 0x8e, 0x54, 0xe5, 0x4a, 0x95, 0x93, 0xe5, 0xc6,
- 0xcb, 0xef, 0xfc, 0xa3, 0x8b, 0x3d, 0xef, 0x7c, 0xeb, 0x62, 0xe6, 0x8f, 0xbe, 0x75, 0x31, 0xf3,
- 0x17, 0xdf, 0xba, 0x98, 0xf9, 0xe8, 0xf5, 0xdd, 0xbc, 0xef, 0xe7, 0xd3, 0xd6, 0x52, 0x01, 0x27,
- 0xf4, 0x67, 0xfe, 0x43, 0x00, 0x00, 0x00, 0xff, 0xff, 0x80, 0x6b, 0x6a, 0x5a, 0x29, 0x58, 0x01,
- 0x00,
+ // 15715 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x74, 0x24, 0xc7,
+ 0x75, 0x18, 0x8c, 0x79, 0x60, 0x00, 0x5c, 0x3c, 0x16, 0xa8, 0x7d, 0x35, 0x97, 0xbb, 0x3b, 0x64,
+ 0x53, 0x5c, 0xed, 0x52, 0xe4, 0xae, 0xb8, 0x5c, 0x92, 0xe2, 0x4b, 0xe4, 0x00, 0x03, 0x2c, 0x86,
+ 0x8b, 0x17, 0x7b, 0xb0, 0xbb, 0xa2, 0x5e, 0xe3, 0xc6, 0x74, 0x01, 0x68, 0xee, 0x4c, 0xf7, 0xa8,
+ 0xbb, 0x67, 0xb1, 0xe0, 0xf7, 0x25, 0xb1, 0x1c, 0x3f, 0x24, 0x47, 0x92, 0x15, 0x39, 0xb6, 0xfc,
+ 0x4a, 0x2c, 0xdb, 0x71, 0x62, 0xfb, 0x38, 0x76, 0x9c, 0xf8, 0xd8, 0x96, 0x1d, 0x9d, 0xd8, 0x51,
+ 0x1e, 0x74, 0x74, 0x9c, 0x63, 0x3b, 0x89, 0x8f, 0x8f, 0xe3, 0x40, 0x8e, 0x12, 0xe7, 0x07, 0x4e,
+ 0x72, 0x8e, 0x93, 0xe8, 0xc4, 0x8a, 0xe3, 0xe4, 0xe4, 0xd4, 0xad, 0xea, 0xee, 0xea, 0xc7, 0x0c,
+ 0x9e, 0x34, 0x08, 0x2d, 0xfe, 0xec, 0x62, 0xee, 0xbd, 0x75, 0xab, 0xfa, 0xd6, 0xad, 0xaa, 0x5b,
+ 0x55, 0xb7, 0xee, 0x85, 0x4b, 0x1e, 0x6d, 0xd0, 0x96, 0xed, 0x78, 0x57, 0x1a, 0x74, 0x45, 0xaf,
+ 0xaf, 0x5f, 0xf1, 0xd6, 0x5b, 0xd4, 0xbd, 0x42, 0xef, 0x52, 0xcb, 0xf3, 0xff, 0xbb, 0xdc, 0x72,
+ 0x6c, 0xcf, 0x26, 0x05, 0xfe, 0xeb, 0xcc, 0x89, 0x15, 0x7b, 0xc5, 0x46, 0xd0, 0x15, 0xf6, 0x17,
+ 0xc7, 0x9e, 0x39, 0xbb, 0x62, 0xdb, 0x2b, 0x0d, 0x7a, 0x05, 0x7f, 0x2d, 0xb5, 0x97, 0xaf, 0xb8,
+ 0x9e, 0xd3, 0xae, 0x7b, 0x02, 0x5b, 0x8c, 0x63, 0x3d, 0xb3, 0x49, 0x5d, 0x4f, 0x6f, 0xb6, 0x04,
+ 0xc1, 0xf9, 0x38, 0xc1, 0x9a, 0xa3, 0xb7, 0x5a, 0xd4, 0x11, 0x95, 0x9f, 0x79, 0x38, 0xbd, 0x9d,
+ 0xf8, 0xaf, 0x20, 0x79, 0x22, 0x9d, 0xc4, 0x67, 0x14, 0xe3, 0xa8, 0x7e, 0x2e, 0x0b, 0xfd, 0xb3,
+ 0xd4, 0xd3, 0x0d, 0xdd, 0xd3, 0xc9, 0x59, 0xe8, 0xad, 0x58, 0x06, 0xbd, 0xa7, 0x64, 0x1e, 0xca,
+ 0x5c, 0xcc, 0x8d, 0x17, 0x36, 0x37, 0x8a, 0x59, 0x6a, 0x6a, 0x1c, 0x48, 0xce, 0x41, 0x7e, 0x71,
+ 0xbd, 0x45, 0x95, 0xec, 0x43, 0x99, 0x8b, 0x03, 0xe3, 0x03, 0x9b, 0x1b, 0xc5, 0x5e, 0x94, 0x85,
+ 0x86, 0x60, 0xf2, 0x30, 0x64, 0x2b, 0x65, 0x25, 0x87, 0xc8, 0xb1, 0xcd, 0x8d, 0xe2, 0x70, 0xdb,
+ 0x34, 0x1e, 0xb7, 0x9b, 0xa6, 0x47, 0x9b, 0x2d, 0x6f, 0x5d, 0xcb, 0x56, 0xca, 0xe4, 0x02, 0xe4,
+ 0x27, 0x6c, 0x83, 0x2a, 0x79, 0x24, 0x22, 0x9b, 0x1b, 0xc5, 0x91, 0xba, 0x6d, 0x50, 0x89, 0x0a,
+ 0xf1, 0xe4, 0x15, 0xc8, 0x2f, 0x9a, 0x4d, 0xaa, 0xf4, 0x3e, 0x94, 0xb9, 0x38, 0x78, 0xf5, 0xcc,
+ 0x65, 0x2e, 0x95, 0xcb, 0xbe, 0x54, 0x2e, 0x2f, 0xfa, 0x62, 0x1b, 0x1f, 0x7d, 0x6b, 0xa3, 0xd8,
+ 0xb3, 0xb9, 0x51, 0xcc, 0x33, 0x49, 0x7e, 0xf6, 0xab, 0xc5, 0x8c, 0x86, 0x25, 0xc9, 0x8b, 0x30,
+ 0x38, 0xd1, 0x68, 0xbb, 0x1e, 0x75, 0xe6, 0xf4, 0x26, 0x55, 0x0a, 0x58, 0xe1, 0x99, 0xcd, 0x8d,
+ 0xe2, 0xa9, 0x3a, 0x07, 0xd7, 0x2c, 0xbd, 0x29, 0x57, 0x2c, 0x93, 0xab, 0xbf, 0x92, 0x81, 0x63,
+ 0x55, 0xea, 0xba, 0xa6, 0x6d, 0x05, 0xb2, 0x79, 0x14, 0x06, 0x04, 0xa8, 0x52, 0x46, 0xf9, 0x0c,
+ 0x8c, 0xf7, 0x6d, 0x6e, 0x14, 0x73, 0xae, 0x69, 0x68, 0x21, 0x86, 0xbc, 0x17, 0xfa, 0x6e, 0x9b,
+ 0xde, 0xea, 0xec, 0x54, 0x49, 0xc8, 0xe9, 0xd4, 0xe6, 0x46, 0x91, 0xac, 0x99, 0xde, 0x6a, 0xad,
+ 0xb9, 0xac, 0x4b, 0x15, 0xfa, 0x64, 0x64, 0x06, 0x46, 0x17, 0x1c, 0xf3, 0xae, 0xee, 0xd1, 0x1b,
+ 0x74, 0x7d, 0xc1, 0x6e, 0x98, 0xf5, 0x75, 0x21, 0xc5, 0x87, 0x36, 0x37, 0x8a, 0x67, 0x5b, 0x1c,
+ 0x57, 0xbb, 0x43, 0xd7, 0x6b, 0x2d, 0xc4, 0x4a, 0x4c, 0x12, 0x25, 0xd5, 0x5f, 0x2d, 0xc0, 0xd0,
+ 0x4d, 0x97, 0x3a, 0x41, 0xbb, 0x2f, 0x40, 0x9e, 0xfd, 0x16, 0x4d, 0x46, 0x99, 0xb7, 0x5d, 0xea,
+ 0xc8, 0x32, 0x67, 0x78, 0x72, 0x09, 0x7a, 0x67, 0xec, 0x15, 0xd3, 0x12, 0xcd, 0x3e, 0xbe, 0xb9,
+ 0x51, 0x3c, 0xd6, 0x60, 0x00, 0x89, 0x92, 0x53, 0x90, 0xf7, 0xc3, 0x50, 0xa5, 0xc9, 0x74, 0xc8,
+ 0xb6, 0x74, 0xcf, 0x76, 0x44, 0x6b, 0x51, 0xba, 0xa6, 0x04, 0x97, 0x0a, 0x46, 0xe8, 0xc9, 0xf3,
+ 0x00, 0xa5, 0xdb, 0x55, 0xcd, 0x6e, 0xd0, 0x92, 0x36, 0x27, 0x94, 0x01, 0x4b, 0xeb, 0x6b, 0x6e,
+ 0xcd, 0xb1, 0x1b, 0xb4, 0xa6, 0x3b, 0x72, 0xb5, 0x12, 0x35, 0x99, 0x84, 0x91, 0x52, 0xbd, 0x4e,
+ 0x5d, 0x57, 0xa3, 0x1f, 0x6b, 0x53, 0xd7, 0x73, 0x95, 0xde, 0x87, 0x72, 0x17, 0x07, 0xc6, 0xcf,
+ 0x6d, 0x6e, 0x14, 0x1f, 0xd0, 0x11, 0x53, 0x73, 0x04, 0x4a, 0x62, 0x11, 0x2b, 0x44, 0xc6, 0x61,
+ 0xb8, 0xf4, 0x66, 0xdb, 0xa1, 0x15, 0x83, 0x5a, 0x9e, 0xe9, 0xad, 0x0b, 0x0d, 0x39, 0xbb, 0xb9,
+ 0x51, 0x54, 0x74, 0x86, 0xa8, 0x99, 0x02, 0x23, 0x31, 0x89, 0x16, 0x21, 0xf3, 0x30, 0x76, 0x7d,
+ 0x62, 0xa1, 0x4a, 0x9d, 0xbb, 0x66, 0x9d, 0x96, 0xea, 0x75, 0xbb, 0x6d, 0x79, 0x4a, 0x1f, 0xf2,
+ 0x79, 0x78, 0x73, 0xa3, 0x78, 0x6e, 0xa5, 0xde, 0xaa, 0xb9, 0x1c, 0x5b, 0xd3, 0x39, 0x5a, 0x62,
+ 0x96, 0x2c, 0x4b, 0x3e, 0x08, 0xc3, 0x8b, 0x0e, 0xd3, 0x42, 0xa3, 0x4c, 0x19, 0x5c, 0xe9, 0x47,
+ 0xfd, 0x3f, 0x75, 0x59, 0x4c, 0x40, 0x1c, 0xea, 0xf7, 0x2c, 0x6f, 0xac, 0xc7, 0x0b, 0xd4, 0x0c,
+ 0xc4, 0xc9, 0x8d, 0x8d, 0xb0, 0x22, 0x14, 0x14, 0xf6, 0xf1, 0xa6, 0x43, 0x8d, 0x84, 0xb6, 0x0d,
+ 0x60, 0x9b, 0x2f, 0x6d, 0x6e, 0x14, 0x1f, 0x75, 0x04, 0x4d, 0xad, 0xab, 0xda, 0x75, 0x64, 0x45,
+ 0x26, 0xa1, 0x9f, 0x69, 0xd3, 0x0d, 0xd3, 0x32, 0x14, 0x78, 0x28, 0x73, 0x71, 0xe4, 0xea, 0xa8,
+ 0xdf, 0x7a, 0x1f, 0x3e, 0x7e, 0x7a, 0x73, 0xa3, 0x78, 0x9c, 0xe9, 0x60, 0xed, 0x8e, 0x69, 0xc9,
+ 0x53, 0x44, 0x50, 0x94, 0x8d, 0xa2, 0x71, 0xdb, 0xc3, 0xa1, 0x3b, 0x18, 0x8e, 0xa2, 0x25, 0xdb,
+ 0x8b, 0x0f, 0x5b, 0x9f, 0x8c, 0x4c, 0xc0, 0xf0, 0xb8, 0xed, 0x55, 0x2c, 0xd7, 0xd3, 0xad, 0x3a,
+ 0xad, 0x94, 0x95, 0x21, 0x2c, 0x87, 0x6a, 0xc1, 0xca, 0x99, 0x02, 0x53, 0x8b, 0x4c, 0x4a, 0xd1,
+ 0x32, 0xea, 0x9f, 0xe6, 0x61, 0x84, 0xf5, 0x89, 0x34, 0x7c, 0x4a, 0x6c, 0x26, 0x60, 0x10, 0x56,
+ 0x8b, 0xdb, 0xd2, 0xeb, 0x54, 0x8c, 0x24, 0xfc, 0x0a, 0xcb, 0x07, 0x4a, 0x3c, 0xe3, 0xf4, 0xe4,
+ 0x12, 0xf4, 0x73, 0x50, 0xa5, 0x2c, 0x06, 0xd7, 0xf0, 0xe6, 0x46, 0x71, 0xc0, 0x45, 0x58, 0xcd,
+ 0x34, 0xb4, 0x00, 0xcd, 0xb4, 0x9b, 0xff, 0x3d, 0x6d, 0xbb, 0x1e, 0x63, 0x2e, 0xc6, 0x16, 0x7e,
+ 0x86, 0x28, 0xb0, 0x2a, 0x50, 0xb2, 0x76, 0x47, 0x0b, 0x91, 0xe7, 0x00, 0x38, 0xa4, 0x64, 0x18,
+ 0x8e, 0x18, 0x60, 0x0f, 0x6c, 0x6e, 0x14, 0x4f, 0x0a, 0x16, 0xba, 0x61, 0xc8, 0xa3, 0x53, 0x22,
+ 0x26, 0x4d, 0x18, 0xe2, 0xbf, 0x66, 0xf4, 0x25, 0xda, 0xe0, 0xa3, 0x6b, 0xf0, 0xea, 0x45, 0xbf,
+ 0x13, 0xa3, 0xd2, 0xb9, 0x2c, 0x93, 0x4e, 0x5a, 0x9e, 0xb3, 0x3e, 0x5e, 0x14, 0x13, 0xf2, 0x69,
+ 0x51, 0x55, 0x03, 0x71, 0xf2, 0x54, 0x20, 0x97, 0x61, 0xf3, 0xf4, 0x94, 0xed, 0xac, 0xe9, 0x8e,
+ 0x41, 0x8d, 0xf1, 0x75, 0x79, 0x9e, 0x5e, 0xf6, 0xc1, 0xb5, 0x25, 0x59, 0xf5, 0x64, 0x72, 0xd6,
+ 0xe9, 0x9c, 0x5b, 0xb5, 0xbd, 0x84, 0x2a, 0xd7, 0x97, 0x90, 0x96, 0xdb, 0x5e, 0x8a, 0xab, 0x59,
+ 0xb4, 0x0c, 0x9b, 0x0a, 0x38, 0xe0, 0x16, 0x75, 0xd8, 0x24, 0x8e, 0xa3, 0x4e, 0x4c, 0x05, 0x82,
+ 0xc9, 0x5d, 0x8e, 0x49, 0xf2, 0x10, 0x45, 0xce, 0xbc, 0x0c, 0x63, 0x09, 0x51, 0x90, 0x51, 0xc8,
+ 0xdd, 0xa1, 0xeb, 0x5c, 0x5d, 0x34, 0xf6, 0x27, 0x39, 0x01, 0xbd, 0x77, 0xf5, 0x46, 0x5b, 0x2c,
+ 0xa1, 0x1a, 0xff, 0xf1, 0x7c, 0xf6, 0x7d, 0x19, 0xb6, 0xe2, 0x90, 0x09, 0xdb, 0xb2, 0x68, 0xdd,
+ 0x93, 0x17, 0x9d, 0x67, 0x60, 0x60, 0xc6, 0xae, 0xeb, 0x0d, 0xec, 0x47, 0xae, 0x77, 0xca, 0xe6,
+ 0x46, 0xf1, 0x04, 0xeb, 0xc0, 0xcb, 0x0d, 0x86, 0x91, 0xda, 0x14, 0x92, 0x32, 0x05, 0xd0, 0x68,
+ 0xd3, 0xf6, 0x28, 0x16, 0xcc, 0x86, 0x0a, 0x80, 0x05, 0x1d, 0x44, 0xc9, 0x0a, 0x10, 0x12, 0x93,
+ 0x2b, 0xd0, 0xbf, 0xc0, 0xd6, 0xd9, 0xba, 0xdd, 0x10, 0xca, 0x87, 0x4b, 0x01, 0xae, 0xbd, 0xf2,
+ 0x58, 0xf5, 0x89, 0xd4, 0x69, 0x18, 0x99, 0x68, 0x98, 0xd4, 0xf2, 0xe4, 0x56, 0xb3, 0x91, 0x5c,
+ 0x5a, 0xa1, 0x96, 0x27, 0xb7, 0x1a, 0xc7, 0xbc, 0xce, 0xa0, 0x72, 0xab, 0x03, 0x52, 0xf5, 0x5f,
+ 0xe5, 0xe0, 0x81, 0x1b, 0xed, 0x25, 0xea, 0x58, 0xd4, 0xa3, 0xae, 0x58, 0x90, 0x03, 0xae, 0x73,
+ 0x30, 0x96, 0x40, 0x0a, 0xee, 0xb8, 0x50, 0xde, 0x09, 0x90, 0x35, 0xb1, 0xc6, 0xcb, 0xb3, 0x6d,
+ 0xa2, 0x28, 0x99, 0x86, 0x63, 0x21, 0x90, 0x35, 0xc2, 0x55, 0xb2, 0xb8, 0x94, 0x9c, 0xdf, 0xdc,
+ 0x28, 0x9e, 0x91, 0xb8, 0xb1, 0x66, 0xcb, 0x1a, 0x1c, 0x2f, 0x46, 0x6e, 0xc0, 0x68, 0x08, 0xba,
+ 0xee, 0xd8, 0xed, 0x96, 0xab, 0xe4, 0x90, 0x55, 0x71, 0x73, 0xa3, 0xf8, 0xa0, 0xc4, 0x6a, 0x05,
+ 0x91, 0xf2, 0x02, 0x1e, 0x2f, 0x48, 0xbe, 0x3d, 0x23, 0x73, 0x13, 0xa3, 0x30, 0x8f, 0xa3, 0xf0,
+ 0x59, 0x7f, 0x14, 0x76, 0x14, 0xd2, 0xe5, 0x78, 0x49, 0x31, 0x28, 0x63, 0xcd, 0x48, 0x0c, 0xca,
+ 0x44, 0x8d, 0x67, 0x26, 0xe0, 0x64, 0x2a, 0xaf, 0x1d, 0x69, 0xf5, 0x1f, 0xe7, 0x64, 0x2e, 0x0b,
+ 0xb6, 0x11, 0x74, 0xe6, 0xbc, 0xdc, 0x99, 0x0b, 0xb6, 0x81, 0x53, 0x7d, 0x26, 0x5c, 0x3b, 0xa5,
+ 0xc6, 0xb6, 0x6c, 0x23, 0x3e, 0xeb, 0x27, 0xcb, 0x92, 0x8f, 0xc2, 0xa9, 0x04, 0x90, 0x4f, 0xd7,
+ 0x5c, 0xfb, 0x2f, 0x6c, 0x6e, 0x14, 0xd5, 0x14, 0xae, 0xf1, 0xd9, 0xbb, 0x03, 0x17, 0xa2, 0xc3,
+ 0x69, 0x49, 0xea, 0xb6, 0xe5, 0xe9, 0xa6, 0x25, 0x8c, 0x4b, 0x3e, 0x4a, 0xde, 0xbd, 0xb9, 0x51,
+ 0x7c, 0x44, 0xd6, 0x41, 0x9f, 0x26, 0xde, 0xf8, 0x4e, 0x7c, 0x88, 0x01, 0x4a, 0x0a, 0xaa, 0xd2,
+ 0xd4, 0x57, 0x7c, 0x8b, 0xf9, 0xe2, 0xe6, 0x46, 0xf1, 0x5d, 0xa9, 0x75, 0x98, 0x8c, 0x4a, 0x5e,
+ 0xa1, 0x3b, 0x71, 0x22, 0x1a, 0x90, 0x10, 0x37, 0x67, 0x1b, 0x14, 0xbf, 0xa1, 0x17, 0xf9, 0xab,
+ 0x9b, 0x1b, 0xc5, 0xf3, 0x12, 0x7f, 0xcb, 0x36, 0x68, 0xbc, 0xf9, 0x29, 0xa5, 0xd5, 0x5f, 0xc9,
+ 0xc1, 0xf9, 0x6a, 0x69, 0x76, 0xa6, 0x62, 0xf8, 0x26, 0xcd, 0x82, 0x63, 0xdf, 0x35, 0x0d, 0x69,
+ 0xf4, 0x2e, 0xc1, 0xe9, 0x18, 0x6a, 0x12, 0xad, 0xa8, 0xc0, 0x98, 0xc6, 0x6f, 0xf3, 0xcd, 0xa5,
+ 0x96, 0xa0, 0xa9, 0x71, 0x53, 0x2b, 0xba, 0x68, 0x77, 0x62, 0xc4, 0xfa, 0x28, 0x86, 0xaa, 0xae,
+ 0xda, 0x8e, 0x57, 0x6f, 0x7b, 0x42, 0x09, 0xb0, 0x8f, 0x12, 0x75, 0xb8, 0x82, 0xa8, 0x4b, 0x15,
+ 0x3e, 0x1f, 0xf2, 0xc9, 0x0c, 0x8c, 0x96, 0x3c, 0xcf, 0x31, 0x97, 0xda, 0x1e, 0x9d, 0xd5, 0x5b,
+ 0x2d, 0xd3, 0x5a, 0xc1, 0xb1, 0x3e, 0x78, 0xf5, 0xc5, 0x60, 0x8d, 0xec, 0x2a, 0x89, 0xcb, 0xf1,
+ 0xe2, 0xd2, 0x10, 0xd5, 0x7d, 0x54, 0xad, 0xc9, 0x71, 0xf2, 0x10, 0x8d, 0x97, 0x63, 0x43, 0x34,
+ 0x95, 0xd7, 0x8e, 0x86, 0xe8, 0xe7, 0x72, 0x70, 0x76, 0xfe, 0x8e, 0xa7, 0x6b, 0xd4, 0xb5, 0xdb,
+ 0x4e, 0x9d, 0xba, 0x37, 0x5b, 0x86, 0xee, 0xd1, 0x70, 0xa4, 0x16, 0xa1, 0xb7, 0x64, 0x18, 0xd4,
+ 0x40, 0x76, 0xbd, 0x7c, 0xdb, 0xa7, 0x33, 0x80, 0xc6, 0xe1, 0xe4, 0x51, 0xe8, 0x13, 0x65, 0x90,
+ 0x7b, 0xef, 0xf8, 0xe0, 0xe6, 0x46, 0xb1, 0xaf, 0xcd, 0x41, 0x9a, 0x8f, 0x63, 0x64, 0x65, 0xda,
+ 0xa0, 0x8c, 0x2c, 0x17, 0x92, 0x19, 0x1c, 0xa4, 0xf9, 0x38, 0xf2, 0x1a, 0x8c, 0x20, 0xdb, 0xa0,
+ 0x3d, 0x62, 0xee, 0x3b, 0xe1, 0x4b, 0x57, 0x6e, 0x2c, 0x5f, 0x9a, 0xb0, 0x35, 0x35, 0xc7, 0x2f,
+ 0xa0, 0xc5, 0x18, 0x90, 0xdb, 0x30, 0x2a, 0x1a, 0x11, 0x32, 0xed, 0xed, 0xc2, 0xf4, 0xe4, 0xe6,
+ 0x46, 0x71, 0x4c, 0xb4, 0x5f, 0x62, 0x9b, 0x60, 0xc2, 0x18, 0x8b, 0x66, 0x87, 0x8c, 0x0b, 0x5b,
+ 0x31, 0x16, 0x5f, 0x2c, 0x33, 0x8e, 0x33, 0x51, 0x5f, 0x87, 0x21, 0xb9, 0x20, 0x39, 0x85, 0x5b,
+ 0x6b, 0x3e, 0x4e, 0x70, 0x53, 0x6e, 0x1a, 0xb8, 0x9f, 0x7e, 0x12, 0x06, 0xcb, 0xd4, 0xad, 0x3b,
+ 0x66, 0x8b, 0x59, 0x0d, 0x42, 0xc9, 0x8f, 0x6d, 0x6e, 0x14, 0x07, 0x8d, 0x10, 0xac, 0xc9, 0x34,
+ 0xea, 0xff, 0xcc, 0xc0, 0x29, 0xc6, 0xbb, 0xe4, 0xba, 0xe6, 0x8a, 0xd5, 0x94, 0x97, 0xed, 0xc7,
+ 0xa1, 0x50, 0xc5, 0xfa, 0x44, 0x4d, 0x27, 0x36, 0x37, 0x8a, 0xa3, 0xbc, 0x05, 0x92, 0x1e, 0x0a,
+ 0x9a, 0x60, 0x5f, 0x99, 0xdd, 0x62, 0x5f, 0xc9, 0x4c, 0x5a, 0x4f, 0x77, 0x3c, 0xd3, 0x5a, 0xa9,
+ 0x7a, 0xba, 0xd7, 0x76, 0x23, 0x26, 0xad, 0xc0, 0xd4, 0x5c, 0x44, 0x45, 0x4c, 0xda, 0x48, 0x21,
+ 0xf2, 0x32, 0x0c, 0x4d, 0x5a, 0x46, 0xc8, 0x84, 0x4f, 0x88, 0x0f, 0x32, 0x4b, 0x93, 0x22, 0x3c,
+ 0xc9, 0x22, 0x52, 0x40, 0xfd, 0x7b, 0x19, 0x50, 0xf8, 0x26, 0x70, 0xc6, 0x74, 0xbd, 0x59, 0xda,
+ 0x5c, 0x92, 0x66, 0xa7, 0x29, 0x7f, 0x57, 0xc9, 0x70, 0xd2, 0x5a, 0x84, 0xa6, 0x80, 0xd8, 0x55,
+ 0x36, 0x4c, 0x37, 0xb1, 0xfd, 0x88, 0x95, 0x22, 0x15, 0xe8, 0xe3, 0x9c, 0xb9, 0x2d, 0x31, 0x78,
+ 0x55, 0xf1, 0x15, 0x21, 0x5e, 0x35, 0x57, 0x86, 0x26, 0x27, 0x96, 0x37, 0x34, 0xa2, 0xbc, 0xfa,
+ 0xf7, 0xb3, 0x30, 0x1a, 0x2f, 0x44, 0x6e, 0x43, 0xff, 0xab, 0xb6, 0x69, 0x51, 0x63, 0xde, 0xc2,
+ 0x16, 0x76, 0x3f, 0x1c, 0xf1, 0x6d, 0xf1, 0xe3, 0x6f, 0x60, 0x99, 0x9a, 0x6c, 0xc1, 0xe2, 0x59,
+ 0x49, 0xc0, 0x8c, 0x7c, 0x10, 0x06, 0x98, 0x0d, 0x78, 0x17, 0x39, 0x67, 0xb7, 0xe4, 0xfc, 0x90,
+ 0xe0, 0x7c, 0xc2, 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, 0xf5, 0x3b, 0xb3, 0xf0, 0x44, 0x28, 0x32,
+ 0x8d, 0xde, 0x35, 0xe9, 0x9a, 0x10, 0xe7, 0xaa, 0xd9, 0x12, 0x7b, 0x56, 0xa6, 0xf2, 0xee, 0xc4,
+ 0xaa, 0x6e, 0xad, 0x50, 0x83, 0x5c, 0x82, 0x5e, 0xcd, 0x6e, 0x50, 0x57, 0xc9, 0xa0, 0xb9, 0x86,
+ 0xd3, 0x89, 0xc3, 0x00, 0xf2, 0xa1, 0x07, 0x52, 0x10, 0x1b, 0x0a, 0x8b, 0x8e, 0x6e, 0x7a, 0x7e,
+ 0xcf, 0x96, 0x92, 0x3d, 0xbb, 0x8d, 0x1a, 0x2f, 0x73, 0x1e, 0x7c, 0xce, 0x47, 0x41, 0x78, 0x08,
+ 0x90, 0x05, 0xc1, 0x49, 0xce, 0x3c, 0x07, 0x83, 0x12, 0xf1, 0x8e, 0x26, 0xf5, 0x2f, 0xe6, 0x65,
+ 0x5d, 0xf7, 0x9b, 0x25, 0x74, 0xfd, 0x0a, 0xd3, 0x51, 0xd7, 0x65, 0x56, 0x05, 0x57, 0x72, 0xa1,
+ 0x89, 0x08, 0x8a, 0x6a, 0x22, 0x82, 0xc8, 0x53, 0xd0, 0xcf, 0x59, 0x04, 0xfb, 0x57, 0xdc, 0xfb,
+ 0x3a, 0x08, 0x8b, 0x2e, 0xcd, 0x01, 0x21, 0xf9, 0x99, 0x0c, 0x9c, 0xeb, 0x2a, 0x09, 0x54, 0x86,
+ 0xc1, 0xab, 0x4f, 0xef, 0x4a, 0x8c, 0xe3, 0x4f, 0x6c, 0x6e, 0x14, 0x2f, 0x35, 0x03, 0x92, 0x9a,
+ 0x23, 0xd1, 0xd4, 0xea, 0x9c, 0x48, 0x6a, 0x57, 0xf7, 0xa6, 0x30, 0xe3, 0x91, 0x57, 0x3a, 0x85,
+ 0x47, 0x47, 0x56, 0x7d, 0xdd, 0x6f, 0x64, 0x3e, 0x34, 0x1e, 0xc5, 0xf7, 0x2e, 0xfb, 0x24, 0x29,
+ 0xd5, 0x74, 0xe0, 0x42, 0xea, 0x70, 0x9a, 0x63, 0xca, 0xfa, 0xfa, 0xfc, 0xf2, 0xac, 0x6d, 0x79,
+ 0xab, 0x7e, 0x05, 0xbd, 0xf2, 0xd9, 0x0b, 0x56, 0x60, 0xe8, 0xeb, 0x35, 0x7b, 0xb9, 0xd6, 0x64,
+ 0x54, 0x29, 0x75, 0x74, 0xe2, 0xc4, 0x26, 0x5a, 0x31, 0xe6, 0xfc, 0x29, 0xa8, 0x10, 0x9e, 0x8c,
+ 0xf9, 0xe3, 0x34, 0x39, 0xe1, 0xc4, 0x0a, 0xa9, 0x15, 0x18, 0x9a, 0xb1, 0xeb, 0x77, 0x02, 0x75,
+ 0x79, 0x0e, 0x0a, 0x8b, 0xba, 0xb3, 0x42, 0x3d, 0x94, 0xc5, 0xe0, 0xd5, 0xb1, 0xcb, 0xfc, 0xb4,
+ 0x99, 0x11, 0x71, 0xc4, 0xf8, 0x88, 0x98, 0x0d, 0x0a, 0x1e, 0xfe, 0xd6, 0x44, 0x01, 0xf5, 0xab,
+ 0xbd, 0x30, 0x24, 0x4e, 0x46, 0x71, 0x36, 0x27, 0xcf, 0x87, 0x67, 0xcd, 0x62, 0xfa, 0x0a, 0x4e,
+ 0x87, 0x82, 0x53, 0xad, 0x21, 0xc6, 0xec, 0xb7, 0x37, 0x8a, 0x99, 0xcd, 0x8d, 0x62, 0x8f, 0xd6,
+ 0x2f, 0x6d, 0x2a, 0xc3, 0xf5, 0x46, 0x5a, 0x60, 0xe5, 0xb3, 0xce, 0x58, 0x59, 0xbe, 0xfe, 0xbc,
+ 0x0c, 0x7d, 0xa2, 0x0d, 0x42, 0xe3, 0x4e, 0x87, 0x67, 0x19, 0x91, 0x13, 0xde, 0x58, 0x69, 0xbf,
+ 0x14, 0x79, 0x11, 0x0a, 0x7c, 0x6f, 0x2f, 0x04, 0x70, 0x2a, 0xfd, 0x2c, 0x24, 0x56, 0x5c, 0x94,
+ 0x21, 0xd3, 0x00, 0xe1, 0xbe, 0x3e, 0x38, 0xd0, 0x16, 0x1c, 0x92, 0x3b, 0xfe, 0x18, 0x17, 0xa9,
+ 0x2c, 0x79, 0x06, 0x86, 0x16, 0xa9, 0xd3, 0x34, 0x2d, 0xbd, 0x51, 0x35, 0xdf, 0xf4, 0xcf, 0xb4,
+ 0x71, 0xe1, 0x75, 0xcd, 0x37, 0xe5, 0x91, 0x1b, 0xa1, 0x23, 0x1f, 0x49, 0xdb, 0x37, 0xf7, 0x61,
+ 0x43, 0x1e, 0xde, 0x72, 0x43, 0x19, 0x6b, 0x4f, 0xca, 0x36, 0xfa, 0x35, 0x18, 0x8e, 0x6c, 0x99,
+ 0xc4, 0xa1, 0xe5, 0xb9, 0x24, 0x6b, 0x69, 0xff, 0x17, 0x63, 0x1b, 0xe5, 0xc0, 0x34, 0xb9, 0x62,
+ 0x99, 0x9e, 0xa9, 0x37, 0x26, 0xec, 0x66, 0x53, 0xb7, 0x0c, 0x65, 0x20, 0xd4, 0x64, 0x93, 0x63,
+ 0x6a, 0x75, 0x8e, 0x92, 0x35, 0x39, 0x5a, 0x88, 0x6d, 0xcb, 0x45, 0x1f, 0x6a, 0xb4, 0x6e, 0x3b,
+ 0xcc, 0x16, 0xc0, 0x33, 0x49, 0xb1, 0x2d, 0x77, 0x39, 0xae, 0xe6, 0xf8, 0x48, 0xd9, 0xd8, 0x8e,
+ 0x17, 0x7c, 0x35, 0xdf, 0x3f, 0x38, 0x3a, 0x14, 0x3f, 0x46, 0x56, 0x7f, 0x3a, 0x07, 0x83, 0x82,
+ 0x94, 0x2d, 0xa5, 0x47, 0x0a, 0xbe, 0x17, 0x05, 0x4f, 0x55, 0xd4, 0xc2, 0x7e, 0x29, 0xaa, 0xfa,
+ 0xa9, 0x6c, 0x30, 0x1b, 0x2d, 0x38, 0xa6, 0xb5, 0xb7, 0xd9, 0xe8, 0x02, 0xc0, 0xc4, 0x6a, 0xdb,
+ 0xba, 0xc3, 0xaf, 0xcb, 0xb2, 0xe1, 0x75, 0x59, 0xdd, 0xd4, 0x24, 0x0c, 0x39, 0x07, 0xf9, 0x32,
+ 0xe3, 0xcf, 0x7a, 0x66, 0x68, 0x7c, 0xe0, 0x2d, 0xce, 0x29, 0xf3, 0x84, 0x86, 0x60, 0xb6, 0xb9,
+ 0x1a, 0x5f, 0xf7, 0x28, 0x37, 0x67, 0x73, 0x7c, 0x73, 0xb5, 0xc4, 0x00, 0x1a, 0x87, 0x93, 0x6b,
+ 0x30, 0x56, 0xa6, 0x0d, 0x7d, 0x7d, 0xd6, 0x6c, 0x34, 0x4c, 0x97, 0xd6, 0x6d, 0xcb, 0x70, 0x51,
+ 0xc8, 0xa2, 0xba, 0xa6, 0xab, 0x25, 0x09, 0x88, 0x0a, 0x85, 0xf9, 0xe5, 0x65, 0x97, 0x7a, 0x28,
+ 0xbe, 0xdc, 0x38, 0xb0, 0xc9, 0xd9, 0x46, 0x88, 0x26, 0x30, 0xea, 0xcf, 0x67, 0xd8, 0xee, 0xc5,
+ 0xbd, 0xe3, 0xd9, 0xad, 0x40, 0xcb, 0xf7, 0x24, 0x92, 0x4b, 0xa1, 0x5d, 0x91, 0xc5, 0xaf, 0x3d,
+ 0x26, 0xbe, 0xb6, 0x4f, 0xd8, 0x16, 0xa1, 0x45, 0x91, 0xfa, 0x55, 0xb9, 0x2d, 0xbe, 0x4a, 0xfd,
+ 0x93, 0x2c, 0x9c, 0x16, 0x2d, 0x9e, 0x68, 0x98, 0xad, 0x25, 0x5b, 0x77, 0x0c, 0x8d, 0xd6, 0xa9,
+ 0x79, 0x97, 0x1e, 0xce, 0x81, 0x17, 0x1d, 0x3a, 0xf9, 0x3d, 0x0c, 0x9d, 0xab, 0xb8, 0x11, 0x64,
+ 0x92, 0xc1, 0x03, 0x5f, 0x6e, 0x54, 0x8c, 0x6e, 0x6e, 0x14, 0x87, 0x0c, 0x0e, 0xc6, 0x23, 0x7f,
+ 0x4d, 0x26, 0x62, 0x4a, 0x32, 0x43, 0xad, 0x15, 0x6f, 0x15, 0x95, 0xa4, 0x97, 0x2b, 0x49, 0x03,
+ 0x21, 0x9a, 0xc0, 0xa8, 0xff, 0x35, 0x0b, 0x27, 0xe2, 0x22, 0xaf, 0x52, 0xcb, 0x38, 0x92, 0xf7,
+ 0xdb, 0x23, 0xef, 0xaf, 0xe7, 0xe0, 0x41, 0x51, 0xa6, 0xba, 0xaa, 0x3b, 0xd4, 0x28, 0x9b, 0x0e,
+ 0xad, 0x7b, 0xb6, 0xb3, 0x7e, 0x88, 0x0d, 0xa8, 0xfd, 0x13, 0xfb, 0x35, 0x28, 0x88, 0xed, 0x3f,
+ 0x5f, 0x67, 0x46, 0x82, 0x96, 0x20, 0x34, 0xb1, 0x42, 0xf1, 0xa3, 0x83, 0x58, 0x67, 0x15, 0xb6,
+ 0xd3, 0x59, 0xef, 0x83, 0xe1, 0x40, 0xf4, 0xb8, 0x11, 0xed, 0x0b, 0xad, 0x2d, 0xc3, 0x47, 0xe0,
+ 0x5e, 0x54, 0x8b, 0x12, 0x62, 0x6d, 0x3e, 0xa0, 0x52, 0x46, 0x6b, 0x68, 0x58, 0xd4, 0x16, 0x94,
+ 0x33, 0x0d, 0x4d, 0x26, 0x52, 0x37, 0xf2, 0x70, 0x26, 0xbd, 0xdb, 0x35, 0xaa, 0x1b, 0x47, 0xbd,
+ 0xfe, 0x4d, 0xd9, 0xeb, 0xe4, 0x61, 0xc8, 0x2f, 0xe8, 0xde, 0xaa, 0xb8, 0x7e, 0xc7, 0x3b, 0xe1,
+ 0x65, 0xb3, 0x41, 0x6b, 0x2d, 0xdd, 0x5b, 0xd5, 0x10, 0x25, 0xcd, 0x19, 0x80, 0x1c, 0x53, 0xe6,
+ 0x0c, 0x69, 0xb1, 0x1f, 0x7c, 0x28, 0x73, 0x31, 0x9f, 0xba, 0xd8, 0x7f, 0x35, 0xdf, 0x69, 0x5e,
+ 0xb9, 0xed, 0x98, 0x1e, 0x3d, 0xd2, 0xb0, 0x23, 0x0d, 0xdb, 0xa3, 0x86, 0xfd, 0x6e, 0x16, 0x86,
+ 0x83, 0x4d, 0xd3, 0x1b, 0xb4, 0x7e, 0x30, 0x6b, 0x55, 0xb8, 0x95, 0xc9, 0xed, 0x79, 0x2b, 0xb3,
+ 0x17, 0x85, 0x52, 0x83, 0x23, 0x4f, 0x6e, 0x1a, 0xa0, 0xc4, 0xf8, 0x91, 0x67, 0x70, 0xd0, 0xf9,
+ 0x30, 0xf4, 0xcd, 0xea, 0xf7, 0xcc, 0x66, 0xbb, 0x29, 0xac, 0x74, 0x74, 0x27, 0x6b, 0xea, 0xf7,
+ 0x34, 0x1f, 0xae, 0xfe, 0x9b, 0x0c, 0x8c, 0x08, 0xa1, 0x0a, 0xe6, 0x7b, 0x92, 0x6a, 0x28, 0x9d,
+ 0xec, 0x9e, 0xa5, 0x93, 0xdb, 0xbd, 0x74, 0xd4, 0x1f, 0xc9, 0x81, 0x32, 0x65, 0x36, 0xe8, 0xa2,
+ 0xa3, 0x5b, 0xee, 0x32, 0x75, 0xc4, 0x76, 0x7a, 0x92, 0xb1, 0xda, 0xd3, 0x07, 0x4a, 0x53, 0x4a,
+ 0x76, 0x57, 0x53, 0xca, 0x7b, 0x60, 0x40, 0x34, 0x26, 0x70, 0x65, 0xc4, 0x51, 0xe3, 0xf8, 0x40,
+ 0x2d, 0xc4, 0x33, 0xe2, 0x52, 0xab, 0xe5, 0xd8, 0x77, 0xa9, 0xc3, 0x6f, 0xa9, 0x04, 0xb1, 0xee,
+ 0x03, 0xb5, 0x10, 0x2f, 0x71, 0xa6, 0xbe, 0xbd, 0x28, 0x73, 0xa6, 0x8e, 0x16, 0xe2, 0xc9, 0x45,
+ 0xe8, 0x9f, 0xb1, 0xeb, 0x3a, 0x0a, 0x9a, 0x4f, 0x2b, 0x43, 0x9b, 0x1b, 0xc5, 0xfe, 0x86, 0x80,
+ 0x69, 0x01, 0x96, 0x51, 0x96, 0xed, 0x35, 0xab, 0x61, 0xeb, 0xdc, 0xf9, 0xa5, 0x9f, 0x53, 0x1a,
+ 0x02, 0xa6, 0x05, 0x58, 0x46, 0xc9, 0x64, 0x8e, 0x4e, 0x45, 0xfd, 0x21, 0xcf, 0x65, 0x01, 0xd3,
+ 0x02, 0xac, 0xfa, 0xf3, 0x79, 0xa6, 0xbd, 0xae, 0xf9, 0xe6, 0x7d, 0xbf, 0x2e, 0x84, 0x03, 0xa6,
+ 0x77, 0x17, 0x03, 0xe6, 0xbe, 0x39, 0xb0, 0x53, 0xff, 0xb4, 0x0f, 0x40, 0x48, 0x7f, 0xf2, 0x68,
+ 0x73, 0xb8, 0x37, 0xad, 0x29, 0xc3, 0xd8, 0xa4, 0xb5, 0xaa, 0x5b, 0x75, 0x6a, 0x84, 0xc7, 0x96,
+ 0x05, 0x1c, 0xda, 0xe8, 0x04, 0x49, 0x05, 0x32, 0x3c, 0xb7, 0xd4, 0x92, 0x05, 0xc8, 0x93, 0x30,
+ 0x58, 0xb1, 0x3c, 0xea, 0xe8, 0x75, 0xcf, 0xbc, 0x4b, 0xc5, 0xd4, 0x80, 0x37, 0xc3, 0x66, 0x08,
+ 0xd6, 0x64, 0x1a, 0x72, 0x0d, 0x86, 0x16, 0x74, 0xc7, 0x33, 0xeb, 0x66, 0x4b, 0xb7, 0x3c, 0x57,
+ 0xe9, 0xc7, 0x19, 0x0d, 0x2d, 0x8c, 0x96, 0x04, 0xd7, 0x22, 0x54, 0xe4, 0x23, 0x30, 0x80, 0x5b,
+ 0x53, 0xf4, 0xd7, 0x1e, 0xd8, 0xf2, 0xe2, 0xf0, 0x91, 0xd0, 0x3d, 0x90, 0x9f, 0xbe, 0xe2, 0x0d,
+ 0x70, 0xfc, 0xee, 0x30, 0xe0, 0x48, 0x3e, 0x00, 0x7d, 0x93, 0x96, 0x81, 0xcc, 0x61, 0x4b, 0xe6,
+ 0xaa, 0x60, 0x7e, 0x2a, 0x64, 0x6e, 0xb7, 0x62, 0xbc, 0x7d, 0x76, 0xe9, 0xa3, 0x6c, 0xf0, 0xed,
+ 0x1b, 0x65, 0x43, 0x6f, 0xc3, 0xb1, 0xf8, 0xf0, 0x7e, 0x1d, 0x8b, 0x8f, 0xec, 0xf2, 0x58, 0x5c,
+ 0x7d, 0x13, 0x06, 0xc7, 0x17, 0xa6, 0x82, 0xd1, 0xfb, 0x00, 0xe4, 0x16, 0x84, 0xa7, 0x42, 0x9e,
+ 0xdb, 0x33, 0x2d, 0xd3, 0xd0, 0x18, 0x8c, 0x5c, 0x82, 0xfe, 0x09, 0x74, 0x7f, 0x13, 0xb7, 0x88,
+ 0x79, 0xbe, 0xfe, 0xd5, 0x11, 0x86, 0x5e, 0xb0, 0x3e, 0x9a, 0x3c, 0x0a, 0x7d, 0x0b, 0x8e, 0xbd,
+ 0xe2, 0xe8, 0x4d, 0xb1, 0x06, 0xa3, 0xab, 0x48, 0x8b, 0x83, 0x34, 0x1f, 0xa7, 0x7e, 0x6f, 0xc6,
+ 0x37, 0xdb, 0x59, 0x89, 0x6a, 0x1b, 0x8f, 0xe6, 0xb1, 0xee, 0x7e, 0x5e, 0xc2, 0xe5, 0x20, 0xcd,
+ 0xc7, 0x91, 0x4b, 0xd0, 0x3b, 0xe9, 0x38, 0xb6, 0x23, 0xfb, 0xb8, 0x53, 0x06, 0x90, 0xaf, 0x7b,
+ 0x91, 0x82, 0x3c, 0x0b, 0x83, 0x7c, 0xce, 0xe1, 0x27, 0x9a, 0xb9, 0x6e, 0x37, 0xa5, 0x32, 0xa5,
+ 0xfa, 0xe5, 0x9c, 0x64, 0xb3, 0x71, 0x89, 0xdf, 0x87, 0xb7, 0x02, 0x4f, 0x41, 0x6e, 0x7c, 0x61,
+ 0x4a, 0x4c, 0x80, 0xc7, 0xfd, 0xa2, 0x92, 0xaa, 0xc4, 0xca, 0x31, 0x6a, 0x72, 0x16, 0xf2, 0x0b,
+ 0x4c, 0x7d, 0x0a, 0xa8, 0x1e, 0xfd, 0x9b, 0x1b, 0xc5, 0x7c, 0x8b, 0xe9, 0x0f, 0x42, 0x11, 0xcb,
+ 0x36, 0x33, 0x7c, 0xc7, 0xc4, 0xb1, 0xe1, 0x3e, 0xe6, 0x2c, 0xe4, 0x4b, 0xce, 0xca, 0x5d, 0x31,
+ 0x6b, 0x21, 0x56, 0x77, 0x56, 0xee, 0x6a, 0x08, 0x25, 0x57, 0x00, 0x34, 0xea, 0xb5, 0x1d, 0x0b,
+ 0x9f, 0x9f, 0x0c, 0xe0, 0xf9, 0x1b, 0xce, 0x86, 0x0e, 0x42, 0x6b, 0x75, 0xdb, 0xa0, 0x9a, 0x44,
+ 0xa2, 0xfe, 0x64, 0x78, 0xb1, 0x53, 0x36, 0xdd, 0x3b, 0x47, 0x5d, 0xb8, 0x83, 0x2e, 0xd4, 0xc5,
+ 0x11, 0x67, 0xb2, 0x93, 0x8a, 0xd0, 0x3b, 0xd5, 0xd0, 0x57, 0x5c, 0xec, 0x43, 0xe1, 0x4b, 0xb6,
+ 0xcc, 0x00, 0x1a, 0x87, 0xc7, 0xfa, 0xa9, 0x7f, 0xeb, 0x7e, 0xfa, 0x7c, 0x6f, 0x30, 0xda, 0xe6,
+ 0xa8, 0xb7, 0x66, 0x3b, 0x47, 0x5d, 0xb5, 0xdd, 0xae, 0xba, 0x00, 0x7d, 0x55, 0xa7, 0x2e, 0x1d,
+ 0x5d, 0xe0, 0x7e, 0xc0, 0x75, 0xea, 0xfc, 0xd8, 0xc2, 0x47, 0x32, 0xba, 0xb2, 0xeb, 0x21, 0x5d,
+ 0x5f, 0x48, 0x67, 0xb8, 0x9e, 0xa0, 0x13, 0x48, 0x41, 0xb7, 0x60, 0x3b, 0x9e, 0xe8, 0xb8, 0x80,
+ 0xae, 0x65, 0x3b, 0x9e, 0xe6, 0x23, 0xc9, 0x7b, 0x00, 0x16, 0x27, 0x16, 0x7c, 0x67, 0xfb, 0x81,
+ 0xd0, 0x17, 0x50, 0x78, 0xd9, 0x6b, 0x12, 0x9a, 0x2c, 0xc2, 0xc0, 0x7c, 0x8b, 0x3a, 0x7c, 0x2b,
+ 0xc4, 0x1f, 0x94, 0xbc, 0x3b, 0x26, 0x5a, 0xd1, 0xef, 0x97, 0xc5, 0xff, 0x01, 0x39, 0x5f, 0x5f,
+ 0x6c, 0xff, 0xa7, 0x16, 0x32, 0x22, 0xcf, 0x42, 0xa1, 0xc4, 0xed, 0xbc, 0x41, 0x64, 0x19, 0x88,
+ 0x0c, 0xb7, 0xa0, 0x1c, 0xc5, 0xf7, 0xec, 0x3a, 0xfe, 0xad, 0x09, 0x72, 0xf5, 0x12, 0x8c, 0xc6,
+ 0xab, 0x21, 0x83, 0xd0, 0x37, 0x31, 0x3f, 0x37, 0x37, 0x39, 0xb1, 0x38, 0xda, 0x43, 0xfa, 0x21,
+ 0x5f, 0x9d, 0x9c, 0x2b, 0x8f, 0x66, 0xd4, 0x9f, 0x95, 0x66, 0x10, 0xa6, 0x5a, 0x47, 0x57, 0xc3,
+ 0x7b, 0xba, 0x6f, 0x19, 0xc5, 0xfb, 0x50, 0x3c, 0x31, 0x68, 0x9a, 0x9e, 0x47, 0x0d, 0xb1, 0x4a,
+ 0xe0, 0x7d, 0xa1, 0x77, 0x4f, 0x4b, 0xe0, 0xc9, 0xe3, 0x30, 0x8c, 0x30, 0x71, 0x45, 0xc8, 0xf7,
+ 0xc7, 0xa2, 0x80, 0x73, 0x4f, 0x8b, 0x22, 0xd5, 0xaf, 0x84, 0xb7, 0xc3, 0x33, 0x54, 0x3f, 0xac,
+ 0x37, 0x8a, 0xef, 0x90, 0xfe, 0x52, 0xff, 0x3c, 0xcf, 0x9f, 0x80, 0xf0, 0xf7, 0x82, 0x07, 0x21,
+ 0xca, 0xf0, 0x48, 0x37, 0xb7, 0x83, 0x23, 0xdd, 0xc7, 0xa1, 0x30, 0x4b, 0xbd, 0x55, 0xdb, 0x77,
+ 0xfc, 0x42, 0x0f, 0xbd, 0x26, 0x42, 0x64, 0x0f, 0x3d, 0x4e, 0x43, 0xee, 0x00, 0xf1, 0x1f, 0x03,
+ 0x06, 0x8e, 0xd8, 0xfe, 0x11, 0xf2, 0xe9, 0xc4, 0x3e, 0xa5, 0x8a, 0x2f, 0x81, 0xd1, 0xc7, 0xfe,
+ 0x44, 0xe0, 0xe8, 0x2d, 0x79, 0x62, 0xfd, 0xd9, 0x46, 0xb1, 0xc0, 0x69, 0xb4, 0x14, 0xb6, 0xe4,
+ 0x35, 0x18, 0x98, 0x9d, 0x2a, 0x89, 0x87, 0x81, 0xdc, 0x2b, 0xe2, 0x81, 0x40, 0x8a, 0x3e, 0x22,
+ 0x10, 0x09, 0xbe, 0xb7, 0x69, 0x2e, 0xeb, 0xc9, 0x77, 0x81, 0x21, 0x17, 0xa6, 0x2d, 0xfc, 0xe5,
+ 0x8e, 0x38, 0x5d, 0x08, 0xb4, 0x25, 0xfa, 0x9e, 0x27, 0x2e, 0x2b, 0x8e, 0x8d, 0x69, 0x4b, 0xff,
+ 0x1e, 0x46, 0xf7, 0x3c, 0x8c, 0x95, 0x5a, 0xad, 0x86, 0x49, 0x0d, 0xd4, 0x17, 0xad, 0xdd, 0xa0,
+ 0xae, 0x70, 0xf9, 0xc1, 0xc7, 0x20, 0x3a, 0x47, 0xd6, 0xf0, 0x39, 0x6a, 0xcd, 0x69, 0x47, 0xfd,
+ 0x33, 0x93, 0x65, 0xd5, 0xef, 0xcf, 0xc2, 0xa9, 0x09, 0x87, 0xea, 0x1e, 0x9d, 0x9d, 0x2a, 0x95,
+ 0xda, 0xe8, 0x23, 0xd7, 0x68, 0x50, 0x6b, 0xe5, 0x60, 0x86, 0xf5, 0x0b, 0x30, 0x12, 0x34, 0xa0,
+ 0x5a, 0xb7, 0x5b, 0x54, 0x7e, 0x58, 0x55, 0xf7, 0x31, 0x35, 0x97, 0xa1, 0xb4, 0x18, 0x29, 0xb9,
+ 0x01, 0xc7, 0x03, 0x48, 0xa9, 0xd1, 0xb0, 0xd7, 0x34, 0xda, 0x76, 0xb9, 0x63, 0x6c, 0x3f, 0x77,
+ 0x8c, 0x0d, 0x39, 0xe8, 0x0c, 0x5f, 0x73, 0x18, 0x81, 0x96, 0x56, 0x4a, 0xfd, 0x42, 0x0e, 0x4e,
+ 0xdf, 0xd2, 0x1b, 0xa6, 0x11, 0x8a, 0x46, 0xa3, 0x6e, 0xcb, 0xb6, 0x5c, 0x7a, 0x88, 0x46, 0x69,
+ 0x64, 0x28, 0xe4, 0xf7, 0x65, 0x28, 0x24, 0xbb, 0xa8, 0x77, 0xcf, 0x5d, 0x54, 0xd8, 0x55, 0x17,
+ 0xfd, 0x97, 0x0c, 0x8c, 0xfa, 0x8e, 0xff, 0xf2, 0x23, 0x6e, 0xc9, 0x2b, 0x1d, 0x8f, 0x10, 0x63,
+ 0x7e, 0xd0, 0x88, 0x27, 0x55, 0xe8, 0x9b, 0xbc, 0xd7, 0x32, 0x1d, 0xea, 0x6e, 0xc3, 0x89, 0xfb,
+ 0x9c, 0x38, 0x2e, 0x19, 0xa3, 0xbc, 0x48, 0xe2, 0xa4, 0x84, 0x83, 0xf1, 0x39, 0x1f, 0x7f, 0xfa,
+ 0x30, 0xee, 0xbf, 0x4c, 0xe7, 0xcf, 0xf9, 0xc4, 0x13, 0x89, 0xc8, 0xfb, 0xcc, 0x90, 0x94, 0x3c,
+ 0x02, 0xb9, 0xc5, 0xc5, 0x19, 0x31, 0x93, 0x62, 0x44, 0x00, 0xcf, 0x93, 0xdf, 0x2b, 0x32, 0xac,
+ 0xfa, 0x87, 0x59, 0x00, 0xa6, 0x0a, 0x7c, 0xb8, 0x1e, 0x88, 0x12, 0x8e, 0x43, 0xbf, 0x2f, 0x70,
+ 0xa1, 0x86, 0x81, 0xd7, 0x7e, 0xbc, 0x23, 0xe2, 0x75, 0x07, 0x2f, 0x34, 0x8a, 0xbe, 0x23, 0x39,
+ 0xbf, 0x07, 0xc0, 0x9d, 0x0d, 0x3a, 0x92, 0xfb, 0xee, 0xe3, 0xef, 0x81, 0x01, 0x31, 0xe3, 0xd9,
+ 0x91, 0xf3, 0xff, 0xba, 0x0f, 0xd4, 0x42, 0x7c, 0x6c, 0x6a, 0x2d, 0xec, 0x61, 0x21, 0xf6, 0xc5,
+ 0xcb, 0x7b, 0xe5, 0x48, 0xbc, 0xfb, 0x2c, 0xde, 0xcf, 0x08, 0xf1, 0xf2, 0x17, 0x3c, 0x87, 0x56,
+ 0xbc, 0xfb, 0x76, 0xf6, 0xad, 0xfe, 0x6e, 0x06, 0x08, 0x6b, 0xd6, 0x82, 0xee, 0xba, 0x6b, 0xb6,
+ 0x63, 0x70, 0xe7, 0xf4, 0x03, 0x11, 0xcc, 0xfe, 0xdd, 0x57, 0x7e, 0xb9, 0x1f, 0x8e, 0x47, 0x1c,
+ 0x7f, 0x0f, 0xf9, 0x64, 0x75, 0x29, 0x3a, 0x9a, 0xba, 0xbd, 0x7a, 0x79, 0x97, 0x7c, 0x21, 0xda,
+ 0x1b, 0x79, 0x80, 0x26, 0xdd, 0x84, 0x3e, 0x01, 0x43, 0xe2, 0x07, 0x5b, 0xa1, 0xfd, 0x9b, 0x2e,
+ 0x1c, 0xa5, 0x2e, 0x03, 0x68, 0x11, 0x34, 0x79, 0x1a, 0x06, 0xd8, 0x80, 0x59, 0xc1, 0xe0, 0x21,
+ 0x7d, 0xe1, 0x8b, 0x12, 0xc3, 0x07, 0xca, 0xeb, 0x49, 0x40, 0x29, 0xbd, 0x23, 0xea, 0xdf, 0xc6,
+ 0x3b, 0xa2, 0x8f, 0xc2, 0x60, 0xc9, 0xb2, 0x6c, 0x0f, 0x37, 0xe9, 0xae, 0xb8, 0x9a, 0xe8, 0x68,
+ 0x95, 0x3f, 0x82, 0x8f, 0xe3, 0x43, 0xfa, 0x54, 0xb3, 0x5c, 0x66, 0x48, 0xae, 0xfa, 0xaf, 0x62,
+ 0xa8, 0x23, 0xbc, 0xca, 0xf1, 0x7a, 0xc6, 0x11, 0xb0, 0xe4, 0xa3, 0x18, 0xec, 0xbc, 0xe1, 0x05,
+ 0xc7, 0x6e, 0xd9, 0x2e, 0x35, 0xb8, 0xa0, 0x06, 0xc3, 0x50, 0x03, 0x2d, 0x81, 0xc0, 0x77, 0x6c,
+ 0x91, 0x40, 0x1e, 0x91, 0x22, 0x64, 0x19, 0x4e, 0xf8, 0x17, 0xc5, 0xc1, 0x8b, 0xc1, 0x4a, 0xd9,
+ 0x55, 0x86, 0xf0, 0x55, 0x12, 0x89, 0x2b, 0x43, 0xa5, 0x3c, 0x7e, 0xde, 0xbf, 0x16, 0xf1, 0x9f,
+ 0x1c, 0xd6, 0x4c, 0x43, 0xee, 0xea, 0x54, 0x7e, 0xe4, 0x5b, 0x60, 0x70, 0x56, 0xbf, 0x57, 0x6e,
+ 0x8b, 0xb3, 0x97, 0xe1, 0xed, 0xdf, 0xbe, 0x34, 0xf5, 0x7b, 0x35, 0x43, 0x94, 0x8b, 0xd9, 0x14,
+ 0x32, 0x4b, 0x52, 0x83, 0x53, 0x0b, 0x8e, 0xdd, 0xb4, 0x3d, 0x6a, 0xc4, 0x1e, 0xdf, 0x1d, 0x0b,
+ 0x5f, 0xeb, 0xb6, 0x04, 0x45, 0xad, 0xcb, 0x2b, 0xbc, 0x0e, 0x6c, 0x48, 0x13, 0x8e, 0x95, 0x5c,
+ 0xb7, 0xdd, 0xa4, 0xe1, 0x0d, 0xd5, 0xe8, 0x96, 0x9f, 0xf1, 0x6e, 0xe1, 0xb5, 0xfc, 0xa0, 0x8e,
+ 0x45, 0xf9, 0x05, 0x55, 0xcd, 0x33, 0xe5, 0x1a, 0xf1, 0x5b, 0xe2, 0xbc, 0x5f, 0xcd, 0xf7, 0x8f,
+ 0x8c, 0x1e, 0xd3, 0x4e, 0x27, 0x1b, 0xb3, 0x68, 0x7a, 0x0d, 0xaa, 0x7e, 0x29, 0x03, 0x10, 0x0a,
+ 0x98, 0x3c, 0x11, 0x8d, 0x50, 0x94, 0x09, 0x2f, 0x3a, 0x44, 0xf4, 0x82, 0x48, 0x48, 0x22, 0x72,
+ 0x16, 0xf2, 0x18, 0xe1, 0x22, 0x1b, 0x1e, 0xac, 0xde, 0x31, 0x2d, 0x43, 0x43, 0x28, 0xc3, 0x4a,
+ 0x4f, 0xd1, 0x11, 0x8b, 0x97, 0xfa, 0xdc, 0x2a, 0x2c, 0xc3, 0xb1, 0x6a, 0x7b, 0xc9, 0xaf, 0x5b,
+ 0x7a, 0x57, 0x87, 0x81, 0x36, 0xdc, 0xf6, 0x52, 0xf0, 0x18, 0x35, 0x12, 0xc6, 0x24, 0x5a, 0x44,
+ 0xfd, 0xf9, 0x4c, 0x6c, 0x16, 0x3c, 0xc0, 0x45, 0xef, 0x5d, 0x49, 0x3f, 0x8d, 0xe4, 0xb4, 0xa4,
+ 0xfe, 0x68, 0x16, 0x06, 0x17, 0x6c, 0xc7, 0x13, 0x21, 0x43, 0x0e, 0xf7, 0x2a, 0x24, 0xed, 0x95,
+ 0xf2, 0x3b, 0xd8, 0x2b, 0x9d, 0x85, 0xbc, 0xe4, 0xa2, 0xcc, 0xef, 0x45, 0x0c, 0xc3, 0xd1, 0x10,
+ 0xaa, 0x7e, 0x6b, 0x16, 0xe0, 0x03, 0x4f, 0x3e, 0x79, 0x1f, 0x0b, 0x48, 0xfd, 0xe1, 0x0c, 0x1c,
+ 0x13, 0x17, 0x75, 0x52, 0xac, 0xaf, 0x3e, 0xff, 0x8a, 0x55, 0x1e, 0x97, 0x1c, 0xa4, 0xf9, 0x38,
+ 0xb6, 0x04, 0x4c, 0xde, 0x33, 0x3d, 0xbc, 0xab, 0x90, 0x82, 0x7d, 0x51, 0x01, 0x93, 0x97, 0x00,
+ 0x9f, 0x8e, 0x3c, 0xe1, 0x5f, 0x41, 0xe6, 0xc2, 0x75, 0x8f, 0x15, 0x98, 0x4c, 0xbd, 0x86, 0x54,
+ 0x7f, 0x29, 0x0f, 0xf9, 0xc9, 0x7b, 0xb4, 0x7e, 0xc8, 0xbb, 0x46, 0x3a, 0xd8, 0xcc, 0xef, 0xf1,
+ 0x60, 0x73, 0x37, 0x3e, 0x15, 0x2f, 0x87, 0xfd, 0x59, 0x88, 0x56, 0x1f, 0xeb, 0xf9, 0x78, 0xf5,
+ 0x7e, 0x4f, 0x1f, 0x3e, 0x97, 0x9c, 0x7f, 0x96, 0x83, 0x5c, 0x75, 0x62, 0xe1, 0x48, 0x6f, 0x0e,
+ 0x54, 0x6f, 0xba, 0xdf, 0x59, 0xab, 0xc1, 0x35, 0x54, 0x7f, 0xe8, 0x25, 0x1a, 0xbb, 0x71, 0xfa,
+ 0x7a, 0x0e, 0x46, 0xaa, 0x53, 0x8b, 0x0b, 0xd2, 0x49, 0xf0, 0x0d, 0xee, 0xc9, 0x87, 0x3e, 0x65,
+ 0xbc, 0x4b, 0xcf, 0x26, 0xec, 0x99, 0x9b, 0x15, 0xcb, 0x7b, 0xe6, 0xda, 0x2d, 0xbd, 0xd1, 0xa6,
+ 0x78, 0xf4, 0xc2, 0xfd, 0x7e, 0x5d, 0xf3, 0x4d, 0xfa, 0x05, 0x7c, 0xf8, 0xef, 0x33, 0x20, 0x2f,
+ 0x40, 0xee, 0xa6, 0xf0, 0xc8, 0xe8, 0xc4, 0xe7, 0xa9, 0xab, 0x9c, 0x0f, 0x9b, 0x04, 0x73, 0x6d,
+ 0xd3, 0x40, 0x0e, 0xac, 0x14, 0x2b, 0x7c, 0x5d, 0x2c, 0xc0, 0xdb, 0x2a, 0xbc, 0xe2, 0x17, 0xbe,
+ 0x5e, 0x29, 0x93, 0x2a, 0x0c, 0x2e, 0x50, 0xa7, 0x69, 0x62, 0x47, 0xf9, 0x73, 0x76, 0x77, 0x26,
+ 0x6c, 0xa7, 0x32, 0xd8, 0x0a, 0x0b, 0x21, 0x33, 0x99, 0x0b, 0x79, 0x1d, 0x80, 0xdb, 0x28, 0xdb,
+ 0x8c, 0x1f, 0x79, 0x0e, 0xed, 0x7e, 0x6e, 0x5a, 0xa6, 0xd8, 0x78, 0x12, 0x33, 0x72, 0x07, 0x46,
+ 0x67, 0x6d, 0xc3, 0x5c, 0x36, 0xb9, 0xeb, 0x25, 0x56, 0x50, 0xd8, 0xda, 0xe1, 0x89, 0x99, 0x92,
+ 0x4d, 0xa9, 0x5c, 0x5a, 0x35, 0x09, 0xc6, 0xea, 0x3f, 0xee, 0x85, 0x3c, 0xeb, 0xf6, 0xa3, 0xf1,
+ 0xbb, 0x97, 0xf1, 0x5b, 0x82, 0xd1, 0xdb, 0xb6, 0x73, 0xc7, 0xb4, 0x56, 0x02, 0xaf, 0x78, 0xb1,
+ 0x37, 0x45, 0x4f, 0x9e, 0x35, 0x8e, 0xab, 0x05, 0x0e, 0xf4, 0x5a, 0x82, 0x7c, 0x8b, 0x11, 0xfc,
+ 0x1c, 0x00, 0x7f, 0xeb, 0x8e, 0x34, 0xfd, 0x61, 0xb0, 0x0a, 0xfe, 0x12, 0x1e, 0x1d, 0xed, 0xe5,
+ 0x60, 0x15, 0x21, 0x31, 0xdb, 0x84, 0x73, 0x5f, 0x88, 0x01, 0xf4, 0xbb, 0xc7, 0x4d, 0x38, 0xfa,
+ 0x42, 0xc8, 0x46, 0x00, 0xf7, 0x8a, 0x58, 0x00, 0x90, 0xee, 0x97, 0x20, 0x26, 0x88, 0xc8, 0xe4,
+ 0x20, 0xc2, 0xc3, 0xa5, 0x5c, 0x2f, 0x69, 0x12, 0x0f, 0xf2, 0x4c, 0xec, 0x02, 0x9c, 0x44, 0xb8,
+ 0x75, 0xbc, 0xff, 0x0e, 0x1d, 0xa8, 0x86, 0xb6, 0x72, 0xa0, 0x52, 0x3f, 0x95, 0x85, 0x81, 0x6a,
+ 0x7b, 0xc9, 0x5d, 0x77, 0x3d, 0xda, 0x3c, 0xe4, 0x6a, 0xec, 0x6f, 0xaf, 0xf2, 0xa9, 0xdb, 0xab,
+ 0x47, 0x7c, 0xa1, 0x48, 0xe7, 0x8e, 0x81, 0x49, 0xe7, 0x8b, 0xe3, 0x1f, 0x64, 0x61, 0x94, 0x5f,
+ 0x9c, 0x95, 0x4d, 0xb7, 0xbe, 0x0f, 0xce, 0xfc, 0x07, 0x2f, 0x95, 0xbd, 0x5d, 0x36, 0x6f, 0xe3,
+ 0x89, 0x84, 0xfa, 0xf1, 0x2c, 0x0c, 0x96, 0xda, 0xde, 0x6a, 0xc9, 0x43, 0xdd, 0xba, 0x2f, 0xf7,
+ 0x27, 0xbf, 0x99, 0x81, 0x63, 0xac, 0x21, 0x8b, 0xf6, 0x1d, 0x6a, 0xed, 0xc3, 0xc1, 0xa3, 0x7c,
+ 0x80, 0x98, 0xdd, 0xe5, 0x01, 0xa2, 0x2f, 0xcb, 0xdc, 0xce, 0x64, 0x89, 0xc7, 0xe5, 0x9a, 0xdd,
+ 0xa0, 0x87, 0xfb, 0x33, 0xf6, 0xf1, 0xb8, 0xdc, 0x17, 0xc8, 0x3e, 0x5c, 0xcf, 0x7c, 0x73, 0x09,
+ 0x64, 0x1f, 0xce, 0x96, 0xbe, 0x39, 0x04, 0xf2, 0xe5, 0x0c, 0x0c, 0x8c, 0xdb, 0xde, 0x21, 0x1f,
+ 0xf8, 0xe2, 0x2b, 0x0e, 0xb7, 0x9a, 0xfb, 0x5f, 0x71, 0xb8, 0x75, 0x53, 0xfd, 0x81, 0x2c, 0x9c,
+ 0x10, 0xb1, 0xc1, 0xc5, 0xf9, 0xc3, 0xd1, 0x74, 0x2c, 0x06, 0x5b, 0x52, 0x34, 0x47, 0xf3, 0x90,
+ 0x10, 0xcd, 0x4f, 0xe5, 0xe0, 0x04, 0x86, 0x32, 0x65, 0xdb, 0xb2, 0x6f, 0x02, 0x5b, 0x84, 0xd4,
+ 0xa3, 0x97, 0xa0, 0xb3, 0x29, 0x97, 0xa0, 0x7f, 0xb6, 0x51, 0x7c, 0x66, 0xc5, 0xf4, 0x56, 0xdb,
+ 0x4b, 0x97, 0xeb, 0x76, 0xf3, 0xca, 0x8a, 0xa3, 0xdf, 0x35, 0xf9, 0xf5, 0x9f, 0xde, 0xb8, 0x12,
+ 0xa4, 0xd9, 0xd0, 0x5b, 0xa6, 0x48, 0xc0, 0x51, 0xc5, 0xbd, 0x0e, 0xe3, 0xea, 0x5f, 0x9f, 0xba,
+ 0x00, 0xaf, 0xda, 0xa6, 0x25, 0x7c, 0x0a, 0xb9, 0xa1, 0x5b, 0x65, 0xfb, 0xc3, 0x37, 0x6c, 0xd3,
+ 0xaa, 0xc5, 0x1d, 0x0b, 0x77, 0x5a, 0x5f, 0xc8, 0x5a, 0x93, 0xaa, 0x51, 0xff, 0x75, 0x06, 0x1e,
+ 0x88, 0x6a, 0xf1, 0x37, 0x83, 0xed, 0xf8, 0x83, 0x59, 0x38, 0x79, 0x1d, 0x85, 0x13, 0x38, 0x72,
+ 0x1c, 0xcd, 0x5b, 0x62, 0x70, 0xa6, 0xc8, 0xe6, 0xc8, 0xa2, 0xec, 0x2c, 0x9b, 0xa3, 0x49, 0x5d,
+ 0xc8, 0xe6, 0xb7, 0x32, 0x70, 0x7c, 0xbe, 0x52, 0x9e, 0xf8, 0x26, 0x19, 0x51, 0xc9, 0xef, 0x39,
+ 0xe4, 0x06, 0x67, 0xe2, 0x7b, 0x0e, 0xb9, 0xe9, 0xf9, 0xb9, 0x2c, 0x1c, 0xaf, 0x96, 0x66, 0x67,
+ 0xbe, 0x59, 0x66, 0xf0, 0x09, 0xd9, 0xeb, 0xd0, 0x3f, 0x04, 0x13, 0xb6, 0x80, 0xfc, 0x99, 0xb7,
+ 0xae, 0x76, 0xf6, 0x46, 0x4c, 0x0a, 0xe5, 0x90, 0x4f, 0xdd, 0xfb, 0x22, 0x14, 0xa6, 0xf9, 0x11,
+ 0xea, 0x43, 0xae, 0xf9, 0xff, 0xb4, 0x00, 0x83, 0x37, 0xda, 0x4b, 0x54, 0x38, 0xa7, 0xdc, 0xd7,
+ 0x27, 0xbf, 0x57, 0x61, 0x50, 0x88, 0x01, 0x6f, 0x4d, 0xa4, 0xe0, 0x79, 0x22, 0x18, 0x0a, 0x8f,
+ 0x4f, 0x24, 0x13, 0x91, 0xb3, 0x90, 0xbf, 0x45, 0x9d, 0x25, 0xf9, 0x5d, 0xe9, 0x5d, 0xea, 0x2c,
+ 0x69, 0x08, 0x25, 0x33, 0xa1, 0xcb, 0x7c, 0x69, 0xa1, 0x82, 0x89, 0x54, 0xc4, 0x85, 0x0d, 0x66,
+ 0x86, 0x09, 0xfc, 0xde, 0xf4, 0x96, 0xc9, 0x53, 0xb0, 0xc8, 0x6f, 0xda, 0xe3, 0x25, 0xc9, 0x1c,
+ 0x8c, 0xc9, 0x8e, 0x4f, 0x3c, 0x8b, 0x48, 0x7f, 0x0a, 0xbb, 0xb4, 0xfc, 0x21, 0xc9, 0xa2, 0xe4,
+ 0x65, 0x18, 0xf2, 0x81, 0xe8, 0xc2, 0x35, 0x10, 0x86, 0xae, 0x0f, 0x58, 0xc5, 0x52, 0x14, 0x45,
+ 0x0a, 0xc8, 0x0c, 0xf0, 0x1a, 0x02, 0x52, 0x18, 0xc4, 0x5c, 0xe2, 0x22, 0x05, 0xc8, 0xd3, 0xc8,
+ 0x00, 0x9f, 0x79, 0xa0, 0xb3, 0xca, 0x20, 0x3e, 0xba, 0x44, 0x97, 0x7c, 0x47, 0xc0, 0xf9, 0xd3,
+ 0xda, 0x08, 0x19, 0x99, 0x07, 0x08, 0x9d, 0x0a, 0x44, 0x00, 0x83, 0x1d, 0xbb, 0x3b, 0x48, 0x2c,
+ 0xe4, 0xeb, 0xc0, 0xe1, 0xdd, 0x5c, 0x07, 0xaa, 0xbf, 0x93, 0x85, 0xc1, 0x52, 0xab, 0x15, 0x0c,
+ 0x85, 0x27, 0xa0, 0x50, 0x6a, 0xb5, 0x6e, 0x6a, 0x15, 0x39, 0x94, 0xb9, 0xde, 0x6a, 0xd5, 0xda,
+ 0x8e, 0x29, 0xfb, 0x84, 0x72, 0x22, 0x32, 0x01, 0xc3, 0xa5, 0x56, 0x6b, 0xa1, 0xbd, 0xd4, 0x30,
+ 0xeb, 0x52, 0x66, 0x24, 0x9e, 0x3b, 0xae, 0xd5, 0xaa, 0xb5, 0x10, 0x13, 0x4f, 0x8f, 0x15, 0x2d,
+ 0x43, 0x3e, 0x8a, 0x61, 0x7f, 0x44, 0x62, 0x1e, 0x9e, 0xfa, 0x43, 0x0d, 0x82, 0x98, 0x87, 0x6d,
+ 0xbb, 0x1c, 0x10, 0xf1, 0x60, 0xef, 0x67, 0xfd, 0x90, 0xf9, 0xac, 0xa2, 0x44, 0x02, 0x9e, 0x90,
+ 0x25, 0x79, 0x2f, 0xf4, 0x95, 0x5a, 0x2d, 0xe9, 0xbe, 0x09, 0x9d, 0x8a, 0x58, 0xa9, 0x78, 0xee,
+ 0x33, 0x41, 0x76, 0xe6, 0x45, 0x18, 0x89, 0x56, 0xb6, 0xa3, 0x60, 0xf1, 0xdf, 0xc8, 0xe0, 0x07,
+ 0x1d, 0x72, 0x9f, 0xe6, 0xa7, 0x20, 0x57, 0x6a, 0xb5, 0xc4, 0x7c, 0x74, 0x3c, 0xa5, 0x3f, 0xe2,
+ 0x4f, 0xa0, 0x4b, 0xad, 0x96, 0xff, 0xe9, 0x87, 0xfc, 0x71, 0xc4, 0xae, 0x3e, 0xfd, 0xcb, 0xfc,
+ 0xd3, 0x0f, 0xf7, 0xc3, 0x05, 0xf5, 0x97, 0x72, 0x70, 0xac, 0xd4, 0x6a, 0x1d, 0x05, 0x99, 0xdf,
+ 0xaf, 0x87, 0xd6, 0x4f, 0x02, 0x48, 0xd3, 0x63, 0x5f, 0xf0, 0x74, 0x6b, 0x50, 0x9a, 0x1a, 0x95,
+ 0x8c, 0x26, 0x11, 0xf9, 0xea, 0xd7, 0xbf, 0x23, 0xf5, 0xfb, 0x78, 0x0e, 0xa7, 0xe2, 0xc3, 0x1e,
+ 0x34, 0xea, 0x9d, 0xd2, 0x6d, 0xa2, 0x0f, 0x0a, 0x3b, 0xea, 0x83, 0xdf, 0x88, 0x0c, 0x1e, 0x0c,
+ 0x5a, 0x7e, 0xd4, 0x0b, 0xbd, 0x7b, 0x32, 0x8b, 0x47, 0x64, 0x61, 0x8a, 0x48, 0x36, 0x7e, 0x22,
+ 0x25, 0x11, 0x57, 0xa9, 0xce, 0x50, 0x35, 0xd3, 0xd0, 0x62, 0xb4, 0x7e, 0x1f, 0xf6, 0xed, 0xa8,
+ 0x0f, 0x37, 0xb2, 0xf8, 0x76, 0x3a, 0x88, 0xcb, 0xb4, 0xf7, 0xdd, 0xc5, 0x15, 0x00, 0xee, 0x79,
+ 0x10, 0xb8, 0x35, 0x0f, 0xf3, 0x10, 0x2c, 0x3c, 0xbf, 0x92, 0x08, 0xc1, 0x12, 0x92, 0x04, 0x1e,
+ 0x52, 0xb9, 0x54, 0x0f, 0xa9, 0x4b, 0xd0, 0xaf, 0xe9, 0x6b, 0xaf, 0xb5, 0xa9, 0xb3, 0x2e, 0xcc,
+ 0x19, 0x1e, 0xf6, 0x50, 0x5f, 0xab, 0x7d, 0x8c, 0x01, 0xb5, 0x00, 0x4d, 0xd4, 0xe0, 0xf1, 0xbd,
+ 0xe4, 0x11, 0xc2, 0xcf, 0xc8, 0x83, 0x27, 0xf7, 0xbb, 0x51, 0x74, 0xf2, 0x3c, 0xe4, 0x4a, 0xb7,
+ 0xab, 0x42, 0xb2, 0x41, 0xd7, 0x96, 0x6e, 0x57, 0x85, 0xbc, 0x3a, 0x96, 0xbd, 0x5d, 0x55, 0x3f,
+ 0x9e, 0x05, 0x92, 0xa4, 0x24, 0xcf, 0xc0, 0x00, 0x42, 0x57, 0x98, 0xce, 0xc8, 0x89, 0x39, 0xd7,
+ 0xdc, 0x9a, 0x83, 0xd0, 0x88, 0x71, 0xe7, 0x93, 0x92, 0xe7, 0x30, 0xf5, 0xb1, 0x48, 0x0d, 0x17,
+ 0x49, 0xcc, 0xb9, 0xe6, 0xfa, 0xc9, 0x82, 0x63, 0x99, 0x8f, 0x05, 0x31, 0xda, 0x85, 0xb7, 0xab,
+ 0xd3, 0xb6, 0xeb, 0x09, 0x51, 0x73, 0xbb, 0x70, 0xcd, 0xc5, 0x8c, 0xb0, 0x11, 0xbb, 0x90, 0x93,
+ 0x61, 0x56, 0xab, 0xdb, 0x55, 0xfe, 0x4c, 0xc5, 0xd0, 0xec, 0x86, 0x6f, 0x50, 0xf2, 0xac, 0x56,
+ 0x6b, 0x6e, 0x8d, 0x3f, 0x71, 0x31, 0x30, 0xe7, 0x72, 0x24, 0xab, 0x55, 0xa4, 0x94, 0xfa, 0xe9,
+ 0x7e, 0x18, 0x2d, 0xeb, 0x9e, 0xbe, 0xa4, 0xbb, 0x54, 0xda, 0x4d, 0x1f, 0xf3, 0x61, 0xfe, 0xe7,
+ 0x48, 0x72, 0x30, 0x96, 0x52, 0xbe, 0x26, 0x5e, 0x80, 0xbc, 0x10, 0xf2, 0x0d, 0x72, 0x8e, 0xca,
+ 0x49, 0xcc, 0x96, 0x6a, 0x2d, 0x01, 0xd6, 0x12, 0x84, 0xe4, 0x71, 0x18, 0xf4, 0x61, 0x6c, 0x03,
+ 0x90, 0x0b, 0x75, 0xc6, 0x58, 0x62, 0xf6, 0xbf, 0x26, 0xa3, 0xc9, 0x73, 0x30, 0xe4, 0xff, 0x94,
+ 0x4c, 0x6b, 0x9e, 0x91, 0x6d, 0x29, 0xb1, 0x7b, 0x92, 0x49, 0xe5, 0xa2, 0x38, 0xbf, 0xf5, 0x46,
+ 0x8a, 0xc6, 0x92, 0x9e, 0x45, 0x48, 0xc9, 0xc7, 0x60, 0xc4, 0xff, 0x2d, 0x36, 0x0c, 0x3c, 0x3f,
+ 0xdc, 0xe3, 0x41, 0x4a, 0xe7, 0x98, 0x58, 0x2f, 0x47, 0xc9, 0xf9, 0xd6, 0xe1, 0x41, 0x3f, 0x8f,
+ 0x97, 0xb1, 0x94, 0xdc, 0x39, 0xc4, 0x2a, 0x20, 0x15, 0x18, 0xf3, 0x21, 0xa1, 0x86, 0xf6, 0x85,
+ 0x3b, 0x46, 0x63, 0xa9, 0x96, 0xaa, 0xa4, 0xc9, 0x52, 0xa4, 0x01, 0x67, 0x23, 0x40, 0xc3, 0x5d,
+ 0x35, 0x97, 0x3d, 0xb1, 0xdd, 0x13, 0x31, 0x88, 0x45, 0xe2, 0xc6, 0x80, 0x2b, 0xa7, 0xf1, 0x33,
+ 0xb0, 0x46, 0xb3, 0x43, 0x75, 0xe5, 0x46, 0xaa, 0x70, 0xc2, 0xc7, 0x5f, 0x9f, 0x58, 0x58, 0x70,
+ 0xec, 0x37, 0x68, 0xdd, 0xab, 0x94, 0xc5, 0x76, 0x19, 0x63, 0xd3, 0x19, 0x4b, 0xb5, 0x95, 0x7a,
+ 0x8b, 0x29, 0x05, 0xc3, 0x45, 0x99, 0xa7, 0x16, 0x26, 0xb7, 0xe0, 0xa4, 0x04, 0x97, 0xd2, 0x43,
+ 0x43, 0xb8, 0x9f, 0x17, 0x5c, 0xd3, 0x33, 0x44, 0xa7, 0x17, 0x27, 0x2f, 0xc2, 0xb0, 0x8f, 0xe0,
+ 0xb7, 0x88, 0x83, 0x78, 0x8b, 0x88, 0x43, 0xd2, 0x58, 0xaa, 0xc5, 0x5f, 0x53, 0x46, 0x89, 0x65,
+ 0x8d, 0xc2, 0x8c, 0xfa, 0x43, 0x11, 0x8d, 0xf2, 0xd6, 0x5b, 0xa9, 0xca, 0x88, 0x59, 0xf6, 0x5f,
+ 0x0e, 0x35, 0x6a, 0xde, 0x31, 0x57, 0x4c, 0xbe, 0x93, 0xf6, 0x1f, 0x50, 0x2e, 0xd5, 0x6c, 0x04,
+ 0xa6, 0xe9, 0x07, 0x27, 0x3f, 0x53, 0x82, 0xe3, 0x29, 0x3a, 0xb6, 0xa3, 0x1d, 0xe3, 0xa7, 0xb2,
+ 0x61, 0x23, 0x0e, 0xf9, 0xb6, 0x71, 0x1c, 0xfa, 0xfd, 0x2f, 0x11, 0xc6, 0x83, 0xd2, 0x69, 0x68,
+ 0xc6, 0x79, 0xf8, 0xf8, 0x88, 0x38, 0x0e, 0xf9, 0x56, 0x72, 0x3f, 0xc4, 0xf1, 0x56, 0x26, 0x14,
+ 0xc7, 0x21, 0xdf, 0x5e, 0xfe, 0x56, 0x2e, 0x9c, 0x93, 0x8e, 0xf6, 0x98, 0xfb, 0x65, 0x26, 0x87,
+ 0x7e, 0xb0, 0x85, 0x1d, 0x3c, 0x64, 0x94, 0x55, 0xb3, 0x6f, 0x97, 0xaa, 0xf9, 0x7b, 0xc9, 0xfe,
+ 0xe4, 0xa6, 0xe7, 0xa1, 0xec, 0xcf, 0x7d, 0x18, 0xac, 0xe4, 0x6a, 0xb8, 0x8e, 0x71, 0x1b, 0xbd,
+ 0x57, 0x0a, 0xf1, 0xb7, 0x24, 0x4c, 0xf4, 0x28, 0x09, 0xf9, 0x10, 0x9c, 0x8e, 0x00, 0x16, 0x74,
+ 0x47, 0x6f, 0x52, 0x2f, 0xcc, 0x38, 0x88, 0x41, 0x9b, 0xfc, 0xd2, 0xb5, 0x56, 0x80, 0x96, 0xb3,
+ 0x18, 0x76, 0xe0, 0x20, 0x29, 0x47, 0xdf, 0x0e, 0x9c, 0xa4, 0x3f, 0x9f, 0x0b, 0x4d, 0x95, 0x68,
+ 0xf0, 0x55, 0x8d, 0xba, 0xed, 0x86, 0x77, 0xff, 0x76, 0xf0, 0xee, 0x52, 0x5b, 0x4c, 0xc3, 0xb1,
+ 0xd2, 0xf2, 0x32, 0xad, 0x7b, 0x7e, 0x4c, 0x69, 0x57, 0x84, 0xdb, 0xe3, 0x5b, 0x07, 0x81, 0x12,
+ 0x31, 0x82, 0x23, 0xb9, 0xf1, 0x63, 0xc5, 0xd4, 0xdf, 0xcf, 0x83, 0x12, 0x98, 0xee, 0xc1, 0x43,
+ 0xad, 0x03, 0x5c, 0x26, 0xdf, 0x11, 0xbd, 0x62, 0xc2, 0x58, 0x28, 0x8c, 0x6a, 0xbb, 0xd9, 0xd4,
+ 0x71, 0xe8, 0xb1, 0xad, 0x41, 0x31, 0xce, 0x2c, 0x24, 0xe4, 0xbb, 0x81, 0x33, 0x62, 0x37, 0x40,
+ 0xc2, 0x87, 0x70, 0x35, 0x97, 0xb3, 0xd0, 0x92, 0x5c, 0xc9, 0x67, 0x32, 0x70, 0xc2, 0xef, 0x94,
+ 0xf9, 0x25, 0x66, 0x16, 0x4f, 0xd8, 0x6d, 0xcb, 0xf3, 0x77, 0x22, 0xcf, 0x77, 0xae, 0x8e, 0x77,
+ 0xd2, 0xe5, 0xb4, 0xc2, 0xbc, 0x25, 0x41, 0x60, 0x89, 0x40, 0x21, 0x6c, 0xa4, 0xa9, 0xd5, 0x91,
+ 0x48, 0x4b, 0xad, 0xf7, 0xcc, 0x75, 0x78, 0xa0, 0x23, 0xcb, 0xad, 0xcc, 0xd0, 0x5e, 0xd9, 0x0c,
+ 0xfd, 0xb7, 0x99, 0x70, 0x22, 0x8a, 0x09, 0x89, 0x5c, 0x06, 0x08, 0x41, 0x62, 0x63, 0x3a, 0xb2,
+ 0xb9, 0x51, 0x84, 0x50, 0x68, 0x9a, 0x44, 0x41, 0xe6, 0xa1, 0x20, 0xc4, 0xc2, 0xb3, 0xfb, 0xbe,
+ 0x67, 0x8b, 0x5e, 0xb8, 0x2c, 0xcb, 0x01, 0x37, 0x9d, 0xe2, 0x9b, 0x05, 0x9b, 0x33, 0xcf, 0xc1,
+ 0xe0, 0x6e, 0xbf, 0xeb, 0x33, 0x39, 0x20, 0xf2, 0x2e, 0xf2, 0x00, 0x4d, 0xec, 0x43, 0x3c, 0x85,
+ 0x5d, 0x84, 0x7e, 0xf6, 0x09, 0x98, 0xef, 0x42, 0x8a, 0x6f, 0xdb, 0x16, 0x30, 0x2d, 0xc0, 0x86,
+ 0xc1, 0xa5, 0xfa, 0xd2, 0x83, 0x4b, 0xa9, 0xdf, 0x97, 0x83, 0x53, 0x72, 0x87, 0x94, 0x29, 0x86,
+ 0xcc, 0x3f, 0xea, 0x94, 0xb7, 0xb1, 0x53, 0x54, 0x28, 0xf0, 0xcd, 0x83, 0xc8, 0x5d, 0xc0, 0x0f,
+ 0x76, 0x10, 0xa2, 0x09, 0x8c, 0xfa, 0x1f, 0xb3, 0x30, 0xbc, 0x60, 0xbb, 0xde, 0x8a, 0x43, 0xdd,
+ 0x05, 0xdd, 0x71, 0xef, 0xe3, 0xee, 0x78, 0x1f, 0x0c, 0x63, 0x78, 0xa0, 0x26, 0xb5, 0x78, 0x08,
+ 0x9d, 0x5e, 0x29, 0xd9, 0x88, 0x8f, 0x10, 0x79, 0xa5, 0x22, 0x84, 0x4c, 0xfb, 0xb9, 0xe5, 0x27,
+ 0x05, 0x6d, 0xe2, 0x66, 0x1f, 0x87, 0xab, 0x3f, 0x9e, 0x83, 0x21, 0x5f, 0xca, 0xe3, 0xe6, 0x61,
+ 0xbd, 0xa9, 0x39, 0x58, 0x21, 0x5f, 0x01, 0x58, 0xb0, 0x1d, 0x4f, 0x6f, 0xcc, 0x85, 0x9a, 0x8f,
+ 0x47, 0x9c, 0x2d, 0x84, 0xf2, 0x32, 0x12, 0x09, 0xae, 0x5f, 0xa1, 0x59, 0xcd, 0x27, 0x26, 0xbe,
+ 0x7e, 0x05, 0x50, 0x4d, 0xa2, 0x50, 0x7f, 0x2d, 0x0b, 0xc7, 0xfc, 0x4e, 0x9a, 0xbc, 0x47, 0xeb,
+ 0xed, 0xfb, 0x79, 0x6e, 0x8a, 0x4a, 0xbb, 0x77, 0x4b, 0x69, 0xab, 0xff, 0x43, 0x9a, 0x48, 0x26,
+ 0x1a, 0xf6, 0xd1, 0x44, 0xf2, 0x17, 0xa1, 0xe3, 0xea, 0xb7, 0xe7, 0xe0, 0x84, 0x2f, 0xf5, 0xa9,
+ 0xb6, 0x85, 0x87, 0x03, 0x13, 0x7a, 0xa3, 0x71, 0x3f, 0xef, 0xc6, 0x07, 0x7d, 0x41, 0xcc, 0x8b,
+ 0x78, 0x7b, 0x22, 0xc7, 0xdf, 0xb2, 0x00, 0xd7, 0x6c, 0xd3, 0xd0, 0x64, 0x22, 0xf2, 0x32, 0x0c,
+ 0xf9, 0x3f, 0x4b, 0xce, 0x8a, 0xbf, 0x05, 0xc7, 0xa3, 0xfe, 0xa0, 0x90, 0xee, 0x44, 0xc2, 0x0a,
+ 0x44, 0x0a, 0xa8, 0xff, 0xb9, 0x00, 0x67, 0x6e, 0x9b, 0x96, 0x61, 0xaf, 0xb9, 0x7e, 0x8a, 0xc8,
+ 0x43, 0x7f, 0xd4, 0x75, 0xd0, 0xa9, 0x21, 0x5f, 0x83, 0x93, 0x71, 0x91, 0x3a, 0x41, 0xe0, 0x6e,
+ 0xd1, 0x3b, 0x6b, 0x9c, 0xa0, 0xe6, 0x27, 0x8b, 0x14, 0xf7, 0x65, 0x5a, 0x7a, 0xc9, 0x78, 0xb6,
+ 0xc9, 0xbe, 0xed, 0x64, 0x9b, 0x7c, 0x0c, 0x0a, 0x65, 0xbb, 0xa9, 0x9b, 0x7e, 0x80, 0x19, 0x1c,
+ 0xc5, 0x41, 0xbd, 0x88, 0xd1, 0x04, 0x05, 0xe3, 0x2f, 0x2a, 0xc6, 0x2e, 0x1b, 0x08, 0xf9, 0xfb,
+ 0x05, 0x98, 0x95, 0xa6, 0xc9, 0x44, 0xc4, 0x86, 0x61, 0x51, 0x9d, 0xb8, 0xdd, 0x02, 0xdc, 0x3c,
+ 0x3d, 0xed, 0xcb, 0xa8, 0xb3, 0x5a, 0x5d, 0x8e, 0x94, 0xe3, 0xdb, 0x28, 0x9e, 0x04, 0x53, 0x7c,
+ 0x0c, 0xbf, 0xe7, 0xd2, 0xa2, 0xfc, 0x25, 0x21, 0xe0, 0x24, 0x33, 0x98, 0x14, 0x02, 0xce, 0x32,
+ 0x32, 0x11, 0x99, 0x84, 0x31, 0x0c, 0xaf, 0x1c, 0x6c, 0xa5, 0x98, 0x4a, 0x0c, 0xa1, 0x51, 0x89,
+ 0x97, 0x26, 0x3c, 0x22, 0x33, 0xfb, 0xb8, 0x5a, 0x5d, 0xa0, 0xb5, 0x64, 0x89, 0x33, 0xaf, 0x00,
+ 0x49, 0xb6, 0x79, 0x47, 0xd7, 0x26, 0xff, 0x5c, 0xda, 0xd7, 0x1d, 0x76, 0xc7, 0x97, 0xfd, 0x98,
+ 0xed, 0x22, 0xa9, 0xc3, 0x7a, 0xdf, 0xce, 0xd4, 0x61, 0x85, 0x7d, 0x4d, 0x1d, 0xa6, 0xfe, 0x5c,
+ 0x06, 0xc6, 0x12, 0x71, 0xc6, 0xc9, 0x53, 0x00, 0x1c, 0x22, 0xc5, 0x73, 0xc4, 0x00, 0x29, 0x61,
+ 0xec, 0x71, 0xb1, 0x06, 0x86, 0x64, 0xe4, 0x0a, 0xf4, 0xf3, 0x5f, 0x22, 0x06, 0x53, 0xb2, 0x48,
+ 0xbb, 0x6d, 0x1a, 0x5a, 0x40, 0x14, 0xd6, 0x82, 0x17, 0x87, 0xb9, 0xd4, 0x22, 0xde, 0x7a, 0x2b,
+ 0xa8, 0x85, 0x91, 0xa9, 0x9f, 0xce, 0xc2, 0x50, 0xd0, 0xe0, 0x92, 0x71, 0x50, 0x3a, 0x57, 0x10,
+ 0x21, 0xdb, 0x73, 0x5b, 0x85, 0x6c, 0x8f, 0x4d, 0xaa, 0x22, 0x46, 0xfb, 0xfe, 0xbd, 0x7b, 0xfa,
+ 0x6c, 0x16, 0x8e, 0x05, 0xb5, 0x1e, 0xe0, 0x1d, 0xd5, 0x3b, 0x48, 0x24, 0x9f, 0xc9, 0x80, 0x32,
+ 0x6e, 0x36, 0x1a, 0xa6, 0xb5, 0x52, 0xb1, 0x96, 0x6d, 0xa7, 0x89, 0xb3, 0xde, 0xc1, 0x9d, 0xd3,
+ 0xaa, 0xdf, 0x95, 0x81, 0x31, 0xd1, 0xa0, 0x09, 0xdd, 0x31, 0x0e, 0xee, 0x10, 0x2c, 0xde, 0x92,
+ 0x83, 0xd3, 0x17, 0xf5, 0x8b, 0x59, 0x80, 0x19, 0xbb, 0x7e, 0xe7, 0x90, 0x3f, 0x9b, 0x7a, 0x01,
+ 0x0a, 0x3c, 0x10, 0x96, 0xd0, 0xd8, 0x31, 0xf1, 0x3c, 0x88, 0x7d, 0x1a, 0x47, 0x8c, 0x8f, 0x8a,
+ 0xf9, 0xb8, 0xc0, 0x03, 0x69, 0x29, 0x19, 0x4d, 0x14, 0x61, 0x95, 0x32, 0x3a, 0xb1, 0x60, 0x04,
+ 0x95, 0x32, 0x58, 0xb4, 0xd2, 0xcd, 0x8d, 0x62, 0xbe, 0x61, 0xd7, 0xef, 0x68, 0x48, 0xaf, 0xfe,
+ 0x79, 0x86, 0xcb, 0xee, 0x90, 0x3f, 0xfe, 0xf4, 0x3f, 0x3f, 0xbf, 0xc3, 0xcf, 0xff, 0xee, 0x0c,
+ 0x9c, 0xd0, 0x68, 0xdd, 0xbe, 0x4b, 0x9d, 0xf5, 0x09, 0xdb, 0xa0, 0xd7, 0xa9, 0x45, 0x9d, 0x83,
+ 0x1a, 0x51, 0xff, 0x08, 0x73, 0x5c, 0x84, 0x8d, 0xb9, 0xe9, 0x52, 0xe3, 0xf0, 0xe4, 0x1f, 0x51,
+ 0x7f, 0xb1, 0x0f, 0x94, 0x54, 0xd3, 0xf6, 0xd0, 0x9a, 0x73, 0x1d, 0xf7, 0x2b, 0xf9, 0xfd, 0xda,
+ 0xaf, 0xf4, 0xee, 0x6c, 0xbf, 0x52, 0xd8, 0xe9, 0x7e, 0xa5, 0x6f, 0x3b, 0xfb, 0x95, 0x66, 0x7c,
+ 0xbf, 0xd2, 0x8f, 0xfb, 0x95, 0xa7, 0xba, 0xee, 0x57, 0x26, 0x2d, 0x63, 0x97, 0xbb, 0x95, 0x43,
+ 0x9b, 0x1b, 0x77, 0x37, 0xdb, 0xac, 0x8b, 0x6c, 0x52, 0xac, 0xdb, 0x8e, 0x41, 0x0d, 0xb1, 0xbb,
+ 0xc2, 0xa3, 0x7d, 0x47, 0xc0, 0xb4, 0x00, 0x9b, 0x48, 0x34, 0x3c, 0xbc, 0x9d, 0x44, 0xc3, 0xfb,
+ 0xb0, 0xff, 0xfa, 0x54, 0x16, 0xc6, 0x26, 0xa8, 0xe3, 0xf1, 0x48, 0x9b, 0xfb, 0xe1, 0xb9, 0x56,
+ 0x82, 0x63, 0x12, 0x43, 0xb4, 0xc8, 0xb3, 0xa1, 0x37, 0x5e, 0x9d, 0x3a, 0x5e, 0xdc, 0x99, 0x2f,
+ 0x4e, 0xcf, 0xaa, 0xf7, 0x93, 0x7d, 0x89, 0xb1, 0x1b, 0x54, 0xef, 0xc3, 0xb9, 0x20, 0x4d, 0xf1,
+ 0x4b, 0x0b, 0xe8, 0xa5, 0xfc, 0x5d, 0xf9, 0x9d, 0xe7, 0xef, 0x52, 0x7f, 0x36, 0x03, 0x17, 0x34,
+ 0x6a, 0xd1, 0x35, 0x7d, 0xa9, 0x41, 0xa5, 0x66, 0x89, 0x95, 0x81, 0xcd, 0x1a, 0xa6, 0xdb, 0xd4,
+ 0xbd, 0xfa, 0xea, 0x9e, 0x64, 0x34, 0x05, 0x43, 0xf2, 0xfc, 0xb5, 0x83, 0xb9, 0x2d, 0x52, 0x4e,
+ 0xfd, 0xc5, 0x3c, 0xf4, 0x8d, 0xdb, 0xde, 0xab, 0xf6, 0x1e, 0x13, 0xca, 0x85, 0x53, 0x7e, 0x76,
+ 0x07, 0x07, 0x3a, 0xef, 0xc5, 0xca, 0xa5, 0x18, 0xfb, 0xe8, 0xe9, 0xb9, 0x64, 0x27, 0x72, 0x11,
+ 0xf8, 0x64, 0x3b, 0x4c, 0x25, 0xf7, 0x0c, 0x0c, 0x60, 0x90, 0x16, 0xe9, 0xc8, 0x15, 0xfd, 0xa8,
+ 0x3d, 0x06, 0x8c, 0xd7, 0x11, 0x92, 0x92, 0x0f, 0x45, 0x42, 0x83, 0x16, 0xf6, 0x9e, 0x7a, 0x4e,
+ 0x8e, 0x12, 0xfa, 0x14, 0xbf, 0xad, 0xc3, 0x36, 0x49, 0x69, 0x3a, 0xf0, 0xa8, 0x24, 0xd6, 0xa4,
+ 0x80, 0x70, 0x1f, 0xd3, 0xc2, 0x4d, 0xc0, 0xf0, 0xb8, 0xed, 0x49, 0x3e, 0xbb, 0x03, 0xe1, 0x6b,
+ 0x4d, 0x26, 0xf9, 0x74, 0x87, 0xdd, 0x68, 0x19, 0xf5, 0xeb, 0x79, 0x18, 0xf2, 0x7f, 0x1e, 0x90,
+ 0xee, 0x3c, 0x01, 0x85, 0x69, 0x5b, 0xca, 0x54, 0x80, 0x7e, 0xbe, 0xab, 0xb6, 0x1b, 0x73, 0x60,
+ 0x16, 0x44, 0x4c, 0xea, 0x73, 0xb6, 0x21, 0x7b, 0xa9, 0xa3, 0xd4, 0x2d, 0xdb, 0x48, 0xbc, 0xf2,
+ 0x0d, 0x08, 0xc9, 0x05, 0xc8, 0xa3, 0x83, 0xbf, 0x74, 0x5a, 0x1f, 0x73, 0xea, 0x47, 0xbc, 0xa4,
+ 0x95, 0x85, 0x9d, 0x6a, 0x65, 0xdf, 0x6e, 0xb5, 0xb2, 0x7f, 0x7f, 0xb5, 0xf2, 0x75, 0x18, 0xc2,
+ 0x9a, 0xfc, 0x44, 0x67, 0x5b, 0x2f, 0xac, 0x0f, 0x88, 0xb5, 0x6f, 0x98, 0xb7, 0x5b, 0xa4, 0x3b,
+ 0xc3, 0x25, 0x2f, 0xc2, 0x2a, 0xa6, 0xbb, 0xb0, 0x87, 0xed, 0xf4, 0xef, 0x65, 0xa0, 0xef, 0xa6,
+ 0x75, 0xc7, 0xb2, 0xd7, 0xf6, 0xa6, 0x71, 0x4f, 0xc1, 0xa0, 0x60, 0x23, 0xad, 0x2e, 0xf8, 0x70,
+ 0xbb, 0xcd, 0xc1, 0x35, 0xe4, 0xa4, 0xc9, 0x54, 0xe4, 0xc5, 0xa0, 0x10, 0xbe, 0xe1, 0xc9, 0x85,
+ 0xb9, 0x3e, 0xfc, 0x42, 0xf5, 0x68, 0x7a, 0x02, 0x99, 0x9c, 0x9c, 0x85, 0x7c, 0x99, 0x35, 0x55,
+ 0x0a, 0x76, 0xcb, 0x9a, 0xa2, 0x21, 0x54, 0xfd, 0x54, 0x1e, 0x46, 0x62, 0x07, 0x5f, 0x8f, 0xc1,
+ 0x80, 0x38, 0x78, 0x32, 0xfd, 0x7c, 0x09, 0xf8, 0xc6, 0x27, 0x00, 0x6a, 0xfd, 0xfc, 0xcf, 0x8a,
+ 0x41, 0xde, 0x0f, 0x7d, 0xb6, 0x8b, 0x8b, 0x22, 0x7e, 0xcb, 0x48, 0x38, 0x84, 0xe6, 0xab, 0xac,
+ 0xed, 0x7c, 0x70, 0x08, 0x12, 0x59, 0x23, 0x6d, 0x17, 0x3f, 0xed, 0x1a, 0x0c, 0xe8, 0xae, 0x4b,
+ 0xbd, 0x9a, 0xa7, 0xaf, 0xc8, 0x29, 0x14, 0x02, 0xa0, 0x3c, 0x3a, 0x10, 0xb8, 0xa8, 0xaf, 0x90,
+ 0x57, 0x60, 0xb8, 0xee, 0x50, 0x5c, 0x36, 0xf5, 0x06, 0x6b, 0xa5, 0x64, 0xd6, 0x46, 0x10, 0xf2,
+ 0x25, 0x49, 0x88, 0xa8, 0x18, 0xe4, 0x16, 0x0c, 0x8b, 0xcf, 0xe1, 0x0e, 0xf6, 0x38, 0xd0, 0x46,
+ 0xc2, 0x65, 0x8c, 0x8b, 0x84, 0xbb, 0xd8, 0x8b, 0x77, 0x16, 0x32, 0xb9, 0xcc, 0xd7, 0x90, 0x48,
+ 0xc9, 0x3c, 0x90, 0x35, 0xba, 0x54, 0xd3, 0xdb, 0xde, 0x2a, 0xab, 0x8b, 0x47, 0x00, 0x17, 0x99,
+ 0x03, 0xf1, 0x71, 0x42, 0x12, 0x2b, 0xbf, 0xd9, 0x58, 0xa3, 0x4b, 0xa5, 0x08, 0x92, 0xdc, 0x86,
+ 0x93, 0xc9, 0x22, 0xec, 0x93, 0xf9, 0x0d, 0xc0, 0x23, 0x9b, 0x1b, 0xc5, 0x62, 0x2a, 0x81, 0xc4,
+ 0xf6, 0x78, 0x82, 0x6d, 0xc5, 0x78, 0x35, 0xdf, 0xdf, 0x37, 0xda, 0xaf, 0x8d, 0xb0, 0xb2, 0xbe,
+ 0x09, 0x69, 0x1a, 0xea, 0x57, 0x32, 0xcc, 0x54, 0x64, 0x1f, 0x84, 0xa9, 0x93, 0x99, 0xae, 0x37,
+ 0x77, 0xa8, 0xeb, 0xcd, 0x30, 0xc9, 0x61, 0xc1, 0xed, 0x32, 0xbb, 0x6a, 0x02, 0x4b, 0x2e, 0x43,
+ 0xc1, 0x90, 0x4f, 0xcd, 0x4e, 0x45, 0x3b, 0xc1, 0xaf, 0x47, 0x13, 0x54, 0xe4, 0x22, 0xe4, 0xd9,
+ 0x92, 0x15, 0xdf, 0x32, 0xcb, 0xd6, 0x85, 0x86, 0x14, 0xea, 0xb7, 0x66, 0x61, 0x48, 0xfa, 0x9a,
+ 0xab, 0x7b, 0xfa, 0x9c, 0xe7, 0xb7, 0xd7, 0x4c, 0xdf, 0xb3, 0x05, 0xf7, 0x52, 0x7e, 0x93, 0xaf,
+ 0x05, 0xa2, 0xd8, 0xd6, 0xad, 0x93, 0x10, 0xcc, 0x33, 0xe2, 0x43, 0x0b, 0xdb, 0xdf, 0x3e, 0x32,
+ 0xfa, 0x57, 0xf3, 0xfd, 0xd9, 0xd1, 0xdc, 0xab, 0xf9, 0xfe, 0xfc, 0x68, 0x2f, 0x86, 0xcb, 0xc2,
+ 0x08, 0xd5, 0x7c, 0x6f, 0x6e, 0x2d, 0x9b, 0x2b, 0x87, 0xfc, 0x89, 0xc7, 0xfe, 0x86, 0x12, 0x8b,
+ 0xc9, 0xe6, 0x90, 0xbf, 0xf7, 0x78, 0x5b, 0x65, 0x73, 0x94, 0x14, 0x51, 0xc8, 0xe6, 0xf7, 0x33,
+ 0xa0, 0xa4, 0xca, 0xa6, 0x74, 0x40, 0xce, 0x0e, 0xfb, 0x97, 0x1a, 0xf1, 0x6b, 0x59, 0x18, 0xab,
+ 0x58, 0x1e, 0x5d, 0xe1, 0x3b, 0xc6, 0x43, 0x3e, 0x55, 0xdc, 0x80, 0x41, 0xe9, 0x63, 0x44, 0x9f,
+ 0x3f, 0x18, 0xec, 0xc7, 0x43, 0x54, 0x07, 0x4e, 0x72, 0xe9, 0x7d, 0xcc, 0xa6, 0x1e, 0x13, 0xf2,
+ 0x21, 0x9f, 0x73, 0x0e, 0x87, 0x90, 0x0f, 0xf9, 0xe4, 0xf5, 0x0e, 0x15, 0xf2, 0x7f, 0xcb, 0xc0,
+ 0xf1, 0x94, 0xca, 0xc9, 0x05, 0xe8, 0xab, 0xb6, 0x97, 0x30, 0x3a, 0x56, 0x26, 0x74, 0x0b, 0x76,
+ 0xdb, 0x4b, 0x18, 0x18, 0x4b, 0xf3, 0x91, 0x64, 0x11, 0xdf, 0xc0, 0xcf, 0x57, 0xca, 0x13, 0x42,
+ 0xaa, 0xaa, 0xf4, 0x9a, 0x9f, 0x81, 0xd3, 0xbe, 0x2c, 0x78, 0x27, 0x6f, 0x9b, 0x46, 0x3d, 0xf6,
+ 0x4e, 0x9e, 0x95, 0x21, 0x1f, 0x86, 0x81, 0xd2, 0x9b, 0x6d, 0x87, 0x22, 0x5f, 0x2e, 0xf1, 0x77,
+ 0x05, 0x7c, 0x7d, 0x44, 0x1a, 0x67, 0xfe, 0xe4, 0x9f, 0x51, 0xc4, 0x79, 0x87, 0x0c, 0xd5, 0x4f,
+ 0x67, 0xe0, 0x4c, 0xe7, 0xd6, 0x91, 0xf7, 0x42, 0x1f, 0xdb, 0x99, 0x97, 0xb4, 0x39, 0xf1, 0xe9,
+ 0x3c, 0x8d, 0xa8, 0xdd, 0xa0, 0x35, 0xdd, 0x91, 0x8d, 0x7d, 0x9f, 0x8c, 0xbc, 0x04, 0x83, 0x15,
+ 0xd7, 0x6d, 0x53, 0xa7, 0xfa, 0xd4, 0x4d, 0xad, 0x22, 0xf6, 0x84, 0xb8, 0xe7, 0x30, 0x11, 0x5c,
+ 0x73, 0x9f, 0x8a, 0xc5, 0xbf, 0x92, 0xe9, 0xd5, 0x4f, 0x64, 0xe0, 0x6c, 0xb7, 0xaf, 0x22, 0x4f,
+ 0x41, 0xff, 0x22, 0xb5, 0x74, 0xcb, 0xab, 0x94, 0x45, 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, 0x1f, 0xd4, 0xa1, 0x77, 0xde, 0xa2, 0xf3, 0xcb, 0xe4, 0x49, 0x18, 0x60, 0xba,
+ 0x8f, 0x39, 0xfc, 0xc5, 0x40, 0x1b, 0x93, 0x07, 0x0c, 0x22, 0xa6, 0x7b, 0xb4, 0x90, 0x8a, 0x5c,
+ 0x93, 0x13, 0x87, 0x0b, 0x75, 0x20, 0x72, 0x19, 0x8e, 0x99, 0xee, 0xd1, 0xe4, 0x04, 0xe3, 0xd7,
+ 0xe4, 0x84, 0xcd, 0xa2, 0xb3, 0x23, 0xa5, 0x38, 0xc6, 0x2f, 0x25, 0xa6, 0x81, 0x99, 0xb4, 0xac,
+ 0xc6, 0x71, 0x9b, 0x20, 0x49, 0x31, 0xdd, 0xa3, 0xa5, 0x67, 0x43, 0x1e, 0x92, 0x7d, 0xa1, 0xe2,
+ 0x57, 0x99, 0x32, 0x6e, 0xba, 0x47, 0x8b, 0xd0, 0x92, 0x67, 0x61, 0x50, 0xfc, 0x7e, 0xd5, 0x36,
+ 0xad, 0x78, 0x20, 0x0c, 0x09, 0x35, 0xdd, 0xa3, 0xc9, 0x94, 0x52, 0xa5, 0x0b, 0x8e, 0x69, 0x79,
+ 0xe2, 0x79, 0x5d, 0xbc, 0x52, 0xc4, 0x49, 0x95, 0xe2, 0x6f, 0xf2, 0x12, 0x0c, 0x07, 0x11, 0x46,
+ 0xde, 0xa0, 0x75, 0x4f, 0x1c, 0xe9, 0x9c, 0x8c, 0x15, 0xe6, 0xc8, 0xe9, 0x1e, 0x2d, 0x4a, 0x4d,
+ 0x2e, 0x42, 0x41, 0xa3, 0xae, 0xf9, 0xa6, 0x7f, 0x09, 0x32, 0x22, 0x4d, 0x67, 0xe6, 0x9b, 0x4c,
+ 0x4a, 0x02, 0xcf, 0x7a, 0x27, 0xbc, 0x75, 0x11, 0x07, 0x30, 0x24, 0x56, 0xcb, 0xa4, 0x65, 0xb0,
+ 0xde, 0x91, 0xae, 0xdc, 0x5e, 0x09, 0xe3, 0xae, 0x88, 0x6c, 0x6d, 0x83, 0xf1, 0x07, 0xae, 0x32,
+ 0x76, 0xba, 0x47, 0x8b, 0xd1, 0x4b, 0x52, 0x2d, 0x9b, 0xee, 0x1d, 0x11, 0xea, 0x2e, 0x2e, 0x55,
+ 0x86, 0x92, 0xa4, 0xca, 0x7e, 0x4a, 0x55, 0xcf, 0x51, 0x6f, 0xcd, 0x76, 0xee, 0x88, 0xc0, 0x76,
+ 0xf1, 0xaa, 0x05, 0x56, 0xaa, 0x5a, 0x40, 0xe4, 0xaa, 0xd9, 0x22, 0x33, 0x92, 0x5e, 0xb5, 0xee,
+ 0xe9, 0x72, 0xd5, 0x7c, 0x7f, 0xe9, 0x77, 0xd2, 0x0c, 0xd5, 0xef, 0xf2, 0xa4, 0xb9, 0xc9, 0x0e,
+ 0x45, 0x9c, 0xd4, 0xa1, 0xf8, 0x9b, 0x55, 0x2a, 0x25, 0x46, 0x15, 0x59, 0x71, 0x83, 0x4a, 0x25,
+ 0x14, 0xab, 0x54, 0x4e, 0xa1, 0x7a, 0x4d, 0xce, 0x17, 0xaa, 0x8c, 0x45, 0x3b, 0x28, 0xc4, 0xb0,
+ 0x0e, 0x92, 0xf2, 0x8a, 0x16, 0x31, 0x17, 0xa1, 0x42, 0x90, 0x7c, 0x30, 0x68, 0xe1, 0xc4, 0xc2,
+ 0x74, 0x8f, 0x86, 0x59, 0x0a, 0x55, 0x9e, 0xe5, 0x52, 0x39, 0x8e, 0x14, 0x43, 0x3e, 0x05, 0x83,
+ 0x4d, 0xf7, 0x68, 0x3c, 0x03, 0xe6, 0x93, 0x52, 0x3e, 0x29, 0xe5, 0x44, 0x74, 0x8a, 0x08, 0x10,
+ 0x6c, 0x8a, 0x08, 0xb3, 0x4e, 0x4d, 0x25, 0x73, 0x2e, 0x29, 0x27, 0xa3, 0x2b, 0x6a, 0x1c, 0x3f,
+ 0xdd, 0xa3, 0x25, 0xf3, 0x34, 0x3d, 0x1b, 0x49, 0x43, 0xa4, 0x9c, 0x8a, 0x45, 0x9f, 0x09, 0x51,
+ 0x4c, 0x5c, 0x72, 0xc2, 0xa2, 0xf9, 0xd4, 0xc4, 0xe1, 0xca, 0xe9, 0xe8, 0x72, 0x9c, 0x42, 0x32,
+ 0xdd, 0xa3, 0xa5, 0xa6, 0x1c, 0x9f, 0x48, 0x24, 0x03, 0x52, 0x94, 0xe8, 0x8d, 0x6f, 0x0c, 0x3d,
+ 0xdd, 0xa3, 0x25, 0xd2, 0x07, 0x5d, 0x93, 0xb3, 0xf0, 0x28, 0x0f, 0x44, 0x3b, 0x31, 0xc4, 0xb0,
+ 0x4e, 0x94, 0xb2, 0xf5, 0x5c, 0x93, 0x33, 0xb3, 0x28, 0x67, 0x92, 0xa5, 0xc2, 0x99, 0x53, 0xca,
+ 0xe0, 0xa2, 0xa5, 0x27, 0x9b, 0x50, 0x1e, 0x14, 0xe9, 0xfe, 0x44, 0xf9, 0x34, 0x9a, 0xe9, 0x1e,
+ 0x2d, 0x3d, 0x51, 0x85, 0x96, 0x9e, 0xa5, 0x41, 0x39, 0xdb, 0x8d, 0x67, 0xd0, 0xba, 0xf4, 0x0c,
+ 0x0f, 0x7a, 0x97, 0x98, 0xf9, 0xca, 0xb9, 0x68, 0xe8, 0xcb, 0x8e, 0x84, 0xd3, 0x3d, 0x5a, 0x97,
+ 0xc8, 0xfb, 0x37, 0x3b, 0x04, 0xb0, 0x57, 0xce, 0x47, 0xb3, 0x7d, 0xa6, 0x12, 0x4d, 0xf7, 0x68,
+ 0x1d, 0xc2, 0xdf, 0xdf, 0xec, 0x10, 0xdf, 0x5c, 0x29, 0x76, 0x65, 0x1b, 0xc8, 0xa3, 0x43, 0x74,
+ 0xf4, 0xf9, 0xd4, 0xd0, 0xe0, 0xca, 0x43, 0x51, 0xd5, 0x4d, 0x21, 0x61, 0xaa, 0x9b, 0x16, 0x54,
+ 0x7c, 0x3e, 0x35, 0x96, 0xb5, 0xf2, 0x70, 0x17, 0x86, 0x41, 0x1b, 0x53, 0xa3, 0x60, 0xcf, 0xa7,
+ 0x06, 0x93, 0x56, 0xd4, 0x28, 0xc3, 0x14, 0x12, 0xc6, 0x30, 0x2d, 0x0c, 0xf5, 0x7c, 0x6a, 0xcc,
+ 0x61, 0xe5, 0x91, 0x2e, 0x0c, 0xc3, 0x16, 0xa6, 0x45, 0x2b, 0x7e, 0x36, 0x12, 0xf4, 0x57, 0x79,
+ 0x57, 0x74, 0xde, 0x90, 0x50, 0x6c, 0xde, 0x90, 0xc3, 0x03, 0x4f, 0x24, 0xc2, 0x1a, 0x2a, 0x8f,
+ 0x46, 0x87, 0x79, 0x0c, 0xcd, 0x86, 0x79, 0x3c, 0x10, 0xe2, 0x44, 0x22, 0xbc, 0x9b, 0x72, 0xa1,
+ 0x13, 0x13, 0x44, 0x47, 0x99, 0xf0, 0x80, 0x70, 0x95, 0x94, 0xf8, 0x62, 0xca, 0xbb, 0xa3, 0xde,
+ 0x8a, 0x09, 0x82, 0xe9, 0x1e, 0x2d, 0x25, 0x2a, 0x99, 0x96, 0x1e, 0x4c, 0x43, 0xb9, 0x18, 0x1d,
+ 0xb6, 0x69, 0x34, 0x6c, 0xd8, 0xa6, 0x06, 0xe2, 0x98, 0x49, 0x73, 0xa9, 0x56, 0x2e, 0x45, 0x0d,
+ 0xb3, 0x24, 0x05, 0x33, 0xcc, 0x52, 0x5c, 0xb1, 0xb5, 0xf4, 0xf0, 0x10, 0xca, 0x63, 0x5d, 0x5b,
+ 0x88, 0x34, 0x29, 0x2d, 0xe4, 0xd1, 0x12, 0x42, 0xdb, 0xe9, 0x66, 0xab, 0x61, 0xeb, 0x86, 0xf2,
+ 0x9e, 0x54, 0xdb, 0x89, 0x23, 0x25, 0xdb, 0x89, 0x03, 0xd8, 0x2a, 0x2f, 0x7b, 0xee, 0x2a, 0x8f,
+ 0x47, 0x57, 0x79, 0x19, 0xc7, 0x56, 0xf9, 0x88, 0x97, 0xef, 0x44, 0xc2, 0xcb, 0x55, 0x79, 0x22,
+ 0xaa, 0x00, 0x31, 0x34, 0x53, 0x80, 0xb8, 0x5f, 0xec, 0x47, 0x3b, 0xfb, 0x85, 0x2a, 0x97, 0x91,
+ 0xdb, 0x43, 0x3e, 0xb7, 0x4e, 0x74, 0xd3, 0x3d, 0x5a, 0x67, 0xdf, 0xd2, 0x4a, 0x8a, 0x9b, 0xa7,
+ 0x72, 0x25, 0xaa, 0x60, 0x09, 0x02, 0xa6, 0x60, 0x49, 0xe7, 0xd0, 0x4a, 0x8a, 0x9f, 0xa6, 0xf2,
+ 0xde, 0x8e, 0xac, 0x82, 0x6f, 0x4e, 0xf1, 0xee, 0xbc, 0x26, 0x3b, 0x5a, 0x2a, 0x4f, 0x46, 0x17,
+ 0xbb, 0x10, 0xc3, 0x16, 0x3b, 0xc9, 0x21, 0xf3, 0x9a, 0xec, 0x62, 0xa8, 0x5c, 0x4d, 0x96, 0x0a,
+ 0x97, 0x48, 0xc9, 0x15, 0x51, 0x4b, 0xf7, 0xcc, 0x53, 0x9e, 0x8a, 0x6a, 0x5d, 0x1a, 0x0d, 0xd3,
+ 0xba, 0x54, 0xaf, 0xbe, 0xa9, 0xa4, 0x83, 0x9d, 0x72, 0x2d, 0x7e, 0x96, 0x10, 0xc5, 0x33, 0xcb,
+ 0x27, 0xe1, 0x94, 0xf7, 0x4a, 0x3c, 0xd2, 0x93, 0xf2, 0x74, 0xec, 0x32, 0x23, 0x82, 0x65, 0xf6,
+ 0x6d, 0x2c, 0x32, 0xd4, 0x2b, 0xf1, 0xe0, 0x48, 0xca, 0x33, 0xe9, 0x1c, 0x02, 0x5d, 0x89, 0x07,
+ 0x53, 0x7a, 0x25, 0x1e, 0x4f, 0x48, 0x79, 0x36, 0x9d, 0x43, 0x20, 0xdd, 0x78, 0xfc, 0xa1, 0x27,
+ 0xa5, 0x08, 0xc7, 0xca, 0xfb, 0xa2, 0xa6, 0x63, 0x80, 0x60, 0xa6, 0x63, 0x18, 0x07, 0xf9, 0x49,
+ 0x29, 0x32, 0xb0, 0xf2, 0x5c, 0xa2, 0x48, 0xd0, 0x58, 0x29, 0x7e, 0xf0, 0x93, 0x52, 0x44, 0x5d,
+ 0xe5, 0xf9, 0x44, 0x91, 0xa0, 0x75, 0x52, 0xdc, 0x5d, 0xa3, 0xdb, 0xd3, 0x2b, 0xe5, 0x85, 0xe8,
+ 0x11, 0x47, 0x67, 0xca, 0xe9, 0x1e, 0xad, 0xdb, 0x13, 0xae, 0x8f, 0x76, 0x76, 0x57, 0x54, 0x5e,
+ 0x8c, 0x0e, 0xe1, 0x4e, 0x74, 0x6c, 0x08, 0x77, 0x74, 0x79, 0x7c, 0x29, 0xf6, 0x0c, 0x5b, 0x79,
+ 0x29, 0x3a, 0xc5, 0x45, 0x90, 0x6c, 0x8a, 0x8b, 0x3f, 0xda, 0x8e, 0xbc, 0x2f, 0x56, 0xde, 0x1f,
+ 0x9d, 0xe2, 0x64, 0x1c, 0x9b, 0xe2, 0x22, 0x6f, 0x91, 0x27, 0x12, 0xcf, 0x5e, 0x95, 0x97, 0xa3,
+ 0x53, 0x5c, 0x0c, 0xcd, 0xa6, 0xb8, 0xf8, 0x43, 0xd9, 0x97, 0x62, 0xaf, 0x3f, 0x95, 0x57, 0xd2,
+ 0xdb, 0x8f, 0x48, 0xb9, 0xfd, 0xfc, 0xad, 0xa8, 0x96, 0xfe, 0x8c, 0x51, 0x29, 0x45, 0xc7, 0x6f,
+ 0x1a, 0x0d, 0x1b, 0xbf, 0xa9, 0x4f, 0x20, 0xe3, 0x1b, 0x07, 0xa1, 0x55, 0xe3, 0x5d, 0x36, 0x0e,
+ 0xa1, 0x29, 0x92, 0x02, 0x8e, 0xec, 0x91, 0xf9, 0x46, 0x68, 0xa2, 0xc3, 0x1e, 0xd9, 0xdf, 0x06,
+ 0xc5, 0xe8, 0xd9, 0xec, 0x9a, 0xf0, 0x9e, 0x53, 0xca, 0xd1, 0xd9, 0x35, 0x41, 0xc0, 0x66, 0xd7,
+ 0xa4, 0xcf, 0xdd, 0x14, 0x8c, 0x0a, 0x2d, 0xe2, 0x4e, 0x81, 0xa6, 0xb5, 0xa2, 0x4c, 0xc6, 0x5e,
+ 0x11, 0xc5, 0xf0, 0x6c, 0x76, 0x8a, 0xc3, 0x70, 0xbd, 0xe6, 0xb0, 0x89, 0x86, 0xd9, 0x5a, 0xb2,
+ 0x75, 0xc7, 0xa8, 0x52, 0xcb, 0x50, 0xa6, 0x62, 0xeb, 0x75, 0x0a, 0x0d, 0xae, 0xd7, 0x29, 0x70,
+ 0x8c, 0x6e, 0x14, 0x83, 0x6b, 0xb4, 0x4e, 0xcd, 0xbb, 0x54, 0xb9, 0x8e, 0x6c, 0x8b, 0x9d, 0xd8,
+ 0x0a, 0xb2, 0xe9, 0x1e, 0xad, 0x13, 0x07, 0x66, 0xab, 0xcf, 0xae, 0x57, 0x5f, 0x9b, 0x09, 0x5e,
+ 0xce, 0x2e, 0x38, 0xb4, 0xa5, 0x3b, 0x54, 0x99, 0x8e, 0xda, 0xea, 0xa9, 0x44, 0xcc, 0x56, 0x4f,
+ 0x45, 0x24, 0xd9, 0xfa, 0x63, 0xa1, 0xd2, 0x8d, 0x6d, 0x38, 0x22, 0xd2, 0x4b, 0xb3, 0xd9, 0x29,
+ 0x8a, 0x60, 0x02, 0x9a, 0xb1, 0xad, 0x15, 0x3c, 0xa9, 0x78, 0x35, 0x3a, 0x3b, 0x75, 0xa6, 0x64,
+ 0xb3, 0x53, 0x67, 0x2c, 0x53, 0xf5, 0x28, 0x96, 0x8f, 0xc1, 0x1b, 0x51, 0x55, 0x4f, 0x21, 0x61,
+ 0xaa, 0x9e, 0x02, 0x4e, 0x32, 0xd4, 0xa8, 0x4b, 0x3d, 0x65, 0xa6, 0x1b, 0x43, 0x24, 0x49, 0x32,
+ 0x44, 0x70, 0x92, 0xe1, 0x14, 0xf5, 0xea, 0xab, 0xca, 0x6c, 0x37, 0x86, 0x48, 0x92, 0x64, 0x88,
+ 0x60, 0xb6, 0xd9, 0x8c, 0x82, 0xc7, 0xdb, 0x8d, 0x3b, 0x7e, 0x9f, 0xcd, 0x45, 0x37, 0x9b, 0x1d,
+ 0x09, 0xd9, 0x66, 0xb3, 0x23, 0x92, 0x7c, 0x62, 0xdb, 0xde, 0x9d, 0xca, 0x3c, 0x56, 0x78, 0x39,
+ 0xb4, 0x0b, 0xb6, 0x53, 0x6a, 0xba, 0x47, 0xdb, 0xae, 0xf7, 0xe8, 0x7b, 0x02, 0x57, 0x28, 0x65,
+ 0x01, 0xab, 0x3a, 0x16, 0x9c, 0x55, 0x70, 0xf0, 0x74, 0x8f, 0x16, 0x38, 0x4b, 0x3d, 0x0b, 0x83,
+ 0xf8, 0x51, 0x15, 0xcb, 0xf4, 0xca, 0xe3, 0xca, 0x6b, 0xd1, 0x2d, 0x93, 0x84, 0x62, 0x5b, 0x26,
+ 0xe9, 0x27, 0x9b, 0xc4, 0xf1, 0x27, 0x9f, 0x62, 0xca, 0xe3, 0x8a, 0x16, 0x9d, 0xc4, 0x23, 0x48,
+ 0x36, 0x89, 0x47, 0x00, 0x41, 0xbd, 0x65, 0xc7, 0x6e, 0x95, 0xc7, 0x95, 0x6a, 0x4a, 0xbd, 0x1c,
+ 0x15, 0xd4, 0xcb, 0x7f, 0x06, 0xf5, 0x56, 0x57, 0xdb, 0x5e, 0x99, 0x7d, 0xe3, 0x62, 0x4a, 0xbd,
+ 0x3e, 0x32, 0xa8, 0xd7, 0x07, 0xb0, 0xa9, 0x10, 0x01, 0x0b, 0x8e, 0xcd, 0x26, 0xed, 0x1b, 0x66,
+ 0xa3, 0xa1, 0xdc, 0x8c, 0x4e, 0x85, 0x71, 0x3c, 0x9b, 0x0a, 0xe3, 0x30, 0x66, 0x7a, 0xf2, 0x56,
+ 0xd1, 0xa5, 0xf6, 0x8a, 0x72, 0x2b, 0x6a, 0x7a, 0x86, 0x18, 0x66, 0x7a, 0x86, 0xbf, 0x70, 0x77,
+ 0xc1, 0x7e, 0x69, 0x74, 0xd9, 0xa1, 0xee, 0xaa, 0x72, 0x3b, 0xb6, 0xbb, 0x90, 0x70, 0xb8, 0xbb,
+ 0x90, 0x7e, 0x93, 0x15, 0x78, 0x30, 0xb2, 0xd0, 0xf8, 0x77, 0x4f, 0x55, 0xaa, 0x3b, 0xf5, 0x55,
+ 0xe5, 0x03, 0xc8, 0xea, 0x91, 0xd4, 0xa5, 0x2a, 0x4a, 0x3a, 0xdd, 0xa3, 0x75, 0xe3, 0x84, 0xdb,
+ 0xf2, 0xd7, 0x66, 0x78, 0x18, 0x42, 0x6d, 0x61, 0xc2, 0xdf, 0x84, 0xbe, 0x1e, 0xdb, 0x96, 0x27,
+ 0x49, 0x70, 0x5b, 0x9e, 0x04, 0x93, 0x16, 0x9c, 0x8f, 0x6d, 0xd5, 0x66, 0xf5, 0x06, 0xdb, 0x97,
+ 0x50, 0x63, 0x41, 0xaf, 0xdf, 0xa1, 0x9e, 0xf2, 0x41, 0xe4, 0x7d, 0xa1, 0xc3, 0x86, 0x2f, 0x46,
+ 0x3d, 0xdd, 0xa3, 0x6d, 0xc1, 0x8f, 0xa8, 0x90, 0xaf, 0x4e, 0x2d, 0x2e, 0x28, 0x1f, 0x8a, 0x9e,
+ 0x6f, 0x32, 0xd8, 0x74, 0x8f, 0x86, 0x38, 0x66, 0xa5, 0xdd, 0x6c, 0xad, 0x38, 0xba, 0x41, 0xb9,
+ 0xa1, 0x85, 0xb6, 0x9b, 0x30, 0x40, 0x3f, 0x1c, 0xb5, 0xd2, 0x3a, 0xd1, 0x31, 0x2b, 0xad, 0x13,
+ 0x8e, 0x29, 0x6a, 0x24, 0xe2, 0xbe, 0xf2, 0x91, 0xa8, 0xa2, 0x46, 0x90, 0x4c, 0x51, 0xa3, 0xf1,
+ 0xf9, 0x3f, 0x00, 0xa7, 0x82, 0xfd, 0xbc, 0x58, 0x7f, 0x79, 0xa7, 0x29, 0x1f, 0x45, 0x3e, 0xe7,
+ 0x13, 0x97, 0x01, 0x11, 0xaa, 0xe9, 0x1e, 0xad, 0x43, 0x79, 0xb6, 0xe2, 0x26, 0x92, 0xc9, 0x08,
+ 0xf3, 0xe2, 0x5b, 0xa2, 0x2b, 0x6e, 0x07, 0x32, 0xb6, 0xe2, 0x76, 0x40, 0xa5, 0x32, 0x17, 0x42,
+ 0xd5, 0xb7, 0x60, 0x1e, 0xc8, 0xb4, 0x13, 0x87, 0x54, 0xe6, 0xc2, 0x52, 0x5b, 0xda, 0x82, 0x79,
+ 0x60, 0xad, 0x75, 0xe2, 0x40, 0x2e, 0x42, 0xa1, 0x5a, 0x9d, 0xd5, 0xda, 0x96, 0x52, 0x8f, 0xf9,
+ 0x80, 0x21, 0x74, 0xba, 0x47, 0x13, 0x78, 0x66, 0x06, 0x4d, 0x36, 0x74, 0xd7, 0x33, 0xeb, 0x2e,
+ 0x8e, 0x18, 0x7f, 0x84, 0x18, 0x51, 0x33, 0x28, 0x8d, 0x86, 0x99, 0x41, 0x69, 0x70, 0x66, 0x2f,
+ 0x4e, 0xe8, 0xae, 0xab, 0x5b, 0x86, 0xa3, 0x8f, 0xe3, 0x32, 0x41, 0x63, 0x6f, 0x0c, 0x22, 0x58,
+ 0x66, 0x2f, 0x46, 0x21, 0x78, 0xf8, 0xee, 0x43, 0x7c, 0x33, 0x67, 0x39, 0x76, 0xf8, 0x1e, 0xc3,
+ 0xe3, 0xe1, 0x7b, 0x0c, 0x86, 0x76, 0xa7, 0x0f, 0xd3, 0xe8, 0x8a, 0xc9, 0x44, 0xa4, 0xac, 0xc4,
+ 0xec, 0xce, 0x38, 0x01, 0xda, 0x9d, 0x71, 0x60, 0xa4, 0x49, 0xfe, 0x72, 0xbb, 0xda, 0xa1, 0x49,
+ 0xe1, 0x2a, 0x9b, 0x28, 0xc3, 0xd6, 0xef, 0x70, 0x70, 0x94, 0xd7, 0x2d, 0xbd, 0x69, 0x97, 0xc7,
+ 0x7d, 0xa9, 0x9b, 0xd1, 0xf5, 0xbb, 0x23, 0x21, 0x5b, 0xbf, 0x3b, 0x22, 0xd9, 0xec, 0xea, 0x6f,
+ 0xb4, 0x56, 0x75, 0x87, 0x1a, 0x65, 0xd3, 0xc1, 0x93, 0xc5, 0x75, 0xbe, 0x35, 0x7c, 0x23, 0x3a,
+ 0xbb, 0x76, 0x21, 0x65, 0xb3, 0x6b, 0x17, 0x34, 0x33, 0xf2, 0xd2, 0xd1, 0x1a, 0xd5, 0x0d, 0xe5,
+ 0x4e, 0xd4, 0xc8, 0xeb, 0x4c, 0xc9, 0x8c, 0xbc, 0xce, 0xd8, 0xce, 0x9f, 0x73, 0xdb, 0x31, 0x3d,
+ 0xaa, 0x34, 0xb6, 0xf3, 0x39, 0x48, 0xda, 0xf9, 0x73, 0x10, 0xcd, 0x36, 0x84, 0xf1, 0x0e, 0x69,
+ 0x46, 0x37, 0x84, 0xc9, 0x6e, 0x88, 0x97, 0x60, 0x16, 0x8b, 0x78, 0x6a, 0xa2, 0x58, 0x51, 0x8b,
+ 0x45, 0x80, 0x99, 0xc5, 0x12, 0x3e, 0x46, 0x89, 0x3c, 0x30, 0x50, 0xec, 0xe8, 0x1a, 0x2a, 0xe3,
+ 0xd8, 0x1a, 0x1a, 0x79, 0x8c, 0xf0, 0x6c, 0xc4, 0x7b, 0x56, 0x69, 0x45, 0xad, 0x0e, 0x09, 0xc5,
+ 0xac, 0x0e, 0xd9, 0xcf, 0x76, 0x02, 0x8e, 0xe1, 0x2d, 0xb8, 0xd6, 0x0e, 0xee, 0x71, 0x3e, 0x16,
+ 0xfd, 0xcc, 0x18, 0x9a, 0x7d, 0x66, 0x0c, 0x14, 0x61, 0x22, 0xa6, 0x2d, 0xa7, 0x03, 0x93, 0xf0,
+ 0x7c, 0x30, 0x06, 0x22, 0x33, 0x40, 0xaa, 0xa5, 0xd9, 0x99, 0x8a, 0xb1, 0x20, 0x5f, 0x91, 0xb9,
+ 0xd1, 0x13, 0xd8, 0x24, 0xc5, 0x74, 0x8f, 0x96, 0x52, 0x8e, 0xbc, 0x01, 0x67, 0x05, 0x54, 0xbc,
+ 0x23, 0xc4, 0x9c, 0xd3, 0x46, 0xb0, 0x20, 0x78, 0x51, 0xef, 0x8c, 0x6e, 0xb4, 0xd3, 0x3d, 0x5a,
+ 0x57, 0x5e, 0x9d, 0xeb, 0x12, 0xeb, 0x43, 0x7b, 0x3b, 0x75, 0x05, 0x8b, 0x44, 0x57, 0x5e, 0x9d,
+ 0xeb, 0x12, 0x72, 0xbf, 0xbb, 0x9d, 0xba, 0x82, 0x4e, 0xe8, 0xca, 0x8b, 0xb8, 0x50, 0xec, 0x86,
+ 0x2f, 0x35, 0x1a, 0xca, 0x1a, 0x56, 0xf7, 0xee, 0xed, 0x54, 0x57, 0x42, 0x83, 0x73, 0x2b, 0x8e,
+ 0x6c, 0x96, 0x9e, 0x6f, 0x51, 0xab, 0x1a, 0x59, 0x80, 0xee, 0x45, 0x67, 0xe9, 0x04, 0x01, 0x9b,
+ 0xa5, 0x13, 0x40, 0x36, 0xa0, 0x64, 0x27, 0x6c, 0x65, 0x3d, 0x3a, 0xa0, 0x64, 0x1c, 0x1b, 0x50,
+ 0x11, 0x87, 0xed, 0x79, 0x38, 0x3e, 0x7f, 0xc7, 0xd3, 0x7d, 0x0b, 0xd2, 0x15, 0x5d, 0xf9, 0x66,
+ 0xec, 0x92, 0x29, 0x49, 0x82, 0x97, 0x4c, 0x49, 0x30, 0x1b, 0x23, 0x0c, 0x5c, 0x5d, 0xb7, 0xea,
+ 0x53, 0xba, 0xd9, 0x68, 0x3b, 0x54, 0xf9, 0xff, 0xa2, 0x63, 0x24, 0x86, 0x66, 0x63, 0x24, 0x06,
+ 0x62, 0x0b, 0x34, 0x03, 0x95, 0x5c, 0xd7, 0x5c, 0xb1, 0xc4, 0xbe, 0xb2, 0xdd, 0xf0, 0x94, 0xff,
+ 0x3f, 0xba, 0x40, 0xa7, 0xd1, 0xb0, 0x05, 0x3a, 0x0d, 0x8e, 0xa7, 0x4e, 0x29, 0xf9, 0xd8, 0x95,
+ 0xbf, 0x14, 0x3b, 0x75, 0x4a, 0xa1, 0xc1, 0x53, 0xa7, 0xb4, 0x5c, 0xee, 0x53, 0x30, 0xca, 0x6d,
+ 0xb2, 0x19, 0x33, 0xb8, 0xab, 0xfe, 0xcb, 0xd1, 0xf5, 0x31, 0x8e, 0x67, 0xeb, 0x63, 0x1c, 0x16,
+ 0xe5, 0x23, 0xba, 0xe0, 0xaf, 0x74, 0xe2, 0x13, 0xc8, 0x3f, 0x51, 0x86, 0x5c, 0x97, 0xf9, 0x88,
+ 0x91, 0xf2, 0xad, 0x99, 0x4e, 0x8c, 0x82, 0xe1, 0x91, 0x28, 0x14, 0x65, 0xa4, 0xd1, 0xbb, 0x26,
+ 0x5d, 0x53, 0x3e, 0xde, 0x91, 0x11, 0x27, 0x88, 0x32, 0xe2, 0x30, 0xf2, 0x3a, 0x9c, 0x0a, 0x61,
+ 0xb3, 0xb4, 0xb9, 0x14, 0xcc, 0x4c, 0xdf, 0x96, 0x89, 0x9a, 0xc1, 0xe9, 0x64, 0xcc, 0x0c, 0x4e,
+ 0xc7, 0xa4, 0xb1, 0x16, 0xa2, 0xfb, 0xab, 0x5b, 0xb0, 0x0e, 0x24, 0xd8, 0x81, 0x41, 0x1a, 0x6b,
+ 0x21, 0xcd, 0x6f, 0xdf, 0x82, 0x75, 0x20, 0xd3, 0x0e, 0x0c, 0xc8, 0x27, 0x33, 0x70, 0x21, 0x1d,
+ 0x55, 0x6a, 0x34, 0xa6, 0x6c, 0x27, 0xc4, 0x29, 0xdf, 0x91, 0x89, 0x1e, 0x34, 0x6c, 0xaf, 0xd8,
+ 0x74, 0x8f, 0xb6, 0xcd, 0x0a, 0xc8, 0xfb, 0x61, 0xb8, 0xd4, 0x36, 0x4c, 0x0f, 0x2f, 0xde, 0x98,
+ 0xe1, 0xfc, 0x9d, 0x99, 0xd8, 0x16, 0x47, 0xc6, 0xe2, 0x16, 0x47, 0x06, 0x90, 0x57, 0x61, 0xac,
+ 0x4a, 0xeb, 0x6d, 0xc7, 0xf4, 0xd6, 0x35, 0xcc, 0xb5, 0xcf, 0x78, 0x7c, 0x57, 0x26, 0x3a, 0x89,
+ 0x25, 0x28, 0xd8, 0x24, 0x96, 0x00, 0x92, 0x5b, 0x1d, 0x32, 0xb2, 0x2b, 0x9f, 0xc8, 0x74, 0xbd,
+ 0x96, 0x0f, 0xfa, 0xb2, 0x43, 0x42, 0xf7, 0x85, 0xd4, 0x0c, 0xd7, 0xca, 0x27, 0x33, 0x5d, 0xae,
+ 0xd1, 0xa5, 0x19, 0x2e, 0x25, 0x39, 0xf6, 0x42, 0x6a, 0xfa, 0x61, 0xe5, 0xbb, 0x33, 0x5d, 0xae,
+ 0xbd, 0x43, 0x8e, 0x69, 0x99, 0x8b, 0x9f, 0xe6, 0x9e, 0x22, 0x82, 0xd1, 0x5f, 0xcb, 0x24, 0x5d,
+ 0x45, 0x82, 0xf2, 0x12, 0x21, 0x2b, 0x76, 0xd3, 0x0d, 0x94, 0xfe, 0x53, 0x99, 0xa4, 0x6f, 0x5e,
+ 0x58, 0x2c, 0xfc, 0x45, 0x28, 0x9c, 0x99, 0xbc, 0xe7, 0x51, 0xc7, 0xd2, 0x1b, 0xd8, 0x9d, 0x55,
+ 0xcf, 0x76, 0xf4, 0x15, 0x3a, 0x69, 0xe9, 0x4b, 0x0d, 0xaa, 0x7c, 0x3a, 0x13, 0xb5, 0x60, 0x3b,
+ 0x93, 0x32, 0x0b, 0xb6, 0x33, 0x96, 0xac, 0xc2, 0x83, 0x69, 0xd8, 0xb2, 0xe9, 0x62, 0x3d, 0x9f,
+ 0xc9, 0x44, 0x4d, 0xd8, 0x2e, 0xb4, 0xcc, 0x84, 0xed, 0x82, 0x26, 0x57, 0x61, 0x60, 0xdc, 0xf6,
+ 0xa7, 0xdf, 0xef, 0x89, 0x39, 0x43, 0x06, 0x98, 0xe9, 0x1e, 0x2d, 0x24, 0x13, 0x65, 0xc4, 0xa0,
+ 0xfe, 0x6c, 0xb2, 0x4c, 0x78, 0xf9, 0x14, 0xfc, 0x10, 0x65, 0x84, 0xb8, 0xff, 0x7a, 0xb2, 0x4c,
+ 0x78, 0xc7, 0x15, 0xfc, 0x60, 0x33, 0x09, 0xaf, 0x71, 0x76, 0xaa, 0xc4, 0xec, 0xb6, 0x89, 0x55,
+ 0xbd, 0xd1, 0xa0, 0xd6, 0x0a, 0x55, 0x3e, 0x17, 0x9b, 0x49, 0xd2, 0xc9, 0xd8, 0x4c, 0x92, 0x8e,
+ 0x21, 0x1f, 0x86, 0xd3, 0xb7, 0xf4, 0x86, 0x69, 0x84, 0x38, 0x3f, 0x19, 0xad, 0xf2, 0xbd, 0x99,
+ 0xe8, 0x6e, 0xba, 0x03, 0x1d, 0xdb, 0x4d, 0x77, 0x40, 0x91, 0x59, 0x20, 0xb8, 0x8c, 0x06, 0xb3,
+ 0x05, 0x5b, 0x9f, 0x95, 0xbf, 0x91, 0x89, 0xda, 0xa9, 0x49, 0x12, 0x66, 0xa7, 0x26, 0xa1, 0xa4,
+ 0xd6, 0x39, 0xaa, 0xbd, 0xf2, 0x7d, 0x99, 0xe8, 0x69, 0x4d, 0x27, 0xc2, 0xe9, 0x1e, 0xad, 0x73,
+ 0x68, 0xfc, 0xeb, 0x30, 0x5a, 0x5d, 0xa8, 0x4c, 0x4d, 0x4d, 0x56, 0x6f, 0x55, 0xca, 0xe8, 0xbe,
+ 0x6b, 0x28, 0xdf, 0x1f, 0x5b, 0xb1, 0xe2, 0x04, 0x6c, 0xc5, 0x8a, 0xc3, 0xc8, 0x0b, 0x30, 0xc4,
+ 0xda, 0xcf, 0x06, 0x0c, 0x7e, 0xf2, 0xe7, 0x33, 0x51, 0x73, 0x4a, 0x46, 0x32, 0x73, 0x4a, 0xfe,
+ 0x4d, 0xaa, 0x70, 0x82, 0x49, 0x71, 0xc1, 0xa1, 0xcb, 0xd4, 0xa1, 0x56, 0xdd, 0x1f, 0xd3, 0x3f,
+ 0x90, 0x89, 0x5a, 0x19, 0x69, 0x44, 0xcc, 0xca, 0x48, 0x83, 0x93, 0x3b, 0x70, 0x36, 0x7e, 0x12,
+ 0x24, 0x3f, 0xa6, 0x52, 0x7e, 0x30, 0x13, 0x33, 0x86, 0xbb, 0x10, 0xa3, 0x31, 0xdc, 0x05, 0x4f,
+ 0x2c, 0x38, 0x27, 0x8e, 0x55, 0x84, 0xc3, 0x65, 0xbc, 0xb6, 0x1f, 0xe2, 0xb5, 0x3d, 0x1a, 0x3a,
+ 0x04, 0x76, 0xa1, 0x9e, 0xee, 0xd1, 0xba, 0xb3, 0x63, 0x7a, 0x96, 0x8c, 0xdd, 0xae, 0xfc, 0x70,
+ 0x26, 0xdd, 0x23, 0x25, 0xe2, 0xa6, 0x9c, 0x16, 0xf4, 0xfd, 0xf5, 0x4e, 0x91, 0xc7, 0x95, 0x1f,
+ 0x89, 0x8d, 0xb7, 0x74, 0x32, 0x36, 0xde, 0x3a, 0x84, 0x2e, 0x7f, 0x15, 0xc6, 0xb8, 0x52, 0x2f,
+ 0xe8, 0x38, 0x0c, 0xad, 0x15, 0x6a, 0x28, 0x7f, 0x33, 0xb6, 0xda, 0x25, 0x28, 0xd0, 0xb5, 0x27,
+ 0x0e, 0x64, 0x53, 0x77, 0xb5, 0xa5, 0x5b, 0x16, 0x1e, 0xb3, 0x2a, 0x7f, 0x2b, 0x36, 0x75, 0x87,
+ 0x28, 0x74, 0xdc, 0x0d, 0x7e, 0x31, 0x4d, 0xe8, 0x96, 0xb5, 0x43, 0xf9, 0xd1, 0x98, 0x26, 0x74,
+ 0x23, 0x66, 0x9a, 0xd0, 0x35, 0x05, 0xc8, 0xad, 0x0e, 0x0f, 0x1b, 0x95, 0x2f, 0xc4, 0x56, 0xe4,
+ 0x54, 0x2a, 0xb6, 0x22, 0xa7, 0xbf, 0x8b, 0xbc, 0xd5, 0xe1, 0x51, 0xa0, 0xf2, 0x63, 0xdd, 0xf9,
+ 0x86, 0x2b, 0x7d, 0xfa, 0x9b, 0xc2, 0x5b, 0x1d, 0x1e, 0xd4, 0x29, 0x3f, 0xde, 0x9d, 0x6f, 0xe8,
+ 0xd8, 0x97, 0xfe, 0x1e, 0xaf, 0xd6, 0xf9, 0x31, 0x9a, 0xf2, 0x13, 0xf1, 0xa9, 0xab, 0x03, 0x21,
+ 0x4e, 0x5d, 0x9d, 0x5e, 0xb4, 0x2d, 0xc1, 0x03, 0x5c, 0x43, 0xae, 0x3b, 0x7a, 0x6b, 0xb5, 0x4a,
+ 0x3d, 0xcf, 0xb4, 0x56, 0xfc, 0x9d, 0xd8, 0xdf, 0xce, 0xc4, 0x8e, 0xc7, 0x3a, 0x51, 0xe2, 0xf1,
+ 0x58, 0x27, 0x24, 0x53, 0xde, 0xc4, 0xb3, 0x33, 0xe5, 0x27, 0x63, 0xca, 0x9b, 0xa0, 0x60, 0xca,
+ 0x9b, 0x7c, 0xad, 0xf6, 0x6a, 0xca, 0xeb, 0x2a, 0xe5, 0xef, 0x74, 0xe6, 0x15, 0xb4, 0x2f, 0xe5,
+ 0x51, 0xd6, 0xab, 0x29, 0x8f, 0x88, 0x94, 0xbf, 0xdb, 0x99, 0x57, 0xe8, 0x83, 0x94, 0x7c, 0x7b,
+ 0xf4, 0x3a, 0x9c, 0xe2, 0xb3, 0xf9, 0x14, 0x35, 0x68, 0xe4, 0x43, 0x7f, 0x2a, 0x36, 0xf6, 0xd3,
+ 0xc9, 0xf0, 0xc8, 0x3d, 0x15, 0x93, 0xc6, 0x5a, 0xb4, 0xf5, 0xa7, 0xb7, 0x60, 0x1d, 0x6e, 0x08,
+ 0xd2, 0x31, 0xe3, 0x7d, 0xd0, 0x8b, 0x7b, 0x71, 0xf5, 0x0b, 0x19, 0x18, 0xaa, 0x7a, 0x0e, 0xd5,
+ 0x9b, 0x22, 0x0e, 0xc6, 0x19, 0xe8, 0xe7, 0x4e, 0x6d, 0xfe, 0xbb, 0x12, 0x2d, 0xf8, 0x4d, 0x2e,
+ 0xc0, 0xc8, 0x8c, 0xee, 0x7a, 0x58, 0xb2, 0x62, 0x19, 0xf4, 0x1e, 0x3e, 0xe8, 0xc8, 0x69, 0x31,
+ 0x28, 0x99, 0xe1, 0x74, 0xbc, 0x1c, 0x86, 0x3e, 0xca, 0x6d, 0x19, 0xfe, 0xa1, 0xff, 0xad, 0x8d,
+ 0x62, 0x0f, 0x46, 0x7b, 0x88, 0x95, 0x55, 0xbf, 0x92, 0x81, 0x84, 0xbb, 0xdd, 0xee, 0xdf, 0x7b,
+ 0xcd, 0xc3, 0xb1, 0x58, 0xb8, 0x2d, 0xf1, 0x2a, 0x65, 0x9b, 0xd1, 0xb8, 0xe2, 0xa5, 0xc9, 0xbb,
+ 0x83, 0xd7, 0x10, 0x37, 0xb5, 0x19, 0x11, 0xda, 0xa3, 0x6f, 0x73, 0xa3, 0x98, 0x6b, 0x3b, 0x0d,
+ 0x4d, 0x42, 0x89, 0xa7, 0xdb, 0xdf, 0x18, 0x0d, 0x63, 0x09, 0x91, 0x0b, 0xe2, 0xf1, 0x59, 0x26,
+ 0x0c, 0x08, 0x12, 0xcb, 0x54, 0xc9, 0x1f, 0x9b, 0xbd, 0x1f, 0x86, 0x2a, 0xcd, 0x16, 0x75, 0x5c,
+ 0xdb, 0xd2, 0x3d, 0xdb, 0xcf, 0x88, 0x8f, 0xc1, 0x22, 0x4c, 0x09, 0x2e, 0x07, 0x30, 0x90, 0xe9,
+ 0xc9, 0x25, 0x3f, 0x79, 0x46, 0x0e, 0xa3, 0x38, 0x61, 0x28, 0xd2, 0x78, 0xf6, 0x43, 0x4e, 0xc1,
+ 0x48, 0x6f, 0xba, 0x3a, 0xbe, 0x9b, 0x09, 0x48, 0xdb, 0x0c, 0x20, 0x93, 0x22, 0x05, 0x79, 0x1c,
+ 0x0a, 0x78, 0xce, 0xe8, 0x62, 0x52, 0x1c, 0x11, 0xa6, 0xa4, 0x81, 0x10, 0x39, 0x28, 0x04, 0xa7,
+ 0x21, 0x37, 0x60, 0x34, 0xbc, 0x44, 0xb9, 0xee, 0xd8, 0xed, 0x96, 0x1f, 0x06, 0x1b, 0xb3, 0x46,
+ 0xde, 0x09, 0x70, 0xb5, 0x15, 0x44, 0x4a, 0x2c, 0x12, 0x05, 0xc9, 0x34, 0x1c, 0x0b, 0x61, 0x4c,
+ 0x44, 0x7e, 0xf8, 0x7d, 0x4c, 0x7d, 0x24, 0xf1, 0x62, 0xe2, 0x8c, 0xa4, 0x3e, 0x8a, 0x15, 0x23,
+ 0x15, 0xe8, 0xf3, 0x63, 0x94, 0xf4, 0x6f, 0xa9, 0xa4, 0xc7, 0x45, 0x8c, 0x92, 0x3e, 0x39, 0x3a,
+ 0x89, 0x5f, 0x9e, 0x4c, 0xc1, 0x88, 0x66, 0xb7, 0x3d, 0xba, 0x68, 0x0b, 0xeb, 0x43, 0xc4, 0xc2,
+ 0xc1, 0x36, 0x39, 0x0c, 0x53, 0xf3, 0x6c, 0x3f, 0xe9, 0xa6, 0x9c, 0xfc, 0x31, 0x5a, 0x8a, 0xcc,
+ 0xc1, 0x58, 0xe2, 0xba, 0x49, 0x4e, 0x85, 0x29, 0x7d, 0x5e, 0x92, 0x59, 0xb2, 0x28, 0xf9, 0xce,
+ 0x0c, 0x14, 0x16, 0x1d, 0xdd, 0xf4, 0x5c, 0xf1, 0xe4, 0xe6, 0xe4, 0xe5, 0x35, 0x47, 0x6f, 0x31,
+ 0xfd, 0xb8, 0x8c, 0x61, 0xba, 0x6e, 0xe9, 0x8d, 0x36, 0x75, 0xc7, 0x6f, 0xb3, 0xaf, 0xfb, 0x83,
+ 0x8d, 0xe2, 0x0b, 0x2b, 0xb8, 0xa9, 0xbd, 0x5c, 0xb7, 0x9b, 0x57, 0x56, 0x1c, 0xfd, 0xae, 0xe9,
+ 0xe1, 0xd4, 0xa1, 0x37, 0xae, 0x78, 0xb4, 0x81, 0x7b, 0xe7, 0x2b, 0x7a, 0xcb, 0xbc, 0x82, 0xe1,
+ 0x20, 0xaf, 0x04, 0x9c, 0x78, 0x0d, 0x4c, 0x05, 0x3c, 0xfc, 0x4b, 0x56, 0x01, 0x8e, 0x23, 0x73,
+ 0x6c, 0xcb, 0x89, 0x9f, 0x5a, 0x6a, 0xb5, 0xc4, 0xfb, 0x1d, 0x69, 0xc7, 0xe9, 0x63, 0xb8, 0x62,
+ 0x07, 0x02, 0xd3, 0x5b, 0x2d, 0x39, 0xd9, 0x6e, 0x48, 0xc7, 0xb4, 0x60, 0x51, 0xb4, 0xc8, 0x17,
+ 0xd3, 0x70, 0x28, 0x71, 0xbf, 0xb1, 0x29, 0x42, 0x8a, 0x17, 0x23, 0x4b, 0x70, 0x4c, 0xf0, 0x0d,
+ 0x02, 0x26, 0x8f, 0x44, 0x67, 0x85, 0x18, 0x9a, 0x2b, 0x6d, 0xd0, 0x46, 0x43, 0x80, 0xe5, 0x3a,
+ 0x62, 0x25, 0xc8, 0x78, 0x98, 0xc5, 0x6d, 0x4e, 0x6f, 0x52, 0x57, 0x39, 0x86, 0x1a, 0x7b, 0x76,
+ 0x73, 0xa3, 0xa8, 0xf8, 0xe5, 0x31, 0x5c, 0x4f, 0x6a, 0x4e, 0x52, 0x2c, 0x22, 0xf3, 0xe0, 0x5a,
+ 0x3f, 0x9a, 0xc2, 0x23, 0xae, 0xf3, 0xd1, 0x22, 0x64, 0x02, 0x86, 0x03, 0xf7, 0xe1, 0x9b, 0x37,
+ 0x2b, 0x65, 0x7c, 0x20, 0x24, 0x22, 0x36, 0xc5, 0x42, 0x1a, 0xcb, 0x4c, 0x22, 0x65, 0xa4, 0x97,
+ 0x84, 0xfc, 0xc5, 0x50, 0xec, 0x25, 0x61, 0x2b, 0xe5, 0x25, 0xe1, 0x02, 0x79, 0x09, 0x06, 0x4b,
+ 0xb7, 0xab, 0xe2, 0x85, 0xa4, 0xab, 0x1c, 0x0f, 0x83, 0xe0, 0x63, 0x5a, 0x5a, 0xf1, 0x9a, 0x52,
+ 0x6e, 0xba, 0x4c, 0x4f, 0x26, 0x61, 0x24, 0xe2, 0x81, 0xe0, 0x2a, 0x27, 0x90, 0x03, 0xb6, 0x5c,
+ 0x47, 0x4c, 0xcd, 0x11, 0xa8, 0x48, 0xa2, 0xe4, 0x48, 0x21, 0xa6, 0x35, 0x6c, 0x13, 0xdf, 0x68,
+ 0xd8, 0x6b, 0x1a, 0xc5, 0xc7, 0x98, 0xf8, 0xdc, 0xa8, 0x9f, 0x6b, 0x8d, 0x21, 0x50, 0x35, 0x87,
+ 0xe3, 0x22, 0x99, 0x91, 0xa3, 0xc5, 0xc8, 0x1b, 0x40, 0x30, 0x04, 0x39, 0x35, 0xfc, 0x03, 0xe9,
+ 0x4a, 0xd9, 0x55, 0x4e, 0x61, 0xb8, 0x42, 0x12, 0x7f, 0x0d, 0x5c, 0x29, 0x8f, 0x5f, 0x10, 0xd3,
+ 0xc7, 0x79, 0x9d, 0x97, 0xaa, 0x39, 0x02, 0x57, 0x33, 0x23, 0xf9, 0xd9, 0x52, 0xb8, 0x92, 0x35,
+ 0x38, 0xbd, 0xe0, 0xd0, 0xbb, 0xa6, 0xdd, 0x76, 0xfd, 0xe5, 0xc3, 0x9f, 0xb7, 0x4e, 0x6f, 0x39,
+ 0x6f, 0x3d, 0x2c, 0x2a, 0x3e, 0xd9, 0x72, 0xe8, 0xdd, 0x9a, 0x1f, 0xa4, 0x2e, 0x12, 0x63, 0xa9,
+ 0x13, 0x77, 0xcc, 0x32, 0xf7, 0x66, 0xdb, 0xa1, 0x02, 0x6e, 0x52, 0x57, 0x51, 0xc2, 0xa9, 0x96,
+ 0xbf, 0xab, 0x35, 0x03, 0x5c, 0x24, 0xcb, 0x5c, 0xb4, 0x18, 0xd1, 0x80, 0x5c, 0x9f, 0xf0, 0x2f,
+ 0x27, 0x4a, 0x75, 0x9e, 0x8b, 0x4b, 0x79, 0x00, 0x99, 0xa9, 0x4c, 0x2c, 0x2b, 0xf5, 0x20, 0x60,
+ 0x65, 0x4d, 0x17, 0x78, 0x59, 0x2c, 0xc9, 0xd2, 0x64, 0x06, 0x46, 0x17, 0x1c, 0xdc, 0x2a, 0xdd,
+ 0xa0, 0xeb, 0x0b, 0x76, 0xc3, 0xac, 0xaf, 0xe3, 0xab, 0x27, 0x31, 0x55, 0xb6, 0x38, 0xae, 0x76,
+ 0x87, 0xae, 0xd7, 0x5a, 0x88, 0x95, 0x97, 0x95, 0x78, 0x49, 0x39, 0x80, 0xdc, 0x83, 0xdb, 0x0b,
+ 0x20, 0x47, 0x61, 0x54, 0x5c, 0x6d, 0xdc, 0xf3, 0xa8, 0xc5, 0x96, 0x7a, 0x57, 0xbc, 0x70, 0x52,
+ 0x62, 0x57, 0x21, 0x01, 0x5e, 0x64, 0x49, 0xe6, 0xa3, 0x8c, 0x06, 0x60, 0xb9, 0x61, 0xf1, 0x22,
+ 0xc9, 0x28, 0x6b, 0xe7, 0x76, 0x11, 0x65, 0xed, 0x1f, 0xe6, 0xe4, 0xf9, 0x97, 0x9c, 0x85, 0xbc,
+ 0x14, 0x04, 0x1d, 0x43, 0x48, 0x61, 0xc0, 0xc8, 0xbc, 0x88, 0x8c, 0x37, 0x20, 0x6c, 0x97, 0xe0,
+ 0xad, 0x30, 0xa6, 0xb6, 0x09, 0xc3, 0x0a, 0x69, 0x21, 0x01, 0xa6, 0x15, 0x69, 0x2f, 0x35, 0xcc,
+ 0x3a, 0x86, 0x11, 0xcd, 0x49, 0x69, 0x45, 0x10, 0xca, 0xa3, 0x88, 0x4a, 0x24, 0xe4, 0x2a, 0x0c,
+ 0xfa, 0x5b, 0xf4, 0x30, 0x84, 0x1a, 0x46, 0x97, 0xf4, 0x93, 0x52, 0xf3, 0xe0, 0x95, 0x12, 0x11,
+ 0x79, 0x1e, 0xd3, 0xb2, 0xfb, 0xef, 0xb0, 0x7b, 0x43, 0x1b, 0x48, 0x9e, 0x3d, 0x62, 0x79, 0xd9,
+ 0xfd, 0xe7, 0xd8, 0xe3, 0x30, 0x2c, 0xab, 0xa3, 0x9f, 0x48, 0x09, 0x27, 0xce, 0x88, 0x0e, 0xcb,
+ 0x0a, 0x12, 0x2d, 0x42, 0xe6, 0x61, 0x2c, 0xa1, 0x81, 0x22, 0xe0, 0x1a, 0x26, 0xd3, 0x4c, 0x51,
+ 0x5f, 0x79, 0x61, 0x4e, 0x94, 0x25, 0x8f, 0x40, 0xee, 0xa6, 0x56, 0x11, 0x41, 0x9f, 0x78, 0xbc,
+ 0xb0, 0xc8, 0x8b, 0x70, 0x86, 0x55, 0xbf, 0x2d, 0x9b, 0x58, 0x9b, 0x98, 0xf4, 0x04, 0x2b, 0xa9,
+ 0x07, 0x51, 0x7a, 0x7e, 0xfd, 0x5c, 0x7a, 0x12, 0x11, 0xb9, 0x08, 0xfd, 0xb1, 0xf4, 0xed, 0xf8,
+ 0x7c, 0x3f, 0xc8, 0xdd, 0x1e, 0x60, 0xc9, 0x55, 0x29, 0xff, 0x97, 0x14, 0x47, 0xd1, 0xcf, 0xff,
+ 0x15, 0x0f, 0x28, 0x88, 0x99, 0xc0, 0xae, 0xc6, 0x52, 0x0d, 0xf8, 0x59, 0xb6, 0x93, 0xeb, 0x62,
+ 0x98, 0x5a, 0x20, 0xb0, 0x4a, 0x7b, 0xb7, 0xb2, 0x4a, 0xd5, 0x5f, 0xcf, 0x24, 0xc7, 0x19, 0xb9,
+ 0x96, 0x0c, 0x69, 0xc6, 0x13, 0x6c, 0xfb, 0x40, 0xb9, 0xd6, 0x20, 0xb8, 0x59, 0x24, 0x38, 0x59,
+ 0x76, 0xd7, 0xc1, 0xc9, 0x72, 0x3b, 0x0c, 0x4e, 0xa6, 0xfe, 0xef, 0x7c, 0x57, 0x57, 0xbc, 0x03,
+ 0x09, 0x62, 0xf1, 0x1c, 0xdb, 0x59, 0xb1, 0xda, 0x4b, 0x6e, 0x62, 0x7f, 0xc0, 0x3d, 0x8d, 0x6a,
+ 0x3a, 0x1f, 0x5a, 0xae, 0x16, 0xa5, 0x24, 0x2f, 0xc3, 0x90, 0xff, 0x01, 0x18, 0xf4, 0x4e, 0x0a,
+ 0xd6, 0x16, 0xac, 0x6a, 0xf1, 0x1c, 0xe9, 0x72, 0x01, 0xf2, 0x34, 0x0c, 0xa0, 0x4d, 0xd3, 0xd2,
+ 0xeb, 0x7e, 0x44, 0x44, 0x1e, 0x42, 0xd1, 0x07, 0xca, 0x81, 0x1a, 0x02, 0x4a, 0xf2, 0x11, 0x28,
+ 0x44, 0x92, 0xf4, 0x5f, 0xd9, 0x86, 0xef, 0xe2, 0x65, 0x39, 0x24, 0x30, 0xdf, 0xa5, 0xc4, 0x13,
+ 0xf4, 0x0b, 0xa6, 0x64, 0x11, 0x8e, 0x2f, 0x38, 0xd4, 0x40, 0x2f, 0xd9, 0xc9, 0x7b, 0x2d, 0x47,
+ 0x04, 0x6c, 0xe6, 0xa3, 0x1c, 0x17, 0xa9, 0x96, 0x8f, 0x66, 0xcb, 0xa7, 0xc0, 0xcb, 0x61, 0xd9,
+ 0x52, 0x8a, 0x33, 0xcb, 0x85, 0xb7, 0xe4, 0x06, 0x5d, 0x5f, 0xc3, 0x44, 0xad, 0xfd, 0xa1, 0xe5,
+ 0x22, 0x04, 0x7d, 0x47, 0xa0, 0x64, 0xcb, 0x25, 0x5a, 0xe8, 0xcc, 0x73, 0x30, 0xb8, 0xdb, 0xb0,
+ 0xba, 0xbf, 0x90, 0xed, 0xe0, 0xd4, 0x7e, 0xff, 0x66, 0x36, 0x09, 0x72, 0xea, 0xf5, 0x76, 0xc8,
+ 0xa9, 0xf7, 0xf5, 0x6c, 0x07, 0x8f, 0xfd, 0xfb, 0x3a, 0xf7, 0x55, 0x20, 0x8c, 0x68, 0xee, 0xab,
+ 0x30, 0xed, 0x98, 0x69, 0x68, 0x32, 0x51, 0x2c, 0x4b, 0x5e, 0x61, 0xcb, 0x2c, 0x79, 0x3f, 0x95,
+ 0xeb, 0xf6, 0xa2, 0xe1, 0x48, 0xf6, 0x3b, 0x91, 0xfd, 0x55, 0x18, 0x0c, 0x24, 0x5b, 0x29, 0xa3,
+ 0xd1, 0x33, 0x1c, 0x04, 0xf1, 0xe6, 0x60, 0x2c, 0x23, 0x11, 0x91, 0x4b, 0xbc, 0xad, 0x55, 0xf3,
+ 0x4d, 0x1e, 0x4e, 0x76, 0x58, 0x04, 0x0a, 0xd5, 0x3d, 0xbd, 0xe6, 0x9a, 0x6f, 0x52, 0x2d, 0x40,
+ 0xab, 0xff, 0x24, 0x9b, 0xfa, 0x2c, 0xe4, 0xa8, 0x8f, 0x76, 0xd0, 0x47, 0x29, 0x42, 0xe4, 0x0f,
+ 0x5a, 0x8e, 0x84, 0xb8, 0x03, 0x21, 0xfe, 0x49, 0x36, 0xf5, 0xf9, 0xcf, 0x91, 0x10, 0x77, 0x32,
+ 0x5b, 0x3c, 0x0e, 0x03, 0x9a, 0xbd, 0xe6, 0x62, 0x4a, 0x6c, 0x31, 0x57, 0xe0, 0x44, 0xed, 0xd8,
+ 0x6b, 0x2e, 0x4f, 0x17, 0xae, 0x85, 0x04, 0xea, 0x37, 0xb2, 0x5d, 0x1e, 0x48, 0x1d, 0x09, 0xfe,
+ 0xed, 0x5c, 0x22, 0x7f, 0x39, 0x1b, 0x79, 0x80, 0x75, 0x5f, 0x27, 0x91, 0xad, 0xd6, 0x57, 0x69,
+ 0x53, 0x8f, 0x27, 0x91, 0x75, 0x11, 0x2a, 0x52, 0xb9, 0x85, 0x24, 0xea, 0x17, 0xb3, 0xb1, 0x17,
+ 0x68, 0x47, 0xb2, 0xdb, 0xb6, 0xec, 0x02, 0xad, 0x13, 0x8f, 0xea, 0x8e, 0x24, 0xb7, 0x5d, 0xc9,
+ 0x7d, 0x22, 0x1b, 0x7b, 0x7f, 0x78, 0xdf, 0xca, 0x8e, 0x0d, 0xc0, 0xe4, 0xbb, 0xc8, 0xfb, 0x56,
+ 0x93, 0x1e, 0x87, 0x01, 0x21, 0x87, 0x60, 0xa9, 0xe0, 0xf3, 0x3e, 0x07, 0xe2, 0x29, 0x6b, 0x40,
+ 0xa0, 0x7e, 0x47, 0x16, 0xa2, 0xef, 0x42, 0xef, 0x53, 0x1d, 0xfa, 0xe5, 0x6c, 0xf4, 0x45, 0xec,
+ 0xfd, 0xab, 0x3f, 0x97, 0x01, 0xaa, 0xed, 0xa5, 0xba, 0x08, 0xa8, 0xd8, 0x2b, 0x1d, 0xd3, 0x07,
+ 0x50, 0x4d, 0xa2, 0x50, 0xff, 0x4f, 0x36, 0xf5, 0x99, 0xee, 0xfd, 0x2b, 0xc0, 0xa7, 0xf0, 0x54,
+ 0xbc, 0x6e, 0x85, 0x13, 0x39, 0x1e, 0x42, 0xb2, 0xf1, 0x97, 0xc8, 0xe3, 0xe2, 0x13, 0x92, 0xf7,
+ 0xa5, 0x98, 0x6b, 0x18, 0x65, 0x36, 0x34, 0xd7, 0xe4, 0x6b, 0x08, 0xc9, 0x70, 0xfb, 0x97, 0xd9,
+ 0xad, 0x5e, 0x35, 0xdf, 0xcf, 0xab, 0x6a, 0xdf, 0x82, 0xbe, 0x8e, 0xd1, 0xb7, 0x58, 0x4f, 0x0c,
+ 0xf1, 0x2c, 0x23, 0x2d, 0x0e, 0x92, 0xef, 0xde, 0x04, 0x95, 0xfa, 0xc7, 0xbd, 0xe9, 0x4f, 0x6a,
+ 0xef, 0x5f, 0x11, 0x9e, 0x85, 0xfc, 0x82, 0xee, 0xad, 0x0a, 0x4d, 0xc6, 0x2b, 0xbd, 0x96, 0xee,
+ 0xad, 0x6a, 0x08, 0x25, 0x97, 0xa0, 0x5f, 0xd3, 0xd7, 0xf8, 0x99, 0x67, 0x21, 0xcc, 0x00, 0xe3,
+ 0xe8, 0x6b, 0x35, 0x7e, 0xee, 0x19, 0xa0, 0x89, 0x1a, 0x64, 0x20, 0xe2, 0x27, 0xdf, 0x98, 0xfe,
+ 0x82, 0x67, 0x20, 0x0a, 0xf2, 0x0e, 0x9d, 0x85, 0xfc, 0xb8, 0x6d, 0xac, 0xe3, 0xf5, 0xd5, 0x10,
+ 0xaf, 0x6c, 0xc9, 0x36, 0xd6, 0x35, 0x84, 0x92, 0x4f, 0x66, 0xa0, 0x6f, 0x9a, 0xea, 0x06, 0x1b,
+ 0x21, 0x03, 0xdd, 0xbc, 0x4e, 0x3e, 0xb0, 0x3f, 0x5e, 0x27, 0x63, 0xab, 0xbc, 0x32, 0x59, 0x51,
+ 0x44, 0xfd, 0xe4, 0x3a, 0xf4, 0x4f, 0xe8, 0x1e, 0x5d, 0xb1, 0x9d, 0x75, 0xf4, 0xa3, 0x19, 0x09,
+ 0xdd, 0x32, 0x23, 0xfa, 0xe3, 0x13, 0xf1, 0x9b, 0xb1, 0xba, 0xf8, 0xa5, 0x05, 0x85, 0x99, 0x58,
+ 0x44, 0x4e, 0xd4, 0xc1, 0x50, 0x2c, 0x3c, 0xf9, 0x69, 0x90, 0xfa, 0x34, 0x38, 0x56, 0x1e, 0x4a,
+ 0x3f, 0x56, 0x46, 0xeb, 0x11, 0x7d, 0xed, 0x30, 0xef, 0xcf, 0x30, 0x2e, 0xfa, 0xdc, 0x7a, 0x44,
+ 0x28, 0xa6, 0xfd, 0xd1, 0x24, 0x12, 0xf5, 0xab, 0xbd, 0x90, 0xfa, 0x00, 0xef, 0x48, 0xc9, 0x8f,
+ 0x94, 0x3c, 0x54, 0xf2, 0x72, 0x42, 0xc9, 0xcf, 0x24, 0x9f, 0x74, 0xbe, 0x43, 0x35, 0xfc, 0xf3,
+ 0xf9, 0xc4, 0x83, 0xf0, 0xfb, 0x7b, 0x77, 0x19, 0x4a, 0xaf, 0x77, 0x4b, 0xe9, 0x05, 0x03, 0xa2,
+ 0xb0, 0xe5, 0x80, 0xe8, 0xdb, 0xee, 0x80, 0xe8, 0xef, 0x38, 0x20, 0x42, 0x05, 0x19, 0xe8, 0xa8,
+ 0x20, 0x15, 0x31, 0x68, 0xa0, 0x7b, 0x4e, 0xb9, 0xb3, 0x9b, 0x1b, 0xc5, 0x11, 0x36, 0x9a, 0x52,
+ 0xb3, 0xc9, 0x21, 0x0b, 0xf5, 0x2b, 0xf9, 0x2e, 0x51, 0x1c, 0x0e, 0x44, 0x47, 0x9e, 0x82, 0x5c,
+ 0xa9, 0xd5, 0x12, 0xfa, 0x71, 0x5c, 0x0a, 0x20, 0xd1, 0xa1, 0x14, 0xa3, 0x26, 0xcf, 0x43, 0xae,
+ 0x74, 0xbb, 0x1a, 0x8f, 0x45, 0x5f, 0xba, 0x5d, 0x15, 0x5f, 0xd2, 0xb1, 0xec, 0xed, 0x2a, 0x79,
+ 0x31, 0x0c, 0x0a, 0xb7, 0xda, 0xb6, 0xee, 0x88, 0x8d, 0xa2, 0x70, 0xb7, 0xf5, 0xdd, 0x71, 0xea,
+ 0x0c, 0xc5, 0xb6, 0x8b, 0x31, 0xda, 0x98, 0x36, 0x15, 0xb6, 0xaf, 0x4d, 0x7d, 0x5b, 0x6a, 0x53,
+ 0xff, 0x76, 0xb5, 0x69, 0x60, 0x1b, 0xda, 0x04, 0x5b, 0x6a, 0xd3, 0xe0, 0xde, 0xb5, 0xa9, 0x05,
+ 0x67, 0x92, 0x91, 0x77, 0x02, 0x8d, 0xd0, 0x80, 0x24, 0xb1, 0xc2, 0xb1, 0x04, 0xaf, 0xfe, 0xdb,
+ 0x1c, 0x5b, 0xe3, 0xb9, 0x8b, 0xe3, 0x99, 0x7f, 0xb5, 0x94, 0xd2, 0xea, 0x2f, 0x64, 0x3b, 0x07,
+ 0x0c, 0x3a, 0x9c, 0x53, 0xdc, 0xb7, 0xa4, 0x4a, 0x29, 0x1f, 0x7d, 0xc0, 0xd9, 0x59, 0xca, 0x31,
+ 0xb6, 0x69, 0x32, 0xfb, 0x72, 0xa6, 0x53, 0x14, 0xa3, 0x3d, 0x49, 0xec, 0xd1, 0xa4, 0x47, 0x1b,
+ 0xfa, 0xe9, 0xbb, 0x51, 0x57, 0xb6, 0x78, 0x2a, 0xdc, 0xdc, 0x2e, 0x53, 0xe1, 0xfe, 0x7a, 0x06,
+ 0x8e, 0xdf, 0x68, 0x2f, 0x51, 0xe1, 0xc1, 0x16, 0x34, 0xe3, 0x0d, 0x00, 0x06, 0x16, 0x4e, 0x2c,
+ 0x19, 0x74, 0x62, 0x79, 0x8f, 0x1c, 0x81, 0x28, 0x56, 0xe0, 0x72, 0x48, 0xcd, 0x1d, 0x58, 0xce,
+ 0xf9, 0xce, 0x9c, 0x77, 0xda, 0x4b, 0xb4, 0x96, 0xf0, 0x64, 0x91, 0xb8, 0x9f, 0x79, 0x89, 0xbb,
+ 0xc9, 0xef, 0xd6, 0x69, 0xe4, 0xe7, 0xb2, 0x1d, 0x83, 0x3e, 0x1d, 0xda, 0x9c, 0x3b, 0x1f, 0x4a,
+ 0xed, 0x95, 0x78, 0xee, 0x9d, 0x14, 0x92, 0x18, 0xc7, 0x34, 0x2e, 0xe9, 0x02, 0x3b, 0xe4, 0x99,
+ 0xa0, 0xde, 0x56, 0x81, 0xfd, 0x4e, 0xa6, 0x63, 0x70, 0xae, 0xc3, 0x2a, 0x30, 0xf5, 0x3f, 0xe5,
+ 0xfc, 0x98, 0x60, 0x7b, 0xfa, 0x84, 0xc7, 0x61, 0x40, 0x3c, 0x8d, 0x8c, 0x3a, 0xe0, 0x8a, 0xa3,
+ 0x3c, 0x3c, 0x1a, 0x0e, 0x08, 0xd8, 0x32, 0x2f, 0x79, 0x07, 0x4b, 0x0e, 0xb8, 0x92, 0x67, 0xb0,
+ 0x26, 0x91, 0xb0, 0x85, 0x7c, 0xf2, 0x9e, 0xe9, 0xa1, 0x55, 0xc0, 0xfa, 0x32, 0xc7, 0x17, 0x72,
+ 0x7a, 0xcf, 0xf4, 0xb8, 0x4d, 0x10, 0xa0, 0xd9, 0x22, 0x5d, 0x0d, 0xf3, 0x5c, 0x8a, 0x45, 0xda,
+ 0x15, 0xe9, 0x3e, 0xc5, 0xb3, 0xb1, 0xc7, 0x61, 0x40, 0x78, 0xb5, 0x0a, 0x37, 0x13, 0xd1, 0x5a,
+ 0xe1, 0x07, 0x8b, 0xad, 0x0d, 0x08, 0x18, 0x47, 0x8d, 0xae, 0x84, 0x8e, 0x75, 0xc8, 0xd1, 0x41,
+ 0x88, 0x26, 0x30, 0xe4, 0x2a, 0x8c, 0x54, 0x3d, 0xdd, 0x32, 0x74, 0xc7, 0x98, 0x6f, 0x7b, 0xad,
+ 0xb6, 0x27, 0x1b, 0xa5, 0xae, 0x67, 0xd8, 0x6d, 0x4f, 0x8b, 0x51, 0x90, 0xf7, 0xc2, 0xb0, 0x0f,
+ 0x99, 0x74, 0x1c, 0xdb, 0x91, 0x2d, 0x0f, 0xd7, 0x33, 0xa8, 0xe3, 0x68, 0x51, 0x02, 0xf2, 0x3e,
+ 0x18, 0xae, 0x58, 0x77, 0x6d, 0x9e, 0x40, 0xf5, 0xa6, 0x36, 0x23, 0xec, 0x10, 0x7c, 0x8a, 0x65,
+ 0x06, 0x88, 0x5a, 0xdb, 0x69, 0x68, 0x51, 0x42, 0x75, 0x33, 0x9b, 0x0c, 0x9d, 0x76, 0xff, 0x6e,
+ 0x5a, 0x2e, 0x45, 0x9d, 0xe9, 0xd0, 0x83, 0x14, 0x0d, 0x42, 0xd9, 0x97, 0x97, 0xdb, 0x85, 0x57,
+ 0xa1, 0xff, 0x06, 0x5d, 0xe7, 0x7e, 0x9f, 0x85, 0xd0, 0x55, 0xf8, 0x8e, 0x80, 0xc9, 0x27, 0xae,
+ 0x3e, 0x9d, 0xfa, 0xa5, 0x6c, 0x32, 0x28, 0xdc, 0xfd, 0x2b, 0xec, 0xf7, 0x42, 0x1f, 0x8a, 0xb2,
+ 0xe2, 0x1f, 0xf9, 0xa3, 0x00, 0x51, 0xdc, 0x51, 0x0f, 0x64, 0x9f, 0x4c, 0xfd, 0xb1, 0x42, 0x3c,
+ 0x52, 0xe0, 0xfd, 0x2b, 0xbd, 0x17, 0x60, 0x70, 0xc2, 0xb6, 0x5c, 0xd3, 0xf5, 0xa8, 0x55, 0xf7,
+ 0x15, 0xf6, 0x01, 0x66, 0x50, 0xd5, 0x43, 0xb0, 0xfc, 0x06, 0x49, 0xa2, 0xde, 0x8d, 0xf2, 0x92,
+ 0x67, 0x60, 0x00, 0x45, 0x8e, 0x7e, 0xd2, 0x52, 0x82, 0xf6, 0x25, 0x06, 0x8c, 0x3b, 0x49, 0x87,
+ 0xa4, 0xe4, 0x26, 0xf4, 0x4f, 0xac, 0x9a, 0x0d, 0xc3, 0xa1, 0x16, 0xfa, 0x0b, 0x4b, 0x0f, 0xb2,
+ 0xa3, 0x7d, 0x79, 0x19, 0xff, 0x45, 0x5a, 0xde, 0x9c, 0xba, 0x28, 0x16, 0x79, 0x85, 0x25, 0x60,
+ 0x67, 0xbe, 0x2f, 0x0b, 0x10, 0x16, 0x20, 0x0f, 0x41, 0x36, 0x48, 0x21, 0x87, 0x6e, 0x2a, 0x11,
+ 0x0d, 0xca, 0xe2, 0x52, 0x21, 0xc6, 0x76, 0x76, 0xcb, 0xb1, 0x7d, 0x13, 0x0a, 0xfc, 0xc4, 0x0b,
+ 0x3d, 0xc9, 0xa5, 0xe0, 0x65, 0x1d, 0x1b, 0x7c, 0x19, 0xe9, 0xf9, 0x66, 0x16, 0x2d, 0xcf, 0x88,
+ 0x57, 0x36, 0x67, 0x76, 0xa6, 0x0e, 0xbd, 0xf8, 0x17, 0xb9, 0x00, 0x79, 0x94, 0x62, 0x06, 0xf7,
+ 0xb1, 0x38, 0x4b, 0xc7, 0xe4, 0x87, 0x78, 0xd6, 0x4d, 0x13, 0xb6, 0xe5, 0xb1, 0xaa, 0xb1, 0xd5,
+ 0x43, 0x42, 0x2e, 0x02, 0x16, 0x91, 0x8b, 0x80, 0xa9, 0xff, 0x22, 0x9b, 0x12, 0xc3, 0xf2, 0xfe,
+ 0x1d, 0x26, 0xcf, 0x01, 0xe0, 0x93, 0x6e, 0x26, 0x4f, 0xff, 0x89, 0x06, 0x8e, 0x12, 0x64, 0x84,
+ 0x6a, 0x1b, 0xd9, 0x76, 0x84, 0xc4, 0xea, 0x6f, 0x66, 0x12, 0x81, 0x0f, 0xf7, 0x24, 0x47, 0xd9,
+ 0x2a, 0xcb, 0xee, 0xd2, 0x8c, 0xf5, 0xfb, 0x22, 0xb7, 0xb3, 0xbe, 0x88, 0x7e, 0xcb, 0x3e, 0x58,
+ 0xa6, 0x07, 0xf9, 0x2d, 0x5f, 0xcd, 0xa6, 0x85, 0x81, 0x3c, 0x9c, 0x2a, 0x7e, 0x2d, 0x30, 0x4a,
+ 0xf3, 0xdb, 0x49, 0xbe, 0x2e, 0xcc, 0xd4, 0x8f, 0xc2, 0xb1, 0x58, 0x70, 0x44, 0x91, 0xd7, 0xf1,
+ 0x42, 0xf7, 0x28, 0x8b, 0x9d, 0x83, 0x01, 0x44, 0xc8, 0xd4, 0xff, 0x9b, 0xe9, 0x1e, 0x1a, 0xf3,
+ 0xc0, 0x55, 0x27, 0x45, 0x00, 0xb9, 0xbf, 0x18, 0x01, 0xec, 0xc3, 0x36, 0xf8, 0x70, 0x0b, 0xe0,
+ 0x1d, 0x32, 0x79, 0xbc, 0xdd, 0x02, 0xf8, 0xb1, 0xcc, 0x96, 0x91, 0x4d, 0x0f, 0x5a, 0x06, 0xea,
+ 0xbf, 0xcf, 0xa4, 0x46, 0x20, 0xdd, 0x53, 0xbb, 0x5e, 0x84, 0x02, 0x77, 0xab, 0x11, 0xad, 0x92,
+ 0x72, 0xb6, 0x30, 0x68, 0x87, 0xf2, 0xa2, 0x0c, 0x99, 0x81, 0x3e, 0xde, 0x06, 0x23, 0x9e, 0xdb,
+ 0x38, 0xa5, 0x9d, 0x46, 0xa7, 0xc9, 0x51, 0xa0, 0xd5, 0xdf, 0xc8, 0x24, 0x02, 0xa2, 0x1e, 0xe0,
+ 0xb7, 0x85, 0x53, 0x75, 0x6e, 0xfb, 0x53, 0xb5, 0xfa, 0x47, 0xd9, 0xf4, 0x78, 0xac, 0x07, 0xf8,
+ 0x21, 0xfb, 0x71, 0x9c, 0xb6, 0xbb, 0x75, 0x6b, 0x11, 0x46, 0xa2, 0xb2, 0x10, 0xcb, 0xd6, 0xf9,
+ 0xf4, 0xa8, 0xb4, 0x1d, 0x5a, 0x11, 0xe3, 0xa1, 0xbe, 0x95, 0x49, 0x86, 0x92, 0x3d, 0xf0, 0xf9,
+ 0x69, 0x77, 0xda, 0x12, 0xfd, 0x94, 0x77, 0xc8, 0x5a, 0xb3, 0x1f, 0x9f, 0xf2, 0x0e, 0x59, 0x35,
+ 0x76, 0xf7, 0x29, 0x3f, 0x93, 0xed, 0x14, 0x89, 0xf7, 0xc0, 0x3f, 0xe8, 0x83, 0xb2, 0x90, 0x79,
+ 0xcb, 0xc4, 0xa7, 0x3d, 0xd4, 0x29, 0xf4, 0x6d, 0x07, 0x9e, 0x09, 0x3e, 0xbb, 0x1b, 0xe3, 0xa9,
+ 0xc2, 0x7a, 0x87, 0x28, 0xf2, 0xe1, 0x10, 0xd6, 0x3b, 0x64, 0xa8, 0xbc, 0xf3, 0x84, 0xf5, 0xab,
+ 0xd9, 0xed, 0x86, 0x7f, 0x3e, 0x12, 0x5e, 0x42, 0x78, 0x9f, 0xcd, 0x26, 0xc3, 0x92, 0x1f, 0xb8,
+ 0x98, 0xa6, 0xa0, 0x20, 0x02, 0xa4, 0x77, 0x14, 0x0e, 0xc7, 0x77, 0xb2, 0x68, 0xc4, 0x77, 0x5c,
+ 0x03, 0x71, 0x91, 0xb3, 0x3d, 0x91, 0x70, 0x5a, 0xf5, 0x1b, 0x99, 0x58, 0x0c, 0xef, 0x03, 0x39,
+ 0x42, 0xd8, 0xd5, 0x92, 0x44, 0x5e, 0xf2, 0x0f, 0x33, 0xf3, 0xb1, 0x18, 0xaa, 0xc1, 0xf7, 0x94,
+ 0xa9, 0xa7, 0x9b, 0x8d, 0x78, 0x79, 0x11, 0x13, 0xe0, 0x4b, 0x59, 0x18, 0x4b, 0x90, 0x92, 0x0b,
+ 0x91, 0x50, 0x3a, 0x78, 0x2c, 0x19, 0x73, 0x1e, 0xe7, 0x41, 0x75, 0x76, 0x70, 0x92, 0x7a, 0x01,
+ 0xf2, 0x65, 0x7d, 0x9d, 0x7f, 0x5b, 0x2f, 0x67, 0x69, 0xe8, 0xeb, 0xf2, 0x89, 0x1b, 0xe2, 0xc9,
+ 0x12, 0x9c, 0xe4, 0xf7, 0x21, 0xa6, 0x6d, 0x2d, 0x9a, 0x4d, 0x5a, 0xb1, 0x66, 0xcd, 0x46, 0xc3,
+ 0x74, 0xc5, 0xa5, 0xde, 0xe3, 0x9b, 0x1b, 0xc5, 0x8b, 0x9e, 0xed, 0xe9, 0x8d, 0x1a, 0xf5, 0xc9,
+ 0x6a, 0x9e, 0xd9, 0xa4, 0x35, 0xd3, 0xaa, 0x35, 0x91, 0x52, 0x62, 0x99, 0xce, 0x8a, 0x54, 0x78,
+ 0xb8, 0xdc, 0x6a, 0x5d, 0xb7, 0x2c, 0x6a, 0x54, 0xac, 0xf1, 0x75, 0x8f, 0xf2, 0xcb, 0xc0, 0x1c,
+ 0x3f, 0x12, 0xe4, 0x6f, 0xc3, 0x39, 0x9a, 0x31, 0x5e, 0x62, 0x04, 0x5a, 0x4a, 0x21, 0xf5, 0xd7,
+ 0xf2, 0x29, 0xe1, 0xdb, 0x0f, 0x91, 0xfa, 0xf8, 0x3d, 0x9d, 0xdf, 0xa2, 0xa7, 0xaf, 0x40, 0xdf,
+ 0x2d, 0xea, 0xe0, 0xf9, 0x16, 0xbf, 0x60, 0x40, 0x67, 0xf6, 0xbb, 0x1c, 0x24, 0xdf, 0xd0, 0x08,
+ 0x2a, 0xd2, 0x80, 0x33, 0x8b, 0xac, 0x9b, 0xd2, 0x3b, 0xb3, 0xb0, 0x8b, 0xce, 0xec, 0xc2, 0x8f,
+ 0xbc, 0x0e, 0xa7, 0x11, 0x9b, 0xd2, 0xad, 0x7d, 0x58, 0x15, 0xc6, 0xa8, 0xe2, 0x55, 0xa5, 0x77,
+ 0x6e, 0xa7, 0xf2, 0xe4, 0x83, 0x30, 0x14, 0x0c, 0x10, 0x93, 0xba, 0xe2, 0xe6, 0xa2, 0xcb, 0x38,
+ 0xe3, 0x01, 0xe0, 0x18, 0x18, 0x5d, 0xc8, 0xa2, 0x41, 0xc4, 0x22, 0xbc, 0xd4, 0x7f, 0x97, 0xe9,
+ 0x16, 0x46, 0xfe, 0xc0, 0x67, 0xe5, 0x97, 0xa0, 0xcf, 0xe0, 0x1f, 0x25, 0x74, 0xaa, 0x7b, 0xa0,
+ 0x79, 0x4e, 0xaa, 0xf9, 0x65, 0xd4, 0x3f, 0xcc, 0x74, 0x8d, 0x5e, 0x7f, 0xd8, 0x3f, 0xef, 0xb3,
+ 0xb9, 0x0e, 0x9f, 0x27, 0x26, 0xd1, 0x4b, 0x30, 0x6a, 0x86, 0xe1, 0x75, 0x6b, 0x61, 0xf8, 0x29,
+ 0xed, 0x98, 0x04, 0xc7, 0xd1, 0x75, 0x0d, 0x4e, 0xf9, 0x8e, 0x8f, 0x8e, 0xef, 0x21, 0xe6, 0xd6,
+ 0xda, 0x8e, 0xc9, 0xc7, 0xa5, 0x76, 0xc2, 0x8d, 0xb9, 0x8f, 0xb9, 0x37, 0x1d, 0x93, 0x55, 0xa0,
+ 0x7b, 0xab, 0xd4, 0xd2, 0x6b, 0x6b, 0xb6, 0x73, 0x07, 0xa3, 0x8c, 0xf2, 0xc1, 0xa9, 0x1d, 0xe3,
+ 0xf0, 0xdb, 0x3e, 0x98, 0x3c, 0x02, 0xc3, 0x2b, 0x8d, 0x36, 0x0d, 0xe2, 0x3a, 0xf2, 0xbb, 0x3e,
+ 0x6d, 0x88, 0x01, 0x83, 0x1b, 0x92, 0x73, 0x00, 0x48, 0xe4, 0x61, 0x6e, 0x01, 0xbc, 0xd8, 0xd3,
+ 0x06, 0x18, 0x64, 0x51, 0x74, 0xd7, 0x19, 0xae, 0xd5, 0x5c, 0x48, 0xb5, 0x86, 0x6d, 0xad, 0xd4,
+ 0x3c, 0xea, 0x34, 0xb1, 0xa1, 0xe8, 0xcc, 0xa0, 0x9d, 0x42, 0x0a, 0xbc, 0x3a, 0x71, 0x67, 0x6c,
+ 0x6b, 0x65, 0x91, 0x3a, 0x4d, 0xd6, 0xd4, 0xc7, 0x81, 0x88, 0xa6, 0x3a, 0x78, 0xe8, 0xc1, 0x3f,
+ 0x0e, 0xbd, 0x19, 0x34, 0xf1, 0x11, 0xfc, 0x34, 0x04, 0x3f, 0xac, 0x08, 0x83, 0x3c, 0xb8, 0x1d,
+ 0x17, 0x1a, 0xba, 0x30, 0x68, 0xc0, 0x41, 0x28, 0xaf, 0x53, 0x20, 0xbc, 0x2b, 0xb8, 0x57, 0xb7,
+ 0x26, 0x7e, 0xa9, 0x9f, 0xca, 0xa5, 0x05, 0xdc, 0xdf, 0x93, 0xa2, 0x85, 0xd3, 0x6a, 0x76, 0x47,
+ 0xd3, 0xea, 0x31, 0xab, 0xdd, 0xac, 0xe9, 0xad, 0x56, 0x6d, 0xd9, 0x6c, 0xe0, 0xb3, 0x2a, 0x5c,
+ 0xf8, 0xb4, 0x61, 0xab, 0xdd, 0x2c, 0xb5, 0x5a, 0x53, 0x1c, 0x48, 0x1e, 0x83, 0x31, 0x46, 0x87,
+ 0x9d, 0x14, 0x50, 0xe6, 0x91, 0x92, 0x31, 0xc0, 0xe8, 0xb0, 0x3e, 0xed, 0x03, 0xd0, 0x2f, 0x78,
+ 0xf2, 0xb5, 0xaa, 0x57, 0xeb, 0xe3, 0xcc, 0x5c, 0xd6, 0x73, 0x01, 0x1b, 0x3e, 0xb9, 0xf6, 0x6a,
+ 0x03, 0x7e, 0x79, 0x8c, 0x81, 0x6c, 0xb5, 0x9b, 0x3c, 0x22, 0x56, 0x1f, 0x22, 0x83, 0xdf, 0xe4,
+ 0x02, 0x8c, 0x30, 0x2e, 0x81, 0xc0, 0x78, 0xd8, 0xd8, 0x5e, 0x2d, 0x06, 0x25, 0x57, 0xe1, 0x44,
+ 0x04, 0xc2, 0x6d, 0x50, 0xfe, 0x4c, 0xa0, 0x57, 0x4b, 0xc5, 0xa9, 0x5f, 0xcc, 0x45, 0xd3, 0x00,
+ 0x1c, 0x40, 0x47, 0x9c, 0x86, 0x3e, 0xdb, 0x59, 0xa9, 0xb5, 0x9d, 0x86, 0x18, 0x7b, 0x05, 0xdb,
+ 0x59, 0xb9, 0xe9, 0x34, 0xc8, 0x49, 0x28, 0xb0, 0xde, 0x31, 0x0d, 0x31, 0xc4, 0x7a, 0xf5, 0x56,
+ 0xab, 0x62, 0x90, 0x12, 0xef, 0x10, 0x0c, 0x39, 0x5a, 0xab, 0xe3, 0xd6, 0x9e, 0x3b, 0x25, 0xf4,
+ 0xf2, 0x15, 0x2f, 0x81, 0xc4, 0x7e, 0xc2, 0x40, 0xa4, 0xfc, 0x20, 0x20, 0xc6, 0xc2, 0xc0, 0x6d,
+ 0x89, 0xc1, 0xfb, 0x24, 0xce, 0x42, 0x20, 0x43, 0x16, 0x7c, 0x13, 0x63, 0x90, 0x32, 0x90, 0x90,
+ 0xaa, 0x69, 0x1b, 0xe6, 0xb2, 0x49, 0xf9, 0xab, 0x8e, 0x5e, 0x7e, 0xf1, 0x9b, 0xc4, 0x6a, 0xa3,
+ 0x3e, 0x93, 0x59, 0x01, 0x21, 0x2f, 0x70, 0x25, 0xe4, 0x74, 0xb8, 0xf6, 0xf1, 0xbe, 0xe5, 0x76,
+ 0x5a, 0x0c, 0x85, 0x9a, 0x89, 0xe5, 0x71, 0x21, 0x54, 0xdf, 0xca, 0x25, 0x73, 0x41, 0x1c, 0x88,
+ 0x5d, 0x33, 0x0d, 0x20, 0x52, 0xbd, 0x84, 0x97, 0x6b, 0x81, 0xc7, 0x79, 0x88, 0xe9, 0xc0, 0x43,
+ 0x2a, 0x4b, 0x2e, 0x41, 0x3f, 0xff, 0xa2, 0x4a, 0x59, 0xd8, 0x3b, 0xe8, 0x22, 0xe6, 0xb6, 0xcc,
+ 0xe5, 0x65, 0xf4, 0x27, 0x0b, 0xd0, 0xe4, 0x02, 0xf4, 0x95, 0xe7, 0xaa, 0xd5, 0xd2, 0x9c, 0x7f,
+ 0x53, 0x8c, 0xef, 0x4b, 0x0c, 0xcb, 0xad, 0xb9, 0xba, 0xe5, 0x6a, 0x3e, 0x92, 0x3c, 0x02, 0x85,
+ 0xca, 0x02, 0x92, 0xf1, 0x57, 0x93, 0x83, 0x9b, 0x1b, 0xc5, 0x3e, 0xb3, 0xc5, 0xa9, 0x04, 0x0a,
+ 0xeb, 0xbd, 0x55, 0x29, 0x4b, 0xee, 0x12, 0xbc, 0xde, 0xbb, 0xa6, 0x81, 0xd7, 0xce, 0x5a, 0x80,
+ 0x26, 0x4f, 0xc3, 0x50, 0x95, 0x3a, 0xa6, 0xde, 0x98, 0x6b, 0xe3, 0x56, 0x51, 0x0a, 0xa5, 0xe8,
+ 0x22, 0xbc, 0x66, 0x21, 0x42, 0x8b, 0x90, 0x91, 0xb3, 0x90, 0x9f, 0x36, 0x2d, 0xff, 0x09, 0x03,
+ 0xfa, 0xb8, 0xaf, 0x9a, 0x96, 0xa7, 0x21, 0x54, 0xfd, 0xef, 0xd9, 0xf4, 0x84, 0x1a, 0x07, 0x30,
+ 0x1c, 0x77, 0x79, 0xd3, 0x1b, 0x53, 0x82, 0xfc, 0x1e, 0x94, 0x60, 0x19, 0x8e, 0x95, 0x8c, 0xa6,
+ 0x69, 0x95, 0xf0, 0xa7, 0x3b, 0x3b, 0x55, 0xc2, 0xe1, 0x2d, 0x3d, 0xa1, 0x8b, 0xa1, 0xc5, 0xf7,
+ 0xf0, 0xa0, 0xbc, 0x0c, 0x55, 0xd3, 0x39, 0xae, 0xd6, 0x5c, 0xd6, 0x6b, 0x75, 0x9e, 0x8b, 0x42,
+ 0x8b, 0x33, 0x55, 0xbf, 0x37, 0xbb, 0x45, 0x0e, 0x90, 0xfb, 0x51, 0xfa, 0xea, 0xe7, 0xb2, 0xdd,
+ 0xd3, 0xb0, 0xdc, 0x97, 0x42, 0xf9, 0x93, 0x6c, 0x4a, 0x52, 0x94, 0x3d, 0x49, 0xe2, 0x12, 0xf4,
+ 0x73, 0x36, 0x81, 0xab, 0x2d, 0xce, 0x38, 0x5c, 0x59, 0x71, 0xa6, 0xf3, 0xd1, 0x64, 0x0e, 0x4e,
+ 0x94, 0x96, 0x97, 0x69, 0xdd, 0x0b, 0xc3, 0x33, 0xcf, 0x85, 0x81, 0x52, 0x79, 0x38, 0x5a, 0x81,
+ 0x0f, 0xc3, 0x3b, 0x63, 0x40, 0x90, 0xd4, 0x72, 0x64, 0x11, 0x4e, 0xc5, 0xe1, 0x55, 0x6e, 0xa6,
+ 0xe7, 0xa5, 0x08, 0xb5, 0x09, 0x8e, 0xfc, 0x3f, 0xad, 0x43, 0xd9, 0xb4, 0x56, 0xe2, 0x74, 0xda,
+ 0xdb, 0xad, 0x95, 0x38, 0xb7, 0xa6, 0x96, 0x53, 0xbf, 0x94, 0x93, 0x73, 0xc7, 0xdc, 0xbf, 0x4e,
+ 0x51, 0xd7, 0x22, 0xae, 0xd0, 0xdb, 0x1d, 0x32, 0x4f, 0x8b, 0x28, 0x1f, 0x46, 0xdb, 0xf1, 0xbd,
+ 0x06, 0x83, 0x28, 0x03, 0x08, 0x94, 0xfd, 0xff, 0x02, 0x4a, 0x52, 0x81, 0x7c, 0xc9, 0x59, 0xe1,
+ 0x26, 0xe8, 0x56, 0x0f, 0x9f, 0x74, 0x67, 0xc5, 0x4d, 0x7f, 0xf8, 0xc4, 0x58, 0xa8, 0xdf, 0x93,
+ 0xed, 0x92, 0xee, 0xe5, 0xbe, 0x9c, 0x44, 0x7e, 0x28, 0xdb, 0x29, 0x71, 0xcb, 0x61, 0x75, 0xef,
+ 0x7a, 0x9b, 0x85, 0x73, 0xb8, 0x7d, 0xdf, 0xf6, 0x4f, 0x38, 0x8f, 0xcd, 0xf2, 0xf0, 0xd8, 0x37,
+ 0x4c, 0xcb, 0x20, 0x0f, 0xc0, 0xc9, 0x9b, 0xd5, 0x49, 0xad, 0x76, 0xa3, 0x32, 0x57, 0xae, 0xdd,
+ 0x9c, 0xab, 0x2e, 0x4c, 0x4e, 0x54, 0xa6, 0x2a, 0x93, 0xe5, 0xd1, 0x1e, 0x72, 0x1c, 0x8e, 0x85,
+ 0xa8, 0xe9, 0x9b, 0xb3, 0xa5, 0xb9, 0xd1, 0x0c, 0x19, 0x83, 0xe1, 0x10, 0x38, 0x3e, 0xbf, 0x38,
+ 0x9a, 0x7d, 0xec, 0xdd, 0x30, 0x88, 0xfb, 0x7f, 0x6e, 0x0b, 0x91, 0x21, 0xe8, 0x9f, 0x1f, 0xaf,
+ 0x4e, 0x6a, 0xb7, 0x90, 0x09, 0x40, 0xa1, 0x3c, 0x39, 0xc7, 0x18, 0x66, 0x1e, 0xfb, 0x5f, 0x19,
+ 0x80, 0xea, 0xd4, 0xe2, 0x82, 0x20, 0x1c, 0x84, 0xbe, 0xca, 0xdc, 0xad, 0xd2, 0x4c, 0x85, 0xd1,
+ 0xf5, 0x43, 0x7e, 0x7e, 0x61, 0x92, 0xd5, 0x30, 0x00, 0xbd, 0x13, 0x33, 0xf3, 0xd5, 0xc9, 0xd1,
+ 0x2c, 0x03, 0x6a, 0x93, 0xa5, 0xf2, 0x68, 0x8e, 0x01, 0x6f, 0x6b, 0x95, 0xc5, 0xc9, 0xd1, 0x3c,
+ 0xfb, 0x73, 0xa6, 0xba, 0x58, 0x5a, 0x1c, 0xed, 0x65, 0x7f, 0x4e, 0xe1, 0x9f, 0x05, 0xc6, 0xac,
+ 0x3a, 0xb9, 0x88, 0x3f, 0xfa, 0x58, 0x13, 0xa6, 0xfc, 0x5f, 0xfd, 0x0c, 0xc5, 0x58, 0x97, 0x2b,
+ 0xda, 0xe8, 0x00, 0xfb, 0xc1, 0x58, 0xb2, 0x1f, 0xc0, 0x1a, 0xa7, 0x4d, 0xce, 0xce, 0xdf, 0x9a,
+ 0x1c, 0x1d, 0x64, 0xbc, 0x66, 0x6f, 0x30, 0xf0, 0x10, 0xfb, 0x53, 0x9b, 0x65, 0x7f, 0x0e, 0x33,
+ 0x4e, 0xda, 0x64, 0x69, 0x66, 0xa1, 0xb4, 0x38, 0x3d, 0x3a, 0xc2, 0xda, 0x83, 0x3c, 0x8f, 0xf1,
+ 0x92, 0x73, 0xa5, 0xd9, 0xc9, 0xd1, 0x51, 0x41, 0x53, 0x9e, 0xa9, 0xcc, 0xdd, 0x18, 0x1d, 0xc3,
+ 0x86, 0xbc, 0x3e, 0x8b, 0x3f, 0x08, 0x2b, 0x80, 0x7f, 0x1d, 0x7f, 0xec, 0xc3, 0x50, 0x98, 0xaf,
+ 0xa2, 0xc5, 0x7f, 0x1a, 0x8e, 0xcf, 0x57, 0x6b, 0x8b, 0xaf, 0x2f, 0x4c, 0xc6, 0xe4, 0x3d, 0x06,
+ 0xc3, 0x3e, 0x62, 0xa6, 0x32, 0x77, 0xf3, 0x03, 0x5c, 0xda, 0x3e, 0x68, 0xb6, 0x34, 0x31, 0x5f,
+ 0x1d, 0xcd, 0xb2, 0x5e, 0xf1, 0x41, 0xb7, 0x2b, 0x73, 0xe5, 0xf9, 0xdb, 0xd5, 0xd1, 0xdc, 0x63,
+ 0x77, 0xfd, 0x5c, 0xc6, 0xf3, 0x8e, 0xb9, 0x62, 0x5a, 0xe4, 0x1c, 0x3c, 0x50, 0x9e, 0xbc, 0x55,
+ 0x99, 0x98, 0xac, 0xcd, 0x6b, 0x95, 0xeb, 0x95, 0xb9, 0x58, 0x4d, 0x27, 0x61, 0x2c, 0x8a, 0x2e,
+ 0x2d, 0x54, 0x46, 0x33, 0xe4, 0x14, 0x90, 0x28, 0xf8, 0xd5, 0xd2, 0xec, 0xd4, 0x68, 0x96, 0x28,
+ 0x70, 0x22, 0x0a, 0xaf, 0xcc, 0x2d, 0xde, 0x9c, 0x9b, 0x1c, 0xcd, 0x3d, 0xf6, 0x13, 0x19, 0x38,
+ 0x99, 0x1a, 0x80, 0x82, 0xa8, 0x70, 0x7e, 0x72, 0xa6, 0x54, 0x5d, 0xac, 0x4c, 0x54, 0x27, 0x4b,
+ 0xda, 0xc4, 0x74, 0x6d, 0xa2, 0xb4, 0x38, 0x79, 0x7d, 0x5e, 0x7b, 0xbd, 0x76, 0x7d, 0x72, 0x6e,
+ 0x52, 0x2b, 0xcd, 0x8c, 0xf6, 0x90, 0x47, 0xa0, 0xd8, 0x81, 0xa6, 0x3a, 0x39, 0x71, 0x53, 0xab,
+ 0x2c, 0xbe, 0x3e, 0x9a, 0x21, 0x0f, 0xc3, 0xb9, 0x8e, 0x44, 0xec, 0xf7, 0x68, 0x96, 0x9c, 0x87,
+ 0x33, 0x9d, 0x48, 0x5e, 0x9b, 0x19, 0xcd, 0x3d, 0xf6, 0x03, 0x19, 0x20, 0xc9, 0x08, 0x02, 0xe4,
+ 0x21, 0x38, 0xcb, 0xf4, 0xa2, 0xd6, 0xb9, 0x81, 0x0f, 0xc3, 0xb9, 0x54, 0x0a, 0xa9, 0x79, 0x45,
+ 0x78, 0xb0, 0x03, 0x89, 0x68, 0xdc, 0x59, 0x50, 0xd2, 0x09, 0xb0, 0x69, 0xbf, 0x94, 0x81, 0x93,
+ 0xa9, 0xdb, 0x0f, 0x72, 0x11, 0xde, 0x55, 0x2a, 0xcf, 0xb2, 0xbe, 0x99, 0x58, 0xac, 0xcc, 0xcf,
+ 0x55, 0x6b, 0xb3, 0x53, 0xa5, 0x1a, 0xd3, 0xbe, 0x9b, 0xd5, 0x58, 0x6f, 0x5e, 0x00, 0xb5, 0x0b,
+ 0xe5, 0xc4, 0x74, 0x69, 0xee, 0x3a, 0x1b, 0x7e, 0xe4, 0x5d, 0xf0, 0x50, 0x47, 0xba, 0xc9, 0xb9,
+ 0xd2, 0xf8, 0xcc, 0x64, 0x79, 0x34, 0x4b, 0x1e, 0x85, 0x87, 0x3b, 0x52, 0x95, 0x2b, 0x55, 0x4e,
+ 0x96, 0x1b, 0x2f, 0xbf, 0xf5, 0x1f, 0xce, 0xf7, 0xbc, 0xf5, 0xb5, 0xf3, 0x99, 0xdf, 0xfe, 0xda,
+ 0xf9, 0xcc, 0x1f, 0x7d, 0xed, 0x7c, 0xe6, 0x83, 0x57, 0x77, 0x12, 0x19, 0x82, 0x4f, 0x5b, 0x4b,
+ 0x05, 0x34, 0x05, 0x9e, 0xfa, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd7, 0xff, 0x14, 0x9e, 0x19,
+ 0x5b, 0x01, 0x00,
}
func (m *Metadata) Marshal() (dAtA []byte, err error) {
@@ -28630,6 +28757,52 @@ func (m *OneOf_IntegrationDelete) MarshalToSizedBuffer(dAtA []byte) (int, error)
}
return len(dAtA) - i, nil
}
+func (m *OneOf_SPIFFEFederationCreate) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *OneOf_SPIFFEFederationCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SPIFFEFederationCreate != nil {
+ {
+ size, err := m.SPIFFEFederationCreate.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ i--
+ dAtA[i] = 0xc2
+ }
+ return len(dAtA) - i, nil
+}
+func (m *OneOf_SPIFFEFederationDelete) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *OneOf_SPIFFEFederationDelete) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ if m.SPIFFEFederationDelete != nil {
+ {
+ size, err := m.SPIFFEFederationDelete.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ i--
+ dAtA[i] = 0xca
+ }
+ return len(dAtA) - i, nil
+}
func (m *StreamStatus) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -28654,12 +28827,12 @@ func (m *StreamStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
- n612, err612 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUploadTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUploadTime):])
- if err612 != nil {
- return 0, err612
+ n614, err614 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUploadTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUploadTime):])
+ if err614 != nil {
+ return 0, err614
}
- i -= n612
- i = encodeVarintEvents(dAtA, i, uint64(n612))
+ i -= n614
+ i = encodeVarintEvents(dAtA, i, uint64(n614))
i--
dAtA[i] = 0x1a
if m.LastEventIndex != 0 {
@@ -28818,12 +28991,12 @@ func (m *Identity) MarshalToSizedBuffer(dAtA []byte) (int, error) {
dAtA[i] = 0xc2
}
}
- n616, err616 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.PreviousIdentityExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.PreviousIdentityExpires):])
- if err616 != nil {
- return 0, err616
+ n618, err618 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.PreviousIdentityExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.PreviousIdentityExpires):])
+ if err618 != nil {
+ return 0, err618
}
- i -= n616
- i = encodeVarintEvents(dAtA, i, uint64(n616))
+ i -= n618
+ i = encodeVarintEvents(dAtA, i, uint64(n618))
i--
dAtA[i] = 0x1
i--
@@ -28971,12 +29144,12 @@ func (m *Identity) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x4a
}
- n620, err620 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):])
- if err620 != nil {
- return 0, err620
+ n622, err622 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):])
+ if err622 != nil {
+ return 0, err622
}
- i -= n620
- i = encodeVarintEvents(dAtA, i, uint64(n620))
+ i -= n622
+ i = encodeVarintEvents(dAtA, i, uint64(n622))
i--
dAtA[i] = 0x42
if len(m.KubernetesUsers) > 0 {
@@ -34177,6 +34350,140 @@ func (m *AccessGraphSettingsUpdate) MarshalToSizedBuffer(dAtA []byte) (int, erro
return len(dAtA) - i, nil
}
+func (m *SPIFFEFederationCreate) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *SPIFFEFederationCreate) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *SPIFFEFederationCreate) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ {
+ size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x22
+ {
+ size, err := m.UserMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ {
+ size, err := m.ResourceMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ {
+ size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
+func (m *SPIFFEFederationDelete) Marshal() (dAtA []byte, err error) {
+ size := m.Size()
+ dAtA = make([]byte, size)
+ n, err := m.MarshalToSizedBuffer(dAtA[:size])
+ if err != nil {
+ return nil, err
+ }
+ return dAtA[:n], nil
+}
+
+func (m *SPIFFEFederationDelete) MarshalTo(dAtA []byte) (int, error) {
+ size := m.Size()
+ return m.MarshalToSizedBuffer(dAtA[:size])
+}
+
+func (m *SPIFFEFederationDelete) MarshalToSizedBuffer(dAtA []byte) (int, error) {
+ i := len(dAtA)
+ _ = i
+ var l int
+ _ = l
+ if m.XXX_unrecognized != nil {
+ i -= len(m.XXX_unrecognized)
+ copy(dAtA[i:], m.XXX_unrecognized)
+ }
+ {
+ size, err := m.ConnectionMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x22
+ {
+ size, err := m.UserMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x1a
+ {
+ size, err := m.ResourceMetadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0x12
+ {
+ size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i])
+ if err != nil {
+ return 0, err
+ }
+ i -= size
+ i = encodeVarintEvents(dAtA, i, uint64(size))
+ }
+ i--
+ dAtA[i] = 0xa
+ return len(dAtA) - i, nil
+}
+
func encodeVarintEvents(dAtA []byte, offset int, v uint64) int {
offset -= sovEvents(v)
base := offset
@@ -39903,6 +40210,30 @@ func (m *OneOf_IntegrationDelete) Size() (n int) {
}
return n
}
+func (m *OneOf_SPIFFEFederationCreate) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SPIFFEFederationCreate != nil {
+ l = m.SPIFFEFederationCreate.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
+func (m *OneOf_SPIFFEFederationDelete) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ if m.SPIFFEFederationDelete != nil {
+ l = m.SPIFFEFederationDelete.Size()
+ n += 2 + l + sovEvents(uint64(l))
+ }
+ return n
+}
func (m *StreamStatus) Size() (n int) {
if m == nil {
return 0
@@ -41950,6 +42281,46 @@ func (m *AccessGraphSettingsUpdate) Size() (n int) {
return n
}
+func (m *SPIFFEFederationCreate) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = m.Metadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ l = m.ResourceMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ l = m.UserMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ l = m.ConnectionMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
+func (m *SPIFFEFederationDelete) Size() (n int) {
+ if m == nil {
+ return 0
+ }
+ var l int
+ _ = l
+ l = m.Metadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ l = m.ResourceMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ l = m.UserMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ l = m.ConnectionMetadata.Size()
+ n += 1 + l + sovEvents(uint64(l))
+ if m.XXX_unrecognized != nil {
+ n += len(m.XXX_unrecognized)
+ }
+ return n
+}
+
func sovEvents(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
@@ -78525,6 +78896,76 @@ func (m *OneOf) Unmarshal(dAtA []byte) error {
}
m.Event = &OneOf_IntegrationDelete{v}
iNdEx = postIndex
+ case 168:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SPIFFEFederationCreate", 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
+ }
+ v := &SPIFFEFederationCreate{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Event = &OneOf_SPIFFEFederationCreate{v}
+ iNdEx = postIndex
+ case 169:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field SPIFFEFederationDelete", 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
+ }
+ v := &SPIFFEFederationDelete{}
+ if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ m.Event = &OneOf_SPIFFEFederationDelete{v}
+ iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipEvents(dAtA[iNdEx:])
@@ -95041,6 +95482,372 @@ func (m *AccessGraphSettingsUpdate) Unmarshal(dAtA []byte) error {
}
return nil
}
+func (m *SPIFFEFederationCreate) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SPIFFEFederationCreate: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SPIFFEFederationCreate: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Metadata", 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.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ 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
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UserMetadata", 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.UserMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ConnectionMetadata", 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.ConnectionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
+func (m *SPIFFEFederationDelete) Unmarshal(dAtA []byte) error {
+ l := len(dAtA)
+ iNdEx := 0
+ for iNdEx < l {
+ preIndex := iNdEx
+ var wire uint64
+ for shift := uint(0); ; shift += 7 {
+ if shift >= 64 {
+ return ErrIntOverflowEvents
+ }
+ if iNdEx >= l {
+ return io.ErrUnexpectedEOF
+ }
+ b := dAtA[iNdEx]
+ iNdEx++
+ wire |= uint64(b&0x7F) << shift
+ if b < 0x80 {
+ break
+ }
+ }
+ fieldNum := int32(wire >> 3)
+ wireType := int(wire & 0x7)
+ if wireType == 4 {
+ return fmt.Errorf("proto: SPIFFEFederationDelete: wiretype end group for non-group")
+ }
+ if fieldNum <= 0 {
+ return fmt.Errorf("proto: SPIFFEFederationDelete: illegal tag %d (wire type %d)", fieldNum, wire)
+ }
+ switch fieldNum {
+ case 1:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field Metadata", 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.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 2:
+ 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
+ case 3:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field UserMetadata", 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.UserMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ case 4:
+ if wireType != 2 {
+ return fmt.Errorf("proto: wrong wireType = %d for field ConnectionMetadata", 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.ConnectionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
+ return err
+ }
+ iNdEx = postIndex
+ default:
+ iNdEx = preIndex
+ skippy, err := skipEvents(dAtA[iNdEx:])
+ if err != nil {
+ return err
+ }
+ if (skippy < 0) || (iNdEx+skippy) < 0 {
+ return ErrInvalidLengthEvents
+ }
+ if (iNdEx + skippy) > l {
+ return io.ErrUnexpectedEOF
+ }
+ m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
+ iNdEx += skippy
+ }
+ }
+
+ if iNdEx > l {
+ return io.ErrUnexpectedEOF
+ }
+ return nil
+}
func skipEvents(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
diff --git a/api/types/events/oneof.go b/api/types/events/oneof.go
index 76c0f408c3437..3f8971e15dba6 100644
--- a/api/types/events/oneof.go
+++ b/api/types/events/oneof.go
@@ -704,6 +704,14 @@ func ToOneOf(in AuditEvent) (*OneOf, error) {
out.Event = &OneOf_IntegrationDelete{
IntegrationDelete: e,
}
+ case *SPIFFEFederationCreate:
+ out.Event = &OneOf_SPIFFEFederationCreate{
+ SPIFFEFederationCreate: e,
+ }
+ case *SPIFFEFederationDelete:
+ out.Event = &OneOf_SPIFFEFederationDelete{
+ SPIFFEFederationDelete: e,
+ }
default:
slog.ErrorContext(context.Background(), "Attempted to convert dynamic event of unknown type into protobuf event.", "event_type", in.GetType())
diff --git a/lib/auth/accesspoint/accesspoint.go b/lib/auth/accesspoint/accesspoint.go
index 9ed7fb66097c4..bab6caf387e3d 100644
--- a/lib/auth/accesspoint/accesspoint.go
+++ b/lib/auth/accesspoint/accesspoint.go
@@ -154,6 +154,7 @@ func NewAccessCache(cfg AccessCacheConfig) (*cache.Cache, error) {
WebSession: cfg.Services.WebSessions(),
WebToken: cfg.Services.WebTokens(),
KubeWaitingContainers: cfg.Services,
+ SPIFFEFederations: nil, // TODO(noah)
Component: teleport.Component(component...),
MetricComponent: teleport.Component(metricComponent...),
Tracer: tracer,
diff --git a/lib/auth/auth.go b/lib/auth/auth.go
index 8d395e3977246..ce117a30b30c2 100644
--- a/lib/auth/auth.go
+++ b/lib/auth/auth.go
@@ -342,6 +342,12 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) {
return nil, trace.Wrap(err)
}
}
+ if cfg.SPIFFEFederations == nil {
+ cfg.SPIFFEFederations, err = local.NewSPIFFEFederationService(cfg.Backend)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ }
limiter, err := limiter.NewConnectionsLimiter(limiter.Config{
MaxConnections: defaults.LimiterMaxConcurrentSignatures,
@@ -428,6 +434,7 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) {
AccessMonitoringRules: cfg.AccessMonitoringRules,
CrownJewels: cfg.CrownJewels,
BotInstance: cfg.BotInstance,
+ SPIFFEFederations: cfg.SPIFFEFederations,
}
as := Server{
@@ -619,6 +626,7 @@ type Services struct {
services.BotInstance
services.AccessGraphSecretsGetter
services.DevicesGetter
+ services.SPIFFEFederations
}
// SecReportsClient returns the security reports client.
diff --git a/lib/auth/authclient/api.go b/lib/auth/authclient/api.go
index 7f0f89ab4e81b..7b9edd0712ec3 100644
--- a/lib/auth/authclient/api.go
+++ b/lib/auth/authclient/api.go
@@ -32,6 +32,7 @@ import (
crownjewelv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/crownjewel/v1"
integrationpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/integration/v1"
kubewaitingcontainerpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/kubewaitingcontainer/v1"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
userspb "github.com/gravitational/teleport/api/gen/proto/go/teleport/users/v1"
"github.com/gravitational/teleport/api/types"
"github.com/gravitational/teleport/api/types/accesslist"
@@ -1176,6 +1177,12 @@ type Cache interface {
// GetAccessGraphSettings returns the access graph settings.
GetAccessGraphSettings(context.Context) (*clusterconfigpb.AccessGraphSettings, error)
+
+ // GetSPIFFEFederation gets a SPIFFE Federation by name.
+ GetSPIFFEFederation(ctx context.Context, name string) (*machineidv1.SPIFFEFederation, error)
+ // ListSPIFFEFederations lists all SPIFFE Federations using Google style
+ // pagination.
+ ListSPIFFEFederations(ctx context.Context, pageSize int, lastToken string) ([]*machineidv1.SPIFFEFederation, string, error)
}
type NodeWrapper struct {
diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go
index 368bf60215f85..48b26e56271bc 100644
--- a/lib/auth/grpcserver.go
+++ b/lib/auth/grpcserver.go
@@ -5192,6 +5192,18 @@ func NewGRPCServer(cfg GRPCServerConfig) (*GRPCServer, error) {
}
machineidv1pb.RegisterWorkloadIdentityServiceServer(server, workloadIdentityService)
+ spiffeFederationService, err := machineidv1.NewSPIFFEFederationService(machineidv1.SPIFFEFederationServiceConfig{
+ Authorizer: cfg.Authorizer,
+ Backend: cfg.AuthServer.Services.SPIFFEFederations,
+ Cache: cfg.AuthServer.Cache,
+ Clock: cfg.AuthServer.GetClock(),
+ Emitter: cfg.Emitter,
+ })
+ if err != nil {
+ return nil, trace.Wrap(err, "creating SPIFFE federation service")
+ }
+ machineidv1pb.RegisterSPIFFEFederationServiceServer(server, spiffeFederationService)
+
dbObjectImportRuleService, err := dbobjectimportrulev1.NewDatabaseObjectImportRuleService(dbobjectimportrulev1.DatabaseObjectImportRuleServiceConfig{
Authorizer: cfg.Authorizer,
Backend: cfg.AuthServer.Services,
diff --git a/lib/auth/init.go b/lib/auth/init.go
index 02e598816eb47..40ffecd563591 100644
--- a/lib/auth/init.go
+++ b/lib/auth/init.go
@@ -306,6 +306,9 @@ type InitConfig struct {
// BotInstance is a service that manages Machine ID bot instances
BotInstance services.BotInstance
+
+ // SPIFFEFederations is a service that manages storing SPIFFE federations.
+ SPIFFEFederations services.SPIFFEFederations
}
// Init instantiates and configures an instance of AuthServer
diff --git a/lib/auth/machineid/machineidv1/spiffe_federation_service.go b/lib/auth/machineid/machineidv1/spiffe_federation_service.go
new file mode 100644
index 0000000000000..796da7b2b3c9a
--- /dev/null
+++ b/lib/auth/machineid/machineidv1/spiffe_federation_service.go
@@ -0,0 +1,235 @@
+// 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 machineidv1
+
+import (
+ "context"
+ "log/slog"
+
+ "github.com/gravitational/trace"
+ "github.com/jonboulle/clockwork"
+ "google.golang.org/protobuf/types/known/emptypb"
+
+ "github.com/gravitational/teleport"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/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"
+)
+
+type spiffeFederationReader interface {
+ ListSPIFFEFederations(ctx context.Context, limit int, token string) ([]*machineidv1.SPIFFEFederation, string, error)
+ GetSPIFFEFederation(ctx context.Context, name string) (*machineidv1.SPIFFEFederation, error)
+}
+
+type spiffeFederationReadWriter interface {
+ spiffeFederationReader
+ CreateSPIFFEFederation(ctx context.Context, federation *machineidv1.SPIFFEFederation) (*machineidv1.SPIFFEFederation, error)
+ DeleteSPIFFEFederation(ctx context.Context, name string) error
+}
+
+// SPIFFEFederationServiceConfig holds configuration options for
+// NewSPIFFEFederationService
+type SPIFFEFederationServiceConfig struct {
+ Authorizer authz.Authorizer
+ Backend spiffeFederationReadWriter
+ Cache spiffeFederationReader
+ Logger *slog.Logger
+ Clock clockwork.Clock
+ Emitter apievents.Emitter
+}
+
+// NewSPIFFEFederationService returns a new instance of the SPIFFEFederationService.
+func NewSPIFFEFederationService(
+ cfg SPIFFEFederationServiceConfig,
+) (*SPIFFEFederationService, error) {
+ switch {
+ case cfg.Backend == nil:
+ return nil, trace.BadParameter("backend service is required")
+ case cfg.Authorizer == nil:
+ return nil, trace.BadParameter("authorizer is required")
+ case cfg.Emitter == nil:
+ return nil, trace.BadParameter("emitter is required")
+ }
+
+ if cfg.Logger == nil {
+ cfg.Logger = slog.With(teleport.ComponentKey, "spiffe_federation.service")
+ }
+ if cfg.Clock == nil {
+ cfg.Clock = clockwork.NewRealClock()
+ }
+
+ return &SPIFFEFederationService{
+ authorizer: cfg.Authorizer,
+ store: cfg.Backend,
+ logger: cfg.Logger,
+ clock: cfg.Clock,
+ }, nil
+}
+
+// SPIFFEFederationService is an implementation of
+// teleport.machineid.v1.SPIFFEFederationService
+type SPIFFEFederationService struct {
+ machineidv1.UnimplementedSPIFFEFederationServiceServer
+
+ authorizer authz.Authorizer
+ store spiffeFederationReadWriter
+ cache spiffeFederationReader
+ logger *slog.Logger
+ clock clockwork.Clock
+ emitter apievents.Emitter
+}
+
+// GetSPIFFEFederation returns a SPIFFE Federation by name.
+// Implements teleport.machineid.v1.SPIFFEFederationService/GetSPIFFEFederation
+func (s *SPIFFEFederationService) GetSPIFFEFederation(
+ ctx context.Context, req *machineidv1.GetSPIFFEFederationRequest,
+) (*machineidv1.SPIFFEFederation, error) {
+ authCtx, err := s.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if err := authCtx.CheckAccessToKind(types.KindSPIFFEFederation, types.VerbRead); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if req.Name == "" {
+ return nil, trace.BadParameter("name: must be non-empty")
+ }
+
+ federation, err := s.cache.GetSPIFFEFederation(ctx, req.Name)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ return federation, nil
+}
+
+// ListSPIFFEFederations returns a list of SPIFFE Federations. It follows the
+// Google API design guidelines for list pagination.
+// Implements teleport.machineid.v1.SPIFFEFederationService/ListSPIFFEFederations
+func (s *SPIFFEFederationService) ListSPIFFEFederations(
+ ctx context.Context, req *machineidv1.ListSPIFFEFederationsRequest,
+) (*machineidv1.ListSPIFFEFederationsResponse, error) {
+ authCtx, err := s.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if err := authCtx.CheckAccessToKind(types.KindSPIFFEFederation, types.VerbRead, types.VerbList); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ federations, nextToken, err := s.cache.ListSPIFFEFederations(
+ ctx,
+ int(req.PageSize),
+ req.PageToken,
+ )
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ return &machineidv1.ListSPIFFEFederationsResponse{
+ SpiffeFederations: federations,
+ NextPageToken: nextToken,
+ }, nil
+}
+
+// DeleteSPIFFEFederation deletes a SPIFFE Federation by name.
+// Implements teleport.machineid.v1.SPIFFEFederationService/DeleteSPIFFEFederation
+func (s *SPIFFEFederationService) DeleteSPIFFEFederation(
+ ctx context.Context, req *machineidv1.DeleteSPIFFEFederationRequest,
+) (*emptypb.Empty, error) {
+ authCtx, err := s.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if err := authCtx.CheckAccessToKind(types.KindSPIFFEFederation, types.VerbDelete); err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if err := authCtx.AuthorizeAdminAction(); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if req.Name == "" {
+ return nil, trace.BadParameter("name: must be non-empty")
+ }
+
+ if err := s.store.DeleteSPIFFEFederation(ctx, req.Name); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := s.emitter.EmitAuditEvent(ctx, &apievents.SPIFFEFederationDelete{
+ Metadata: apievents.Metadata{
+ Code: events.SPIFFEFederationDeleteCode,
+ Type: events.SPIFFEFederationDeleteEvent,
+ },
+ UserMetadata: authz.ClientUserMetadata(ctx),
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: req.Name,
+ },
+ }); err != nil {
+ s.logger.ErrorContext(
+ ctx, "Failed to emit audit event for deletion",
+ "error", err,
+ )
+ }
+
+ return &emptypb.Empty{}, nil
+}
+
+// CreateSPIFFEFederation creates a new SPIFFE Federation.
+// Implements teleport.machineid.v1.SPIFFEFederationService/CreateSPIFFEFederation
+func (s *SPIFFEFederationService) CreateSPIFFEFederation(
+ ctx context.Context, req *machineidv1.CreateSPIFFEFederationRequest,
+) (*machineidv1.SPIFFEFederation, error) {
+ authCtx, err := s.authorizer.Authorize(ctx)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if err := authCtx.CheckAccessToKind(types.KindSPIFFEFederation, types.VerbCreate); err != nil {
+ return nil, trace.Wrap(err)
+ }
+ if err := authCtx.AuthorizeAdminAction(); err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ created, err := s.store.CreateSPIFFEFederation(ctx, req.SpiffeFederation)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+
+ if err := s.emitter.EmitAuditEvent(ctx, &apievents.SPIFFEFederationCreate{
+ Metadata: apievents.Metadata{
+ Code: events.SPIFFEFederationCreateCode,
+ Type: events.SPIFFEFederationCreateEvent,
+ },
+ UserMetadata: authz.ClientUserMetadata(ctx),
+ ConnectionMetadata: authz.ConnectionMetadata(ctx),
+ ResourceMetadata: apievents.ResourceMetadata{
+ Name: req.SpiffeFederation.Metadata.Name,
+ },
+ }); err != nil {
+ s.logger.ErrorContext(
+ ctx, "Failed to emit audit event for creation",
+ "error", err,
+ )
+ }
+
+ return created, nil
+}
diff --git a/lib/cache/cache.go b/lib/cache/cache.go
index a744ea0df5f25..6c938f571d0d5 100644
--- a/lib/cache/cache.go
+++ b/lib/cache/cache.go
@@ -182,6 +182,7 @@ func ForAuth(cfg Config) Config {
{Kind: types.KindAccessMonitoringRule},
{Kind: types.KindDatabaseObject},
{Kind: types.KindAccessGraphSettings},
+ {Kind: types.KindSPIFFEFederation},
}
cfg.QueueSize = defaults.AuthQueueSize
// We don't want to enable partial health for auth cache because auth uses an event stream
@@ -519,6 +520,7 @@ type Cache struct {
kubeWaitingContsCache *local.KubeWaitingContainerService
notificationsCache services.Notifications
accessMontoringRuleCache services.AccessMonitoringRules
+ spiffeFederationCache spiffeFederationCacher
// closed indicates that the cache has been closed
closed atomic.Bool
@@ -691,6 +693,8 @@ type Config struct {
Notifications services.Notifications
// AccessMonitoringRules is the access monitoring rules service.
AccessMonitoringRules services.AccessMonitoringRules
+ // SPIFFEFederations is the SPIFFE federations service.
+ SPIFFEFederations spiffeFederationReader
// Backend is a backend for local cache
Backend backend.Backend
// MaxRetryPeriod is the maximum period between cache retries on failures
@@ -926,6 +930,12 @@ func New(config Config) (*Cache, error) {
return nil, trace.Wrap(err)
}
+ spiffeFederationCache, err := local.NewSPIFFEFederationService(config.Backend)
+ if err != nil {
+ cancel()
+ return nil, trace.Wrap(err)
+ }
+
cs := &Cache{
ctx: ctx,
cancel: cancel,
@@ -966,6 +976,7 @@ func New(config Config) (*Cache, error) {
eventsFanout: fanout,
lowVolumeEventsFanout: utils.NewRoundRobin(lowVolumeFanouts),
kubeWaitingContsCache: kubeWaitingContsCache,
+ spiffeFederationCache: spiffeFederationCache,
Logger: log.WithFields(log.Fields{
teleport.ComponentKey: config.Component,
}),
diff --git a/lib/cache/collections.go b/lib/cache/collections.go
index f4e8592c53d85..7ba7d5511297f 100644
--- a/lib/cache/collections.go
+++ b/lib/cache/collections.go
@@ -33,6 +33,7 @@ import (
crownjewelv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/crownjewel/v1"
dbobjectv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/dbobject/v1"
kubewaitingcontainerpb "github.com/gravitational/teleport/api/gen/proto/go/teleport/kubewaitingcontainer/v1"
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
notificationsv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/notifications/v1"
userspb "github.com/gravitational/teleport/api/gen/proto/go/teleport/users/v1"
"github.com/gravitational/teleport/api/types"
@@ -250,6 +251,7 @@ type cacheCollections struct {
accessGraphSettings collectionReader[accessGraphSettingsGetter]
globalNotifications collectionReader[notificationGetter]
accessMonitoringRules collectionReader[accessMonitoringRuleGetter]
+ spiffeFederations collectionReader[spiffeFederationReader]
}
// setupCollections returns a registry of collections.
@@ -742,6 +744,15 @@ func setupCollections(c *Cache, watches []types.WatchKind) (*cacheCollections, e
watch: watch,
}
collections.byKind[resourceKind] = collections.accessGraphSettings
+ case types.KindSPIFFEFederation:
+ if c.Config.SPIFFEFederations == nil {
+ return nil, trace.BadParameter("missing parameter SPIFFEFederations")
+ }
+ collections.spiffeFederations = &genericCollection[*machineidv1.SPIFFEFederation, spiffeFederationReader, spiffeFederationExecutor]{
+ cache: c,
+ watch: watch,
+ }
+ collections.byKind[resourceKind] = collections.spiffeFederations
default:
return nil, trace.BadParameter("resource %q is not supported", watch.Kind)
}
diff --git a/lib/cache/resource_spiffe_federation.go b/lib/cache/resource_spiffe_federation.go
new file mode 100644
index 0000000000000..33a52dcd3038c
--- /dev/null
+++ b/lib/cache/resource_spiffe_federation.go
@@ -0,0 +1,121 @@
+/*
+ * 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 cache
+
+import (
+ "context"
+
+ "github.com/gravitational/trace"
+
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+)
+
+// spiffeFederationReader is an interface that defines the methods for getting
+// SPIFFE federations. This is returned as the reader for the SPIFFEFederations
+// collection but is also used by the executor to read the full list of
+// SPIFFE Federations on initialization.
+type spiffeFederationReader interface {
+ ListSPIFFEFederations(ctx context.Context, pageSize int, nextToken string) ([]*machineidv1.SPIFFEFederation, string, error)
+ GetSPIFFEFederation(ctx context.Context, name string) (*machineidv1.SPIFFEFederation, error)
+}
+
+// spiffeFederationCacher is used for storing and retrieving SPIFFE federations
+// from the cache's local backend.
+type spiffeFederationCacher interface {
+ spiffeFederationReader
+ UpsertSPIFFEFederation(ctx context.Context, federation *machineidv1.SPIFFEFederation) (*machineidv1.SPIFFEFederation, error)
+ DeleteSPIFFEFederation(ctx context.Context, name string) error
+ DeleteAllSPIFFEFederations(ctx context.Context) error
+}
+
+type spiffeFederationExecutor struct{}
+
+var _ executor[*machineidv1.SPIFFEFederation, spiffeFederationReader] = spiffeFederationExecutor{}
+
+func (spiffeFederationExecutor) getAll(ctx context.Context, cache *Cache, loadSecrets bool) ([]*machineidv1.SPIFFEFederation, error) {
+ var out []*machineidv1.SPIFFEFederation
+ var nextToken string
+ for {
+ var page []*machineidv1.SPIFFEFederation
+ var err error
+
+ page, nextToken, err = cache.Config.SPIFFEFederations.ListSPIFFEFederations(ctx, 0 /* default page size */, nextToken)
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ out = append(out, page...)
+ if nextToken == "" {
+ break
+ }
+ }
+ return out, nil
+}
+
+func (spiffeFederationExecutor) upsert(ctx context.Context, cache *Cache, resource *machineidv1.SPIFFEFederation) error {
+ _, err := cache.spiffeFederationCache.UpsertSPIFFEFederation(ctx, resource)
+ return trace.Wrap(err)
+}
+
+func (spiffeFederationExecutor) deleteAll(ctx context.Context, cache *Cache) error {
+ return trace.Wrap(cache.spiffeFederationCache.DeleteAllSPIFFEFederations(ctx))
+}
+
+func (spiffeFederationExecutor) delete(ctx context.Context, cache *Cache, resource types.Resource) error {
+ return trace.Wrap(cache.spiffeFederationCache.DeleteSPIFFEFederation(ctx, resource.GetName()))
+}
+
+func (spiffeFederationExecutor) isSingleton() bool { return false }
+
+func (spiffeFederationExecutor) getReader(cache *Cache, cacheOK bool) spiffeFederationReader {
+ if cacheOK {
+ return cache.spiffeFederationCache
+ }
+ return cache.Config.SPIFFEFederations
+}
+
+// ListSPIFFEFederations returns a paginated list of SPIFFE federations
+func (c *Cache) ListSPIFFEFederations(ctx context.Context, pageSize int, nextToken string) ([]*machineidv1.SPIFFEFederation, string, error) {
+ ctx, span := c.Tracer.Start(ctx, "cache/ListSPIFFEFederations")
+ defer span.End()
+
+ rg, err := readCollectionCache(c, c.collections.spiffeFederations)
+
+ if err != nil {
+ return nil, "", trace.Wrap(err)
+ }
+ defer rg.Release()
+ out, nextKey, err := rg.reader.ListSPIFFEFederations(ctx, pageSize, nextToken)
+ return out, nextKey, trace.Wrap(err)
+}
+
+// GetSPIFFEFederation returns a single SPIFFE federation by name
+func (c *Cache) GetSPIFFEFederation(ctx context.Context, name string) (*machineidv1.SPIFFEFederation, error) {
+ ctx, span := c.Tracer.Start(ctx, "cache/GetSPIFFEFederation")
+ defer span.End()
+
+ rg, err := readCollectionCache(c, c.collections.spiffeFederations)
+
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ defer rg.Release()
+ out, err := rg.reader.GetSPIFFEFederation(ctx, name)
+ return out, trace.Wrap(err)
+}
diff --git a/lib/events/api.go b/lib/events/api.go
index 8ac05d415ddde..4a579a9348b87 100644
--- a/lib/events/api.go
+++ b/lib/events/api.go
@@ -757,6 +757,10 @@ const (
// SPIFFESVIDIssuedEvent is emitted when a SPIFFE SVID is issued.
SPIFFESVIDIssuedEvent = "spiffe.svid.issued"
+ // SPIFFEFederationCreateEvent is emitted when a SPIFFE federation is created.
+ SPIFFEFederationCreateEvent = "spiffe.federation.create"
+ // SPIFFEFederationDeleteEvent is emitted when a SPIFFE federation is deleted.
+ SPIFFEFederationDeleteEvent = "spiffe.federation.delete"
// AuthPreferenceUpdateEvent is emitted when a user updates the cluster authentication preferences.
AuthPreferenceUpdateEvent = "auth_preference.update"
diff --git a/lib/events/codes.go b/lib/events/codes.go
index 50f0d56147a93..253769fc4ffc6 100644
--- a/lib/events/codes.go
+++ b/lib/events/codes.go
@@ -609,6 +609,10 @@ const (
SPIFFESVIDIssuedSuccessCode = "TSPIFFE000I"
// SPIFFESVIDIssuedFailureCode is the SPIFFE SVID issued failure code.
SPIFFESVIDIssuedFailureCode = "TSPIFFE000E"
+ // SPIFFEFederationCreateCode is the SPIFFE Federation created code.
+ SPIFFEFederationCreateCode = "TSPIFFE001I"
+ // SPIFFEFederationDeleteCode is the SPIFFE Federation deleted code.
+ SPIFFEFederationDeleteCode = "TSPIFFE002I"
// AuthPreferenceUpdateCode is the auth preference updated event code.
AuthPreferenceUpdateCode = "TCAUTH001I"
diff --git a/lib/services/local/events.go b/lib/services/local/events.go
index 0cc0d9938a10c..913e574c389a3 100644
--- a/lib/services/local/events.go
+++ b/lib/services/local/events.go
@@ -224,6 +224,8 @@ func (e *EventsService) NewWatcher(ctx context.Context, watch types.Watch) (type
parser = newAccessGraphSecretAuthorizedKeyParser()
case types.KindAccessGraphSettings:
parser = newAccessGraphSettingsParser()
+ case types.KindSPIFFEFederation:
+ parser = newSPIFFEFederationParser()
default:
if watch.AllowPartialSuccess {
continue
@@ -2174,6 +2176,34 @@ func (p *botInstanceParser) parse(event backend.Event) (types.Resource, error) {
}
}
+func newSPIFFEFederationParser() *spiffeFederationParser {
+ return &spiffeFederationParser{
+ baseParser: newBaseParser(backend.Key(spiffeFederationPrefix)),
+ }
+}
+
+type spiffeFederationParser struct {
+ baseParser
+}
+
+func (p *spiffeFederationParser) parse(event backend.Event) (types.Resource, error) {
+ switch event.Type {
+ case types.OpDelete:
+ return resourceHeader(event, types.KindSPIFFEFederation, types.V1, 0)
+ case types.OpPut:
+ spiffeFed, err := services.UnmarshalSPIFFEFederation(
+ event.Item.Value,
+ services.WithExpires(event.Item.Expires),
+ services.WithRevision(event.Item.Revision))
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ return types.Resource153ToLegacy(spiffeFed), nil
+ default:
+ return nil, trace.BadParameter("event %v is not supported", event.Type)
+ }
+}
+
func newInstanceParser() *instanceParser {
return &instanceParser{
baseParser: newBaseParser(backend.Key(instancePrefix)),
diff --git a/lib/services/local/spiffe_federation.go b/lib/services/local/spiffe_federation.go
new file mode 100644
index 0000000000000..e3b925d9dc3b0
--- /dev/null
+++ b/lib/services/local/spiffe_federation.go
@@ -0,0 +1,112 @@
+// 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 local
+
+import (
+ "context"
+
+ "github.com/gravitational/trace"
+
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+ "github.com/gravitational/teleport/lib/backend"
+ "github.com/gravitational/teleport/lib/services"
+ "github.com/gravitational/teleport/lib/services/local/generic"
+)
+
+const (
+ spiffeFederationPrefix = "spiffe_federation"
+)
+
+// SPIFFEFederationService exposes backend functionality for storing
+// SPIFFEFederations
+type SPIFFEFederationService struct {
+ service *generic.ServiceWrapper[*machineidv1.SPIFFEFederation]
+}
+
+// NewSPIFFEFederationService creates a new SPIFFEFederationService.
+func NewSPIFFEFederationService(
+ backend backend.Backend,
+) (*SPIFFEFederationService, error) {
+ service, err := generic.NewServiceWrapper(backend,
+ types.KindSPIFFEFederation,
+ spiffeFederationPrefix,
+ services.MarshalSPIFFEFederation,
+ services.UnmarshalSPIFFEFederation,
+ )
+ if err != nil {
+ return nil, trace.Wrap(err)
+ }
+ return &SPIFFEFederationService{
+ service: service,
+ }, nil
+}
+
+// CreateSPIFFEFederation inserts a new SPIFFEFederations into the backend.
+func (b *SPIFFEFederationService) CreateSPIFFEFederation(
+ ctx context.Context, federation *machineidv1.SPIFFEFederation,
+) (*machineidv1.SPIFFEFederation, error) {
+ if err := services.ValidateSPIFFEFederation(federation); err != nil {
+ return nil, trace.Wrap(err)
+ }
+ created, err := b.service.CreateResource(ctx, federation)
+ return created, trace.Wrap(err)
+}
+
+// GetSPIFFEFederation retrieves a specific SPIFFEFederations given a name
+func (b *SPIFFEFederationService) GetSPIFFEFederation(
+ ctx context.Context, name string,
+) (*machineidv1.SPIFFEFederation, error) {
+ federation, err := b.service.GetResource(ctx, name)
+ return federation, trace.Wrap(err)
+}
+
+// ListSPIFFEFederations lists all SPIFFEFederations using a given page size
+// and last key.
+func (b *SPIFFEFederationService) ListSPIFFEFederations(
+ ctx context.Context, pageSize int, currentToken string,
+) ([]*machineidv1.SPIFFEFederation, string, error) {
+ r, nextToken, err := b.service.ListResources(ctx, pageSize, currentToken)
+ return r, nextToken, trace.Wrap(err)
+}
+
+// DeleteSPIFFEFederation deletes a specific SPIFFEFederations.
+func (b *SPIFFEFederationService) DeleteSPIFFEFederation(
+ ctx context.Context, name string,
+) error {
+ return trace.Wrap(b.service.DeleteResource(ctx, name))
+}
+
+// DeleteAllSPIFFEFederations deletes all SPIFFE federations, this is typically
+// only meant to be used by the cache.
+func (b *SPIFFEFederationService) DeleteAllSPIFFEFederations(
+ ctx context.Context,
+) error {
+ return trace.Wrap(b.service.DeleteAllResources(ctx))
+}
+
+// UpsertSPIFFEFederation upserts a SPIFFEFederations. Prefer using
+// CreateSPIFFEFederation. This is only designed for usage by the cache.
+func (b *SPIFFEFederationService) UpsertSPIFFEFederation(
+ ctx context.Context, federation *machineidv1.SPIFFEFederation,
+) (*machineidv1.SPIFFEFederation, error) {
+ if err := services.ValidateSPIFFEFederation(federation); err != nil {
+ return nil, trace.Wrap(err)
+ }
+ upserted, err := b.service.UpsertResource(ctx, federation)
+ return upserted, trace.Wrap(err)
+}
diff --git a/lib/services/presets.go b/lib/services/presets.go
index b24c51af4d3dc..bbb2bb5abc696 100644
--- a/lib/services/presets.go
+++ b/lib/services/presets.go
@@ -178,6 +178,7 @@ func NewPresetEditorRole() types.Role {
types.NewRule(types.KindVnetConfig, RW()),
types.NewRule(types.KindBotInstance, RW()),
types.NewRule(types.KindAccessGraphSettings, RW()),
+ types.NewRule(types.KindSPIFFEFederation, RW()),
},
},
},
diff --git a/lib/services/role.go b/lib/services/role.go
index 8c760d56e98e6..5ed07c9e61b85 100644
--- a/lib/services/role.go
+++ b/lib/services/role.go
@@ -76,6 +76,7 @@ var DefaultImplicitRules = []types.Rule{
types.NewRule(types.KindKubernetesCluster, RO()),
types.NewRule(types.KindUsageEvent, []string{types.VerbCreate}),
types.NewRule(types.KindVnetConfig, RO()),
+ types.NewRule(types.KindSPIFFEFederation, RO()),
}
// DefaultCertAuthorityRules provides access the minimal set of resources
diff --git a/lib/services/spiffe_federation.go b/lib/services/spiffe_federation.go
new file mode 100644
index 0000000000000..05a4e2554494f
--- /dev/null
+++ b/lib/services/spiffe_federation.go
@@ -0,0 +1,111 @@
+// 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 services
+
+import (
+ "context"
+ "net/url"
+ "strings"
+
+ "github.com/gravitational/trace"
+ "github.com/spiffe/go-spiffe/v2/bundle/spiffebundle"
+ "github.com/spiffe/go-spiffe/v2/spiffeid"
+
+ machineidv1 "github.com/gravitational/teleport/api/gen/proto/go/teleport/machineid/v1"
+ "github.com/gravitational/teleport/api/types"
+)
+
+// SPIFFEFederations is an interface for the SPIFFEFederations service.
+type SPIFFEFederations interface {
+ // GetSPIFFEFederation gets a SPIFFE Federation by name.
+ GetSPIFFEFederation(ctx context.Context, name string) (*machineidv1.SPIFFEFederation, error)
+ // ListSPIFFEFederations lists all SPIFFE Federations using Google style
+ // pagination.
+ ListSPIFFEFederations(ctx context.Context, pageSize int, lastToken string) ([]*machineidv1.SPIFFEFederation, string, error)
+ // CreateSPIFFEFederation creates a new SPIFFE Federation.
+ CreateSPIFFEFederation(ctx context.Context, spiffeFederation *machineidv1.SPIFFEFederation) (*machineidv1.SPIFFEFederation, error)
+ // DeleteSPIFFEFederation deletes a SPIFFE Federation by name.
+ DeleteSPIFFEFederation(ctx context.Context, name string) error
+}
+
+// MarshalSPIFFEFederation marshals the SPIFFEFederations object into a JSON byte array.
+func MarshalSPIFFEFederation(object *machineidv1.SPIFFEFederation, opts ...MarshalOption) ([]byte, error) {
+ object.Version = types.V1
+ object.Kind = types.KindSPIFFEFederation
+ return MarshalProtoResource(object, opts...)
+}
+
+// UnmarshalSPIFFEFederation unmarshals the SPIFFEFederations object from a JSON byte array.
+func UnmarshalSPIFFEFederation(data []byte, opts ...MarshalOption) (*machineidv1.SPIFFEFederation, error) {
+ return UnmarshalProtoResource[*machineidv1.SPIFFEFederation](data, opts...)
+}
+
+// ValidateSPIFFEFederation validates the SPIFFEFederations object.
+func ValidateSPIFFEFederation(s *machineidv1.SPIFFEFederation) error {
+ switch {
+ case s == nil:
+ return trace.BadParameter("object cannot be nil")
+ case s.Metadata.Name == "":
+ return trace.BadParameter("metadata.name: is required")
+ case s.Spec == nil:
+ return trace.BadParameter("spec: is required")
+ case s.Spec.BundleSource == nil:
+ return trace.BadParameter("spec.bundle_source: is required")
+ case s.Spec.BundleSource.HttpsWeb != nil && s.Spec.BundleSource.Static != nil:
+ return trace.BadParameter("spec.bundle_source: at most one of https_web or static can be set")
+ case s.Spec.BundleSource.HttpsWeb == nil && s.Spec.BundleSource.Static == nil:
+ return trace.BadParameter("spec.bundle_source: at least one of https_web or static must be set")
+ }
+
+ // Validate name is valid SPIFFE Trust Domain name without the "spiffe://"
+ name := s.Metadata.Name
+ if strings.HasPrefix(name, "spiffe://") {
+ return trace.BadParameter("metadata.name: must not include the spiffe:// prefix")
+ }
+ td, err := spiffeid.TrustDomainFromString(name)
+ if err != nil {
+ return trace.Wrap(err, "validating metadata.name")
+ }
+
+ // Validate Static
+ if s.Spec.BundleSource.Static != nil {
+ if s.Spec.BundleSource.Static.Bundle == "" {
+ return trace.BadParameter("spec.bundle_source.static.bundle: is required")
+ }
+ // Validate contents
+ // TODO(noah): Is this a bit intense to run on every validation?
+ // This could easily be moved into reconciliation...
+ _, err := spiffebundle.Parse(td, []byte(s.Spec.BundleSource.Static.Bundle))
+ if err != nil {
+ return trace.Wrap(err, "validating spec.bundle_source.static.bundle")
+ }
+ }
+
+ // Validate HTTPSWeb
+ if s.Spec.BundleSource.HttpsWeb != nil {
+ if s.Spec.BundleSource.HttpsWeb.BundleEndpointUrl == "" {
+ return trace.BadParameter("spec.bundle_source.https_web.bundle_endpoint_url: is required")
+ }
+ _, err := url.Parse(s.Spec.BundleSource.HttpsWeb.BundleEndpointUrl)
+ if err != nil {
+ return trace.Wrap(err, "validating spec.bundle_source.https_web.bundle_endpoint_url")
+ }
+ // TODO: Enforce HTTPS??
+ }
+
+ return nil
+}