From b0386b0e0838b4bfdadda680370513132801af56 Mon Sep 17 00:00:00 2001 From: Kevin Su Date: Fri, 10 Apr 2026 10:53:29 -0700 Subject: [PATCH] Revert "[V2] Dataproxy support CreateDownloadLink (#7191)" This reverts commit 82ae70b0b9efabc5dd3a2d7cbdbb2f6dab91eaec. --- dataproxy/service/dataproxy_service.go | 110 +- dataproxy/service/dataproxy_service_test.go | 8 +- dataproxy/setup.go | 4 +- flyteidl2/dataproxy/dataproxy_service.proto | 57 - .../dataproxy/dataproxy_service.pb.go | 528 ++------- .../dataproxy_service.pb.validate.go | 439 -------- .../dataproxy/dataproxy_service_grpc.pb.go | 39 - .../dataproxy_service.connect.go | 32 - .../dataproxy/dataproxy_service.pb.gw.go | 170 --- .../dataproxy/dataproxy_service.swagger.json | 152 --- .../dataproxy/dataproxy_service_connect.py | 65 -- .../dataproxy/dataproxy_service_pb2.py | 20 +- .../dataproxy/dataproxy_service_pb2.pyi | 34 +- .../dataproxy/dataproxy_service_pb2_grpc.py | 34 - gen/rust/src/flyteidl2.dataproxy.rs | 1003 ++++++----------- gen/rust/src/flyteidl2.dataproxy.tonic.rs | 86 -- .../dataproxy/dataproxy_service_pb.ts | 138 +-- 17 files changed, 470 insertions(+), 2449 deletions(-) diff --git a/dataproxy/service/dataproxy_service.go b/dataproxy/service/dataproxy_service.go index 208f3da76a..12705704af 100644 --- a/dataproxy/service/dataproxy_service.go +++ b/dataproxy/service/dataproxy_service.go @@ -28,8 +28,6 @@ import ( "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/task/taskconnect" "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/trigger" "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/trigger/triggerconnect" - workflowpb "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/workflow" - "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/workflow/workflowconnect" ) type Service struct { @@ -39,17 +37,15 @@ type Service struct { dataStore *storage.DataStore taskClient taskconnect.TaskServiceClient triggerClient triggerconnect.TriggerServiceClient - runClient workflowconnect.RunServiceClient } // NewService creates a new DataProxyService instance. -func NewService(cfg config.DataProxyConfig, dataStore *storage.DataStore, taskClient taskconnect.TaskServiceClient, triggerClient triggerconnect.TriggerServiceClient, runClient workflowconnect.RunServiceClient) *Service { +func NewService(cfg config.DataProxyConfig, dataStore *storage.DataStore, taskClient taskconnect.TaskServiceClient, triggerClient triggerconnect.TriggerServiceClient) *Service { return &Service{ cfg: cfg, dataStore: dataStore, taskClient: taskClient, triggerClient: triggerClient, - runClient: runClient, } } @@ -274,110 +270,6 @@ func (s *Service) UploadInputs( }), nil } -// CreateDownloadLink generates signed URL(s) for downloading an artifact associated with a run action. -func (s *Service) CreateDownloadLink( - ctx context.Context, - req *connect.Request[dataproxy.CreateDownloadLinkRequest], -) (*connect.Response[dataproxy.CreateDownloadLinkResponse], error) { - logger.Infof(ctx, "CreateDownloadLink request received") - - if err := req.Msg.Validate(); err != nil { - logger.Errorf(ctx, "Invalid CreateDownloadLink request: %v", err) - return nil, connect.NewError(connect.CodeInvalidArgument, err) - } - - if req.Msg.GetArtifactType() == dataproxy.ArtifactType_ARTIFACT_TYPE_UNSPECIFIED { - return nil, connect.NewError(connect.CodeInvalidArgument, - fmt.Errorf("artifact_type is required")) - } - - // Set expires_in to default if not provided in request - if req.Msg.GetExpiresIn() == nil { - req.Msg.ExpiresIn = durationpb.New(s.cfg.Download.MaxExpiresIn.Duration) - } - expiresIn := req.Msg.GetExpiresIn().AsDuration() - - nativeURL, err := s.resolveArtifactURL(ctx, req.Msg) - if err != nil { - return nil, err - } - - ref := storage.DataReference(nativeURL) - meta, err := s.dataStore.Head(ctx, ref) - if err != nil { - logger.Errorf(ctx, "Failed to head artifact at [%s]: %v", nativeURL, err) - return nil, connect.NewError(connect.CodeInternal, - fmt.Errorf("failed to check artifact existence: %w", err)) - } - if !meta.Exists() { - return nil, connect.NewError(connect.CodeNotFound, - fmt.Errorf("artifact not found at [%s]", nativeURL)) - } - - signedResp, err := s.dataStore.CreateSignedURL(ctx, ref, storage.SignedURLProperties{ - Scope: stow.ClientMethodGet, - ExpiresIn: expiresIn, - }) - if err != nil { - logger.Errorf(ctx, "Failed to create signed URL for [%s]: %v", nativeURL, err) - return nil, connect.NewError(connect.CodeInternal, - fmt.Errorf("failed to create signed URL: %w", err)) - } - - expiresAt := timestamppb.New(time.Now().Add(expiresIn)) - return connect.NewResponse(&dataproxy.CreateDownloadLinkResponse{ - PreSignedUrls: &dataproxy.PreSignedURLs{ - SignedUrl: []string{signedResp.URL.String()}, - ExpiresAt: expiresAt, - }, - }), nil -} - -// resolveArtifactURL resolves the native storage URL for the requested artifact type and source. -func (s *Service) resolveArtifactURL(ctx context.Context, req *dataproxy.CreateDownloadLinkRequest) (string, error) { - attemptIDEnvelope, ok := req.GetSource().(*dataproxy.CreateDownloadLinkRequest_ActionAttemptId) - if !ok { - return "", connect.NewError(connect.CodeInvalidArgument, - fmt.Errorf("unsupported source type")) - } - - attemptID := attemptIDEnvelope.ActionAttemptId - actionResp, err := s.runClient.GetActionDetails(ctx, connect.NewRequest(&workflowpb.GetActionDetailsRequest{ - ActionId: attemptID.GetActionId(), - })) - if err != nil { - logger.Errorf(ctx, "Failed to get action details for %v: %v", attemptID.GetActionId(), err) - return "", connect.NewError(connect.CodeNotFound, - fmt.Errorf("failed to get action details: %w", err)) - } - - // Find the matching attempt by attempt number. - var matchedAttempt *workflowpb.ActionAttempt - for _, attempt := range actionResp.Msg.GetDetails().GetAttempts() { - if attempt.GetAttempt() == attemptID.GetAttempt() { - matchedAttempt = attempt - break - } - } - if matchedAttempt == nil { - return "", connect.NewError(connect.CodeNotFound, - fmt.Errorf("attempt %d not found for action [%v]", attemptID.GetAttempt(), attemptID.GetActionId())) - } - - switch req.GetArtifactType() { - case dataproxy.ArtifactType_ARTIFACT_TYPE_REPORT: - reportURI := matchedAttempt.GetOutputs().GetReportUri() - if reportURI == "" { - return "", connect.NewError(connect.CodeNotFound, - fmt.Errorf("no report URI found for action [%v] attempt %d", attemptID.GetActionId(), attemptID.GetAttempt())) - } - return reportURI, nil - default: - return "", connect.NewError(connect.CodeInvalidArgument, - fmt.Errorf("unsupported artifact type: %v", req.GetArtifactType())) - } -} - // resolveTaskTemplate resolves the task template from the request's task oneof. func (s *Service) resolveTaskTemplate(ctx context.Context, req *dataproxy.UploadInputsRequest) (*flyteIdlCore.TaskTemplate, error) { switch t := req.Task.(type) { diff --git a/dataproxy/service/dataproxy_service_test.go b/dataproxy/service/dataproxy_service_test.go index 1ea5a4505a..f2661e5db2 100644 --- a/dataproxy/service/dataproxy_service_test.go +++ b/dataproxy/service/dataproxy_service_test.go @@ -97,7 +97,7 @@ func TestCreateUploadLocation(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { mockStore := setupMockDataStore(t) - service := NewService(cfg, mockStore, nil, nil, nil) + service := NewService(cfg, mockStore, nil, nil) req := &connect.Request[dataproxy.CreateUploadLocationRequest]{ Msg: tt.req, @@ -218,7 +218,7 @@ func TestCheckFileExists(t *testing.T) { mockStore = setupMockDataStoreWithExistingFile(t, tt.existingFileMD5) } - service := NewService(cfg, mockStore, nil, nil, nil) + service := NewService(cfg, mockStore, nil, nil) storagePath := storage.DataReference("s3://test-bucket/uploads/test-project/test-domain/test-root/test-file.txt") err := service.checkFileExists(ctx, storagePath, tt.req) @@ -296,7 +296,7 @@ func TestConstructStoragePath(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { mockStore := setupMockDataStore(t) - service := NewService(cfg, mockStore, nil, nil, nil) + service := NewService(cfg, mockStore, nil, nil) path, err := service.constructStoragePath(ctx, tt.req) @@ -453,7 +453,7 @@ func TestUploadInputs(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { mockStore := setupMockDataStoreWithWriteProtobuf(t) - svc := NewService(cfg, mockStore, nil, nil, nil) + svc := NewService(cfg, mockStore, nil, nil) req := &connect.Request[dataproxy.UploadInputsRequest]{ Msg: tt.req, diff --git a/dataproxy/setup.go b/dataproxy/setup.go index cc44acaede..9f932bcd46 100644 --- a/dataproxy/setup.go +++ b/dataproxy/setup.go @@ -12,7 +12,6 @@ import ( "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/dataproxy/dataproxyconnect" "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/task/taskconnect" "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/trigger/triggerconnect" - "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/workflow/workflowconnect" "github.com/flyteorg/flyte/v2/flytestdlib/logger" ) @@ -25,9 +24,8 @@ func Setup(ctx context.Context, sc *app.SetupContext) error { baseURL := sc.BaseURL taskClient := taskconnect.NewTaskServiceClient(http.DefaultClient, baseURL) triggerClient := triggerconnect.NewTriggerServiceClient(http.DefaultClient, baseURL) - runClient := workflowconnect.NewRunServiceClient(http.DefaultClient, baseURL) - svc := service.NewService(*cfg, sc.DataStore, taskClient, triggerClient, runClient) + svc := service.NewService(*cfg, sc.DataStore, taskClient, triggerClient) path, handler := dataproxyconnect.NewDataProxyServiceHandler(svc) sc.Mux.Handle(path, handler) diff --git a/flyteidl2/dataproxy/dataproxy_service.proto b/flyteidl2/dataproxy/dataproxy_service.proto index 53c5be85de..e8295be029 100644 --- a/flyteidl2/dataproxy/dataproxy_service.proto +++ b/flyteidl2/dataproxy/dataproxy_service.proto @@ -14,13 +14,6 @@ import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "github.com/flyteorg/flyte/v2/gen/go/flyteidl2/dataproxy"; -// ArtifactType defines the type of artifact to be downloaded. -enum ArtifactType { - ARTIFACT_TYPE_UNSPECIFIED = 0; - // ARTIFACT_TYPE_REPORT refers to the HTML report file optionally generated after a task finishes executing. - ARTIFACT_TYPE_REPORT = 1; -} - // DataProxyService provides an interface for managing data uploads and downloads. service DataProxyService { // CreateUploadLocation generates a signed URL for uploading data to the configured storage backend. @@ -47,19 +40,6 @@ service DataProxyService { }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {description: "Uploads inputs for a given run or project and returns a URI and cache key that can be used to reference these inputs at runtime."}; } - - // CreateDownloadLink generates signed URL(s) for downloading a given artifact. - rpc CreateDownloadLink(CreateDownloadLinkRequest) returns (CreateDownloadLinkResponse) { - option (google.api.http) = { - post: "/api/v1/dataproxy/artifact_urn/download" - body: "*" - additional_bindings: { - post: "/api/v1/org/dataproxy/artifact_urn/download" - body: "*" - } - }; - option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {description: "Creates signed URL(s) for downloading an artifact associated with a run action."}; - } } // CreateUploadLocationRequest specifies the request for the CreateUploadLocation API. @@ -160,40 +140,3 @@ message UploadInputsRequest { message UploadInputsResponse { common.OffloadedInputData offloaded_input_data = 1; } - -// PreSignedURLs contains a list of signed URLs for downloading artifacts. -message PreSignedURLs { - // SignedUrl are the pre-signed URLs for downloading the artifact. - repeated string signed_url = 1; - - // ExpiresAt defines when the signed URLs will expire. - google.protobuf.Timestamp expires_at = 2; -} - -// CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API. -message CreateDownloadLinkRequest { - // ArtifactType is the type of artifact to download. - // +required - ArtifactType artifact_type = 1 [(buf.validate.field).enum = { - not_in: [0] - }]; - - // Source identifies the action attempt whose artifact is to be downloaded. - oneof source { - option (buf.validate.oneof).required = true; - - // ActionAttemptId identifies the specific attempt of a run action that produced the artifact. - common.ActionAttemptIdentifier action_attempt_id = 2; - } - - // ExpiresIn defines the requested expiration duration for the generated URLs. The request will be - // rejected if this exceeds the platform's configured maximum. - // +optional. The default value comes from the global config. - google.protobuf.Duration expires_in = 3; -} - -// CreateDownloadLinkResponse specifies the response for the CreateDownloadLink API. -message CreateDownloadLinkResponse { - // PreSignedUrls contains the signed URLs and their expiration time. - PreSignedURLs pre_signed_urls = 1; -} diff --git a/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.go b/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.go index ab2a11e9b5..d7c2a2d754 100644 --- a/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.go +++ b/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.go @@ -27,54 +27,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// ArtifactType defines the type of artifact to be downloaded. -type ArtifactType int32 - -const ( - ArtifactType_ARTIFACT_TYPE_UNSPECIFIED ArtifactType = 0 - // ARTIFACT_TYPE_REPORT refers to the HTML report file optionally generated after a task finishes executing. - ArtifactType_ARTIFACT_TYPE_REPORT ArtifactType = 1 -) - -// Enum value maps for ArtifactType. -var ( - ArtifactType_name = map[int32]string{ - 0: "ARTIFACT_TYPE_UNSPECIFIED", - 1: "ARTIFACT_TYPE_REPORT", - } - ArtifactType_value = map[string]int32{ - "ARTIFACT_TYPE_UNSPECIFIED": 0, - "ARTIFACT_TYPE_REPORT": 1, - } -) - -func (x ArtifactType) Enum() *ArtifactType { - p := new(ArtifactType) - *p = x - return p -} - -func (x ArtifactType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ArtifactType) Descriptor() protoreflect.EnumDescriptor { - return file_flyteidl2_dataproxy_dataproxy_service_proto_enumTypes[0].Descriptor() -} - -func (ArtifactType) Type() protoreflect.EnumType { - return &file_flyteidl2_dataproxy_dataproxy_service_proto_enumTypes[0] -} - -func (x ArtifactType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ArtifactType.Descriptor instead. -func (ArtifactType) EnumDescriptor() ([]byte, []int) { - return file_flyteidl2_dataproxy_dataproxy_service_proto_rawDescGZIP(), []int{0} -} - // CreateUploadLocationRequest specifies the request for the CreateUploadLocation API. // The data proxy service will generate a storage location with server-side configured prefixes. // The generated path follows one of these patterns: @@ -493,205 +445,6 @@ func (x *UploadInputsResponse) GetOffloadedInputData() *common.OffloadedInputDat return nil } -// PreSignedURLs contains a list of signed URLs for downloading artifacts. -type PreSignedURLs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // SignedUrl are the pre-signed URLs for downloading the artifact. - SignedUrl []string `protobuf:"bytes,1,rep,name=signed_url,json=signedUrl,proto3" json:"signed_url,omitempty"` - // ExpiresAt defines when the signed URLs will expire. - ExpiresAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expires_at,json=expiresAt,proto3" json:"expires_at,omitempty"` -} - -func (x *PreSignedURLs) Reset() { - *x = PreSignedURLs{} - if protoimpl.UnsafeEnabled { - mi := &file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PreSignedURLs) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PreSignedURLs) ProtoMessage() {} - -func (x *PreSignedURLs) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl2_dataproxy_dataproxy_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 PreSignedURLs.ProtoReflect.Descriptor instead. -func (*PreSignedURLs) Descriptor() ([]byte, []int) { - return file_flyteidl2_dataproxy_dataproxy_service_proto_rawDescGZIP(), []int{4} -} - -func (x *PreSignedURLs) GetSignedUrl() []string { - if x != nil { - return x.SignedUrl - } - return nil -} - -func (x *PreSignedURLs) GetExpiresAt() *timestamppb.Timestamp { - if x != nil { - return x.ExpiresAt - } - return nil -} - -// CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API. -type CreateDownloadLinkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // ArtifactType is the type of artifact to download. - // +required - ArtifactType ArtifactType `protobuf:"varint,1,opt,name=artifact_type,json=artifactType,proto3,enum=flyteidl2.dataproxy.ArtifactType" json:"artifact_type,omitempty"` - // Source identifies the action attempt whose artifact is to be downloaded. - // - // Types that are assignable to Source: - // - // *CreateDownloadLinkRequest_ActionAttemptId - Source isCreateDownloadLinkRequest_Source `protobuf_oneof:"source"` - // ExpiresIn defines the requested expiration duration for the generated URLs. The request will be - // rejected if this exceeds the platform's configured maximum. - // +optional. The default value comes from the global config. - ExpiresIn *durationpb.Duration `protobuf:"bytes,3,opt,name=expires_in,json=expiresIn,proto3" json:"expires_in,omitempty"` -} - -func (x *CreateDownloadLinkRequest) Reset() { - *x = CreateDownloadLinkRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateDownloadLinkRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateDownloadLinkRequest) ProtoMessage() {} - -func (x *CreateDownloadLinkRequest) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl2_dataproxy_dataproxy_service_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 CreateDownloadLinkRequest.ProtoReflect.Descriptor instead. -func (*CreateDownloadLinkRequest) Descriptor() ([]byte, []int) { - return file_flyteidl2_dataproxy_dataproxy_service_proto_rawDescGZIP(), []int{5} -} - -func (x *CreateDownloadLinkRequest) GetArtifactType() ArtifactType { - if x != nil { - return x.ArtifactType - } - return ArtifactType_ARTIFACT_TYPE_UNSPECIFIED -} - -func (m *CreateDownloadLinkRequest) GetSource() isCreateDownloadLinkRequest_Source { - if m != nil { - return m.Source - } - return nil -} - -func (x *CreateDownloadLinkRequest) GetActionAttemptId() *common.ActionAttemptIdentifier { - if x, ok := x.GetSource().(*CreateDownloadLinkRequest_ActionAttemptId); ok { - return x.ActionAttemptId - } - return nil -} - -func (x *CreateDownloadLinkRequest) GetExpiresIn() *durationpb.Duration { - if x != nil { - return x.ExpiresIn - } - return nil -} - -type isCreateDownloadLinkRequest_Source interface { - isCreateDownloadLinkRequest_Source() -} - -type CreateDownloadLinkRequest_ActionAttemptId struct { - // ActionAttemptId identifies the specific attempt of a run action that produced the artifact. - ActionAttemptId *common.ActionAttemptIdentifier `protobuf:"bytes,2,opt,name=action_attempt_id,json=actionAttemptId,proto3,oneof"` -} - -func (*CreateDownloadLinkRequest_ActionAttemptId) isCreateDownloadLinkRequest_Source() {} - -// CreateDownloadLinkResponse specifies the response for the CreateDownloadLink API. -type CreateDownloadLinkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // PreSignedUrls contains the signed URLs and their expiration time. - PreSignedUrls *PreSignedURLs `protobuf:"bytes,1,opt,name=pre_signed_urls,json=preSignedUrls,proto3" json:"pre_signed_urls,omitempty"` -} - -func (x *CreateDownloadLinkResponse) Reset() { - *x = CreateDownloadLinkResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateDownloadLinkResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateDownloadLinkResponse) ProtoMessage() {} - -func (x *CreateDownloadLinkResponse) ProtoReflect() protoreflect.Message { - mi := &file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[6] - 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 CreateDownloadLinkResponse.ProtoReflect.Descriptor instead. -func (*CreateDownloadLinkResponse) Descriptor() ([]byte, []int) { - return file_flyteidl2_dataproxy_dataproxy_service_proto_rawDescGZIP(), []int{6} -} - -func (x *CreateDownloadLinkResponse) GetPreSignedUrls() *PreSignedURLs { - if x != nil { - return x.PreSignedUrls - } - return nil -} - var File_flyteidl2_dataproxy_dataproxy_service_proto protoreflect.FileDescriptor var file_flyteidl2_dataproxy_dataproxy_service_proto_rawDesc = []byte{ @@ -793,114 +546,60 @@ var file_flyteidl2_dataproxy_dataproxy_service_proto_rawDesc = []byte{ 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, - 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x69, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x53, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 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, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, - 0x41, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xba, 0x48, 0x05, 0x82, - 0x01, 0x02, 0x20, 0x00, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x74, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0a, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 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, 0x09, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x0f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, - 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0x68, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, - 0x73, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x73, - 0x2a, 0x47, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x18, 0x0a, 0x14, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x32, 0x9e, 0x07, 0x0a, 0x10, 0x44, 0x61, - 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa0, - 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x32, 0xeb, 0x04, 0x0a, 0x10, 0x44, 0x61, 0x74, 0x61, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa0, 0x02, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, + 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x66, 0x6c, 0x79, 0x74, - 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x92, - 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x77, 0x72, - 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x3a, 0x01, 0x2a, 0x5a, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, 0x92, 0x41, 0x4d, + 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4c, 0x3a, 0x01, 0x2a, 0x5a, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x22, + 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x12, + 0xb3, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x66, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x92, 0x41, 0x83, 0x01, 0x1a, 0x80, 0x01, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x6f, 0x72, + 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, 0x65, 0x74, + 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x55, 0x52, 0x49, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, - 0x6e, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, - 0x6e, 0x12, 0xb3, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x73, 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x92, 0x41, 0x83, 0x01, 0x1a, 0x80, - 0x01, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6e, 0x20, - 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x55, 0x52, 0x49, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x63, 0x61, 0x63, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, - 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x3a, 0x01, 0x2a, 0x22, - 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0x18, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0xb0, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x2e, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, - 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xb8, 0x01, 0x92, 0x41, 0x51, 0x1a, 0x4f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x28, 0x73, 0x29, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x6e, 0x20, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x3a, 0x01, 0x2a, 0x5a, - 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, - 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, - 0x6e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0xd8, 0x01, 0x0a, 0x17, 0x63, - 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x15, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x02, 0x50, - 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, - 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x76, 0x32, 0x2f, - 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, - 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xa2, 0x02, 0x03, 0x46, 0x44, 0x58, - 0xaa, 0x02, 0x13, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xca, 0x02, 0x13, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, - 0x6c, 0x32, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xe2, 0x02, 0x1f, 0x46, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x14, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0x18, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0xd8, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x42, 0x15, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x02, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, + 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, + 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0xa2, 0x02, 0x03, 0x46, 0x44, 0x58, 0xaa, 0x02, 0x13, 0x46, 0x6c, + 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0xca, 0x02, 0x13, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x5c, 0x44, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xe2, 0x02, 0x1f, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, + 0x64, 0x6c, 0x32, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x46, 0x6c, 0x79, 0x74, + 0x65, 0x69, 0x64, 0x6c, 0x32, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -915,56 +614,43 @@ func file_flyteidl2_dataproxy_dataproxy_service_proto_rawDescGZIP() []byte { return file_flyteidl2_dataproxy_dataproxy_service_proto_rawDescData } -var file_flyteidl2_dataproxy_dataproxy_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_flyteidl2_dataproxy_dataproxy_service_proto_goTypes = []interface{}{ - (ArtifactType)(0), // 0: flyteidl2.dataproxy.ArtifactType - (*CreateUploadLocationRequest)(nil), // 1: flyteidl2.dataproxy.CreateUploadLocationRequest - (*CreateUploadLocationResponse)(nil), // 2: flyteidl2.dataproxy.CreateUploadLocationResponse - (*UploadInputsRequest)(nil), // 3: flyteidl2.dataproxy.UploadInputsRequest - (*UploadInputsResponse)(nil), // 4: flyteidl2.dataproxy.UploadInputsResponse - (*PreSignedURLs)(nil), // 5: flyteidl2.dataproxy.PreSignedURLs - (*CreateDownloadLinkRequest)(nil), // 6: flyteidl2.dataproxy.CreateDownloadLinkRequest - (*CreateDownloadLinkResponse)(nil), // 7: flyteidl2.dataproxy.CreateDownloadLinkResponse - nil, // 8: flyteidl2.dataproxy.CreateUploadLocationResponse.HeadersEntry - (*durationpb.Duration)(nil), // 9: google.protobuf.Duration - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp - (*common.RunIdentifier)(nil), // 11: flyteidl2.common.RunIdentifier - (*common.ProjectIdentifier)(nil), // 12: flyteidl2.common.ProjectIdentifier - (*task.TaskIdentifier)(nil), // 13: flyteidl2.task.TaskIdentifier - (*task.TaskSpec)(nil), // 14: flyteidl2.task.TaskSpec - (*common.TriggerName)(nil), // 15: flyteidl2.common.TriggerName - (*task.Inputs)(nil), // 16: flyteidl2.task.Inputs - (*common.OffloadedInputData)(nil), // 17: flyteidl2.common.OffloadedInputData - (*common.ActionAttemptIdentifier)(nil), // 18: flyteidl2.common.ActionAttemptIdentifier + (*CreateUploadLocationRequest)(nil), // 0: flyteidl2.dataproxy.CreateUploadLocationRequest + (*CreateUploadLocationResponse)(nil), // 1: flyteidl2.dataproxy.CreateUploadLocationResponse + (*UploadInputsRequest)(nil), // 2: flyteidl2.dataproxy.UploadInputsRequest + (*UploadInputsResponse)(nil), // 3: flyteidl2.dataproxy.UploadInputsResponse + nil, // 4: flyteidl2.dataproxy.CreateUploadLocationResponse.HeadersEntry + (*durationpb.Duration)(nil), // 5: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp + (*common.RunIdentifier)(nil), // 7: flyteidl2.common.RunIdentifier + (*common.ProjectIdentifier)(nil), // 8: flyteidl2.common.ProjectIdentifier + (*task.TaskIdentifier)(nil), // 9: flyteidl2.task.TaskIdentifier + (*task.TaskSpec)(nil), // 10: flyteidl2.task.TaskSpec + (*common.TriggerName)(nil), // 11: flyteidl2.common.TriggerName + (*task.Inputs)(nil), // 12: flyteidl2.task.Inputs + (*common.OffloadedInputData)(nil), // 13: flyteidl2.common.OffloadedInputData } var file_flyteidl2_dataproxy_dataproxy_service_proto_depIdxs = []int32{ - 9, // 0: flyteidl2.dataproxy.CreateUploadLocationRequest.expires_in:type_name -> google.protobuf.Duration - 10, // 1: flyteidl2.dataproxy.CreateUploadLocationResponse.expires_at:type_name -> google.protobuf.Timestamp - 8, // 2: flyteidl2.dataproxy.CreateUploadLocationResponse.headers:type_name -> flyteidl2.dataproxy.CreateUploadLocationResponse.HeadersEntry - 11, // 3: flyteidl2.dataproxy.UploadInputsRequest.run_id:type_name -> flyteidl2.common.RunIdentifier - 12, // 4: flyteidl2.dataproxy.UploadInputsRequest.project_id:type_name -> flyteidl2.common.ProjectIdentifier - 13, // 5: flyteidl2.dataproxy.UploadInputsRequest.task_id:type_name -> flyteidl2.task.TaskIdentifier - 14, // 6: flyteidl2.dataproxy.UploadInputsRequest.task_spec:type_name -> flyteidl2.task.TaskSpec - 15, // 7: flyteidl2.dataproxy.UploadInputsRequest.trigger_name:type_name -> flyteidl2.common.TriggerName - 16, // 8: flyteidl2.dataproxy.UploadInputsRequest.inputs:type_name -> flyteidl2.task.Inputs - 17, // 9: flyteidl2.dataproxy.UploadInputsResponse.offloaded_input_data:type_name -> flyteidl2.common.OffloadedInputData - 10, // 10: flyteidl2.dataproxy.PreSignedURLs.expires_at:type_name -> google.protobuf.Timestamp - 0, // 11: flyteidl2.dataproxy.CreateDownloadLinkRequest.artifact_type:type_name -> flyteidl2.dataproxy.ArtifactType - 18, // 12: flyteidl2.dataproxy.CreateDownloadLinkRequest.action_attempt_id:type_name -> flyteidl2.common.ActionAttemptIdentifier - 9, // 13: flyteidl2.dataproxy.CreateDownloadLinkRequest.expires_in:type_name -> google.protobuf.Duration - 5, // 14: flyteidl2.dataproxy.CreateDownloadLinkResponse.pre_signed_urls:type_name -> flyteidl2.dataproxy.PreSignedURLs - 1, // 15: flyteidl2.dataproxy.DataProxyService.CreateUploadLocation:input_type -> flyteidl2.dataproxy.CreateUploadLocationRequest - 3, // 16: flyteidl2.dataproxy.DataProxyService.UploadInputs:input_type -> flyteidl2.dataproxy.UploadInputsRequest - 6, // 17: flyteidl2.dataproxy.DataProxyService.CreateDownloadLink:input_type -> flyteidl2.dataproxy.CreateDownloadLinkRequest - 2, // 18: flyteidl2.dataproxy.DataProxyService.CreateUploadLocation:output_type -> flyteidl2.dataproxy.CreateUploadLocationResponse - 4, // 19: flyteidl2.dataproxy.DataProxyService.UploadInputs:output_type -> flyteidl2.dataproxy.UploadInputsResponse - 7, // 20: flyteidl2.dataproxy.DataProxyService.CreateDownloadLink:output_type -> flyteidl2.dataproxy.CreateDownloadLinkResponse - 18, // [18:21] is the sub-list for method output_type - 15, // [15:18] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 5, // 0: flyteidl2.dataproxy.CreateUploadLocationRequest.expires_in:type_name -> google.protobuf.Duration + 6, // 1: flyteidl2.dataproxy.CreateUploadLocationResponse.expires_at:type_name -> google.protobuf.Timestamp + 4, // 2: flyteidl2.dataproxy.CreateUploadLocationResponse.headers:type_name -> flyteidl2.dataproxy.CreateUploadLocationResponse.HeadersEntry + 7, // 3: flyteidl2.dataproxy.UploadInputsRequest.run_id:type_name -> flyteidl2.common.RunIdentifier + 8, // 4: flyteidl2.dataproxy.UploadInputsRequest.project_id:type_name -> flyteidl2.common.ProjectIdentifier + 9, // 5: flyteidl2.dataproxy.UploadInputsRequest.task_id:type_name -> flyteidl2.task.TaskIdentifier + 10, // 6: flyteidl2.dataproxy.UploadInputsRequest.task_spec:type_name -> flyteidl2.task.TaskSpec + 11, // 7: flyteidl2.dataproxy.UploadInputsRequest.trigger_name:type_name -> flyteidl2.common.TriggerName + 12, // 8: flyteidl2.dataproxy.UploadInputsRequest.inputs:type_name -> flyteidl2.task.Inputs + 13, // 9: flyteidl2.dataproxy.UploadInputsResponse.offloaded_input_data:type_name -> flyteidl2.common.OffloadedInputData + 0, // 10: flyteidl2.dataproxy.DataProxyService.CreateUploadLocation:input_type -> flyteidl2.dataproxy.CreateUploadLocationRequest + 2, // 11: flyteidl2.dataproxy.DataProxyService.UploadInputs:input_type -> flyteidl2.dataproxy.UploadInputsRequest + 1, // 12: flyteidl2.dataproxy.DataProxyService.CreateUploadLocation:output_type -> flyteidl2.dataproxy.CreateUploadLocationResponse + 3, // 13: flyteidl2.dataproxy.DataProxyService.UploadInputs:output_type -> flyteidl2.dataproxy.UploadInputsResponse + 12, // [12:14] is the sub-list for method output_type + 10, // [10:12] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_flyteidl2_dataproxy_dataproxy_service_proto_init() } @@ -1021,42 +707,6 @@ func file_flyteidl2_dataproxy_dataproxy_service_proto_init() { return nil } } - file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PreSignedURLs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateDownloadLinkRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateDownloadLinkResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[2].OneofWrappers = []interface{}{ (*UploadInputsRequest_RunId)(nil), @@ -1065,22 +715,18 @@ func file_flyteidl2_dataproxy_dataproxy_service_proto_init() { (*UploadInputsRequest_TaskSpec)(nil), (*UploadInputsRequest_TriggerName)(nil), } - file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes[5].OneofWrappers = []interface{}{ - (*CreateDownloadLinkRequest_ActionAttemptId)(nil), - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flyteidl2_dataproxy_dataproxy_service_proto_rawDesc, - NumEnums: 1, - NumMessages: 8, + NumEnums: 0, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, GoTypes: file_flyteidl2_dataproxy_dataproxy_service_proto_goTypes, DependencyIndexes: file_flyteidl2_dataproxy_dataproxy_service_proto_depIdxs, - EnumInfos: file_flyteidl2_dataproxy_dataproxy_service_proto_enumTypes, MessageInfos: file_flyteidl2_dataproxy_dataproxy_service_proto_msgTypes, }.Build() File_flyteidl2_dataproxy_dataproxy_service_proto = out.File diff --git a/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.validate.go b/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.validate.go index fdf5e4c98a..a5b55726ad 100644 --- a/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.validate.go +++ b/gen/go/flyteidl2/dataproxy/dataproxy_service.pb.validate.go @@ -796,442 +796,3 @@ var _ interface { Cause() error ErrorName() string } = UploadInputsResponseValidationError{} - -// Validate checks the field values on PreSignedURLs with the rules defined in -// the proto definition for this message. If any rules are violated, the first -// error encountered is returned, or nil if there are no violations. -func (m *PreSignedURLs) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on PreSignedURLs with the rules defined -// in the proto definition for this message. If any rules are violated, the -// result is a list of violation errors wrapped in PreSignedURLsMultiError, or -// nil if none found. -func (m *PreSignedURLs) ValidateAll() error { - return m.validate(true) -} - -func (m *PreSignedURLs) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetExpiresAt()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, PreSignedURLsValidationError{ - field: "ExpiresAt", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, PreSignedURLsValidationError{ - field: "ExpiresAt", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetExpiresAt()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return PreSignedURLsValidationError{ - field: "ExpiresAt", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return PreSignedURLsMultiError(errors) - } - - return nil -} - -// PreSignedURLsMultiError is an error wrapping multiple validation errors -// returned by PreSignedURLs.ValidateAll() if the designated constraints -// aren't met. -type PreSignedURLsMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m PreSignedURLsMultiError) Error() string { - msgs := make([]string, 0, len(m)) - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m PreSignedURLsMultiError) AllErrors() []error { return m } - -// PreSignedURLsValidationError is the validation error returned by -// PreSignedURLs.Validate if the designated constraints aren't met. -type PreSignedURLsValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e PreSignedURLsValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e PreSignedURLsValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e PreSignedURLsValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e PreSignedURLsValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e PreSignedURLsValidationError) ErrorName() string { return "PreSignedURLsValidationError" } - -// Error satisfies the builtin error interface -func (e PreSignedURLsValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sPreSignedURLs.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = PreSignedURLsValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = PreSignedURLsValidationError{} - -// Validate checks the field values on CreateDownloadLinkRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *CreateDownloadLinkRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on CreateDownloadLinkRequest with the -// rules defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// CreateDownloadLinkRequestMultiError, or nil if none found. -func (m *CreateDownloadLinkRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *CreateDownloadLinkRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - // no validation rules for ArtifactType - - if all { - switch v := interface{}(m.GetExpiresIn()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, CreateDownloadLinkRequestValidationError{ - field: "ExpiresIn", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, CreateDownloadLinkRequestValidationError{ - field: "ExpiresIn", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetExpiresIn()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CreateDownloadLinkRequestValidationError{ - field: "ExpiresIn", - reason: "embedded message failed validation", - cause: err, - } - } - } - - switch v := m.Source.(type) { - case *CreateDownloadLinkRequest_ActionAttemptId: - if v == nil { - err := CreateDownloadLinkRequestValidationError{ - field: "Source", - reason: "oneof value cannot be a typed-nil", - } - if !all { - return err - } - errors = append(errors, err) - } - - if all { - switch v := interface{}(m.GetActionAttemptId()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, CreateDownloadLinkRequestValidationError{ - field: "ActionAttemptId", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, CreateDownloadLinkRequestValidationError{ - field: "ActionAttemptId", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetActionAttemptId()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CreateDownloadLinkRequestValidationError{ - field: "ActionAttemptId", - reason: "embedded message failed validation", - cause: err, - } - } - } - - default: - _ = v // ensures v is used - } - - if len(errors) > 0 { - return CreateDownloadLinkRequestMultiError(errors) - } - - return nil -} - -// CreateDownloadLinkRequestMultiError is an error wrapping multiple validation -// errors returned by CreateDownloadLinkRequest.ValidateAll() if the -// designated constraints aren't met. -type CreateDownloadLinkRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m CreateDownloadLinkRequestMultiError) Error() string { - msgs := make([]string, 0, len(m)) - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m CreateDownloadLinkRequestMultiError) AllErrors() []error { return m } - -// CreateDownloadLinkRequestValidationError is the validation error returned by -// CreateDownloadLinkRequest.Validate if the designated constraints aren't met. -type CreateDownloadLinkRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CreateDownloadLinkRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CreateDownloadLinkRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CreateDownloadLinkRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CreateDownloadLinkRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CreateDownloadLinkRequestValidationError) ErrorName() string { - return "CreateDownloadLinkRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e CreateDownloadLinkRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCreateDownloadLinkRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CreateDownloadLinkRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CreateDownloadLinkRequestValidationError{} - -// Validate checks the field values on CreateDownloadLinkResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *CreateDownloadLinkResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on CreateDownloadLinkResponse with the -// rules defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// CreateDownloadLinkResponseMultiError, or nil if none found. -func (m *CreateDownloadLinkResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *CreateDownloadLinkResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - if all { - switch v := interface{}(m.GetPreSignedUrls()).(type) { - case interface{ ValidateAll() error }: - if err := v.ValidateAll(); err != nil { - errors = append(errors, CreateDownloadLinkResponseValidationError{ - field: "PreSignedUrls", - reason: "embedded message failed validation", - cause: err, - }) - } - case interface{ Validate() error }: - if err := v.Validate(); err != nil { - errors = append(errors, CreateDownloadLinkResponseValidationError{ - field: "PreSignedUrls", - reason: "embedded message failed validation", - cause: err, - }) - } - } - } else if v, ok := interface{}(m.GetPreSignedUrls()).(interface{ Validate() error }); ok { - if err := v.Validate(); err != nil { - return CreateDownloadLinkResponseValidationError{ - field: "PreSignedUrls", - reason: "embedded message failed validation", - cause: err, - } - } - } - - if len(errors) > 0 { - return CreateDownloadLinkResponseMultiError(errors) - } - - return nil -} - -// CreateDownloadLinkResponseMultiError is an error wrapping multiple -// validation errors returned by CreateDownloadLinkResponse.ValidateAll() if -// the designated constraints aren't met. -type CreateDownloadLinkResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m CreateDownloadLinkResponseMultiError) Error() string { - msgs := make([]string, 0, len(m)) - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m CreateDownloadLinkResponseMultiError) AllErrors() []error { return m } - -// CreateDownloadLinkResponseValidationError is the validation error returned -// by CreateDownloadLinkResponse.Validate if the designated constraints aren't met. -type CreateDownloadLinkResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CreateDownloadLinkResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CreateDownloadLinkResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CreateDownloadLinkResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CreateDownloadLinkResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CreateDownloadLinkResponseValidationError) ErrorName() string { - return "CreateDownloadLinkResponseValidationError" -} - -// Error satisfies the builtin error interface -func (e CreateDownloadLinkResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCreateDownloadLinkResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CreateDownloadLinkResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CreateDownloadLinkResponseValidationError{} diff --git a/gen/go/flyteidl2/dataproxy/dataproxy_service_grpc.pb.go b/gen/go/flyteidl2/dataproxy/dataproxy_service_grpc.pb.go index c7757bc0f2..6873fce640 100644 --- a/gen/go/flyteidl2/dataproxy/dataproxy_service_grpc.pb.go +++ b/gen/go/flyteidl2/dataproxy/dataproxy_service_grpc.pb.go @@ -21,7 +21,6 @@ const _ = grpc.SupportPackageIsVersion7 const ( DataProxyService_CreateUploadLocation_FullMethodName = "/flyteidl2.dataproxy.DataProxyService/CreateUploadLocation" DataProxyService_UploadInputs_FullMethodName = "/flyteidl2.dataproxy.DataProxyService/UploadInputs" - DataProxyService_CreateDownloadLink_FullMethodName = "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink" ) // DataProxyServiceClient is the client API for DataProxyService service. @@ -31,8 +30,6 @@ type DataProxyServiceClient interface { // CreateUploadLocation generates a signed URL for uploading data to the configured storage backend. CreateUploadLocation(ctx context.Context, in *CreateUploadLocationRequest, opts ...grpc.CallOption) (*CreateUploadLocationResponse, error) UploadInputs(ctx context.Context, in *UploadInputsRequest, opts ...grpc.CallOption) (*UploadInputsResponse, error) - // CreateDownloadLink generates signed URL(s) for downloading a given artifact. - CreateDownloadLink(ctx context.Context, in *CreateDownloadLinkRequest, opts ...grpc.CallOption) (*CreateDownloadLinkResponse, error) } type dataProxyServiceClient struct { @@ -61,15 +58,6 @@ func (c *dataProxyServiceClient) UploadInputs(ctx context.Context, in *UploadInp return out, nil } -func (c *dataProxyServiceClient) CreateDownloadLink(ctx context.Context, in *CreateDownloadLinkRequest, opts ...grpc.CallOption) (*CreateDownloadLinkResponse, error) { - out := new(CreateDownloadLinkResponse) - err := c.cc.Invoke(ctx, DataProxyService_CreateDownloadLink_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // DataProxyServiceServer is the server API for DataProxyService service. // All implementations should embed UnimplementedDataProxyServiceServer // for forward compatibility @@ -77,8 +65,6 @@ type DataProxyServiceServer interface { // CreateUploadLocation generates a signed URL for uploading data to the configured storage backend. CreateUploadLocation(context.Context, *CreateUploadLocationRequest) (*CreateUploadLocationResponse, error) UploadInputs(context.Context, *UploadInputsRequest) (*UploadInputsResponse, error) - // CreateDownloadLink generates signed URL(s) for downloading a given artifact. - CreateDownloadLink(context.Context, *CreateDownloadLinkRequest) (*CreateDownloadLinkResponse, error) } // UnimplementedDataProxyServiceServer should be embedded to have forward compatible implementations. @@ -91,9 +77,6 @@ func (UnimplementedDataProxyServiceServer) CreateUploadLocation(context.Context, func (UnimplementedDataProxyServiceServer) UploadInputs(context.Context, *UploadInputsRequest) (*UploadInputsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UploadInputs not implemented") } -func (UnimplementedDataProxyServiceServer) CreateDownloadLink(context.Context, *CreateDownloadLinkRequest) (*CreateDownloadLinkResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateDownloadLink not implemented") -} // UnsafeDataProxyServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to DataProxyServiceServer will @@ -142,24 +125,6 @@ func _DataProxyService_UploadInputs_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } -func _DataProxyService_CreateDownloadLink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateDownloadLinkRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DataProxyServiceServer).CreateDownloadLink(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: DataProxyService_CreateDownloadLink_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DataProxyServiceServer).CreateDownloadLink(ctx, req.(*CreateDownloadLinkRequest)) - } - return interceptor(ctx, in, info, handler) -} - // DataProxyService_ServiceDesc is the grpc.ServiceDesc for DataProxyService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -175,10 +140,6 @@ var DataProxyService_ServiceDesc = grpc.ServiceDesc{ MethodName: "UploadInputs", Handler: _DataProxyService_UploadInputs_Handler, }, - { - MethodName: "CreateDownloadLink", - Handler: _DataProxyService_CreateDownloadLink_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "flyteidl2/dataproxy/dataproxy_service.proto", diff --git a/gen/go/flyteidl2/dataproxy/dataproxyconnect/dataproxy_service.connect.go b/gen/go/flyteidl2/dataproxy/dataproxyconnect/dataproxy_service.connect.go index 71b19b3b88..046045ba10 100644 --- a/gen/go/flyteidl2/dataproxy/dataproxyconnect/dataproxy_service.connect.go +++ b/gen/go/flyteidl2/dataproxy/dataproxyconnect/dataproxy_service.connect.go @@ -39,9 +39,6 @@ const ( // DataProxyServiceUploadInputsProcedure is the fully-qualified name of the DataProxyService's // UploadInputs RPC. DataProxyServiceUploadInputsProcedure = "/flyteidl2.dataproxy.DataProxyService/UploadInputs" - // DataProxyServiceCreateDownloadLinkProcedure is the fully-qualified name of the DataProxyService's - // CreateDownloadLink RPC. - DataProxyServiceCreateDownloadLinkProcedure = "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink" ) // These variables are the protoreflect.Descriptor objects for the RPCs defined in this package. @@ -49,7 +46,6 @@ var ( dataProxyServiceServiceDescriptor = dataproxy.File_flyteidl2_dataproxy_dataproxy_service_proto.Services().ByName("DataProxyService") dataProxyServiceCreateUploadLocationMethodDescriptor = dataProxyServiceServiceDescriptor.Methods().ByName("CreateUploadLocation") dataProxyServiceUploadInputsMethodDescriptor = dataProxyServiceServiceDescriptor.Methods().ByName("UploadInputs") - dataProxyServiceCreateDownloadLinkMethodDescriptor = dataProxyServiceServiceDescriptor.Methods().ByName("CreateDownloadLink") ) // DataProxyServiceClient is a client for the flyteidl2.dataproxy.DataProxyService service. @@ -57,8 +53,6 @@ type DataProxyServiceClient interface { // CreateUploadLocation generates a signed URL for uploading data to the configured storage backend. CreateUploadLocation(context.Context, *connect.Request[dataproxy.CreateUploadLocationRequest]) (*connect.Response[dataproxy.CreateUploadLocationResponse], error) UploadInputs(context.Context, *connect.Request[dataproxy.UploadInputsRequest]) (*connect.Response[dataproxy.UploadInputsResponse], error) - // CreateDownloadLink generates signed URL(s) for downloading a given artifact. - CreateDownloadLink(context.Context, *connect.Request[dataproxy.CreateDownloadLinkRequest]) (*connect.Response[dataproxy.CreateDownloadLinkResponse], error) } // NewDataProxyServiceClient constructs a client for the flyteidl2.dataproxy.DataProxyService @@ -83,12 +77,6 @@ func NewDataProxyServiceClient(httpClient connect.HTTPClient, baseURL string, op connect.WithSchema(dataProxyServiceUploadInputsMethodDescriptor), connect.WithClientOptions(opts...), ), - createDownloadLink: connect.NewClient[dataproxy.CreateDownloadLinkRequest, dataproxy.CreateDownloadLinkResponse]( - httpClient, - baseURL+DataProxyServiceCreateDownloadLinkProcedure, - connect.WithSchema(dataProxyServiceCreateDownloadLinkMethodDescriptor), - connect.WithClientOptions(opts...), - ), } } @@ -96,7 +84,6 @@ func NewDataProxyServiceClient(httpClient connect.HTTPClient, baseURL string, op type dataProxyServiceClient struct { createUploadLocation *connect.Client[dataproxy.CreateUploadLocationRequest, dataproxy.CreateUploadLocationResponse] uploadInputs *connect.Client[dataproxy.UploadInputsRequest, dataproxy.UploadInputsResponse] - createDownloadLink *connect.Client[dataproxy.CreateDownloadLinkRequest, dataproxy.CreateDownloadLinkResponse] } // CreateUploadLocation calls flyteidl2.dataproxy.DataProxyService.CreateUploadLocation. @@ -109,18 +96,11 @@ func (c *dataProxyServiceClient) UploadInputs(ctx context.Context, req *connect. return c.uploadInputs.CallUnary(ctx, req) } -// CreateDownloadLink calls flyteidl2.dataproxy.DataProxyService.CreateDownloadLink. -func (c *dataProxyServiceClient) CreateDownloadLink(ctx context.Context, req *connect.Request[dataproxy.CreateDownloadLinkRequest]) (*connect.Response[dataproxy.CreateDownloadLinkResponse], error) { - return c.createDownloadLink.CallUnary(ctx, req) -} - // DataProxyServiceHandler is an implementation of the flyteidl2.dataproxy.DataProxyService service. type DataProxyServiceHandler interface { // CreateUploadLocation generates a signed URL for uploading data to the configured storage backend. CreateUploadLocation(context.Context, *connect.Request[dataproxy.CreateUploadLocationRequest]) (*connect.Response[dataproxy.CreateUploadLocationResponse], error) UploadInputs(context.Context, *connect.Request[dataproxy.UploadInputsRequest]) (*connect.Response[dataproxy.UploadInputsResponse], error) - // CreateDownloadLink generates signed URL(s) for downloading a given artifact. - CreateDownloadLink(context.Context, *connect.Request[dataproxy.CreateDownloadLinkRequest]) (*connect.Response[dataproxy.CreateDownloadLinkResponse], error) } // NewDataProxyServiceHandler builds an HTTP handler from the service implementation. It returns the @@ -141,20 +121,12 @@ func NewDataProxyServiceHandler(svc DataProxyServiceHandler, opts ...connect.Han connect.WithSchema(dataProxyServiceUploadInputsMethodDescriptor), connect.WithHandlerOptions(opts...), ) - dataProxyServiceCreateDownloadLinkHandler := connect.NewUnaryHandler( - DataProxyServiceCreateDownloadLinkProcedure, - svc.CreateDownloadLink, - connect.WithSchema(dataProxyServiceCreateDownloadLinkMethodDescriptor), - connect.WithHandlerOptions(opts...), - ) return "/flyteidl2.dataproxy.DataProxyService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Path { case DataProxyServiceCreateUploadLocationProcedure: dataProxyServiceCreateUploadLocationHandler.ServeHTTP(w, r) case DataProxyServiceUploadInputsProcedure: dataProxyServiceUploadInputsHandler.ServeHTTP(w, r) - case DataProxyServiceCreateDownloadLinkProcedure: - dataProxyServiceCreateDownloadLinkHandler.ServeHTTP(w, r) default: http.NotFound(w, r) } @@ -171,7 +143,3 @@ func (UnimplementedDataProxyServiceHandler) CreateUploadLocation(context.Context func (UnimplementedDataProxyServiceHandler) UploadInputs(context.Context, *connect.Request[dataproxy.UploadInputsRequest]) (*connect.Response[dataproxy.UploadInputsResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("flyteidl2.dataproxy.DataProxyService.UploadInputs is not implemented")) } - -func (UnimplementedDataProxyServiceHandler) CreateDownloadLink(context.Context, *connect.Request[dataproxy.CreateDownloadLinkRequest]) (*connect.Response[dataproxy.CreateDownloadLinkResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("flyteidl2.dataproxy.DataProxyService.CreateDownloadLink is not implemented")) -} diff --git a/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.pb.gw.go b/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.pb.gw.go index 883a19823b..d5075facd9 100644 --- a/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.pb.gw.go +++ b/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.pb.gw.go @@ -168,74 +168,6 @@ func local_request_DataProxyService_UploadInputs_1(ctx context.Context, marshale } -func request_DataProxyService_CreateDownloadLink_0(ctx context.Context, marshaler runtime.Marshaler, client extDataproxy.DataProxyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq extDataproxy.CreateDownloadLinkRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.CreateDownloadLink(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_DataProxyService_CreateDownloadLink_0(ctx context.Context, marshaler runtime.Marshaler, server extDataproxy.DataProxyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq extDataproxy.CreateDownloadLinkRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.CreateDownloadLink(ctx, &protoReq) - return msg, metadata, err - -} - -func request_DataProxyService_CreateDownloadLink_1(ctx context.Context, marshaler runtime.Marshaler, client extDataproxy.DataProxyServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq extDataproxy.CreateDownloadLinkRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.CreateDownloadLink(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_DataProxyService_CreateDownloadLink_1(ctx context.Context, marshaler runtime.Marshaler, server extDataproxy.DataProxyServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq extDataproxy.CreateDownloadLinkRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.CreateDownloadLink(ctx, &protoReq) - return msg, metadata, err - -} - // RegisterDataProxyServiceHandlerServer registers the http handlers for service DataProxyService to "mux". // UnaryRPC :call DataProxyServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -342,56 +274,6 @@ func RegisterDataProxyServiceHandlerServer(ctx context.Context, mux *runtime.Ser }) - mux.Handle("POST", pattern_DataProxyService_CreateDownloadLink_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink", runtime.WithHTTPPathPattern("/api/v1/dataproxy/artifact_urn/download")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_DataProxyService_CreateDownloadLink_0(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_DataProxyService_CreateDownloadLink_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_DataProxyService_CreateDownloadLink_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink", runtime.WithHTTPPathPattern("/api/v1/org/dataproxy/artifact_urn/download")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_DataProxyService_CreateDownloadLink_1(annotatedContext, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_DataProxyService_CreateDownloadLink_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - return nil } @@ -521,50 +403,6 @@ func RegisterDataProxyServiceHandlerClient(ctx context.Context, mux *runtime.Ser }) - mux.Handle("POST", pattern_DataProxyService_CreateDownloadLink_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink", runtime.WithHTTPPathPattern("/api/v1/dataproxy/artifact_urn/download")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_DataProxyService_CreateDownloadLink_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_DataProxyService_CreateDownloadLink_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("POST", pattern_DataProxyService_CreateDownloadLink_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - var annotatedContext context.Context - annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink", runtime.WithHTTPPathPattern("/api/v1/org/dataproxy/artifact_urn/download")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_DataProxyService_CreateDownloadLink_1(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_DataProxyService_CreateDownloadLink_1(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - return nil } @@ -576,10 +414,6 @@ var ( pattern_DataProxyService_UploadInputs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "dataproxy", "inputs"}, "")) pattern_DataProxyService_UploadInputs_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"api", "v1", "org", "dataproxy", "inputs"}, "")) - - pattern_DataProxyService_CreateDownloadLink_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"api", "v1", "dataproxy", "artifact_urn", "download"}, "")) - - pattern_DataProxyService_CreateDownloadLink_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5}, []string{"api", "v1", "org", "dataproxy", "artifact_urn", "download"}, "")) ) var ( @@ -590,8 +424,4 @@ var ( forward_DataProxyService_UploadInputs_0 = runtime.ForwardResponseMessage forward_DataProxyService_UploadInputs_1 = runtime.ForwardResponseMessage - - forward_DataProxyService_CreateDownloadLink_0 = runtime.ForwardResponseMessage - - forward_DataProxyService_CreateDownloadLink_1 = runtime.ForwardResponseMessage ) diff --git a/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.swagger.json b/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.swagger.json index d1aa2940b9..d8d95cced4 100644 --- a/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.swagger.json +++ b/gen/go/gateway/flyteidl2/dataproxy/dataproxy_service.swagger.json @@ -51,41 +51,6 @@ ] } }, - "/api/v1/dataproxy/artifact_urn/download": { - "post": { - "summary": "CreateDownloadLink generates signed URL(s) for downloading a given artifact.", - "description": "Creates signed URL(s) for downloading an artifact associated with a run action.", - "operationId": "DataProxyService_CreateDownloadLink", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/dataproxyCreateDownloadLinkResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/googlerpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "description": "CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/dataproxyCreateDownloadLinkRequest" - } - } - ], - "tags": [ - "DataProxyService" - ] - } - }, "/api/v1/dataproxy/inputs": { "post": { "description": "Uploads inputs for a given run or project and returns a URI and cache key that can be used to reference these inputs at runtime.", @@ -154,41 +119,6 @@ ] } }, - "/api/v1/org/dataproxy/artifact_urn/download": { - "post": { - "summary": "CreateDownloadLink generates signed URL(s) for downloading a given artifact.", - "description": "Creates signed URL(s) for downloading an artifact associated with a run action.", - "operationId": "DataProxyService_CreateDownloadLink2", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/dataproxyCreateDownloadLinkResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/googlerpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "description": "CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API.", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/dataproxyCreateDownloadLinkRequest" - } - } - ], - "tags": [ - "DataProxyService" - ] - } - }, "/api/v1/org/dataproxy/inputs": { "post": { "description": "Uploads inputs for a given run or project and returns a URI and cache key that can be used to reference these inputs at runtime.", @@ -394,33 +324,6 @@ ], "default": "UNKNOWN" }, - "commonActionAttemptIdentifier": { - "type": "object", - "properties": { - "action_id": { - "$ref": "#/definitions/commonActionIdentifier" - }, - "attempt": { - "type": "integer", - "format": "int64" - } - }, - "title": "Unique identifier of a single action attempt" - }, - "commonActionIdentifier": { - "type": "object", - "properties": { - "run": { - "$ref": "#/definitions/commonRunIdentifier", - "description": "Identifier for the run." - }, - "name": { - "type": "string", - "description": "Name of the action. Must be unique within the run." - } - }, - "description": "Unique identifier of an action." - }, "commonOffloadedInputData": { "type": "object", "properties": { @@ -1545,43 +1448,6 @@ "type": "object", "description": "Used to denote a nil/null/None assignment to a scalar value. The underlying LiteralType for Void is intentionally\nundefined since it can be assigned to a scalar of any LiteralType." }, - "dataproxyArtifactType": { - "type": "string", - "enum": [ - "ARTIFACT_TYPE_UNSPECIFIED", - "ARTIFACT_TYPE_REPORT" - ], - "default": "ARTIFACT_TYPE_UNSPECIFIED", - "description": "ArtifactType defines the type of artifact to be downloaded.\n\n - ARTIFACT_TYPE_REPORT: ARTIFACT_TYPE_REPORT refers to the HTML report file optionally generated after a task finishes executing." - }, - "dataproxyCreateDownloadLinkRequest": { - "type": "object", - "properties": { - "artifact_type": { - "$ref": "#/definitions/dataproxyArtifactType", - "title": "ArtifactType is the type of artifact to download.\n+required" - }, - "action_attempt_id": { - "$ref": "#/definitions/commonActionAttemptIdentifier", - "description": "ActionAttemptId identifies the specific attempt of a run action that produced the artifact." - }, - "expires_in": { - "type": "string", - "description": "ExpiresIn defines the requested expiration duration for the generated URLs. The request will be\nrejected if this exceeds the platform's configured maximum.\n+optional. The default value comes from the global config." - } - }, - "description": "CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API." - }, - "dataproxyCreateDownloadLinkResponse": { - "type": "object", - "properties": { - "pre_signed_urls": { - "$ref": "#/definitions/dataproxyPreSignedURLs", - "description": "PreSignedUrls contains the signed URLs and their expiration time." - } - }, - "description": "CreateDownloadLinkResponse specifies the response for the CreateDownloadLink API." - }, "dataproxyCreateUploadLocationRequest": { "type": "object", "properties": { @@ -1652,24 +1518,6 @@ }, "description": "CreateUploadLocationResponse specifies the response for the CreateUploadLocation API." }, - "dataproxyPreSignedURLs": { - "type": "object", - "properties": { - "signed_url": { - "type": "array", - "items": { - "type": "string" - }, - "description": "SignedUrl are the pre-signed URLs for downloading the artifact." - }, - "expires_at": { - "type": "string", - "format": "date-time", - "description": "ExpiresAt defines when the signed URLs will expire." - } - }, - "description": "PreSignedURLs contains a list of signed URLs for downloading artifacts." - }, "dataproxyUploadInputsRequest": { "type": "object", "properties": { diff --git a/gen/python/flyteidl2/dataproxy/dataproxy_service_connect.py b/gen/python/flyteidl2/dataproxy/dataproxy_service_connect.py index dac52fa329..8b8b61b466 100644 --- a/gen/python/flyteidl2/dataproxy/dataproxy_service_connect.py +++ b/gen/python/flyteidl2/dataproxy/dataproxy_service_connect.py @@ -23,9 +23,6 @@ async def create_upload_location(self, request: flyteidl2_dot_dataproxy_dot_data async def upload_inputs(self, request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsRequest, ctx: RequestContext) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - async def create_download_link(self, request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, ctx: RequestContext) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - class DataProxyServiceASGIApplication(ConnectASGIApplication[DataProxyService]): def __init__(self, service: DataProxyService | AsyncGenerator[DataProxyService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None, compressions: Iterable[Compression] | None = None) -> None: @@ -52,16 +49,6 @@ def __init__(self, service: DataProxyService | AsyncGenerator[DataProxyService], ), function=svc.upload_inputs, ), - "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink": Endpoint.unary( - method=MethodInfo( - name="CreateDownloadLink", - service_name="flyteidl2.dataproxy.DataProxyService", - input=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, - output=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=svc.create_download_link, - ), }, interceptors=interceptors, read_max_bytes=read_max_bytes, @@ -115,34 +102,12 @@ async def upload_inputs( timeout_ms=timeout_ms, ) - async def create_download_link( - self, - request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse: - return await self.execute_unary( - request=request, - method=MethodInfo( - name="CreateDownloadLink", - service_name="flyteidl2.dataproxy.DataProxyService", - input=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, - output=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) - class DataProxyServiceSync(Protocol): def create_upload_location(self, request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateUploadLocationRequest, ctx: RequestContext) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateUploadLocationResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") def upload_inputs(self, request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsRequest, ctx: RequestContext) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsResponse: raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") - def create_download_link(self, request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, ctx: RequestContext) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse: - raise ConnectError(Code.UNIMPLEMENTED, "Not implemented") class DataProxyServiceWSGIApplication(ConnectWSGIApplication): @@ -169,16 +134,6 @@ def __init__(self, service: DataProxyServiceSync, interceptors: Iterable[Interce ), function=service.upload_inputs, ), - "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink": EndpointSync.unary( - method=MethodInfo( - name="CreateDownloadLink", - service_name="flyteidl2.dataproxy.DataProxyService", - input=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, - output=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - function=service.create_download_link, - ), }, interceptors=interceptors, read_max_bytes=read_max_bytes, @@ -231,23 +186,3 @@ def upload_inputs( headers=headers, timeout_ms=timeout_ms, ) - - def create_download_link( - self, - request: flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, - *, - headers: Headers | Mapping[str, str] | None = None, - timeout_ms: int | None = None, - ) -> flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse: - return self.execute_unary( - request=request, - method=MethodInfo( - name="CreateDownloadLink", - service_name="flyteidl2.dataproxy.DataProxyService", - input=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest, - output=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse, - idempotency_level=IdempotencyLevel.UNKNOWN, - ), - headers=headers, - timeout_ms=timeout_ms, - ) diff --git a/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.py b/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.py index dbce0daf6b..ef1bbf81fd 100644 --- a/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.py +++ b/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.py @@ -22,7 +22,7 @@ from protoc_gen_openapiv2.options import annotations_pb2 as protoc__gen__openapiv2_dot_options_dot_annotations__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+flyteidl2/dataproxy/dataproxy_service.proto\x12\x13\x66lyteidl2.dataproxy\x1a\x1b\x62uf/validate/validate.proto\x1a!flyteidl2/common/identifier.proto\x1a\x1a\x66lyteidl2/common/run.proto\x1a\x1b\x66lyteidl2/task/common.proto\x1a$flyteidl2/task/task_definition.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xf8\x02\n\x1b\x43reateUploadLocationRequest\x12!\n\x07project\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07project\x12\x1f\n\x06\x64omain\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12(\n\x0b\x63ontent_md5\x18\x05 \x01(\x0c\x42\x07\xbaH\x04z\x02h\x10R\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\x12\x37\n\x18\x61\x64\x64_content_md5_metadata\x18\x07 \x01(\x08R\x15\x61\x64\x64\x43ontentMd5Metadata\x12\x10\n\x03org\x18\x08 \x01(\tR\x03org\x12%\n\x0e\x63ontent_length\x18\t \x01(\x03R\rcontentLength\"\xad\x02\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12X\n\x07headers\x18\x04 \x03(\x0b\x32>.flyteidl2.dataproxy.CreateUploadLocationResponse.HeadersEntryR\x07headers\x1a:\n\x0cHeadersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x99\x03\n\x13UploadInputsRequest\x12\x38\n\x06run_id\x18\x01 \x01(\x0b\x32\x1f.flyteidl2.common.RunIdentifierH\x00R\x05runId\x12\x44\n\nproject_id\x18\x02 \x01(\x0b\x32#.flyteidl2.common.ProjectIdentifierH\x00R\tprojectId\x12\x39\n\x07task_id\x18\x03 \x01(\x0b\x32\x1e.flyteidl2.task.TaskIdentifierH\x01R\x06taskId\x12\x37\n\ttask_spec\x18\x04 \x01(\x0b\x32\x18.flyteidl2.task.TaskSpecH\x01R\x08taskSpec\x12\x42\n\x0ctrigger_name\x18\x05 \x01(\x0b\x32\x1d.flyteidl2.common.TriggerNameH\x01R\x0btriggerName\x12.\n\x06inputs\x18\x06 \x01(\x0b\x32\x16.flyteidl2.task.InputsR\x06inputsB\x0b\n\x02id\x12\x05\xbaH\x02\x08\x01\x42\r\n\x04task\x12\x05\xbaH\x02\x08\x01\"n\n\x14UploadInputsResponse\x12V\n\x14offloaded_input_data\x18\x01 \x01(\x0b\x32$.flyteidl2.common.OffloadedInputDataR\x12offloadedInputData\"i\n\rPreSignedURLs\x12\x1d\n\nsigned_url\x18\x01 \x03(\tR\tsignedUrl\x12\x39\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\"\x91\x02\n\x19\x43reateDownloadLinkRequest\x12P\n\rartifact_type\x18\x01 \x01(\x0e\x32!.flyteidl2.dataproxy.ArtifactTypeB\x08\xbaH\x05\x82\x01\x02 \x00R\x0c\x61rtifactType\x12W\n\x11\x61\x63tion_attempt_id\x18\x02 \x01(\x0b\x32).flyteidl2.common.ActionAttemptIdentifierH\x00R\x0f\x61\x63tionAttemptId\x12\x38\n\nexpires_in\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresInB\x0f\n\x06source\x12\x05\xbaH\x02\x08\x01\"h\n\x1a\x43reateDownloadLinkResponse\x12J\n\x0fpre_signed_urls\x18\x01 \x01(\x0b\x32\".flyteidl2.dataproxy.PreSignedURLsR\rpreSignedUrls*G\n\x0c\x41rtifactType\x12\x1d\n\x19\x41RTIFACT_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41RTIFACT_TYPE_REPORT\x10\x01\x32\x9e\x07\n\x10\x44\x61taProxyService\x12\xa0\x02\n\x14\x43reateUploadLocation\x12\x30.flyteidl2.dataproxy.CreateUploadLocationRequest\x1a\x31.flyteidl2.dataproxy.CreateUploadLocationResponse\"\xa2\x01\x92\x41M\x1aKCreates a write-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02L\"\x1e/api/v1/dataproxy/artifact_urn:\x01*Z\'\"\"/api/v1/org/dataproxy/artifact_urn:\x01*\x12\xb3\x02\n\x0cUploadInputs\x12(.flyteidl2.dataproxy.UploadInputsRequest\x1a).flyteidl2.dataproxy.UploadInputsResponse\"\xcd\x01\x92\x41\x83\x01\x1a\x80\x01Uploads inputs for a given run or project and returns a URI and cache key that can be used to reference these inputs at runtime.\x82\xd3\xe4\x93\x02@\"\x18/api/v1/dataproxy/inputs:\x01*Z!\"\x1c/api/v1/org/dataproxy/inputs:\x01*\x12\xb0\x02\n\x12\x43reateDownloadLink\x12..flyteidl2.dataproxy.CreateDownloadLinkRequest\x1a/.flyteidl2.dataproxy.CreateDownloadLinkResponse\"\xb8\x01\x92\x41Q\x1aOCreates signed URL(s) for downloading an artifact associated with a run action.\x82\xd3\xe4\x93\x02^\"\'/api/v1/dataproxy/artifact_urn/download:\x01*Z0\"+/api/v1/org/dataproxy/artifact_urn/download:\x01*B\xd8\x01\n\x17\x63om.flyteidl2.dataproxyB\x15\x44\x61taproxyServiceProtoH\x02P\x01Z7github.com/flyteorg/flyte/v2/gen/go/flyteidl2/dataproxy\xa2\x02\x03\x46\x44X\xaa\x02\x13\x46lyteidl2.Dataproxy\xca\x02\x13\x46lyteidl2\\Dataproxy\xe2\x02\x1f\x46lyteidl2\\Dataproxy\\GPBMetadata\xea\x02\x14\x46lyteidl2::Dataproxyb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+flyteidl2/dataproxy/dataproxy_service.proto\x12\x13\x66lyteidl2.dataproxy\x1a\x1b\x62uf/validate/validate.proto\x1a!flyteidl2/common/identifier.proto\x1a\x1a\x66lyteidl2/common/run.proto\x1a\x1b\x66lyteidl2/task/common.proto\x1a$flyteidl2/task/task_definition.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\"\xf8\x02\n\x1b\x43reateUploadLocationRequest\x12!\n\x07project\x18\x01 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07project\x12\x1f\n\x06\x64omain\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06\x64omain\x12\x1a\n\x08\x66ilename\x18\x03 \x01(\tR\x08\x66ilename\x12\x38\n\nexpires_in\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationR\texpiresIn\x12(\n\x0b\x63ontent_md5\x18\x05 \x01(\x0c\x42\x07\xbaH\x04z\x02h\x10R\ncontentMd5\x12#\n\rfilename_root\x18\x06 \x01(\tR\x0c\x66ilenameRoot\x12\x37\n\x18\x61\x64\x64_content_md5_metadata\x18\x07 \x01(\x08R\x15\x61\x64\x64\x43ontentMd5Metadata\x12\x10\n\x03org\x18\x08 \x01(\tR\x03org\x12%\n\x0e\x63ontent_length\x18\t \x01(\x03R\rcontentLength\"\xad\x02\n\x1c\x43reateUploadLocationResponse\x12\x1d\n\nsigned_url\x18\x01 \x01(\tR\tsignedUrl\x12\x1d\n\nnative_url\x18\x02 \x01(\tR\tnativeUrl\x12\x39\n\nexpires_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12X\n\x07headers\x18\x04 \x03(\x0b\x32>.flyteidl2.dataproxy.CreateUploadLocationResponse.HeadersEntryR\x07headers\x1a:\n\x0cHeadersEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x99\x03\n\x13UploadInputsRequest\x12\x38\n\x06run_id\x18\x01 \x01(\x0b\x32\x1f.flyteidl2.common.RunIdentifierH\x00R\x05runId\x12\x44\n\nproject_id\x18\x02 \x01(\x0b\x32#.flyteidl2.common.ProjectIdentifierH\x00R\tprojectId\x12\x39\n\x07task_id\x18\x03 \x01(\x0b\x32\x1e.flyteidl2.task.TaskIdentifierH\x01R\x06taskId\x12\x37\n\ttask_spec\x18\x04 \x01(\x0b\x32\x18.flyteidl2.task.TaskSpecH\x01R\x08taskSpec\x12\x42\n\x0ctrigger_name\x18\x05 \x01(\x0b\x32\x1d.flyteidl2.common.TriggerNameH\x01R\x0btriggerName\x12.\n\x06inputs\x18\x06 \x01(\x0b\x32\x16.flyteidl2.task.InputsR\x06inputsB\x0b\n\x02id\x12\x05\xbaH\x02\x08\x01\x42\r\n\x04task\x12\x05\xbaH\x02\x08\x01\"n\n\x14UploadInputsResponse\x12V\n\x14offloaded_input_data\x18\x01 \x01(\x0b\x32$.flyteidl2.common.OffloadedInputDataR\x12offloadedInputData2\xeb\x04\n\x10\x44\x61taProxyService\x12\xa0\x02\n\x14\x43reateUploadLocation\x12\x30.flyteidl2.dataproxy.CreateUploadLocationRequest\x1a\x31.flyteidl2.dataproxy.CreateUploadLocationResponse\"\xa2\x01\x92\x41M\x1aKCreates a write-only http location that is accessible for tasks at runtime.\x82\xd3\xe4\x93\x02L\"\x1e/api/v1/dataproxy/artifact_urn:\x01*Z\'\"\"/api/v1/org/dataproxy/artifact_urn:\x01*\x12\xb3\x02\n\x0cUploadInputs\x12(.flyteidl2.dataproxy.UploadInputsRequest\x1a).flyteidl2.dataproxy.UploadInputsResponse\"\xcd\x01\x92\x41\x83\x01\x1a\x80\x01Uploads inputs for a given run or project and returns a URI and cache key that can be used to reference these inputs at runtime.\x82\xd3\xe4\x93\x02@\"\x18/api/v1/dataproxy/inputs:\x01*Z!\"\x1c/api/v1/org/dataproxy/inputs:\x01*B\xd8\x01\n\x17\x63om.flyteidl2.dataproxyB\x15\x44\x61taproxyServiceProtoH\x02P\x01Z7github.com/flyteorg/flyte/v2/gen/go/flyteidl2/dataproxy\xa2\x02\x03\x46\x44X\xaa\x02\x13\x46lyteidl2.Dataproxy\xca\x02\x13\x46lyteidl2\\Dataproxy\xe2\x02\x1f\x46lyteidl2\\Dataproxy\\GPBMetadata\xea\x02\x14\x46lyteidl2::Dataproxyb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -42,18 +42,10 @@ _UPLOADINPUTSREQUEST.oneofs_by_name['id']._serialized_options = b'\272H\002\010\001' _UPLOADINPUTSREQUEST.oneofs_by_name['task']._options = None _UPLOADINPUTSREQUEST.oneofs_by_name['task']._serialized_options = b'\272H\002\010\001' - _CREATEDOWNLOADLINKREQUEST.oneofs_by_name['source']._options = None - _CREATEDOWNLOADLINKREQUEST.oneofs_by_name['source']._serialized_options = b'\272H\002\010\001' - _CREATEDOWNLOADLINKREQUEST.fields_by_name['artifact_type']._options = None - _CREATEDOWNLOADLINKREQUEST.fields_by_name['artifact_type']._serialized_options = b'\272H\005\202\001\002 \000' _DATAPROXYSERVICE.methods_by_name['CreateUploadLocation']._options = None _DATAPROXYSERVICE.methods_by_name['CreateUploadLocation']._serialized_options = b'\222AM\032KCreates a write-only http location that is accessible for tasks at runtime.\202\323\344\223\002L\"\036/api/v1/dataproxy/artifact_urn:\001*Z\'\"\"/api/v1/org/dataproxy/artifact_urn:\001*' _DATAPROXYSERVICE.methods_by_name['UploadInputs']._options = None _DATAPROXYSERVICE.methods_by_name['UploadInputs']._serialized_options = b'\222A\203\001\032\200\001Uploads inputs for a given run or project and returns a URI and cache key that can be used to reference these inputs at runtime.\202\323\344\223\002@\"\030/api/v1/dataproxy/inputs:\001*Z!\"\034/api/v1/org/dataproxy/inputs:\001*' - _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._options = None - _DATAPROXYSERVICE.methods_by_name['CreateDownloadLink']._serialized_options = b'\222AQ\032OCreates signed URL(s) for downloading an artifact associated with a run action.\202\323\344\223\002^\"\'/api/v1/dataproxy/artifact_urn/download:\001*Z0\"+/api/v1/org/dataproxy/artifact_urn/download:\001*' - _globals['_ARTIFACTTYPE']._serialized_start=2066 - _globals['_ARTIFACTTYPE']._serialized_end=2137 _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_start=371 _globals['_CREATEUPLOADLOCATIONREQUEST']._serialized_end=747 _globals['_CREATEUPLOADLOCATIONRESPONSE']._serialized_start=750 @@ -64,12 +56,6 @@ _globals['_UPLOADINPUTSREQUEST']._serialized_end=1463 _globals['_UPLOADINPUTSRESPONSE']._serialized_start=1465 _globals['_UPLOADINPUTSRESPONSE']._serialized_end=1575 - _globals['_PRESIGNEDURLS']._serialized_start=1577 - _globals['_PRESIGNEDURLS']._serialized_end=1682 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_start=1685 - _globals['_CREATEDOWNLOADLINKREQUEST']._serialized_end=1958 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_start=1960 - _globals['_CREATEDOWNLOADLINKRESPONSE']._serialized_end=2064 - _globals['_DATAPROXYSERVICE']._serialized_start=2140 - _globals['_DATAPROXYSERVICE']._serialized_end=3066 + _globals['_DATAPROXYSERVICE']._serialized_start=1578 + _globals['_DATAPROXYSERVICE']._serialized_end=2197 # @@protoc_insertion_point(module_scope) diff --git a/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.pyi b/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.pyi index 9bc5078746..ad179c2207 100644 --- a/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.pyi +++ b/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2.pyi @@ -8,20 +8,12 @@ from google.protobuf import duration_pb2 as _duration_pb2 from google.protobuf import timestamp_pb2 as _timestamp_pb2 from protoc_gen_openapiv2.options import annotations_pb2 as _annotations_pb2_1 from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union +from typing import ClassVar as _ClassVar, Mapping as _Mapping, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor -class ArtifactType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = [] - ARTIFACT_TYPE_UNSPECIFIED: _ClassVar[ArtifactType] - ARTIFACT_TYPE_REPORT: _ClassVar[ArtifactType] -ARTIFACT_TYPE_UNSPECIFIED: ArtifactType -ARTIFACT_TYPE_REPORT: ArtifactType - class CreateUploadLocationRequest(_message.Message): __slots__ = ["project", "domain", "filename", "expires_in", "content_md5", "filename_root", "add_content_md5_metadata", "org", "content_length"] PROJECT_FIELD_NUMBER: _ClassVar[int] @@ -84,27 +76,3 @@ class UploadInputsResponse(_message.Message): OFFLOADED_INPUT_DATA_FIELD_NUMBER: _ClassVar[int] offloaded_input_data: _run_pb2.OffloadedInputData def __init__(self, offloaded_input_data: _Optional[_Union[_run_pb2.OffloadedInputData, _Mapping]] = ...) -> None: ... - -class PreSignedURLs(_message.Message): - __slots__ = ["signed_url", "expires_at"] - SIGNED_URL_FIELD_NUMBER: _ClassVar[int] - EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] - signed_url: _containers.RepeatedScalarFieldContainer[str] - expires_at: _timestamp_pb2.Timestamp - def __init__(self, signed_url: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... - -class CreateDownloadLinkRequest(_message.Message): - __slots__ = ["artifact_type", "action_attempt_id", "expires_in"] - ARTIFACT_TYPE_FIELD_NUMBER: _ClassVar[int] - ACTION_ATTEMPT_ID_FIELD_NUMBER: _ClassVar[int] - EXPIRES_IN_FIELD_NUMBER: _ClassVar[int] - artifact_type: ArtifactType - action_attempt_id: _identifier_pb2.ActionAttemptIdentifier - expires_in: _duration_pb2.Duration - def __init__(self, artifact_type: _Optional[_Union[ArtifactType, str]] = ..., action_attempt_id: _Optional[_Union[_identifier_pb2.ActionAttemptIdentifier, _Mapping]] = ..., expires_in: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... - -class CreateDownloadLinkResponse(_message.Message): - __slots__ = ["pre_signed_urls"] - PRE_SIGNED_URLS_FIELD_NUMBER: _ClassVar[int] - pre_signed_urls: PreSignedURLs - def __init__(self, pre_signed_urls: _Optional[_Union[PreSignedURLs, _Mapping]] = ...) -> None: ... diff --git a/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2_grpc.py b/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2_grpc.py index a9b2692247..44cd7950cc 100644 --- a/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2_grpc.py +++ b/gen/python/flyteidl2/dataproxy/dataproxy_service_pb2_grpc.py @@ -25,11 +25,6 @@ def __init__(self, channel): request_serializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsRequest.SerializeToString, response_deserializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsResponse.FromString, ) - self.CreateDownloadLink = channel.unary_unary( - '/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink', - request_serializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest.SerializeToString, - response_deserializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse.FromString, - ) class DataProxyServiceServicer(object): @@ -49,13 +44,6 @@ def UploadInputs(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') - def CreateDownloadLink(self, request, context): - """CreateDownloadLink generates signed URL(s) for downloading a given artifact. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - def add_DataProxyServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -69,11 +57,6 @@ def add_DataProxyServiceServicer_to_server(servicer, server): request_deserializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsRequest.FromString, response_serializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsResponse.SerializeToString, ), - 'CreateDownloadLink': grpc.unary_unary_rpc_method_handler( - servicer.CreateDownloadLink, - request_deserializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest.FromString, - response_serializer=flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse.SerializeToString, - ), } generic_handler = grpc.method_handlers_generic_handler( 'flyteidl2.dataproxy.DataProxyService', rpc_method_handlers) @@ -118,20 +101,3 @@ def UploadInputs(request, flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.UploadInputsResponse.FromString, options, channel_credentials, insecure, call_credentials, compression, wait_for_ready, timeout, metadata) - - @staticmethod - def CreateDownloadLink(request, - target, - options=(), - channel_credentials=None, - call_credentials=None, - insecure=False, - compression=None, - wait_for_ready=None, - timeout=None, - metadata=None): - return grpc.experimental.unary_unary(request, target, '/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink', - flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkRequest.SerializeToString, - flyteidl2_dot_dataproxy_dot_dataproxy__service__pb2.CreateDownloadLinkResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) diff --git a/gen/rust/src/flyteidl2.dataproxy.rs b/gen/rust/src/flyteidl2.dataproxy.rs index 81e7d1ff27..eb5b6fb5ef 100644 --- a/gen/rust/src/flyteidl2.dataproxy.rs +++ b/gen/rust/src/flyteidl2.dataproxy.rs @@ -122,89 +122,9 @@ pub struct UploadInputsResponse { #[prost(message, optional, tag="1")] pub offloaded_input_data: ::core::option::Option, } -/// PreSignedURLs contains a list of signed URLs for downloading artifacts. -#[pyo3::pyclass(dict, get_all, set_all)] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct PreSignedUrLs { - /// SignedUrl are the pre-signed URLs for downloading the artifact. - #[prost(string, repeated, tag="1")] - pub signed_url: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, - /// ExpiresAt defines when the signed URLs will expire. - #[prost(message, optional, tag="2")] - pub expires_at: ::core::option::Option, -} -/// CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API. -#[pyo3::pyclass(dict, get_all, set_all)] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CreateDownloadLinkRequest { - /// ArtifactType is the type of artifact to download. - /// +required - #[prost(enumeration="ArtifactType", tag="1")] - pub artifact_type: i32, - /// ExpiresIn defines the requested expiration duration for the generated URLs. The request will be - /// rejected if this exceeds the platform's configured maximum. - /// +optional. The default value comes from the global config. - #[prost(message, optional, tag="3")] - pub expires_in: ::core::option::Option, - /// Source identifies the action attempt whose artifact is to be downloaded. - #[prost(oneof="create_download_link_request::Source", tags="2")] - pub source: ::core::option::Option, -} -/// Nested message and enum types in `CreateDownloadLinkRequest`. -pub mod create_download_link_request { - /// Source identifies the action attempt whose artifact is to be downloaded. - #[pyo3::pyclass(dict, get_all, set_all)] - #[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Oneof)] - pub enum Source { - /// ActionAttemptId identifies the specific attempt of a run action that produced the artifact. - #[prost(message, tag="2")] - ActionAttemptId(super::super::common::ActionAttemptIdentifier), - } -} -/// CreateDownloadLinkResponse specifies the response for the CreateDownloadLink API. -#[pyo3::pyclass(dict, get_all, set_all)] -#[allow(clippy::derive_partial_eq_without_eq)] -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct CreateDownloadLinkResponse { - /// PreSignedUrls contains the signed URLs and their expiration time. - #[prost(message, optional, tag="1")] - pub pre_signed_urls: ::core::option::Option, -} -/// ArtifactType defines the type of artifact to be downloaded. -#[pyo3::pyclass(dict, get_all, set_all)] -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] -#[repr(i32)] -pub enum ArtifactType { - Unspecified = 0, - /// ARTIFACT_TYPE_REPORT refers to the HTML report file optionally generated after a task finishes executing. - Report = 1, -} -impl ArtifactType { - /// String value of the enum field names used in the ProtoBuf definition. - /// - /// The values are not transformed in any way and thus are considered stable - /// (if the ProtoBuf definition does not change) and safe for programmatic use. - pub fn as_str_name(&self) -> &'static str { - match self { - ArtifactType::Unspecified => "ARTIFACT_TYPE_UNSPECIFIED", - ArtifactType::Report => "ARTIFACT_TYPE_REPORT", - } - } - /// Creates an enum from field names used in the ProtoBuf definition. - pub fn from_str_name(value: &str) -> ::core::option::Option { - match value { - "ARTIFACT_TYPE_UNSPECIFIED" => Some(Self::Unspecified), - "ARTIFACT_TYPE_REPORT" => Some(Self::Report), - _ => None, - } - } -} /// Encoded file descriptor set for the `flyteidl2.dataproxy` package pub const FILE_DESCRIPTOR_SET: &[u8] = &[ - 0x0a, 0xf5, 0x51, 0x0a, 0x2b, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2f, 0x64, + 0x0a, 0xea, 0x3a, 0x0a, 0x2b, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, @@ -302,564 +222,379 @@ pub const FILE_DESCRIPTOR_SET: &[u8] = &[ 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x6f, 0x66, 0x66, 0x6c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0x69, 0x0a, 0x0d, 0x50, 0x72, - 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x73, 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, 0x09, 0x65, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x79, - 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x08, 0xba, - 0x48, 0x05, 0x82, 0x01, 0x02, 0x20, 0x00, 0x52, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, - 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0f, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x49, 0x64, 0x12, 0x38, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x69, 0x6e, 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, 0x09, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x42, 0x0f, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x05, 0xba, 0x48, 0x02, 0x08, 0x01, 0x22, 0x68, 0x0a, 0x1a, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x5f, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x55, 0x52, 0x4c, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, - 0x72, 0x6c, 0x73, 0x2a, 0x47, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x32, 0x9e, 0x07, 0x0a, - 0x10, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0xa0, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x66, 0x6c, 0x79, + 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x32, 0xeb, 0x04, 0x0a, 0x10, 0x44, + 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0xa0, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xa2, 0x01, 0x92, 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, - 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, - 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, - 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x3a, 0x01, 0x2a, 0x5a, 0x27, 0x3a, 0x01, 0x2a, - 0x22, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x75, 0x72, 0x6e, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x75, 0x72, 0x6e, 0x12, 0xb3, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x92, 0x41, 0x83, - 0x01, 0x1a, 0x80, 0x01, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, - 0x75, 0x6e, 0x20, 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x61, 0x6e, - 0x64, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x55, 0x52, 0x49, 0x20, - 0x61, 0x6e, 0x64, 0x20, 0x63, 0x61, 0x63, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, - 0x6f, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x73, - 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x3a, - 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, - 0x22, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0xb0, 0x02, 0x0a, 0x12, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, - 0x6b, 0x12, 0x2e, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xb8, 0x01, 0x92, 0x41, 0x51, 0x1a, 0x4f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x73, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x28, 0x73, 0x29, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x61, 0x6e, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x61, 0x73, 0x73, 0x6f, - 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x20, 0x72, 0x75, - 0x6e, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x3a, - 0x01, 0x2a, 0x5a, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x72, 0x6e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x27, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x5f, 0x75, 0x72, 0x6e, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0xd6, 0x01, - 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x42, 0x15, 0x44, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, - 0x6c, 0x79, 0x74, 0x65, 0x6f, 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x76, 0x32, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, - 0x32, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xa2, 0x02, 0x03, 0x46, 0x44, - 0x58, 0xaa, 0x02, 0x13, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xca, 0x02, 0x13, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, - 0x64, 0x6c, 0x32, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xe2, 0x02, 0x1f, - 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x3a, 0x3a, 0x44, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x97, 0x38, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0xc6, - 0x01, 0x01, 0x0a, 0x08, 0x0a, 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, - 0x02, 0x12, 0x03, 0x02, 0x00, 0x1c, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, - 0x25, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x2b, 0x0a, 0x09, 0x0a, 0x02, - 0x03, 0x02, 0x12, 0x03, 0x06, 0x00, 0x24, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, 0x12, 0x03, 0x07, - 0x00, 0x25, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x2e, 0x0a, 0x09, 0x0a, - 0x02, 0x03, 0x05, 0x12, 0x03, 0x09, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x06, 0x12, 0x03, - 0x0a, 0x00, 0x28, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, 0x0b, 0x00, 0x29, 0x0a, 0x09, - 0x0a, 0x02, 0x03, 0x08, 0x12, 0x03, 0x0c, 0x00, 0x38, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, - 0x0e, 0x00, 0x4e, 0x0a, 0x09, 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x0e, 0x00, 0x4e, 0x0a, 0x49, - 0x0a, 0x02, 0x05, 0x00, 0x12, 0x04, 0x11, 0x00, 0x15, 0x01, 0x1a, 0x3d, 0x20, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x05, 0x00, 0x01, - 0x12, 0x03, 0x11, 0x05, 0x11, 0x0a, 0x0b, 0x0a, 0x04, 0x05, 0x00, 0x02, 0x00, 0x12, 0x03, 0x12, - 0x02, 0x20, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x12, 0x02, 0x1b, - 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x12, 0x1e, 0x1f, 0x0a, 0x78, - 0x0a, 0x04, 0x05, 0x00, 0x02, 0x01, 0x12, 0x03, 0x14, 0x02, 0x1b, 0x1a, 0x6b, 0x20, 0x41, 0x52, - 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, - 0x52, 0x54, 0x20, 0x72, 0x65, 0x66, 0x65, 0x72, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x6c, 0x79, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x61, 0x20, 0x74, - 0x61, 0x73, 0x6b, 0x20, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x73, 0x20, 0x65, 0x78, 0x65, - 0x63, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, - 0x01, 0x12, 0x03, 0x14, 0x02, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x05, 0x00, 0x02, 0x01, 0x02, 0x12, - 0x03, 0x14, 0x19, 0x1a, 0x0a, 0x5d, 0x0a, 0x02, 0x06, 0x00, 0x12, 0x04, 0x18, 0x00, 0x3e, 0x01, - 0x1a, 0x51, 0x20, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, 0x61, 0x6e, 0x20, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, - 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, 0x03, 0x18, 0x08, 0x18, 0x0a, - 0x71, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x1a, 0x02, 0x24, 0x03, 0x1a, 0x63, 0x20, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, - 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, - 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x1a, 0x06, 0x1a, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, 0x1a, 0x1b, 0x36, 0x0a, 0x0c, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x1a, 0x41, 0x5d, 0x0a, 0x0d, 0x0a, 0x05, - 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x1b, 0x04, 0x22, 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, - 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x1b, 0x04, 0x22, 0x06, 0x0a, 0x11, - 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x1c, 0x06, - 0x2c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, - 0x03, 0x1d, 0x06, 0x0f, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, - 0x22, 0x0b, 0x00, 0x12, 0x04, 0x1e, 0x06, 0x21, 0x07, 0x0a, 0x13, 0x0a, 0x0c, 0x06, 0x00, 0x02, - 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x04, 0x12, 0x03, 0x1f, 0x08, 0x32, 0x0a, 0x13, - 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x07, 0x12, 0x03, - 0x20, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x23, 0x04, - 0xaa, 0x01, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x12, 0x04, 0x23, - 0x04, 0xaa, 0x01, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, 0x04, 0x92, 0x08, 0x03, 0x12, - 0x04, 0x23, 0x4e, 0xa8, 0x01, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x01, 0x12, 0x04, 0x26, - 0x02, 0x30, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x26, 0x06, - 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, 0x03, 0x26, 0x13, 0x26, 0x0a, - 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x26, 0x31, 0x45, 0x0a, 0x0d, 0x0a, - 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x27, 0x04, 0x2e, 0x06, 0x0a, 0x11, 0x0a, 0x09, - 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x27, 0x04, 0x2e, 0x06, 0x0a, - 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, 0x28, - 0x06, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x07, - 0x12, 0x03, 0x29, 0x06, 0x0f, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, - 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x04, 0x2a, 0x06, 0x2d, 0x07, 0x0a, 0x13, 0x0a, 0x0c, 0x06, 0x00, - 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x04, 0x12, 0x03, 0x2b, 0x08, 0x2c, 0x0a, - 0x13, 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x07, 0x12, - 0x03, 0x2c, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x2f, - 0x04, 0xdf, 0x01, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x12, 0x04, - 0x2f, 0x04, 0xdf, 0x01, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x01, 0x04, 0x92, 0x08, 0x03, - 0x12, 0x04, 0x2f, 0x4e, 0xdd, 0x01, 0x0a, 0x5c, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x02, 0x12, 0x04, - 0x33, 0x02, 0x3d, 0x03, 0x1a, 0x4e, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x73, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x28, 0x73, - 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x33, - 0x06, 0x18, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x02, 0x12, 0x03, 0x33, 0x19, 0x32, - 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x33, 0x3d, 0x57, 0x0a, 0x0d, - 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, 0x34, 0x04, 0x3b, 0x06, 0x0a, 0x11, 0x0a, - 0x09, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x34, 0x04, 0x3b, 0x06, - 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x04, 0x12, 0x03, - 0x35, 0x06, 0x35, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, - 0x07, 0x12, 0x03, 0x36, 0x06, 0x0f, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, - 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x04, 0x37, 0x06, 0x3a, 0x07, 0x0a, 0x13, 0x0a, 0x0c, 0x06, - 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x04, 0x12, 0x03, 0x38, 0x08, 0x3b, - 0x0a, 0x13, 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x02, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x07, - 0x12, 0x03, 0x39, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x02, 0x04, 0x12, 0x04, - 0x3c, 0x04, 0xae, 0x01, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, 0x12, - 0x04, 0x3c, 0x04, 0xae, 0x01, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x02, 0x04, 0x92, 0x08, - 0x03, 0x12, 0x04, 0x3c, 0x4e, 0xac, 0x01, 0x0a, 0xaa, 0x03, 0x0a, 0x02, 0x04, 0x00, 0x12, 0x04, - 0x45, 0x00, 0x70, 0x01, 0x1a, 0x9d, 0x03, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2d, 0x73, 0x69, 0x64, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, - 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x65, 0x20, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x66, - 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, - 0x65, 0x73, 0x65, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x3a, 0x0a, 0x20, 0x20, - 0x20, 0x2d, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x2f, 0x28, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, - 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x6d, 0x64, 0x35, 0x29, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, - 0x69, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x69, 0x73, 0x20, 0x70, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x3b, 0x20, 0x4f, 0x52, 0x0a, 0x20, 0x20, 0x20, 0x2d, - 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, - 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x2f, 0x66, 0x69, - 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, 0x69, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, - 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x29, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, 0x03, 0x45, 0x08, 0x23, - 0x0a, 0x44, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x48, 0x02, 0x3f, 0x1a, 0x37, 0x20, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a, 0x20, 0x2b, 0x72, 0x65, 0x71, - 0x75, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x05, 0x12, - 0x03, 0x48, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x01, 0x12, 0x03, 0x48, - 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x48, 0x13, 0x14, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x48, 0x15, 0x3e, 0x0a, 0x10, - 0x0a, 0x09, 0x04, 0x00, 0x02, 0x00, 0x08, 0x87, 0x09, 0x0e, 0x02, 0x12, 0x03, 0x48, 0x16, 0x3d, - 0x0a, 0x43, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x4c, 0x02, 0x3e, 0x1a, 0x36, 0x20, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a, 0x20, 0x2b, 0x72, 0x65, 0x71, 0x75, - 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x05, 0x12, 0x03, - 0x4c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, 0x12, 0x03, 0x4c, 0x09, - 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x4c, 0x12, 0x13, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x4c, 0x14, 0x3d, 0x0a, 0x10, 0x0a, - 0x09, 0x04, 0x00, 0x02, 0x01, 0x08, 0x87, 0x09, 0x0e, 0x02, 0x12, 0x03, 0x4c, 0x15, 0x3c, 0x0a, - 0xfc, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x50, 0x02, 0x16, 0x1a, 0xee, 0x01, - 0x20, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x20, - 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x20, 0x45, 0x2e, 0x67, 0x2e, 0x20, 0x60, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x70, 0x79, - 0x60, 0x20, 0x6f, 0x72, 0x20, 0x60, 0x70, 0x72, 0x65, 0x2f, 0x66, 0x69, 0x78, 0x2f, 0x66, 0x69, - 0x6c, 0x65, 0x2e, 0x7a, 0x69, 0x70, 0x60, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x2e, 0x20, 0x42, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x2c, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x62, 0x61, 0x73, 0x65, 0x64, 0x20, 0x6f, - 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x2e, 0x0a, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x50, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x50, 0x09, 0x11, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x02, 0x03, 0x12, 0x03, 0x50, 0x14, 0x15, 0x0a, 0xe7, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, - 0x03, 0x12, 0x03, 0x55, 0x02, 0x2a, 0x1a, 0xd9, 0x01, 0x20, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x49, 0x6e, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x55, 0x52, 0x4c, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x0a, 0x20, 0x65, 0x78, 0x63, 0x65, 0x65, - 0x64, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x27, - 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, - 0x68, 0x65, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, 0x03, 0x55, 0x02, 0x1a, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x55, 0x1b, 0x25, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x55, 0x28, 0x29, 0x0a, 0xa8, 0x01, 0x0a, - 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x5a, 0x02, 0x3e, 0x1a, 0x9a, 0x01, 0x20, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x44, 0x35, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x4d, 0x44, 0x35, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x4d, 0x44, 0x35, 0x20, 0x68, 0x61, 0x73, - 0x68, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, 0x61, 0x70, 0x70, 0x65, - 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x20, 0x2b, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x05, - 0x12, 0x03, 0x5a, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x01, 0x12, 0x03, - 0x5a, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, 0x12, 0x03, 0x5a, 0x16, - 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x03, 0x5a, 0x18, 0x3d, 0x0a, - 0x10, 0x0a, 0x09, 0x04, 0x00, 0x02, 0x04, 0x08, 0x87, 0x09, 0x0f, 0x0d, 0x12, 0x03, 0x5a, 0x19, - 0x3c, 0x0a, 0xd2, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, 0x60, 0x02, 0x1b, 0x1a, - 0xc4, 0x02, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x6f, 0x6f, 0x74, 0x2c, - 0x20, 0x69, 0x66, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, 0x20, 0x77, 0x69, 0x6c, - 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x73, 0x74, 0x65, 0x61, - 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x44, 0x35, 0x20, 0x68, 0x61, 0x73, - 0x68, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x74, 0x68, 0x2e, 0x20, 0x57, - 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, - 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x0a, 0x20, 0x74, 0x68, 0x69, - 0x73, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x65, 0x74, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6e, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x73, - 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x64, - 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x0a, 0x20, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x20, 0x54, 0x68, - 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, - 0x66, 0x75, 0x6c, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x05, 0x12, - 0x03, 0x60, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x01, 0x12, 0x03, 0x60, - 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, 0x03, 0x60, 0x19, 0x1a, - 0x0a, 0x89, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x66, 0x02, 0x24, 0x1a, 0xfb, - 0x01, 0x20, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, - 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, - 0x64, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x64, 0x35, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, - 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 0x0a, 0x20, - 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x65, 0x6e, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x69, - 0x74, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x73, 0x20, 0x6c, - 0x69, 0x6b, 0x65, 0x20, 0x47, 0x43, 0x50, 0x2c, 0x20, 0x65, 0x6e, 0x73, 0x75, 0x72, 0x69, 0x6e, - 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, - 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x66, 0x02, 0x06, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, - 0x02, 0x06, 0x01, 0x12, 0x03, 0x66, 0x07, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, - 0x03, 0x12, 0x03, 0x66, 0x22, 0x23, 0x0a, 0x4e, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x07, 0x12, 0x03, - 0x6a, 0x02, 0x11, 0x1a, 0x41, 0x20, 0x4f, 0x72, 0x67, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6b, 0x65, - 0x79, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x05, 0x12, - 0x03, 0x6a, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x01, 0x12, 0x03, 0x6a, - 0x09, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, 0x03, 0x6a, 0x0f, 0x10, - 0x0a, 0xae, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x6f, 0x02, 0x1b, 0x1a, 0xa0, - 0x01, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, - 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, - 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x20, 0x61, 0x67, - 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x27, 0x73, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, 0x66, 0x20, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, 0x6f, 0x02, 0x07, 0x0a, - 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x6f, 0x08, 0x16, 0x0a, 0x0c, 0x0a, - 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x6f, 0x19, 0x1a, 0x0a, 0x63, 0x0a, 0x02, 0x04, - 0x01, 0x12, 0x04, 0x73, 0x00, 0x7f, 0x01, 0x1a, 0x57, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x6f, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa2, 0x01, + 0x92, 0x41, 0x4d, 0x1a, 0x4b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x2d, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x68, 0x74, 0x74, 0x70, 0x20, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x69, 0x73, 0x20, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x3a, 0x01, 0x2a, 0x5a, 0x27, 0x3a, 0x01, 0x2a, 0x22, 0x22, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, + 0x72, 0x6e, 0x22, 0x1e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, + 0x72, 0x6e, 0x12, 0xb3, 0x02, 0x0a, 0x0c, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, + 0x6f, 0x78, 0x79, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x92, 0x41, 0x83, 0x01, 0x1a, + 0x80, 0x01, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x20, 0x67, 0x69, 0x76, 0x65, 0x6e, 0x20, 0x72, 0x75, 0x6e, + 0x20, 0x6f, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x61, 0x6e, 0x64, 0x20, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x73, 0x20, 0x61, 0x20, 0x55, 0x52, 0x49, 0x20, 0x61, 0x6e, + 0x64, 0x20, 0x63, 0x61, 0x63, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x74, 0x68, 0x61, 0x74, + 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, 0x61, 0x74, 0x20, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x5a, 0x21, 0x3a, 0x01, 0x2a, + 0x22, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0x18, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x2f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x42, 0xd6, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, + 0x2e, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x78, 0x79, 0x42, 0x15, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x6f, + 0x72, 0x67, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x67, 0x65, 0x6e, 0x2f, + 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xa2, 0x02, 0x03, 0x46, 0x44, 0x58, 0xaa, 0x02, 0x13, 0x46, + 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x78, 0x79, 0xca, 0x02, 0x13, 0x46, 0x6c, 0x79, 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x5c, 0x44, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0xe2, 0x02, 0x1f, 0x46, 0x6c, 0x79, 0x74, 0x65, + 0x69, 0x64, 0x6c, 0x32, 0x5c, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x46, 0x6c, 0x79, + 0x74, 0x65, 0x69, 0x64, 0x6c, 0x32, 0x3a, 0x3a, 0x44, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x78, + 0x79, 0x4a, 0xf1, 0x27, 0x0a, 0x07, 0x12, 0x05, 0x00, 0x00, 0x8d, 0x01, 0x01, 0x0a, 0x08, 0x0a, + 0x01, 0x0c, 0x12, 0x03, 0x00, 0x00, 0x12, 0x0a, 0x08, 0x0a, 0x01, 0x02, 0x12, 0x03, 0x02, 0x00, + 0x1c, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x00, 0x12, 0x03, 0x04, 0x00, 0x25, 0x0a, 0x09, 0x0a, 0x02, + 0x03, 0x01, 0x12, 0x03, 0x05, 0x00, 0x2b, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x02, 0x12, 0x03, 0x06, + 0x00, 0x24, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x03, 0x12, 0x03, 0x07, 0x00, 0x25, 0x0a, 0x09, 0x0a, + 0x02, 0x03, 0x04, 0x12, 0x03, 0x08, 0x00, 0x2e, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x05, 0x12, 0x03, + 0x09, 0x00, 0x26, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x06, 0x12, 0x03, 0x0a, 0x00, 0x28, 0x0a, 0x09, + 0x0a, 0x02, 0x03, 0x07, 0x12, 0x03, 0x0b, 0x00, 0x29, 0x0a, 0x09, 0x0a, 0x02, 0x03, 0x08, 0x12, + 0x03, 0x0c, 0x00, 0x38, 0x0a, 0x08, 0x0a, 0x01, 0x08, 0x12, 0x03, 0x0e, 0x00, 0x4e, 0x0a, 0x09, + 0x0a, 0x02, 0x08, 0x0b, 0x12, 0x03, 0x0e, 0x00, 0x4e, 0x0a, 0x5d, 0x0a, 0x02, 0x06, 0x00, 0x12, + 0x04, 0x11, 0x00, 0x2a, 0x01, 0x1a, 0x51, 0x20, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x73, 0x20, 0x61, 0x6e, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x20, 0x66, + 0x6f, 0x72, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x61, 0x74, 0x61, + 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x06, 0x00, 0x01, 0x12, + 0x03, 0x11, 0x08, 0x18, 0x0a, 0x71, 0x0a, 0x04, 0x06, 0x00, 0x02, 0x00, 0x12, 0x04, 0x13, 0x02, + 0x1d, 0x03, 0x1a, 0x63, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, + 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x64, + 0x61, 0x74, 0x61, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x62, 0x61, + 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x01, + 0x12, 0x03, 0x13, 0x06, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x02, 0x12, 0x03, + 0x13, 0x1b, 0x36, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x03, 0x12, 0x03, 0x13, 0x41, + 0x5d, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, 0x04, 0x12, 0x04, 0x14, 0x04, 0x1b, 0x06, + 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, 0x14, + 0x04, 0x1b, 0x06, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x04, 0x12, 0x03, 0x15, 0x06, 0x2c, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, + 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x16, 0x06, 0x0f, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, 0x02, + 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x04, 0x17, 0x06, 0x1a, 0x07, 0x0a, 0x13, + 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x04, 0x12, 0x03, + 0x18, 0x08, 0x32, 0x0a, 0x13, 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x00, 0x04, 0xb0, 0xca, 0xbc, 0x22, + 0x0b, 0x00, 0x07, 0x12, 0x03, 0x19, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x00, + 0x04, 0x12, 0x04, 0x1c, 0x04, 0xaa, 0x01, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x00, 0x04, + 0x92, 0x08, 0x12, 0x04, 0x1c, 0x04, 0xaa, 0x01, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, 0x00, + 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x1c, 0x4e, 0xa8, 0x01, 0x0a, 0x0c, 0x0a, 0x04, 0x06, 0x00, + 0x02, 0x01, 0x12, 0x04, 0x1f, 0x02, 0x29, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, + 0x01, 0x12, 0x03, 0x1f, 0x06, 0x12, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x02, 0x12, + 0x03, 0x1f, 0x13, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, 0x1f, + 0x31, 0x45, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, 0x01, 0x04, 0x12, 0x04, 0x20, 0x04, 0x27, + 0x06, 0x0a, 0x11, 0x0a, 0x09, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x12, 0x04, + 0x20, 0x04, 0x27, 0x06, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x04, 0x12, 0x03, 0x21, 0x06, 0x26, 0x0a, 0x11, 0x0a, 0x0a, 0x06, 0x00, 0x02, 0x01, 0x04, + 0xb0, 0xca, 0xbc, 0x22, 0x07, 0x12, 0x03, 0x22, 0x06, 0x0f, 0x0a, 0x13, 0x0a, 0x0b, 0x06, 0x00, + 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x12, 0x04, 0x23, 0x06, 0x26, 0x07, 0x0a, + 0x13, 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, 0x22, 0x0b, 0x00, 0x04, 0x12, + 0x03, 0x24, 0x08, 0x2c, 0x0a, 0x13, 0x0a, 0x0c, 0x06, 0x00, 0x02, 0x01, 0x04, 0xb0, 0xca, 0xbc, + 0x22, 0x0b, 0x00, 0x07, 0x12, 0x03, 0x25, 0x08, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x06, 0x00, 0x02, + 0x01, 0x04, 0x12, 0x04, 0x28, 0x04, 0xdf, 0x01, 0x0a, 0x0f, 0x0a, 0x07, 0x06, 0x00, 0x02, 0x01, + 0x04, 0x92, 0x08, 0x12, 0x04, 0x28, 0x04, 0xdf, 0x01, 0x0a, 0x10, 0x0a, 0x08, 0x06, 0x00, 0x02, + 0x01, 0x04, 0x92, 0x08, 0x03, 0x12, 0x04, 0x28, 0x4e, 0xdd, 0x01, 0x0a, 0xaa, 0x03, 0x0a, 0x02, + 0x04, 0x00, 0x12, 0x04, 0x31, 0x00, 0x5c, 0x01, 0x1a, 0x9d, 0x03, 0x20, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x2e, 0x0a, - 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x73, 0x08, 0x24, 0x0a, 0x89, 0x01, 0x0a, - 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x75, 0x02, 0x18, 0x1a, 0x7c, 0x20, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x52, - 0x4c, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x28, - 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x6d, 0x79, 0x2d, - 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x33, 0x2e, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, - 0x61, 0x77, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x2e, 0x74, 0x61, 0x72, 0x3f, - 0x58, 0x2d, 0x2e, 0x2e, 0x2e, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, - 0x05, 0x12, 0x03, 0x75, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x01, 0x12, - 0x03, 0x75, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, 0x03, 0x12, 0x03, 0x75, - 0x16, 0x17, 0x0a, 0x83, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, 0x03, 0x78, 0x02, 0x18, - 0x1a, 0x76, 0x20, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x55, 0x72, 0x6c, 0x20, 0x69, 0x73, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x73, - 0x33, 0x3a, 0x2f, 0x2f, 0x6d, 0x79, 0x2d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x72, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x66, 0x66, 0x69, - 0x78, 0x2e, 0x74, 0x61, 0x72, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, - 0x05, 0x12, 0x03, 0x78, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x01, 0x12, - 0x03, 0x78, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, 0x03, 0x12, 0x03, 0x78, - 0x16, 0x17, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, 0x7b, 0x02, 0x2b, 0x1a, - 0x34, 0x20, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x06, 0x12, 0x03, - 0x7b, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, 0x12, 0x03, 0x7b, 0x1c, - 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, 0x7b, 0x29, 0x2a, 0x0a, - 0x80, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x7e, 0x02, 0x22, 0x1a, 0x73, 0x20, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, - 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x20, - 0x6d, 0x75, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x73, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, 0x03, 0x7e, 0x02, 0x15, - 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x7e, 0x16, 0x1d, 0x0a, 0x0c, - 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x7e, 0x20, 0x21, 0x0a, 0x0c, 0x0a, 0x02, - 0x04, 0x02, 0x12, 0x06, 0x81, 0x01, 0x00, 0x9d, 0x01, 0x01, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x02, - 0x01, 0x12, 0x04, 0x81, 0x01, 0x08, 0x1b, 0x0a, 0x0e, 0x0a, 0x04, 0x04, 0x02, 0x08, 0x00, 0x12, - 0x06, 0x82, 0x01, 0x02, 0x8a, 0x01, 0x03, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x00, 0x01, - 0x12, 0x04, 0x82, 0x01, 0x08, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x00, 0x02, 0x12, - 0x04, 0x83, 0x01, 0x04, 0x30, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x08, 0x00, 0x02, 0x87, 0x09, - 0x01, 0x12, 0x04, 0x83, 0x01, 0x04, 0x30, 0x0a, 0x29, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, - 0x04, 0x86, 0x01, 0x04, 0x24, 0x1a, 0x1b, 0x20, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x64, - 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x04, 0x86, 0x01, 0x04, - 0x18, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x04, 0x86, 0x01, 0x19, 0x1f, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x03, 0x12, 0x04, 0x86, 0x01, 0x22, 0x23, 0x0a, - 0x48, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, 0x12, 0x04, 0x89, 0x01, 0x04, 0x2c, 0x1a, 0x3a, 0x20, - 0x54, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x69, 0x64, 0x20, 0x66, - 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x72, 0x75, 0x6e, 0x2e, 0x20, 0x52, 0x75, 0x6e, - 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x01, 0x06, 0x12, 0x04, 0x89, 0x01, 0x04, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, - 0x01, 0x12, 0x04, 0x89, 0x01, 0x1d, 0x27, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, - 0x12, 0x04, 0x89, 0x01, 0x2a, 0x2b, 0x0a, 0xbb, 0x01, 0x0a, 0x04, 0x04, 0x02, 0x08, 0x01, 0x12, - 0x06, 0x8e, 0x01, 0x02, 0x99, 0x01, 0x03, 0x1a, 0xaa, 0x01, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, - 0x61, 0x73, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, - 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a, 0x20, - 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, - 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x20, 0x77, 0x68, 0x69, 0x63, 0x68, 0x20, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, 0x65, 0x20, 0x65, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x68, 0x61, 0x73, 0x68, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x73, 0x75, 0x62, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x74, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6e, 0x20, 0x63, 0x61, - 0x6c, 0x6c, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x01, 0x01, 0x12, 0x04, 0x8e, - 0x01, 0x08, 0x0c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x01, 0x02, 0x12, 0x04, 0x8f, 0x01, - 0x04, 0x30, 0x0a, 0x10, 0x0a, 0x08, 0x04, 0x02, 0x08, 0x01, 0x02, 0x87, 0x09, 0x01, 0x12, 0x04, - 0x8f, 0x01, 0x04, 0x30, 0x0a, 0x23, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x04, 0x92, 0x01, + 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x20, 0x61, 0x20, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2d, 0x73, 0x69, 0x64, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x64, 0x20, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x2e, 0x0a, 0x20, + 0x54, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x73, 0x20, 0x6f, 0x6e, 0x65, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, + 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x2d, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x28, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x6f, 0x66, 0x20, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x64, 0x35, 0x29, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x20, 0x28, 0x69, 0x66, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x3b, 0x20, 0x4f, 0x52, 0x0a, + 0x20, 0x20, 0x20, 0x2d, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6f, + 0x74, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x28, 0x69, 0x66, 0x20, 0x66, + 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x61, 0x6e, 0x64, + 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x61, 0x72, 0x65, 0x20, 0x70, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x29, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x00, 0x01, 0x12, + 0x03, 0x31, 0x08, 0x23, 0x0a, 0x44, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x00, 0x12, 0x03, 0x34, 0x02, + 0x3f, 0x1a, 0x37, 0x20, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a, 0x20, + 0x2b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x00, 0x05, 0x12, 0x03, 0x34, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, + 0x01, 0x12, 0x03, 0x34, 0x09, 0x10, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x03, 0x12, + 0x03, 0x34, 0x13, 0x14, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x00, 0x08, 0x12, 0x03, 0x34, + 0x15, 0x3e, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x02, 0x00, 0x08, 0x87, 0x09, 0x0e, 0x02, 0x12, + 0x03, 0x34, 0x16, 0x3d, 0x0a, 0x43, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x01, 0x12, 0x03, 0x38, 0x02, + 0x3e, 0x1a, 0x36, 0x20, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a, 0x20, 0x2b, + 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x01, 0x05, 0x12, 0x03, 0x38, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x01, + 0x12, 0x03, 0x38, 0x09, 0x0f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x03, 0x12, 0x03, + 0x38, 0x12, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x01, 0x08, 0x12, 0x03, 0x38, 0x14, + 0x3d, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x02, 0x01, 0x08, 0x87, 0x09, 0x0e, 0x02, 0x12, 0x03, + 0x38, 0x15, 0x3c, 0x0a, 0xfc, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x02, 0x12, 0x03, 0x3c, 0x02, + 0x16, 0x1a, 0xee, 0x01, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x73, 0x69, + 0x72, 0x65, 0x64, 0x20, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x20, 0x45, 0x2e, 0x67, 0x2e, 0x20, 0x60, 0x66, 0x69, 0x6c, + 0x65, 0x2e, 0x70, 0x79, 0x60, 0x20, 0x6f, 0x72, 0x20, 0x60, 0x70, 0x72, 0x65, 0x2f, 0x66, 0x69, + 0x78, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x7a, 0x69, 0x70, 0x60, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x20, 0x42, 0x79, 0x20, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x2c, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x73, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x62, 0x61, 0x73, + 0x65, 0x64, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x05, 0x12, 0x03, 0x3c, 0x02, 0x08, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x01, 0x12, 0x03, 0x3c, 0x09, 0x11, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x02, 0x03, 0x12, 0x03, 0x3c, 0x14, 0x15, 0x0a, 0xe7, 0x01, 0x0a, + 0x04, 0x04, 0x00, 0x02, 0x03, 0x12, 0x03, 0x41, 0x02, 0x2a, 0x1a, 0xd9, 0x01, 0x20, 0x45, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x49, 0x6e, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x72, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x0a, 0x20, 0x65, + 0x78, 0x63, 0x65, 0x65, 0x64, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, + 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x72, + 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x06, 0x12, + 0x03, 0x41, 0x02, 0x1a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x01, 0x12, 0x03, 0x41, + 0x1b, 0x25, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x03, 0x03, 0x12, 0x03, 0x41, 0x28, 0x29, + 0x0a, 0xa8, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x04, 0x12, 0x03, 0x46, 0x02, 0x3e, 0x1a, 0x9a, + 0x01, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x44, 0x35, 0x20, 0x72, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x4d, 0x44, 0x35, 0x20, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x4d, 0x44, 0x35, + 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x61, 0x6c, 0x73, 0x6f, 0x20, + 0x61, 0x70, 0x70, 0x65, 0x61, 0x72, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x0a, 0x20, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x70, 0x61, 0x74, 0x68, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x0a, + 0x20, 0x2b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, + 0x00, 0x02, 0x04, 0x05, 0x12, 0x03, 0x46, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, + 0x04, 0x01, 0x12, 0x03, 0x46, 0x08, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x03, + 0x12, 0x03, 0x46, 0x16, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x04, 0x08, 0x12, 0x03, + 0x46, 0x18, 0x3d, 0x0a, 0x10, 0x0a, 0x09, 0x04, 0x00, 0x02, 0x04, 0x08, 0x87, 0x09, 0x0f, 0x0d, + 0x12, 0x03, 0x46, 0x19, 0x3c, 0x0a, 0xd2, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x05, 0x12, 0x03, + 0x4c, 0x02, 0x1b, 0x1a, 0xc4, 0x02, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x52, + 0x6f, 0x6f, 0x74, 0x2c, 0x20, 0x69, 0x66, 0x20, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2c, + 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x69, 0x6e, + 0x73, 0x74, 0x65, 0x61, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x4d, 0x44, 0x35, + 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x61, 0x74, + 0x68, 0x2e, 0x20, 0x57, 0x68, 0x65, 0x6e, 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x65, 0x64, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x0a, + 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x6d, 0x61, 0x6b, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x73, 0x74, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, + 0x2e, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x73, + 0x20, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x20, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2e, 0x0a, 0x20, + 0x2b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x05, 0x05, 0x12, 0x03, 0x4c, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, + 0x01, 0x12, 0x03, 0x4c, 0x09, 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x05, 0x03, 0x12, + 0x03, 0x4c, 0x19, 0x1a, 0x0a, 0x89, 0x02, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x06, 0x12, 0x03, 0x52, + 0x02, 0x24, 0x1a, 0xfb, 0x01, 0x20, 0x49, 0x66, 0x20, 0x74, 0x72, 0x75, 0x65, 0x2c, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x61, 0x64, 0x64, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, + 0x64, 0x35, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x20, 0x55, 0x52, 0x4c, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x2c, 0x0a, 0x20, 0x66, 0x6f, 0x72, 0x63, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x69, 0x73, + 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, + 0x20, 0x69, 0x73, 0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x69, 0x6e, 0x74, + 0x65, 0x67, 0x72, 0x69, 0x74, 0x79, 0x20, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, + 0x64, 0x73, 0x20, 0x6c, 0x69, 0x6b, 0x65, 0x20, 0x47, 0x43, 0x50, 0x2c, 0x20, 0x65, 0x6e, 0x73, + 0x75, 0x72, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x61, 0x74, 0x0a, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x2e, 0x0a, + 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x05, 0x12, 0x03, 0x52, 0x02, 0x06, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x00, 0x02, 0x06, 0x01, 0x12, 0x03, 0x52, 0x07, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x00, 0x02, 0x06, 0x03, 0x12, 0x03, 0x52, 0x22, 0x23, 0x0a, 0x4e, 0x0a, 0x04, 0x04, 0x00, + 0x02, 0x07, 0x12, 0x03, 0x56, 0x02, 0x11, 0x1a, 0x41, 0x20, 0x4f, 0x72, 0x67, 0x20, 0x69, 0x73, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x20, 0x74, 0x6f, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x0a, 0x20, + 0x2b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, + 0x02, 0x07, 0x05, 0x12, 0x03, 0x56, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, + 0x01, 0x12, 0x03, 0x56, 0x09, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x07, 0x03, 0x12, + 0x03, 0x56, 0x0f, 0x10, 0x0a, 0xae, 0x01, 0x0a, 0x04, 0x04, 0x00, 0x02, 0x08, 0x12, 0x03, 0x5b, + 0x02, 0x1b, 0x1a, 0xa0, 0x01, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x20, 0x69, 0x6e, 0x20, 0x62, 0x79, 0x74, 0x65, 0x73, 0x2e, 0x0a, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x20, 0x61, 0x67, 0x61, 0x69, 0x6e, 0x73, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x27, 0x73, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x69, 0x66, 0x20, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x05, 0x12, 0x03, + 0x5b, 0x02, 0x07, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x01, 0x12, 0x03, 0x5b, 0x08, + 0x16, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x00, 0x02, 0x08, 0x03, 0x12, 0x03, 0x5b, 0x19, 0x1a, 0x0a, + 0x63, 0x0a, 0x02, 0x04, 0x01, 0x12, 0x04, 0x5f, 0x00, 0x6b, 0x01, 0x1a, 0x57, 0x20, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, + 0x50, 0x49, 0x2e, 0x0a, 0x0a, 0x0a, 0x0a, 0x03, 0x04, 0x01, 0x01, 0x12, 0x03, 0x5f, 0x08, 0x24, + 0x0a, 0x89, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x00, 0x12, 0x03, 0x61, 0x02, 0x18, 0x1a, 0x7c, + 0x20, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, + 0x65, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, + 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x20, 0x28, 0x65, 0x2e, 0x67, 0x2e, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x6d, 0x79, 0x2d, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x33, 0x2e, 0x61, 0x6d, + 0x61, 0x7a, 0x6f, 0x6e, 0x61, 0x77, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x2e, + 0x74, 0x61, 0x72, 0x3f, 0x58, 0x2d, 0x2e, 0x2e, 0x2e, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x00, 0x05, 0x12, 0x03, 0x61, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x00, 0x01, 0x12, 0x03, 0x61, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x00, + 0x03, 0x12, 0x03, 0x61, 0x16, 0x17, 0x0a, 0x83, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x01, 0x12, + 0x03, 0x64, 0x02, 0x18, 0x1a, 0x76, 0x20, 0x4e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x55, 0x72, 0x6c, + 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x69, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x20, 0x28, 0x65, 0x2e, + 0x67, 0x2e, 0x20, 0x73, 0x33, 0x3a, 0x2f, 0x2f, 0x6d, 0x79, 0x2d, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x2f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x2f, 0x73, + 0x75, 0x66, 0x66, 0x69, 0x78, 0x2e, 0x74, 0x61, 0x72, 0x29, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x01, 0x02, 0x01, 0x05, 0x12, 0x03, 0x64, 0x02, 0x08, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, + 0x02, 0x01, 0x01, 0x12, 0x03, 0x64, 0x09, 0x13, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x01, + 0x03, 0x12, 0x03, 0x64, 0x16, 0x17, 0x0a, 0x41, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x02, 0x12, 0x03, + 0x67, 0x02, 0x2b, 0x1a, 0x34, 0x20, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x20, + 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x20, 0x77, 0x69, 0x6c, 0x6c, + 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, + 0x02, 0x06, 0x12, 0x03, 0x67, 0x02, 0x1b, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x67, 0x1c, 0x26, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x67, 0x29, 0x2a, 0x0a, 0x80, 0x01, 0x0a, 0x04, 0x04, 0x01, 0x02, 0x03, 0x12, 0x03, 0x6a, 0x02, + 0x22, 0x1a, 0x73, 0x20, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x20, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x20, 0x6d, 0x75, 0x73, 0x74, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x20, 0x69, + 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x06, 0x12, + 0x03, 0x6a, 0x02, 0x15, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x01, 0x12, 0x03, 0x6a, + 0x16, 0x1d, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x01, 0x02, 0x03, 0x03, 0x12, 0x03, 0x6a, 0x20, 0x21, + 0x0a, 0x0b, 0x0a, 0x02, 0x04, 0x02, 0x12, 0x05, 0x6d, 0x00, 0x89, 0x01, 0x01, 0x0a, 0x0a, 0x0a, + 0x03, 0x04, 0x02, 0x01, 0x12, 0x03, 0x6d, 0x08, 0x1b, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x02, 0x08, + 0x00, 0x12, 0x04, 0x6e, 0x02, 0x76, 0x03, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x00, 0x01, + 0x12, 0x03, 0x6e, 0x08, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x00, 0x02, 0x12, 0x03, + 0x6f, 0x04, 0x30, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x08, 0x00, 0x02, 0x87, 0x09, 0x01, 0x12, + 0x03, 0x6f, 0x04, 0x30, 0x0a, 0x28, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x00, 0x12, 0x03, 0x72, 0x04, + 0x24, 0x1a, 0x1b, 0x20, 0x54, 0x68, 0x65, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x64, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x69, 0x64, 0x2e, 0x0a, 0x0a, 0x0c, + 0x0a, 0x05, 0x04, 0x02, 0x02, 0x00, 0x06, 0x12, 0x03, 0x72, 0x04, 0x18, 0x0a, 0x0c, 0x0a, 0x05, + 0x04, 0x02, 0x02, 0x00, 0x01, 0x12, 0x03, 0x72, 0x19, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x00, 0x03, 0x12, 0x03, 0x72, 0x22, 0x23, 0x0a, 0x47, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x75, 0x04, 0x2c, 0x1a, 0x3a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x20, 0x69, 0x64, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, + 0x72, 0x75, 0x6e, 0x2e, 0x20, 0x52, 0x75, 0x6e, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x77, 0x69, + 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x06, 0x12, 0x03, 0x75, 0x04, 0x1c, 0x0a, + 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x01, 0x01, 0x12, 0x03, 0x75, 0x1d, 0x27, 0x0a, 0x0c, 0x0a, + 0x05, 0x04, 0x02, 0x02, 0x01, 0x03, 0x12, 0x03, 0x75, 0x2a, 0x2b, 0x0a, 0xba, 0x01, 0x0a, 0x04, + 0x04, 0x02, 0x08, 0x01, 0x12, 0x05, 0x7a, 0x02, 0x85, 0x01, 0x03, 0x1a, 0xaa, 0x01, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x2e, 0x0a, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x75, 0x73, 0x65, 0x64, + 0x20, 0x74, 0x6f, 0x20, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x65, 0x20, 0x77, 0x68, + 0x69, 0x63, 0x68, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x62, + 0x65, 0x20, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x20, 0x75, 0x73, 0x65, 0x64, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x63, 0x61, 0x63, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x20, 0x61, 0x20, 0x73, 0x75, 0x62, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6e, 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x01, + 0x01, 0x12, 0x03, 0x7a, 0x08, 0x0c, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x08, 0x01, 0x02, 0x12, + 0x03, 0x7b, 0x04, 0x30, 0x0a, 0x0f, 0x0a, 0x08, 0x04, 0x02, 0x08, 0x01, 0x02, 0x87, 0x09, 0x01, + 0x12, 0x03, 0x7b, 0x04, 0x30, 0x0a, 0x22, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x02, 0x12, 0x03, 0x7e, 0x04, 0x24, 0x1a, 0x15, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x69, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, - 0x02, 0x06, 0x12, 0x04, 0x92, 0x01, 0x04, 0x17, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, - 0x01, 0x12, 0x04, 0x92, 0x01, 0x18, 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, - 0x12, 0x04, 0x92, 0x01, 0x22, 0x23, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x04, - 0x95, 0x01, 0x04, 0x20, 0x1a, 0x17, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, - 0x73, 0x70, 0x65, 0x63, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x02, 0x02, 0x03, 0x06, 0x12, 0x04, 0x95, 0x01, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x02, 0x02, 0x03, 0x01, 0x12, 0x04, 0x95, 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x02, 0x02, 0x03, 0x03, 0x12, 0x04, 0x95, 0x01, 0x1e, 0x1f, 0x0a, 0x28, 0x0a, 0x04, 0x04, 0x02, - 0x02, 0x04, 0x12, 0x04, 0x98, 0x01, 0x04, 0x28, 0x1a, 0x1a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x75, - 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x06, 0x12, 0x04, 0x98, - 0x01, 0x04, 0x16, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, 0x98, 0x01, - 0x17, 0x23, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x04, 0x98, 0x01, 0x26, - 0x27, 0x0a, 0x22, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x04, 0x9c, 0x01, 0x02, 0x19, 0x1a, - 0x14, 0x20, 0x54, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x73, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x06, 0x12, 0x04, - 0x9c, 0x01, 0x02, 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0x9c, - 0x01, 0x0e, 0x14, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x04, 0x9c, 0x01, - 0x17, 0x18, 0x0a, 0x0c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, 0x9f, 0x01, 0x00, 0xa1, 0x01, 0x01, - 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0x9f, 0x01, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, - 0x04, 0x04, 0x03, 0x02, 0x00, 0x12, 0x04, 0xa0, 0x01, 0x02, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x03, 0x02, 0x00, 0x06, 0x12, 0x04, 0xa0, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xa0, 0x01, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xa0, 0x01, 0x33, 0x34, 0x0a, 0x57, 0x0a, 0x02, 0x04, 0x04, 0x12, 0x06, - 0xa4, 0x01, 0x00, 0xaa, 0x01, 0x01, 0x1a, 0x49, 0x20, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x55, 0x52, 0x4c, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, - 0x61, 0x20, 0x6c, 0x69, 0x73, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x20, 0x55, 0x52, 0x4c, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2e, - 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x04, 0x01, 0x12, 0x04, 0xa4, 0x01, 0x08, 0x15, 0x0a, 0x4f, - 0x0a, 0x04, 0x04, 0x04, 0x02, 0x00, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x21, 0x1a, 0x41, 0x20, 0x53, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x20, 0x61, 0x72, 0x65, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x70, 0x72, 0x65, 0x2d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x73, - 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x0a, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x04, 0x12, 0x04, 0xa6, 0x01, 0x02, 0x0a, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x00, 0x05, 0x12, 0x04, 0xa6, 0x01, 0x0b, 0x11, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x04, 0x02, 0x00, 0x01, 0x12, 0x04, 0xa6, 0x01, 0x12, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x04, 0x02, 0x00, 0x03, 0x12, 0x04, 0xa6, 0x01, 0x1f, 0x20, 0x0a, 0x43, 0x0a, 0x04, 0x04, - 0x04, 0x02, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x02, 0x2b, 0x1a, 0x35, 0x20, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x73, 0x41, 0x74, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x77, 0x68, - 0x65, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x55, 0x52, - 0x4c, 0x73, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x2e, 0x0a, - 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x06, 0x12, 0x04, 0xa9, 0x01, 0x02, 0x1b, 0x0a, - 0x0d, 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x01, 0x12, 0x04, 0xa9, 0x01, 0x1c, 0x26, 0x0a, 0x0d, - 0x0a, 0x05, 0x04, 0x04, 0x02, 0x01, 0x03, 0x12, 0x04, 0xa9, 0x01, 0x29, 0x2a, 0x0a, 0x5f, 0x0a, - 0x02, 0x04, 0x05, 0x12, 0x06, 0xad, 0x01, 0x00, 0xc0, 0x01, 0x01, 0x1a, 0x51, 0x20, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x41, 0x50, 0x49, 0x2e, 0x0a, 0x0a, 0x0b, - 0x0a, 0x03, 0x04, 0x05, 0x01, 0x12, 0x04, 0xad, 0x01, 0x08, 0x21, 0x0a, 0x4e, 0x0a, 0x04, 0x04, - 0x05, 0x02, 0x00, 0x12, 0x06, 0xb0, 0x01, 0x02, 0xb2, 0x01, 0x05, 0x1a, 0x3e, 0x20, 0x41, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x74, 0x79, 0x70, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x0a, - 0x20, 0x2b, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, - 0x05, 0x02, 0x00, 0x06, 0x12, 0x04, 0xb0, 0x01, 0x02, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x00, 0x01, 0x12, 0x04, 0xb0, 0x01, 0x0f, 0x1c, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x00, 0x03, 0x12, 0x04, 0xb0, 0x01, 0x1f, 0x20, 0x0a, 0x0f, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x00, - 0x08, 0x12, 0x06, 0xb0, 0x01, 0x21, 0xb2, 0x01, 0x04, 0x0a, 0x12, 0x0a, 0x08, 0x04, 0x05, 0x02, - 0x00, 0x08, 0x87, 0x09, 0x10, 0x12, 0x06, 0xb0, 0x01, 0x22, 0xb2, 0x01, 0x03, 0x0a, 0x12, 0x0a, - 0x0a, 0x04, 0x05, 0x02, 0x00, 0x08, 0x87, 0x09, 0x10, 0x04, 0x00, 0x12, 0x04, 0xb1, 0x01, 0x0d, - 0x0e, 0x0a, 0x5a, 0x0a, 0x04, 0x04, 0x05, 0x08, 0x00, 0x12, 0x06, 0xb5, 0x01, 0x02, 0xba, 0x01, - 0x03, 0x1a, 0x4a, 0x20, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x20, 0x77, 0x68, 0x6f, 0x73, 0x65, 0x20, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x20, 0x69, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, - 0x20, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, - 0x05, 0x04, 0x05, 0x08, 0x00, 0x01, 0x12, 0x04, 0xb5, 0x01, 0x08, 0x0e, 0x0a, 0x0d, 0x0a, 0x05, - 0x04, 0x05, 0x08, 0x00, 0x02, 0x12, 0x04, 0xb6, 0x01, 0x04, 0x30, 0x0a, 0x10, 0x0a, 0x08, 0x04, - 0x05, 0x08, 0x00, 0x02, 0x87, 0x09, 0x01, 0x12, 0x04, 0xb6, 0x01, 0x04, 0x30, 0x0a, 0x6b, 0x0a, - 0x04, 0x04, 0x05, 0x02, 0x01, 0x12, 0x04, 0xb9, 0x01, 0x04, 0x39, 0x1a, 0x5d, 0x20, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x49, 0x64, 0x20, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x20, 0x6f, 0x66, - 0x20, 0x61, 0x20, 0x72, 0x75, 0x6e, 0x20, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, - 0x61, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, - 0x02, 0x01, 0x06, 0x12, 0x04, 0xb9, 0x01, 0x04, 0x22, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, - 0x01, 0x01, 0x12, 0x04, 0xb9, 0x01, 0x23, 0x34, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x01, - 0x03, 0x12, 0x04, 0xb9, 0x01, 0x37, 0x38, 0x0a, 0xe9, 0x01, 0x0a, 0x04, 0x04, 0x05, 0x02, 0x02, - 0x12, 0x04, 0xbf, 0x01, 0x02, 0x2a, 0x1a, 0xda, 0x01, 0x20, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x73, 0x49, 0x6e, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x66, 0x6f, - 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x20, - 0x55, 0x52, 0x4c, 0x73, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x20, 0x77, 0x69, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x0a, 0x20, 0x72, 0x65, 0x6a, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x20, 0x69, 0x66, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x65, 0x78, 0x63, 0x65, - 0x65, 0x64, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x27, 0x73, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x20, 0x6d, 0x61, - 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x2e, 0x0a, 0x20, 0x2b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x20, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x20, 0x63, 0x6f, 0x6d, 0x65, 0x73, 0x20, 0x66, 0x72, 0x6f, 0x6d, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x06, 0x12, 0x04, 0xbf, 0x01, - 0x02, 0x1a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x01, 0x12, 0x04, 0xbf, 0x01, 0x1b, - 0x25, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x05, 0x02, 0x02, 0x03, 0x12, 0x04, 0xbf, 0x01, 0x28, 0x29, - 0x0a, 0x61, 0x0a, 0x02, 0x04, 0x06, 0x12, 0x06, 0xc3, 0x01, 0x00, 0xc6, 0x01, 0x01, 0x1a, 0x53, - 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, - 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x20, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x20, 0x41, 0x50, - 0x49, 0x2e, 0x0a, 0x0a, 0x0b, 0x0a, 0x03, 0x04, 0x06, 0x01, 0x12, 0x04, 0xc3, 0x01, 0x08, 0x22, - 0x0a, 0x51, 0x0a, 0x04, 0x04, 0x06, 0x02, 0x00, 0x12, 0x04, 0xc5, 0x01, 0x02, 0x24, 0x1a, 0x43, - 0x20, 0x50, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x73, 0x20, 0x63, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x20, 0x55, 0x52, 0x4c, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x68, 0x65, 0x69, - 0x72, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x06, 0x12, 0x04, 0xc5, 0x01, - 0x02, 0x0f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x01, 0x12, 0x04, 0xc5, 0x01, 0x10, - 0x1f, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x06, 0x02, 0x00, 0x03, 0x12, 0x04, 0xc5, 0x01, 0x22, 0x23, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x02, 0x06, 0x12, 0x03, 0x7e, 0x04, 0x17, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x01, + 0x12, 0x03, 0x7e, 0x18, 0x1f, 0x0a, 0x0c, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x02, 0x03, 0x12, 0x03, + 0x7e, 0x22, 0x23, 0x0a, 0x25, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x03, 0x12, 0x04, 0x81, 0x01, 0x04, + 0x20, 0x1a, 0x17, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x20, 0x73, 0x70, 0x65, + 0x63, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, + 0x02, 0x03, 0x06, 0x12, 0x04, 0x81, 0x01, 0x04, 0x11, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, + 0x03, 0x01, 0x12, 0x04, 0x81, 0x01, 0x12, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x03, + 0x03, 0x12, 0x04, 0x81, 0x01, 0x1e, 0x1f, 0x0a, 0x28, 0x0a, 0x04, 0x04, 0x02, 0x02, 0x04, 0x12, + 0x04, 0x84, 0x01, 0x04, 0x28, 0x1a, 0x1a, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x73, 0x65, 0x2e, + 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x06, 0x12, 0x04, 0x84, 0x01, 0x04, 0x16, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x01, 0x12, 0x04, 0x84, 0x01, 0x17, 0x23, 0x0a, + 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x04, 0x03, 0x12, 0x04, 0x84, 0x01, 0x26, 0x27, 0x0a, 0x22, + 0x0a, 0x04, 0x04, 0x02, 0x02, 0x05, 0x12, 0x04, 0x88, 0x01, 0x02, 0x19, 0x1a, 0x14, 0x20, 0x54, + 0x68, 0x65, 0x20, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x2e, 0x0a, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x06, 0x12, 0x04, 0x88, 0x01, 0x02, + 0x0d, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x01, 0x12, 0x04, 0x88, 0x01, 0x0e, 0x14, + 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x02, 0x02, 0x05, 0x03, 0x12, 0x04, 0x88, 0x01, 0x17, 0x18, 0x0a, + 0x0c, 0x0a, 0x02, 0x04, 0x03, 0x12, 0x06, 0x8b, 0x01, 0x00, 0x8d, 0x01, 0x01, 0x0a, 0x0b, 0x0a, + 0x03, 0x04, 0x03, 0x01, 0x12, 0x04, 0x8b, 0x01, 0x08, 0x1c, 0x0a, 0x0c, 0x0a, 0x04, 0x04, 0x03, + 0x02, 0x00, 0x12, 0x04, 0x8c, 0x01, 0x02, 0x35, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, + 0x06, 0x12, 0x04, 0x8c, 0x01, 0x02, 0x1b, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x01, + 0x12, 0x04, 0x8c, 0x01, 0x1c, 0x30, 0x0a, 0x0d, 0x0a, 0x05, 0x04, 0x03, 0x02, 0x00, 0x03, 0x12, + 0x04, 0x8c, 0x01, 0x33, 0x34, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ]; include!("flyteidl2.dataproxy.tonic.rs"); // @@protoc_insertion_point(module) \ No newline at end of file diff --git a/gen/rust/src/flyteidl2.dataproxy.tonic.rs b/gen/rust/src/flyteidl2.dataproxy.tonic.rs index 1424bccb20..4872d0e269 100644 --- a/gen/rust/src/flyteidl2.dataproxy.tonic.rs +++ b/gen/rust/src/flyteidl2.dataproxy.tonic.rs @@ -144,36 +144,6 @@ pub mod data_proxy_service_client { ); self.inner.unary(req, path, codec).await } - pub async fn create_download_link( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static( - "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink", - ); - let mut req = request.into_request(); - req.extensions_mut() - .insert( - GrpcMethod::new( - "flyteidl2.dataproxy.DataProxyService", - "CreateDownloadLink", - ), - ); - self.inner.unary(req, path, codec).await - } } } /// Generated server implementations. @@ -197,13 +167,6 @@ pub mod data_proxy_service_server { tonic::Response, tonic::Status, >; - async fn create_download_link( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; } #[derive(Debug)] pub struct DataProxyServiceServer { @@ -376,55 +339,6 @@ pub mod data_proxy_service_server { }; Box::pin(fut) } - "/flyteidl2.dataproxy.DataProxyService/CreateDownloadLink" => { - #[allow(non_camel_case_types)] - struct CreateDownloadLinkSvc(pub Arc); - impl< - T: DataProxyService, - > tonic::server::UnaryService - for CreateDownloadLinkSvc { - type Response = super::CreateDownloadLinkResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::create_download_link( - &inner, - request, - ) - .await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = CreateDownloadLinkSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } _ => { Box::pin(async move { Ok( diff --git a/gen/ts/flyteidl2/dataproxy/dataproxy_service_pb.ts b/gen/ts/flyteidl2/dataproxy/dataproxy_service_pb.ts index e601c189c1..2f8f9f3b27 100644 --- a/gen/ts/flyteidl2/dataproxy/dataproxy_service_pb.ts +++ b/gen/ts/flyteidl2/dataproxy/dataproxy_service_pb.ts @@ -2,10 +2,10 @@ // @generated from file flyteidl2/dataproxy/dataproxy_service.proto (package flyteidl2.dataproxy, syntax proto3) /* eslint-disable */ -import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1"; -import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1"; +import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv1"; +import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv1"; import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts"; -import type { ActionAttemptIdentifier, ProjectIdentifier, RunIdentifier, TriggerName } from "../common/identifier_pb.ts"; +import type { ProjectIdentifier, RunIdentifier, TriggerName } from "../common/identifier_pb.ts"; import { file_flyteidl2_common_identifier } from "../common/identifier_pb.ts"; import type { OffloadedInputData } from "../common/run_pb.ts"; import { file_flyteidl2_common_run } from "../common/run_pb.ts"; @@ -23,7 +23,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file flyteidl2/dataproxy/dataproxy_service.proto. */ export const file_flyteidl2_dataproxy_dataproxy_service: GenFile = /*@__PURE__*/ - fileDesc("CitmbHl0ZWlkbDIvZGF0YXByb3h5L2RhdGFwcm94eV9zZXJ2aWNlLnByb3RvEhNmbHl0ZWlkbDIuZGF0YXByb3h5Io0CChtDcmVhdGVVcGxvYWRMb2NhdGlvblJlcXVlc3QSGAoHcHJvamVjdBgBIAEoCUIHukgEcgIQARIXCgZkb21haW4YAiABKAlCB7pIBHICEAESEAoIZmlsZW5hbWUYAyABKAkSLQoKZXhwaXJlc19pbhgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIcCgtjb250ZW50X21kNRgFIAEoDEIHukgEegJoEBIVCg1maWxlbmFtZV9yb290GAYgASgJEiAKGGFkZF9jb250ZW50X21kNV9tZXRhZGF0YRgHIAEoCBILCgNvcmcYCCABKAkSFgoOY29udGVudF9sZW5ndGgYCSABKAMi9wEKHENyZWF0ZVVwbG9hZExvY2F0aW9uUmVzcG9uc2USEgoKc2lnbmVkX3VybBgBIAEoCRISCgpuYXRpdmVfdXJsGAIgASgJEi4KCmV4cGlyZXNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEk8KB2hlYWRlcnMYBCADKAsyPi5mbHl0ZWlkbDIuZGF0YXByb3h5LkNyZWF0ZVVwbG9hZExvY2F0aW9uUmVzcG9uc2UuSGVhZGVyc0VudHJ5Gi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIuACChNVcGxvYWRJbnB1dHNSZXF1ZXN0EjEKBnJ1bl9pZBgBIAEoCzIfLmZseXRlaWRsMi5jb21tb24uUnVuSWRlbnRpZmllckgAEjkKCnByb2plY3RfaWQYAiABKAsyIy5mbHl0ZWlkbDIuY29tbW9uLlByb2plY3RJZGVudGlmaWVySAASMQoHdGFza19pZBgDIAEoCzIeLmZseXRlaWRsMi50YXNrLlRhc2tJZGVudGlmaWVySAESLQoJdGFza19zcGVjGAQgASgLMhguZmx5dGVpZGwyLnRhc2suVGFza1NwZWNIARI1Cgx0cmlnZ2VyX25hbWUYBSABKAsyHS5mbHl0ZWlkbDIuY29tbW9uLlRyaWdnZXJOYW1lSAESJgoGaW5wdXRzGAYgASgLMhYuZmx5dGVpZGwyLnRhc2suSW5wdXRzQgsKAmlkEgW6SAIIAUINCgR0YXNrEgW6SAIIASJaChRVcGxvYWRJbnB1dHNSZXNwb25zZRJCChRvZmZsb2FkZWRfaW5wdXRfZGF0YRgBIAEoCzIkLmZseXRlaWRsMi5jb21tb24uT2ZmbG9hZGVkSW5wdXREYXRhIlMKDVByZVNpZ25lZFVSTHMSEgoKc2lnbmVkX3VybBgBIAMoCRIuCgpleHBpcmVzX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCLnAQoZQ3JlYXRlRG93bmxvYWRMaW5rUmVxdWVzdBJCCg1hcnRpZmFjdF90eXBlGAEgASgOMiEuZmx5dGVpZGwyLmRhdGFwcm94eS5BcnRpZmFjdFR5cGVCCLpIBYIBAiAAEkYKEWFjdGlvbl9hdHRlbXB0X2lkGAIgASgLMikuZmx5dGVpZGwyLmNvbW1vbi5BY3Rpb25BdHRlbXB0SWRlbnRpZmllckgAEi0KCmV4cGlyZXNfaW4YAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CDwoGc291cmNlEgW6SAIIASJZChpDcmVhdGVEb3dubG9hZExpbmtSZXNwb25zZRI7Cg9wcmVfc2lnbmVkX3VybHMYASABKAsyIi5mbHl0ZWlkbDIuZGF0YXByb3h5LlByZVNpZ25lZFVSTHMqRwoMQXJ0aWZhY3RUeXBlEh0KGUFSVElGQUNUX1RZUEVfVU5TUEVDSUZJRUQQABIYChRBUlRJRkFDVF9UWVBFX1JFUE9SVBABMp4HChBEYXRhUHJveHlTZXJ2aWNlEqACChRDcmVhdGVVcGxvYWRMb2NhdGlvbhIwLmZseXRlaWRsMi5kYXRhcHJveHkuQ3JlYXRlVXBsb2FkTG9jYXRpb25SZXF1ZXN0GjEuZmx5dGVpZGwyLmRhdGFwcm94eS5DcmVhdGVVcGxvYWRMb2NhdGlvblJlc3BvbnNlIqIBkkFNGktDcmVhdGVzIGEgd3JpdGUtb25seSBodHRwIGxvY2F0aW9uIHRoYXQgaXMgYWNjZXNzaWJsZSBmb3IgdGFza3MgYXQgcnVudGltZS6C0+STAkw6ASpaJzoBKiIiL2FwaS92MS9vcmcvZGF0YXByb3h5L2FydGlmYWN0X3VybiIeL2FwaS92MS9kYXRhcHJveHkvYXJ0aWZhY3RfdXJuErMCCgxVcGxvYWRJbnB1dHMSKC5mbHl0ZWlkbDIuZGF0YXByb3h5LlVwbG9hZElucHV0c1JlcXVlc3QaKS5mbHl0ZWlkbDIuZGF0YXByb3h5LlVwbG9hZElucHV0c1Jlc3BvbnNlIs0BkkGDARqAAVVwbG9hZHMgaW5wdXRzIGZvciBhIGdpdmVuIHJ1biBvciBwcm9qZWN0IGFuZCByZXR1cm5zIGEgVVJJIGFuZCBjYWNoZSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgdGhlc2UgaW5wdXRzIGF0IHJ1bnRpbWUugtPkkwJAOgEqWiE6ASoiHC9hcGkvdjEvb3JnL2RhdGFwcm94eS9pbnB1dHMiGC9hcGkvdjEvZGF0YXByb3h5L2lucHV0cxKwAgoSQ3JlYXRlRG93bmxvYWRMaW5rEi4uZmx5dGVpZGwyLmRhdGFwcm94eS5DcmVhdGVEb3dubG9hZExpbmtSZXF1ZXN0Gi8uZmx5dGVpZGwyLmRhdGFwcm94eS5DcmVhdGVEb3dubG9hZExpbmtSZXNwb25zZSK4AZJBURpPQ3JlYXRlcyBzaWduZWQgVVJMKHMpIGZvciBkb3dubG9hZGluZyBhbiBhcnRpZmFjdCBhc3NvY2lhdGVkIHdpdGggYSBydW4gYWN0aW9uLoLT5JMCXjoBKlowOgEqIisvYXBpL3YxL29yZy9kYXRhcHJveHkvYXJ0aWZhY3RfdXJuL2Rvd25sb2FkIicvYXBpL3YxL2RhdGFwcm94eS9hcnRpZmFjdF91cm4vZG93bmxvYWRC2AEKF2NvbS5mbHl0ZWlkbDIuZGF0YXByb3h5QhVEYXRhcHJveHlTZXJ2aWNlUHJvdG9IAlABWjdnaXRodWIuY29tL2ZseXRlb3JnL2ZseXRlL3YyL2dlbi9nby9mbHl0ZWlkbDIvZGF0YXByb3h5ogIDRkRYqgITRmx5dGVpZGwyLkRhdGFwcm94ecoCE0ZseXRlaWRsMlxEYXRhcHJveHniAh9GbHl0ZWlkbDJcRGF0YXByb3h5XEdQQk1ldGFkYXRh6gIURmx5dGVpZGwyOjpEYXRhcHJveHliBnByb3RvMw", [file_buf_validate_validate, file_flyteidl2_common_identifier, file_flyteidl2_common_run, file_flyteidl2_task_common, file_flyteidl2_task_task_definition, file_google_api_annotations, file_google_protobuf_duration, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations]); + fileDesc("CitmbHl0ZWlkbDIvZGF0YXByb3h5L2RhdGFwcm94eV9zZXJ2aWNlLnByb3RvEhNmbHl0ZWlkbDIuZGF0YXByb3h5Io0CChtDcmVhdGVVcGxvYWRMb2NhdGlvblJlcXVlc3QSGAoHcHJvamVjdBgBIAEoCUIHukgEcgIQARIXCgZkb21haW4YAiABKAlCB7pIBHICEAESEAoIZmlsZW5hbWUYAyABKAkSLQoKZXhwaXJlc19pbhgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbhIcCgtjb250ZW50X21kNRgFIAEoDEIHukgEegJoEBIVCg1maWxlbmFtZV9yb290GAYgASgJEiAKGGFkZF9jb250ZW50X21kNV9tZXRhZGF0YRgHIAEoCBILCgNvcmcYCCABKAkSFgoOY29udGVudF9sZW5ndGgYCSABKAMi9wEKHENyZWF0ZVVwbG9hZExvY2F0aW9uUmVzcG9uc2USEgoKc2lnbmVkX3VybBgBIAEoCRISCgpuYXRpdmVfdXJsGAIgASgJEi4KCmV4cGlyZXNfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEk8KB2hlYWRlcnMYBCADKAsyPi5mbHl0ZWlkbDIuZGF0YXByb3h5LkNyZWF0ZVVwbG9hZExvY2F0aW9uUmVzcG9uc2UuSGVhZGVyc0VudHJ5Gi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIuACChNVcGxvYWRJbnB1dHNSZXF1ZXN0EjEKBnJ1bl9pZBgBIAEoCzIfLmZseXRlaWRsMi5jb21tb24uUnVuSWRlbnRpZmllckgAEjkKCnByb2plY3RfaWQYAiABKAsyIy5mbHl0ZWlkbDIuY29tbW9uLlByb2plY3RJZGVudGlmaWVySAASMQoHdGFza19pZBgDIAEoCzIeLmZseXRlaWRsMi50YXNrLlRhc2tJZGVudGlmaWVySAESLQoJdGFza19zcGVjGAQgASgLMhguZmx5dGVpZGwyLnRhc2suVGFza1NwZWNIARI1Cgx0cmlnZ2VyX25hbWUYBSABKAsyHS5mbHl0ZWlkbDIuY29tbW9uLlRyaWdnZXJOYW1lSAESJgoGaW5wdXRzGAYgASgLMhYuZmx5dGVpZGwyLnRhc2suSW5wdXRzQgsKAmlkEgW6SAIIAUINCgR0YXNrEgW6SAIIASJaChRVcGxvYWRJbnB1dHNSZXNwb25zZRJCChRvZmZsb2FkZWRfaW5wdXRfZGF0YRgBIAEoCzIkLmZseXRlaWRsMi5jb21tb24uT2ZmbG9hZGVkSW5wdXREYXRhMusEChBEYXRhUHJveHlTZXJ2aWNlEqACChRDcmVhdGVVcGxvYWRMb2NhdGlvbhIwLmZseXRlaWRsMi5kYXRhcHJveHkuQ3JlYXRlVXBsb2FkTG9jYXRpb25SZXF1ZXN0GjEuZmx5dGVpZGwyLmRhdGFwcm94eS5DcmVhdGVVcGxvYWRMb2NhdGlvblJlc3BvbnNlIqIBkkFNGktDcmVhdGVzIGEgd3JpdGUtb25seSBodHRwIGxvY2F0aW9uIHRoYXQgaXMgYWNjZXNzaWJsZSBmb3IgdGFza3MgYXQgcnVudGltZS6C0+STAkw6ASpaJzoBKiIiL2FwaS92MS9vcmcvZGF0YXByb3h5L2FydGlmYWN0X3VybiIeL2FwaS92MS9kYXRhcHJveHkvYXJ0aWZhY3RfdXJuErMCCgxVcGxvYWRJbnB1dHMSKC5mbHl0ZWlkbDIuZGF0YXByb3h5LlVwbG9hZElucHV0c1JlcXVlc3QaKS5mbHl0ZWlkbDIuZGF0YXByb3h5LlVwbG9hZElucHV0c1Jlc3BvbnNlIs0BkkGDARqAAVVwbG9hZHMgaW5wdXRzIGZvciBhIGdpdmVuIHJ1biBvciBwcm9qZWN0IGFuZCByZXR1cm5zIGEgVVJJIGFuZCBjYWNoZSBrZXkgdGhhdCBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgdGhlc2UgaW5wdXRzIGF0IHJ1bnRpbWUugtPkkwJAOgEqWiE6ASoiHC9hcGkvdjEvb3JnL2RhdGFwcm94eS9pbnB1dHMiGC9hcGkvdjEvZGF0YXByb3h5L2lucHV0c0LYAQoXY29tLmZseXRlaWRsMi5kYXRhcHJveHlCFURhdGFwcm94eVNlcnZpY2VQcm90b0gCUAFaN2dpdGh1Yi5jb20vZmx5dGVvcmcvZmx5dGUvdjIvZ2VuL2dvL2ZseXRlaWRsMi9kYXRhcHJveHmiAgNGRFiqAhNGbHl0ZWlkbDIuRGF0YXByb3h5ygITRmx5dGVpZGwyXERhdGFwcm94eeICH0ZseXRlaWRsMlxEYXRhcHJveHlcR1BCTWV0YWRhdGHqAhRGbHl0ZWlkbDI6OkRhdGFwcm94eWIGcHJvdG8z", [file_buf_validate_validate, file_flyteidl2_common_identifier, file_flyteidl2_common_run, file_flyteidl2_task_common, file_flyteidl2_task_task_definition, file_google_api_annotations, file_google_protobuf_duration, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations]); /** * CreateUploadLocationRequest specifies the request for the CreateUploadLocation API. @@ -253,126 +253,6 @@ export type UploadInputsResponse = Message<"flyteidl2.dataproxy.UploadInputsResp export const UploadInputsResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_flyteidl2_dataproxy_dataproxy_service, 3); -/** - * PreSignedURLs contains a list of signed URLs for downloading artifacts. - * - * @generated from message flyteidl2.dataproxy.PreSignedURLs - */ -export type PreSignedURLs = Message<"flyteidl2.dataproxy.PreSignedURLs"> & { - /** - * SignedUrl are the pre-signed URLs for downloading the artifact. - * - * @generated from field: repeated string signed_url = 1; - */ - signedUrl: string[]; - - /** - * ExpiresAt defines when the signed URLs will expire. - * - * @generated from field: google.protobuf.Timestamp expires_at = 2; - */ - expiresAt?: Timestamp; -}; - -/** - * Describes the message flyteidl2.dataproxy.PreSignedURLs. - * Use `create(PreSignedURLsSchema)` to create a new message. - */ -export const PreSignedURLsSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_flyteidl2_dataproxy_dataproxy_service, 4); - -/** - * CreateDownloadLinkRequest specifies the request for the CreateDownloadLink API. - * - * @generated from message flyteidl2.dataproxy.CreateDownloadLinkRequest - */ -export type CreateDownloadLinkRequest = Message<"flyteidl2.dataproxy.CreateDownloadLinkRequest"> & { - /** - * ArtifactType is the type of artifact to download. - * +required - * - * @generated from field: flyteidl2.dataproxy.ArtifactType artifact_type = 1; - */ - artifactType: ArtifactType; - - /** - * Source identifies the action attempt whose artifact is to be downloaded. - * - * @generated from oneof flyteidl2.dataproxy.CreateDownloadLinkRequest.source - */ - source: { - /** - * ActionAttemptId identifies the specific attempt of a run action that produced the artifact. - * - * @generated from field: flyteidl2.common.ActionAttemptIdentifier action_attempt_id = 2; - */ - value: ActionAttemptIdentifier; - case: "actionAttemptId"; - } | { case: undefined; value?: undefined }; - - /** - * ExpiresIn defines the requested expiration duration for the generated URLs. The request will be - * rejected if this exceeds the platform's configured maximum. - * +optional. The default value comes from the global config. - * - * @generated from field: google.protobuf.Duration expires_in = 3; - */ - expiresIn?: Duration; -}; - -/** - * Describes the message flyteidl2.dataproxy.CreateDownloadLinkRequest. - * Use `create(CreateDownloadLinkRequestSchema)` to create a new message. - */ -export const CreateDownloadLinkRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_flyteidl2_dataproxy_dataproxy_service, 5); - -/** - * CreateDownloadLinkResponse specifies the response for the CreateDownloadLink API. - * - * @generated from message flyteidl2.dataproxy.CreateDownloadLinkResponse - */ -export type CreateDownloadLinkResponse = Message<"flyteidl2.dataproxy.CreateDownloadLinkResponse"> & { - /** - * PreSignedUrls contains the signed URLs and their expiration time. - * - * @generated from field: flyteidl2.dataproxy.PreSignedURLs pre_signed_urls = 1; - */ - preSignedUrls?: PreSignedURLs; -}; - -/** - * Describes the message flyteidl2.dataproxy.CreateDownloadLinkResponse. - * Use `create(CreateDownloadLinkResponseSchema)` to create a new message. - */ -export const CreateDownloadLinkResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_flyteidl2_dataproxy_dataproxy_service, 6); - -/** - * ArtifactType defines the type of artifact to be downloaded. - * - * @generated from enum flyteidl2.dataproxy.ArtifactType - */ -export enum ArtifactType { - /** - * @generated from enum value: ARTIFACT_TYPE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, - - /** - * ARTIFACT_TYPE_REPORT refers to the HTML report file optionally generated after a task finishes executing. - * - * @generated from enum value: ARTIFACT_TYPE_REPORT = 1; - */ - REPORT = 1, -} - -/** - * Describes the enum flyteidl2.dataproxy.ArtifactType. - */ -export const ArtifactTypeSchema: GenEnum = /*@__PURE__*/ - enumDesc(file_flyteidl2_dataproxy_dataproxy_service, 0); - /** * DataProxyService provides an interface for managing data uploads and downloads. * @@ -397,16 +277,6 @@ export const DataProxyService: GenService<{ input: typeof UploadInputsRequestSchema; output: typeof UploadInputsResponseSchema; }, - /** - * CreateDownloadLink generates signed URL(s) for downloading a given artifact. - * - * @generated from rpc flyteidl2.dataproxy.DataProxyService.CreateDownloadLink - */ - createDownloadLink: { - methodKind: "unary"; - input: typeof CreateDownloadLinkRequestSchema; - output: typeof CreateDownloadLinkResponseSchema; - }, }> = /*@__PURE__*/ serviceDesc(file_flyteidl2_dataproxy_dataproxy_service, 0);