diff --git a/admin/canvases.go b/admin/canvases.go new file mode 100644 index 000000000000..9d1399bd3df7 --- /dev/null +++ b/admin/canvases.go @@ -0,0 +1,31 @@ +package admin + +import ( + "context" + + "github.com/rilldata/rill/admin/database" + runtimev1 "github.com/rilldata/rill/proto/gen/rill/runtime/v1" + "github.com/rilldata/rill/runtime" +) + +// LookupCanvas fetches a canvas's spec from a runtime deployment. +func (s *Service) LookupCanvas(ctx context.Context, depl *database.Deployment, canvasName string) (*runtimev1.CanvasSpec, error) { + rt, err := s.OpenRuntimeClient(depl) + if err != nil { + return nil, err + } + defer rt.Close() + + res, err := rt.GetResource(ctx, &runtimev1.GetResourceRequest{ + InstanceId: depl.RuntimeInstanceID, + Name: &runtimev1.ResourceName{ + Kind: runtime.ResourceKindCanvas, + Name: canvasName, + }, + }) + if err != nil { + return nil, err + } + + return res.Resource.Resource.(*runtimev1.Resource_Canvas).Canvas.Spec, nil +} diff --git a/admin/database/database.go b/admin/database/database.go index 045adf24425c..6a88c7582181 100644 --- a/admin/database/database.go +++ b/admin/database/database.go @@ -309,6 +309,8 @@ type DB interface { FindVirtualFiles(ctx context.Context, projectID, environment string, afterUpdatedOn time.Time, afterPath string, limit int) ([]*VirtualFile, error) FindVirtualFile(ctx context.Context, projectID, environment, path string) (*VirtualFile, error) + // FindVirtualFilesByOwner TODO: pagination + FindVirtualFilesByOwner(ctx context.Context, projectID, environment, ownerID string) ([]*VirtualFile, error) UpsertVirtualFile(ctx context.Context, opts *InsertVirtualFileOptions) error UpdateVirtualFileDeleted(ctx context.Context, projectID, environment, path string) error DeleteExpiredVirtualFiles(ctx context.Context, retention time.Duration) error @@ -1225,6 +1227,7 @@ type UpdateBookmarkOptions struct { type VirtualFile struct { Path string `db:"path"` Data []byte `db:"data"` + OwnerID *string `db:"owner_id"` Deleted bool `db:"deleted"` UpdatedOn time.Time `db:"updated_on"` } @@ -1233,8 +1236,9 @@ type VirtualFile struct { type InsertVirtualFileOptions struct { ProjectID string Environment string - Path string `validate:"required"` - Data []byte `validate:"max=131072"` // 128kb + Path string `validate:"required"` + OwnerID *string `db:"owner_id"` + Data []byte `validate:"max=131072"` // 128kb } // Asset represents a user-uploaded file asset. diff --git a/admin/database/postgres/migrations/0094.sql b/admin/database/postgres/migrations/0094.sql new file mode 100644 index 000000000000..a74327a3fa81 --- /dev/null +++ b/admin/database/postgres/migrations/0094.sql @@ -0,0 +1 @@ +ALTER TABLE virtual_files ADD COLUMN owner_id UUID; \ No newline at end of file diff --git a/admin/database/postgres/postgres.go b/admin/database/postgres/postgres.go index 8b07fa038cfb..aa5c835f3b1e 100644 --- a/admin/database/postgres/postgres.go +++ b/admin/database/postgres/postgres.go @@ -2882,7 +2882,7 @@ func (c *connection) DeleteBookmark(ctx context.Context, bookmarkID string) erro func (c *connection) FindVirtualFiles(ctx context.Context, projectID, environment string, afterUpdatedOn time.Time, afterPath string, limit int) ([]*database.VirtualFile, error) { var res []*database.VirtualFile err := c.getDB(ctx).SelectContext(ctx, &res, ` - SELECT path, data, deleted, updated_on + SELECT path, data, owner_id, deleted, updated_on FROM virtual_files WHERE project_id=$1 AND environment=$2 AND (updated_on>$3 OR updated_on=$3 AND path>$4) ORDER BY updated_on, path LIMIT $5 @@ -2896,7 +2896,7 @@ func (c *connection) FindVirtualFiles(ctx context.Context, projectID, environmen func (c *connection) FindVirtualFile(ctx context.Context, projectID, environment, path string) (*database.VirtualFile, error) { res := &database.VirtualFile{} err := c.getDB(ctx).QueryRowxContext(ctx, ` - SELECT path, data, deleted, updated_on + SELECT path, data, owner_id, deleted, updated_on FROM virtual_files WHERE project_id=$1 AND environment=$2 AND path=$3 `, projectID, environment, path).StructScan(res) @@ -2906,19 +2906,34 @@ func (c *connection) FindVirtualFile(ctx context.Context, projectID, environment return res, nil } +func (c *connection) FindVirtualFilesByOwner(ctx context.Context, projectID, environment, ownerID string) ([]*database.VirtualFile, error) { + var res []*database.VirtualFile + err := c.getDB(ctx).SelectContext(ctx, &res, ` + SELECT path, data, owner_id, deleted, updated_on + FROM virtual_files + WHERE project_id=$1 AND environment=$2 AND deleted=FALSE AND owner_id=$3 + ORDER BY path + `, projectID, environment, ownerID) + if err != nil { + return nil, parseErr("virtual files", err) + } + return res, nil +} + func (c *connection) UpsertVirtualFile(ctx context.Context, opts *database.InsertVirtualFileOptions) error { if err := database.Validate(opts); err != nil { return err } _, err := c.getDB(ctx).ExecContext(ctx, ` - INSERT INTO virtual_files (project_id, environment, path, data, deleted) - VALUES ($1, $2, $3, $4, FALSE) + INSERT INTO virtual_files (project_id, environment, owner_id, path, data, deleted) + VALUES ($1, $2, $3, $4, $5, FALSE) ON CONFLICT (project_id, environment, path) DO UPDATE SET data = EXCLUDED.data, + owner_id = EXCLUDED.owner_id, deleted = FALSE, updated_on = now() - `, opts.ProjectID, opts.Environment, opts.Path, opts.Data) + `, opts.ProjectID, opts.Environment, opts.OwnerID, opts.Path, opts.Data) if err != nil { return parseErr("virtual file", err) } diff --git a/admin/server/alerts.go b/admin/server/alerts.go index 637985b0a778..61cb7fbb74eb 100644 --- a/admin/server/alerts.go +++ b/admin/server/alerts.go @@ -6,13 +6,11 @@ import ( "errors" "fmt" "path" - "regexp" "slices" "strconv" "strings" "time" - "github.com/google/uuid" "github.com/rilldata/rill/admin" "github.com/rilldata/rill/admin/database" "github.com/rilldata/rill/admin/server/auth" @@ -155,7 +153,10 @@ func (s *Server) CreateAlert(ctx context.Context, req *adminv1.CreateAlertReques return nil, err } - name, err := s.generateAlertName(ctx, depl, req.Options.DisplayName) + name, err := s.generateVirtualFileName(ctx, req.Options.DisplayName, func(ctx context.Context, name string) error { + _, err := s.admin.LookupAlert(ctx, depl, name) + return err + }) if err != nil { return nil, err } @@ -170,6 +171,7 @@ func (s *Server) CreateAlert(ctx context.Context, req *adminv1.CreateAlertReques Environment: "prod", Path: virtualFilePathForManagedAlert(name), Data: data, + OwnerID: nil, }) if err != nil { return nil, fmt.Errorf("failed to insert virtual file: %w", err) @@ -240,6 +242,7 @@ func (s *Server) EditAlert(ctx context.Context, req *adminv1.EditAlertRequest) ( Environment: "prod", Path: virtualFilePathForManagedAlert(req.Name), Data: data, + OwnerID: nil, }) if err != nil { return nil, fmt.Errorf("failed to update virtual file: %w", err) @@ -384,6 +387,7 @@ func (s *Server) UnsubscribeAlert(ctx context.Context, req *adminv1.UnsubscribeA Environment: "prod", Path: virtualFilePathForManagedAlert(req.Name), Data: data, + OwnerID: nil, }) if err != nil { return nil, fmt.Errorf("failed to update virtual file: %w", err) @@ -587,44 +591,6 @@ func (s *Server) yamlForCommittedAlert(opts *adminv1.AlertOptions) ([]byte, erro return yaml.Marshal(res) } -// generateAlertName generates a random alert name with the display name as a seed. -// Example: "My alert!" -> "my-alert-5b3f7e1a". -// It verifies that the name is not taken (the random component makes any collision unlikely, but we check to be sure). -func (s *Server) generateAlertName(ctx context.Context, depl *database.Deployment, displayName string) (string, error) { - for i := 0; i < 5; i++ { - name := randomAlertName(displayName) - - _, err := s.admin.LookupAlert(ctx, depl, name) - if err != nil { - if s, ok := status.FromError(err); ok && s.Code() == codes.NotFound { - // Success! Name isn't taken - return name, nil - } - return "", fmt.Errorf("failed to check alert name: %w", err) - } - } - - // Fail-safe in case all names we tried were taken - return uuid.New().String(), nil -} - -var alertNameToDashCharsRegexp = regexp.MustCompile(`[ _]+`) - -var alertNameExcludeCharsRegexp = regexp.MustCompile(`[^a-zA-Z0-9-]+`) - -func randomAlertName(displayName string) string { - name := alertNameToDashCharsRegexp.ReplaceAllString(displayName, "-") - name = alertNameExcludeCharsRegexp.ReplaceAllString(name, "") - name = strings.ToLower(name) - name = strings.Trim(name, "-") - if name == "" { - name = uuid.New().String() - } else { - name = name + "-" + uuid.New().String()[0:8] - } - return name -} - // alertYAML is derived from runtime/parser.AlertYAML, but adapted for generating (as opposed to parsing) the alert YAML. type alertYAML struct { Type string `yaml:"type"` diff --git a/admin/server/reports.go b/admin/server/reports.go index 99c654714726..66376355bd7e 100644 --- a/admin/server/reports.go +++ b/admin/server/reports.go @@ -6,12 +6,10 @@ import ( "errors" "fmt" "path" - "regexp" "strconv" "strings" "time" - "github.com/google/uuid" "github.com/rilldata/rill/admin" "github.com/rilldata/rill/admin/database" "github.com/rilldata/rill/admin/server/auth" @@ -202,7 +200,10 @@ func (s *Server) CreateReport(ctx context.Context, req *adminv1.CreateReportRequ return nil, err } - name, err := s.generateReportName(ctx, depl, req.Options.DisplayName) + name, err := s.generateVirtualFileName(ctx, req.Options.DisplayName, func(ctx context.Context, name string) error { + _, err := s.admin.LookupReport(ctx, depl, name) + return err + }) if err != nil { return nil, err } @@ -644,27 +645,6 @@ func (s *Server) yamlForCommittedReport(opts *adminv1.ReportOptions) ([]byte, er return yaml.Marshal(res) } -// generateReportName generates a random report name with the display name as a seed. -// Example: "My report!" -> "my-report-5b3f7e1a". -// It verifies that the name is not taken (the random component makes any collision unlikely, but we check to be sure). -func (s *Server) generateReportName(ctx context.Context, depl *database.Deployment, displayName string) (string, error) { - for i := 0; i < 5; i++ { - name := randomReportName(displayName) - - _, err := s.admin.LookupReport(ctx, depl, name) - if err != nil { - if s, ok := status.FromError(err); ok && s.Code() == codes.NotFound { - // Success! Name isn't taken - return name, nil - } - return "", fmt.Errorf("failed to check report name: %w", err) - } - } - - // Fail-safe in case all names we tried were taken - return uuid.New().String(), nil -} - func (s *Server) createMagicTokens(ctx context.Context, orgID, projectID, reportName, ownerID string, emails []string, resources []*adminv1.ResourceName) (map[string]string, error) { var createdByUserID *string if ownerID != "" { @@ -842,23 +822,6 @@ func (s *Server) getAttributesForProjectMember(ctx context.Context, email, orgID return attr, id, nil } -var reportNameToDashCharsRegexp = regexp.MustCompile(`[ _]+`) - -var reportNameExcludeCharsRegexp = regexp.MustCompile(`[^a-zA-Z0-9-]+`) - -func randomReportName(displayName string) string { - name := reportNameToDashCharsRegexp.ReplaceAllString(displayName, "-") - name = reportNameExcludeCharsRegexp.ReplaceAllString(name, "") - name = strings.ToLower(name) - name = strings.Trim(name, "-") - if name == "" { - name = uuid.New().String() - } else { - name = name + "-" + uuid.New().String()[0:8] - } - return name -} - // reportYAML is derived from runtime/parser.ReportYAML, but adapted for generating (as opposed to parsing) the report YAML. type reportYAML struct { Type string `yaml:"type"` diff --git a/admin/server/virtual_file.go b/admin/server/virtual_file.go new file mode 100644 index 000000000000..c63d7351cc15 --- /dev/null +++ b/admin/server/virtual_file.go @@ -0,0 +1,346 @@ +package server + +import ( + "context" + "errors" + "fmt" + "path" + "regexp" + "strings" + "time" + + "github.com/google/uuid" + "github.com/rilldata/rill/admin/database" + "github.com/rilldata/rill/admin/server/auth" + adminv1 "github.com/rilldata/rill/proto/gen/rill/admin/v1" + "github.com/rilldata/rill/runtime" + "github.com/rilldata/rill/runtime/pkg/fileutil" + "github.com/rilldata/rill/runtime/pkg/observability" + "go.opentelemetry.io/otel/attribute" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "gopkg.in/yaml.v3" +) + +func (s *Server) ListPersonalFiles(ctx context.Context, req *adminv1.ListPersonalFilesRequest) (*adminv1.ListPersonalFilesResponse, error) { + observability.AddRequestAttributes(ctx, + attribute.String("args.organization", req.Org), + attribute.String("args.project", req.Project), + ) + + proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project) + if err != nil { + return nil, err + } + + permissions := auth.GetClaims(ctx).ProjectPermissions(ctx, proj.OrganizationID, proj.ID) + if !permissions.ReadProject { + return nil, status.Error(codes.PermissionDenied, "does not have permission to read project") + } + + var virtualFileNames []string + virtualFiles, err := s.admin.DB.FindVirtualFilesByOwner(ctx, proj.ID, "prod", auth.GetClaims(ctx).OwnerID()) + if err != nil { + return nil, fmt.Errorf("failed to list personal files: %w", err) + } + for _, file := range virtualFiles { + // Assumes the name is the stem of the path, we block updating name from yaml + virtualFileNames = append(virtualFileNames, fileutil.Stem(file.Path)) + } + + return &adminv1.ListPersonalFilesResponse{ + Files: virtualFileNames, + }, nil +} + +func (s *Server) CreatePersonalFile(ctx context.Context, req *adminv1.CreatePersonalFileRequest) (*adminv1.CreatePersonalFileResponse, error) { + observability.AddRequestAttributes(ctx, + attribute.String("args.organization", req.Org), + attribute.String("args.project", req.Project), + attribute.String("args.kind", req.Kind), + ) + + proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project) + if err != nil { + return nil, err + } + + permissions := auth.GetClaims(ctx).ProjectPermissions(ctx, proj.OrganizationID, proj.ID) + if !permissions.ReadProject { + return nil, status.Error(codes.PermissionDenied, "does not have permission to read project") + } + + depl, err := s.admin.DB.FindDeployment(ctx, *proj.PrimaryDeploymentID) + if err != nil { + return nil, err + } + + name, err := s.generateVirtualFileName(ctx, req.DisplayName, func(ctx context.Context, name string) error { + var err error + if req.Kind == runtime.ResourceKindCanvas { + _, err = s.admin.LookupCanvas(ctx, depl, name) + } + return err + }) + if err != nil { + return nil, err + } + + userID := auth.GetClaims(ctx).OwnerID() + virtualPath := virtualFilePathForPersonalFile(name) + + yaml, err := yamlForPersonalFile(req.DisplayName, auth.GetClaims(ctx).OwnerID(), req.Kind, req.Yaml) + if err != nil { + return nil, err + } + + err = s.admin.DB.UpsertVirtualFile(ctx, &database.InsertVirtualFileOptions{ + ProjectID: proj.ID, + Environment: "prod", + Path: virtualPath, + OwnerID: &userID, + Data: yaml, + }) + if err != nil { + return nil, fmt.Errorf("failed to create personal file: %w", err) + } + + err = s.admin.TriggerParserAndAwaitResource(ctx, depl, name, req.Kind) + if err != nil { + return nil, fmt.Errorf("failed to trigger parser: %w", err) + } + + return &adminv1.CreatePersonalFileResponse{ + Name: name, + }, nil +} + +func (s *Server) GetPersonalFile(ctx context.Context, req *adminv1.GetPersonalFileRequest) (*adminv1.GetPersonalFileResponse, error) { + observability.AddRequestAttributes(ctx, + attribute.String("args.organization", req.Org), + attribute.String("args.project", req.Project), + attribute.String("args.name", req.Name), + ) + + proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project) + if err != nil { + return nil, err + } + + permissions := auth.GetClaims(ctx).ProjectPermissions(ctx, proj.OrganizationID, proj.ID) + if !permissions.ReadProject { + return nil, status.Error(codes.PermissionDenied, "does not have permission to read project") + } + + virtualPath := virtualFilePathForPersonalFile(req.Name) + + vf, err := s.admin.DB.FindVirtualFile(ctx, proj.ID, "prod", virtualPath) + if err != nil { + return nil, fmt.Errorf("failed to get personal file: %w", err) + } + + return &adminv1.GetPersonalFileResponse{ + Path: virtualPath, + Yaml: string(vf.Data), + }, nil +} + +func (s *Server) EditPersonalFile(ctx context.Context, req *adminv1.EditPersonalFileRequest) (*adminv1.EditPersonalFileResponse, error) { + observability.AddRequestAttributes(ctx, + attribute.String("args.organization", req.Org), + attribute.String("args.project", req.Project), + attribute.String("args.name", req.Name), + attribute.String("args.kind", req.Kind), + ) + + proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project) + if err != nil { + return nil, err + } + + permissions := auth.GetClaims(ctx).ProjectPermissions(ctx, proj.OrganizationID, proj.ID) + if !permissions.ReadProject { + return nil, status.Error(codes.PermissionDenied, "does not have permission to read project") + } + + depl, err := s.admin.DB.FindDeployment(ctx, *proj.PrimaryDeploymentID) + if err != nil { + return nil, err + } + + userID := auth.GetClaims(ctx).OwnerID() + virtualPath := virtualFilePathForPersonalFile(req.Name) + + vf, err := s.admin.DB.FindVirtualFile(ctx, proj.ID, "prod", virtualPath) + if err != nil && !errors.Is(err, database.ErrNotFound) { + return nil, fmt.Errorf("failed to get personal file: %w", err) + } + + if vf.OwnerID != nil && *vf.OwnerID != userID { + return nil, status.Error(codes.PermissionDenied, "does not have permission to update file") + } + + // TODO: display name can be changed from yaml, so we dont need it here + yaml, err := yamlForPersonalFile("", auth.GetClaims(ctx).OwnerID(), req.Kind, req.Yaml) + if err != nil { + return nil, err + } + + err = s.admin.DB.UpsertVirtualFile(ctx, &database.InsertVirtualFileOptions{ + ProjectID: proj.ID, + Environment: "prod", + Path: virtualPath, + OwnerID: &userID, + Data: yaml, + }) + if err != nil { + return nil, fmt.Errorf("failed to create personal file: %w", err) + } + + err = s.admin.TriggerParserAndAwaitResource(ctx, depl, req.Name, req.Kind) + if err != nil { + return nil, fmt.Errorf("failed to trigger parser: %w", err) + } + + return &adminv1.EditPersonalFileResponse{}, nil +} + +func (s *Server) DeletePersonalFile(ctx context.Context, req *adminv1.DeletePersonalFileRequest) (*adminv1.DeletePersonalFileResponse, error) { + observability.AddRequestAttributes(ctx, + attribute.String("args.organization", req.Org), + attribute.String("args.project", req.Project), + attribute.String("args.name", req.Name), + ) + + proj, err := s.admin.DB.FindProjectByName(ctx, req.Org, req.Project) + if err != nil { + return nil, err + } + + permissions := auth.GetClaims(ctx).ProjectPermissions(ctx, proj.OrganizationID, proj.ID) + if !permissions.ReadProject { + return nil, status.Error(codes.PermissionDenied, "does not have permission to read project") + } + + depl, err := s.admin.DB.FindDeployment(ctx, *proj.PrimaryDeploymentID) + if err != nil { + return nil, err + } + + ownerID := auth.GetClaims(ctx).OwnerID() + virtualPath := virtualFilePathForPersonalFile(req.Name) + + vf, err := s.admin.DB.FindVirtualFile(ctx, proj.ID, "prod", virtualPath) + if err != nil && !errors.Is(err, database.ErrNotFound) { + return nil, fmt.Errorf("failed to get personal file: %w", err) + } + + if vf.OwnerID != nil && *vf.OwnerID != ownerID { + return nil, status.Error(codes.PermissionDenied, "does not have permission to delete file") + } + + err = s.admin.DB.UpdateVirtualFileDeleted(ctx, proj.ID, "prod", virtualPath) + if err != nil { + return nil, fmt.Errorf("failed to delete virtual file: %w", err) + } + + // TODO: do we need to wait for reconcile to finish? + err = s.admin.TriggerParser(ctx, depl) + if err != nil { + return nil, fmt.Errorf("failed to reconcile personal virtual file: %w", err) + } + + return &adminv1.DeletePersonalFileResponse{}, nil +} + +func yamlForPersonalFile(displayName, ownerID, kind, data string) ([]byte, error) { + if data == "" { + return blankYamlForPersonalFile(displayName, ownerID, kind) + } + + var doc map[string]any + if err := yaml.Unmarshal([]byte(data), &doc); err != nil { + return nil, status.Errorf(codes.InvalidArgument, "invalid YAML: %s", err.Error()) + } + if doc == nil { + doc = map[string]any{} + } + + if displayName != "" { + doc["display_name"] = displayName + } + + annotations, _ := doc["annotations"].(map[string]any) + if annotations == nil { + annotations = map[string]any{} + } + annotations["admin_owner_user_id"] = ownerID + annotations["admin_managed"] = true + annotations["admin_nonce"] = time.Now().Format(time.RFC3339Nano) + doc["annotations"] = annotations + + out, err := yaml.Marshal(doc) + if err != nil { + return nil, status.Errorf(codes.Internal, "failed to marshal YAML: %s", err.Error()) + } + return out, nil +} + +func blankYamlForPersonalFile(displayName, ownerID, kind string) ([]byte, error) { + doc := map[string]any{ + "type": kind, + "display_name": displayName, + "annotations": map[string]any{ + "admin_owner_user_id": ownerID, + "admin_managed": true, + "admin_nonce": time.Now().Format(time.RFC3339Nano), + }, + } + if kind == runtime.ResourceKindCanvas { + doc["rows"] = []any{} + } + + return yaml.Marshal(doc) +} + +// generateVirtualFileName generates a random virtual file name with the display name as a seed. +// Example: "My report!" -> "my-report-5b3f7e1a". +// It verifies that the name is not taken (the random component makes any collision unlikely, but we check to be sure). +func (s *Server) generateVirtualFileName(ctx context.Context, displayName string, lookup func(ctx context.Context, name string) error) (string, error) { + for i := 0; i < 5; i++ { + name := randomVirtualFileName(displayName) + + err := lookup(ctx, name) + if err != nil { + if s, ok := status.FromError(err); ok && s.Code() == codes.NotFound { + // Success! Name isn't taken + return name, nil + } + return "", fmt.Errorf("failed to check virtual file name: %w", err) + } + } + + // Fail-safe in case all names we tried were taken + return uuid.New().String(), nil +} + +var virtualFileNameToDashCharsRegexp = regexp.MustCompile(`[ _]+`) + +var virtualFileNameExcludeCharsRegexp = regexp.MustCompile(`[^a-zA-Z0-9-]+`) + +func randomVirtualFileName(displayName string) string { + name := virtualFileNameToDashCharsRegexp.ReplaceAllString(displayName, "-") + name = virtualFileNameExcludeCharsRegexp.ReplaceAllString(name, "") + name = strings.ToLower(name) + name = strings.Trim(name, "-") + if name == "" { + name = uuid.New().String() + } else { + name = name + "-" + uuid.New().String()[0:8] + } + return name +} + +func virtualFilePathForPersonalFile(name string) string { + return path.Join("personal", name+".yaml") +} diff --git a/proto/gen/rill/admin/v1/admin.swagger.yaml b/proto/gen/rill/admin/v1/admin.swagger.yaml index 3a569c0088fd..8f9f8286be12 100644 --- a/proto/gen/rill/admin/v1/admin.swagger.yaml +++ b/proto/gen/rill/admin/v1/admin.swagger.yaml @@ -2004,6 +2004,148 @@ paths: in: path required: true type: string + /v1/orgs/{org}/projects/{project}/personal-files: + get: + summary: ListPersonalFiles lists the calling user's personal files. + operationId: AdminService_ListPersonalFiles + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1ListPersonalFilesResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: org + in: path + required: true + type: string + - name: project + in: path + required: true + type: string + post: + summary: CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + operationId: AdminService_CreatePersonalFile + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1CreatePersonalFileResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: org + in: path + required: true + type: string + - name: project + in: path + required: true + type: string + - name: body + in: body + required: true + schema: + type: object + properties: + displayName: + type: string + kind: + type: string + yaml: + type: string + description: 'Optional: initial YAML body. If empty, the server generates a blank template for the given type.' + /v1/orgs/{org}/projects/{project}/personal-files/{name}: + get: + summary: GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + operationId: AdminService_GetPersonalFile + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1GetPersonalFileResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: org + in: path + required: true + type: string + - name: project + in: path + required: true + type: string + - name: name + in: path + required: true + type: string + delete: + summary: DeletePersonalFile deletes a personal virtual file the caller owns. + operationId: AdminService_DeletePersonalFile + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1DeletePersonalFileResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: org + in: path + required: true + type: string + - name: project + in: path + required: true + type: string + - name: name + in: path + required: true + type: string + post: + summary: EditPersonalFile updates the YAML body of a personal virtual file the caller owns. + operationId: AdminService_EditPersonalFile + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1EditPersonalFileResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: org + in: path + required: true + type: string + - name: project + in: path + required: true + type: string + - name: name + in: path + required: true + type: string + - name: body + in: body + required: true + schema: + type: object + properties: + kind: + type: string + yaml: + type: string /v1/orgs/{org}/projects/{project}/redeploy: post: summary: |- @@ -5082,6 +5224,11 @@ definitions: properties: organization: $ref: '#/definitions/v1Organization' + v1CreatePersonalFileResponse: + type: object + properties: + name: + type: string v1CreateProjectResponse: type: object properties: @@ -5115,6 +5262,8 @@ definitions: type: string v1DeleteOrganizationResponse: type: object + v1DeletePersonalFileResponse: + type: object v1DeleteProjectResponse: type: object properties: @@ -5182,6 +5331,8 @@ definitions: default: DEPLOYMENT_STATUS_UNSPECIFIED v1EditAlertResponse: type: object + v1EditPersonalFileResponse: + type: object v1EditReportResponse: type: object v1ExportFormat: @@ -5434,6 +5585,13 @@ definitions: properties: url: type: string + v1GetPersonalFileResponse: + type: object + properties: + path: + type: string + yaml: + type: string v1GetProjectAccessRequestResponse: type: object properties: @@ -5684,6 +5842,13 @@ definitions: $ref: '#/definitions/v1Organization' nextPageToken: type: string + v1ListPersonalFilesResponse: + type: object + properties: + files: + type: array + items: + type: string v1ListProjectInvitesResponse: type: object properties: diff --git a/proto/gen/rill/admin/v1/api.pb.go b/proto/gen/rill/admin/v1/api.pb.go index 04bfec5c0a21..a2e4b27e80d7 100644 --- a/proto/gen/rill/admin/v1/api.pb.go +++ b/proto/gen/rill/admin/v1/api.pb.go @@ -18015,17 +18015,17 @@ func (x *GetAlertYAMLResponse) GetYaml() string { return "" } -type GetBillingSubscriptionRequest struct { +type ListPersonalFilesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` } -func (x *GetBillingSubscriptionRequest) Reset() { - *x = GetBillingSubscriptionRequest{} +func (x *ListPersonalFilesRequest) Reset() { + *x = ListPersonalFilesRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18033,13 +18033,13 @@ func (x *GetBillingSubscriptionRequest) Reset() { } } -func (x *GetBillingSubscriptionRequest) String() string { +func (x *ListPersonalFilesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBillingSubscriptionRequest) ProtoMessage() {} +func (*ListPersonalFilesRequest) ProtoMessage() {} -func (x *GetBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { +func (x *ListPersonalFilesRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[297] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18051,37 +18051,35 @@ func (x *GetBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetBillingSubscriptionRequest.ProtoReflect.Descriptor instead. -func (*GetBillingSubscriptionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListPersonalFilesRequest.ProtoReflect.Descriptor instead. +func (*ListPersonalFilesRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{297} } -func (x *GetBillingSubscriptionRequest) GetOrg() string { +func (x *ListPersonalFilesRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *GetBillingSubscriptionRequest) GetSuperuserForceAccess() bool { +func (x *ListPersonalFilesRequest) GetProject() string { if x != nil { - return x.SuperuserForceAccess + return x.Project } - return false + return "" } -type GetBillingSubscriptionResponse struct { +type ListPersonalFilesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` - Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` - BillingPortalUrl string `protobuf:"bytes,3,opt,name=billing_portal_url,json=billingPortalUrl,proto3" json:"billing_portal_url,omitempty"` + Files []string `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"` } -func (x *GetBillingSubscriptionResponse) Reset() { - *x = GetBillingSubscriptionResponse{} +func (x *ListPersonalFilesResponse) Reset() { + *x = ListPersonalFilesResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18089,13 +18087,13 @@ func (x *GetBillingSubscriptionResponse) Reset() { } } -func (x *GetBillingSubscriptionResponse) String() string { +func (x *ListPersonalFilesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBillingSubscriptionResponse) ProtoMessage() {} +func (*ListPersonalFilesResponse) ProtoMessage() {} -func (x *GetBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { +func (x *ListPersonalFilesResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18107,44 +18105,33 @@ func (x *GetBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetBillingSubscriptionResponse.ProtoReflect.Descriptor instead. -func (*GetBillingSubscriptionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListPersonalFilesResponse.ProtoReflect.Descriptor instead. +func (*ListPersonalFilesResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{298} } -func (x *GetBillingSubscriptionResponse) GetOrganization() *Organization { - if x != nil { - return x.Organization - } - return nil -} - -func (x *GetBillingSubscriptionResponse) GetSubscription() *Subscription { +func (x *ListPersonalFilesResponse) GetFiles() []string { if x != nil { - return x.Subscription + return x.Files } return nil } -func (x *GetBillingSubscriptionResponse) GetBillingPortalUrl() string { - if x != nil { - return x.BillingPortalUrl - } - return "" -} - -type UpdateBillingSubscriptionRequest struct { +type CreatePersonalFileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - PlanName string `protobuf:"bytes,2,opt,name=plan_name,json=planName,proto3" json:"plan_name,omitempty"` - SuperuserForceAccess bool `protobuf:"varint,3,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` + // Optional: initial YAML body. If empty, the server generates a blank template for the given type. + Yaml string `protobuf:"bytes,5,opt,name=yaml,proto3" json:"yaml,omitempty"` } -func (x *UpdateBillingSubscriptionRequest) Reset() { - *x = UpdateBillingSubscriptionRequest{} +func (x *CreatePersonalFileRequest) Reset() { + *x = CreatePersonalFileRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18152,13 +18139,13 @@ func (x *UpdateBillingSubscriptionRequest) Reset() { } } -func (x *UpdateBillingSubscriptionRequest) String() string { +func (x *CreatePersonalFileRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateBillingSubscriptionRequest) ProtoMessage() {} +func (*CreatePersonalFileRequest) ProtoMessage() {} -func (x *UpdateBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { +func (x *CreatePersonalFileRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18170,43 +18157,56 @@ func (x *UpdateBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UpdateBillingSubscriptionRequest.ProtoReflect.Descriptor instead. -func (*UpdateBillingSubscriptionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CreatePersonalFileRequest.ProtoReflect.Descriptor instead. +func (*CreatePersonalFileRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{299} } -func (x *UpdateBillingSubscriptionRequest) GetOrg() string { +func (x *CreatePersonalFileRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *UpdateBillingSubscriptionRequest) GetPlanName() string { +func (x *CreatePersonalFileRequest) GetProject() string { if x != nil { - return x.PlanName + return x.Project } return "" } -func (x *UpdateBillingSubscriptionRequest) GetSuperuserForceAccess() bool { +func (x *CreatePersonalFileRequest) GetDisplayName() string { if x != nil { - return x.SuperuserForceAccess + return x.DisplayName } - return false + return "" } -type UpdateBillingSubscriptionResponse struct { +func (x *CreatePersonalFileRequest) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *CreatePersonalFileRequest) GetYaml() string { + if x != nil { + return x.Yaml + } + return "" +} + +type CreatePersonalFileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` - Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } -func (x *UpdateBillingSubscriptionResponse) Reset() { - *x = UpdateBillingSubscriptionResponse{} +func (x *CreatePersonalFileResponse) Reset() { + *x = CreatePersonalFileResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18214,13 +18214,13 @@ func (x *UpdateBillingSubscriptionResponse) Reset() { } } -func (x *UpdateBillingSubscriptionResponse) String() string { +func (x *CreatePersonalFileResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UpdateBillingSubscriptionResponse) ProtoMessage() {} +func (*CreatePersonalFileResponse) ProtoMessage() {} -func (x *UpdateBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { +func (x *CreatePersonalFileResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18232,36 +18232,30 @@ func (x *UpdateBillingSubscriptionResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use UpdateBillingSubscriptionResponse.ProtoReflect.Descriptor instead. -func (*UpdateBillingSubscriptionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CreatePersonalFileResponse.ProtoReflect.Descriptor instead. +func (*CreatePersonalFileResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{300} } -func (x *UpdateBillingSubscriptionResponse) GetOrganization() *Organization { - if x != nil { - return x.Organization - } - return nil -} - -func (x *UpdateBillingSubscriptionResponse) GetSubscription() *Subscription { +func (x *CreatePersonalFileResponse) GetName() string { if x != nil { - return x.Subscription + return x.Name } - return nil + return "" } -type CancelBillingSubscriptionRequest struct { +type GetPersonalFileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` } -func (x *CancelBillingSubscriptionRequest) Reset() { - *x = CancelBillingSubscriptionRequest{} +func (x *GetPersonalFileRequest) Reset() { + *x = GetPersonalFileRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18269,13 +18263,13 @@ func (x *CancelBillingSubscriptionRequest) Reset() { } } -func (x *CancelBillingSubscriptionRequest) String() string { +func (x *GetPersonalFileRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CancelBillingSubscriptionRequest) ProtoMessage() {} +func (*GetPersonalFileRequest) ProtoMessage() {} -func (x *CancelBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { +func (x *GetPersonalFileRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18287,33 +18281,43 @@ func (x *CancelBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CancelBillingSubscriptionRequest.ProtoReflect.Descriptor instead. -func (*CancelBillingSubscriptionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPersonalFileRequest.ProtoReflect.Descriptor instead. +func (*GetPersonalFileRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{301} } -func (x *CancelBillingSubscriptionRequest) GetOrg() string { +func (x *GetPersonalFileRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *CancelBillingSubscriptionRequest) GetSuperuserForceAccess() bool { +func (x *GetPersonalFileRequest) GetProject() string { if x != nil { - return x.SuperuserForceAccess + return x.Project } - return false + return "" } -type CancelBillingSubscriptionResponse struct { +func (x *GetPersonalFileRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type GetPersonalFileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Yaml string `protobuf:"bytes,2,opt,name=yaml,proto3" json:"yaml,omitempty"` } -func (x *CancelBillingSubscriptionResponse) Reset() { - *x = CancelBillingSubscriptionResponse{} +func (x *GetPersonalFileResponse) Reset() { + *x = GetPersonalFileResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18321,13 +18325,13 @@ func (x *CancelBillingSubscriptionResponse) Reset() { } } -func (x *CancelBillingSubscriptionResponse) String() string { +func (x *GetPersonalFileResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CancelBillingSubscriptionResponse) ProtoMessage() {} +func (*GetPersonalFileResponse) ProtoMessage() {} -func (x *CancelBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { +func (x *GetPersonalFileResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18339,23 +18343,39 @@ func (x *CancelBillingSubscriptionResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use CancelBillingSubscriptionResponse.ProtoReflect.Descriptor instead. -func (*CancelBillingSubscriptionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPersonalFileResponse.ProtoReflect.Descriptor instead. +func (*GetPersonalFileResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{302} } -type RenewBillingSubscriptionRequest struct { +func (x *GetPersonalFileResponse) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *GetPersonalFileResponse) GetYaml() string { + if x != nil { + return x.Yaml + } + return "" +} + +type EditPersonalFileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - PlanName string `protobuf:"bytes,2,opt,name=plan_name,json=planName,proto3" json:"plan_name,omitempty"` - SuperuserForceAccess bool `protobuf:"varint,3,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Kind string `protobuf:"bytes,4,opt,name=kind,proto3" json:"kind,omitempty"` + Yaml string `protobuf:"bytes,5,opt,name=yaml,proto3" json:"yaml,omitempty"` } -func (x *RenewBillingSubscriptionRequest) Reset() { - *x = RenewBillingSubscriptionRequest{} +func (x *EditPersonalFileRequest) Reset() { + *x = EditPersonalFileRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18363,13 +18383,13 @@ func (x *RenewBillingSubscriptionRequest) Reset() { } } -func (x *RenewBillingSubscriptionRequest) String() string { +func (x *EditPersonalFileRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RenewBillingSubscriptionRequest) ProtoMessage() {} +func (*EditPersonalFileRequest) ProtoMessage() {} -func (x *RenewBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { +func (x *EditPersonalFileRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18381,43 +18401,54 @@ func (x *RenewBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RenewBillingSubscriptionRequest.ProtoReflect.Descriptor instead. -func (*RenewBillingSubscriptionRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use EditPersonalFileRequest.ProtoReflect.Descriptor instead. +func (*EditPersonalFileRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{303} } -func (x *RenewBillingSubscriptionRequest) GetOrg() string { +func (x *EditPersonalFileRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *RenewBillingSubscriptionRequest) GetPlanName() string { +func (x *EditPersonalFileRequest) GetProject() string { if x != nil { - return x.PlanName + return x.Project } return "" } -func (x *RenewBillingSubscriptionRequest) GetSuperuserForceAccess() bool { +func (x *EditPersonalFileRequest) GetName() string { if x != nil { - return x.SuperuserForceAccess + return x.Name } - return false + return "" } -type RenewBillingSubscriptionResponse struct { +func (x *EditPersonalFileRequest) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +func (x *EditPersonalFileRequest) GetYaml() string { + if x != nil { + return x.Yaml + } + return "" +} + +type EditPersonalFileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` - Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` } -func (x *RenewBillingSubscriptionResponse) Reset() { - *x = RenewBillingSubscriptionResponse{} +func (x *EditPersonalFileResponse) Reset() { + *x = EditPersonalFileResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18425,13 +18456,13 @@ func (x *RenewBillingSubscriptionResponse) Reset() { } } -func (x *RenewBillingSubscriptionResponse) String() string { +func (x *EditPersonalFileResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RenewBillingSubscriptionResponse) ProtoMessage() {} +func (*EditPersonalFileResponse) ProtoMessage() {} -func (x *RenewBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { +func (x *EditPersonalFileResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18443,38 +18474,23 @@ func (x *RenewBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RenewBillingSubscriptionResponse.ProtoReflect.Descriptor instead. -func (*RenewBillingSubscriptionResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use EditPersonalFileResponse.ProtoReflect.Descriptor instead. +func (*EditPersonalFileResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{304} } -func (x *RenewBillingSubscriptionResponse) GetOrganization() *Organization { - if x != nil { - return x.Organization - } - return nil -} - -func (x *RenewBillingSubscriptionResponse) GetSubscription() *Subscription { - if x != nil { - return x.Subscription - } - return nil -} - -type GetPaymentsPortalURLRequest struct { +type DeletePersonalFileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - ReturnUrl string `protobuf:"bytes,2,opt,name=return_url,json=returnUrl,proto3" json:"return_url,omitempty"` - Setup bool `protobuf:"varint,4,opt,name=setup,proto3" json:"setup,omitempty"` // If true, the returned URL will be for the first time payment method setup flow. If false, it will be for managing the billing details. - SuperuserForceAccess bool `protobuf:"varint,3,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` } -func (x *GetPaymentsPortalURLRequest) Reset() { - *x = GetPaymentsPortalURLRequest{} +func (x *DeletePersonalFileRequest) Reset() { + *x = DeletePersonalFileRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18482,13 +18498,13 @@ func (x *GetPaymentsPortalURLRequest) Reset() { } } -func (x *GetPaymentsPortalURLRequest) String() string { +func (x *DeletePersonalFileRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPaymentsPortalURLRequest) ProtoMessage() {} +func (*DeletePersonalFileRequest) ProtoMessage() {} -func (x *GetPaymentsPortalURLRequest) ProtoReflect() protoreflect.Message { +func (x *DeletePersonalFileRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18500,49 +18516,40 @@ func (x *GetPaymentsPortalURLRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPaymentsPortalURLRequest.ProtoReflect.Descriptor instead. -func (*GetPaymentsPortalURLRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use DeletePersonalFileRequest.ProtoReflect.Descriptor instead. +func (*DeletePersonalFileRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{305} } -func (x *GetPaymentsPortalURLRequest) GetOrg() string { +func (x *DeletePersonalFileRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *GetPaymentsPortalURLRequest) GetReturnUrl() string { +func (x *DeletePersonalFileRequest) GetProject() string { if x != nil { - return x.ReturnUrl + return x.Project } return "" } -func (x *GetPaymentsPortalURLRequest) GetSetup() bool { - if x != nil { - return x.Setup - } - return false -} - -func (x *GetPaymentsPortalURLRequest) GetSuperuserForceAccess() bool { +func (x *DeletePersonalFileRequest) GetName() string { if x != nil { - return x.SuperuserForceAccess + return x.Name } - return false + return "" } -type GetPaymentsPortalURLResponse struct { +type DeletePersonalFileResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } -func (x *GetPaymentsPortalURLResponse) Reset() { - *x = GetPaymentsPortalURLResponse{} +func (x *DeletePersonalFileResponse) Reset() { + *x = DeletePersonalFileResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18550,13 +18557,13 @@ func (x *GetPaymentsPortalURLResponse) Reset() { } } -func (x *GetPaymentsPortalURLResponse) String() string { +func (x *DeletePersonalFileResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPaymentsPortalURLResponse) ProtoMessage() {} +func (*DeletePersonalFileResponse) ProtoMessage() {} -func (x *GetPaymentsPortalURLResponse) ProtoReflect() protoreflect.Message { +func (x *DeletePersonalFileResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18568,19 +18575,12 @@ func (x *GetPaymentsPortalURLResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetPaymentsPortalURLResponse.ProtoReflect.Descriptor instead. -func (*GetPaymentsPortalURLResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use DeletePersonalFileResponse.ProtoReflect.Descriptor instead. +func (*DeletePersonalFileResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{306} } -func (x *GetPaymentsPortalURLResponse) GetUrl() string { - if x != nil { - return x.Url - } - return "" -} - -type GetBillingCreditBalanceRequest struct { +type GetBillingSubscriptionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -18589,8 +18589,8 @@ type GetBillingCreditBalanceRequest struct { SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` } -func (x *GetBillingCreditBalanceRequest) Reset() { - *x = GetBillingCreditBalanceRequest{} +func (x *GetBillingSubscriptionRequest) Reset() { + *x = GetBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18598,13 +18598,13 @@ func (x *GetBillingCreditBalanceRequest) Reset() { } } -func (x *GetBillingCreditBalanceRequest) String() string { +func (x *GetBillingSubscriptionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBillingCreditBalanceRequest) ProtoMessage() {} +func (*GetBillingSubscriptionRequest) ProtoMessage() {} -func (x *GetBillingCreditBalanceRequest) ProtoReflect() protoreflect.Message { +func (x *GetBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18616,35 +18616,37 @@ func (x *GetBillingCreditBalanceRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetBillingCreditBalanceRequest.ProtoReflect.Descriptor instead. -func (*GetBillingCreditBalanceRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBillingSubscriptionRequest.ProtoReflect.Descriptor instead. +func (*GetBillingSubscriptionRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{307} } -func (x *GetBillingCreditBalanceRequest) GetOrg() string { +func (x *GetBillingSubscriptionRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *GetBillingCreditBalanceRequest) GetSuperuserForceAccess() bool { +func (x *GetBillingSubscriptionRequest) GetSuperuserForceAccess() bool { if x != nil { return x.SuperuserForceAccess } return false } -type GetBillingCreditBalanceResponse struct { +type GetBillingSubscriptionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Balance float64 `protobuf:"fixed64,1,opt,name=balance,proto3" json:"balance,omitempty"` + Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` + Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` + BillingPortalUrl string `protobuf:"bytes,3,opt,name=billing_portal_url,json=billingPortalUrl,proto3" json:"billing_portal_url,omitempty"` } -func (x *GetBillingCreditBalanceResponse) Reset() { - *x = GetBillingCreditBalanceResponse{} +func (x *GetBillingSubscriptionResponse) Reset() { + *x = GetBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18652,13 +18654,13 @@ func (x *GetBillingCreditBalanceResponse) Reset() { } } -func (x *GetBillingCreditBalanceResponse) String() string { +func (x *GetBillingSubscriptionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBillingCreditBalanceResponse) ProtoMessage() {} +func (*GetBillingSubscriptionResponse) ProtoMessage() {} -func (x *GetBillingCreditBalanceResponse) ProtoReflect() protoreflect.Message { +func (x *GetBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18670,26 +18672,44 @@ func (x *GetBillingCreditBalanceResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetBillingCreditBalanceResponse.ProtoReflect.Descriptor instead. -func (*GetBillingCreditBalanceResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBillingSubscriptionResponse.ProtoReflect.Descriptor instead. +func (*GetBillingSubscriptionResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{308} } -func (x *GetBillingCreditBalanceResponse) GetBalance() float64 { +func (x *GetBillingSubscriptionResponse) GetOrganization() *Organization { if x != nil { - return x.Balance + return x.Organization } - return 0 + return nil } -type ListPublicBillingPlansRequest struct { +func (x *GetBillingSubscriptionResponse) GetSubscription() *Subscription { + if x != nil { + return x.Subscription + } + return nil +} + +func (x *GetBillingSubscriptionResponse) GetBillingPortalUrl() string { + if x != nil { + return x.BillingPortalUrl + } + return "" +} + +type UpdateBillingSubscriptionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + PlanName string `protobuf:"bytes,2,opt,name=plan_name,json=planName,proto3" json:"plan_name,omitempty"` + SuperuserForceAccess bool `protobuf:"varint,3,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` } -func (x *ListPublicBillingPlansRequest) Reset() { - *x = ListPublicBillingPlansRequest{} +func (x *UpdateBillingSubscriptionRequest) Reset() { + *x = UpdateBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18697,13 +18717,13 @@ func (x *ListPublicBillingPlansRequest) Reset() { } } -func (x *ListPublicBillingPlansRequest) String() string { +func (x *UpdateBillingSubscriptionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListPublicBillingPlansRequest) ProtoMessage() {} +func (*UpdateBillingSubscriptionRequest) ProtoMessage() {} -func (x *ListPublicBillingPlansRequest) ProtoReflect() protoreflect.Message { +func (x *UpdateBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18715,21 +18735,43 @@ func (x *ListPublicBillingPlansRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListPublicBillingPlansRequest.ProtoReflect.Descriptor instead. -func (*ListPublicBillingPlansRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateBillingSubscriptionRequest.ProtoReflect.Descriptor instead. +func (*UpdateBillingSubscriptionRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{309} } -type ListPublicBillingPlansResponse struct { +func (x *UpdateBillingSubscriptionRequest) GetOrg() string { + if x != nil { + return x.Org + } + return "" +} + +func (x *UpdateBillingSubscriptionRequest) GetPlanName() string { + if x != nil { + return x.PlanName + } + return "" +} + +func (x *UpdateBillingSubscriptionRequest) GetSuperuserForceAccess() bool { + if x != nil { + return x.SuperuserForceAccess + } + return false +} + +type UpdateBillingSubscriptionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Plans []*BillingPlan `protobuf:"bytes,1,rep,name=plans,proto3" json:"plans,omitempty"` + Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` + Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` } -func (x *ListPublicBillingPlansResponse) Reset() { - *x = ListPublicBillingPlansResponse{} +func (x *UpdateBillingSubscriptionResponse) Reset() { + *x = UpdateBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18737,13 +18779,13 @@ func (x *ListPublicBillingPlansResponse) Reset() { } } -func (x *ListPublicBillingPlansResponse) String() string { +func (x *UpdateBillingSubscriptionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListPublicBillingPlansResponse) ProtoMessage() {} +func (*UpdateBillingSubscriptionResponse) ProtoMessage() {} -func (x *ListPublicBillingPlansResponse) ProtoReflect() protoreflect.Message { +func (x *UpdateBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18755,28 +18797,36 @@ func (x *ListPublicBillingPlansResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListPublicBillingPlansResponse.ProtoReflect.Descriptor instead. -func (*ListPublicBillingPlansResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use UpdateBillingSubscriptionResponse.ProtoReflect.Descriptor instead. +func (*UpdateBillingSubscriptionResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{310} } -func (x *ListPublicBillingPlansResponse) GetPlans() []*BillingPlan { +func (x *UpdateBillingSubscriptionResponse) GetOrganization() *Organization { if x != nil { - return x.Plans + return x.Organization } return nil } -type GetBillingProjectCredentialsRequest struct { +func (x *UpdateBillingSubscriptionResponse) GetSubscription() *Subscription { + if x != nil { + return x.Subscription + } + return nil +} + +type CancelBillingSubscriptionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` } -func (x *GetBillingProjectCredentialsRequest) Reset() { - *x = GetBillingProjectCredentialsRequest{} +func (x *CancelBillingSubscriptionRequest) Reset() { + *x = CancelBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18784,13 +18834,13 @@ func (x *GetBillingProjectCredentialsRequest) Reset() { } } -func (x *GetBillingProjectCredentialsRequest) String() string { +func (x *CancelBillingSubscriptionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBillingProjectCredentialsRequest) ProtoMessage() {} +func (*CancelBillingSubscriptionRequest) ProtoMessage() {} -func (x *GetBillingProjectCredentialsRequest) ProtoReflect() protoreflect.Message { +func (x *CancelBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18802,31 +18852,33 @@ func (x *GetBillingProjectCredentialsRequest) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use GetBillingProjectCredentialsRequest.ProtoReflect.Descriptor instead. -func (*GetBillingProjectCredentialsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use CancelBillingSubscriptionRequest.ProtoReflect.Descriptor instead. +func (*CancelBillingSubscriptionRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{311} } -func (x *GetBillingProjectCredentialsRequest) GetOrg() string { +func (x *CancelBillingSubscriptionRequest) GetOrg() string { if x != nil { return x.Org } return "" } -type GetBillingProjectCredentialsResponse struct { +func (x *CancelBillingSubscriptionRequest) GetSuperuserForceAccess() bool { + if x != nil { + return x.SuperuserForceAccess + } + return false +} + +type CancelBillingSubscriptionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - RuntimeHost string `protobuf:"bytes,1,opt,name=runtime_host,json=runtimeHost,proto3" json:"runtime_host,omitempty"` - InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` - AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` - TtlSeconds uint32 `protobuf:"varint,4,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` } -func (x *GetBillingProjectCredentialsResponse) Reset() { - *x = GetBillingProjectCredentialsResponse{} +func (x *CancelBillingSubscriptionResponse) Reset() { + *x = CancelBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18834,13 +18886,13 @@ func (x *GetBillingProjectCredentialsResponse) Reset() { } } -func (x *GetBillingProjectCredentialsResponse) String() string { +func (x *CancelBillingSubscriptionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBillingProjectCredentialsResponse) ProtoMessage() {} +func (*CancelBillingSubscriptionResponse) ProtoMessage() {} -func (x *GetBillingProjectCredentialsResponse) ProtoReflect() protoreflect.Message { +func (x *CancelBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18852,54 +18904,23 @@ func (x *GetBillingProjectCredentialsResponse) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use GetBillingProjectCredentialsResponse.ProtoReflect.Descriptor instead. -func (*GetBillingProjectCredentialsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use CancelBillingSubscriptionResponse.ProtoReflect.Descriptor instead. +func (*CancelBillingSubscriptionResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{312} } -func (x *GetBillingProjectCredentialsResponse) GetRuntimeHost() string { - if x != nil { - return x.RuntimeHost - } - return "" -} - -func (x *GetBillingProjectCredentialsResponse) GetInstanceId() string { - if x != nil { - return x.InstanceId - } - return "" -} - -func (x *GetBillingProjectCredentialsResponse) GetAccessToken() string { - if x != nil { - return x.AccessToken - } - return "" -} - -func (x *GetBillingProjectCredentialsResponse) GetTtlSeconds() uint32 { - if x != nil { - return x.TtlSeconds - } - return 0 -} - -type TelemetryRequest struct { +type RenewBillingSubscriptionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name passed to activity module's name arg - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Value passed to activity module's value arg - Value float32 `protobuf:"fixed32,2,opt,name=value,proto3" json:"value,omitempty"` - // Free form struct of the actual event - Event *structpb.Struct `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + PlanName string `protobuf:"bytes,2,opt,name=plan_name,json=planName,proto3" json:"plan_name,omitempty"` + SuperuserForceAccess bool `protobuf:"varint,3,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` } -func (x *TelemetryRequest) Reset() { - *x = TelemetryRequest{} +func (x *RenewBillingSubscriptionRequest) Reset() { + *x = RenewBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18907,13 +18928,13 @@ func (x *TelemetryRequest) Reset() { } } -func (x *TelemetryRequest) String() string { +func (x *RenewBillingSubscriptionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TelemetryRequest) ProtoMessage() {} +func (*RenewBillingSubscriptionRequest) ProtoMessage() {} -func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { +func (x *RenewBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18925,40 +18946,43 @@ func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TelemetryRequest.ProtoReflect.Descriptor instead. -func (*TelemetryRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use RenewBillingSubscriptionRequest.ProtoReflect.Descriptor instead. +func (*RenewBillingSubscriptionRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{313} } -func (x *TelemetryRequest) GetName() string { +func (x *RenewBillingSubscriptionRequest) GetOrg() string { if x != nil { - return x.Name + return x.Org } return "" } -func (x *TelemetryRequest) GetValue() float32 { +func (x *RenewBillingSubscriptionRequest) GetPlanName() string { if x != nil { - return x.Value + return x.PlanName } - return 0 + return "" } -func (x *TelemetryRequest) GetEvent() *structpb.Struct { +func (x *RenewBillingSubscriptionRequest) GetSuperuserForceAccess() bool { if x != nil { - return x.Event + return x.SuperuserForceAccess } - return nil + return false } -type TelemetryResponse struct { +type RenewBillingSubscriptionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` + Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` } -func (x *TelemetryResponse) Reset() { - *x = TelemetryResponse{} +func (x *RenewBillingSubscriptionResponse) Reset() { + *x = RenewBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18966,13 +18990,13 @@ func (x *TelemetryResponse) Reset() { } } -func (x *TelemetryResponse) String() string { +func (x *RenewBillingSubscriptionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TelemetryResponse) ProtoMessage() {} +func (*RenewBillingSubscriptionResponse) ProtoMessage() {} -func (x *TelemetryResponse) ProtoReflect() protoreflect.Message { +func (x *RenewBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -18984,23 +19008,38 @@ func (x *TelemetryResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TelemetryResponse.ProtoReflect.Descriptor instead. -func (*TelemetryResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use RenewBillingSubscriptionResponse.ProtoReflect.Descriptor instead. +func (*RenewBillingSubscriptionResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{314} } -type RequestProjectAccessRequest struct { +func (x *RenewBillingSubscriptionResponse) GetOrganization() *Organization { + if x != nil { + return x.Organization + } + return nil +} + +func (x *RenewBillingSubscriptionResponse) GetSubscription() *Subscription { + if x != nil { + return x.Subscription + } + return nil +} + +type GetPaymentsPortalURLRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` - Role string `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + ReturnUrl string `protobuf:"bytes,2,opt,name=return_url,json=returnUrl,proto3" json:"return_url,omitempty"` + Setup bool `protobuf:"varint,4,opt,name=setup,proto3" json:"setup,omitempty"` // If true, the returned URL will be for the first time payment method setup flow. If false, it will be for managing the billing details. + SuperuserForceAccess bool `protobuf:"varint,3,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` } -func (x *RequestProjectAccessRequest) Reset() { - *x = RequestProjectAccessRequest{} +func (x *GetPaymentsPortalURLRequest) Reset() { + *x = GetPaymentsPortalURLRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19008,13 +19047,13 @@ func (x *RequestProjectAccessRequest) Reset() { } } -func (x *RequestProjectAccessRequest) String() string { +func (x *GetPaymentsPortalURLRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RequestProjectAccessRequest) ProtoMessage() {} +func (*GetPaymentsPortalURLRequest) ProtoMessage() {} -func (x *RequestProjectAccessRequest) ProtoReflect() protoreflect.Message { +func (x *GetPaymentsPortalURLRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19026,40 +19065,49 @@ func (x *RequestProjectAccessRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RequestProjectAccessRequest.ProtoReflect.Descriptor instead. -func (*RequestProjectAccessRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPaymentsPortalURLRequest.ProtoReflect.Descriptor instead. +func (*GetPaymentsPortalURLRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{315} } -func (x *RequestProjectAccessRequest) GetOrg() string { +func (x *GetPaymentsPortalURLRequest) GetOrg() string { if x != nil { return x.Org } return "" } -func (x *RequestProjectAccessRequest) GetProject() string { +func (x *GetPaymentsPortalURLRequest) GetReturnUrl() string { if x != nil { - return x.Project + return x.ReturnUrl } return "" } -func (x *RequestProjectAccessRequest) GetRole() string { +func (x *GetPaymentsPortalURLRequest) GetSetup() bool { if x != nil { - return x.Role + return x.Setup } - return "" + return false } -type RequestProjectAccessResponse struct { +func (x *GetPaymentsPortalURLRequest) GetSuperuserForceAccess() bool { + if x != nil { + return x.SuperuserForceAccess + } + return false +} + +type GetPaymentsPortalURLResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` } -func (x *RequestProjectAccessResponse) Reset() { - *x = RequestProjectAccessResponse{} +func (x *GetPaymentsPortalURLResponse) Reset() { + *x = GetPaymentsPortalURLResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19067,13 +19115,13 @@ func (x *RequestProjectAccessResponse) Reset() { } } -func (x *RequestProjectAccessResponse) String() string { +func (x *GetPaymentsPortalURLResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RequestProjectAccessResponse) ProtoMessage() {} +func (*GetPaymentsPortalURLResponse) ProtoMessage() {} -func (x *RequestProjectAccessResponse) ProtoReflect() protoreflect.Message { +func (x *GetPaymentsPortalURLResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19085,21 +19133,29 @@ func (x *RequestProjectAccessResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RequestProjectAccessResponse.ProtoReflect.Descriptor instead. -func (*RequestProjectAccessResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPaymentsPortalURLResponse.ProtoReflect.Descriptor instead. +func (*GetPaymentsPortalURLResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{316} } -type GetProjectAccessRequestRequest struct { +func (x *GetPaymentsPortalURLResponse) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type GetBillingCreditBalanceRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` } -func (x *GetProjectAccessRequestRequest) Reset() { - *x = GetProjectAccessRequestRequest{} +func (x *GetBillingCreditBalanceRequest) Reset() { + *x = GetBillingCreditBalanceRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19107,13 +19163,13 @@ func (x *GetProjectAccessRequestRequest) Reset() { } } -func (x *GetProjectAccessRequestRequest) String() string { +func (x *GetBillingCreditBalanceRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectAccessRequestRequest) ProtoMessage() {} +func (*GetBillingCreditBalanceRequest) ProtoMessage() {} -func (x *GetProjectAccessRequestRequest) ProtoReflect() protoreflect.Message { +func (x *GetBillingCreditBalanceRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19125,28 +19181,35 @@ func (x *GetProjectAccessRequestRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectAccessRequestRequest.ProtoReflect.Descriptor instead. -func (*GetProjectAccessRequestRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBillingCreditBalanceRequest.ProtoReflect.Descriptor instead. +func (*GetBillingCreditBalanceRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{317} } -func (x *GetProjectAccessRequestRequest) GetId() string { +func (x *GetBillingCreditBalanceRequest) GetOrg() string { if x != nil { - return x.Id + return x.Org } return "" } -type GetProjectAccessRequestResponse struct { +func (x *GetBillingCreditBalanceRequest) GetSuperuserForceAccess() bool { + if x != nil { + return x.SuperuserForceAccess + } + return false +} + +type GetBillingCreditBalanceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + Balance float64 `protobuf:"fixed64,1,opt,name=balance,proto3" json:"balance,omitempty"` } -func (x *GetProjectAccessRequestResponse) Reset() { - *x = GetProjectAccessRequestResponse{} +func (x *GetBillingCreditBalanceResponse) Reset() { + *x = GetBillingCreditBalanceResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19154,13 +19217,13 @@ func (x *GetProjectAccessRequestResponse) Reset() { } } -func (x *GetProjectAccessRequestResponse) String() string { +func (x *GetBillingCreditBalanceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetProjectAccessRequestResponse) ProtoMessage() {} +func (*GetBillingCreditBalanceResponse) ProtoMessage() {} -func (x *GetProjectAccessRequestResponse) ProtoReflect() protoreflect.Message { +func (x *GetBillingCreditBalanceResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19172,29 +19235,26 @@ func (x *GetProjectAccessRequestResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetProjectAccessRequestResponse.ProtoReflect.Descriptor instead. -func (*GetProjectAccessRequestResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBillingCreditBalanceResponse.ProtoReflect.Descriptor instead. +func (*GetBillingCreditBalanceResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{318} } -func (x *GetProjectAccessRequestResponse) GetEmail() string { +func (x *GetBillingCreditBalanceResponse) GetBalance() float64 { if x != nil { - return x.Email + return x.Balance } - return "" + return 0 } -type ApproveProjectAccessRequest struct { +type ListPublicBillingPlansRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` } -func (x *ApproveProjectAccessRequest) Reset() { - *x = ApproveProjectAccessRequest{} +func (x *ListPublicBillingPlansRequest) Reset() { + *x = ListPublicBillingPlansRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19202,13 +19262,13 @@ func (x *ApproveProjectAccessRequest) Reset() { } } -func (x *ApproveProjectAccessRequest) String() string { +func (x *ListPublicBillingPlansRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ApproveProjectAccessRequest) ProtoMessage() {} +func (*ListPublicBillingPlansRequest) ProtoMessage() {} -func (x *ApproveProjectAccessRequest) ProtoReflect() protoreflect.Message { +func (x *ListPublicBillingPlansRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[319] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19220,33 +19280,21 @@ func (x *ApproveProjectAccessRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ApproveProjectAccessRequest.ProtoReflect.Descriptor instead. -func (*ApproveProjectAccessRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use ListPublicBillingPlansRequest.ProtoReflect.Descriptor instead. +func (*ListPublicBillingPlansRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{319} } -func (x *ApproveProjectAccessRequest) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *ApproveProjectAccessRequest) GetRole() string { - if x != nil { - return x.Role - } - return "" -} - -type ApproveProjectAccessResponse struct { +type ListPublicBillingPlansResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Plans []*BillingPlan `protobuf:"bytes,1,rep,name=plans,proto3" json:"plans,omitempty"` } -func (x *ApproveProjectAccessResponse) Reset() { - *x = ApproveProjectAccessResponse{} +func (x *ListPublicBillingPlansResponse) Reset() { + *x = ListPublicBillingPlansResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19254,13 +19302,13 @@ func (x *ApproveProjectAccessResponse) Reset() { } } -func (x *ApproveProjectAccessResponse) String() string { +func (x *ListPublicBillingPlansResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ApproveProjectAccessResponse) ProtoMessage() {} +func (*ListPublicBillingPlansResponse) ProtoMessage() {} -func (x *ApproveProjectAccessResponse) ProtoReflect() protoreflect.Message { +func (x *ListPublicBillingPlansResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19272,21 +19320,28 @@ func (x *ApproveProjectAccessResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ApproveProjectAccessResponse.ProtoReflect.Descriptor instead. -func (*ApproveProjectAccessResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ListPublicBillingPlansResponse.ProtoReflect.Descriptor instead. +func (*ListPublicBillingPlansResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{320} } -type DenyProjectAccessRequest struct { +func (x *ListPublicBillingPlansResponse) GetPlans() []*BillingPlan { + if x != nil { + return x.Plans + } + return nil +} + +type GetBillingProjectCredentialsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` } -func (x *DenyProjectAccessRequest) Reset() { - *x = DenyProjectAccessRequest{} +func (x *GetBillingProjectCredentialsRequest) Reset() { + *x = GetBillingProjectCredentialsRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19294,13 +19349,13 @@ func (x *DenyProjectAccessRequest) Reset() { } } -func (x *DenyProjectAccessRequest) String() string { +func (x *GetBillingProjectCredentialsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DenyProjectAccessRequest) ProtoMessage() {} +func (*GetBillingProjectCredentialsRequest) ProtoMessage() {} -func (x *DenyProjectAccessRequest) ProtoReflect() protoreflect.Message { +func (x *GetBillingProjectCredentialsRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19312,26 +19367,31 @@ func (x *DenyProjectAccessRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DenyProjectAccessRequest.ProtoReflect.Descriptor instead. -func (*DenyProjectAccessRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBillingProjectCredentialsRequest.ProtoReflect.Descriptor instead. +func (*GetBillingProjectCredentialsRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{321} } -func (x *DenyProjectAccessRequest) GetId() string { +func (x *GetBillingProjectCredentialsRequest) GetOrg() string { if x != nil { - return x.Id + return x.Org } return "" } -type DenyProjectAccessResponse struct { +type GetBillingProjectCredentialsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + RuntimeHost string `protobuf:"bytes,1,opt,name=runtime_host,json=runtimeHost,proto3" json:"runtime_host,omitempty"` + InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"` + TtlSeconds uint32 `protobuf:"varint,4,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` } -func (x *DenyProjectAccessResponse) Reset() { - *x = DenyProjectAccessResponse{} +func (x *GetBillingProjectCredentialsResponse) Reset() { + *x = GetBillingProjectCredentialsResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19339,13 +19399,13 @@ func (x *DenyProjectAccessResponse) Reset() { } } -func (x *DenyProjectAccessResponse) String() string { +func (x *GetBillingProjectCredentialsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DenyProjectAccessResponse) ProtoMessage() {} +func (*GetBillingProjectCredentialsResponse) ProtoMessage() {} -func (x *DenyProjectAccessResponse) ProtoReflect() protoreflect.Message { +func (x *GetBillingProjectCredentialsResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19357,22 +19417,54 @@ func (x *DenyProjectAccessResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DenyProjectAccessResponse.ProtoReflect.Descriptor instead. -func (*DenyProjectAccessResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBillingProjectCredentialsResponse.ProtoReflect.Descriptor instead. +func (*GetBillingProjectCredentialsResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{322} } -type ListOrganizationBillingIssuesRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` +func (x *GetBillingProjectCredentialsResponse) GetRuntimeHost() string { + if x != nil { + return x.RuntimeHost + } + return "" } -func (x *ListOrganizationBillingIssuesRequest) Reset() { - *x = ListOrganizationBillingIssuesRequest{} +func (x *GetBillingProjectCredentialsResponse) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *GetBillingProjectCredentialsResponse) GetAccessToken() string { + if x != nil { + return x.AccessToken + } + return "" +} + +func (x *GetBillingProjectCredentialsResponse) GetTtlSeconds() uint32 { + if x != nil { + return x.TtlSeconds + } + return 0 +} + +type TelemetryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name passed to activity module's name arg + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Value passed to activity module's value arg + Value float32 `protobuf:"fixed32,2,opt,name=value,proto3" json:"value,omitempty"` + // Free form struct of the actual event + Event *structpb.Struct `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"` +} + +func (x *TelemetryRequest) Reset() { + *x = TelemetryRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19380,13 +19472,13 @@ func (x *ListOrganizationBillingIssuesRequest) Reset() { } } -func (x *ListOrganizationBillingIssuesRequest) String() string { +func (x *TelemetryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListOrganizationBillingIssuesRequest) ProtoMessage() {} +func (*TelemetryRequest) ProtoMessage() {} -func (x *ListOrganizationBillingIssuesRequest) ProtoReflect() protoreflect.Message { +func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19398,35 +19490,40 @@ func (x *ListOrganizationBillingIssuesRequest) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use ListOrganizationBillingIssuesRequest.ProtoReflect.Descriptor instead. -func (*ListOrganizationBillingIssuesRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use TelemetryRequest.ProtoReflect.Descriptor instead. +func (*TelemetryRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{323} } -func (x *ListOrganizationBillingIssuesRequest) GetOrg() string { +func (x *TelemetryRequest) GetName() string { if x != nil { - return x.Org + return x.Name } return "" } -func (x *ListOrganizationBillingIssuesRequest) GetSuperuserForceAccess() bool { +func (x *TelemetryRequest) GetValue() float32 { if x != nil { - return x.SuperuserForceAccess + return x.Value } - return false + return 0 } -type ListOrganizationBillingIssuesResponse struct { +func (x *TelemetryRequest) GetEvent() *structpb.Struct { + if x != nil { + return x.Event + } + return nil +} + +type TelemetryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Issues []*BillingIssue `protobuf:"bytes,1,rep,name=issues,proto3" json:"issues,omitempty"` } -func (x *ListOrganizationBillingIssuesResponse) Reset() { - *x = ListOrganizationBillingIssuesResponse{} +func (x *TelemetryResponse) Reset() { + *x = TelemetryResponse{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19434,13 +19531,13 @@ func (x *ListOrganizationBillingIssuesResponse) Reset() { } } -func (x *ListOrganizationBillingIssuesResponse) String() string { +func (x *TelemetryResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListOrganizationBillingIssuesResponse) ProtoMessage() {} +func (*TelemetryResponse) ProtoMessage() {} -func (x *ListOrganizationBillingIssuesResponse) ProtoReflect() protoreflect.Message { +func (x *TelemetryResponse) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19452,35 +19549,23 @@ func (x *ListOrganizationBillingIssuesResponse) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use ListOrganizationBillingIssuesResponse.ProtoReflect.Descriptor instead. -func (*ListOrganizationBillingIssuesResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use TelemetryResponse.ProtoReflect.Descriptor instead. +func (*TelemetryResponse) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{324} } -func (x *ListOrganizationBillingIssuesResponse) GetIssues() []*BillingIssue { - if x != nil { - return x.Issues - } - return nil -} - -type User struct { +type RequestProjectAccessRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PhotoUrl string `protobuf:"bytes,4,opt,name=photo_url,json=photoUrl,proto3" json:"photo_url,omitempty"` - Quotas *UserQuotas `protobuf:"bytes,5,opt,name=quotas,proto3" json:"quotas,omitempty"` - PylonEmailHash string `protobuf:"bytes,8,opt,name=pylon_email_hash,json=pylonEmailHash,proto3" json:"pylon_email_hash,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"` + Role string `protobuf:"bytes,3,opt,name=role,proto3" json:"role,omitempty"` } -func (x *User) Reset() { - *x = User{} +func (x *RequestProjectAccessRequest) Reset() { + *x = RequestProjectAccessRequest{} if protoimpl.UnsafeEnabled { mi := &file_rill_admin_v1_api_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19488,13 +19573,13 @@ func (x *User) Reset() { } } -func (x *User) String() string { +func (x *RequestProjectAccessRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*User) ProtoMessage() {} +func (*RequestProjectAccessRequest) ProtoMessage() {} -func (x *User) ProtoReflect() protoreflect.Message { +func (x *RequestProjectAccessRequest) ProtoReflect() protoreflect.Message { mi := &file_rill_admin_v1_api_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -19506,98 +19591,95 @@ func (x *User) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use User.ProtoReflect.Descriptor instead. -func (*User) Descriptor() ([]byte, []int) { +// Deprecated: Use RequestProjectAccessRequest.ProtoReflect.Descriptor instead. +func (*RequestProjectAccessRequest) Descriptor() ([]byte, []int) { return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{325} } -func (x *User) GetId() string { +func (x *RequestProjectAccessRequest) GetOrg() string { if x != nil { - return x.Id + return x.Org } return "" } -func (x *User) GetEmail() string { +func (x *RequestProjectAccessRequest) GetProject() string { if x != nil { - return x.Email + return x.Project } return "" } -func (x *User) GetDisplayName() string { +func (x *RequestProjectAccessRequest) GetRole() string { if x != nil { - return x.DisplayName + return x.Role } return "" } -func (x *User) GetPhotoUrl() string { - if x != nil { - return x.PhotoUrl - } - return "" +type RequestProjectAccessResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *User) GetQuotas() *UserQuotas { - if x != nil { - return x.Quotas +func (x *RequestProjectAccessResponse) Reset() { + *x = RequestProjectAccessResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[326] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *User) GetPylonEmailHash() string { - if x != nil { - return x.PylonEmailHash - } - return "" +func (x *RequestProjectAccessResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *User) GetCreatedOn() *timestamppb.Timestamp { - if x != nil { - return x.CreatedOn +func (*RequestProjectAccessResponse) ProtoMessage() {} + +func (x *RequestProjectAccessResponse) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[326] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *User) GetUpdatedOn() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedOn - } - return nil +// Deprecated: Use RequestProjectAccessResponse.ProtoReflect.Descriptor instead. +func (*RequestProjectAccessResponse) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{326} } -type Service struct { +type GetProjectAccessRequestRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` - Attributes *structpb.Struct `protobuf:"bytes,8,opt,name=attributes,proto3" json:"attributes,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (x *Service) Reset() { - *x = Service{} +func (x *GetProjectAccessRequestRequest) Reset() { + *x = GetProjectAccessRequestRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[326] + mi := &file_rill_admin_v1_api_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Service) String() string { +func (x *GetProjectAccessRequestRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Service) ProtoMessage() {} +func (*GetProjectAccessRequestRequest) ProtoMessage() {} -func (x *Service) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[326] +func (x *GetProjectAccessRequestRequest) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19608,93 +19690,91 @@ func (x *Service) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Service.ProtoReflect.Descriptor instead. -func (*Service) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{326} +// Deprecated: Use GetProjectAccessRequestRequest.ProtoReflect.Descriptor instead. +func (*GetProjectAccessRequestRequest) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{327} } -func (x *Service) GetId() string { +func (x *GetProjectAccessRequestRequest) GetId() string { if x != nil { return x.Id } return "" } -func (x *Service) GetName() string { - if x != nil { - return x.Name - } - return "" -} +type GetProjectAccessRequestResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *Service) GetOrgId() string { - if x != nil { - return x.OrgId - } - return "" + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` } -func (x *Service) GetOrgName() string { - if x != nil { - return x.OrgName +func (x *GetProjectAccessRequestResponse) Reset() { + *x = GetProjectAccessRequestResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[328] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *Service) GetAttributes() *structpb.Struct { - if x != nil { - return x.Attributes - } - return nil +func (x *GetProjectAccessRequestResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *Service) GetCreatedOn() *timestamppb.Timestamp { - if x != nil { - return x.CreatedOn - } - return nil -} +func (*GetProjectAccessRequestResponse) ProtoMessage() {} -func (x *Service) GetUpdatedOn() *timestamppb.Timestamp { +func (x *GetProjectAccessRequestResponse) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[328] + 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 GetProjectAccessRequestResponse.ProtoReflect.Descriptor instead. +func (*GetProjectAccessRequestResponse) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{328} +} + +func (x *GetProjectAccessRequestResponse) GetEmail() string { if x != nil { - return x.UpdatedOn + return x.Email } - return nil + return "" } -type OrganizationMemberService struct { +type ApproveProjectAccessRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` - RoleName string `protobuf:"bytes,5,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - HasProjectRoles bool `protobuf:"varint,7,opt,name=has_project_roles,json=hasProjectRoles,proto3" json:"has_project_roles,omitempty"` // True if the user has a project role in any project in the organization. - Attributes *structpb.Struct `protobuf:"bytes,8,opt,name=attributes,proto3" json:"attributes,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` } -func (x *OrganizationMemberService) Reset() { - *x = OrganizationMemberService{} +func (x *ApproveProjectAccessRequest) Reset() { + *x = ApproveProjectAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[327] + mi := &file_rill_admin_v1_api_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OrganizationMemberService) String() string { +func (x *ApproveProjectAccessRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OrganizationMemberService) ProtoMessage() {} +func (*ApproveProjectAccessRequest) ProtoMessage() {} -func (x *OrganizationMemberService) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[327] +func (x *ApproveProjectAccessRequest) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19705,109 +19785,88 @@ func (x *OrganizationMemberService) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OrganizationMemberService.ProtoReflect.Descriptor instead. -func (*OrganizationMemberService) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{327} +// Deprecated: Use ApproveProjectAccessRequest.ProtoReflect.Descriptor instead. +func (*ApproveProjectAccessRequest) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{329} } -func (x *OrganizationMemberService) GetId() string { +func (x *ApproveProjectAccessRequest) GetId() string { if x != nil { return x.Id } return "" } -func (x *OrganizationMemberService) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *OrganizationMemberService) GetOrgId() string { +func (x *ApproveProjectAccessRequest) GetRole() string { if x != nil { - return x.OrgId + return x.Role } return "" } -func (x *OrganizationMemberService) GetOrgName() string { - if x != nil { - return x.OrgName - } - return "" +type ApproveProjectAccessResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *OrganizationMemberService) GetRoleName() string { - if x != nil { - return x.RoleName +func (x *ApproveProjectAccessResponse) Reset() { + *x = ApproveProjectAccessResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[330] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *OrganizationMemberService) GetHasProjectRoles() bool { - if x != nil { - return x.HasProjectRoles - } - return false +func (x *ApproveProjectAccessResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *OrganizationMemberService) GetAttributes() *structpb.Struct { - if x != nil { - return x.Attributes - } - return nil -} +func (*ApproveProjectAccessResponse) ProtoMessage() {} -func (x *OrganizationMemberService) GetCreatedOn() *timestamppb.Timestamp { - if x != nil { - return x.CreatedOn +func (x *ApproveProjectAccessResponse) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[330] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *OrganizationMemberService) GetUpdatedOn() *timestamppb.Timestamp { - if x != nil { - return x.UpdatedOn - } - return nil +// Deprecated: Use ApproveProjectAccessResponse.ProtoReflect.Descriptor instead. +func (*ApproveProjectAccessResponse) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{330} } -type ProjectMemberService struct { +type DenyProjectAccessRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` - OrgRoleName string `protobuf:"bytes,5,opt,name=org_role_name,json=orgRoleName,proto3" json:"org_role_name,omitempty"` - ProjectId string `protobuf:"bytes,6,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - ProjectName string `protobuf:"bytes,7,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` - ProjectRoleName string `protobuf:"bytes,8,opt,name=project_role_name,json=projectRoleName,proto3" json:"project_role_name,omitempty"` - Attributes *structpb.Struct `protobuf:"bytes,9,opt,name=attributes,proto3" json:"attributes,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` } -func (x *ProjectMemberService) Reset() { - *x = ProjectMemberService{} +func (x *DenyProjectAccessRequest) Reset() { + *x = DenyProjectAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[328] + mi := &file_rill_admin_v1_api_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProjectMemberService) String() string { +func (x *DenyProjectAccessRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProjectMemberService) ProtoMessage() {} +func (*DenyProjectAccessRequest) ProtoMessage() {} -func (x *ProjectMemberService) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[328] +func (x *DenyProjectAccessRequest) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19818,130 +19877,190 @@ func (x *ProjectMemberService) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProjectMemberService.ProtoReflect.Descriptor instead. -func (*ProjectMemberService) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{328} +// Deprecated: Use DenyProjectAccessRequest.ProtoReflect.Descriptor instead. +func (*DenyProjectAccessRequest) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{331} } -func (x *ProjectMemberService) GetId() string { +func (x *DenyProjectAccessRequest) GetId() string { if x != nil { return x.Id } return "" } -func (x *ProjectMemberService) GetName() string { - if x != nil { - return x.Name - } - return "" +type DenyProjectAccessResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *ProjectMemberService) GetOrgId() string { - if x != nil { - return x.OrgId +func (x *DenyProjectAccessResponse) Reset() { + *x = DenyProjectAccessResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[332] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *ProjectMemberService) GetOrgName() string { - if x != nil { - return x.OrgName - } - return "" +func (x *DenyProjectAccessResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ProjectMemberService) GetOrgRoleName() string { - if x != nil { - return x.OrgRoleName +func (*DenyProjectAccessResponse) ProtoMessage() {} + +func (x *DenyProjectAccessResponse) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[332] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *ProjectMemberService) GetProjectId() string { - if x != nil { - return x.ProjectId +// Deprecated: Use DenyProjectAccessResponse.ProtoReflect.Descriptor instead. +func (*DenyProjectAccessResponse) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{332} +} + +type ListOrganizationBillingIssuesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + SuperuserForceAccess bool `protobuf:"varint,2,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` +} + +func (x *ListOrganizationBillingIssuesRequest) Reset() { + *x = ListOrganizationBillingIssuesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[333] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *ProjectMemberService) GetProjectName() string { - if x != nil { - return x.ProjectName +func (x *ListOrganizationBillingIssuesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOrganizationBillingIssuesRequest) ProtoMessage() {} + +func (x *ListOrganizationBillingIssuesRequest) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[333] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *ProjectMemberService) GetProjectRoleName() string { +// Deprecated: Use ListOrganizationBillingIssuesRequest.ProtoReflect.Descriptor instead. +func (*ListOrganizationBillingIssuesRequest) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{333} +} + +func (x *ListOrganizationBillingIssuesRequest) GetOrg() string { if x != nil { - return x.ProjectRoleName + return x.Org } return "" } -func (x *ProjectMemberService) GetAttributes() *structpb.Struct { +func (x *ListOrganizationBillingIssuesRequest) GetSuperuserForceAccess() bool { if x != nil { - return x.Attributes + return x.SuperuserForceAccess } - return nil + return false } -func (x *ProjectMemberService) GetCreatedOn() *timestamppb.Timestamp { - if x != nil { - return x.CreatedOn +type ListOrganizationBillingIssuesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Issues []*BillingIssue `protobuf:"bytes,1,rep,name=issues,proto3" json:"issues,omitempty"` +} + +func (x *ListOrganizationBillingIssuesResponse) Reset() { + *x = ListOrganizationBillingIssuesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[334] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *ProjectMemberService) GetUpdatedOn() *timestamppb.Timestamp { +func (x *ListOrganizationBillingIssuesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOrganizationBillingIssuesResponse) ProtoMessage() {} + +func (x *ListOrganizationBillingIssuesResponse) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[334] + 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 ListOrganizationBillingIssuesResponse.ProtoReflect.Descriptor instead. +func (*ListOrganizationBillingIssuesResponse) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{334} +} + +func (x *ListOrganizationBillingIssuesResponse) GetIssues() []*BillingIssue { if x != nil { - return x.UpdatedOn + return x.Issues } return nil } -type Organization struct { +type User struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Globally unique - DisplayName string `protobuf:"bytes,11,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - LogoUrl string `protobuf:"bytes,12,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"` - LogoDarkUrl string `protobuf:"bytes,18,opt,name=logo_dark_url,json=logoDarkUrl,proto3" json:"logo_dark_url,omitempty"` - FaviconUrl string `protobuf:"bytes,13,opt,name=favicon_url,json=faviconUrl,proto3" json:"favicon_url,omitempty"` - ThumbnailUrl string `protobuf:"bytes,17,opt,name=thumbnail_url,json=thumbnailUrl,proto3" json:"thumbnail_url,omitempty"` - CustomDomain string `protobuf:"bytes,10,opt,name=custom_domain,json=customDomain,proto3" json:"custom_domain,omitempty"` - DefaultProjectRoleId string `protobuf:"bytes,16,opt,name=default_project_role_id,json=defaultProjectRoleId,proto3" json:"default_project_role_id,omitempty"` - Quotas *OrganizationQuotas `protobuf:"bytes,4,opt,name=quotas,proto3" json:"quotas,omitempty"` - BillingCustomerId string `protobuf:"bytes,7,opt,name=billing_customer_id,json=billingCustomerId,proto3" json:"billing_customer_id,omitempty"` - PaymentCustomerId string `protobuf:"bytes,8,opt,name=payment_customer_id,json=paymentCustomerId,proto3" json:"payment_customer_id,omitempty"` - BillingEmail string `protobuf:"bytes,9,opt,name=billing_email,json=billingEmail,proto3" json:"billing_email,omitempty"` - BillingPlanName *string `protobuf:"bytes,14,opt,name=billing_plan_name,json=billingPlanName,proto3,oneof" json:"billing_plan_name,omitempty"` - BillingPlanDisplayName *string `protobuf:"bytes,15,opt,name=billing_plan_display_name,json=billingPlanDisplayName,proto3,oneof" json:"billing_plan_display_name,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + PhotoUrl string `protobuf:"bytes,4,opt,name=photo_url,json=photoUrl,proto3" json:"photo_url,omitempty"` + Quotas *UserQuotas `protobuf:"bytes,5,opt,name=quotas,proto3" json:"quotas,omitempty"` + PylonEmailHash string `protobuf:"bytes,8,opt,name=pylon_email_hash,json=pylonEmailHash,proto3" json:"pylon_email_hash,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *Organization) Reset() { - *x = Organization{} +func (x *User) Reset() { + *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[329] + mi := &file_rill_admin_v1_api_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Organization) String() string { +func (x *User) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Organization) ProtoMessage() {} +func (*User) ProtoMessage() {} -func (x *Organization) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[329] +func (x *User) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19952,168 +20071,195 @@ func (x *Organization) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Organization.ProtoReflect.Descriptor instead. -func (*Organization) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{329} +// Deprecated: Use User.ProtoReflect.Descriptor instead. +func (*User) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{335} } -func (x *Organization) GetId() string { +func (x *User) GetId() string { if x != nil { return x.Id } return "" } -func (x *Organization) GetName() string { +func (x *User) GetEmail() string { if x != nil { - return x.Name + return x.Email } return "" } -func (x *Organization) GetDisplayName() string { +func (x *User) GetDisplayName() string { if x != nil { return x.DisplayName } return "" } -func (x *Organization) GetDescription() string { +func (x *User) GetPhotoUrl() string { if x != nil { - return x.Description + return x.PhotoUrl } return "" } -func (x *Organization) GetLogoUrl() string { +func (x *User) GetQuotas() *UserQuotas { if x != nil { - return x.LogoUrl + return x.Quotas } - return "" + return nil } -func (x *Organization) GetLogoDarkUrl() string { +func (x *User) GetPylonEmailHash() string { if x != nil { - return x.LogoDarkUrl + return x.PylonEmailHash } return "" } -func (x *Organization) GetFaviconUrl() string { +func (x *User) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.FaviconUrl + return x.CreatedOn } - return "" + return nil } -func (x *Organization) GetThumbnailUrl() string { +func (x *User) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.ThumbnailUrl + return x.UpdatedOn } - return "" + return nil } -func (x *Organization) GetCustomDomain() string { - if x != nil { - return x.CustomDomain - } - return "" +type Service struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` + Attributes *structpb.Struct `protobuf:"bytes,8,opt,name=attributes,proto3" json:"attributes,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *Organization) GetDefaultProjectRoleId() string { - if x != nil { - return x.DefaultProjectRoleId +func (x *Service) Reset() { + *x = Service{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[336] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *Organization) GetQuotas() *OrganizationQuotas { - if x != nil { - return x.Quotas +func (x *Service) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Service) ProtoMessage() {} + +func (x *Service) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[336] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *Organization) GetBillingCustomerId() string { +// Deprecated: Use Service.ProtoReflect.Descriptor instead. +func (*Service) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{336} +} + +func (x *Service) GetId() string { if x != nil { - return x.BillingCustomerId + return x.Id } return "" } -func (x *Organization) GetPaymentCustomerId() string { +func (x *Service) GetName() string { if x != nil { - return x.PaymentCustomerId + return x.Name } return "" } -func (x *Organization) GetBillingEmail() string { +func (x *Service) GetOrgId() string { if x != nil { - return x.BillingEmail + return x.OrgId } return "" } -func (x *Organization) GetBillingPlanName() string { - if x != nil && x.BillingPlanName != nil { - return *x.BillingPlanName +func (x *Service) GetOrgName() string { + if x != nil { + return x.OrgName } return "" } -func (x *Organization) GetBillingPlanDisplayName() string { - if x != nil && x.BillingPlanDisplayName != nil { - return *x.BillingPlanDisplayName +func (x *Service) GetAttributes() *structpb.Struct { + if x != nil { + return x.Attributes } - return "" + return nil } -func (x *Organization) GetCreatedOn() *timestamppb.Timestamp { +func (x *Service) GetCreatedOn() *timestamppb.Timestamp { if x != nil { return x.CreatedOn } return nil } -func (x *Organization) GetUpdatedOn() *timestamppb.Timestamp { +func (x *Service) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { return x.UpdatedOn } return nil } -type Subscription struct { +type OrganizationMemberService struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Plan *BillingPlan `protobuf:"bytes,2,opt,name=plan,proto3" json:"plan,omitempty"` - StartDate *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` - EndDate *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` - CurrentBillingCycleStartDate *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=current_billing_cycle_start_date,json=currentBillingCycleStartDate,proto3" json:"current_billing_cycle_start_date,omitempty"` - CurrentBillingCycleEndDate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=current_billing_cycle_end_date,json=currentBillingCycleEndDate,proto3" json:"current_billing_cycle_end_date,omitempty"` - TrialEndDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=trial_end_date,json=trialEndDate,proto3" json:"trial_end_date,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` + RoleName string `protobuf:"bytes,5,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + HasProjectRoles bool `protobuf:"varint,7,opt,name=has_project_roles,json=hasProjectRoles,proto3" json:"has_project_roles,omitempty"` // True if the user has a project role in any project in the organization. + Attributes *structpb.Struct `protobuf:"bytes,8,opt,name=attributes,proto3" json:"attributes,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *Subscription) Reset() { - *x = Subscription{} +func (x *OrganizationMemberService) Reset() { + *x = OrganizationMemberService{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[330] + mi := &file_rill_admin_v1_api_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Subscription) String() string { +func (x *OrganizationMemberService) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Subscription) ProtoMessage() {} +func (*OrganizationMemberService) ProtoMessage() {} -func (x *Subscription) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[330] +func (x *OrganizationMemberService) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20124,86 +20270,109 @@ func (x *Subscription) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Subscription.ProtoReflect.Descriptor instead. -func (*Subscription) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{330} +// Deprecated: Use OrganizationMemberService.ProtoReflect.Descriptor instead. +func (*OrganizationMemberService) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{337} } -func (x *Subscription) GetId() string { +func (x *OrganizationMemberService) GetId() string { if x != nil { return x.Id } return "" } -func (x *Subscription) GetPlan() *BillingPlan { +func (x *OrganizationMemberService) GetName() string { if x != nil { - return x.Plan + return x.Name } - return nil + return "" } -func (x *Subscription) GetStartDate() *timestamppb.Timestamp { +func (x *OrganizationMemberService) GetOrgId() string { if x != nil { - return x.StartDate + return x.OrgId } - return nil + return "" } -func (x *Subscription) GetEndDate() *timestamppb.Timestamp { +func (x *OrganizationMemberService) GetOrgName() string { if x != nil { - return x.EndDate + return x.OrgName } - return nil + return "" } -func (x *Subscription) GetCurrentBillingCycleStartDate() *timestamppb.Timestamp { +func (x *OrganizationMemberService) GetRoleName() string { if x != nil { - return x.CurrentBillingCycleStartDate + return x.RoleName + } + return "" +} + +func (x *OrganizationMemberService) GetHasProjectRoles() bool { + if x != nil { + return x.HasProjectRoles + } + return false +} + +func (x *OrganizationMemberService) GetAttributes() *structpb.Struct { + if x != nil { + return x.Attributes } return nil } -func (x *Subscription) GetCurrentBillingCycleEndDate() *timestamppb.Timestamp { +func (x *OrganizationMemberService) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.CurrentBillingCycleEndDate + return x.CreatedOn } return nil } -func (x *Subscription) GetTrialEndDate() *timestamppb.Timestamp { +func (x *OrganizationMemberService) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.TrialEndDate + return x.UpdatedOn } return nil } -type UserQuotas struct { +type ProjectMemberService struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SingleuserOrgs int32 `protobuf:"varint,1,opt,name=singleuser_orgs,json=singleuserOrgs,proto3" json:"singleuser_orgs,omitempty"` - TrialOrgs int32 `protobuf:"varint,2,opt,name=trial_orgs,json=trialOrgs,proto3" json:"trial_orgs,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` + OrgRoleName string `protobuf:"bytes,5,opt,name=org_role_name,json=orgRoleName,proto3" json:"org_role_name,omitempty"` + ProjectId string `protobuf:"bytes,6,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + ProjectName string `protobuf:"bytes,7,opt,name=project_name,json=projectName,proto3" json:"project_name,omitempty"` + ProjectRoleName string `protobuf:"bytes,8,opt,name=project_role_name,json=projectRoleName,proto3" json:"project_role_name,omitempty"` + Attributes *structpb.Struct `protobuf:"bytes,9,opt,name=attributes,proto3" json:"attributes,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *UserQuotas) Reset() { - *x = UserQuotas{} +func (x *ProjectMemberService) Reset() { + *x = ProjectMemberService{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[331] + mi := &file_rill_admin_v1_api_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserQuotas) String() string { +func (x *ProjectMemberService) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserQuotas) ProtoMessage() {} +func (*ProjectMemberService) ProtoMessage() {} -func (x *UserQuotas) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[331] +func (x *ProjectMemberService) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20214,162 +20383,130 @@ func (x *UserQuotas) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserQuotas.ProtoReflect.Descriptor instead. -func (*UserQuotas) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{331} +// Deprecated: Use ProjectMemberService.ProtoReflect.Descriptor instead. +func (*ProjectMemberService) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{338} } -func (x *UserQuotas) GetSingleuserOrgs() int32 { +func (x *ProjectMemberService) GetId() string { if x != nil { - return x.SingleuserOrgs + return x.Id } - return 0 + return "" } -func (x *UserQuotas) GetTrialOrgs() int32 { +func (x *ProjectMemberService) GetName() string { if x != nil { - return x.TrialOrgs + return x.Name } - return 0 -} - -type OrganizationQuotas struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Projects int32 `protobuf:"varint,1,opt,name=projects,proto3" json:"projects,omitempty"` - Deployments int32 `protobuf:"varint,2,opt,name=deployments,proto3" json:"deployments,omitempty"` - SlotsTotal int32 `protobuf:"varint,3,opt,name=slots_total,json=slotsTotal,proto3" json:"slots_total,omitempty"` - SlotsPerDeployment int32 `protobuf:"varint,4,opt,name=slots_per_deployment,json=slotsPerDeployment,proto3" json:"slots_per_deployment,omitempty"` - OutstandingInvites int32 `protobuf:"varint,5,opt,name=outstanding_invites,json=outstandingInvites,proto3" json:"outstanding_invites,omitempty"` - StorageLimitBytesPerDeployment int64 `protobuf:"varint,6,opt,name=storage_limit_bytes_per_deployment,json=storageLimitBytesPerDeployment,proto3" json:"storage_limit_bytes_per_deployment,omitempty"` + return "" } -func (x *OrganizationQuotas) Reset() { - *x = OrganizationQuotas{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[332] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ProjectMemberService) GetOrgId() string { + if x != nil { + return x.OrgId } + return "" } -func (x *OrganizationQuotas) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrganizationQuotas) ProtoMessage() {} - -func (x *OrganizationQuotas) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[332] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ProjectMemberService) GetOrgName() string { + if x != nil { + return x.OrgName } - return mi.MessageOf(x) + return "" } -// Deprecated: Use OrganizationQuotas.ProtoReflect.Descriptor instead. -func (*OrganizationQuotas) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{332} +func (x *ProjectMemberService) GetOrgRoleName() string { + if x != nil { + return x.OrgRoleName + } + return "" } -func (x *OrganizationQuotas) GetProjects() int32 { +func (x *ProjectMemberService) GetProjectId() string { if x != nil { - return x.Projects + return x.ProjectId } - return 0 + return "" } -func (x *OrganizationQuotas) GetDeployments() int32 { +func (x *ProjectMemberService) GetProjectName() string { if x != nil { - return x.Deployments + return x.ProjectName } - return 0 + return "" } -func (x *OrganizationQuotas) GetSlotsTotal() int32 { +func (x *ProjectMemberService) GetProjectRoleName() string { if x != nil { - return x.SlotsTotal + return x.ProjectRoleName } - return 0 + return "" } -func (x *OrganizationQuotas) GetSlotsPerDeployment() int32 { +func (x *ProjectMemberService) GetAttributes() *structpb.Struct { if x != nil { - return x.SlotsPerDeployment + return x.Attributes } - return 0 + return nil } -func (x *OrganizationQuotas) GetOutstandingInvites() int32 { +func (x *ProjectMemberService) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.OutstandingInvites + return x.CreatedOn } - return 0 + return nil } -func (x *OrganizationQuotas) GetStorageLimitBytesPerDeployment() int64 { +func (x *ProjectMemberService) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.StorageLimitBytesPerDeployment + return x.UpdatedOn } - return 0 + return nil } -type Project struct { +type Organization struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Unique in organization - OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` - OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` - Public bool `protobuf:"varint,6,opt,name=public,proto3" json:"public,omitempty"` - CreatedByUserId string `protobuf:"bytes,22,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` - DirectoryName string `protobuf:"bytes,26,opt,name=directory_name,json=directoryName,proto3" json:"directory_name,omitempty"` - Provisioner string `protobuf:"bytes,7,opt,name=provisioner,proto3" json:"provisioner,omitempty"` - GitRemote string `protobuf:"bytes,8,opt,name=git_remote,json=gitRemote,proto3" json:"git_remote,omitempty"` - // managed_git_id is set if the project is connected to a rill-managed git repo. - ManagedGitId string `protobuf:"bytes,24,opt,name=managed_git_id,json=managedGitId,proto3" json:"managed_git_id,omitempty"` - Subpath string `protobuf:"bytes,17,opt,name=subpath,proto3" json:"subpath,omitempty"` - PrimaryBranch string `protobuf:"bytes,9,opt,name=primary_branch,json=primaryBranch,proto3" json:"primary_branch,omitempty"` - ArchiveAssetId string `protobuf:"bytes,23,opt,name=archive_asset_id,json=archiveAssetId,proto3" json:"archive_asset_id,omitempty"` - ProdSlots int64 `protobuf:"varint,12,opt,name=prod_slots,json=prodSlots,proto3" json:"prod_slots,omitempty"` - PrimaryDeploymentId string `protobuf:"bytes,13,opt,name=primary_deployment_id,json=primaryDeploymentId,proto3" json:"primary_deployment_id,omitempty"` - DevSlots int64 `protobuf:"varint,25,opt,name=dev_slots,json=devSlots,proto3" json:"dev_slots,omitempty"` - FrontendUrl string `protobuf:"bytes,16,opt,name=frontend_url,json=frontendUrl,proto3" json:"frontend_url,omitempty"` // Note: Does NOT incorporate the parent org's custom domain. - ProdTtlSeconds int64 `protobuf:"varint,18,opt,name=prod_ttl_seconds,json=prodTtlSeconds,proto3" json:"prod_ttl_seconds,omitempty"` - DevTtlSeconds int64 `protobuf:"varint,27,opt,name=dev_ttl_seconds,json=devTtlSeconds,proto3" json:"dev_ttl_seconds,omitempty"` - OverrideDiskGb int64 `protobuf:"varint,28,opt,name=override_disk_gb,json=overrideDiskGb,proto3" json:"override_disk_gb,omitempty"` - Annotations map[string]string `protobuf:"bytes,20,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - ProdVersion string `protobuf:"bytes,21,opt,name=prod_version,json=prodVersion,proto3" json:"prod_version,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Globally unique + DisplayName string `protobuf:"bytes,11,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + LogoUrl string `protobuf:"bytes,12,opt,name=logo_url,json=logoUrl,proto3" json:"logo_url,omitempty"` + LogoDarkUrl string `protobuf:"bytes,18,opt,name=logo_dark_url,json=logoDarkUrl,proto3" json:"logo_dark_url,omitempty"` + FaviconUrl string `protobuf:"bytes,13,opt,name=favicon_url,json=faviconUrl,proto3" json:"favicon_url,omitempty"` + ThumbnailUrl string `protobuf:"bytes,17,opt,name=thumbnail_url,json=thumbnailUrl,proto3" json:"thumbnail_url,omitempty"` + CustomDomain string `protobuf:"bytes,10,opt,name=custom_domain,json=customDomain,proto3" json:"custom_domain,omitempty"` + DefaultProjectRoleId string `protobuf:"bytes,16,opt,name=default_project_role_id,json=defaultProjectRoleId,proto3" json:"default_project_role_id,omitempty"` + Quotas *OrganizationQuotas `protobuf:"bytes,4,opt,name=quotas,proto3" json:"quotas,omitempty"` + BillingCustomerId string `protobuf:"bytes,7,opt,name=billing_customer_id,json=billingCustomerId,proto3" json:"billing_customer_id,omitempty"` + PaymentCustomerId string `protobuf:"bytes,8,opt,name=payment_customer_id,json=paymentCustomerId,proto3" json:"payment_customer_id,omitempty"` + BillingEmail string `protobuf:"bytes,9,opt,name=billing_email,json=billingEmail,proto3" json:"billing_email,omitempty"` + BillingPlanName *string `protobuf:"bytes,14,opt,name=billing_plan_name,json=billingPlanName,proto3,oneof" json:"billing_plan_name,omitempty"` + BillingPlanDisplayName *string `protobuf:"bytes,15,opt,name=billing_plan_display_name,json=billingPlanDisplayName,proto3,oneof" json:"billing_plan_display_name,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *Project) Reset() { - *x = Project{} +func (x *Organization) Reset() { + *x = Organization{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[333] + mi := &file_rill_admin_v1_api_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Project) String() string { +func (x *Organization) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Project) ProtoMessage() {} +func (*Organization) ProtoMessage() {} -func (x *Project) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[333] +func (x *Organization) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20380,223 +20517,168 @@ func (x *Project) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Project.ProtoReflect.Descriptor instead. -func (*Project) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{333} +// Deprecated: Use Organization.ProtoReflect.Descriptor instead. +func (*Organization) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{339} } -func (x *Project) GetId() string { +func (x *Organization) GetId() string { if x != nil { return x.Id } return "" } -func (x *Project) GetName() string { +func (x *Organization) GetName() string { if x != nil { return x.Name } return "" } -func (x *Project) GetOrgId() string { +func (x *Organization) GetDisplayName() string { if x != nil { - return x.OrgId + return x.DisplayName } return "" } -func (x *Project) GetOrgName() string { +func (x *Organization) GetDescription() string { if x != nil { - return x.OrgName + return x.Description } return "" } -func (x *Project) GetDescription() string { +func (x *Organization) GetLogoUrl() string { if x != nil { - return x.Description + return x.LogoUrl } return "" } -func (x *Project) GetPublic() bool { +func (x *Organization) GetLogoDarkUrl() string { if x != nil { - return x.Public - } - return false -} - -func (x *Project) GetCreatedByUserId() string { - if x != nil { - return x.CreatedByUserId + return x.LogoDarkUrl } return "" } -func (x *Project) GetDirectoryName() string { +func (x *Organization) GetFaviconUrl() string { if x != nil { - return x.DirectoryName + return x.FaviconUrl } return "" } -func (x *Project) GetProvisioner() string { +func (x *Organization) GetThumbnailUrl() string { if x != nil { - return x.Provisioner + return x.ThumbnailUrl } return "" } -func (x *Project) GetGitRemote() string { +func (x *Organization) GetCustomDomain() string { if x != nil { - return x.GitRemote + return x.CustomDomain } return "" } -func (x *Project) GetManagedGitId() string { +func (x *Organization) GetDefaultProjectRoleId() string { if x != nil { - return x.ManagedGitId + return x.DefaultProjectRoleId } return "" } -func (x *Project) GetSubpath() string { +func (x *Organization) GetQuotas() *OrganizationQuotas { if x != nil { - return x.Subpath + return x.Quotas } - return "" + return nil } -func (x *Project) GetPrimaryBranch() string { +func (x *Organization) GetBillingCustomerId() string { if x != nil { - return x.PrimaryBranch + return x.BillingCustomerId } return "" } -func (x *Project) GetArchiveAssetId() string { +func (x *Organization) GetPaymentCustomerId() string { if x != nil { - return x.ArchiveAssetId + return x.PaymentCustomerId } return "" } -func (x *Project) GetProdSlots() int64 { - if x != nil { - return x.ProdSlots - } - return 0 -} - -func (x *Project) GetPrimaryDeploymentId() string { +func (x *Organization) GetBillingEmail() string { if x != nil { - return x.PrimaryDeploymentId + return x.BillingEmail } return "" } -func (x *Project) GetDevSlots() int64 { - if x != nil { - return x.DevSlots - } - return 0 -} - -func (x *Project) GetFrontendUrl() string { - if x != nil { - return x.FrontendUrl +func (x *Organization) GetBillingPlanName() string { + if x != nil && x.BillingPlanName != nil { + return *x.BillingPlanName } return "" } -func (x *Project) GetProdTtlSeconds() int64 { - if x != nil { - return x.ProdTtlSeconds - } - return 0 -} - -func (x *Project) GetDevTtlSeconds() int64 { - if x != nil { - return x.DevTtlSeconds - } - return 0 -} - -func (x *Project) GetOverrideDiskGb() int64 { - if x != nil { - return x.OverrideDiskGb - } - return 0 -} - -func (x *Project) GetAnnotations() map[string]string { - if x != nil { - return x.Annotations - } - return nil -} - -func (x *Project) GetProdVersion() string { - if x != nil { - return x.ProdVersion +func (x *Organization) GetBillingPlanDisplayName() string { + if x != nil && x.BillingPlanDisplayName != nil { + return *x.BillingPlanDisplayName } return "" } -func (x *Project) GetCreatedOn() *timestamppb.Timestamp { +func (x *Organization) GetCreatedOn() *timestamppb.Timestamp { if x != nil { return x.CreatedOn } return nil } -func (x *Project) GetUpdatedOn() *timestamppb.Timestamp { +func (x *Organization) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { return x.UpdatedOn } return nil } -type Deployment struct { +type Subscription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - OwnerUserId string `protobuf:"bytes,12,opt,name=owner_user_id,json=ownerUserId,proto3" json:"owner_user_id,omitempty"` - Environment string `protobuf:"bytes,11,opt,name=environment,proto3" json:"environment,omitempty"` - Branch string `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"` - Editable bool `protobuf:"varint,13,opt,name=editable,proto3" json:"editable,omitempty"` - RuntimeHost string `protobuf:"bytes,5,opt,name=runtime_host,json=runtimeHost,proto3" json:"runtime_host,omitempty"` - RuntimeInstanceId string `protobuf:"bytes,6,opt,name=runtime_instance_id,json=runtimeInstanceId,proto3" json:"runtime_instance_id,omitempty"` - Status DeploymentStatus `protobuf:"varint,7,opt,name=status,proto3,enum=rill.admin.v1.DeploymentStatus" json:"status,omitempty"` - StatusMessage string `protobuf:"bytes,8,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` - UsedOn *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=used_on,json=usedOn,proto3" json:"used_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Plan *BillingPlan `protobuf:"bytes,2,opt,name=plan,proto3" json:"plan,omitempty"` + StartDate *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"` + EndDate *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + CurrentBillingCycleStartDate *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=current_billing_cycle_start_date,json=currentBillingCycleStartDate,proto3" json:"current_billing_cycle_start_date,omitempty"` + CurrentBillingCycleEndDate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=current_billing_cycle_end_date,json=currentBillingCycleEndDate,proto3" json:"current_billing_cycle_end_date,omitempty"` + TrialEndDate *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=trial_end_date,json=trialEndDate,proto3" json:"trial_end_date,omitempty"` } -func (x *Deployment) Reset() { - *x = Deployment{} +func (x *Subscription) Reset() { + *x = Subscription{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[334] + mi := &file_rill_admin_v1_api_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Deployment) String() string { +func (x *Subscription) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Deployment) ProtoMessage() {} +func (*Subscription) ProtoMessage() {} -func (x *Deployment) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[334] +func (x *Subscription) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20607,132 +20689,86 @@ func (x *Deployment) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Deployment.ProtoReflect.Descriptor instead. -func (*Deployment) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{334} +// Deprecated: Use Subscription.ProtoReflect.Descriptor instead. +func (*Subscription) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{340} } -func (x *Deployment) GetId() string { +func (x *Subscription) GetId() string { if x != nil { return x.Id } return "" } -func (x *Deployment) GetProjectId() string { - if x != nil { - return x.ProjectId - } - return "" -} - -func (x *Deployment) GetOwnerUserId() string { - if x != nil { - return x.OwnerUserId - } - return "" -} - -func (x *Deployment) GetEnvironment() string { - if x != nil { - return x.Environment - } - return "" -} - -func (x *Deployment) GetBranch() string { - if x != nil { - return x.Branch - } - return "" -} - -func (x *Deployment) GetEditable() bool { - if x != nil { - return x.Editable - } - return false -} - -func (x *Deployment) GetRuntimeHost() string { - if x != nil { - return x.RuntimeHost - } - return "" -} - -func (x *Deployment) GetRuntimeInstanceId() string { +func (x *Subscription) GetPlan() *BillingPlan { if x != nil { - return x.RuntimeInstanceId + return x.Plan } - return "" + return nil } -func (x *Deployment) GetStatus() DeploymentStatus { +func (x *Subscription) GetStartDate() *timestamppb.Timestamp { if x != nil { - return x.Status + return x.StartDate } - return DeploymentStatus_DEPLOYMENT_STATUS_UNSPECIFIED + return nil } -func (x *Deployment) GetStatusMessage() string { +func (x *Subscription) GetEndDate() *timestamppb.Timestamp { if x != nil { - return x.StatusMessage + return x.EndDate } - return "" + return nil } -func (x *Deployment) GetCreatedOn() *timestamppb.Timestamp { +func (x *Subscription) GetCurrentBillingCycleStartDate() *timestamppb.Timestamp { if x != nil { - return x.CreatedOn + return x.CurrentBillingCycleStartDate } return nil } -func (x *Deployment) GetUpdatedOn() *timestamppb.Timestamp { +func (x *Subscription) GetCurrentBillingCycleEndDate() *timestamppb.Timestamp { if x != nil { - return x.UpdatedOn + return x.CurrentBillingCycleEndDate } return nil } -func (x *Deployment) GetUsedOn() *timestamppb.Timestamp { +func (x *Subscription) GetTrialEndDate() *timestamppb.Timestamp { if x != nil { - return x.UsedOn + return x.TrialEndDate } return nil } -type ProvisionerResource struct { +type UserQuotas struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - DeploymentId string `protobuf:"bytes,2,opt,name=deployment_id,json=deploymentId,proto3" json:"deployment_id,omitempty"` - Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - Args *structpb.Struct `protobuf:"bytes,5,opt,name=args,proto3" json:"args,omitempty"` - Config *structpb.Struct `protobuf:"bytes,6,opt,name=config,proto3" json:"config,omitempty"` + SingleuserOrgs int32 `protobuf:"varint,1,opt,name=singleuser_orgs,json=singleuserOrgs,proto3" json:"singleuser_orgs,omitempty"` + TrialOrgs int32 `protobuf:"varint,2,opt,name=trial_orgs,json=trialOrgs,proto3" json:"trial_orgs,omitempty"` } -func (x *ProvisionerResource) Reset() { - *x = ProvisionerResource{} +func (x *UserQuotas) Reset() { + *x = UserQuotas{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[335] + mi := &file_rill_admin_v1_api_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProvisionerResource) String() string { +func (x *UserQuotas) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProvisionerResource) ProtoMessage() {} +func (*UserQuotas) ProtoMessage() {} -func (x *ProvisionerResource) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[335] +func (x *UserQuotas) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20743,87 +20779,55 @@ func (x *ProvisionerResource) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProvisionerResource.ProtoReflect.Descriptor instead. -func (*ProvisionerResource) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{335} +// Deprecated: Use UserQuotas.ProtoReflect.Descriptor instead. +func (*UserQuotas) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{341} } -func (x *ProvisionerResource) GetId() string { +func (x *UserQuotas) GetSingleuserOrgs() int32 { if x != nil { - return x.Id + return x.SingleuserOrgs } - return "" + return 0 } -func (x *ProvisionerResource) GetDeploymentId() string { +func (x *UserQuotas) GetTrialOrgs() int32 { if x != nil { - return x.DeploymentId + return x.TrialOrgs } - return "" -} - -func (x *ProvisionerResource) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *ProvisionerResource) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *ProvisionerResource) GetArgs() *structpb.Struct { - if x != nil { - return x.Args - } - return nil -} - -func (x *ProvisionerResource) GetConfig() *structpb.Struct { - if x != nil { - return x.Config - } - return nil + return 0 } -type OrganizationPermissions struct { +type OrganizationQuotas struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Admin bool `protobuf:"varint,9,opt,name=admin,proto3" json:"admin,omitempty"` - Guest bool `protobuf:"varint,8,opt,name=guest,proto3" json:"guest,omitempty"` - ReadOrg bool `protobuf:"varint,1,opt,name=read_org,json=readOrg,proto3" json:"read_org,omitempty"` - ManageOrg bool `protobuf:"varint,2,opt,name=manage_org,json=manageOrg,proto3" json:"manage_org,omitempty"` - ReadProjects bool `protobuf:"varint,3,opt,name=read_projects,json=readProjects,proto3" json:"read_projects,omitempty"` - CreateProjects bool `protobuf:"varint,4,opt,name=create_projects,json=createProjects,proto3" json:"create_projects,omitempty"` - ManageProjects bool `protobuf:"varint,5,opt,name=manage_projects,json=manageProjects,proto3" json:"manage_projects,omitempty"` - ReadOrgMembers bool `protobuf:"varint,6,opt,name=read_org_members,json=readOrgMembers,proto3" json:"read_org_members,omitempty"` - ManageOrgMembers bool `protobuf:"varint,7,opt,name=manage_org_members,json=manageOrgMembers,proto3" json:"manage_org_members,omitempty"` - ManageOrgAdmins bool `protobuf:"varint,10,opt,name=manage_org_admins,json=manageOrgAdmins,proto3" json:"manage_org_admins,omitempty"` + Projects int32 `protobuf:"varint,1,opt,name=projects,proto3" json:"projects,omitempty"` + Deployments int32 `protobuf:"varint,2,opt,name=deployments,proto3" json:"deployments,omitempty"` + SlotsTotal int32 `protobuf:"varint,3,opt,name=slots_total,json=slotsTotal,proto3" json:"slots_total,omitempty"` + SlotsPerDeployment int32 `protobuf:"varint,4,opt,name=slots_per_deployment,json=slotsPerDeployment,proto3" json:"slots_per_deployment,omitempty"` + OutstandingInvites int32 `protobuf:"varint,5,opt,name=outstanding_invites,json=outstandingInvites,proto3" json:"outstanding_invites,omitempty"` + StorageLimitBytesPerDeployment int64 `protobuf:"varint,6,opt,name=storage_limit_bytes_per_deployment,json=storageLimitBytesPerDeployment,proto3" json:"storage_limit_bytes_per_deployment,omitempty"` } -func (x *OrganizationPermissions) Reset() { - *x = OrganizationPermissions{} +func (x *OrganizationQuotas) Reset() { + *x = OrganizationQuotas{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[336] + mi := &file_rill_admin_v1_api_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OrganizationPermissions) String() string { +func (x *OrganizationQuotas) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OrganizationPermissions) ProtoMessage() {} +func (*OrganizationQuotas) ProtoMessage() {} -func (x *OrganizationPermissions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[336] +func (x *OrganizationQuotas) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20834,127 +20838,103 @@ func (x *OrganizationPermissions) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OrganizationPermissions.ProtoReflect.Descriptor instead. -func (*OrganizationPermissions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{336} -} - -func (x *OrganizationPermissions) GetAdmin() bool { - if x != nil { - return x.Admin - } - return false -} - -func (x *OrganizationPermissions) GetGuest() bool { - if x != nil { - return x.Guest - } - return false -} - -func (x *OrganizationPermissions) GetReadOrg() bool { - if x != nil { - return x.ReadOrg - } - return false -} - -func (x *OrganizationPermissions) GetManageOrg() bool { - if x != nil { - return x.ManageOrg - } - return false +// Deprecated: Use OrganizationQuotas.ProtoReflect.Descriptor instead. +func (*OrganizationQuotas) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{342} } -func (x *OrganizationPermissions) GetReadProjects() bool { +func (x *OrganizationQuotas) GetProjects() int32 { if x != nil { - return x.ReadProjects + return x.Projects } - return false + return 0 } -func (x *OrganizationPermissions) GetCreateProjects() bool { +func (x *OrganizationQuotas) GetDeployments() int32 { if x != nil { - return x.CreateProjects + return x.Deployments } - return false + return 0 } -func (x *OrganizationPermissions) GetManageProjects() bool { +func (x *OrganizationQuotas) GetSlotsTotal() int32 { if x != nil { - return x.ManageProjects + return x.SlotsTotal } - return false + return 0 } -func (x *OrganizationPermissions) GetReadOrgMembers() bool { +func (x *OrganizationQuotas) GetSlotsPerDeployment() int32 { if x != nil { - return x.ReadOrgMembers + return x.SlotsPerDeployment } - return false + return 0 } -func (x *OrganizationPermissions) GetManageOrgMembers() bool { +func (x *OrganizationQuotas) GetOutstandingInvites() int32 { if x != nil { - return x.ManageOrgMembers + return x.OutstandingInvites } - return false + return 0 } -func (x *OrganizationPermissions) GetManageOrgAdmins() bool { +func (x *OrganizationQuotas) GetStorageLimitBytesPerDeployment() int64 { if x != nil { - return x.ManageOrgAdmins + return x.StorageLimitBytesPerDeployment } - return false + return 0 } -type ProjectPermissions struct { +type Project struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Admin bool `protobuf:"varint,21,opt,name=admin,proto3" json:"admin,omitempty"` - ReadProject bool `protobuf:"varint,1,opt,name=read_project,json=readProject,proto3" json:"read_project,omitempty"` - ManageProject bool `protobuf:"varint,2,opt,name=manage_project,json=manageProject,proto3" json:"manage_project,omitempty"` - ReadProd bool `protobuf:"varint,3,opt,name=read_prod,json=readProd,proto3" json:"read_prod,omitempty"` - ReadProdStatus bool `protobuf:"varint,4,opt,name=read_prod_status,json=readProdStatus,proto3" json:"read_prod_status,omitempty"` - ManageProd bool `protobuf:"varint,5,opt,name=manage_prod,json=manageProd,proto3" json:"manage_prod,omitempty"` - ReadDev bool `protobuf:"varint,6,opt,name=read_dev,json=readDev,proto3" json:"read_dev,omitempty"` - ReadDevStatus bool `protobuf:"varint,7,opt,name=read_dev_status,json=readDevStatus,proto3" json:"read_dev_status,omitempty"` - ManageDev bool `protobuf:"varint,8,opt,name=manage_dev,json=manageDev,proto3" json:"manage_dev,omitempty"` - ReadProvisionerResources bool `protobuf:"varint,19,opt,name=read_provisioner_resources,json=readProvisionerResources,proto3" json:"read_provisioner_resources,omitempty"` - ManageProvisionerResources bool `protobuf:"varint,20,opt,name=manage_provisioner_resources,json=manageProvisionerResources,proto3" json:"manage_provisioner_resources,omitempty"` - ReadProjectMembers bool `protobuf:"varint,9,opt,name=read_project_members,json=readProjectMembers,proto3" json:"read_project_members,omitempty"` - ManageProjectMembers bool `protobuf:"varint,10,opt,name=manage_project_members,json=manageProjectMembers,proto3" json:"manage_project_members,omitempty"` - ManageProjectAdmins bool `protobuf:"varint,22,opt,name=manage_project_admins,json=manageProjectAdmins,proto3" json:"manage_project_admins,omitempty"` - CreateMagicAuthTokens bool `protobuf:"varint,15,opt,name=create_magic_auth_tokens,json=createMagicAuthTokens,proto3" json:"create_magic_auth_tokens,omitempty"` - ManageMagicAuthTokens bool `protobuf:"varint,16,opt,name=manage_magic_auth_tokens,json=manageMagicAuthTokens,proto3" json:"manage_magic_auth_tokens,omitempty"` - CreateReports bool `protobuf:"varint,11,opt,name=create_reports,json=createReports,proto3" json:"create_reports,omitempty"` - ManageReports bool `protobuf:"varint,12,opt,name=manage_reports,json=manageReports,proto3" json:"manage_reports,omitempty"` - CreateAlerts bool `protobuf:"varint,13,opt,name=create_alerts,json=createAlerts,proto3" json:"create_alerts,omitempty"` - ManageAlerts bool `protobuf:"varint,14,opt,name=manage_alerts,json=manageAlerts,proto3" json:"manage_alerts,omitempty"` - CreateBookmarks bool `protobuf:"varint,17,opt,name=create_bookmarks,json=createBookmarks,proto3" json:"create_bookmarks,omitempty"` - ManageBookmarks bool `protobuf:"varint,18,opt,name=manage_bookmarks,json=manageBookmarks,proto3" json:"manage_bookmarks,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // Unique in organization + OrgId string `protobuf:"bytes,3,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"` + OrgName string `protobuf:"bytes,4,opt,name=org_name,json=orgName,proto3" json:"org_name,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + Public bool `protobuf:"varint,6,opt,name=public,proto3" json:"public,omitempty"` + CreatedByUserId string `protobuf:"bytes,22,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + DirectoryName string `protobuf:"bytes,26,opt,name=directory_name,json=directoryName,proto3" json:"directory_name,omitempty"` + Provisioner string `protobuf:"bytes,7,opt,name=provisioner,proto3" json:"provisioner,omitempty"` + GitRemote string `protobuf:"bytes,8,opt,name=git_remote,json=gitRemote,proto3" json:"git_remote,omitempty"` + // managed_git_id is set if the project is connected to a rill-managed git repo. + ManagedGitId string `protobuf:"bytes,24,opt,name=managed_git_id,json=managedGitId,proto3" json:"managed_git_id,omitempty"` + Subpath string `protobuf:"bytes,17,opt,name=subpath,proto3" json:"subpath,omitempty"` + PrimaryBranch string `protobuf:"bytes,9,opt,name=primary_branch,json=primaryBranch,proto3" json:"primary_branch,omitempty"` + ArchiveAssetId string `protobuf:"bytes,23,opt,name=archive_asset_id,json=archiveAssetId,proto3" json:"archive_asset_id,omitempty"` + ProdSlots int64 `protobuf:"varint,12,opt,name=prod_slots,json=prodSlots,proto3" json:"prod_slots,omitempty"` + PrimaryDeploymentId string `protobuf:"bytes,13,opt,name=primary_deployment_id,json=primaryDeploymentId,proto3" json:"primary_deployment_id,omitempty"` + DevSlots int64 `protobuf:"varint,25,opt,name=dev_slots,json=devSlots,proto3" json:"dev_slots,omitempty"` + FrontendUrl string `protobuf:"bytes,16,opt,name=frontend_url,json=frontendUrl,proto3" json:"frontend_url,omitempty"` // Note: Does NOT incorporate the parent org's custom domain. + ProdTtlSeconds int64 `protobuf:"varint,18,opt,name=prod_ttl_seconds,json=prodTtlSeconds,proto3" json:"prod_ttl_seconds,omitempty"` + DevTtlSeconds int64 `protobuf:"varint,27,opt,name=dev_ttl_seconds,json=devTtlSeconds,proto3" json:"dev_ttl_seconds,omitempty"` + OverrideDiskGb int64 `protobuf:"varint,28,opt,name=override_disk_gb,json=overrideDiskGb,proto3" json:"override_disk_gb,omitempty"` + Annotations map[string]string `protobuf:"bytes,20,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ProdVersion string `protobuf:"bytes,21,opt,name=prod_version,json=prodVersion,proto3" json:"prod_version,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *ProjectPermissions) Reset() { - *x = ProjectPermissions{} +func (x *Project) Reset() { + *x = Project{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[337] + mi := &file_rill_admin_v1_api_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProjectPermissions) String() string { +func (x *Project) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProjectPermissions) ProtoMessage() {} +func (*Project) ProtoMessage() {} -func (x *ProjectPermissions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[337] +func (x *Project) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20965,192 +20945,223 @@ func (x *ProjectPermissions) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProjectPermissions.ProtoReflect.Descriptor instead. -func (*ProjectPermissions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{337} +// Deprecated: Use Project.ProtoReflect.Descriptor instead. +func (*Project) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{343} } -func (x *ProjectPermissions) GetAdmin() bool { +func (x *Project) GetId() string { if x != nil { - return x.Admin + return x.Id } - return false + return "" } -func (x *ProjectPermissions) GetReadProject() bool { +func (x *Project) GetName() string { if x != nil { - return x.ReadProject + return x.Name } - return false + return "" } -func (x *ProjectPermissions) GetManageProject() bool { +func (x *Project) GetOrgId() string { if x != nil { - return x.ManageProject + return x.OrgId } - return false + return "" } -func (x *ProjectPermissions) GetReadProd() bool { +func (x *Project) GetOrgName() string { if x != nil { - return x.ReadProd + return x.OrgName } - return false + return "" } -func (x *ProjectPermissions) GetReadProdStatus() bool { +func (x *Project) GetDescription() string { if x != nil { - return x.ReadProdStatus + return x.Description } - return false + return "" } -func (x *ProjectPermissions) GetManageProd() bool { +func (x *Project) GetPublic() bool { if x != nil { - return x.ManageProd + return x.Public } return false } -func (x *ProjectPermissions) GetReadDev() bool { +func (x *Project) GetCreatedByUserId() string { if x != nil { - return x.ReadDev + return x.CreatedByUserId } - return false + return "" } -func (x *ProjectPermissions) GetReadDevStatus() bool { +func (x *Project) GetDirectoryName() string { if x != nil { - return x.ReadDevStatus + return x.DirectoryName } - return false + return "" } -func (x *ProjectPermissions) GetManageDev() bool { +func (x *Project) GetProvisioner() string { if x != nil { - return x.ManageDev + return x.Provisioner } - return false + return "" } -func (x *ProjectPermissions) GetReadProvisionerResources() bool { +func (x *Project) GetGitRemote() string { if x != nil { - return x.ReadProvisionerResources + return x.GitRemote } - return false + return "" } -func (x *ProjectPermissions) GetManageProvisionerResources() bool { +func (x *Project) GetManagedGitId() string { if x != nil { - return x.ManageProvisionerResources + return x.ManagedGitId } - return false + return "" } -func (x *ProjectPermissions) GetReadProjectMembers() bool { +func (x *Project) GetSubpath() string { if x != nil { - return x.ReadProjectMembers + return x.Subpath } - return false + return "" } -func (x *ProjectPermissions) GetManageProjectMembers() bool { +func (x *Project) GetPrimaryBranch() string { if x != nil { - return x.ManageProjectMembers + return x.PrimaryBranch } - return false + return "" } -func (x *ProjectPermissions) GetManageProjectAdmins() bool { +func (x *Project) GetArchiveAssetId() string { if x != nil { - return x.ManageProjectAdmins + return x.ArchiveAssetId } - return false + return "" } -func (x *ProjectPermissions) GetCreateMagicAuthTokens() bool { +func (x *Project) GetProdSlots() int64 { if x != nil { - return x.CreateMagicAuthTokens + return x.ProdSlots } - return false + return 0 } -func (x *ProjectPermissions) GetManageMagicAuthTokens() bool { +func (x *Project) GetPrimaryDeploymentId() string { if x != nil { - return x.ManageMagicAuthTokens + return x.PrimaryDeploymentId } - return false + return "" } -func (x *ProjectPermissions) GetCreateReports() bool { +func (x *Project) GetDevSlots() int64 { if x != nil { - return x.CreateReports + return x.DevSlots } - return false + return 0 } -func (x *ProjectPermissions) GetManageReports() bool { +func (x *Project) GetFrontendUrl() string { if x != nil { - return x.ManageReports + return x.FrontendUrl } - return false + return "" } -func (x *ProjectPermissions) GetCreateAlerts() bool { +func (x *Project) GetProdTtlSeconds() int64 { if x != nil { - return x.CreateAlerts + return x.ProdTtlSeconds } - return false + return 0 } -func (x *ProjectPermissions) GetManageAlerts() bool { +func (x *Project) GetDevTtlSeconds() int64 { if x != nil { - return x.ManageAlerts + return x.DevTtlSeconds } - return false + return 0 } -func (x *ProjectPermissions) GetCreateBookmarks() bool { +func (x *Project) GetOverrideDiskGb() int64 { if x != nil { - return x.CreateBookmarks + return x.OverrideDiskGb } - return false + return 0 } -func (x *ProjectPermissions) GetManageBookmarks() bool { +func (x *Project) GetAnnotations() map[string]string { if x != nil { - return x.ManageBookmarks + return x.Annotations } - return false + return nil } -type OrganizationRole struct { +func (x *Project) GetProdVersion() string { + if x != nil { + return x.ProdVersion + } + return "" +} + +func (x *Project) GetCreatedOn() *timestamppb.Timestamp { + if x != nil { + return x.CreatedOn + } + return nil +} + +func (x *Project) GetUpdatedOn() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedOn + } + return nil +} + +type Deployment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Permissions *OrganizationPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + OwnerUserId string `protobuf:"bytes,12,opt,name=owner_user_id,json=ownerUserId,proto3" json:"owner_user_id,omitempty"` + Environment string `protobuf:"bytes,11,opt,name=environment,proto3" json:"environment,omitempty"` + Branch string `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"` + Editable bool `protobuf:"varint,13,opt,name=editable,proto3" json:"editable,omitempty"` + RuntimeHost string `protobuf:"bytes,5,opt,name=runtime_host,json=runtimeHost,proto3" json:"runtime_host,omitempty"` + RuntimeInstanceId string `protobuf:"bytes,6,opt,name=runtime_instance_id,json=runtimeInstanceId,proto3" json:"runtime_instance_id,omitempty"` + Status DeploymentStatus `protobuf:"varint,7,opt,name=status,proto3,enum=rill.admin.v1.DeploymentStatus" json:"status,omitempty"` + StatusMessage string `protobuf:"bytes,8,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + UsedOn *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=used_on,json=usedOn,proto3" json:"used_on,omitempty"` } -func (x *OrganizationRole) Reset() { - *x = OrganizationRole{} +func (x *Deployment) Reset() { + *x = Deployment{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[338] + mi := &file_rill_admin_v1_api_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OrganizationRole) String() string { +func (x *Deployment) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OrganizationRole) ProtoMessage() {} +func (*Deployment) ProtoMessage() {} -func (x *OrganizationRole) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[338] +func (x *Deployment) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21161,129 +21172,132 @@ func (x *OrganizationRole) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OrganizationRole.ProtoReflect.Descriptor instead. -func (*OrganizationRole) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{338} +// Deprecated: Use Deployment.ProtoReflect.Descriptor instead. +func (*Deployment) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{344} } -func (x *OrganizationRole) GetId() string { +func (x *Deployment) GetId() string { if x != nil { return x.Id } return "" } -func (x *OrganizationRole) GetName() string { +func (x *Deployment) GetProjectId() string { if x != nil { - return x.Name + return x.ProjectId } return "" } -func (x *OrganizationRole) GetPermissions() *OrganizationPermissions { +func (x *Deployment) GetOwnerUserId() string { if x != nil { - return x.Permissions + return x.OwnerUserId } - return nil + return "" } -type ProjectRole struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Permissions *ProjectPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` +func (x *Deployment) GetEnvironment() string { + if x != nil { + return x.Environment + } + return "" } -func (x *ProjectRole) Reset() { - *x = ProjectRole{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[339] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *Deployment) GetBranch() string { + if x != nil { + return x.Branch } + return "" } -func (x *ProjectRole) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Deployment) GetEditable() bool { + if x != nil { + return x.Editable + } + return false } -func (*ProjectRole) ProtoMessage() {} +func (x *Deployment) GetRuntimeHost() string { + if x != nil { + return x.RuntimeHost + } + return "" +} -func (x *ProjectRole) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[339] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *Deployment) GetRuntimeInstanceId() string { + if x != nil { + return x.RuntimeInstanceId } - return mi.MessageOf(x) + return "" } -// Deprecated: Use ProjectRole.ProtoReflect.Descriptor instead. -func (*ProjectRole) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{339} +func (x *Deployment) GetStatus() DeploymentStatus { + if x != nil { + return x.Status + } + return DeploymentStatus_DEPLOYMENT_STATUS_UNSPECIFIED } -func (x *ProjectRole) GetId() string { +func (x *Deployment) GetStatusMessage() string { if x != nil { - return x.Id + return x.StatusMessage } return "" } -func (x *ProjectRole) GetName() string { +func (x *Deployment) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.Name + return x.CreatedOn } - return "" + return nil } -func (x *ProjectRole) GetPermissions() *ProjectPermissions { +func (x *Deployment) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.Permissions + return x.UpdatedOn } return nil } -type OrganizationMemberUser struct { +func (x *Deployment) GetUsedOn() *timestamppb.Timestamp { + if x != nil { + return x.UsedOn + } + return nil +} + +type ProvisionerResource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - UserPhotoUrl string `protobuf:"bytes,7,opt,name=user_photo_url,json=userPhotoUrl,proto3" json:"user_photo_url,omitempty"` - RoleName string `protobuf:"bytes,4,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - ProjectsCount uint32 `protobuf:"varint,8,opt,name=projects_count,json=projectsCount,proto3" json:"projects_count,omitempty"` - UsergroupsCount uint32 `protobuf:"varint,9,opt,name=usergroups_count,json=usergroupsCount,proto3" json:"usergroups_count,omitempty"` - Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DeploymentId string `protobuf:"bytes,2,opt,name=deployment_id,json=deploymentId,proto3" json:"deployment_id,omitempty"` + Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Args *structpb.Struct `protobuf:"bytes,5,opt,name=args,proto3" json:"args,omitempty"` + Config *structpb.Struct `protobuf:"bytes,6,opt,name=config,proto3" json:"config,omitempty"` } -func (x *OrganizationMemberUser) Reset() { - *x = OrganizationMemberUser{} +func (x *ProvisionerResource) Reset() { + *x = ProvisionerResource{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[340] + mi := &file_rill_admin_v1_api_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *OrganizationMemberUser) String() string { +func (x *ProvisionerResource) String() string { return protoimpl.X.MessageStringOf(x) } -func (*OrganizationMemberUser) ProtoMessage() {} +func (*ProvisionerResource) ProtoMessage() {} -func (x *OrganizationMemberUser) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[340] +func (x *ProvisionerResource) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21294,115 +21308,87 @@ func (x *OrganizationMemberUser) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use OrganizationMemberUser.ProtoReflect.Descriptor instead. -func (*OrganizationMemberUser) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{340} -} - -func (x *OrganizationMemberUser) GetUserId() string { - if x != nil { - return x.UserId - } - return "" +// Deprecated: Use ProvisionerResource.ProtoReflect.Descriptor instead. +func (*ProvisionerResource) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{345} } -func (x *OrganizationMemberUser) GetUserEmail() string { +func (x *ProvisionerResource) GetId() string { if x != nil { - return x.UserEmail + return x.Id } return "" } -func (x *OrganizationMemberUser) GetUserName() string { +func (x *ProvisionerResource) GetDeploymentId() string { if x != nil { - return x.UserName + return x.DeploymentId } return "" } -func (x *OrganizationMemberUser) GetUserPhotoUrl() string { +func (x *ProvisionerResource) GetType() string { if x != nil { - return x.UserPhotoUrl + return x.Type } return "" } -func (x *OrganizationMemberUser) GetRoleName() string { +func (x *ProvisionerResource) GetName() string { if x != nil { - return x.RoleName + return x.Name } return "" } -func (x *OrganizationMemberUser) GetProjectsCount() uint32 { - if x != nil { - return x.ProjectsCount - } - return 0 -} - -func (x *OrganizationMemberUser) GetUsergroupsCount() uint32 { - if x != nil { - return x.UsergroupsCount - } - return 0 -} - -func (x *OrganizationMemberUser) GetAttributes() *structpb.Struct { - if x != nil { - return x.Attributes - } - return nil -} - -func (x *OrganizationMemberUser) GetCreatedOn() *timestamppb.Timestamp { +func (x *ProvisionerResource) GetArgs() *structpb.Struct { if x != nil { - return x.CreatedOn + return x.Args } return nil } -func (x *OrganizationMemberUser) GetUpdatedOn() *timestamppb.Timestamp { +func (x *ProvisionerResource) GetConfig() *structpb.Struct { if x != nil { - return x.UpdatedOn + return x.Config } return nil } -type ProjectMemberUser struct { +type OrganizationPermissions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - UserPhotoUrl string `protobuf:"bytes,7,opt,name=user_photo_url,json=userPhotoUrl,proto3" json:"user_photo_url,omitempty"` - RoleName string `protobuf:"bytes,4,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - OrgRoleName string `protobuf:"bytes,8,opt,name=org_role_name,json=orgRoleName,proto3" json:"org_role_name,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` - RestrictResources bool `protobuf:"varint,9,opt,name=restrict_resources,json=restrictResources,proto3" json:"restrict_resources,omitempty"` - Resources []*ResourceName `protobuf:"bytes,10,rep,name=resources,proto3" json:"resources,omitempty"` + Admin bool `protobuf:"varint,9,opt,name=admin,proto3" json:"admin,omitempty"` + Guest bool `protobuf:"varint,8,opt,name=guest,proto3" json:"guest,omitempty"` + ReadOrg bool `protobuf:"varint,1,opt,name=read_org,json=readOrg,proto3" json:"read_org,omitempty"` + ManageOrg bool `protobuf:"varint,2,opt,name=manage_org,json=manageOrg,proto3" json:"manage_org,omitempty"` + ReadProjects bool `protobuf:"varint,3,opt,name=read_projects,json=readProjects,proto3" json:"read_projects,omitempty"` + CreateProjects bool `protobuf:"varint,4,opt,name=create_projects,json=createProjects,proto3" json:"create_projects,omitempty"` + ManageProjects bool `protobuf:"varint,5,opt,name=manage_projects,json=manageProjects,proto3" json:"manage_projects,omitempty"` + ReadOrgMembers bool `protobuf:"varint,6,opt,name=read_org_members,json=readOrgMembers,proto3" json:"read_org_members,omitempty"` + ManageOrgMembers bool `protobuf:"varint,7,opt,name=manage_org_members,json=manageOrgMembers,proto3" json:"manage_org_members,omitempty"` + ManageOrgAdmins bool `protobuf:"varint,10,opt,name=manage_org_admins,json=manageOrgAdmins,proto3" json:"manage_org_admins,omitempty"` } -func (x *ProjectMemberUser) Reset() { - *x = ProjectMemberUser{} +func (x *OrganizationPermissions) Reset() { + *x = OrganizationPermissions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[341] + mi := &file_rill_admin_v1_api_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ProjectMemberUser) String() string { +func (x *OrganizationPermissions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ProjectMemberUser) ProtoMessage() {} +func (*OrganizationPermissions) ProtoMessage() {} -func (x *ProjectMemberUser) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[341] +func (x *OrganizationPermissions) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21413,111 +21399,127 @@ func (x *ProjectMemberUser) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ProjectMemberUser.ProtoReflect.Descriptor instead. -func (*ProjectMemberUser) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{341} +// Deprecated: Use OrganizationPermissions.ProtoReflect.Descriptor instead. +func (*OrganizationPermissions) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{346} } -func (x *ProjectMemberUser) GetUserId() string { +func (x *OrganizationPermissions) GetAdmin() bool { if x != nil { - return x.UserId + return x.Admin } - return "" + return false } -func (x *ProjectMemberUser) GetUserEmail() string { +func (x *OrganizationPermissions) GetGuest() bool { if x != nil { - return x.UserEmail + return x.Guest } - return "" + return false } -func (x *ProjectMemberUser) GetUserName() string { +func (x *OrganizationPermissions) GetReadOrg() bool { if x != nil { - return x.UserName + return x.ReadOrg } - return "" + return false } -func (x *ProjectMemberUser) GetUserPhotoUrl() string { +func (x *OrganizationPermissions) GetManageOrg() bool { if x != nil { - return x.UserPhotoUrl + return x.ManageOrg } - return "" + return false } -func (x *ProjectMemberUser) GetRoleName() string { +func (x *OrganizationPermissions) GetReadProjects() bool { if x != nil { - return x.RoleName + return x.ReadProjects } - return "" + return false } -func (x *ProjectMemberUser) GetOrgRoleName() string { +func (x *OrganizationPermissions) GetCreateProjects() bool { if x != nil { - return x.OrgRoleName + return x.CreateProjects } - return "" + return false } -func (x *ProjectMemberUser) GetCreatedOn() *timestamppb.Timestamp { +func (x *OrganizationPermissions) GetManageProjects() bool { if x != nil { - return x.CreatedOn + return x.ManageProjects } - return nil + return false } -func (x *ProjectMemberUser) GetUpdatedOn() *timestamppb.Timestamp { +func (x *OrganizationPermissions) GetReadOrgMembers() bool { if x != nil { - return x.UpdatedOn + return x.ReadOrgMembers } - return nil + return false } -func (x *ProjectMemberUser) GetRestrictResources() bool { +func (x *OrganizationPermissions) GetManageOrgMembers() bool { if x != nil { - return x.RestrictResources + return x.ManageOrgMembers } return false } -func (x *ProjectMemberUser) GetResources() []*ResourceName { +func (x *OrganizationPermissions) GetManageOrgAdmins() bool { if x != nil { - return x.Resources + return x.ManageOrgAdmins } - return nil + return false } -type UsergroupMemberUser struct { +type ProjectPermissions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` - UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - UserPhotoUrl string `protobuf:"bytes,7,opt,name=user_photo_url,json=userPhotoUrl,proto3" json:"user_photo_url,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Admin bool `protobuf:"varint,21,opt,name=admin,proto3" json:"admin,omitempty"` + ReadProject bool `protobuf:"varint,1,opt,name=read_project,json=readProject,proto3" json:"read_project,omitempty"` + ManageProject bool `protobuf:"varint,2,opt,name=manage_project,json=manageProject,proto3" json:"manage_project,omitempty"` + ReadProd bool `protobuf:"varint,3,opt,name=read_prod,json=readProd,proto3" json:"read_prod,omitempty"` + ReadProdStatus bool `protobuf:"varint,4,opt,name=read_prod_status,json=readProdStatus,proto3" json:"read_prod_status,omitempty"` + ManageProd bool `protobuf:"varint,5,opt,name=manage_prod,json=manageProd,proto3" json:"manage_prod,omitempty"` + ReadDev bool `protobuf:"varint,6,opt,name=read_dev,json=readDev,proto3" json:"read_dev,omitempty"` + ReadDevStatus bool `protobuf:"varint,7,opt,name=read_dev_status,json=readDevStatus,proto3" json:"read_dev_status,omitempty"` + ManageDev bool `protobuf:"varint,8,opt,name=manage_dev,json=manageDev,proto3" json:"manage_dev,omitempty"` + ReadProvisionerResources bool `protobuf:"varint,19,opt,name=read_provisioner_resources,json=readProvisionerResources,proto3" json:"read_provisioner_resources,omitempty"` + ManageProvisionerResources bool `protobuf:"varint,20,opt,name=manage_provisioner_resources,json=manageProvisionerResources,proto3" json:"manage_provisioner_resources,omitempty"` + ReadProjectMembers bool `protobuf:"varint,9,opt,name=read_project_members,json=readProjectMembers,proto3" json:"read_project_members,omitempty"` + ManageProjectMembers bool `protobuf:"varint,10,opt,name=manage_project_members,json=manageProjectMembers,proto3" json:"manage_project_members,omitempty"` + ManageProjectAdmins bool `protobuf:"varint,22,opt,name=manage_project_admins,json=manageProjectAdmins,proto3" json:"manage_project_admins,omitempty"` + CreateMagicAuthTokens bool `protobuf:"varint,15,opt,name=create_magic_auth_tokens,json=createMagicAuthTokens,proto3" json:"create_magic_auth_tokens,omitempty"` + ManageMagicAuthTokens bool `protobuf:"varint,16,opt,name=manage_magic_auth_tokens,json=manageMagicAuthTokens,proto3" json:"manage_magic_auth_tokens,omitempty"` + CreateReports bool `protobuf:"varint,11,opt,name=create_reports,json=createReports,proto3" json:"create_reports,omitempty"` + ManageReports bool `protobuf:"varint,12,opt,name=manage_reports,json=manageReports,proto3" json:"manage_reports,omitempty"` + CreateAlerts bool `protobuf:"varint,13,opt,name=create_alerts,json=createAlerts,proto3" json:"create_alerts,omitempty"` + ManageAlerts bool `protobuf:"varint,14,opt,name=manage_alerts,json=manageAlerts,proto3" json:"manage_alerts,omitempty"` + CreateBookmarks bool `protobuf:"varint,17,opt,name=create_bookmarks,json=createBookmarks,proto3" json:"create_bookmarks,omitempty"` + ManageBookmarks bool `protobuf:"varint,18,opt,name=manage_bookmarks,json=manageBookmarks,proto3" json:"manage_bookmarks,omitempty"` } -func (x *UsergroupMemberUser) Reset() { - *x = UsergroupMemberUser{} +func (x *ProjectPermissions) Reset() { + *x = ProjectPermissions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[342] + mi := &file_rill_admin_v1_api_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UsergroupMemberUser) String() string { +func (x *ProjectPermissions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UsergroupMemberUser) ProtoMessage() {} +func (*ProjectPermissions) ProtoMessage() {} -func (x *UsergroupMemberUser) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[342] +func (x *ProjectPermissions) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21528,229 +21530,192 @@ func (x *UsergroupMemberUser) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UsergroupMemberUser.ProtoReflect.Descriptor instead. -func (*UsergroupMemberUser) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{342} +// Deprecated: Use ProjectPermissions.ProtoReflect.Descriptor instead. +func (*ProjectPermissions) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{347} } -func (x *UsergroupMemberUser) GetUserId() string { +func (x *ProjectPermissions) GetAdmin() bool { if x != nil { - return x.UserId + return x.Admin } - return "" + return false } -func (x *UsergroupMemberUser) GetUserEmail() string { +func (x *ProjectPermissions) GetReadProject() bool { if x != nil { - return x.UserEmail + return x.ReadProject } - return "" + return false } -func (x *UsergroupMemberUser) GetUserName() string { +func (x *ProjectPermissions) GetManageProject() bool { if x != nil { - return x.UserName + return x.ManageProject } - return "" + return false } -func (x *UsergroupMemberUser) GetUserPhotoUrl() string { +func (x *ProjectPermissions) GetReadProd() bool { if x != nil { - return x.UserPhotoUrl + return x.ReadProd } - return "" + return false } -func (x *UsergroupMemberUser) GetCreatedOn() *timestamppb.Timestamp { +func (x *ProjectPermissions) GetReadProdStatus() bool { if x != nil { - return x.CreatedOn + return x.ReadProdStatus } - return nil + return false } -func (x *UsergroupMemberUser) GetUpdatedOn() *timestamppb.Timestamp { +func (x *ProjectPermissions) GetManageProd() bool { if x != nil { - return x.UpdatedOn + return x.ManageProd } - return nil + return false } -type OrganizationInvite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *ProjectPermissions) GetReadDev() bool { + if x != nil { + return x.ReadDev + } + return false +} - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - InvitedBy string `protobuf:"bytes,3,opt,name=invited_by,json=invitedBy,proto3" json:"invited_by,omitempty"` -} - -func (x *OrganizationInvite) Reset() { - *x = OrganizationInvite{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[343] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ProjectPermissions) GetReadDevStatus() bool { + if x != nil { + return x.ReadDevStatus } + return false } -func (x *OrganizationInvite) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*OrganizationInvite) ProtoMessage() {} - -func (x *OrganizationInvite) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[343] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ProjectPermissions) GetManageDev() bool { + if x != nil { + return x.ManageDev } - return mi.MessageOf(x) -} - -// Deprecated: Use OrganizationInvite.ProtoReflect.Descriptor instead. -func (*OrganizationInvite) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{343} + return false } -func (x *OrganizationInvite) GetEmail() string { +func (x *ProjectPermissions) GetReadProvisionerResources() bool { if x != nil { - return x.Email + return x.ReadProvisionerResources } - return "" + return false } -func (x *OrganizationInvite) GetRoleName() string { +func (x *ProjectPermissions) GetManageProvisionerResources() bool { if x != nil { - return x.RoleName + return x.ManageProvisionerResources } - return "" + return false } -func (x *OrganizationInvite) GetInvitedBy() string { +func (x *ProjectPermissions) GetReadProjectMembers() bool { if x != nil { - return x.InvitedBy + return x.ReadProjectMembers } - return "" -} - -type ProjectInvite struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` - RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - OrgRoleName string `protobuf:"bytes,4,opt,name=org_role_name,json=orgRoleName,proto3" json:"org_role_name,omitempty"` - InvitedBy string `protobuf:"bytes,3,opt,name=invited_by,json=invitedBy,proto3" json:"invited_by,omitempty"` - RestrictResources bool `protobuf:"varint,5,opt,name=restrict_resources,json=restrictResources,proto3" json:"restrict_resources,omitempty"` - Resources []*ResourceName `protobuf:"bytes,6,rep,name=resources,proto3" json:"resources,omitempty"` + return false } -func (x *ProjectInvite) Reset() { - *x = ProjectInvite{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[344] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ProjectPermissions) GetManageProjectMembers() bool { + if x != nil { + return x.ManageProjectMembers } + return false } -func (x *ProjectInvite) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ProjectPermissions) GetManageProjectAdmins() bool { + if x != nil { + return x.ManageProjectAdmins + } + return false } -func (*ProjectInvite) ProtoMessage() {} - -func (x *ProjectInvite) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[344] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ProjectPermissions) GetCreateMagicAuthTokens() bool { + if x != nil { + return x.CreateMagicAuthTokens } - return mi.MessageOf(x) + return false } -// Deprecated: Use ProjectInvite.ProtoReflect.Descriptor instead. -func (*ProjectInvite) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{344} +func (x *ProjectPermissions) GetManageMagicAuthTokens() bool { + if x != nil { + return x.ManageMagicAuthTokens + } + return false } -func (x *ProjectInvite) GetEmail() string { +func (x *ProjectPermissions) GetCreateReports() bool { if x != nil { - return x.Email + return x.CreateReports } - return "" + return false } -func (x *ProjectInvite) GetRoleName() string { +func (x *ProjectPermissions) GetManageReports() bool { if x != nil { - return x.RoleName + return x.ManageReports } - return "" + return false } -func (x *ProjectInvite) GetOrgRoleName() string { +func (x *ProjectPermissions) GetCreateAlerts() bool { if x != nil { - return x.OrgRoleName + return x.CreateAlerts } - return "" + return false } -func (x *ProjectInvite) GetInvitedBy() string { +func (x *ProjectPermissions) GetManageAlerts() bool { if x != nil { - return x.InvitedBy + return x.ManageAlerts } - return "" + return false } -func (x *ProjectInvite) GetRestrictResources() bool { +func (x *ProjectPermissions) GetCreateBookmarks() bool { if x != nil { - return x.RestrictResources + return x.CreateBookmarks } return false } -func (x *ProjectInvite) GetResources() []*ResourceName { +func (x *ProjectPermissions) GetManageBookmarks() bool { if x != nil { - return x.Resources + return x.ManageBookmarks } - return nil + return false } -type WhitelistedDomain struct { +type OrganizationRole struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` - Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Permissions *OrganizationPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` } -func (x *WhitelistedDomain) Reset() { - *x = WhitelistedDomain{} +func (x *OrganizationRole) Reset() { + *x = OrganizationRole{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[345] + mi := &file_rill_admin_v1_api_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WhitelistedDomain) String() string { +func (x *OrganizationRole) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WhitelistedDomain) ProtoMessage() {} +func (*OrganizationRole) ProtoMessage() {} -func (x *WhitelistedDomain) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[345] +func (x *OrganizationRole) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21761,62 +21726,59 @@ func (x *WhitelistedDomain) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WhitelistedDomain.ProtoReflect.Descriptor instead. -func (*WhitelistedDomain) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{345} +// Deprecated: Use OrganizationRole.ProtoReflect.Descriptor instead. +func (*OrganizationRole) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{348} } -func (x *WhitelistedDomain) GetDomain() string { +func (x *OrganizationRole) GetId() string { if x != nil { - return x.Domain + return x.Id } return "" } -func (x *WhitelistedDomain) GetRole() string { +func (x *OrganizationRole) GetName() string { if x != nil { - return x.Role + return x.Name } return "" } -type Bookmark struct { +func (x *OrganizationRole) GetPermissions() *OrganizationPermissions { + if x != nil { + return x.Permissions + } + return nil +} + +type ProjectRole struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` - Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` - UrlSearch string `protobuf:"bytes,13,opt,name=url_search,json=urlSearch,proto3" json:"url_search,omitempty"` - ResourceKind string `protobuf:"bytes,10,opt,name=resource_kind,json=resourceKind,proto3" json:"resource_kind,omitempty"` - ResourceName string `protobuf:"bytes,4,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` - ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - UserId string `protobuf:"bytes,6,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - Default bool `protobuf:"varint,11,opt,name=default,proto3" json:"default,omitempty"` - Shared bool `protobuf:"varint,12,opt,name=shared,proto3" json:"shared,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Permissions *ProjectPermissions `protobuf:"bytes,3,opt,name=permissions,proto3" json:"permissions,omitempty"` } -func (x *Bookmark) Reset() { - *x = Bookmark{} +func (x *ProjectRole) Reset() { + *x = ProjectRole{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[346] + mi := &file_rill_admin_v1_api_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bookmark) String() string { +func (x *ProjectRole) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bookmark) ProtoMessage() {} +func (*ProjectRole) ProtoMessage() {} -func (x *Bookmark) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[346] +func (x *ProjectRole) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21827,130 +21789,185 @@ func (x *Bookmark) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bookmark.ProtoReflect.Descriptor instead. -func (*Bookmark) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{346} +// Deprecated: Use ProjectRole.ProtoReflect.Descriptor instead. +func (*ProjectRole) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{349} } -func (x *Bookmark) GetId() string { +func (x *ProjectRole) GetId() string { if x != nil { return x.Id } return "" } -func (x *Bookmark) GetDisplayName() string { - if x != nil { - return x.DisplayName - } - return "" -} - -func (x *Bookmark) GetDescription() string { +func (x *ProjectRole) GetName() string { if x != nil { - return x.Description + return x.Name } return "" } -func (x *Bookmark) GetData() []byte { +func (x *ProjectRole) GetPermissions() *ProjectPermissions { if x != nil { - return x.Data + return x.Permissions } return nil } -func (x *Bookmark) GetUrlSearch() string { - if x != nil { - return x.UrlSearch - } - return "" -} +type OrganizationMemberUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *Bookmark) GetResourceKind() string { - if x != nil { - return x.ResourceKind - } - return "" + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + UserPhotoUrl string `protobuf:"bytes,7,opt,name=user_photo_url,json=userPhotoUrl,proto3" json:"user_photo_url,omitempty"` + RoleName string `protobuf:"bytes,4,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + ProjectsCount uint32 `protobuf:"varint,8,opt,name=projects_count,json=projectsCount,proto3" json:"projects_count,omitempty"` + UsergroupsCount uint32 `protobuf:"varint,9,opt,name=usergroups_count,json=usergroupsCount,proto3" json:"usergroups_count,omitempty"` + Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *Bookmark) GetResourceName() string { +func (x *OrganizationMemberUser) Reset() { + *x = OrganizationMemberUser{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[350] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OrganizationMemberUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OrganizationMemberUser) ProtoMessage() {} + +func (x *OrganizationMemberUser) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[350] + 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 OrganizationMemberUser.ProtoReflect.Descriptor instead. +func (*OrganizationMemberUser) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{350} +} + +func (x *OrganizationMemberUser) GetUserId() string { if x != nil { - return x.ResourceName + return x.UserId } return "" } -func (x *Bookmark) GetProjectId() string { +func (x *OrganizationMemberUser) GetUserEmail() string { if x != nil { - return x.ProjectId + return x.UserEmail } return "" } -func (x *Bookmark) GetUserId() string { +func (x *OrganizationMemberUser) GetUserName() string { if x != nil { - return x.UserId + return x.UserName } return "" } -func (x *Bookmark) GetDefault() bool { +func (x *OrganizationMemberUser) GetUserPhotoUrl() string { if x != nil { - return x.Default + return x.UserPhotoUrl } - return false + return "" } -func (x *Bookmark) GetShared() bool { +func (x *OrganizationMemberUser) GetRoleName() string { if x != nil { - return x.Shared + return x.RoleName } - return false + return "" } -func (x *Bookmark) GetCreatedOn() *timestamppb.Timestamp { +func (x *OrganizationMemberUser) GetProjectsCount() uint32 { + if x != nil { + return x.ProjectsCount + } + return 0 +} + +func (x *OrganizationMemberUser) GetUsergroupsCount() uint32 { + if x != nil { + return x.UsergroupsCount + } + return 0 +} + +func (x *OrganizationMemberUser) GetAttributes() *structpb.Struct { + if x != nil { + return x.Attributes + } + return nil +} + +func (x *OrganizationMemberUser) GetCreatedOn() *timestamppb.Timestamp { if x != nil { return x.CreatedOn } return nil } -func (x *Bookmark) GetUpdatedOn() *timestamppb.Timestamp { +func (x *OrganizationMemberUser) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { return x.UpdatedOn } return nil } -type ServiceToken struct { +type ProjectMemberUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - ExpiresOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expires_on,json=expiresOn,proto3" json:"expires_on,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + UserPhotoUrl string `protobuf:"bytes,7,opt,name=user_photo_url,json=userPhotoUrl,proto3" json:"user_photo_url,omitempty"` + RoleName string `protobuf:"bytes,4,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + OrgRoleName string `protobuf:"bytes,8,opt,name=org_role_name,json=orgRoleName,proto3" json:"org_role_name,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + RestrictResources bool `protobuf:"varint,9,opt,name=restrict_resources,json=restrictResources,proto3" json:"restrict_resources,omitempty"` + Resources []*ResourceName `protobuf:"bytes,10,rep,name=resources,proto3" json:"resources,omitempty"` } -func (x *ServiceToken) Reset() { - *x = ServiceToken{} +func (x *ProjectMemberUser) Reset() { + *x = ProjectMemberUser{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[347] + mi := &file_rill_admin_v1_api_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ServiceToken) String() string { +func (x *ProjectMemberUser) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ServiceToken) ProtoMessage() {} +func (*ProjectMemberUser) ProtoMessage() {} -func (x *ServiceToken) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[347] +func (x *ProjectMemberUser) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21961,74 +21978,111 @@ func (x *ServiceToken) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ServiceToken.ProtoReflect.Descriptor instead. -func (*ServiceToken) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{347} +// Deprecated: Use ProjectMemberUser.ProtoReflect.Descriptor instead. +func (*ProjectMemberUser) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{351} } -func (x *ServiceToken) GetId() string { +func (x *ProjectMemberUser) GetUserId() string { if x != nil { - return x.Id + return x.UserId } return "" } -func (x *ServiceToken) GetPrefix() string { +func (x *ProjectMemberUser) GetUserEmail() string { if x != nil { - return x.Prefix + return x.UserEmail } return "" } -func (x *ServiceToken) GetCreatedOn() *timestamppb.Timestamp { +func (x *ProjectMemberUser) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *ProjectMemberUser) GetUserPhotoUrl() string { + if x != nil { + return x.UserPhotoUrl + } + return "" +} + +func (x *ProjectMemberUser) GetRoleName() string { + if x != nil { + return x.RoleName + } + return "" +} + +func (x *ProjectMemberUser) GetOrgRoleName() string { + if x != nil { + return x.OrgRoleName + } + return "" +} + +func (x *ProjectMemberUser) GetCreatedOn() *timestamppb.Timestamp { if x != nil { return x.CreatedOn } return nil } -func (x *ServiceToken) GetExpiresOn() *timestamppb.Timestamp { +func (x *ProjectMemberUser) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.ExpiresOn + return x.UpdatedOn } return nil } -type UserAuthToken struct { +func (x *ProjectMemberUser) GetRestrictResources() bool { + if x != nil { + return x.RestrictResources + } + return false +} + +func (x *ProjectMemberUser) GetResources() []*ResourceName { + if x != nil { + return x.Resources + } + return nil +} + +type UsergroupMemberUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - AuthClientId string `protobuf:"bytes,3,opt,name=auth_client_id,json=authClientId,proto3" json:"auth_client_id,omitempty"` - AuthClientDisplayName string `protobuf:"bytes,4,opt,name=auth_client_display_name,json=authClientDisplayName,proto3" json:"auth_client_display_name,omitempty"` - RepresentingUserId string `protobuf:"bytes,5,opt,name=representing_user_id,json=representingUserId,proto3" json:"representing_user_id,omitempty"` - Prefix string `protobuf:"bytes,9,opt,name=prefix,proto3" json:"prefix,omitempty"` - Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"` - Refresh bool `protobuf:"varint,11,opt,name=refresh,proto3" json:"refresh,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - ExpiresOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=expires_on,json=expiresOn,proto3" json:"expires_on,omitempty"` - UsedOn *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=used_on,json=usedOn,proto3" json:"used_on,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserEmail string `protobuf:"bytes,3,opt,name=user_email,json=userEmail,proto3" json:"user_email,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + UserPhotoUrl string `protobuf:"bytes,7,opt,name=user_photo_url,json=userPhotoUrl,proto3" json:"user_photo_url,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *UserAuthToken) Reset() { - *x = UserAuthToken{} +func (x *UsergroupMemberUser) Reset() { + *x = UsergroupMemberUser{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[348] + mi := &file_rill_admin_v1_api_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserAuthToken) String() string { +func (x *UsergroupMemberUser) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserAuthToken) ProtoMessage() {} +func (*UsergroupMemberUser) ProtoMessage() {} -func (x *UserAuthToken) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[348] +func (x *UsergroupMemberUser) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22039,131 +22093,80 @@ func (x *UserAuthToken) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserAuthToken.ProtoReflect.Descriptor instead. -func (*UserAuthToken) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{348} -} - -func (x *UserAuthToken) GetId() string { - if x != nil { - return x.Id - } - return "" +// Deprecated: Use UsergroupMemberUser.ProtoReflect.Descriptor instead. +func (*UsergroupMemberUser) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{352} } -func (x *UserAuthToken) GetDisplayName() string { +func (x *UsergroupMemberUser) GetUserId() string { if x != nil { - return x.DisplayName + return x.UserId } return "" } -func (x *UserAuthToken) GetAuthClientId() string { +func (x *UsergroupMemberUser) GetUserEmail() string { if x != nil { - return x.AuthClientId + return x.UserEmail } return "" } -func (x *UserAuthToken) GetAuthClientDisplayName() string { +func (x *UsergroupMemberUser) GetUserName() string { if x != nil { - return x.AuthClientDisplayName + return x.UserName } return "" } -func (x *UserAuthToken) GetRepresentingUserId() string { +func (x *UsergroupMemberUser) GetUserPhotoUrl() string { if x != nil { - return x.RepresentingUserId + return x.UserPhotoUrl } return "" } -func (x *UserAuthToken) GetPrefix() string { +func (x *UsergroupMemberUser) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.Prefix + return x.CreatedOn } - return "" + return nil } -func (x *UserAuthToken) GetAttributes() *structpb.Struct { +func (x *UsergroupMemberUser) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.Attributes + return x.UpdatedOn } return nil } -func (x *UserAuthToken) GetRefresh() bool { - if x != nil { - return x.Refresh - } - return false -} - -func (x *UserAuthToken) GetCreatedOn() *timestamppb.Timestamp { - if x != nil { - return x.CreatedOn - } - return nil -} - -func (x *UserAuthToken) GetExpiresOn() *timestamppb.Timestamp { - if x != nil { - return x.ExpiresOn - } - return nil -} - -func (x *UserAuthToken) GetUsedOn() *timestamppb.Timestamp { - if x != nil { - return x.UsedOn - } - return nil -} - -type MagicAuthToken struct { +type OrganizationInvite struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` - Url string `protobuf:"bytes,13,opt,name=url,proto3" json:"url,omitempty"` - Token string `protobuf:"bytes,14,opt,name=token,proto3" json:"token,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - ExpiresOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expires_on,json=expiresOn,proto3" json:"expires_on,omitempty"` - UsedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=used_on,json=usedOn,proto3" json:"used_on,omitempty"` - CreatedByUserId string `protobuf:"bytes,6,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` - CreatedByUserEmail string `protobuf:"bytes,7,opt,name=created_by_user_email,json=createdByUserEmail,proto3" json:"created_by_user_email,omitempty"` - Attributes *structpb.Struct `protobuf:"bytes,8,opt,name=attributes,proto3" json:"attributes,omitempty"` - Resources []*ResourceName `protobuf:"bytes,17,rep,name=resources,proto3" json:"resources,omitempty"` - // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. - ResourceType string `protobuf:"bytes,15,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` - // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. - ResourceName string `protobuf:"bytes,9,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` - MetricsViewFilters map[string]*v1.Expression `protobuf:"bytes,18,rep,name=metrics_view_filters,json=metricsViewFilters,proto3" json:"metrics_view_filters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Fields []string `protobuf:"bytes,11,rep,name=fields,proto3" json:"fields,omitempty"` - State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` - DisplayName string `protobuf:"bytes,16,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + InvitedBy string `protobuf:"bytes,3,opt,name=invited_by,json=invitedBy,proto3" json:"invited_by,omitempty"` } -func (x *MagicAuthToken) Reset() { - *x = MagicAuthToken{} +func (x *OrganizationInvite) Reset() { + *x = OrganizationInvite{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[349] + mi := &file_rill_admin_v1_api_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MagicAuthToken) String() string { +func (x *OrganizationInvite) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MagicAuthToken) ProtoMessage() {} +func (*OrganizationInvite) ProtoMessage() {} -func (x *MagicAuthToken) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[349] +func (x *OrganizationInvite) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22174,160 +22177,211 @@ func (x *MagicAuthToken) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MagicAuthToken.ProtoReflect.Descriptor instead. -func (*MagicAuthToken) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{349} +// Deprecated: Use OrganizationInvite.ProtoReflect.Descriptor instead. +func (*OrganizationInvite) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{353} } -func (x *MagicAuthToken) GetId() string { +func (x *OrganizationInvite) GetEmail() string { if x != nil { - return x.Id + return x.Email } return "" } -func (x *MagicAuthToken) GetProjectId() string { +func (x *OrganizationInvite) GetRoleName() string { if x != nil { - return x.ProjectId + return x.RoleName } return "" } -func (x *MagicAuthToken) GetUrl() string { +func (x *OrganizationInvite) GetInvitedBy() string { if x != nil { - return x.Url + return x.InvitedBy } return "" } -func (x *MagicAuthToken) GetToken() string { - if x != nil { - return x.Token +type ProjectInvite struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` + RoleName string `protobuf:"bytes,2,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + OrgRoleName string `protobuf:"bytes,4,opt,name=org_role_name,json=orgRoleName,proto3" json:"org_role_name,omitempty"` + InvitedBy string `protobuf:"bytes,3,opt,name=invited_by,json=invitedBy,proto3" json:"invited_by,omitempty"` + RestrictResources bool `protobuf:"varint,5,opt,name=restrict_resources,json=restrictResources,proto3" json:"restrict_resources,omitempty"` + Resources []*ResourceName `protobuf:"bytes,6,rep,name=resources,proto3" json:"resources,omitempty"` +} + +func (x *ProjectInvite) Reset() { + *x = ProjectInvite{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[354] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *MagicAuthToken) GetCreatedOn() *timestamppb.Timestamp { - if x != nil { - return x.CreatedOn +func (x *ProjectInvite) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProjectInvite) ProtoMessage() {} + +func (x *ProjectInvite) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[354] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MagicAuthToken) GetExpiresOn() *timestamppb.Timestamp { +// Deprecated: Use ProjectInvite.ProtoReflect.Descriptor instead. +func (*ProjectInvite) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{354} +} + +func (x *ProjectInvite) GetEmail() string { if x != nil { - return x.ExpiresOn + return x.Email } - return nil + return "" } -func (x *MagicAuthToken) GetUsedOn() *timestamppb.Timestamp { +func (x *ProjectInvite) GetRoleName() string { if x != nil { - return x.UsedOn + return x.RoleName } - return nil + return "" } -func (x *MagicAuthToken) GetCreatedByUserId() string { +func (x *ProjectInvite) GetOrgRoleName() string { if x != nil { - return x.CreatedByUserId + return x.OrgRoleName } return "" } -func (x *MagicAuthToken) GetCreatedByUserEmail() string { +func (x *ProjectInvite) GetInvitedBy() string { if x != nil { - return x.CreatedByUserEmail + return x.InvitedBy } return "" } -func (x *MagicAuthToken) GetAttributes() *structpb.Struct { +func (x *ProjectInvite) GetRestrictResources() bool { if x != nil { - return x.Attributes + return x.RestrictResources } - return nil + return false } -func (x *MagicAuthToken) GetResources() []*ResourceName { +func (x *ProjectInvite) GetResources() []*ResourceName { if x != nil { return x.Resources } return nil } -// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. -func (x *MagicAuthToken) GetResourceType() string { - if x != nil { - return x.ResourceType - } - return "" +type WhitelistedDomain struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Domain string `protobuf:"bytes,1,opt,name=domain,proto3" json:"domain,omitempty"` + Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"` } -// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. -func (x *MagicAuthToken) GetResourceName() string { - if x != nil { - return x.ResourceName +func (x *WhitelistedDomain) Reset() { + *x = WhitelistedDomain{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[355] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *MagicAuthToken) GetMetricsViewFilters() map[string]*v1.Expression { - if x != nil { - return x.MetricsViewFilters - } - return nil +func (x *WhitelistedDomain) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *MagicAuthToken) GetFields() []string { - if x != nil { - return x.Fields +func (*WhitelistedDomain) ProtoMessage() {} + +func (x *WhitelistedDomain) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[355] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *MagicAuthToken) GetState() string { +// Deprecated: Use WhitelistedDomain.ProtoReflect.Descriptor instead. +func (*WhitelistedDomain) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{355} +} + +func (x *WhitelistedDomain) GetDomain() string { if x != nil { - return x.State + return x.Domain } return "" } -func (x *MagicAuthToken) GetDisplayName() string { +func (x *WhitelistedDomain) GetRole() string { if x != nil { - return x.DisplayName + return x.Role } return "" } -type VirtualFile struct { +type Bookmark struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - Deleted bool `protobuf:"varint,3,opt,name=deleted,proto3" json:"deleted,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` + Data []byte `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + UrlSearch string `protobuf:"bytes,13,opt,name=url_search,json=urlSearch,proto3" json:"url_search,omitempty"` + ResourceKind string `protobuf:"bytes,10,opt,name=resource_kind,json=resourceKind,proto3" json:"resource_kind,omitempty"` + ResourceName string `protobuf:"bytes,4,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + ProjectId string `protobuf:"bytes,5,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + UserId string `protobuf:"bytes,6,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + Default bool `protobuf:"varint,11,opt,name=default,proto3" json:"default,omitempty"` + Shared bool `protobuf:"varint,12,opt,name=shared,proto3" json:"shared,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *VirtualFile) Reset() { - *x = VirtualFile{} +func (x *Bookmark) Reset() { + *x = Bookmark{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[350] + mi := &file_rill_admin_v1_api_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *VirtualFile) String() string { +func (x *Bookmark) String() string { return protoimpl.X.MessageStringOf(x) } -func (*VirtualFile) ProtoMessage() {} +func (*Bookmark) ProtoMessage() {} -func (x *VirtualFile) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[350] +func (x *Bookmark) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22338,89 +22392,130 @@ func (x *VirtualFile) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use VirtualFile.ProtoReflect.Descriptor instead. -func (*VirtualFile) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{350} +// Deprecated: Use Bookmark.ProtoReflect.Descriptor instead. +func (*Bookmark) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{356} } -func (x *VirtualFile) GetPath() string { +func (x *Bookmark) GetId() string { if x != nil { - return x.Path + return x.Id } return "" } -func (x *VirtualFile) GetData() []byte { +func (x *Bookmark) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Bookmark) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Bookmark) GetData() []byte { if x != nil { return x.Data } return nil } -func (x *VirtualFile) GetDeleted() bool { +func (x *Bookmark) GetUrlSearch() string { if x != nil { - return x.Deleted + return x.UrlSearch + } + return "" +} + +func (x *Bookmark) GetResourceKind() string { + if x != nil { + return x.ResourceKind + } + return "" +} + +func (x *Bookmark) GetResourceName() string { + if x != nil { + return x.ResourceName + } + return "" +} + +func (x *Bookmark) GetProjectId() string { + if x != nil { + return x.ProjectId + } + return "" +} + +func (x *Bookmark) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *Bookmark) GetDefault() bool { + if x != nil { + return x.Default } return false } -func (x *VirtualFile) GetUpdatedOn() *timestamppb.Timestamp { +func (x *Bookmark) GetShared() bool { + if x != nil { + return x.Shared + } + return false +} + +func (x *Bookmark) GetCreatedOn() *timestamppb.Timestamp { + if x != nil { + return x.CreatedOn + } + return nil +} + +func (x *Bookmark) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { return x.UpdatedOn } return nil } -type ReportOptions struct { +type ServiceToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - RefreshCron string `protobuf:"bytes,2,opt,name=refresh_cron,json=refreshCron,proto3" json:"refresh_cron,omitempty"` - RefreshTimeZone string `protobuf:"bytes,9,opt,name=refresh_time_zone,json=refreshTimeZone,proto3" json:"refresh_time_zone,omitempty"` - IntervalDuration string `protobuf:"bytes,13,opt,name=interval_duration,json=intervalDuration,proto3" json:"interval_duration,omitempty"` - Resolver string `protobuf:"bytes,21,opt,name=resolver,proto3" json:"resolver,omitempty"` - ResolverProperties *structpb.Struct `protobuf:"bytes,22,opt,name=resolver_properties,json=resolverProperties,proto3" json:"resolver_properties,omitempty"` - // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. - QueryName string `protobuf:"bytes,3,opt,name=query_name,json=queryName,proto3" json:"query_name,omitempty"` // use resolver/resolver_properties instead - // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. - QueryArgsJson string `protobuf:"bytes,4,opt,name=query_args_json,json=queryArgsJson,proto3" json:"query_args_json,omitempty"` // use resolver/resolver_properties instead - ExportLimit uint64 `protobuf:"varint,5,opt,name=export_limit,json=exportLimit,proto3" json:"export_limit,omitempty"` - ExportFormat v1.ExportFormat `protobuf:"varint,6,opt,name=export_format,json=exportFormat,proto3,enum=rill.runtime.v1.ExportFormat" json:"export_format,omitempty"` - ExportIncludeHeader bool `protobuf:"varint,20,opt,name=export_include_header,json=exportIncludeHeader,proto3" json:"export_include_header,omitempty"` - EmailRecipients []string `protobuf:"bytes,8,rep,name=email_recipients,json=emailRecipients,proto3" json:"email_recipients,omitempty"` - SlackUsers []string `protobuf:"bytes,10,rep,name=slack_users,json=slackUsers,proto3" json:"slack_users,omitempty"` - SlackChannels []string `protobuf:"bytes,11,rep,name=slack_channels,json=slackChannels,proto3" json:"slack_channels,omitempty"` - SlackWebhooks []string `protobuf:"bytes,12,rep,name=slack_webhooks,json=slackWebhooks,proto3" json:"slack_webhooks,omitempty"` - WebOpenPath string `protobuf:"bytes,15,opt,name=web_open_path,json=webOpenPath,proto3" json:"web_open_path,omitempty"` // Annotation for the subpath of /org/project to open for the report. - WebOpenState string `protobuf:"bytes,14,opt,name=web_open_state,json=webOpenState,proto3" json:"web_open_state,omitempty"` // Annotation for the base64-encoded UI state to open for the report. - Explore string `protobuf:"bytes,16,opt,name=explore,proto3" json:"explore,omitempty"` // either canvas or explore should be set - Canvas string `protobuf:"bytes,17,opt,name=canvas,proto3" json:"canvas,omitempty"` - // web_open_mode is used to determine how to create or disable open link for the report - // - send "recipient" for reports that should be opened with recipient's permissions - requires login - // - send "creator" for reports that should be opened with creators permissions but with locked filters - no login required - // - send "none" for reports that should not be opened or older reports which do not have any web_open_path - WebOpenMode string `protobuf:"bytes,18,opt,name=web_open_mode,json=webOpenMode,proto3" json:"web_open_mode,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Prefix string `protobuf:"bytes,4,opt,name=prefix,proto3" json:"prefix,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + ExpiresOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=expires_on,json=expiresOn,proto3" json:"expires_on,omitempty"` } -func (x *ReportOptions) Reset() { - *x = ReportOptions{} +func (x *ServiceToken) Reset() { + *x = ServiceToken{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[351] + mi := &file_rill_admin_v1_api_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ReportOptions) String() string { +func (x *ServiceToken) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReportOptions) ProtoMessage() {} +func (*ServiceToken) ProtoMessage() {} -func (x *ReportOptions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[351] +func (x *ServiceToken) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22431,196 +22526,209 @@ func (x *ReportOptions) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReportOptions.ProtoReflect.Descriptor instead. -func (*ReportOptions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{351} +// Deprecated: Use ServiceToken.ProtoReflect.Descriptor instead. +func (*ServiceToken) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{357} } -func (x *ReportOptions) GetDisplayName() string { +func (x *ServiceToken) GetId() string { if x != nil { - return x.DisplayName + return x.Id } return "" } -func (x *ReportOptions) GetRefreshCron() string { +func (x *ServiceToken) GetPrefix() string { if x != nil { - return x.RefreshCron + return x.Prefix } return "" } -func (x *ReportOptions) GetRefreshTimeZone() string { +func (x *ServiceToken) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.RefreshTimeZone + return x.CreatedOn } - return "" + return nil } -func (x *ReportOptions) GetIntervalDuration() string { +func (x *ServiceToken) GetExpiresOn() *timestamppb.Timestamp { if x != nil { - return x.IntervalDuration + return x.ExpiresOn } - return "" + return nil } -func (x *ReportOptions) GetResolver() string { - if x != nil { - return x.Resolver +type UserAuthToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + AuthClientId string `protobuf:"bytes,3,opt,name=auth_client_id,json=authClientId,proto3" json:"auth_client_id,omitempty"` + AuthClientDisplayName string `protobuf:"bytes,4,opt,name=auth_client_display_name,json=authClientDisplayName,proto3" json:"auth_client_display_name,omitempty"` + RepresentingUserId string `protobuf:"bytes,5,opt,name=representing_user_id,json=representingUserId,proto3" json:"representing_user_id,omitempty"` + Prefix string `protobuf:"bytes,9,opt,name=prefix,proto3" json:"prefix,omitempty"` + Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"` + Refresh bool `protobuf:"varint,11,opt,name=refresh,proto3" json:"refresh,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + ExpiresOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=expires_on,json=expiresOn,proto3" json:"expires_on,omitempty"` + UsedOn *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=used_on,json=usedOn,proto3" json:"used_on,omitempty"` +} + +func (x *UserAuthToken) Reset() { + *x = UserAuthToken{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[358] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *ReportOptions) GetResolverProperties() *structpb.Struct { +func (x *UserAuthToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAuthToken) ProtoMessage() {} + +func (x *UserAuthToken) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[358] + 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 UserAuthToken.ProtoReflect.Descriptor instead. +func (*UserAuthToken) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{358} +} + +func (x *UserAuthToken) GetId() string { if x != nil { - return x.ResolverProperties + return x.Id } - return nil + return "" } -// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. -func (x *ReportOptions) GetQueryName() string { +func (x *UserAuthToken) GetDisplayName() string { if x != nil { - return x.QueryName + return x.DisplayName } return "" } -// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. -func (x *ReportOptions) GetQueryArgsJson() string { +func (x *UserAuthToken) GetAuthClientId() string { if x != nil { - return x.QueryArgsJson + return x.AuthClientId } return "" } -func (x *ReportOptions) GetExportLimit() uint64 { +func (x *UserAuthToken) GetAuthClientDisplayName() string { if x != nil { - return x.ExportLimit + return x.AuthClientDisplayName } - return 0 + return "" } -func (x *ReportOptions) GetExportFormat() v1.ExportFormat { +func (x *UserAuthToken) GetRepresentingUserId() string { if x != nil { - return x.ExportFormat + return x.RepresentingUserId } - return v1.ExportFormat(0) + return "" } -func (x *ReportOptions) GetExportIncludeHeader() bool { +func (x *UserAuthToken) GetPrefix() string { if x != nil { - return x.ExportIncludeHeader + return x.Prefix } - return false + return "" } -func (x *ReportOptions) GetEmailRecipients() []string { +func (x *UserAuthToken) GetAttributes() *structpb.Struct { if x != nil { - return x.EmailRecipients + return x.Attributes } return nil } -func (x *ReportOptions) GetSlackUsers() []string { +func (x *UserAuthToken) GetRefresh() bool { if x != nil { - return x.SlackUsers + return x.Refresh } - return nil + return false } -func (x *ReportOptions) GetSlackChannels() []string { +func (x *UserAuthToken) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.SlackChannels + return x.CreatedOn } return nil } -func (x *ReportOptions) GetSlackWebhooks() []string { +func (x *UserAuthToken) GetExpiresOn() *timestamppb.Timestamp { if x != nil { - return x.SlackWebhooks + return x.ExpiresOn } return nil } -func (x *ReportOptions) GetWebOpenPath() string { +func (x *UserAuthToken) GetUsedOn() *timestamppb.Timestamp { if x != nil { - return x.WebOpenPath + return x.UsedOn } - return "" + return nil } -func (x *ReportOptions) GetWebOpenState() string { - if x != nil { - return x.WebOpenState - } - return "" -} - -func (x *ReportOptions) GetExplore() string { - if x != nil { - return x.Explore - } - return "" -} - -func (x *ReportOptions) GetCanvas() string { - if x != nil { - return x.Canvas - } - return "" -} - -func (x *ReportOptions) GetWebOpenMode() string { - if x != nil { - return x.WebOpenMode - } - return "" -} - -type AlertOptions struct { +type MagicAuthToken struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - RefreshCron string `protobuf:"bytes,16,opt,name=refresh_cron,json=refreshCron,proto3" json:"refresh_cron,omitempty"` - RefreshTimeZone string `protobuf:"bytes,17,opt,name=refresh_time_zone,json=refreshTimeZone,proto3" json:"refresh_time_zone,omitempty"` - IntervalDuration string `protobuf:"bytes,2,opt,name=interval_duration,json=intervalDuration,proto3" json:"interval_duration,omitempty"` - Resolver string `protobuf:"bytes,13,opt,name=resolver,proto3" json:"resolver,omitempty"` - ResolverProperties *structpb.Struct `protobuf:"bytes,14,opt,name=resolver_properties,json=resolverProperties,proto3" json:"resolver_properties,omitempty"` - // DEPRECATED: Use resolver and resolver_properties instead. - QueryName string `protobuf:"bytes,3,opt,name=query_name,json=queryName,proto3" json:"query_name,omitempty"` - // DEPRECATED: Use resolver and resolver_properties instead. - QueryArgsJson string `protobuf:"bytes,4,opt,name=query_args_json,json=queryArgsJson,proto3" json:"query_args_json,omitempty"` - MetricsViewName string `protobuf:"bytes,5,opt,name=metrics_view_name,json=metricsViewName,proto3" json:"metrics_view_name,omitempty"` - Renotify bool `protobuf:"varint,6,opt,name=renotify,proto3" json:"renotify,omitempty"` - RenotifyAfterSeconds uint32 `protobuf:"varint,7,opt,name=renotify_after_seconds,json=renotifyAfterSeconds,proto3" json:"renotify_after_seconds,omitempty"` - EmailRecipients []string `protobuf:"bytes,8,rep,name=email_recipients,json=emailRecipients,proto3" json:"email_recipients,omitempty"` - SlackUsers []string `protobuf:"bytes,9,rep,name=slack_users,json=slackUsers,proto3" json:"slack_users,omitempty"` - SlackChannels []string `protobuf:"bytes,10,rep,name=slack_channels,json=slackChannels,proto3" json:"slack_channels,omitempty"` - SlackWebhooks []string `protobuf:"bytes,11,rep,name=slack_webhooks,json=slackWebhooks,proto3" json:"slack_webhooks,omitempty"` - WebOpenPath string `protobuf:"bytes,15,opt,name=web_open_path,json=webOpenPath,proto3" json:"web_open_path,omitempty"` // Annotation for the subpath of /org/project to open for the report. - WebOpenState string `protobuf:"bytes,12,opt,name=web_open_state,json=webOpenState,proto3" json:"web_open_state,omitempty"` // Annotation for the base64-encoded UI state to open for the report. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` + Url string `protobuf:"bytes,13,opt,name=url,proto3" json:"url,omitempty"` + Token string `protobuf:"bytes,14,opt,name=token,proto3" json:"token,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + ExpiresOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expires_on,json=expiresOn,proto3" json:"expires_on,omitempty"` + UsedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=used_on,json=usedOn,proto3" json:"used_on,omitempty"` + CreatedByUserId string `protobuf:"bytes,6,opt,name=created_by_user_id,json=createdByUserId,proto3" json:"created_by_user_id,omitempty"` + CreatedByUserEmail string `protobuf:"bytes,7,opt,name=created_by_user_email,json=createdByUserEmail,proto3" json:"created_by_user_email,omitempty"` + Attributes *structpb.Struct `protobuf:"bytes,8,opt,name=attributes,proto3" json:"attributes,omitempty"` + Resources []*ResourceName `protobuf:"bytes,17,rep,name=resources,proto3" json:"resources,omitempty"` + // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. + ResourceType string `protobuf:"bytes,15,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"` + // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. + ResourceName string `protobuf:"bytes,9,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"` + MetricsViewFilters map[string]*v1.Expression `protobuf:"bytes,18,rep,name=metrics_view_filters,json=metricsViewFilters,proto3" json:"metrics_view_filters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Fields []string `protobuf:"bytes,11,rep,name=fields,proto3" json:"fields,omitempty"` + State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` + DisplayName string `protobuf:"bytes,16,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` } -func (x *AlertOptions) Reset() { - *x = AlertOptions{} +func (x *MagicAuthToken) Reset() { + *x = MagicAuthToken{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[352] + mi := &file_rill_admin_v1_api_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AlertOptions) String() string { +func (x *MagicAuthToken) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AlertOptions) ProtoMessage() {} +func (*MagicAuthToken) ProtoMessage() {} -func (x *AlertOptions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[352] +func (x *MagicAuthToken) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22631,163 +22739,160 @@ func (x *AlertOptions) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AlertOptions.ProtoReflect.Descriptor instead. -func (*AlertOptions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{352} +// Deprecated: Use MagicAuthToken.ProtoReflect.Descriptor instead. +func (*MagicAuthToken) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{359} } -func (x *AlertOptions) GetDisplayName() string { +func (x *MagicAuthToken) GetId() string { if x != nil { - return x.DisplayName + return x.Id } return "" } -func (x *AlertOptions) GetRefreshCron() string { +func (x *MagicAuthToken) GetProjectId() string { if x != nil { - return x.RefreshCron + return x.ProjectId } return "" } -func (x *AlertOptions) GetRefreshTimeZone() string { +func (x *MagicAuthToken) GetUrl() string { if x != nil { - return x.RefreshTimeZone + return x.Url } return "" } -func (x *AlertOptions) GetIntervalDuration() string { +func (x *MagicAuthToken) GetToken() string { if x != nil { - return x.IntervalDuration + return x.Token } return "" } -func (x *AlertOptions) GetResolver() string { +func (x *MagicAuthToken) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.Resolver + return x.CreatedOn } - return "" + return nil } -func (x *AlertOptions) GetResolverProperties() *structpb.Struct { +func (x *MagicAuthToken) GetExpiresOn() *timestamppb.Timestamp { if x != nil { - return x.ResolverProperties + return x.ExpiresOn } return nil } -func (x *AlertOptions) GetQueryName() string { +func (x *MagicAuthToken) GetUsedOn() *timestamppb.Timestamp { if x != nil { - return x.QueryName + return x.UsedOn } - return "" + return nil } -func (x *AlertOptions) GetQueryArgsJson() string { +func (x *MagicAuthToken) GetCreatedByUserId() string { if x != nil { - return x.QueryArgsJson + return x.CreatedByUserId } return "" } -func (x *AlertOptions) GetMetricsViewName() string { +func (x *MagicAuthToken) GetCreatedByUserEmail() string { if x != nil { - return x.MetricsViewName + return x.CreatedByUserEmail } return "" } -func (x *AlertOptions) GetRenotify() bool { +func (x *MagicAuthToken) GetAttributes() *structpb.Struct { if x != nil { - return x.Renotify + return x.Attributes } - return false + return nil } -func (x *AlertOptions) GetRenotifyAfterSeconds() uint32 { +func (x *MagicAuthToken) GetResources() []*ResourceName { if x != nil { - return x.RenotifyAfterSeconds + return x.Resources } - return 0 + return nil } -func (x *AlertOptions) GetEmailRecipients() []string { +// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. +func (x *MagicAuthToken) GetResourceType() string { if x != nil { - return x.EmailRecipients + return x.ResourceType } - return nil + return "" } -func (x *AlertOptions) GetSlackUsers() []string { +// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. +func (x *MagicAuthToken) GetResourceName() string { if x != nil { - return x.SlackUsers + return x.ResourceName } - return nil + return "" } -func (x *AlertOptions) GetSlackChannels() []string { +func (x *MagicAuthToken) GetMetricsViewFilters() map[string]*v1.Expression { if x != nil { - return x.SlackChannels + return x.MetricsViewFilters } return nil } -func (x *AlertOptions) GetSlackWebhooks() []string { +func (x *MagicAuthToken) GetFields() []string { if x != nil { - return x.SlackWebhooks + return x.Fields } return nil } -func (x *AlertOptions) GetWebOpenPath() string { +func (x *MagicAuthToken) GetState() string { if x != nil { - return x.WebOpenPath + return x.State } return "" } -func (x *AlertOptions) GetWebOpenState() string { +func (x *MagicAuthToken) GetDisplayName() string { if x != nil { - return x.WebOpenState + return x.DisplayName } return "" } -type BillingPlan struct { +type VirtualFile struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - PlanType BillingPlanType `protobuf:"varint,9,opt,name=plan_type,json=planType,proto3,enum=rill.admin.v1.BillingPlanType" json:"plan_type,omitempty"` - DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` - TrialPeriodDays uint32 `protobuf:"varint,5,opt,name=trial_period_days,json=trialPeriodDays,proto3" json:"trial_period_days,omitempty"` - Default bool `protobuf:"varint,6,opt,name=default,proto3" json:"default,omitempty"` - Quotas *Quotas `protobuf:"bytes,7,opt,name=quotas,proto3" json:"quotas,omitempty"` - Public bool `protobuf:"varint,8,opt,name=public,proto3" json:"public,omitempty"` // TODO expose pricing information + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Deleted bool `protobuf:"varint,3,opt,name=deleted,proto3" json:"deleted,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *BillingPlan) Reset() { - *x = BillingPlan{} +func (x *VirtualFile) Reset() { + *x = VirtualFile{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[353] + mi := &file_rill_admin_v1_api_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingPlan) String() string { +func (x *VirtualFile) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingPlan) ProtoMessage() {} +func (*VirtualFile) ProtoMessage() {} -func (x *BillingPlan) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[353] +func (x *VirtualFile) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22798,104 +22903,89 @@ func (x *BillingPlan) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BillingPlan.ProtoReflect.Descriptor instead. -func (*BillingPlan) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{353} -} - -func (x *BillingPlan) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *BillingPlan) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *BillingPlan) GetPlanType() BillingPlanType { - if x != nil { - return x.PlanType - } - return BillingPlanType_BILLING_PLAN_TYPE_UNSPECIFIED -} - -func (x *BillingPlan) GetDisplayName() string { - if x != nil { - return x.DisplayName - } - return "" +// Deprecated: Use VirtualFile.ProtoReflect.Descriptor instead. +func (*VirtualFile) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{360} } -func (x *BillingPlan) GetDescription() string { +func (x *VirtualFile) GetPath() string { if x != nil { - return x.Description + return x.Path } return "" } -func (x *BillingPlan) GetTrialPeriodDays() uint32 { +func (x *VirtualFile) GetData() []byte { if x != nil { - return x.TrialPeriodDays + return x.Data } - return 0 + return nil } -func (x *BillingPlan) GetDefault() bool { +func (x *VirtualFile) GetDeleted() bool { if x != nil { - return x.Default + return x.Deleted } return false } -func (x *BillingPlan) GetQuotas() *Quotas { +func (x *VirtualFile) GetUpdatedOn() *timestamppb.Timestamp { if x != nil { - return x.Quotas + return x.UpdatedOn } return nil } -func (x *BillingPlan) GetPublic() bool { - if x != nil { - return x.Public - } - return false -} - -type Quotas struct { +type ReportOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Projects string `protobuf:"bytes,1,opt,name=projects,proto3" json:"projects,omitempty"` - Deployments string `protobuf:"bytes,2,opt,name=deployments,proto3" json:"deployments,omitempty"` - SlotsTotal string `protobuf:"bytes,3,opt,name=slots_total,json=slotsTotal,proto3" json:"slots_total,omitempty"` - SlotsPerDeployment string `protobuf:"bytes,4,opt,name=slots_per_deployment,json=slotsPerDeployment,proto3" json:"slots_per_deployment,omitempty"` - OutstandingInvites string `protobuf:"bytes,5,opt,name=outstanding_invites,json=outstandingInvites,proto3" json:"outstanding_invites,omitempty"` - StorageLimitBytesPerDeployment string `protobuf:"bytes,6,opt,name=storage_limit_bytes_per_deployment,json=storageLimitBytesPerDeployment,proto3" json:"storage_limit_bytes_per_deployment,omitempty"` + DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + RefreshCron string `protobuf:"bytes,2,opt,name=refresh_cron,json=refreshCron,proto3" json:"refresh_cron,omitempty"` + RefreshTimeZone string `protobuf:"bytes,9,opt,name=refresh_time_zone,json=refreshTimeZone,proto3" json:"refresh_time_zone,omitempty"` + IntervalDuration string `protobuf:"bytes,13,opt,name=interval_duration,json=intervalDuration,proto3" json:"interval_duration,omitempty"` + Resolver string `protobuf:"bytes,21,opt,name=resolver,proto3" json:"resolver,omitempty"` + ResolverProperties *structpb.Struct `protobuf:"bytes,22,opt,name=resolver_properties,json=resolverProperties,proto3" json:"resolver_properties,omitempty"` + // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. + QueryName string `protobuf:"bytes,3,opt,name=query_name,json=queryName,proto3" json:"query_name,omitempty"` // use resolver/resolver_properties instead + // Deprecated: Marked as deprecated in rill/admin/v1/api.proto. + QueryArgsJson string `protobuf:"bytes,4,opt,name=query_args_json,json=queryArgsJson,proto3" json:"query_args_json,omitempty"` // use resolver/resolver_properties instead + ExportLimit uint64 `protobuf:"varint,5,opt,name=export_limit,json=exportLimit,proto3" json:"export_limit,omitempty"` + ExportFormat v1.ExportFormat `protobuf:"varint,6,opt,name=export_format,json=exportFormat,proto3,enum=rill.runtime.v1.ExportFormat" json:"export_format,omitempty"` + ExportIncludeHeader bool `protobuf:"varint,20,opt,name=export_include_header,json=exportIncludeHeader,proto3" json:"export_include_header,omitempty"` + EmailRecipients []string `protobuf:"bytes,8,rep,name=email_recipients,json=emailRecipients,proto3" json:"email_recipients,omitempty"` + SlackUsers []string `protobuf:"bytes,10,rep,name=slack_users,json=slackUsers,proto3" json:"slack_users,omitempty"` + SlackChannels []string `protobuf:"bytes,11,rep,name=slack_channels,json=slackChannels,proto3" json:"slack_channels,omitempty"` + SlackWebhooks []string `protobuf:"bytes,12,rep,name=slack_webhooks,json=slackWebhooks,proto3" json:"slack_webhooks,omitempty"` + WebOpenPath string `protobuf:"bytes,15,opt,name=web_open_path,json=webOpenPath,proto3" json:"web_open_path,omitempty"` // Annotation for the subpath of /org/project to open for the report. + WebOpenState string `protobuf:"bytes,14,opt,name=web_open_state,json=webOpenState,proto3" json:"web_open_state,omitempty"` // Annotation for the base64-encoded UI state to open for the report. + Explore string `protobuf:"bytes,16,opt,name=explore,proto3" json:"explore,omitempty"` // either canvas or explore should be set + Canvas string `protobuf:"bytes,17,opt,name=canvas,proto3" json:"canvas,omitempty"` + // web_open_mode is used to determine how to create or disable open link for the report + // - send "recipient" for reports that should be opened with recipient's permissions - requires login + // - send "creator" for reports that should be opened with creators permissions but with locked filters - no login required + // - send "none" for reports that should not be opened or older reports which do not have any web_open_path + WebOpenMode string `protobuf:"bytes,18,opt,name=web_open_mode,json=webOpenMode,proto3" json:"web_open_mode,omitempty"` } -func (x *Quotas) Reset() { - *x = Quotas{} +func (x *ReportOptions) Reset() { + *x = ReportOptions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[354] + mi := &file_rill_admin_v1_api_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Quotas) String() string { +func (x *ReportOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Quotas) ProtoMessage() {} +func (*ReportOptions) ProtoMessage() {} -func (x *Quotas) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[354] +func (x *ReportOptions) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22906,173 +22996,196 @@ func (x *Quotas) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Quotas.ProtoReflect.Descriptor instead. -func (*Quotas) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{354} +// Deprecated: Use ReportOptions.ProtoReflect.Descriptor instead. +func (*ReportOptions) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{361} } -func (x *Quotas) GetProjects() string { +func (x *ReportOptions) GetDisplayName() string { if x != nil { - return x.Projects + return x.DisplayName } return "" } -func (x *Quotas) GetDeployments() string { +func (x *ReportOptions) GetRefreshCron() string { if x != nil { - return x.Deployments + return x.RefreshCron } return "" } -func (x *Quotas) GetSlotsTotal() string { +func (x *ReportOptions) GetRefreshTimeZone() string { if x != nil { - return x.SlotsTotal + return x.RefreshTimeZone } return "" } -func (x *Quotas) GetSlotsPerDeployment() string { +func (x *ReportOptions) GetIntervalDuration() string { if x != nil { - return x.SlotsPerDeployment + return x.IntervalDuration } return "" } -func (x *Quotas) GetOutstandingInvites() string { +func (x *ReportOptions) GetResolver() string { if x != nil { - return x.OutstandingInvites + return x.Resolver } return "" } -func (x *Quotas) GetStorageLimitBytesPerDeployment() string { +func (x *ReportOptions) GetResolverProperties() *structpb.Struct { if x != nil { - return x.StorageLimitBytesPerDeployment + return x.ResolverProperties + } + return nil +} + +// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. +func (x *ReportOptions) GetQueryName() string { + if x != nil { + return x.QueryName } return "" } -type Usergroup struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Marked as deprecated in rill/admin/v1/api.proto. +func (x *ReportOptions) GetQueryArgsJson() string { + if x != nil { + return x.QueryArgsJson + } + return "" +} - GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` - GroupDescription string `protobuf:"bytes,3,opt,name=group_description,json=groupDescription,proto3" json:"group_description,omitempty"` - Managed bool `protobuf:"varint,6,opt,name=managed,proto3" json:"managed,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` +func (x *ReportOptions) GetExportLimit() uint64 { + if x != nil { + return x.ExportLimit + } + return 0 } -func (x *Usergroup) Reset() { - *x = Usergroup{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[355] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ReportOptions) GetExportFormat() v1.ExportFormat { + if x != nil { + return x.ExportFormat } + return v1.ExportFormat(0) } -func (x *Usergroup) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ReportOptions) GetExportIncludeHeader() bool { + if x != nil { + return x.ExportIncludeHeader + } + return false } -func (*Usergroup) ProtoMessage() {} +func (x *ReportOptions) GetEmailRecipients() []string { + if x != nil { + return x.EmailRecipients + } + return nil +} -func (x *Usergroup) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[355] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ReportOptions) GetSlackUsers() []string { + if x != nil { + return x.SlackUsers } - return mi.MessageOf(x) + return nil } -// Deprecated: Use Usergroup.ProtoReflect.Descriptor instead. -func (*Usergroup) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{355} +func (x *ReportOptions) GetSlackChannels() []string { + if x != nil { + return x.SlackChannels + } + return nil } -func (x *Usergroup) GetGroupId() string { +func (x *ReportOptions) GetSlackWebhooks() []string { if x != nil { - return x.GroupId + return x.SlackWebhooks } - return "" + return nil } -func (x *Usergroup) GetGroupName() string { +func (x *ReportOptions) GetWebOpenPath() string { if x != nil { - return x.GroupName + return x.WebOpenPath } return "" } -func (x *Usergroup) GetGroupDescription() string { +func (x *ReportOptions) GetWebOpenState() string { if x != nil { - return x.GroupDescription + return x.WebOpenState } return "" } -func (x *Usergroup) GetManaged() bool { +func (x *ReportOptions) GetExplore() string { if x != nil { - return x.Managed + return x.Explore } - return false + return "" } -func (x *Usergroup) GetCreatedOn() *timestamppb.Timestamp { +func (x *ReportOptions) GetCanvas() string { if x != nil { - return x.CreatedOn + return x.Canvas } - return nil + return "" } -func (x *Usergroup) GetUpdatedOn() *timestamppb.Timestamp { +func (x *ReportOptions) GetWebOpenMode() string { if x != nil { - return x.UpdatedOn + return x.WebOpenMode } - return nil + return "" } -type MemberUsergroup struct { +type AlertOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` - GroupManaged bool `protobuf:"varint,6,opt,name=group_managed,json=groupManaged,proto3" json:"group_managed,omitempty"` - RoleName string `protobuf:"bytes,3,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` - UsersCount uint32 `protobuf:"varint,7,opt,name=users_count,json=usersCount,proto3" json:"users_count,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` - UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` - RestrictResources bool `protobuf:"varint,8,opt,name=restrict_resources,json=restrictResources,proto3" json:"restrict_resources,omitempty"` - Resources []*ResourceName `protobuf:"bytes,9,rep,name=resources,proto3" json:"resources,omitempty"` + DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + RefreshCron string `protobuf:"bytes,16,opt,name=refresh_cron,json=refreshCron,proto3" json:"refresh_cron,omitempty"` + RefreshTimeZone string `protobuf:"bytes,17,opt,name=refresh_time_zone,json=refreshTimeZone,proto3" json:"refresh_time_zone,omitempty"` + IntervalDuration string `protobuf:"bytes,2,opt,name=interval_duration,json=intervalDuration,proto3" json:"interval_duration,omitempty"` + Resolver string `protobuf:"bytes,13,opt,name=resolver,proto3" json:"resolver,omitempty"` + ResolverProperties *structpb.Struct `protobuf:"bytes,14,opt,name=resolver_properties,json=resolverProperties,proto3" json:"resolver_properties,omitempty"` + // DEPRECATED: Use resolver and resolver_properties instead. + QueryName string `protobuf:"bytes,3,opt,name=query_name,json=queryName,proto3" json:"query_name,omitempty"` + // DEPRECATED: Use resolver and resolver_properties instead. + QueryArgsJson string `protobuf:"bytes,4,opt,name=query_args_json,json=queryArgsJson,proto3" json:"query_args_json,omitempty"` + MetricsViewName string `protobuf:"bytes,5,opt,name=metrics_view_name,json=metricsViewName,proto3" json:"metrics_view_name,omitempty"` + Renotify bool `protobuf:"varint,6,opt,name=renotify,proto3" json:"renotify,omitempty"` + RenotifyAfterSeconds uint32 `protobuf:"varint,7,opt,name=renotify_after_seconds,json=renotifyAfterSeconds,proto3" json:"renotify_after_seconds,omitempty"` + EmailRecipients []string `protobuf:"bytes,8,rep,name=email_recipients,json=emailRecipients,proto3" json:"email_recipients,omitempty"` + SlackUsers []string `protobuf:"bytes,9,rep,name=slack_users,json=slackUsers,proto3" json:"slack_users,omitempty"` + SlackChannels []string `protobuf:"bytes,10,rep,name=slack_channels,json=slackChannels,proto3" json:"slack_channels,omitempty"` + SlackWebhooks []string `protobuf:"bytes,11,rep,name=slack_webhooks,json=slackWebhooks,proto3" json:"slack_webhooks,omitempty"` + WebOpenPath string `protobuf:"bytes,15,opt,name=web_open_path,json=webOpenPath,proto3" json:"web_open_path,omitempty"` // Annotation for the subpath of /org/project to open for the report. + WebOpenState string `protobuf:"bytes,12,opt,name=web_open_state,json=webOpenState,proto3" json:"web_open_state,omitempty"` // Annotation for the base64-encoded UI state to open for the report. } -func (x *MemberUsergroup) Reset() { - *x = MemberUsergroup{} +func (x *AlertOptions) Reset() { + *x = AlertOptions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[356] + mi := &file_rill_admin_v1_api_proto_msgTypes[362] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *MemberUsergroup) String() string { +func (x *AlertOptions) String() string { return protoimpl.X.MessageStringOf(x) } -func (*MemberUsergroup) ProtoMessage() {} +func (*AlertOptions) ProtoMessage() {} -func (x *MemberUsergroup) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[356] +func (x *AlertOptions) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[362] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23083,104 +23196,163 @@ func (x *MemberUsergroup) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use MemberUsergroup.ProtoReflect.Descriptor instead. -func (*MemberUsergroup) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{356} +// Deprecated: Use AlertOptions.ProtoReflect.Descriptor instead. +func (*AlertOptions) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{362} } -func (x *MemberUsergroup) GetGroupId() string { +func (x *AlertOptions) GetDisplayName() string { if x != nil { - return x.GroupId + return x.DisplayName } return "" } -func (x *MemberUsergroup) GetGroupName() string { +func (x *AlertOptions) GetRefreshCron() string { if x != nil { - return x.GroupName + return x.RefreshCron } return "" } -func (x *MemberUsergroup) GetGroupManaged() bool { +func (x *AlertOptions) GetRefreshTimeZone() string { if x != nil { - return x.GroupManaged + return x.RefreshTimeZone } - return false + return "" } -func (x *MemberUsergroup) GetRoleName() string { +func (x *AlertOptions) GetIntervalDuration() string { if x != nil { - return x.RoleName + return x.IntervalDuration } return "" } -func (x *MemberUsergroup) GetUsersCount() uint32 { +func (x *AlertOptions) GetResolver() string { if x != nil { - return x.UsersCount + return x.Resolver + } + return "" +} + +func (x *AlertOptions) GetResolverProperties() *structpb.Struct { + if x != nil { + return x.ResolverProperties + } + return nil +} + +func (x *AlertOptions) GetQueryName() string { + if x != nil { + return x.QueryName + } + return "" +} + +func (x *AlertOptions) GetQueryArgsJson() string { + if x != nil { + return x.QueryArgsJson + } + return "" +} + +func (x *AlertOptions) GetMetricsViewName() string { + if x != nil { + return x.MetricsViewName + } + return "" +} + +func (x *AlertOptions) GetRenotify() bool { + if x != nil { + return x.Renotify + } + return false +} + +func (x *AlertOptions) GetRenotifyAfterSeconds() uint32 { + if x != nil { + return x.RenotifyAfterSeconds } return 0 } -func (x *MemberUsergroup) GetCreatedOn() *timestamppb.Timestamp { +func (x *AlertOptions) GetEmailRecipients() []string { if x != nil { - return x.CreatedOn + return x.EmailRecipients } return nil } -func (x *MemberUsergroup) GetUpdatedOn() *timestamppb.Timestamp { +func (x *AlertOptions) GetSlackUsers() []string { if x != nil { - return x.UpdatedOn + return x.SlackUsers } return nil } -func (x *MemberUsergroup) GetRestrictResources() bool { +func (x *AlertOptions) GetSlackChannels() []string { if x != nil { - return x.RestrictResources + return x.SlackChannels } - return false + return nil } -func (x *MemberUsergroup) GetResources() []*ResourceName { +func (x *AlertOptions) GetSlackWebhooks() []string { if x != nil { - return x.Resources + return x.SlackWebhooks } return nil } -type BillingIssue struct { +func (x *AlertOptions) GetWebOpenPath() string { + if x != nil { + return x.WebOpenPath + } + return "" +} + +func (x *AlertOptions) GetWebOpenState() string { + if x != nil { + return x.WebOpenState + } + return "" +} + +type BillingPlan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` - Type BillingIssueType `protobuf:"varint,2,opt,name=type,proto3,enum=rill.admin.v1.BillingIssueType" json:"type,omitempty"` - Level BillingIssueLevel `protobuf:"varint,3,opt,name=level,proto3,enum=rill.admin.v1.BillingIssueLevel" json:"level,omitempty"` - Metadata *BillingIssueMetadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` - EventTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` - CreatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + PlanType BillingPlanType `protobuf:"varint,9,opt,name=plan_type,json=planType,proto3,enum=rill.admin.v1.BillingPlanType" json:"plan_type,omitempty"` + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + TrialPeriodDays uint32 `protobuf:"varint,5,opt,name=trial_period_days,json=trialPeriodDays,proto3" json:"trial_period_days,omitempty"` + Default bool `protobuf:"varint,6,opt,name=default,proto3" json:"default,omitempty"` + Quotas *Quotas `protobuf:"bytes,7,opt,name=quotas,proto3" json:"quotas,omitempty"` + Public bool `protobuf:"varint,8,opt,name=public,proto3" json:"public,omitempty"` // TODO expose pricing information } -func (x *BillingIssue) Reset() { - *x = BillingIssue{} +func (x *BillingPlan) Reset() { + *x = BillingPlan{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[357] + mi := &file_rill_admin_v1_api_proto_msgTypes[363] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssue) String() string { +func (x *BillingPlan) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssue) ProtoMessage() {} +func (*BillingPlan) ProtoMessage() {} -func (x *BillingIssue) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[357] +func (x *BillingPlan) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[363] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23191,89 +23363,104 @@ func (x *BillingIssue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BillingIssue.ProtoReflect.Descriptor instead. -func (*BillingIssue) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{357} +// Deprecated: Use BillingPlan.ProtoReflect.Descriptor instead. +func (*BillingPlan) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{363} } -func (x *BillingIssue) GetOrg() string { +func (x *BillingPlan) GetId() string { if x != nil { - return x.Org + return x.Id } return "" } -func (x *BillingIssue) GetType() BillingIssueType { +func (x *BillingPlan) GetName() string { if x != nil { - return x.Type + return x.Name } - return BillingIssueType_BILLING_ISSUE_TYPE_UNSPECIFIED + return "" } -func (x *BillingIssue) GetLevel() BillingIssueLevel { +func (x *BillingPlan) GetPlanType() BillingPlanType { if x != nil { - return x.Level + return x.PlanType } - return BillingIssueLevel_BILLING_ISSUE_LEVEL_UNSPECIFIED + return BillingPlanType_BILLING_PLAN_TYPE_UNSPECIFIED } -func (x *BillingIssue) GetMetadata() *BillingIssueMetadata { +func (x *BillingPlan) GetDisplayName() string { if x != nil { - return x.Metadata + return x.DisplayName } - return nil + return "" } -func (x *BillingIssue) GetEventTime() *timestamppb.Timestamp { +func (x *BillingPlan) GetDescription() string { if x != nil { - return x.EventTime + return x.Description } - return nil + return "" } -func (x *BillingIssue) GetCreatedOn() *timestamppb.Timestamp { +func (x *BillingPlan) GetTrialPeriodDays() uint32 { if x != nil { - return x.CreatedOn + return x.TrialPeriodDays + } + return 0 +} + +func (x *BillingPlan) GetDefault() bool { + if x != nil { + return x.Default + } + return false +} + +func (x *BillingPlan) GetQuotas() *Quotas { + if x != nil { + return x.Quotas } return nil } -type BillingIssueMetadata struct { +func (x *BillingPlan) GetPublic() bool { + if x != nil { + return x.Public + } + return false +} + +type Quotas struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Types that are assignable to Metadata: - // - // *BillingIssueMetadata_OnTrial - // *BillingIssueMetadata_TrialEnded - // *BillingIssueMetadata_NoPaymentMethod - // *BillingIssueMetadata_NoBillableAddress - // *BillingIssueMetadata_PaymentFailed - // *BillingIssueMetadata_SubscriptionCancelled - // *BillingIssueMetadata_NeverSubscribed - // *BillingIssueMetadata_OnCreditTrial - // *BillingIssueMetadata_TrialCreditsDepleted - Metadata isBillingIssueMetadata_Metadata `protobuf_oneof:"metadata"` + Projects string `protobuf:"bytes,1,opt,name=projects,proto3" json:"projects,omitempty"` + Deployments string `protobuf:"bytes,2,opt,name=deployments,proto3" json:"deployments,omitempty"` + SlotsTotal string `protobuf:"bytes,3,opt,name=slots_total,json=slotsTotal,proto3" json:"slots_total,omitempty"` + SlotsPerDeployment string `protobuf:"bytes,4,opt,name=slots_per_deployment,json=slotsPerDeployment,proto3" json:"slots_per_deployment,omitempty"` + OutstandingInvites string `protobuf:"bytes,5,opt,name=outstanding_invites,json=outstandingInvites,proto3" json:"outstanding_invites,omitempty"` + StorageLimitBytesPerDeployment string `protobuf:"bytes,6,opt,name=storage_limit_bytes_per_deployment,json=storageLimitBytesPerDeployment,proto3" json:"storage_limit_bytes_per_deployment,omitempty"` } -func (x *BillingIssueMetadata) Reset() { - *x = BillingIssueMetadata{} +func (x *Quotas) Reset() { + *x = Quotas{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[358] + mi := &file_rill_admin_v1_api_proto_msgTypes[364] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssueMetadata) String() string { +func (x *Quotas) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssueMetadata) ProtoMessage() {} +func (*Quotas) ProtoMessage() {} -func (x *BillingIssueMetadata) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[358] +func (x *Quotas) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[364] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23284,165 +23471,173 @@ func (x *BillingIssueMetadata) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BillingIssueMetadata.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadata) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{358} +// Deprecated: Use Quotas.ProtoReflect.Descriptor instead. +func (*Quotas) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{364} } -func (m *BillingIssueMetadata) GetMetadata() isBillingIssueMetadata_Metadata { - if m != nil { - return m.Metadata +func (x *Quotas) GetProjects() string { + if x != nil { + return x.Projects } - return nil + return "" } -func (x *BillingIssueMetadata) GetOnTrial() *BillingIssueMetadataOnTrial { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_OnTrial); ok { - return x.OnTrial +func (x *Quotas) GetDeployments() string { + if x != nil { + return x.Deployments } - return nil + return "" } -func (x *BillingIssueMetadata) GetTrialEnded() *BillingIssueMetadataTrialEnded { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_TrialEnded); ok { - return x.TrialEnded +func (x *Quotas) GetSlotsTotal() string { + if x != nil { + return x.SlotsTotal } - return nil + return "" } -func (x *BillingIssueMetadata) GetNoPaymentMethod() *BillingIssueMetadataNoPaymentMethod { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_NoPaymentMethod); ok { - return x.NoPaymentMethod +func (x *Quotas) GetSlotsPerDeployment() string { + if x != nil { + return x.SlotsPerDeployment } - return nil + return "" } -func (x *BillingIssueMetadata) GetNoBillableAddress() *BillingIssueMetadataNoBillableAddress { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_NoBillableAddress); ok { - return x.NoBillableAddress +func (x *Quotas) GetOutstandingInvites() string { + if x != nil { + return x.OutstandingInvites } - return nil + return "" } -func (x *BillingIssueMetadata) GetPaymentFailed() *BillingIssueMetadataPaymentFailed { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_PaymentFailed); ok { - return x.PaymentFailed +func (x *Quotas) GetStorageLimitBytesPerDeployment() string { + if x != nil { + return x.StorageLimitBytesPerDeployment } - return nil + return "" } -func (x *BillingIssueMetadata) GetSubscriptionCancelled() *BillingIssueMetadataSubscriptionCancelled { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_SubscriptionCancelled); ok { - return x.SubscriptionCancelled - } - return nil -} - -func (x *BillingIssueMetadata) GetNeverSubscribed() *BillingIssueMetadataNeverSubscribed { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_NeverSubscribed); ok { - return x.NeverSubscribed - } - return nil -} +type Usergroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *BillingIssueMetadata) GetOnCreditTrial() *BillingIssueMetadataOnCreditTrial { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_OnCreditTrial); ok { - return x.OnCreditTrial - } - return nil + GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + GroupDescription string `protobuf:"bytes,3,opt,name=group_description,json=groupDescription,proto3" json:"group_description,omitempty"` + Managed bool `protobuf:"varint,6,opt,name=managed,proto3" json:"managed,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` } -func (x *BillingIssueMetadata) GetTrialCreditsDepleted() *BillingIssueMetadataTrialCreditsDepleted { - if x, ok := x.GetMetadata().(*BillingIssueMetadata_TrialCreditsDepleted); ok { - return x.TrialCreditsDepleted +func (x *Usergroup) Reset() { + *x = Usergroup{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[365] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type isBillingIssueMetadata_Metadata interface { - isBillingIssueMetadata_Metadata() +func (x *Usergroup) String() string { + return protoimpl.X.MessageStringOf(x) } -type BillingIssueMetadata_OnTrial struct { - OnTrial *BillingIssueMetadataOnTrial `protobuf:"bytes,1,opt,name=on_trial,json=onTrial,proto3,oneof"` -} +func (*Usergroup) ProtoMessage() {} -type BillingIssueMetadata_TrialEnded struct { - TrialEnded *BillingIssueMetadataTrialEnded `protobuf:"bytes,2,opt,name=trial_ended,json=trialEnded,proto3,oneof"` +func (x *Usergroup) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[365] + 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) } -type BillingIssueMetadata_NoPaymentMethod struct { - NoPaymentMethod *BillingIssueMetadataNoPaymentMethod `protobuf:"bytes,3,opt,name=no_payment_method,json=noPaymentMethod,proto3,oneof"` +// Deprecated: Use Usergroup.ProtoReflect.Descriptor instead. +func (*Usergroup) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{365} } -type BillingIssueMetadata_NoBillableAddress struct { - NoBillableAddress *BillingIssueMetadataNoBillableAddress `protobuf:"bytes,4,opt,name=no_billable_address,json=noBillableAddress,proto3,oneof"` +func (x *Usergroup) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" } -type BillingIssueMetadata_PaymentFailed struct { - PaymentFailed *BillingIssueMetadataPaymentFailed `protobuf:"bytes,5,opt,name=payment_failed,json=paymentFailed,proto3,oneof"` +func (x *Usergroup) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" } -type BillingIssueMetadata_SubscriptionCancelled struct { - SubscriptionCancelled *BillingIssueMetadataSubscriptionCancelled `protobuf:"bytes,6,opt,name=subscription_cancelled,json=subscriptionCancelled,proto3,oneof"` +func (x *Usergroup) GetGroupDescription() string { + if x != nil { + return x.GroupDescription + } + return "" } -type BillingIssueMetadata_NeverSubscribed struct { - NeverSubscribed *BillingIssueMetadataNeverSubscribed `protobuf:"bytes,7,opt,name=never_subscribed,json=neverSubscribed,proto3,oneof"` +func (x *Usergroup) GetManaged() bool { + if x != nil { + return x.Managed + } + return false } -type BillingIssueMetadata_OnCreditTrial struct { - OnCreditTrial *BillingIssueMetadataOnCreditTrial `protobuf:"bytes,8,opt,name=on_credit_trial,json=onCreditTrial,proto3,oneof"` +func (x *Usergroup) GetCreatedOn() *timestamppb.Timestamp { + if x != nil { + return x.CreatedOn + } + return nil } -type BillingIssueMetadata_TrialCreditsDepleted struct { - TrialCreditsDepleted *BillingIssueMetadataTrialCreditsDepleted `protobuf:"bytes,9,opt,name=trial_credits_depleted,json=trialCreditsDepleted,proto3,oneof"` +func (x *Usergroup) GetUpdatedOn() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedOn + } + return nil } -func (*BillingIssueMetadata_OnTrial) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_TrialEnded) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_NoPaymentMethod) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_NoBillableAddress) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_PaymentFailed) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_SubscriptionCancelled) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_NeverSubscribed) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_OnCreditTrial) isBillingIssueMetadata_Metadata() {} - -func (*BillingIssueMetadata_TrialCreditsDepleted) isBillingIssueMetadata_Metadata() {} - -type BillingIssueMetadataOnTrial struct { +type MemberUsergroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - EndDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` - GracePeriodEndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=grace_period_end_date,json=gracePeriodEndDate,proto3" json:"grace_period_end_date,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + GroupManaged bool `protobuf:"varint,6,opt,name=group_managed,json=groupManaged,proto3" json:"group_managed,omitempty"` + RoleName string `protobuf:"bytes,3,opt,name=role_name,json=roleName,proto3" json:"role_name,omitempty"` + UsersCount uint32 `protobuf:"varint,7,opt,name=users_count,json=usersCount,proto3" json:"users_count,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` + UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + RestrictResources bool `protobuf:"varint,8,opt,name=restrict_resources,json=restrictResources,proto3" json:"restrict_resources,omitempty"` + Resources []*ResourceName `protobuf:"bytes,9,rep,name=resources,proto3" json:"resources,omitempty"` } -func (x *BillingIssueMetadataOnTrial) Reset() { - *x = BillingIssueMetadataOnTrial{} +func (x *MemberUsergroup) Reset() { + *x = MemberUsergroup{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[359] + mi := &file_rill_admin_v1_api_proto_msgTypes[366] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssueMetadataOnTrial) String() string { +func (x *MemberUsergroup) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssueMetadataOnTrial) ProtoMessage() {} +func (*MemberUsergroup) ProtoMessage() {} -func (x *BillingIssueMetadataOnTrial) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[359] +func (x *MemberUsergroup) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[366] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23453,103 +23648,104 @@ func (x *BillingIssueMetadataOnTrial) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BillingIssueMetadataOnTrial.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataOnTrial) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{359} +// Deprecated: Use MemberUsergroup.ProtoReflect.Descriptor instead. +func (*MemberUsergroup) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{366} } -func (x *BillingIssueMetadataOnTrial) GetEndDate() *timestamppb.Timestamp { +func (x *MemberUsergroup) GetGroupId() string { if x != nil { - return x.EndDate + return x.GroupId } - return nil + return "" } -func (x *BillingIssueMetadataOnTrial) GetGracePeriodEndDate() *timestamppb.Timestamp { +func (x *MemberUsergroup) GetGroupName() string { if x != nil { - return x.GracePeriodEndDate + return x.GroupName } - return nil + return "" } -type BillingIssueMetadataTrialEnded struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EndDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` - GracePeriodEndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=grace_period_end_date,json=gracePeriodEndDate,proto3" json:"grace_period_end_date,omitempty"` +func (x *MemberUsergroup) GetGroupManaged() bool { + if x != nil { + return x.GroupManaged + } + return false } -func (x *BillingIssueMetadataTrialEnded) Reset() { - *x = BillingIssueMetadataTrialEnded{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[360] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *MemberUsergroup) GetRoleName() string { + if x != nil { + return x.RoleName } + return "" } -func (x *BillingIssueMetadataTrialEnded) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *MemberUsergroup) GetUsersCount() uint32 { + if x != nil { + return x.UsersCount + } + return 0 } -func (*BillingIssueMetadataTrialEnded) ProtoMessage() {} - -func (x *BillingIssueMetadataTrialEnded) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[360] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *MemberUsergroup) GetCreatedOn() *timestamppb.Timestamp { + if x != nil { + return x.CreatedOn } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BillingIssueMetadataTrialEnded.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataTrialEnded) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{360} +func (x *MemberUsergroup) GetUpdatedOn() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedOn + } + return nil } -func (x *BillingIssueMetadataTrialEnded) GetEndDate() *timestamppb.Timestamp { +func (x *MemberUsergroup) GetRestrictResources() bool { if x != nil { - return x.EndDate + return x.RestrictResources } - return nil + return false } -func (x *BillingIssueMetadataTrialEnded) GetGracePeriodEndDate() *timestamppb.Timestamp { +func (x *MemberUsergroup) GetResources() []*ResourceName { if x != nil { - return x.GracePeriodEndDate + return x.Resources } return nil } -type BillingIssueMetadataNoPaymentMethod struct { +type BillingIssue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Type BillingIssueType `protobuf:"varint,2,opt,name=type,proto3,enum=rill.admin.v1.BillingIssueType" json:"type,omitempty"` + Level BillingIssueLevel `protobuf:"varint,3,opt,name=level,proto3,enum=rill.admin.v1.BillingIssueLevel" json:"level,omitempty"` + Metadata *BillingIssueMetadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` + EventTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=event_time,json=eventTime,proto3" json:"event_time,omitempty"` + CreatedOn *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` } -func (x *BillingIssueMetadataNoPaymentMethod) Reset() { - *x = BillingIssueMetadataNoPaymentMethod{} +func (x *BillingIssue) Reset() { + *x = BillingIssue{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[361] + mi := &file_rill_admin_v1_api_proto_msgTypes[367] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssueMetadataNoPaymentMethod) String() string { +func (x *BillingIssue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssueMetadataNoPaymentMethod) ProtoMessage() {} +func (*BillingIssue) ProtoMessage() {} -func (x *BillingIssueMetadataNoPaymentMethod) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[361] +func (x *BillingIssue) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[367] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23560,128 +23756,89 @@ func (x *BillingIssueMetadataNoPaymentMethod) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use BillingIssueMetadataNoPaymentMethod.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataNoPaymentMethod) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{361} -} - -type BillingIssueMetadataNoBillableAddress struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// Deprecated: Use BillingIssue.ProtoReflect.Descriptor instead. +func (*BillingIssue) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{367} } -func (x *BillingIssueMetadataNoBillableAddress) Reset() { - *x = BillingIssueMetadataNoBillableAddress{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[362] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BillingIssue) GetOrg() string { + if x != nil { + return x.Org } + return "" } -func (x *BillingIssueMetadataNoBillableAddress) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BillingIssueMetadataNoBillableAddress) ProtoMessage() {} - -func (x *BillingIssueMetadataNoBillableAddress) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[362] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BillingIssue) GetType() BillingIssueType { + if x != nil { + return x.Type } - return mi.MessageOf(x) -} - -// Deprecated: Use BillingIssueMetadataNoBillableAddress.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataNoBillableAddress) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{362} -} - -type BillingIssueMetadataPaymentFailed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Invoices []*BillingIssueMetadataPaymentFailedMeta `protobuf:"bytes,1,rep,name=invoices,proto3" json:"invoices,omitempty"` + return BillingIssueType_BILLING_ISSUE_TYPE_UNSPECIFIED } -func (x *BillingIssueMetadataPaymentFailed) Reset() { - *x = BillingIssueMetadataPaymentFailed{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[363] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BillingIssue) GetLevel() BillingIssueLevel { + if x != nil { + return x.Level } + return BillingIssueLevel_BILLING_ISSUE_LEVEL_UNSPECIFIED } -func (x *BillingIssueMetadataPaymentFailed) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*BillingIssueMetadataPaymentFailed) ProtoMessage() {} - -func (x *BillingIssueMetadataPaymentFailed) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[363] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *BillingIssue) GetMetadata() *BillingIssueMetadata { + if x != nil { + return x.Metadata } - return mi.MessageOf(x) + return nil } -// Deprecated: Use BillingIssueMetadataPaymentFailed.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataPaymentFailed) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{363} +func (x *BillingIssue) GetEventTime() *timestamppb.Timestamp { + if x != nil { + return x.EventTime + } + return nil } -func (x *BillingIssueMetadataPaymentFailed) GetInvoices() []*BillingIssueMetadataPaymentFailedMeta { +func (x *BillingIssue) GetCreatedOn() *timestamppb.Timestamp { if x != nil { - return x.Invoices + return x.CreatedOn } return nil } -type BillingIssueMetadataPaymentFailedMeta struct { +type BillingIssueMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - InvoiceId string `protobuf:"bytes,1,opt,name=invoice_id,json=invoiceId,proto3" json:"invoice_id,omitempty"` - InvoiceNumber string `protobuf:"bytes,2,opt,name=invoice_number,json=invoiceNumber,proto3" json:"invoice_number,omitempty"` - InvoiceUrl string `protobuf:"bytes,3,opt,name=invoice_url,json=invoiceUrl,proto3" json:"invoice_url,omitempty"` - AmountDue string `protobuf:"bytes,4,opt,name=amount_due,json=amountDue,proto3" json:"amount_due,omitempty"` - Currency string `protobuf:"bytes,5,opt,name=currency,proto3" json:"currency,omitempty"` - DueDate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=due_date,json=dueDate,proto3" json:"due_date,omitempty"` - FailedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=failed_on,json=failedOn,proto3" json:"failed_on,omitempty"` - GracePeriodEndDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=grace_period_end_date,json=gracePeriodEndDate,proto3" json:"grace_period_end_date,omitempty"` + // Types that are assignable to Metadata: + // + // *BillingIssueMetadata_OnTrial + // *BillingIssueMetadata_TrialEnded + // *BillingIssueMetadata_NoPaymentMethod + // *BillingIssueMetadata_NoBillableAddress + // *BillingIssueMetadata_PaymentFailed + // *BillingIssueMetadata_SubscriptionCancelled + // *BillingIssueMetadata_NeverSubscribed + // *BillingIssueMetadata_OnCreditTrial + // *BillingIssueMetadata_TrialCreditsDepleted + Metadata isBillingIssueMetadata_Metadata `protobuf_oneof:"metadata"` } -func (x *BillingIssueMetadataPaymentFailedMeta) Reset() { - *x = BillingIssueMetadataPaymentFailedMeta{} +func (x *BillingIssueMetadata) Reset() { + *x = BillingIssueMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[364] + mi := &file_rill_admin_v1_api_proto_msgTypes[368] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssueMetadataPaymentFailedMeta) String() string { +func (x *BillingIssueMetadata) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssueMetadataPaymentFailedMeta) ProtoMessage() {} +func (*BillingIssueMetadata) ProtoMessage() {} -func (x *BillingIssueMetadataPaymentFailedMeta) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[364] +func (x *BillingIssueMetadata) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[368] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23692,180 +23849,165 @@ func (x *BillingIssueMetadataPaymentFailedMeta) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use BillingIssueMetadataPaymentFailedMeta.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataPaymentFailedMeta) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{364} +// Deprecated: Use BillingIssueMetadata.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadata) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{368} } -func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceId() string { - if x != nil { - return x.InvoiceId +func (m *BillingIssueMetadata) GetMetadata() isBillingIssueMetadata_Metadata { + if m != nil { + return m.Metadata } - return "" + return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceNumber() string { - if x != nil { - return x.InvoiceNumber +func (x *BillingIssueMetadata) GetOnTrial() *BillingIssueMetadataOnTrial { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_OnTrial); ok { + return x.OnTrial } - return "" + return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceUrl() string { - if x != nil { - return x.InvoiceUrl +func (x *BillingIssueMetadata) GetTrialEnded() *BillingIssueMetadataTrialEnded { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_TrialEnded); ok { + return x.TrialEnded } - return "" + return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetAmountDue() string { - if x != nil { - return x.AmountDue +func (x *BillingIssueMetadata) GetNoPaymentMethod() *BillingIssueMetadataNoPaymentMethod { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_NoPaymentMethod); ok { + return x.NoPaymentMethod } - return "" + return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetCurrency() string { - if x != nil { - return x.Currency +func (x *BillingIssueMetadata) GetNoBillableAddress() *BillingIssueMetadataNoBillableAddress { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_NoBillableAddress); ok { + return x.NoBillableAddress } - return "" + return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetDueDate() *timestamppb.Timestamp { - if x != nil { - return x.DueDate +func (x *BillingIssueMetadata) GetPaymentFailed() *BillingIssueMetadataPaymentFailed { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_PaymentFailed); ok { + return x.PaymentFailed } return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetFailedOn() *timestamppb.Timestamp { - if x != nil { - return x.FailedOn +func (x *BillingIssueMetadata) GetSubscriptionCancelled() *BillingIssueMetadataSubscriptionCancelled { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_SubscriptionCancelled); ok { + return x.SubscriptionCancelled } return nil } -func (x *BillingIssueMetadataPaymentFailedMeta) GetGracePeriodEndDate() *timestamppb.Timestamp { - if x != nil { - return x.GracePeriodEndDate +func (x *BillingIssueMetadata) GetNeverSubscribed() *BillingIssueMetadataNeverSubscribed { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_NeverSubscribed); ok { + return x.NeverSubscribed } return nil } -type BillingIssueMetadataSubscriptionCancelled struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - EndDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` +func (x *BillingIssueMetadata) GetOnCreditTrial() *BillingIssueMetadataOnCreditTrial { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_OnCreditTrial); ok { + return x.OnCreditTrial + } + return nil } -func (x *BillingIssueMetadataSubscriptionCancelled) Reset() { - *x = BillingIssueMetadataSubscriptionCancelled{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[365] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *BillingIssueMetadata) GetTrialCreditsDepleted() *BillingIssueMetadataTrialCreditsDepleted { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_TrialCreditsDepleted); ok { + return x.TrialCreditsDepleted } + return nil } -func (x *BillingIssueMetadataSubscriptionCancelled) String() string { - return protoimpl.X.MessageStringOf(x) +type isBillingIssueMetadata_Metadata interface { + isBillingIssueMetadata_Metadata() } -func (*BillingIssueMetadataSubscriptionCancelled) ProtoMessage() {} +type BillingIssueMetadata_OnTrial struct { + OnTrial *BillingIssueMetadataOnTrial `protobuf:"bytes,1,opt,name=on_trial,json=onTrial,proto3,oneof"` +} -func (x *BillingIssueMetadataSubscriptionCancelled) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[365] - 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) +type BillingIssueMetadata_TrialEnded struct { + TrialEnded *BillingIssueMetadataTrialEnded `protobuf:"bytes,2,opt,name=trial_ended,json=trialEnded,proto3,oneof"` } -// Deprecated: Use BillingIssueMetadataSubscriptionCancelled.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataSubscriptionCancelled) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{365} +type BillingIssueMetadata_NoPaymentMethod struct { + NoPaymentMethod *BillingIssueMetadataNoPaymentMethod `protobuf:"bytes,3,opt,name=no_payment_method,json=noPaymentMethod,proto3,oneof"` } -func (x *BillingIssueMetadataSubscriptionCancelled) GetEndDate() *timestamppb.Timestamp { - if x != nil { - return x.EndDate - } - return nil +type BillingIssueMetadata_NoBillableAddress struct { + NoBillableAddress *BillingIssueMetadataNoBillableAddress `protobuf:"bytes,4,opt,name=no_billable_address,json=noBillableAddress,proto3,oneof"` } -type BillingIssueMetadataNeverSubscribed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +type BillingIssueMetadata_PaymentFailed struct { + PaymentFailed *BillingIssueMetadataPaymentFailed `protobuf:"bytes,5,opt,name=payment_failed,json=paymentFailed,proto3,oneof"` } -func (x *BillingIssueMetadataNeverSubscribed) Reset() { - *x = BillingIssueMetadataNeverSubscribed{} - if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[366] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +type BillingIssueMetadata_SubscriptionCancelled struct { + SubscriptionCancelled *BillingIssueMetadataSubscriptionCancelled `protobuf:"bytes,6,opt,name=subscription_cancelled,json=subscriptionCancelled,proto3,oneof"` } -func (x *BillingIssueMetadataNeverSubscribed) String() string { - return protoimpl.X.MessageStringOf(x) +type BillingIssueMetadata_NeverSubscribed struct { + NeverSubscribed *BillingIssueMetadataNeverSubscribed `protobuf:"bytes,7,opt,name=never_subscribed,json=neverSubscribed,proto3,oneof"` } -func (*BillingIssueMetadataNeverSubscribed) ProtoMessage() {} - -func (x *BillingIssueMetadataNeverSubscribed) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[366] - 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) +type BillingIssueMetadata_OnCreditTrial struct { + OnCreditTrial *BillingIssueMetadataOnCreditTrial `protobuf:"bytes,8,opt,name=on_credit_trial,json=onCreditTrial,proto3,oneof"` } -// Deprecated: Use BillingIssueMetadataNeverSubscribed.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataNeverSubscribed) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{366} +type BillingIssueMetadata_TrialCreditsDepleted struct { + TrialCreditsDepleted *BillingIssueMetadataTrialCreditsDepleted `protobuf:"bytes,9,opt,name=trial_credits_depleted,json=trialCreditsDepleted,proto3,oneof"` } -type BillingIssueMetadataOnCreditTrial struct { +func (*BillingIssueMetadata_OnTrial) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_TrialEnded) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_NoPaymentMethod) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_NoBillableAddress) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_PaymentFailed) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_SubscriptionCancelled) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_NeverSubscribed) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_OnCreditTrial) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_TrialCreditsDepleted) isBillingIssueMetadata_Metadata() {} + +type BillingIssueMetadataOnTrial struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"` - PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` - CreditAllocation float64 `protobuf:"fixed64,3,opt,name=credit_allocation,json=creditAllocation,proto3" json:"credit_allocation,omitempty"` - LowCredit bool `protobuf:"varint,4,opt,name=low_credit,json=lowCredit,proto3" json:"low_credit,omitempty"` + EndDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + GracePeriodEndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=grace_period_end_date,json=gracePeriodEndDate,proto3" json:"grace_period_end_date,omitempty"` } -func (x *BillingIssueMetadataOnCreditTrial) Reset() { - *x = BillingIssueMetadataOnCreditTrial{} +func (x *BillingIssueMetadataOnTrial) Reset() { + *x = BillingIssueMetadataOnTrial{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[367] + mi := &file_rill_admin_v1_api_proto_msgTypes[369] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssueMetadataOnCreditTrial) String() string { +func (x *BillingIssueMetadataOnTrial) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssueMetadataOnCreditTrial) ProtoMessage() {} +func (*BillingIssueMetadataOnTrial) ProtoMessage() {} -func (x *BillingIssueMetadataOnCreditTrial) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[367] +func (x *BillingIssueMetadataOnTrial) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[369] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23876,66 +24018,51 @@ func (x *BillingIssueMetadataOnCreditTrial) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use BillingIssueMetadataOnCreditTrial.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataOnCreditTrial) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{367} -} - -func (x *BillingIssueMetadataOnCreditTrial) GetSubscriptionId() string { - if x != nil { - return x.SubscriptionId - } - return "" -} - -func (x *BillingIssueMetadataOnCreditTrial) GetPlanId() string { - if x != nil { - return x.PlanId - } - return "" +// Deprecated: Use BillingIssueMetadataOnTrial.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataOnTrial) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{369} } -func (x *BillingIssueMetadataOnCreditTrial) GetCreditAllocation() float64 { +func (x *BillingIssueMetadataOnTrial) GetEndDate() *timestamppb.Timestamp { if x != nil { - return x.CreditAllocation + return x.EndDate } - return 0 + return nil } -func (x *BillingIssueMetadataOnCreditTrial) GetLowCredit() bool { +func (x *BillingIssueMetadataOnTrial) GetGracePeriodEndDate() *timestamppb.Timestamp { if x != nil { - return x.LowCredit + return x.GracePeriodEndDate } - return false + return nil } -type BillingIssueMetadataTrialCreditsDepleted struct { +type BillingIssueMetadataTrialEnded struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"` - PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` - DepletedOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=depleted_on,json=depletedOn,proto3" json:"depleted_on,omitempty"` + EndDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` + GracePeriodEndDate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=grace_period_end_date,json=gracePeriodEndDate,proto3" json:"grace_period_end_date,omitempty"` } -func (x *BillingIssueMetadataTrialCreditsDepleted) Reset() { - *x = BillingIssueMetadataTrialCreditsDepleted{} +func (x *BillingIssueMetadataTrialEnded) Reset() { + *x = BillingIssueMetadataTrialEnded{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[368] + mi := &file_rill_admin_v1_api_proto_msgTypes[370] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BillingIssueMetadataTrialCreditsDepleted) String() string { +func (x *BillingIssueMetadataTrialEnded) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BillingIssueMetadataTrialCreditsDepleted) ProtoMessage() {} +func (*BillingIssueMetadataTrialEnded) ProtoMessage() {} -func (x *BillingIssueMetadataTrialCreditsDepleted) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[368] +func (x *BillingIssueMetadataTrialEnded) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[370] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23946,61 +24073,48 @@ func (x *BillingIssueMetadataTrialCreditsDepleted) ProtoReflect() protoreflect.M return mi.MessageOf(x) } -// Deprecated: Use BillingIssueMetadataTrialCreditsDepleted.ProtoReflect.Descriptor instead. -func (*BillingIssueMetadataTrialCreditsDepleted) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{368} -} - -func (x *BillingIssueMetadataTrialCreditsDepleted) GetSubscriptionId() string { - if x != nil { - return x.SubscriptionId - } - return "" +// Deprecated: Use BillingIssueMetadataTrialEnded.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataTrialEnded) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{370} } -func (x *BillingIssueMetadataTrialCreditsDepleted) GetPlanId() string { +func (x *BillingIssueMetadataTrialEnded) GetEndDate() *timestamppb.Timestamp { if x != nil { - return x.PlanId + return x.EndDate } - return "" + return nil } -func (x *BillingIssueMetadataTrialCreditsDepleted) GetDepletedOn() *timestamppb.Timestamp { +func (x *BillingIssueMetadataTrialEnded) GetGracePeriodEndDate() *timestamppb.Timestamp { if x != nil { - return x.DepletedOn + return x.GracePeriodEndDate } return nil } -type ListGithubUserReposResponse_Repo struct { +type BillingIssueMetadataNoPaymentMethod struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` - Remote string `protobuf:"bytes,4,opt,name=remote,proto3" json:"remote,omitempty"` - DefaultBranch string `protobuf:"bytes,5,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"` } -func (x *ListGithubUserReposResponse_Repo) Reset() { - *x = ListGithubUserReposResponse_Repo{} +func (x *BillingIssueMetadataNoPaymentMethod) Reset() { + *x = BillingIssueMetadataNoPaymentMethod{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[381] + mi := &file_rill_admin_v1_api_proto_msgTypes[371] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ListGithubUserReposResponse_Repo) String() string { +func (x *BillingIssueMetadataNoPaymentMethod) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ListGithubUserReposResponse_Repo) ProtoMessage() {} +func (*BillingIssueMetadataNoPaymentMethod) ProtoMessage() {} -func (x *ListGithubUserReposResponse_Repo) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[381] +func (x *BillingIssueMetadataNoPaymentMethod) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[371] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24011,76 +24125,74 @@ func (x *ListGithubUserReposResponse_Repo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ListGithubUserReposResponse_Repo.ProtoReflect.Descriptor instead. -func (*ListGithubUserReposResponse_Repo) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{238, 0} +// Deprecated: Use BillingIssueMetadataNoPaymentMethod.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataNoPaymentMethod) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{371} } -func (x *ListGithubUserReposResponse_Repo) GetName() string { - if x != nil { - return x.Name - } - return "" +type BillingIssueMetadataNoBillableAddress struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *ListGithubUserReposResponse_Repo) GetOwner() string { - if x != nil { - return x.Owner +func (x *BillingIssueMetadataNoBillableAddress) Reset() { + *x = BillingIssueMetadataNoBillableAddress{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[372] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *ListGithubUserReposResponse_Repo) GetDescription() string { - if x != nil { - return x.Description - } - return "" +func (x *BillingIssueMetadataNoBillableAddress) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *ListGithubUserReposResponse_Repo) GetRemote() string { - if x != nil { - return x.Remote +func (*BillingIssueMetadataNoBillableAddress) ProtoMessage() {} + +func (x *BillingIssueMetadataNoBillableAddress) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[372] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *ListGithubUserReposResponse_Repo) GetDefaultBranch() string { - if x != nil { - return x.DefaultBranch - } - return "" +// Deprecated: Use BillingIssueMetadataNoBillableAddress.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataNoBillableAddress) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{372} } -type GetReportMetaResponse_DeliveryMeta struct { +type BillingIssueMetadataPaymentFailed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OpenUrl string `protobuf:"bytes,1,opt,name=open_url,json=openUrl,proto3" json:"open_url,omitempty"` - ExportUrl string `protobuf:"bytes,2,opt,name=export_url,json=exportUrl,proto3" json:"export_url,omitempty"` - EditUrl string `protobuf:"bytes,3,opt,name=edit_url,json=editUrl,proto3" json:"edit_url,omitempty"` - UnsubscribeUrl string `protobuf:"bytes,4,opt,name=unsubscribe_url,json=unsubscribeUrl,proto3" json:"unsubscribe_url,omitempty"` - UserId string `protobuf:"bytes,5,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` - UserAttrs *structpb.Struct `protobuf:"bytes,6,opt,name=user_attrs,json=userAttrs,proto3" json:"user_attrs,omitempty"` // user attributes of intended recipient, will be empty for creator mode and for non Rill users + Invoices []*BillingIssueMetadataPaymentFailedMeta `protobuf:"bytes,1,rep,name=invoices,proto3" json:"invoices,omitempty"` } -func (x *GetReportMetaResponse_DeliveryMeta) Reset() { - *x = GetReportMetaResponse_DeliveryMeta{} +func (x *BillingIssueMetadataPaymentFailed) Reset() { + *x = BillingIssueMetadataPaymentFailed{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[382] + mi := &file_rill_admin_v1_api_proto_msgTypes[373] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetReportMetaResponse_DeliveryMeta) String() string { +func (x *BillingIssueMetadataPaymentFailed) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetReportMetaResponse_DeliveryMeta) ProtoMessage() {} +func (*BillingIssueMetadataPaymentFailed) ProtoMessage() {} -func (x *GetReportMetaResponse_DeliveryMeta) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[382] +func (x *BillingIssueMetadataPaymentFailed) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[373] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24091,80 +24203,146 @@ func (x *GetReportMetaResponse_DeliveryMeta) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GetReportMetaResponse_DeliveryMeta.ProtoReflect.Descriptor instead. -func (*GetReportMetaResponse_DeliveryMeta) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{270, 0} +// Deprecated: Use BillingIssueMetadataPaymentFailed.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataPaymentFailed) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{373} } -func (x *GetReportMetaResponse_DeliveryMeta) GetOpenUrl() string { +func (x *BillingIssueMetadataPaymentFailed) GetInvoices() []*BillingIssueMetadataPaymentFailedMeta { if x != nil { - return x.OpenUrl + return x.Invoices } - return "" + return nil } -func (x *GetReportMetaResponse_DeliveryMeta) GetExportUrl() string { - if x != nil { - return x.ExportUrl - } - return "" +type BillingIssueMetadataPaymentFailedMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InvoiceId string `protobuf:"bytes,1,opt,name=invoice_id,json=invoiceId,proto3" json:"invoice_id,omitempty"` + InvoiceNumber string `protobuf:"bytes,2,opt,name=invoice_number,json=invoiceNumber,proto3" json:"invoice_number,omitempty"` + InvoiceUrl string `protobuf:"bytes,3,opt,name=invoice_url,json=invoiceUrl,proto3" json:"invoice_url,omitempty"` + AmountDue string `protobuf:"bytes,4,opt,name=amount_due,json=amountDue,proto3" json:"amount_due,omitempty"` + Currency string `protobuf:"bytes,5,opt,name=currency,proto3" json:"currency,omitempty"` + DueDate *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=due_date,json=dueDate,proto3" json:"due_date,omitempty"` + FailedOn *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=failed_on,json=failedOn,proto3" json:"failed_on,omitempty"` + GracePeriodEndDate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=grace_period_end_date,json=gracePeriodEndDate,proto3" json:"grace_period_end_date,omitempty"` } -func (x *GetReportMetaResponse_DeliveryMeta) GetEditUrl() string { - if x != nil { - return x.EditUrl +func (x *BillingIssueMetadataPaymentFailedMeta) Reset() { + *x = BillingIssueMetadataPaymentFailedMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[374] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataPaymentFailedMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataPaymentFailedMeta) ProtoMessage() {} + +func (x *BillingIssueMetadataPaymentFailedMeta) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[374] + 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 BillingIssueMetadataPaymentFailedMeta.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataPaymentFailedMeta) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{374} +} + +func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceId() string { + if x != nil { + return x.InvoiceId } return "" } -func (x *GetReportMetaResponse_DeliveryMeta) GetUnsubscribeUrl() string { +func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceNumber() string { if x != nil { - return x.UnsubscribeUrl + return x.InvoiceNumber } return "" } -func (x *GetReportMetaResponse_DeliveryMeta) GetUserId() string { +func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceUrl() string { if x != nil { - return x.UserId + return x.InvoiceUrl } return "" } -func (x *GetReportMetaResponse_DeliveryMeta) GetUserAttrs() *structpb.Struct { +func (x *BillingIssueMetadataPaymentFailedMeta) GetAmountDue() string { if x != nil { - return x.UserAttrs + return x.AmountDue + } + return "" +} + +func (x *BillingIssueMetadataPaymentFailedMeta) GetCurrency() string { + if x != nil { + return x.Currency + } + return "" +} + +func (x *BillingIssueMetadataPaymentFailedMeta) GetDueDate() *timestamppb.Timestamp { + if x != nil { + return x.DueDate } return nil } -type GetAlertMetaResponse_URLs struct { +func (x *BillingIssueMetadataPaymentFailedMeta) GetFailedOn() *timestamppb.Timestamp { + if x != nil { + return x.FailedOn + } + return nil +} + +func (x *BillingIssueMetadataPaymentFailedMeta) GetGracePeriodEndDate() *timestamppb.Timestamp { + if x != nil { + return x.GracePeriodEndDate + } + return nil +} + +type BillingIssueMetadataSubscriptionCancelled struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OpenUrl string `protobuf:"bytes,1,opt,name=open_url,json=openUrl,proto3" json:"open_url,omitempty"` - EditUrl string `protobuf:"bytes,2,opt,name=edit_url,json=editUrl,proto3" json:"edit_url,omitempty"` - UnsubscribeUrl string `protobuf:"bytes,3,opt,name=unsubscribe_url,json=unsubscribeUrl,proto3" json:"unsubscribe_url,omitempty"` + EndDate *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"` } -func (x *GetAlertMetaResponse_URLs) Reset() { - *x = GetAlertMetaResponse_URLs{} +func (x *BillingIssueMetadataSubscriptionCancelled) Reset() { + *x = BillingIssueMetadataSubscriptionCancelled{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[385] + mi := &file_rill_admin_v1_api_proto_msgTypes[375] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetAlertMetaResponse_URLs) String() string { +func (x *BillingIssueMetadataSubscriptionCancelled) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetAlertMetaResponse_URLs) ProtoMessage() {} +func (*BillingIssueMetadataSubscriptionCancelled) ProtoMessage() {} -func (x *GetAlertMetaResponse_URLs) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[385] +func (x *BillingIssueMetadataSubscriptionCancelled) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[375] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -24175,43 +24353,430 @@ func (x *GetAlertMetaResponse_URLs) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetAlertMetaResponse_URLs.ProtoReflect.Descriptor instead. -func (*GetAlertMetaResponse_URLs) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{272, 0} +// Deprecated: Use BillingIssueMetadataSubscriptionCancelled.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataSubscriptionCancelled) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{375} } -func (x *GetAlertMetaResponse_URLs) GetOpenUrl() string { +func (x *BillingIssueMetadataSubscriptionCancelled) GetEndDate() *timestamppb.Timestamp { if x != nil { - return x.OpenUrl + return x.EndDate + } + return nil +} + +type BillingIssueMetadataNeverSubscribed struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BillingIssueMetadataNeverSubscribed) Reset() { + *x = BillingIssueMetadataNeverSubscribed{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[376] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataNeverSubscribed) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataNeverSubscribed) ProtoMessage() {} + +func (x *BillingIssueMetadataNeverSubscribed) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[376] + 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 BillingIssueMetadataNeverSubscribed.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataNeverSubscribed) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{376} +} + +type BillingIssueMetadataOnCreditTrial struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"` + PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` + CreditAllocation float64 `protobuf:"fixed64,3,opt,name=credit_allocation,json=creditAllocation,proto3" json:"credit_allocation,omitempty"` + LowCredit bool `protobuf:"varint,4,opt,name=low_credit,json=lowCredit,proto3" json:"low_credit,omitempty"` +} + +func (x *BillingIssueMetadataOnCreditTrial) Reset() { + *x = BillingIssueMetadataOnCreditTrial{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[377] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataOnCreditTrial) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataOnCreditTrial) ProtoMessage() {} + +func (x *BillingIssueMetadataOnCreditTrial) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[377] + 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 BillingIssueMetadataOnCreditTrial.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataOnCreditTrial) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{377} +} + +func (x *BillingIssueMetadataOnCreditTrial) GetSubscriptionId() string { + if x != nil { + return x.SubscriptionId } return "" } -func (x *GetAlertMetaResponse_URLs) GetEditUrl() string { +func (x *BillingIssueMetadataOnCreditTrial) GetPlanId() string { if x != nil { - return x.EditUrl + return x.PlanId } return "" } -func (x *GetAlertMetaResponse_URLs) GetUnsubscribeUrl() string { +func (x *BillingIssueMetadataOnCreditTrial) GetCreditAllocation() float64 { if x != nil { - return x.UnsubscribeUrl + return x.CreditAllocation + } + return 0 +} + +func (x *BillingIssueMetadataOnCreditTrial) GetLowCredit() bool { + if x != nil { + return x.LowCredit + } + return false +} + +type BillingIssueMetadataTrialCreditsDepleted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubscriptionId string `protobuf:"bytes,1,opt,name=subscription_id,json=subscriptionId,proto3" json:"subscription_id,omitempty"` + PlanId string `protobuf:"bytes,2,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"` + DepletedOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=depleted_on,json=depletedOn,proto3" json:"depleted_on,omitempty"` +} + +func (x *BillingIssueMetadataTrialCreditsDepleted) Reset() { + *x = BillingIssueMetadataTrialCreditsDepleted{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[378] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataTrialCreditsDepleted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataTrialCreditsDepleted) ProtoMessage() {} + +func (x *BillingIssueMetadataTrialCreditsDepleted) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[378] + 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 BillingIssueMetadataTrialCreditsDepleted.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataTrialCreditsDepleted) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{378} +} + +func (x *BillingIssueMetadataTrialCreditsDepleted) GetSubscriptionId() string { + if x != nil { + return x.SubscriptionId } return "" } -var File_rill_admin_v1_api_proto protoreflect.FileDescriptor +func (x *BillingIssueMetadataTrialCreditsDepleted) GetPlanId() string { + if x != nil { + return x.PlanId + } + return "" +} -var file_rill_admin_v1_api_proto_rawDesc = []byte{ - 0x0a, 0x17, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, +func (x *BillingIssueMetadataTrialCreditsDepleted) GetDepletedOn() *timestamppb.Timestamp { + if x != nil { + return x.DepletedOn + } + return nil +} + +type ListGithubUserReposResponse_Repo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Remote string `protobuf:"bytes,4,opt,name=remote,proto3" json:"remote,omitempty"` + DefaultBranch string `protobuf:"bytes,5,opt,name=default_branch,json=defaultBranch,proto3" json:"default_branch,omitempty"` +} + +func (x *ListGithubUserReposResponse_Repo) Reset() { + *x = ListGithubUserReposResponse_Repo{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[391] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListGithubUserReposResponse_Repo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGithubUserReposResponse_Repo) ProtoMessage() {} + +func (x *ListGithubUserReposResponse_Repo) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[391] + 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 ListGithubUserReposResponse_Repo.ProtoReflect.Descriptor instead. +func (*ListGithubUserReposResponse_Repo) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{238, 0} +} + +func (x *ListGithubUserReposResponse_Repo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ListGithubUserReposResponse_Repo) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *ListGithubUserReposResponse_Repo) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ListGithubUserReposResponse_Repo) GetRemote() string { + if x != nil { + return x.Remote + } + return "" +} + +func (x *ListGithubUserReposResponse_Repo) GetDefaultBranch() string { + if x != nil { + return x.DefaultBranch + } + return "" +} + +type GetReportMetaResponse_DeliveryMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpenUrl string `protobuf:"bytes,1,opt,name=open_url,json=openUrl,proto3" json:"open_url,omitempty"` + ExportUrl string `protobuf:"bytes,2,opt,name=export_url,json=exportUrl,proto3" json:"export_url,omitempty"` + EditUrl string `protobuf:"bytes,3,opt,name=edit_url,json=editUrl,proto3" json:"edit_url,omitempty"` + UnsubscribeUrl string `protobuf:"bytes,4,opt,name=unsubscribe_url,json=unsubscribeUrl,proto3" json:"unsubscribe_url,omitempty"` + UserId string `protobuf:"bytes,5,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserAttrs *structpb.Struct `protobuf:"bytes,6,opt,name=user_attrs,json=userAttrs,proto3" json:"user_attrs,omitempty"` // user attributes of intended recipient, will be empty for creator mode and for non Rill users +} + +func (x *GetReportMetaResponse_DeliveryMeta) Reset() { + *x = GetReportMetaResponse_DeliveryMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[392] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetReportMetaResponse_DeliveryMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetReportMetaResponse_DeliveryMeta) ProtoMessage() {} + +func (x *GetReportMetaResponse_DeliveryMeta) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[392] + 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 GetReportMetaResponse_DeliveryMeta.ProtoReflect.Descriptor instead. +func (*GetReportMetaResponse_DeliveryMeta) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{270, 0} +} + +func (x *GetReportMetaResponse_DeliveryMeta) GetOpenUrl() string { + if x != nil { + return x.OpenUrl + } + return "" +} + +func (x *GetReportMetaResponse_DeliveryMeta) GetExportUrl() string { + if x != nil { + return x.ExportUrl + } + return "" +} + +func (x *GetReportMetaResponse_DeliveryMeta) GetEditUrl() string { + if x != nil { + return x.EditUrl + } + return "" +} + +func (x *GetReportMetaResponse_DeliveryMeta) GetUnsubscribeUrl() string { + if x != nil { + return x.UnsubscribeUrl + } + return "" +} + +func (x *GetReportMetaResponse_DeliveryMeta) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *GetReportMetaResponse_DeliveryMeta) GetUserAttrs() *structpb.Struct { + if x != nil { + return x.UserAttrs + } + return nil +} + +type GetAlertMetaResponse_URLs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpenUrl string `protobuf:"bytes,1,opt,name=open_url,json=openUrl,proto3" json:"open_url,omitempty"` + EditUrl string `protobuf:"bytes,2,opt,name=edit_url,json=editUrl,proto3" json:"edit_url,omitempty"` + UnsubscribeUrl string `protobuf:"bytes,3,opt,name=unsubscribe_url,json=unsubscribeUrl,proto3" json:"unsubscribe_url,omitempty"` +} + +func (x *GetAlertMetaResponse_URLs) Reset() { + *x = GetAlertMetaResponse_URLs{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[395] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAlertMetaResponse_URLs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAlertMetaResponse_URLs) ProtoMessage() {} + +func (x *GetAlertMetaResponse_URLs) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[395] + 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 GetAlertMetaResponse_URLs.ProtoReflect.Descriptor instead. +func (*GetAlertMetaResponse_URLs) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{272, 0} +} + +func (x *GetAlertMetaResponse_URLs) GetOpenUrl() string { + if x != nil { + return x.OpenUrl + } + return "" +} + +func (x *GetAlertMetaResponse_URLs) GetEditUrl() string { + if x != nil { + return x.EditUrl + } + return "" +} + +func (x *GetAlertMetaResponse_URLs) GetUnsubscribeUrl() string { + if x != nil { + return x.UnsubscribeUrl + } + return "" +} + +var File_rill_admin_v1_api_proto protoreflect.FileDescriptor + +var file_rill_admin_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x2f, + 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x72, 0x69, 0x6c, 0x6c, @@ -26692,29 +27257,107 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x1e, 0x47, 0x65, + 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x46, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, + 0x31, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x0a, 0x0c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, + 0x22, 0x30, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x79, + 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, + 0x81, 0x01, 0x0a, 0x17, 0x45, 0x64, 0x69, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, + 0x61, 0x6d, 0x6c, 0x22, 0x1a, 0x0a, 0x18, 0x45, 0x64, 0x69, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x5b, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1c, 0x0a, 0x1a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x70, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, - 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, - 0x0a, 0x12, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x99, 0x01, 0x0a, - 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, + 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xd0, 0x01, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x22, + 0x99, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, + 0x24, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x21, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, + 0x0a, 0x1f, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x24, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, @@ -26722,596 +27365,512 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, - 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6e, + 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, + 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, + 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x73, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, - 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x1f, 0x52, - 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x24, 0x0a, 0x09, 0x70, 0x6c, 0x61, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xa3, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, + 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, + 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, + 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa3, 0x01, 0x0a, - 0x1b, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, - 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, - 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x74, - 0x75, 0x72, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x16, - 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, - 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x22, 0x30, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x72, 0x6c, 0x22, 0x71, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x30, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x71, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x1f, 0x47, 0x65, + 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x6c, + 0x61, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x22, 0x40, 0x0a, 0x23, + 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xae, + 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, + 0x6b, 0x0a, 0x10, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, + 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5d, 0x0a, 0x1b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, + 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x30, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x22, 0x37, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x1b, 0x41, + 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x1e, + 0x0a, 0x1c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, + 0x0a, 0x18, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x44, 0x65, + 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x3b, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x70, 0x6c, 0x61, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, - 0x61, 0x6e, 0x52, 0x05, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x22, 0x40, 0x0a, 0x23, 0x47, 0x65, 0x74, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x24, - 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x74, - 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x6b, 0x0a, 0x10, - 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x5c, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x33, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x06, 0x69, + 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x68, 0x6f, 0x74, 0x6f, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x74, + 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, + 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x79, 0x6c, 0x6f, 0x6e, + 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x70, 0x79, 0x6c, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, + 0x06, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 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, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x05, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x19, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, + 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, 0x73, + 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, - 0x0a, 0x1b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, - 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x1e, 0x0a, - 0x1c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, - 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, - 0x37, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x1b, 0x41, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x18, 0x44, - 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x44, 0x65, 0x6e, 0x79, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, - 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, - 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x22, 0x5c, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, - 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, - 0x65, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, - 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, - 0x6f, 0x74, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x79, 0x6c, 0x6f, 0x6e, 0x5f, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x79, 0x6c, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x39, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 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, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, - 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x19, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, - 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xad, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, + 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 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, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0b, 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, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xb3, 0x06, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, + 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, + 0x6f, 0x5f, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x44, 0x61, 0x72, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, + 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x23, + 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, + 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, + 0x39, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x2f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, + 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x16, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, + 0x61, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, + 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, - 0x6e, 0x22, 0xad, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1c, 0x0a, 0x1a, + 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x03, 0x0a, 0x0c, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x70, + 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x04, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, + 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x05, 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, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x5e, 0x0a, 0x1e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x07, 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, 0x0c, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x6f, 0x72, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, + 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x12, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x73, + 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, + 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfe, + 0x07, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 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, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0b, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, - 0x6e, 0x22, 0xb3, 0x06, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6c, - 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, - 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x64, - 0x61, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, - 0x6f, 0x67, 0x6f, 0x44, 0x61, 0x72, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, - 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, - 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, - 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x17, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x06, - 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, - 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x2f, 0x0a, 0x11, - 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, - 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x16, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x44, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, + 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, + 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x67, 0x69, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, + 0x47, 0x69, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, + 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, + 0x32, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x53, 0x6c, 0x6f, 0x74, 0x73, + 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, + 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, + 0x72, 0x6f, 0x64, 0x54, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, + 0x0f, 0x64, 0x65, 0x76, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x54, 0x74, 0x6c, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x67, 0x62, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x47, 0x62, 0x12, + 0x49, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0e, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0f, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, - 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x03, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, - 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 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, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, - 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, - 0x04, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x20, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x79, - 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, - 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, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x43, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x5e, - 0x0a, 0x1e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x06, 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, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x40, - 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, - 0x18, 0x07, 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, 0x0c, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x22, 0x54, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x27, - 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x67, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, - 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x61, 0x6c, - 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x72, 0x69, - 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x12, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, - 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, - 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, - 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6f, 0x75, 0x74, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, - 0x4a, 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, - 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfe, 0x07, 0x0a, 0x07, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, - 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, - 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x67, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, - 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x21, 0x0a, - 0x0c, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x55, 0x72, 0x6c, - 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, - 0x54, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x65, - 0x76, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x1b, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x76, 0x54, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64, - 0x69, 0x73, 0x6b, 0x5f, 0x67, 0x62, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x76, - 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x47, 0x62, 0x12, 0x49, 0x0a, 0x0b, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x64, 0x4f, 0x6e, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, + 0x93, 0x04, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, + 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, + 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, - 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0x93, 0x04, 0x0a, - 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, 0x69, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, - 0x18, 0x0a, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x33, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0e, 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, 0x06, 0x75, 0x73, 0x65, 0x64, - 0x4f, 0x6e, 0x22, 0xd0, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, - 0x61, 0x72, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xfa, 0x02, 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, - 0x08, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x5f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x28, - 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x72, - 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x73, 0x22, 0xba, 0x07, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, - 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, - 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x12, 0x26, 0x0a, 0x0f, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x64, - 0x65, 0x76, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x44, 0x65, 0x76, 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x12, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, - 0x37, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, - 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x62, - 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, - 0x80, 0x01, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x33, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0e, 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, 0x06, 0x75, + 0x73, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xd0, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xfa, 0x02, 0x0a, 0x17, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x61, + 0x64, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, + 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0xba, 0x07, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x61, + 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, + 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x12, + 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, + 0x76, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x76, 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x72, 0x65, 0x61, 0x64, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x32, + 0x0a, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x67, + 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x67, 0x69, + 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, + 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, + 0x6b, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x76, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x76, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb1, 0x03, 0x0a, 0x16, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, - 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, - 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, - 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, - 0x6e, 0x18, 0x06, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xaf, - 0x03, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, - 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, - 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, - 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x22, 0x86, 0x02, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb1, 0x03, + 0x0a, 0x16, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, @@ -27320,2285 +27879,2391 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, - 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, + 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x22, 0xaf, 0x03, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, + 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x66, 0x0a, 0x12, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x42, - 0x79, 0x22, 0xef, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, - 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x22, 0xbc, 0x03, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, - 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x72, - 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x72, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 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, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x08, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x39, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 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, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 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, - 0x4f, 0x6e, 0x22, 0xe9, 0x03, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x63, 0x65, 0x73, 0x22, 0x86, 0x02, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, + 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, + 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, + 0x06, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x66, 0x0a, 0x12, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x42, 0x79, 0x22, 0xef, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, + 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2d, 0x0a, 0x12, + 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0xbc, 0x03, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, + 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, - 0x18, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x15, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, - 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, - 0x6e, 0x18, 0x06, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 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, 0x4f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, + 0x0a, 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, + 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, + 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x08, 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, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 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, 0x4f, 0x6e, 0x22, 0xe9, 0x03, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x12, 0x37, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x15, 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x70, + 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, + 0x07, 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, 0x4f, 0x6e, 0x12, 0x33, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x08, 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, 0x06, 0x75, 0x73, 0x65, 0x64, 0x4f, + 0x6e, 0x22, 0xdc, 0x06, 0x0a, 0x0e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 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, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 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, 0x06, 0x75, 0x73, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xdc, - 0x06, 0x0a, 0x0e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, + 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x06, + 0x75, 0x73, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, + 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x14, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x12, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x62, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, + 0x22, 0x8a, 0x01, 0x0a, 0x0b, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x04, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xbe, 0x06, + 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x43, 0x72, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, 0x73, 0x4a, + 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x29, + 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, + 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, + 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, + 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, + 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, + 0x6e, 0x76, 0x61, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, + 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x22, 0xbc, + 0x05, 0x0a, 0x0c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, + 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x43, 0x72, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, + 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x67, + 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, + 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, + 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x14, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, + 0x70, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc0, 0x02, + 0x0a, 0x0b, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x61, 0x79, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x71, 0x75, 0x6f, + 0x74, 0x61, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, + 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x22, 0x96, 0x02, 0x0a, 0x06, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, + 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, + 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, + 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, + 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, + 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x09, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, + 0x6e, 0x18, 0x05, 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, 0x4f, 0x6e, 0x12, 0x33, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x06, 0x75, 0x73, 0x65, - 0x64, 0x4f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, - 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x31, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, - 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x14, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x1a, 0x62, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0x8a, 0x01, - 0x0a, 0x0b, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, - 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, + 0x03, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xbe, 0x06, 0x0a, 0x0d, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x72, - 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, - 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x12, 0x21, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, - 0x67, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, - 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, - 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, - 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, - 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, - 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6e, - 0x76, 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, - 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, - 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x22, 0xbc, 0x05, 0x0a, 0x0c, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x72, - 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, - 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, - 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x72, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x26, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x6a, - 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x41, 0x72, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x66, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x14, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, - 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, - 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, - 0x63, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, - 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, - 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, - 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x0b, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, - 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2a, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x72, 0x69, - 0x61, 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x61, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, - 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0x96, 0x02, - 0x0a, 0x06, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x6f, - 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x75, 0x74, - 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, - 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x6f, 0x6e, 0x18, 0x04, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, - 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, + 0xc4, 0x02, 0x0a, 0x0c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x03, 0x0a, 0x0f, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 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, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xc4, 0x02, 0x0a, - 0x0c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, - 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, + 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x83, 0x07, 0x0a, 0x14, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x47, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x00, 0x52, + 0x07, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, - 0x0a, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 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, - 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 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, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x22, 0x83, 0x07, 0x0a, 0x14, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x08, - 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x6e, - 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, - 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x72, 0x69, - 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x11, 0x6e, 0x6f, 0x5f, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x66, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, - 0x62, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x42, 0x69, 0x6c, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, - 0x6e, 0x6f, 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x59, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x11, 0x6e, 0x6f, + 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x50, 0x61, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x50, + 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x66, 0x0a, 0x13, + 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x16, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x72, + 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, + 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, + 0x00, 0x52, 0x11, 0x6e, 0x6f, 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x59, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x15, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x12, - 0x5f, 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x65, - 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x0f, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x12, 0x5a, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x72, - 0x69, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x6e, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0d, 0x6f, - 0x6e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x6f, 0x0a, 0x16, - 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x5f, 0x64, 0x65, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x72, + 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, + 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x71, 0x0a, 0x16, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x15, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, + 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x44, 0x65, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, - 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x61, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x0f, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x00, + 0x52, 0x0d, 0x6f, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, + 0x6f, 0x0a, 0x16, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, + 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, + 0x44, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x01, 0x0a, + 0x1b, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x15, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x12, + 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x1e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, + 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x01, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x15, + 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x4d, 0x0a, 0x15, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 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, 0x12, 0x67, 0x72, 0x61, - 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, - 0xa6, 0x01, 0x0a, 0x1e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, - 0x65, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, - 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x15, 0x67, 0x72, 0x61, - 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x22, 0x27, 0x0a, 0x25, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x42, 0x69, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x75, 0x0a, 0x21, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x12, 0x50, 0x0a, 0x08, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x73, 0x22, 0x88, 0x03, 0x0a, 0x25, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, + 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, + 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x35, + 0x0a, 0x08, 0x64, 0x75, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x07, 0x64, 0x75, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, + 0x6f, 0x6e, 0x18, 0x07, 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, 0x12, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x4e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, - 0x27, 0x0a, 0x25, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x75, 0x0a, 0x21, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x50, 0x0a, - 0x08, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x73, 0x22, - 0x88, 0x03, 0x0a, 0x25, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, - 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, - 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x6f, - 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x72, 0x6c, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x75, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x75, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x64, - 0x75, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 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, 0x07, 0x64, 0x75, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, - 0x07, 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, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x4d, 0x0a, 0x15, 0x67, - 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x12, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x62, 0x0a, 0x29, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x25, - 0x0a, 0x23, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x21, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x6e, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, - 0x11, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, - 0x77, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x28, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x44, 0x65, - 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x4d, + 0x0a, 0x15, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 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, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x2a, 0x6e, 0x0a, 0x10, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x49, 0x54, - 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x12, 0x67, 0x72, 0x61, 0x63, 0x65, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x62, 0x0a, + 0x29, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 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, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x22, 0x25, 0x0a, 0x23, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x21, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x4f, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x27, + 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, + 0x0a, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x22, 0xa9, 0x01, 0x0a, + 0x28, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x73, 0x44, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x0b, 0x64, + 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 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, 0x0a, 0x64, 0x65, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x2a, 0x6e, 0x0a, 0x10, 0x47, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x49, 0x54, 0x48, - 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x52, - 0x49, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb0, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x45, - 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, + 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1a, 0x0a, 0x16, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, + 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x47, + 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb0, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, + 0x1d, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, + 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, + 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, + 0x55, 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, - 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, - 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, - 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x2a, 0xe5, 0x01, 0x0a, 0x0f, 0x42, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, - 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1b, 0x0a, 0x17, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, + 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x2a, 0xe5, 0x01, 0x0a, 0x0f, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x21, 0x0a, 0x1d, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, + 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, + 0x1a, 0x0a, 0x16, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x42, + 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x49, + 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x49, 0x4c, 0x4c, - 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, - 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x49, 0x4c, 0x4c, 0x49, - 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x54, - 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x49, 0x4c, - 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, - 0x52, 0x45, 0x45, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, - 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x10, 0x06, - 0x2a, 0xa7, 0x03, 0x0a, 0x10, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, - 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4c, - 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x49, - 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x28, - 0x0a, 0x24, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, - 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x49, 0x4c, 0x4c, - 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, - 0x4f, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, - 0x53, 0x53, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, - 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, - 0x4e, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x42, - 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x49, - 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, - 0x44, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, - 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x45, - 0x44, 0x49, 0x54, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x08, 0x12, 0x2d, 0x0a, 0x29, 0x42, + 0x45, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x49, 0x4c, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x10, 0x06, 0x2a, 0xa7, 0x03, 0x0a, 0x10, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, + 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x49, 0x4c, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, + 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x22, 0x0a, + 0x1e, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, + 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, + 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x53, 0x5f, - 0x44, 0x45, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x2a, 0x78, 0x0a, 0x11, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x23, 0x0a, 0x1f, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, - 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, - 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, - 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, - 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0x02, 0x32, 0x89, 0xd0, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1a, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, - 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69, - 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2d, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, - 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x1c, 0x47, 0x65, + 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x44, + 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x49, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, + 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x2d, + 0x0a, 0x29, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x27, 0x0a, + 0x23, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, + 0x49, 0x42, 0x45, 0x44, 0x10, 0x07, 0x12, 0x26, 0x0a, 0x22, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, + 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, + 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x08, 0x12, 0x2d, + 0x0a, 0x29, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, + 0x54, 0x53, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x2a, 0x78, 0x0a, + 0x11, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, + 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, + 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x49, 0x4c, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xd0, 0xd6, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x04, 0x50, 0x69, 0x6e, + 0x67, 0x12, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x95, 0x01, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, + 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, + 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x12, 0xb5, 0x01, 0x0a, + 0x1c, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x32, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x46, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x6f, - 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x66, 0x6f, - 0x72, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x7d, 0x12, 0x9b, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x92, - 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x0d, 0x3a, 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x12, - 0x9e, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x92, 0x41, 0x1a, - 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, - 0x2a, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x92, 0x41, - 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x13, 0x3a, 0x01, 0x2a, 0x32, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x7d, 0x12, 0xc2, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x65, 0x46, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x7d, 0x12, 0x9b, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x30, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x3a, 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x12, 0x9e, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, + 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x10, 0x2a, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x36, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x13, 0x3a, 0x01, 0x2a, 0x32, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x12, 0xc2, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x92, 0x41, 0x1a, - 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, - 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xc3, 0x01, 0x0a, 0x22, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x75, 0x73, 0x65, 0x72, 0x12, - 0xa7, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x46, 0x6f, 0x72, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x30, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x46, 0x69, - 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, - 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x66, 0x69, - 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x99, 0x01, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x92, - 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, + 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xc3, 0x01, 0x0a, + 0x22, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x44, 0x12, 0x24, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, - 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x90, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, + 0x12, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x75, 0x73, + 0x65, 0x72, 0x12, 0xa7, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x12, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, + 0x72, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x46, 0x6f, 0x72, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, + 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2d, 0x66, 0x6f, 0x72, + 0x2d, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x99, 0x01, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x46, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x0e, 0x12, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, + 0x78, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, + 0x44, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x79, 0x49, 0x44, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x90, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x9b, 0x01, 0x0a, 0x0d, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, - 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xa2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0xa5, 0x01, 0x0a, - 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x9b, 0x01, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x92, 0x41, 0x1a, 0x6a, 0x18, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, - 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, - 0x2a, 0x32, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0xad, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, - 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, - 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x1a, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x76, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x2a, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x72, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x98, 0x01, 0x0a, 0x10, 0x48, - 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x68, 0x69, 0x62, 0x65, - 0x72, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, - 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x9d, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, - 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x92, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, + 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xa2, 0x01, 0x0a, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, + 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, + 0xa5, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0x92, 0x41, + 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x26, 0x3a, 0x01, 0x2a, 0x32, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, + 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, + 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0xad, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x1a, 0x2b, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x76, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x7c, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2c, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x98, 0x01, + 0x0a, 0x10, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, + 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x2b, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x68, + 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, - 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x8e, 0x01, 0x0a, 0x0e, 0x53, 0x74, - 0x6f, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, - 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x12, 0x8c, 0x01, 0x0a, 0x10, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x99, 0x01, 0x0a, 0x10, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x12, 0x26, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, + 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, + 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x63, 0x6f, - 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x84, - 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x8e, 0x01, 0x0a, + 0x0e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x73, 0x74, 0x6f, 0x70, 0x12, 0x8c, 0x01, + 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, 0x1f, 0x2f, 0x76, 0x31, + 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x99, 0x01, 0x0a, + 0x10, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, + 0x65, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x72, 0x65, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x84, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, - 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x9c, 0x01, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x61, 0x0a, 0x09, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, - 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0xc1, - 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x31, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, + 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, + 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x12, 0xa6, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x12, 0x84, 0x01, 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, + 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2d, 0x2f, + 0x72, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x84, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x9c, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x61, + 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x65, + 0x73, 0x12, 0xc1, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2d, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x92, - 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x19, 0x41, - 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x92, 0x41, 0x1a, - 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, - 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x1c, + 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, + 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, + 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, + 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x73, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3b, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0xbe, 0x01, + 0x0a, 0x19, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, + 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xcc, + 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x11, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb5, 0x01, 0x0a, 0x1d, - 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, + 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, + 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, + 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0x8e, 0x01, + 0x0a, 0x11, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xb5, + 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, - 0x3a, 0x01, 0x2a, 0x1a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, - 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xd6, 0x01, 0x0a, - 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, - 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, - 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xdb, 0x01, 0x0a, 0x26, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x3c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x1a, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x2f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x2c, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x1a, - 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xb9, 0x01, 0x0a, 0x12, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, - 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, - 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x92, 0x41, 0x1a, 0x6a, 0x18, - 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, - 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, - 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xd0, 0x01, 0x0a, - 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, - 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, - 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x1a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, + 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, - 0xd6, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2e, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x92, - 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x1a, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, - 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, + 0xd6, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x44, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xdb, 0x01, 0x0a, 0x26, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x3c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x1a, 0x29, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x2f, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0xc5, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, + 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xb9, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x92, 0x41, 0x1a, 0x6a, + 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x7d, 0x2f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0xc2, 0x01, 0x0a, 0x14, 0x41, + 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x92, 0x41, + 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, + 0xd0, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2d, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, + 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, - 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x75, 0x73, 0x65, 0x72, - 0x12, 0xa3, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x41, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x4a, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, + 0x6c, 0x7d, 0x12, 0xd6, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x59, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, - 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0xaf, 0x01, 0x0a, - 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x4d, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x32, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0xd3, - 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x12, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, - 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x01, 0x2a, 0x1a, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xc7, 0x01, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x92, + 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3a, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, + 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2d, 0x66, 0x6f, 0x72, 0x2d, 0x75, + 0x73, 0x65, 0x72, 0x12, 0xa3, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, + 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x22, 0x19, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, + 0xaf, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4d, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x32, 0x25, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, + 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x92, 0x41, 0x1a, - 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, - 0x12, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xac, - 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x4a, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x2a, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x12, 0xc4, 0x01, - 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xd0, 0x01, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x38, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, + 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x12, 0xac, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, + 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x2a, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, + 0x12, 0xc4, 0x01, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xd0, 0x01, 0x0a, 0x22, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x1a, 0x2a, 0x2f, 0x76, 0x31, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x38, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x1a, 0x2a, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x21, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x37, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x2a, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x37, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xe6, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x2a, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xe6, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, - 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0xf2, 0x01, - 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x12, - 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, + 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, + 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, + 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x12, 0xf2, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, 0x41, 0x1a, 0x6a, - 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, - 0x01, 0x2a, 0x1a, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x12, 0xec, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x66, 0x92, + 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x1a, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0xec, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0x92, 0x41, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x63, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x40, 0x2a, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x72, + 0x6f, 0x6c, 0x65, 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x40, 0x2a, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, - 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, - 0x73, 0x12, 0xd4, 0x01, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x92, 0x41, 0x1a, 0x6a, 0x18, + 0x3a, 0x3a, 0x01, 0x2a, 0x1a, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, + 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x18, + 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, - 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, - 0x2a, 0x1a, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x52, 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, - 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x19, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x92, 0x41, 0x1a, - 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, - 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x2f, - 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0x5b, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x78, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x6c, - 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0x8d, 0x01, 0x0a, - 0x12, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, - 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x90, 0x01, 0x0a, - 0x12, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, - 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xda, 0x01, + 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, + 0x92, 0x41, 0x1a, 0x6a, 0x18, 0x0a, 0x0c, 0x78, 0x2d, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x08, 0x1a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x37, 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0x5b, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x11, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0b, 0x12, 0x09, 0x2f, 0x76, + 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x78, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, + 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x6c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, 0x76, + 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, + 0x8d, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, - 0x93, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x2f, 0x2d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9c, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, + 0x90, 0x01, 0x0a, 0x12, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x2a, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x2f, 0x2d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x9c, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x76, + 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x76, 0x31, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x12, 0xbe, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, - 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, - 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a, 0x27, 0x2f, 0x76, - 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x2d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x2f, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x7b, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x1c, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, + 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x2a, + 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x2d, 0x2f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, + 0x2f, 0x7b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x1c, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x12, 0x91, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, - 0x2a, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x2e, 0x72, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, + 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x6e, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, + 0x6f, 0x6b, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x14, 0x2a, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, + 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, + 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x92, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x12, 0xb0, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2f, 0x70, 0x72, 0x12, 0xad, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x2e, 0x72, + 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, 0x70, 0x72, 0x2f, 0x7b, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x54, 0x6f, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, + 0x6f, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x2d, 0x74, 0x6f, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, + 0xa2, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x1a, 0x26, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x2d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x2d, 0x67, 0x69, 0x74, 0x2d, + 0x72, 0x65, 0x70, 0x6f, 0x12, 0xa9, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x6f, 0x6e, + 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x76, 0x31, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x92, 0x01, 0x0a, - 0x13, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, - 0x73, 0x12, 0xb0, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, + 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x63, + 0x6c, 0x6f, 0x6e, 0x65, 0x2d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x12, 0x9f, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2f, 0x70, 0x72, 0x12, 0xad, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2f, 0x70, 0x72, 0x2f, 0x7b, 0x62, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, - 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, - 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x2d, 0x74, 0x6f, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0xa2, 0x01, 0x0a, - 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x47, - 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x1a, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x2d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x2d, 0x67, 0x69, 0x74, 0x2d, 0x72, 0x65, 0x70, - 0x6f, 0x12, 0xa9, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x6f, - 0x6e, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x63, 0x6c, 0x6f, 0x6e, - 0x65, 0x2d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x9f, 0x01, - 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, - 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, - 0xa5, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2d, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2f, 0x7b, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0x99, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x12, 0xa5, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2d, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x64, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0x99, 0x01, 0x0a, 0x16, 0x4c, + 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0x6e, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x7c, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, - 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x83, 0x01, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x49, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x49, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x69, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x12, 0x79, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, - 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, - 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x80, - 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x12, 0x95, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x32, 0x19, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x71, 0x75, - 0x6f, 0x74, 0x61, 0x73, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0xb5, 0x01, 0x0a, 0x1c, 0x53, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0xa1, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x28, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x7c, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x12, 0x24, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x17, 0x12, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, + 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x12, 0x83, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x49, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x69, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x79, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, + 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x75, + 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, + 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x95, 0x01, 0x0a, 0x14, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x2a, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, + 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, + 0x2a, 0x32, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0xb5, 0x01, 0x0a, + 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x32, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, + 0x2a, 0x32, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xdd, 0x01, 0x0a, 0x25, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x12, 0x3b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x32, 0x21, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x71, 0x75, - 0x6f, 0x74, 0x61, 0x73, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0xdd, 0x01, 0x0a, 0x25, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x12, 0x3b, 0x2e, 0x72, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, - 0x2a, 0x32, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x12, 0xad, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, - 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x33, 0x3a, 0x01, 0x2a, 0x32, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x12, 0xad, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x2b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x75, 0x64, 0x6f, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x72, 0x61, - 0x6e, 0x74, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, - 0x2a, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x72, - 0x69, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2d, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, - 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x64, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, - 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, - 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x75, 0x73, 0x61, 0x67, 0x65, - 0x12, 0xce, 0x01, 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x33, 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2d, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x0f, 0x53, 0x75, 0x64, 0x6f, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x75, 0x64, 0x6f, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, + 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2d, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x12, 0xce, 0x01, 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x32, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, - 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0xa1, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, + 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x32, 0x28, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2d, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0xa1, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, - 0x2a, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x27, 0x3a, 0x01, 0x2a, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x64, + 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2d, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0xda, 0x01, 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, - 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x7d, - 0x12, 0xa4, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0x2e, 0x2e, + 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xda, 0x01, 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x2f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0xc7, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, - 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x64, 0x12, 0xcd, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x79, + 0x70, 0x65, 0x7d, 0x12, 0xa4, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, + 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0xc7, 0x01, 0x0a, 0x1e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x64, 0x12, 0xcd, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x7d, 0x12, 0xc1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x7d, 0x12, 0xc1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0x78, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, - 0xb2, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2f, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x12, 0x79, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, - 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, - 0x85, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x32, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x36, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x1a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xbd, 0x01, - 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xc7, 0x01, - 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x31, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x1a, - 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0x78, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x79, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x32, 0x1e, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x20, 0x53, + 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x1a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, + 0x12, 0xbd, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, + 0x12, 0xc7, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, + 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, + 0x01, 0x2a, 0x1a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x1a, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa9, + 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x15, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x15, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x16, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x13, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x6d, 0x61, + 0x67, 0x69, 0x63, 0x12, 0xa4, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, + 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x9d, 0x01, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, + 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x2d, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x14, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x13, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, - 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, - 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, - 0x12, 0xa4, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, - 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x9d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, - 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, - 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, - 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x2d, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x94, - 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x2d, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, + 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x1a, 0x15, - 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x7f, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x21, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, + 0x2a, 0x1a, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, + 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, - 0x7d, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, - 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, - 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x7d, - 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x1a, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x88, 0x01, - 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x81, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, + 0x73, 0x12, 0x7f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, + 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0x7d, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, + 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, + 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x73, 0x12, 0x7d, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x1a, 0x13, 0x2f, 0x76, 0x31, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, + 0x12, 0x88, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x81, 0x01, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x90, 0x01, 0x0a, - 0x0f, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, - 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x12, - 0x92, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, - 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, + 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x6d, 0x65, - 0x74, 0x61, 0x12, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x8d, - 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, - 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, - 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x8e, - 0x01, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, - 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x1a, 0x30, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, - 0xaf, 0x01, 0x0a, 0x11, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, - 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, + 0x90, 0x01, 0x0a, 0x0f, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, + 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x12, 0x92, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, + 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, + 0x61, 0x12, 0x8d, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x32, 0x2a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, - 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x9f, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, - 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x22, 0x38, 0x2f, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, + 0x1a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x11, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, + 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x9f, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, + 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, + 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xa6, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, + 0x4c, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, + 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x79, + 0x61, 0x6d, 0x6c, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, + 0x8a, 0x01, 0x0a, 0x09, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1f, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, + 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x1a, 0x2f, 0x2f, 0x76, 0x31, + 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xab, 0x01, 0x0a, + 0x10, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xa6, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x28, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, - 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, + 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa2, 0x01, 0x0a, 0x11, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, + 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, + 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, - 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, - 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, - 0x09, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x1a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, - 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, - 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x55, 0x6e, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x26, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, - 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x6e, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa2, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x27, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, + 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, + 0x95, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, + 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, + 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0xa0, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x27, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x95, 0x01, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x22, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x61, 0x6c, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0xa6, 0x01, 0x0a, 0x12, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, + 0x65, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, + 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x2d, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x79, 0x61, 0x6d, 0x6c, 0x12, 0xa3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x19, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, + 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x26, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, + 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x01, 0x2a, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x61, 0x6c, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x2d, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa3, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xac, 0x01, 0x0a, - 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, + 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x2a, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, - 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x18, - 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x6e, 0x65, 0x77, - 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x70, 0x6f, 0x72, 0x74, - 0x61, 0x6c, 0x2d, 0x75, 0x72, 0x6c, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x2f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x16, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, - 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0xbb, 0x01, 0x0a, - 0x1c, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x32, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, - 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x63, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x14, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x2a, + 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, + 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, + 0x55, 0x52, 0x4c, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, + 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x17, 0x47, 0x65, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, + 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2d, 0x75, 0x72, 0x6c, + 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x2c, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, + 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, + 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x2d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa3, 0x01, - 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x72, - 0x6f, 0x76, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x6e, 0x79, 0x12, 0xb1, 0x01, - 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, - 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x73, 0x42, 0xf7, 0x03, 0x92, 0x41, 0xc6, 0x02, 0x12, 0x8e, 0x02, 0x0a, 0x0e, 0x52, 0x69, 0x6c, - 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x12, 0xfb, 0x01, 0x52, 0x69, - 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x20, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, - 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, - 0x72, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, - 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x73, 0x20, 0x77, 0x65, 0x6c, 0x6c, 0x20, 0x61, 0x73, - 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x72, 0x33, 0x0a, 0x16, 0x52, 0x69, 0x6c, - 0x6c, 0x20, 0x41, 0x50, 0x49, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, - 0x73, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x11, - 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x42, 0x08, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x64, 0x61, - 0x74, 0x61, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, - 0x6e, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x3b, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x41, 0x58, 0xaa, 0x02, 0x0d, - 0x52, 0x69, 0x6c, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, - 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, - 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x52, 0x69, 0x6c, 0x6c, - 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, + 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2d, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0xa1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, + 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x97, 0x01, + 0x0a, 0x11, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6e, + 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, + 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x6e, 0x79, 0x12, 0xb1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x42, 0xf7, 0x03, 0x92, 0x41, + 0xc6, 0x02, 0x12, 0x8e, 0x02, 0x0a, 0x0e, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x20, 0x41, 0x50, 0x49, 0x12, 0xfb, 0x01, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x70, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x2e, 0x20, 0x49, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x68, 0x65, 0x73, 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, + 0x61, 0x73, 0x20, 0x77, 0x65, 0x6c, 0x6c, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x69, 0x6e, 0x67, 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x72, 0x33, 0x0a, 0x16, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x50, 0x49, 0x20, + 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x41, 0x70, 0x69, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x72, 0x69, 0x6c, + 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x72, 0x69, 0x6c, 0x6c, + 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x52, 0x41, 0x58, 0xaa, 0x02, 0x0d, 0x52, 0x69, 0x6c, 0x6c, 0x2e, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x52, 0x69, 0x6c, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -29614,7 +30279,7 @@ func file_rill_admin_v1_api_proto_rawDescGZIP() []byte { } var file_rill_admin_v1_api_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_rill_admin_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 389) +var file_rill_admin_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 399) var file_rill_admin_v1_api_proto_goTypes = []any{ (GithubPermission)(0), // 0: rill.admin.v1.GithubPermission (DeploymentStatus)(0), // 1: rill.admin.v1.DeploymentStatus @@ -29919,338 +30584,348 @@ var file_rill_admin_v1_api_proto_goTypes = []any{ (*GenerateAlertYAMLResponse)(nil), // 300: rill.admin.v1.GenerateAlertYAMLResponse (*GetAlertYAMLRequest)(nil), // 301: rill.admin.v1.GetAlertYAMLRequest (*GetAlertYAMLResponse)(nil), // 302: rill.admin.v1.GetAlertYAMLResponse - (*GetBillingSubscriptionRequest)(nil), // 303: rill.admin.v1.GetBillingSubscriptionRequest - (*GetBillingSubscriptionResponse)(nil), // 304: rill.admin.v1.GetBillingSubscriptionResponse - (*UpdateBillingSubscriptionRequest)(nil), // 305: rill.admin.v1.UpdateBillingSubscriptionRequest - (*UpdateBillingSubscriptionResponse)(nil), // 306: rill.admin.v1.UpdateBillingSubscriptionResponse - (*CancelBillingSubscriptionRequest)(nil), // 307: rill.admin.v1.CancelBillingSubscriptionRequest - (*CancelBillingSubscriptionResponse)(nil), // 308: rill.admin.v1.CancelBillingSubscriptionResponse - (*RenewBillingSubscriptionRequest)(nil), // 309: rill.admin.v1.RenewBillingSubscriptionRequest - (*RenewBillingSubscriptionResponse)(nil), // 310: rill.admin.v1.RenewBillingSubscriptionResponse - (*GetPaymentsPortalURLRequest)(nil), // 311: rill.admin.v1.GetPaymentsPortalURLRequest - (*GetPaymentsPortalURLResponse)(nil), // 312: rill.admin.v1.GetPaymentsPortalURLResponse - (*GetBillingCreditBalanceRequest)(nil), // 313: rill.admin.v1.GetBillingCreditBalanceRequest - (*GetBillingCreditBalanceResponse)(nil), // 314: rill.admin.v1.GetBillingCreditBalanceResponse - (*ListPublicBillingPlansRequest)(nil), // 315: rill.admin.v1.ListPublicBillingPlansRequest - (*ListPublicBillingPlansResponse)(nil), // 316: rill.admin.v1.ListPublicBillingPlansResponse - (*GetBillingProjectCredentialsRequest)(nil), // 317: rill.admin.v1.GetBillingProjectCredentialsRequest - (*GetBillingProjectCredentialsResponse)(nil), // 318: rill.admin.v1.GetBillingProjectCredentialsResponse - (*TelemetryRequest)(nil), // 319: rill.admin.v1.TelemetryRequest - (*TelemetryResponse)(nil), // 320: rill.admin.v1.TelemetryResponse - (*RequestProjectAccessRequest)(nil), // 321: rill.admin.v1.RequestProjectAccessRequest - (*RequestProjectAccessResponse)(nil), // 322: rill.admin.v1.RequestProjectAccessResponse - (*GetProjectAccessRequestRequest)(nil), // 323: rill.admin.v1.GetProjectAccessRequestRequest - (*GetProjectAccessRequestResponse)(nil), // 324: rill.admin.v1.GetProjectAccessRequestResponse - (*ApproveProjectAccessRequest)(nil), // 325: rill.admin.v1.ApproveProjectAccessRequest - (*ApproveProjectAccessResponse)(nil), // 326: rill.admin.v1.ApproveProjectAccessResponse - (*DenyProjectAccessRequest)(nil), // 327: rill.admin.v1.DenyProjectAccessRequest - (*DenyProjectAccessResponse)(nil), // 328: rill.admin.v1.DenyProjectAccessResponse - (*ListOrganizationBillingIssuesRequest)(nil), // 329: rill.admin.v1.ListOrganizationBillingIssuesRequest - (*ListOrganizationBillingIssuesResponse)(nil), // 330: rill.admin.v1.ListOrganizationBillingIssuesResponse - (*User)(nil), // 331: rill.admin.v1.User - (*Service)(nil), // 332: rill.admin.v1.Service - (*OrganizationMemberService)(nil), // 333: rill.admin.v1.OrganizationMemberService - (*ProjectMemberService)(nil), // 334: rill.admin.v1.ProjectMemberService - (*Organization)(nil), // 335: rill.admin.v1.Organization - (*Subscription)(nil), // 336: rill.admin.v1.Subscription - (*UserQuotas)(nil), // 337: rill.admin.v1.UserQuotas - (*OrganizationQuotas)(nil), // 338: rill.admin.v1.OrganizationQuotas - (*Project)(nil), // 339: rill.admin.v1.Project - (*Deployment)(nil), // 340: rill.admin.v1.Deployment - (*ProvisionerResource)(nil), // 341: rill.admin.v1.ProvisionerResource - (*OrganizationPermissions)(nil), // 342: rill.admin.v1.OrganizationPermissions - (*ProjectPermissions)(nil), // 343: rill.admin.v1.ProjectPermissions - (*OrganizationRole)(nil), // 344: rill.admin.v1.OrganizationRole - (*ProjectRole)(nil), // 345: rill.admin.v1.ProjectRole - (*OrganizationMemberUser)(nil), // 346: rill.admin.v1.OrganizationMemberUser - (*ProjectMemberUser)(nil), // 347: rill.admin.v1.ProjectMemberUser - (*UsergroupMemberUser)(nil), // 348: rill.admin.v1.UsergroupMemberUser - (*OrganizationInvite)(nil), // 349: rill.admin.v1.OrganizationInvite - (*ProjectInvite)(nil), // 350: rill.admin.v1.ProjectInvite - (*WhitelistedDomain)(nil), // 351: rill.admin.v1.WhitelistedDomain - (*Bookmark)(nil), // 352: rill.admin.v1.Bookmark - (*ServiceToken)(nil), // 353: rill.admin.v1.ServiceToken - (*UserAuthToken)(nil), // 354: rill.admin.v1.UserAuthToken - (*MagicAuthToken)(nil), // 355: rill.admin.v1.MagicAuthToken - (*VirtualFile)(nil), // 356: rill.admin.v1.VirtualFile - (*ReportOptions)(nil), // 357: rill.admin.v1.ReportOptions - (*AlertOptions)(nil), // 358: rill.admin.v1.AlertOptions - (*BillingPlan)(nil), // 359: rill.admin.v1.BillingPlan - (*Quotas)(nil), // 360: rill.admin.v1.Quotas - (*Usergroup)(nil), // 361: rill.admin.v1.Usergroup - (*MemberUsergroup)(nil), // 362: rill.admin.v1.MemberUsergroup - (*BillingIssue)(nil), // 363: rill.admin.v1.BillingIssue - (*BillingIssueMetadata)(nil), // 364: rill.admin.v1.BillingIssueMetadata - (*BillingIssueMetadataOnTrial)(nil), // 365: rill.admin.v1.BillingIssueMetadataOnTrial - (*BillingIssueMetadataTrialEnded)(nil), // 366: rill.admin.v1.BillingIssueMetadataTrialEnded - (*BillingIssueMetadataNoPaymentMethod)(nil), // 367: rill.admin.v1.BillingIssueMetadataNoPaymentMethod - (*BillingIssueMetadataNoBillableAddress)(nil), // 368: rill.admin.v1.BillingIssueMetadataNoBillableAddress - (*BillingIssueMetadataPaymentFailed)(nil), // 369: rill.admin.v1.BillingIssueMetadataPaymentFailed - (*BillingIssueMetadataPaymentFailedMeta)(nil), // 370: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta - (*BillingIssueMetadataSubscriptionCancelled)(nil), // 371: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled - (*BillingIssueMetadataNeverSubscribed)(nil), // 372: rill.admin.v1.BillingIssueMetadataNeverSubscribed - (*BillingIssueMetadataOnCreditTrial)(nil), // 373: rill.admin.v1.BillingIssueMetadataOnCreditTrial - (*BillingIssueMetadataTrialCreditsDepleted)(nil), // 374: rill.admin.v1.BillingIssueMetadataTrialCreditsDepleted - nil, // 375: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry - nil, // 376: rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry - nil, // 377: rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry - nil, // 378: rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry - nil, // 379: rill.admin.v1.GetIFrameRequest.QueryEntry - nil, // 380: rill.admin.v1.CreateAssetResponse.SigningHeadersEntry - nil, // 381: rill.admin.v1.GetDeploymentConfigResponse.VariablesLegacyEntry - nil, // 382: rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry - nil, // 383: rill.admin.v1.GetDeploymentConfigResponse.SystemVariablesEntry - nil, // 384: rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry - nil, // 385: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry - nil, // 386: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry - (*ListGithubUserReposResponse_Repo)(nil), // 387: rill.admin.v1.ListGithubUserReposResponse.Repo - (*GetReportMetaResponse_DeliveryMeta)(nil), // 388: rill.admin.v1.GetReportMetaResponse.DeliveryMeta - nil, // 389: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry - nil, // 390: rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry - (*GetAlertMetaResponse_URLs)(nil), // 391: rill.admin.v1.GetAlertMetaResponse.URLs - nil, // 392: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry - nil, // 393: rill.admin.v1.Project.AnnotationsEntry - nil, // 394: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry - (*timestamppb.Timestamp)(nil), // 395: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 396: google.protobuf.Struct - (v1.ExportFormat)(0), // 397: rill.runtime.v1.ExportFormat - (*v1.Expression)(nil), // 398: rill.runtime.v1.Expression + (*ListPersonalFilesRequest)(nil), // 303: rill.admin.v1.ListPersonalFilesRequest + (*ListPersonalFilesResponse)(nil), // 304: rill.admin.v1.ListPersonalFilesResponse + (*CreatePersonalFileRequest)(nil), // 305: rill.admin.v1.CreatePersonalFileRequest + (*CreatePersonalFileResponse)(nil), // 306: rill.admin.v1.CreatePersonalFileResponse + (*GetPersonalFileRequest)(nil), // 307: rill.admin.v1.GetPersonalFileRequest + (*GetPersonalFileResponse)(nil), // 308: rill.admin.v1.GetPersonalFileResponse + (*EditPersonalFileRequest)(nil), // 309: rill.admin.v1.EditPersonalFileRequest + (*EditPersonalFileResponse)(nil), // 310: rill.admin.v1.EditPersonalFileResponse + (*DeletePersonalFileRequest)(nil), // 311: rill.admin.v1.DeletePersonalFileRequest + (*DeletePersonalFileResponse)(nil), // 312: rill.admin.v1.DeletePersonalFileResponse + (*GetBillingSubscriptionRequest)(nil), // 313: rill.admin.v1.GetBillingSubscriptionRequest + (*GetBillingSubscriptionResponse)(nil), // 314: rill.admin.v1.GetBillingSubscriptionResponse + (*UpdateBillingSubscriptionRequest)(nil), // 315: rill.admin.v1.UpdateBillingSubscriptionRequest + (*UpdateBillingSubscriptionResponse)(nil), // 316: rill.admin.v1.UpdateBillingSubscriptionResponse + (*CancelBillingSubscriptionRequest)(nil), // 317: rill.admin.v1.CancelBillingSubscriptionRequest + (*CancelBillingSubscriptionResponse)(nil), // 318: rill.admin.v1.CancelBillingSubscriptionResponse + (*RenewBillingSubscriptionRequest)(nil), // 319: rill.admin.v1.RenewBillingSubscriptionRequest + (*RenewBillingSubscriptionResponse)(nil), // 320: rill.admin.v1.RenewBillingSubscriptionResponse + (*GetPaymentsPortalURLRequest)(nil), // 321: rill.admin.v1.GetPaymentsPortalURLRequest + (*GetPaymentsPortalURLResponse)(nil), // 322: rill.admin.v1.GetPaymentsPortalURLResponse + (*GetBillingCreditBalanceRequest)(nil), // 323: rill.admin.v1.GetBillingCreditBalanceRequest + (*GetBillingCreditBalanceResponse)(nil), // 324: rill.admin.v1.GetBillingCreditBalanceResponse + (*ListPublicBillingPlansRequest)(nil), // 325: rill.admin.v1.ListPublicBillingPlansRequest + (*ListPublicBillingPlansResponse)(nil), // 326: rill.admin.v1.ListPublicBillingPlansResponse + (*GetBillingProjectCredentialsRequest)(nil), // 327: rill.admin.v1.GetBillingProjectCredentialsRequest + (*GetBillingProjectCredentialsResponse)(nil), // 328: rill.admin.v1.GetBillingProjectCredentialsResponse + (*TelemetryRequest)(nil), // 329: rill.admin.v1.TelemetryRequest + (*TelemetryResponse)(nil), // 330: rill.admin.v1.TelemetryResponse + (*RequestProjectAccessRequest)(nil), // 331: rill.admin.v1.RequestProjectAccessRequest + (*RequestProjectAccessResponse)(nil), // 332: rill.admin.v1.RequestProjectAccessResponse + (*GetProjectAccessRequestRequest)(nil), // 333: rill.admin.v1.GetProjectAccessRequestRequest + (*GetProjectAccessRequestResponse)(nil), // 334: rill.admin.v1.GetProjectAccessRequestResponse + (*ApproveProjectAccessRequest)(nil), // 335: rill.admin.v1.ApproveProjectAccessRequest + (*ApproveProjectAccessResponse)(nil), // 336: rill.admin.v1.ApproveProjectAccessResponse + (*DenyProjectAccessRequest)(nil), // 337: rill.admin.v1.DenyProjectAccessRequest + (*DenyProjectAccessResponse)(nil), // 338: rill.admin.v1.DenyProjectAccessResponse + (*ListOrganizationBillingIssuesRequest)(nil), // 339: rill.admin.v1.ListOrganizationBillingIssuesRequest + (*ListOrganizationBillingIssuesResponse)(nil), // 340: rill.admin.v1.ListOrganizationBillingIssuesResponse + (*User)(nil), // 341: rill.admin.v1.User + (*Service)(nil), // 342: rill.admin.v1.Service + (*OrganizationMemberService)(nil), // 343: rill.admin.v1.OrganizationMemberService + (*ProjectMemberService)(nil), // 344: rill.admin.v1.ProjectMemberService + (*Organization)(nil), // 345: rill.admin.v1.Organization + (*Subscription)(nil), // 346: rill.admin.v1.Subscription + (*UserQuotas)(nil), // 347: rill.admin.v1.UserQuotas + (*OrganizationQuotas)(nil), // 348: rill.admin.v1.OrganizationQuotas + (*Project)(nil), // 349: rill.admin.v1.Project + (*Deployment)(nil), // 350: rill.admin.v1.Deployment + (*ProvisionerResource)(nil), // 351: rill.admin.v1.ProvisionerResource + (*OrganizationPermissions)(nil), // 352: rill.admin.v1.OrganizationPermissions + (*ProjectPermissions)(nil), // 353: rill.admin.v1.ProjectPermissions + (*OrganizationRole)(nil), // 354: rill.admin.v1.OrganizationRole + (*ProjectRole)(nil), // 355: rill.admin.v1.ProjectRole + (*OrganizationMemberUser)(nil), // 356: rill.admin.v1.OrganizationMemberUser + (*ProjectMemberUser)(nil), // 357: rill.admin.v1.ProjectMemberUser + (*UsergroupMemberUser)(nil), // 358: rill.admin.v1.UsergroupMemberUser + (*OrganizationInvite)(nil), // 359: rill.admin.v1.OrganizationInvite + (*ProjectInvite)(nil), // 360: rill.admin.v1.ProjectInvite + (*WhitelistedDomain)(nil), // 361: rill.admin.v1.WhitelistedDomain + (*Bookmark)(nil), // 362: rill.admin.v1.Bookmark + (*ServiceToken)(nil), // 363: rill.admin.v1.ServiceToken + (*UserAuthToken)(nil), // 364: rill.admin.v1.UserAuthToken + (*MagicAuthToken)(nil), // 365: rill.admin.v1.MagicAuthToken + (*VirtualFile)(nil), // 366: rill.admin.v1.VirtualFile + (*ReportOptions)(nil), // 367: rill.admin.v1.ReportOptions + (*AlertOptions)(nil), // 368: rill.admin.v1.AlertOptions + (*BillingPlan)(nil), // 369: rill.admin.v1.BillingPlan + (*Quotas)(nil), // 370: rill.admin.v1.Quotas + (*Usergroup)(nil), // 371: rill.admin.v1.Usergroup + (*MemberUsergroup)(nil), // 372: rill.admin.v1.MemberUsergroup + (*BillingIssue)(nil), // 373: rill.admin.v1.BillingIssue + (*BillingIssueMetadata)(nil), // 374: rill.admin.v1.BillingIssueMetadata + (*BillingIssueMetadataOnTrial)(nil), // 375: rill.admin.v1.BillingIssueMetadataOnTrial + (*BillingIssueMetadataTrialEnded)(nil), // 376: rill.admin.v1.BillingIssueMetadataTrialEnded + (*BillingIssueMetadataNoPaymentMethod)(nil), // 377: rill.admin.v1.BillingIssueMetadataNoPaymentMethod + (*BillingIssueMetadataNoBillableAddress)(nil), // 378: rill.admin.v1.BillingIssueMetadataNoBillableAddress + (*BillingIssueMetadataPaymentFailed)(nil), // 379: rill.admin.v1.BillingIssueMetadataPaymentFailed + (*BillingIssueMetadataPaymentFailedMeta)(nil), // 380: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta + (*BillingIssueMetadataSubscriptionCancelled)(nil), // 381: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled + (*BillingIssueMetadataNeverSubscribed)(nil), // 382: rill.admin.v1.BillingIssueMetadataNeverSubscribed + (*BillingIssueMetadataOnCreditTrial)(nil), // 383: rill.admin.v1.BillingIssueMetadataOnCreditTrial + (*BillingIssueMetadataTrialCreditsDepleted)(nil), // 384: rill.admin.v1.BillingIssueMetadataTrialCreditsDepleted + nil, // 385: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry + nil, // 386: rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry + nil, // 387: rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry + nil, // 388: rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry + nil, // 389: rill.admin.v1.GetIFrameRequest.QueryEntry + nil, // 390: rill.admin.v1.CreateAssetResponse.SigningHeadersEntry + nil, // 391: rill.admin.v1.GetDeploymentConfigResponse.VariablesLegacyEntry + nil, // 392: rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry + nil, // 393: rill.admin.v1.GetDeploymentConfigResponse.SystemVariablesEntry + nil, // 394: rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry + nil, // 395: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry + nil, // 396: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry + (*ListGithubUserReposResponse_Repo)(nil), // 397: rill.admin.v1.ListGithubUserReposResponse.Repo + (*GetReportMetaResponse_DeliveryMeta)(nil), // 398: rill.admin.v1.GetReportMetaResponse.DeliveryMeta + nil, // 399: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry + nil, // 400: rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry + (*GetAlertMetaResponse_URLs)(nil), // 401: rill.admin.v1.GetAlertMetaResponse.URLs + nil, // 402: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry + nil, // 403: rill.admin.v1.Project.AnnotationsEntry + nil, // 404: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry + (*timestamppb.Timestamp)(nil), // 405: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 406: google.protobuf.Struct + (v1.ExportFormat)(0), // 407: rill.runtime.v1.ExportFormat + (*v1.Expression)(nil), // 408: rill.runtime.v1.Expression } var file_rill_admin_v1_api_proto_depIdxs = []int32{ - 395, // 0: rill.admin.v1.PingResponse.time:type_name -> google.protobuf.Timestamp - 335, // 1: rill.admin.v1.ListOrganizationsResponse.organizations:type_name -> rill.admin.v1.Organization - 335, // 2: rill.admin.v1.GetOrganizationResponse.organization:type_name -> rill.admin.v1.Organization - 342, // 3: rill.admin.v1.GetOrganizationResponse.permissions:type_name -> rill.admin.v1.OrganizationPermissions - 335, // 4: rill.admin.v1.CreateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization - 335, // 5: rill.admin.v1.UpdateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization - 340, // 6: rill.admin.v1.ListDeploymentsResponse.deployments:type_name -> rill.admin.v1.Deployment - 340, // 7: rill.admin.v1.CreateDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment - 396, // 8: rill.admin.v1.GetDeploymentRequest.attributes:type_name -> google.protobuf.Struct - 340, // 9: rill.admin.v1.StartDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment - 339, // 10: rill.admin.v1.ListProjectsForOrganizationResponse.projects:type_name -> rill.admin.v1.Project - 339, // 11: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.projects:type_name -> rill.admin.v1.Project - 375, // 12: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.project_roles:type_name -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry - 339, // 13: rill.admin.v1.ListProjectsForFingerprintResponse.projects:type_name -> rill.admin.v1.Project - 339, // 14: rill.admin.v1.GetProjectResponse.project:type_name -> rill.admin.v1.Project - 340, // 15: rill.admin.v1.GetProjectResponse.deployment:type_name -> rill.admin.v1.Deployment - 343, // 16: rill.admin.v1.GetProjectResponse.project_permissions:type_name -> rill.admin.v1.ProjectPermissions - 339, // 17: rill.admin.v1.ListProjectsForUserByNameResponse.projects:type_name -> rill.admin.v1.Project - 339, // 18: rill.admin.v1.GetProjectByIDResponse.project:type_name -> rill.admin.v1.Project - 376, // 19: rill.admin.v1.SearchProjectNamesRequest.annotations:type_name -> rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry + 405, // 0: rill.admin.v1.PingResponse.time:type_name -> google.protobuf.Timestamp + 345, // 1: rill.admin.v1.ListOrganizationsResponse.organizations:type_name -> rill.admin.v1.Organization + 345, // 2: rill.admin.v1.GetOrganizationResponse.organization:type_name -> rill.admin.v1.Organization + 352, // 3: rill.admin.v1.GetOrganizationResponse.permissions:type_name -> rill.admin.v1.OrganizationPermissions + 345, // 4: rill.admin.v1.CreateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization + 345, // 5: rill.admin.v1.UpdateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization + 350, // 6: rill.admin.v1.ListDeploymentsResponse.deployments:type_name -> rill.admin.v1.Deployment + 350, // 7: rill.admin.v1.CreateDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment + 406, // 8: rill.admin.v1.GetDeploymentRequest.attributes:type_name -> google.protobuf.Struct + 350, // 9: rill.admin.v1.StartDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment + 349, // 10: rill.admin.v1.ListProjectsForOrganizationResponse.projects:type_name -> rill.admin.v1.Project + 349, // 11: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.projects:type_name -> rill.admin.v1.Project + 385, // 12: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.project_roles:type_name -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry + 349, // 13: rill.admin.v1.ListProjectsForFingerprintResponse.projects:type_name -> rill.admin.v1.Project + 349, // 14: rill.admin.v1.GetProjectResponse.project:type_name -> rill.admin.v1.Project + 350, // 15: rill.admin.v1.GetProjectResponse.deployment:type_name -> rill.admin.v1.Deployment + 353, // 16: rill.admin.v1.GetProjectResponse.project_permissions:type_name -> rill.admin.v1.ProjectPermissions + 349, // 17: rill.admin.v1.ListProjectsForUserByNameResponse.projects:type_name -> rill.admin.v1.Project + 349, // 18: rill.admin.v1.GetProjectByIDResponse.project:type_name -> rill.admin.v1.Project + 386, // 19: rill.admin.v1.SearchProjectNamesRequest.annotations:type_name -> rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry 48, // 20: rill.admin.v1.GetProjectVariablesResponse.variables:type_name -> rill.admin.v1.ProjectVariable - 377, // 21: rill.admin.v1.GetProjectVariablesResponse.variables_map:type_name -> rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry - 395, // 22: rill.admin.v1.ProjectVariable.created_on:type_name -> google.protobuf.Timestamp - 395, // 23: rill.admin.v1.ProjectVariable.updated_on:type_name -> google.protobuf.Timestamp - 378, // 24: rill.admin.v1.UpdateProjectVariablesRequest.variables:type_name -> rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry + 387, // 21: rill.admin.v1.GetProjectVariablesResponse.variables_map:type_name -> rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry + 405, // 22: rill.admin.v1.ProjectVariable.created_on:type_name -> google.protobuf.Timestamp + 405, // 23: rill.admin.v1.ProjectVariable.updated_on:type_name -> google.protobuf.Timestamp + 388, // 24: rill.admin.v1.UpdateProjectVariablesRequest.variables:type_name -> rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry 48, // 25: rill.admin.v1.UpdateProjectVariablesResponse.variables:type_name -> rill.admin.v1.ProjectVariable - 331, // 26: rill.admin.v1.SearchProjectUsersResponse.users:type_name -> rill.admin.v1.User - 396, // 27: rill.admin.v1.GetDeploymentCredentialsRequest.attributes:type_name -> google.protobuf.Struct - 396, // 28: rill.admin.v1.GetIFrameRequest.attributes:type_name -> google.protobuf.Struct - 379, // 29: rill.admin.v1.GetIFrameRequest.query:type_name -> rill.admin.v1.GetIFrameRequest.QueryEntry - 333, // 30: rill.admin.v1.ListServicesResponse.services:type_name -> rill.admin.v1.OrganizationMemberService - 334, // 31: rill.admin.v1.ListProjectMemberServicesResponse.services:type_name -> rill.admin.v1.ProjectMemberService - 396, // 32: rill.admin.v1.CreateServiceRequest.attributes:type_name -> google.protobuf.Struct - 332, // 33: rill.admin.v1.CreateServiceResponse.service:type_name -> rill.admin.v1.Service - 333, // 34: rill.admin.v1.GetServiceResponse.service:type_name -> rill.admin.v1.OrganizationMemberService - 334, // 35: rill.admin.v1.GetServiceResponse.project_memberships:type_name -> rill.admin.v1.ProjectMemberService - 396, // 36: rill.admin.v1.UpdateServiceRequest.attributes:type_name -> google.protobuf.Struct - 332, // 37: rill.admin.v1.UpdateServiceResponse.service:type_name -> rill.admin.v1.Service - 332, // 38: rill.admin.v1.DeleteServiceResponse.service:type_name -> rill.admin.v1.Service - 339, // 39: rill.admin.v1.CreateProjectResponse.project:type_name -> rill.admin.v1.Project - 339, // 40: rill.admin.v1.UpdateProjectResponse.project:type_name -> rill.admin.v1.Project - 380, // 41: rill.admin.v1.CreateAssetResponse.signing_headers:type_name -> rill.admin.v1.CreateAssetResponse.SigningHeadersEntry - 396, // 42: rill.admin.v1.ProvisionRequest.args:type_name -> google.protobuf.Struct - 341, // 43: rill.admin.v1.ProvisionResponse.resource:type_name -> rill.admin.v1.ProvisionerResource + 341, // 26: rill.admin.v1.SearchProjectUsersResponse.users:type_name -> rill.admin.v1.User + 406, // 27: rill.admin.v1.GetDeploymentCredentialsRequest.attributes:type_name -> google.protobuf.Struct + 406, // 28: rill.admin.v1.GetIFrameRequest.attributes:type_name -> google.protobuf.Struct + 389, // 29: rill.admin.v1.GetIFrameRequest.query:type_name -> rill.admin.v1.GetIFrameRequest.QueryEntry + 343, // 30: rill.admin.v1.ListServicesResponse.services:type_name -> rill.admin.v1.OrganizationMemberService + 344, // 31: rill.admin.v1.ListProjectMemberServicesResponse.services:type_name -> rill.admin.v1.ProjectMemberService + 406, // 32: rill.admin.v1.CreateServiceRequest.attributes:type_name -> google.protobuf.Struct + 342, // 33: rill.admin.v1.CreateServiceResponse.service:type_name -> rill.admin.v1.Service + 343, // 34: rill.admin.v1.GetServiceResponse.service:type_name -> rill.admin.v1.OrganizationMemberService + 344, // 35: rill.admin.v1.GetServiceResponse.project_memberships:type_name -> rill.admin.v1.ProjectMemberService + 406, // 36: rill.admin.v1.UpdateServiceRequest.attributes:type_name -> google.protobuf.Struct + 342, // 37: rill.admin.v1.UpdateServiceResponse.service:type_name -> rill.admin.v1.Service + 342, // 38: rill.admin.v1.DeleteServiceResponse.service:type_name -> rill.admin.v1.Service + 349, // 39: rill.admin.v1.CreateProjectResponse.project:type_name -> rill.admin.v1.Project + 349, // 40: rill.admin.v1.UpdateProjectResponse.project:type_name -> rill.admin.v1.Project + 390, // 41: rill.admin.v1.CreateAssetResponse.signing_headers:type_name -> rill.admin.v1.CreateAssetResponse.SigningHeadersEntry + 406, // 42: rill.admin.v1.ProvisionRequest.args:type_name -> google.protobuf.Struct + 351, // 43: rill.admin.v1.ProvisionResponse.resource:type_name -> rill.admin.v1.ProvisionerResource 48, // 44: rill.admin.v1.GetDeploymentConfigResponse.variables:type_name -> rill.admin.v1.ProjectVariable - 381, // 45: rill.admin.v1.GetDeploymentConfigResponse.variables_legacy:type_name -> rill.admin.v1.GetDeploymentConfigResponse.VariablesLegacyEntry - 382, // 46: rill.admin.v1.GetDeploymentConfigResponse.annotations:type_name -> rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry - 395, // 47: rill.admin.v1.GetDeploymentConfigResponse.updated_on:type_name -> google.protobuf.Timestamp - 396, // 48: rill.admin.v1.GetDeploymentConfigResponse.duckdb_connector_config:type_name -> google.protobuf.Struct - 383, // 49: rill.admin.v1.GetDeploymentConfigResponse.system_variables:type_name -> rill.admin.v1.GetDeploymentConfigResponse.SystemVariablesEntry - 344, // 50: rill.admin.v1.ListRolesResponse.organization_roles:type_name -> rill.admin.v1.OrganizationRole - 345, // 51: rill.admin.v1.ListRolesResponse.project_roles:type_name -> rill.admin.v1.ProjectRole - 346, // 52: rill.admin.v1.ListOrganizationMemberUsersResponse.members:type_name -> rill.admin.v1.OrganizationMemberUser - 349, // 53: rill.admin.v1.ListOrganizationInvitesResponse.invites:type_name -> rill.admin.v1.OrganizationInvite - 346, // 54: rill.admin.v1.GetOrganizationMemberUserResponse.member:type_name -> rill.admin.v1.OrganizationMemberUser - 347, // 55: rill.admin.v1.GetProjectMemberUserResponse.member:type_name -> rill.admin.v1.ProjectMemberUser - 362, // 56: rill.admin.v1.ListUsergroupsForProjectAndUserResponse.usergroups:type_name -> rill.admin.v1.MemberUsergroup - 396, // 57: rill.admin.v1.UpdateOrganizationMemberUserAttributesRequest.attributes:type_name -> google.protobuf.Struct - 331, // 58: rill.admin.v1.ListSuperusersResponse.users:type_name -> rill.admin.v1.User - 331, // 59: rill.admin.v1.SudoGetResourceResponse.user:type_name -> rill.admin.v1.User - 335, // 60: rill.admin.v1.SudoGetResourceResponse.org:type_name -> rill.admin.v1.Organization - 339, // 61: rill.admin.v1.SudoGetResourceResponse.project:type_name -> rill.admin.v1.Project - 340, // 62: rill.admin.v1.SudoGetResourceResponse.deployment:type_name -> rill.admin.v1.Deployment - 340, // 63: rill.admin.v1.SudoGetResourceResponse.instance:type_name -> rill.admin.v1.Deployment - 335, // 64: rill.admin.v1.SudoUpdateOrganizationQuotasResponse.organization:type_name -> rill.admin.v1.Organization - 335, // 65: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.organization:type_name -> rill.admin.v1.Organization - 336, // 66: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.subscription:type_name -> rill.admin.v1.Subscription - 395, // 67: rill.admin.v1.SudoReportUsageRequest.end_time:type_name -> google.protobuf.Timestamp - 395, // 68: rill.admin.v1.SudoReportUsageResponse.start_time:type_name -> google.protobuf.Timestamp - 395, // 69: rill.admin.v1.SudoReportUsageResponse.end_time:type_name -> google.protobuf.Timestamp - 335, // 70: rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse.organization:type_name -> rill.admin.v1.Organization - 331, // 71: rill.admin.v1.SudoUpdateUserQuotasResponse.user:type_name -> rill.admin.v1.User - 384, // 72: rill.admin.v1.SudoUpdateAnnotationsRequest.annotations:type_name -> rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry - 339, // 73: rill.admin.v1.SudoUpdateAnnotationsResponse.project:type_name -> rill.admin.v1.Project + 391, // 45: rill.admin.v1.GetDeploymentConfigResponse.variables_legacy:type_name -> rill.admin.v1.GetDeploymentConfigResponse.VariablesLegacyEntry + 392, // 46: rill.admin.v1.GetDeploymentConfigResponse.annotations:type_name -> rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry + 405, // 47: rill.admin.v1.GetDeploymentConfigResponse.updated_on:type_name -> google.protobuf.Timestamp + 406, // 48: rill.admin.v1.GetDeploymentConfigResponse.duckdb_connector_config:type_name -> google.protobuf.Struct + 393, // 49: rill.admin.v1.GetDeploymentConfigResponse.system_variables:type_name -> rill.admin.v1.GetDeploymentConfigResponse.SystemVariablesEntry + 354, // 50: rill.admin.v1.ListRolesResponse.organization_roles:type_name -> rill.admin.v1.OrganizationRole + 355, // 51: rill.admin.v1.ListRolesResponse.project_roles:type_name -> rill.admin.v1.ProjectRole + 356, // 52: rill.admin.v1.ListOrganizationMemberUsersResponse.members:type_name -> rill.admin.v1.OrganizationMemberUser + 359, // 53: rill.admin.v1.ListOrganizationInvitesResponse.invites:type_name -> rill.admin.v1.OrganizationInvite + 356, // 54: rill.admin.v1.GetOrganizationMemberUserResponse.member:type_name -> rill.admin.v1.OrganizationMemberUser + 357, // 55: rill.admin.v1.GetProjectMemberUserResponse.member:type_name -> rill.admin.v1.ProjectMemberUser + 372, // 56: rill.admin.v1.ListUsergroupsForProjectAndUserResponse.usergroups:type_name -> rill.admin.v1.MemberUsergroup + 406, // 57: rill.admin.v1.UpdateOrganizationMemberUserAttributesRequest.attributes:type_name -> google.protobuf.Struct + 341, // 58: rill.admin.v1.ListSuperusersResponse.users:type_name -> rill.admin.v1.User + 341, // 59: rill.admin.v1.SudoGetResourceResponse.user:type_name -> rill.admin.v1.User + 345, // 60: rill.admin.v1.SudoGetResourceResponse.org:type_name -> rill.admin.v1.Organization + 349, // 61: rill.admin.v1.SudoGetResourceResponse.project:type_name -> rill.admin.v1.Project + 350, // 62: rill.admin.v1.SudoGetResourceResponse.deployment:type_name -> rill.admin.v1.Deployment + 350, // 63: rill.admin.v1.SudoGetResourceResponse.instance:type_name -> rill.admin.v1.Deployment + 345, // 64: rill.admin.v1.SudoUpdateOrganizationQuotasResponse.organization:type_name -> rill.admin.v1.Organization + 345, // 65: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.organization:type_name -> rill.admin.v1.Organization + 346, // 66: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.subscription:type_name -> rill.admin.v1.Subscription + 405, // 67: rill.admin.v1.SudoReportUsageRequest.end_time:type_name -> google.protobuf.Timestamp + 405, // 68: rill.admin.v1.SudoReportUsageResponse.start_time:type_name -> google.protobuf.Timestamp + 405, // 69: rill.admin.v1.SudoReportUsageResponse.end_time:type_name -> google.protobuf.Timestamp + 345, // 70: rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse.organization:type_name -> rill.admin.v1.Organization + 341, // 71: rill.admin.v1.SudoUpdateUserQuotasResponse.user:type_name -> rill.admin.v1.User + 394, // 72: rill.admin.v1.SudoUpdateAnnotationsRequest.annotations:type_name -> rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry + 349, // 73: rill.admin.v1.SudoUpdateAnnotationsResponse.project:type_name -> rill.admin.v1.Project 3, // 74: rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest.type:type_name -> rill.admin.v1.BillingIssueType - 347, // 75: rill.admin.v1.ListProjectMemberUsersResponse.members:type_name -> rill.admin.v1.ProjectMemberUser - 350, // 76: rill.admin.v1.ListProjectInvitesResponse.invites:type_name -> rill.admin.v1.ProjectInvite + 357, // 75: rill.admin.v1.ListProjectMemberUsersResponse.members:type_name -> rill.admin.v1.ProjectMemberUser + 360, // 76: rill.admin.v1.ListProjectInvitesResponse.invites:type_name -> rill.admin.v1.ProjectInvite 231, // 77: rill.admin.v1.AddProjectMemberUserRequest.resources:type_name -> rill.admin.v1.ResourceName 231, // 78: rill.admin.v1.SetProjectMemberUserRoleRequest.resources:type_name -> rill.admin.v1.ResourceName - 361, // 79: rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse.usergroups:type_name -> rill.admin.v1.Usergroup - 361, // 80: rill.admin.v1.CreateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup - 361, // 81: rill.admin.v1.GetUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup - 361, // 82: rill.admin.v1.UpdateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup - 362, // 83: rill.admin.v1.ListOrganizationMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup - 362, // 84: rill.admin.v1.ListProjectMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup + 371, // 79: rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse.usergroups:type_name -> rill.admin.v1.Usergroup + 371, // 80: rill.admin.v1.CreateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup + 371, // 81: rill.admin.v1.GetUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup + 371, // 82: rill.admin.v1.UpdateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup + 372, // 83: rill.admin.v1.ListOrganizationMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup + 372, // 84: rill.admin.v1.ListProjectMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup 231, // 85: rill.admin.v1.AddProjectMemberUsergroupRequest.resources:type_name -> rill.admin.v1.ResourceName 231, // 86: rill.admin.v1.SetProjectMemberUsergroupRoleRequest.resources:type_name -> rill.admin.v1.ResourceName - 348, // 87: rill.admin.v1.ListUsergroupMemberUsersResponse.members:type_name -> rill.admin.v1.UsergroupMemberUser + 358, // 87: rill.admin.v1.ListUsergroupMemberUsersResponse.members:type_name -> rill.admin.v1.UsergroupMemberUser 189, // 88: rill.admin.v1.UpdateUserPreferencesRequest.preferences:type_name -> rill.admin.v1.UserPreferences 189, // 89: rill.admin.v1.UpdateUserPreferencesResponse.preferences:type_name -> rill.admin.v1.UserPreferences - 331, // 90: rill.admin.v1.GetUserResponse.user:type_name -> rill.admin.v1.User - 331, // 91: rill.admin.v1.GetCurrentUserResponse.user:type_name -> rill.admin.v1.User + 341, // 90: rill.admin.v1.GetUserResponse.user:type_name -> rill.admin.v1.User + 341, // 91: rill.admin.v1.GetCurrentUserResponse.user:type_name -> rill.admin.v1.User 189, // 92: rill.admin.v1.GetCurrentUserResponse.preferences:type_name -> rill.admin.v1.UserPreferences - 354, // 93: rill.admin.v1.ListUserAuthTokensResponse.tokens:type_name -> rill.admin.v1.UserAuthToken - 352, // 94: rill.admin.v1.ListBookmarksResponse.bookmarks:type_name -> rill.admin.v1.Bookmark - 352, // 95: rill.admin.v1.GetBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark - 352, // 96: rill.admin.v1.CreateBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark - 331, // 97: rill.admin.v1.SearchUsersResponse.users:type_name -> rill.admin.v1.User - 353, // 98: rill.admin.v1.ListServiceAuthTokensResponse.tokens:type_name -> rill.admin.v1.ServiceToken - 385, // 99: rill.admin.v1.IssueMagicAuthTokenRequest.metrics_view_filters:type_name -> rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry + 364, // 93: rill.admin.v1.ListUserAuthTokensResponse.tokens:type_name -> rill.admin.v1.UserAuthToken + 362, // 94: rill.admin.v1.ListBookmarksResponse.bookmarks:type_name -> rill.admin.v1.Bookmark + 362, // 95: rill.admin.v1.GetBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark + 362, // 96: rill.admin.v1.CreateBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark + 341, // 97: rill.admin.v1.SearchUsersResponse.users:type_name -> rill.admin.v1.User + 363, // 98: rill.admin.v1.ListServiceAuthTokensResponse.tokens:type_name -> rill.admin.v1.ServiceToken + 395, // 99: rill.admin.v1.IssueMagicAuthTokenRequest.metrics_view_filters:type_name -> rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry 231, // 100: rill.admin.v1.IssueMagicAuthTokenRequest.resources:type_name -> rill.admin.v1.ResourceName - 355, // 101: rill.admin.v1.ListMagicAuthTokensResponse.tokens:type_name -> rill.admin.v1.MagicAuthToken - 355, // 102: rill.admin.v1.GetCurrentMagicAuthTokenResponse.token:type_name -> rill.admin.v1.MagicAuthToken + 365, // 101: rill.admin.v1.ListMagicAuthTokensResponse.tokens:type_name -> rill.admin.v1.MagicAuthToken + 365, // 102: rill.admin.v1.GetCurrentMagicAuthTokenResponse.token:type_name -> rill.admin.v1.MagicAuthToken 0, // 103: rill.admin.v1.GetGithubUserStatusResponse.user_installation_permission:type_name -> rill.admin.v1.GithubPermission - 386, // 104: rill.admin.v1.GetGithubUserStatusResponse.organization_installation_permissions:type_name -> rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry - 387, // 105: rill.admin.v1.ListGithubUserReposResponse.repos:type_name -> rill.admin.v1.ListGithubUserReposResponse.Repo + 396, // 104: rill.admin.v1.GetGithubUserStatusResponse.organization_installation_permissions:type_name -> rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry + 397, // 105: rill.admin.v1.ListGithubUserReposResponse.repos:type_name -> rill.admin.v1.ListGithubUserReposResponse.Repo 5, // 106: rill.admin.v1.GetGithubPullRequestResponse.pr_state:type_name -> rill.admin.v1.GetGithubPullRequestResponse.State - 395, // 107: rill.admin.v1.CreateManagedGitRepoResponse.password_expires_at:type_name -> google.protobuf.Timestamp - 395, // 108: rill.admin.v1.GetCloneCredentialsResponse.git_password_expires_at:type_name -> google.protobuf.Timestamp - 351, // 109: rill.admin.v1.ListWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain - 351, // 110: rill.admin.v1.ListProjectWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain - 395, // 111: rill.admin.v1.GetRepoMetaResponse.expires_on:type_name -> google.protobuf.Timestamp - 395, // 112: rill.admin.v1.GetRepoMetaResponse.last_updated_on:type_name -> google.protobuf.Timestamp - 395, // 113: rill.admin.v1.GetRepoMetaResponse.archive_created_on:type_name -> google.protobuf.Timestamp - 356, // 114: rill.admin.v1.PullVirtualRepoResponse.files:type_name -> rill.admin.v1.VirtualFile - 356, // 115: rill.admin.v1.GetVirtualFileResponse.file:type_name -> rill.admin.v1.VirtualFile - 395, // 116: rill.admin.v1.GetReportMetaRequest.execution_time:type_name -> google.protobuf.Timestamp + 405, // 107: rill.admin.v1.CreateManagedGitRepoResponse.password_expires_at:type_name -> google.protobuf.Timestamp + 405, // 108: rill.admin.v1.GetCloneCredentialsResponse.git_password_expires_at:type_name -> google.protobuf.Timestamp + 361, // 109: rill.admin.v1.ListWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain + 361, // 110: rill.admin.v1.ListProjectWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain + 405, // 111: rill.admin.v1.GetRepoMetaResponse.expires_on:type_name -> google.protobuf.Timestamp + 405, // 112: rill.admin.v1.GetRepoMetaResponse.last_updated_on:type_name -> google.protobuf.Timestamp + 405, // 113: rill.admin.v1.GetRepoMetaResponse.archive_created_on:type_name -> google.protobuf.Timestamp + 366, // 114: rill.admin.v1.PullVirtualRepoResponse.files:type_name -> rill.admin.v1.VirtualFile + 366, // 115: rill.admin.v1.GetVirtualFileResponse.file:type_name -> rill.admin.v1.VirtualFile + 405, // 116: rill.admin.v1.GetReportMetaRequest.execution_time:type_name -> google.protobuf.Timestamp 231, // 117: rill.admin.v1.GetReportMetaRequest.resources:type_name -> rill.admin.v1.ResourceName - 389, // 118: rill.admin.v1.GetReportMetaResponse.delivery_meta:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry - 390, // 119: rill.admin.v1.GetAlertMetaRequest.annotations:type_name -> rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry - 392, // 120: rill.admin.v1.GetAlertMetaResponse.recipient_urls:type_name -> rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry - 396, // 121: rill.admin.v1.GetAlertMetaResponse.query_for_attributes:type_name -> google.protobuf.Struct - 357, // 122: rill.admin.v1.CreateReportRequest.options:type_name -> rill.admin.v1.ReportOptions - 357, // 123: rill.admin.v1.EditReportRequest.options:type_name -> rill.admin.v1.ReportOptions - 357, // 124: rill.admin.v1.GenerateReportYAMLRequest.options:type_name -> rill.admin.v1.ReportOptions - 358, // 125: rill.admin.v1.CreateAlertRequest.options:type_name -> rill.admin.v1.AlertOptions - 358, // 126: rill.admin.v1.EditAlertRequest.options:type_name -> rill.admin.v1.AlertOptions - 358, // 127: rill.admin.v1.GenerateAlertYAMLRequest.options:type_name -> rill.admin.v1.AlertOptions - 335, // 128: rill.admin.v1.GetBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization - 336, // 129: rill.admin.v1.GetBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription - 335, // 130: rill.admin.v1.UpdateBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization - 336, // 131: rill.admin.v1.UpdateBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription - 335, // 132: rill.admin.v1.RenewBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization - 336, // 133: rill.admin.v1.RenewBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription - 359, // 134: rill.admin.v1.ListPublicBillingPlansResponse.plans:type_name -> rill.admin.v1.BillingPlan - 396, // 135: rill.admin.v1.TelemetryRequest.event:type_name -> google.protobuf.Struct - 363, // 136: rill.admin.v1.ListOrganizationBillingIssuesResponse.issues:type_name -> rill.admin.v1.BillingIssue - 337, // 137: rill.admin.v1.User.quotas:type_name -> rill.admin.v1.UserQuotas - 395, // 138: rill.admin.v1.User.created_on:type_name -> google.protobuf.Timestamp - 395, // 139: rill.admin.v1.User.updated_on:type_name -> google.protobuf.Timestamp - 396, // 140: rill.admin.v1.Service.attributes:type_name -> google.protobuf.Struct - 395, // 141: rill.admin.v1.Service.created_on:type_name -> google.protobuf.Timestamp - 395, // 142: rill.admin.v1.Service.updated_on:type_name -> google.protobuf.Timestamp - 396, // 143: rill.admin.v1.OrganizationMemberService.attributes:type_name -> google.protobuf.Struct - 395, // 144: rill.admin.v1.OrganizationMemberService.created_on:type_name -> google.protobuf.Timestamp - 395, // 145: rill.admin.v1.OrganizationMemberService.updated_on:type_name -> google.protobuf.Timestamp - 396, // 146: rill.admin.v1.ProjectMemberService.attributes:type_name -> google.protobuf.Struct - 395, // 147: rill.admin.v1.ProjectMemberService.created_on:type_name -> google.protobuf.Timestamp - 395, // 148: rill.admin.v1.ProjectMemberService.updated_on:type_name -> google.protobuf.Timestamp - 338, // 149: rill.admin.v1.Organization.quotas:type_name -> rill.admin.v1.OrganizationQuotas - 395, // 150: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp - 395, // 151: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp - 359, // 152: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan - 395, // 153: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp - 395, // 154: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp - 395, // 155: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp - 395, // 156: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp - 395, // 157: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp - 393, // 158: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry - 395, // 159: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp - 395, // 160: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp + 399, // 118: rill.admin.v1.GetReportMetaResponse.delivery_meta:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry + 400, // 119: rill.admin.v1.GetAlertMetaRequest.annotations:type_name -> rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry + 402, // 120: rill.admin.v1.GetAlertMetaResponse.recipient_urls:type_name -> rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry + 406, // 121: rill.admin.v1.GetAlertMetaResponse.query_for_attributes:type_name -> google.protobuf.Struct + 367, // 122: rill.admin.v1.CreateReportRequest.options:type_name -> rill.admin.v1.ReportOptions + 367, // 123: rill.admin.v1.EditReportRequest.options:type_name -> rill.admin.v1.ReportOptions + 367, // 124: rill.admin.v1.GenerateReportYAMLRequest.options:type_name -> rill.admin.v1.ReportOptions + 368, // 125: rill.admin.v1.CreateAlertRequest.options:type_name -> rill.admin.v1.AlertOptions + 368, // 126: rill.admin.v1.EditAlertRequest.options:type_name -> rill.admin.v1.AlertOptions + 368, // 127: rill.admin.v1.GenerateAlertYAMLRequest.options:type_name -> rill.admin.v1.AlertOptions + 345, // 128: rill.admin.v1.GetBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization + 346, // 129: rill.admin.v1.GetBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription + 345, // 130: rill.admin.v1.UpdateBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization + 346, // 131: rill.admin.v1.UpdateBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription + 345, // 132: rill.admin.v1.RenewBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization + 346, // 133: rill.admin.v1.RenewBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription + 369, // 134: rill.admin.v1.ListPublicBillingPlansResponse.plans:type_name -> rill.admin.v1.BillingPlan + 406, // 135: rill.admin.v1.TelemetryRequest.event:type_name -> google.protobuf.Struct + 373, // 136: rill.admin.v1.ListOrganizationBillingIssuesResponse.issues:type_name -> rill.admin.v1.BillingIssue + 347, // 137: rill.admin.v1.User.quotas:type_name -> rill.admin.v1.UserQuotas + 405, // 138: rill.admin.v1.User.created_on:type_name -> google.protobuf.Timestamp + 405, // 139: rill.admin.v1.User.updated_on:type_name -> google.protobuf.Timestamp + 406, // 140: rill.admin.v1.Service.attributes:type_name -> google.protobuf.Struct + 405, // 141: rill.admin.v1.Service.created_on:type_name -> google.protobuf.Timestamp + 405, // 142: rill.admin.v1.Service.updated_on:type_name -> google.protobuf.Timestamp + 406, // 143: rill.admin.v1.OrganizationMemberService.attributes:type_name -> google.protobuf.Struct + 405, // 144: rill.admin.v1.OrganizationMemberService.created_on:type_name -> google.protobuf.Timestamp + 405, // 145: rill.admin.v1.OrganizationMemberService.updated_on:type_name -> google.protobuf.Timestamp + 406, // 146: rill.admin.v1.ProjectMemberService.attributes:type_name -> google.protobuf.Struct + 405, // 147: rill.admin.v1.ProjectMemberService.created_on:type_name -> google.protobuf.Timestamp + 405, // 148: rill.admin.v1.ProjectMemberService.updated_on:type_name -> google.protobuf.Timestamp + 348, // 149: rill.admin.v1.Organization.quotas:type_name -> rill.admin.v1.OrganizationQuotas + 405, // 150: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp + 405, // 151: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp + 369, // 152: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan + 405, // 153: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp + 405, // 154: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp + 405, // 155: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp + 405, // 156: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp + 405, // 157: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp + 403, // 158: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry + 405, // 159: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp + 405, // 160: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp 1, // 161: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus - 395, // 162: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp - 395, // 163: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp - 395, // 164: rill.admin.v1.Deployment.used_on:type_name -> google.protobuf.Timestamp - 396, // 165: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct - 396, // 166: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct - 342, // 167: rill.admin.v1.OrganizationRole.permissions:type_name -> rill.admin.v1.OrganizationPermissions - 343, // 168: rill.admin.v1.ProjectRole.permissions:type_name -> rill.admin.v1.ProjectPermissions - 396, // 169: rill.admin.v1.OrganizationMemberUser.attributes:type_name -> google.protobuf.Struct - 395, // 170: rill.admin.v1.OrganizationMemberUser.created_on:type_name -> google.protobuf.Timestamp - 395, // 171: rill.admin.v1.OrganizationMemberUser.updated_on:type_name -> google.protobuf.Timestamp - 395, // 172: rill.admin.v1.ProjectMemberUser.created_on:type_name -> google.protobuf.Timestamp - 395, // 173: rill.admin.v1.ProjectMemberUser.updated_on:type_name -> google.protobuf.Timestamp + 405, // 162: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp + 405, // 163: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp + 405, // 164: rill.admin.v1.Deployment.used_on:type_name -> google.protobuf.Timestamp + 406, // 165: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct + 406, // 166: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct + 352, // 167: rill.admin.v1.OrganizationRole.permissions:type_name -> rill.admin.v1.OrganizationPermissions + 353, // 168: rill.admin.v1.ProjectRole.permissions:type_name -> rill.admin.v1.ProjectPermissions + 406, // 169: rill.admin.v1.OrganizationMemberUser.attributes:type_name -> google.protobuf.Struct + 405, // 170: rill.admin.v1.OrganizationMemberUser.created_on:type_name -> google.protobuf.Timestamp + 405, // 171: rill.admin.v1.OrganizationMemberUser.updated_on:type_name -> google.protobuf.Timestamp + 405, // 172: rill.admin.v1.ProjectMemberUser.created_on:type_name -> google.protobuf.Timestamp + 405, // 173: rill.admin.v1.ProjectMemberUser.updated_on:type_name -> google.protobuf.Timestamp 231, // 174: rill.admin.v1.ProjectMemberUser.resources:type_name -> rill.admin.v1.ResourceName - 395, // 175: rill.admin.v1.UsergroupMemberUser.created_on:type_name -> google.protobuf.Timestamp - 395, // 176: rill.admin.v1.UsergroupMemberUser.updated_on:type_name -> google.protobuf.Timestamp + 405, // 175: rill.admin.v1.UsergroupMemberUser.created_on:type_name -> google.protobuf.Timestamp + 405, // 176: rill.admin.v1.UsergroupMemberUser.updated_on:type_name -> google.protobuf.Timestamp 231, // 177: rill.admin.v1.ProjectInvite.resources:type_name -> rill.admin.v1.ResourceName - 395, // 178: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp - 395, // 179: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp - 395, // 180: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp - 395, // 181: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp - 396, // 182: rill.admin.v1.UserAuthToken.attributes:type_name -> google.protobuf.Struct - 395, // 183: rill.admin.v1.UserAuthToken.created_on:type_name -> google.protobuf.Timestamp - 395, // 184: rill.admin.v1.UserAuthToken.expires_on:type_name -> google.protobuf.Timestamp - 395, // 185: rill.admin.v1.UserAuthToken.used_on:type_name -> google.protobuf.Timestamp - 395, // 186: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp - 395, // 187: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp - 395, // 188: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp - 396, // 189: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct + 405, // 178: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp + 405, // 179: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp + 405, // 180: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp + 405, // 181: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp + 406, // 182: rill.admin.v1.UserAuthToken.attributes:type_name -> google.protobuf.Struct + 405, // 183: rill.admin.v1.UserAuthToken.created_on:type_name -> google.protobuf.Timestamp + 405, // 184: rill.admin.v1.UserAuthToken.expires_on:type_name -> google.protobuf.Timestamp + 405, // 185: rill.admin.v1.UserAuthToken.used_on:type_name -> google.protobuf.Timestamp + 405, // 186: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp + 405, // 187: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp + 405, // 188: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp + 406, // 189: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct 231, // 190: rill.admin.v1.MagicAuthToken.resources:type_name -> rill.admin.v1.ResourceName - 394, // 191: rill.admin.v1.MagicAuthToken.metrics_view_filters:type_name -> rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry - 395, // 192: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp - 396, // 193: rill.admin.v1.ReportOptions.resolver_properties:type_name -> google.protobuf.Struct - 397, // 194: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat - 396, // 195: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct + 404, // 191: rill.admin.v1.MagicAuthToken.metrics_view_filters:type_name -> rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry + 405, // 192: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp + 406, // 193: rill.admin.v1.ReportOptions.resolver_properties:type_name -> google.protobuf.Struct + 407, // 194: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat + 406, // 195: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct 2, // 196: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType - 360, // 197: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas - 395, // 198: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp - 395, // 199: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp - 395, // 200: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp - 395, // 201: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp + 370, // 197: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas + 405, // 198: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp + 405, // 199: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp + 405, // 200: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp + 405, // 201: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp 231, // 202: rill.admin.v1.MemberUsergroup.resources:type_name -> rill.admin.v1.ResourceName 3, // 203: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType 4, // 204: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel - 364, // 205: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata - 395, // 206: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp - 395, // 207: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp - 365, // 208: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial - 366, // 209: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded - 367, // 210: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod - 368, // 211: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress - 369, // 212: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed - 371, // 213: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled - 372, // 214: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed - 373, // 215: rill.admin.v1.BillingIssueMetadata.on_credit_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnCreditTrial - 374, // 216: rill.admin.v1.BillingIssueMetadata.trial_credits_depleted:type_name -> rill.admin.v1.BillingIssueMetadataTrialCreditsDepleted - 395, // 217: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp - 395, // 218: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp - 395, // 219: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp - 395, // 220: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp - 370, // 221: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta - 395, // 222: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp - 395, // 223: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp - 395, // 224: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp - 395, // 225: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp - 395, // 226: rill.admin.v1.BillingIssueMetadataTrialCreditsDepleted.depleted_on:type_name -> google.protobuf.Timestamp - 347, // 227: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry.value:type_name -> rill.admin.v1.ProjectMemberUser - 398, // 228: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression + 374, // 205: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata + 405, // 206: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp + 405, // 207: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp + 375, // 208: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial + 376, // 209: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded + 377, // 210: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod + 378, // 211: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress + 379, // 212: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed + 381, // 213: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled + 382, // 214: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed + 383, // 215: rill.admin.v1.BillingIssueMetadata.on_credit_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnCreditTrial + 384, // 216: rill.admin.v1.BillingIssueMetadata.trial_credits_depleted:type_name -> rill.admin.v1.BillingIssueMetadataTrialCreditsDepleted + 405, // 217: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp + 405, // 218: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp + 405, // 219: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp + 405, // 220: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp + 380, // 221: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta + 405, // 222: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp + 405, // 223: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp + 405, // 224: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp + 405, // 225: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp + 405, // 226: rill.admin.v1.BillingIssueMetadataTrialCreditsDepleted.depleted_on:type_name -> google.protobuf.Timestamp + 357, // 227: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry.value:type_name -> rill.admin.v1.ProjectMemberUser + 408, // 228: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression 0, // 229: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission - 396, // 230: rill.admin.v1.GetReportMetaResponse.DeliveryMeta.user_attrs:type_name -> google.protobuf.Struct - 388, // 231: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMeta - 391, // 232: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetAlertMetaResponse.URLs - 398, // 233: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression + 406, // 230: rill.admin.v1.GetReportMetaResponse.DeliveryMeta.user_attrs:type_name -> google.protobuf.Struct + 398, // 231: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMeta + 401, // 232: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetAlertMetaResponse.URLs + 408, // 233: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression 6, // 234: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest 8, // 235: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest 10, // 236: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest @@ -30398,181 +31073,191 @@ var file_rill_admin_v1_api_proto_depIdxs = []int32{ 297, // 378: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest 299, // 379: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest 301, // 380: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest - 303, // 381: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest - 305, // 382: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest - 307, // 383: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest - 309, // 384: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest - 311, // 385: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest - 313, // 386: rill.admin.v1.AdminService.GetBillingCreditBalance:input_type -> rill.admin.v1.GetBillingCreditBalanceRequest - 315, // 387: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest - 317, // 388: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest - 321, // 389: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest - 323, // 390: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest - 325, // 391: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest - 327, // 392: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest - 329, // 393: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest - 7, // 394: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse - 9, // 395: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse - 11, // 396: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse - 13, // 397: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse - 15, // 398: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse - 17, // 399: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse - 19, // 400: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse - 33, // 401: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse - 35, // 402: rill.admin.v1.AdminService.ListProjectsForOrganizationAndUser:output_type -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse - 37, // 403: rill.admin.v1.AdminService.ListProjectsForFingerprint:output_type -> rill.admin.v1.ListProjectsForFingerprintResponse - 39, // 404: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse - 41, // 405: rill.admin.v1.AdminService.ListProjectsForUserByName:output_type -> rill.admin.v1.ListProjectsForUserByNameResponse - 43, // 406: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse - 45, // 407: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse - 78, // 408: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse - 80, // 409: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse - 82, // 410: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse - 47, // 411: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse - 50, // 412: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse - 84, // 413: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse - 86, // 414: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse - 88, // 415: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse - 22, // 416: rill.admin.v1.AdminService.ListDeployments:output_type -> rill.admin.v1.ListDeploymentsResponse - 24, // 417: rill.admin.v1.AdminService.CreateDeployment:output_type -> rill.admin.v1.CreateDeploymentResponse - 26, // 418: rill.admin.v1.AdminService.GetDeployment:output_type -> rill.admin.v1.GetDeploymentResponse - 28, // 419: rill.admin.v1.AdminService.StartDeployment:output_type -> rill.admin.v1.StartDeploymentResponse - 30, // 420: rill.admin.v1.AdminService.StopDeployment:output_type -> rill.admin.v1.StopDeploymentResponse - 32, // 421: rill.admin.v1.AdminService.DeleteDeployment:output_type -> rill.admin.v1.DeleteDeploymentResponse - 90, // 422: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse - 92, // 423: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse - 94, // 424: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse - 96, // 425: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse - 98, // 426: rill.admin.v1.AdminService.GetDeploymentConfig:output_type -> rill.admin.v1.GetDeploymentConfigResponse - 100, // 427: rill.admin.v1.AdminService.ListRoles:output_type -> rill.admin.v1.ListRolesResponse - 102, // 428: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse - 104, // 429: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse - 106, // 430: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse - 108, // 431: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse - 110, // 432: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse - 112, // 433: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse - 114, // 434: rill.admin.v1.AdminService.GetOrganizationMemberUser:output_type -> rill.admin.v1.GetOrganizationMemberUserResponse - 118, // 435: rill.admin.v1.AdminService.ListUsergroupsForProjectAndUser:output_type -> rill.admin.v1.ListUsergroupsForProjectAndUserResponse - 120, // 436: rill.admin.v1.AdminService.UpdateOrganizationMemberUserAttributes:output_type -> rill.admin.v1.UpdateOrganizationMemberUserAttributesResponse - 148, // 437: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse - 150, // 438: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse - 152, // 439: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse - 154, // 440: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse - 156, // 441: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse - 116, // 442: rill.admin.v1.AdminService.GetProjectMemberUser:output_type -> rill.admin.v1.GetProjectMemberUserResponse - 158, // 443: rill.admin.v1.AdminService.ListUsergroupsForOrganizationAndUser:output_type -> rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse - 160, // 444: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse - 162, // 445: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse - 164, // 446: rill.admin.v1.AdminService.UpdateUsergroup:output_type -> rill.admin.v1.UpdateUsergroupResponse - 166, // 447: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse - 168, // 448: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse - 170, // 449: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse - 172, // 450: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse - 174, // 451: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse - 176, // 452: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse - 178, // 453: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse - 180, // 454: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse - 182, // 455: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse - 184, // 456: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse - 186, // 457: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse - 188, // 458: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse - 193, // 459: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse - 195, // 460: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse - 197, // 461: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse - 199, // 462: rill.admin.v1.AdminService.ListUserAuthTokens:output_type -> rill.admin.v1.ListUserAuthTokensResponse - 201, // 463: rill.admin.v1.AdminService.IssueUserAuthToken:output_type -> rill.admin.v1.IssueUserAuthTokenResponse - 203, // 464: rill.admin.v1.AdminService.RevokeUserAuthToken:output_type -> rill.admin.v1.RevokeUserAuthTokenResponse - 205, // 465: rill.admin.v1.AdminService.RevokeAllUserAuthTokens:output_type -> rill.admin.v1.RevokeAllUserAuthTokensResponse - 207, // 466: rill.admin.v1.AdminService.RevokeRepresentativeAuthTokens:output_type -> rill.admin.v1.RevokeRepresentativeAuthTokensResponse - 209, // 467: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse - 211, // 468: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse - 240, // 469: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse - 242, // 470: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse - 244, // 471: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse - 246, // 472: rill.admin.v1.AdminService.CreateGithubPullRequest:output_type -> rill.admin.v1.CreateGithubPullRequestResponse - 248, // 473: rill.admin.v1.AdminService.GetGithubPullRequest:output_type -> rill.admin.v1.GetGithubPullRequestResponse - 250, // 474: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse - 252, // 475: rill.admin.v1.AdminService.CreateManagedGitRepo:output_type -> rill.admin.v1.CreateManagedGitRepoResponse - 254, // 476: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse - 256, // 477: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse - 258, // 478: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse - 260, // 479: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse - 223, // 480: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse - 52, // 481: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse - 122, // 482: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse - 54, // 483: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse - 56, // 484: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse - 124, // 485: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse - 126, // 486: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse - 138, // 487: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse - 128, // 488: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse - 130, // 489: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse - 132, // 490: rill.admin.v1.AdminService.SudoGrantTrialCredits:output_type -> rill.admin.v1.SudoGrantTrialCreditsResponse - 134, // 491: rill.admin.v1.AdminService.SudoReportUsage:output_type -> rill.admin.v1.SudoReportUsageResponse - 136, // 492: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse - 140, // 493: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse - 142, // 494: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse - 144, // 495: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse - 146, // 496: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse - 262, // 497: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse - 264, // 498: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse - 266, // 499: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse - 58, // 500: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse - 60, // 501: rill.admin.v1.AdminService.ListProjectMemberServices:output_type -> rill.admin.v1.ListProjectMemberServicesResponse - 62, // 502: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse - 64, // 503: rill.admin.v1.AdminService.GetService:output_type -> rill.admin.v1.GetServiceResponse - 66, // 504: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse - 68, // 505: rill.admin.v1.AdminService.SetOrganizationMemberServiceRole:output_type -> rill.admin.v1.SetOrganizationMemberServiceRoleResponse - 70, // 506: rill.admin.v1.AdminService.RemoveOrganizationMemberService:output_type -> rill.admin.v1.RemoveOrganizationMemberServiceResponse - 74, // 507: rill.admin.v1.AdminService.SetProjectMemberServiceRole:output_type -> rill.admin.v1.SetProjectMemberServiceRoleResponse - 72, // 508: rill.admin.v1.AdminService.RemoveProjectMemberService:output_type -> rill.admin.v1.RemoveProjectMemberServiceResponse - 76, // 509: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse - 229, // 510: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse - 227, // 511: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse - 225, // 512: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse - 232, // 513: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse - 234, // 514: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse - 236, // 515: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse - 238, // 516: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse - 191, // 517: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse - 213, // 518: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse - 215, // 519: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse - 217, // 520: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse - 219, // 521: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse - 221, // 522: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse - 268, // 523: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse - 270, // 524: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse - 272, // 525: rill.admin.v1.AdminService.GetVirtualFile:output_type -> rill.admin.v1.GetVirtualFileResponse - 274, // 526: rill.admin.v1.AdminService.DeleteVirtualFile:output_type -> rill.admin.v1.DeleteVirtualFileResponse - 276, // 527: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse - 278, // 528: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse - 280, // 529: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse - 282, // 530: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse - 284, // 531: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse - 286, // 532: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse - 288, // 533: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse - 290, // 534: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse - 292, // 535: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse - 294, // 536: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse - 296, // 537: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse - 298, // 538: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse - 300, // 539: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse - 302, // 540: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse - 304, // 541: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse - 306, // 542: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse - 308, // 543: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse - 310, // 544: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse - 312, // 545: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse - 314, // 546: rill.admin.v1.AdminService.GetBillingCreditBalance:output_type -> rill.admin.v1.GetBillingCreditBalanceResponse - 316, // 547: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse - 318, // 548: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse - 322, // 549: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse - 324, // 550: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse - 326, // 551: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse - 328, // 552: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse - 330, // 553: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse - 394, // [394:554] is the sub-list for method output_type - 234, // [234:394] is the sub-list for method input_type + 303, // 381: rill.admin.v1.AdminService.ListPersonalFiles:input_type -> rill.admin.v1.ListPersonalFilesRequest + 305, // 382: rill.admin.v1.AdminService.CreatePersonalFile:input_type -> rill.admin.v1.CreatePersonalFileRequest + 307, // 383: rill.admin.v1.AdminService.GetPersonalFile:input_type -> rill.admin.v1.GetPersonalFileRequest + 309, // 384: rill.admin.v1.AdminService.EditPersonalFile:input_type -> rill.admin.v1.EditPersonalFileRequest + 311, // 385: rill.admin.v1.AdminService.DeletePersonalFile:input_type -> rill.admin.v1.DeletePersonalFileRequest + 313, // 386: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest + 315, // 387: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest + 317, // 388: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest + 319, // 389: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest + 321, // 390: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest + 323, // 391: rill.admin.v1.AdminService.GetBillingCreditBalance:input_type -> rill.admin.v1.GetBillingCreditBalanceRequest + 325, // 392: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest + 327, // 393: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest + 331, // 394: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest + 333, // 395: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest + 335, // 396: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest + 337, // 397: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest + 339, // 398: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest + 7, // 399: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse + 9, // 400: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse + 11, // 401: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse + 13, // 402: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse + 15, // 403: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse + 17, // 404: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse + 19, // 405: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse + 33, // 406: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse + 35, // 407: rill.admin.v1.AdminService.ListProjectsForOrganizationAndUser:output_type -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse + 37, // 408: rill.admin.v1.AdminService.ListProjectsForFingerprint:output_type -> rill.admin.v1.ListProjectsForFingerprintResponse + 39, // 409: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse + 41, // 410: rill.admin.v1.AdminService.ListProjectsForUserByName:output_type -> rill.admin.v1.ListProjectsForUserByNameResponse + 43, // 411: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse + 45, // 412: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse + 78, // 413: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse + 80, // 414: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse + 82, // 415: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse + 47, // 416: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse + 50, // 417: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse + 84, // 418: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse + 86, // 419: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse + 88, // 420: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse + 22, // 421: rill.admin.v1.AdminService.ListDeployments:output_type -> rill.admin.v1.ListDeploymentsResponse + 24, // 422: rill.admin.v1.AdminService.CreateDeployment:output_type -> rill.admin.v1.CreateDeploymentResponse + 26, // 423: rill.admin.v1.AdminService.GetDeployment:output_type -> rill.admin.v1.GetDeploymentResponse + 28, // 424: rill.admin.v1.AdminService.StartDeployment:output_type -> rill.admin.v1.StartDeploymentResponse + 30, // 425: rill.admin.v1.AdminService.StopDeployment:output_type -> rill.admin.v1.StopDeploymentResponse + 32, // 426: rill.admin.v1.AdminService.DeleteDeployment:output_type -> rill.admin.v1.DeleteDeploymentResponse + 90, // 427: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse + 92, // 428: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse + 94, // 429: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse + 96, // 430: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse + 98, // 431: rill.admin.v1.AdminService.GetDeploymentConfig:output_type -> rill.admin.v1.GetDeploymentConfigResponse + 100, // 432: rill.admin.v1.AdminService.ListRoles:output_type -> rill.admin.v1.ListRolesResponse + 102, // 433: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse + 104, // 434: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse + 106, // 435: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse + 108, // 436: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse + 110, // 437: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse + 112, // 438: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse + 114, // 439: rill.admin.v1.AdminService.GetOrganizationMemberUser:output_type -> rill.admin.v1.GetOrganizationMemberUserResponse + 118, // 440: rill.admin.v1.AdminService.ListUsergroupsForProjectAndUser:output_type -> rill.admin.v1.ListUsergroupsForProjectAndUserResponse + 120, // 441: rill.admin.v1.AdminService.UpdateOrganizationMemberUserAttributes:output_type -> rill.admin.v1.UpdateOrganizationMemberUserAttributesResponse + 148, // 442: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse + 150, // 443: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse + 152, // 444: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse + 154, // 445: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse + 156, // 446: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse + 116, // 447: rill.admin.v1.AdminService.GetProjectMemberUser:output_type -> rill.admin.v1.GetProjectMemberUserResponse + 158, // 448: rill.admin.v1.AdminService.ListUsergroupsForOrganizationAndUser:output_type -> rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse + 160, // 449: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse + 162, // 450: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse + 164, // 451: rill.admin.v1.AdminService.UpdateUsergroup:output_type -> rill.admin.v1.UpdateUsergroupResponse + 166, // 452: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse + 168, // 453: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse + 170, // 454: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse + 172, // 455: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse + 174, // 456: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse + 176, // 457: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse + 178, // 458: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse + 180, // 459: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse + 182, // 460: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse + 184, // 461: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse + 186, // 462: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse + 188, // 463: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse + 193, // 464: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse + 195, // 465: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse + 197, // 466: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse + 199, // 467: rill.admin.v1.AdminService.ListUserAuthTokens:output_type -> rill.admin.v1.ListUserAuthTokensResponse + 201, // 468: rill.admin.v1.AdminService.IssueUserAuthToken:output_type -> rill.admin.v1.IssueUserAuthTokenResponse + 203, // 469: rill.admin.v1.AdminService.RevokeUserAuthToken:output_type -> rill.admin.v1.RevokeUserAuthTokenResponse + 205, // 470: rill.admin.v1.AdminService.RevokeAllUserAuthTokens:output_type -> rill.admin.v1.RevokeAllUserAuthTokensResponse + 207, // 471: rill.admin.v1.AdminService.RevokeRepresentativeAuthTokens:output_type -> rill.admin.v1.RevokeRepresentativeAuthTokensResponse + 209, // 472: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse + 211, // 473: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse + 240, // 474: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse + 242, // 475: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse + 244, // 476: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse + 246, // 477: rill.admin.v1.AdminService.CreateGithubPullRequest:output_type -> rill.admin.v1.CreateGithubPullRequestResponse + 248, // 478: rill.admin.v1.AdminService.GetGithubPullRequest:output_type -> rill.admin.v1.GetGithubPullRequestResponse + 250, // 479: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse + 252, // 480: rill.admin.v1.AdminService.CreateManagedGitRepo:output_type -> rill.admin.v1.CreateManagedGitRepoResponse + 254, // 481: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse + 256, // 482: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse + 258, // 483: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse + 260, // 484: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse + 223, // 485: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse + 52, // 486: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse + 122, // 487: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse + 54, // 488: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse + 56, // 489: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse + 124, // 490: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse + 126, // 491: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse + 138, // 492: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse + 128, // 493: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse + 130, // 494: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse + 132, // 495: rill.admin.v1.AdminService.SudoGrantTrialCredits:output_type -> rill.admin.v1.SudoGrantTrialCreditsResponse + 134, // 496: rill.admin.v1.AdminService.SudoReportUsage:output_type -> rill.admin.v1.SudoReportUsageResponse + 136, // 497: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse + 140, // 498: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse + 142, // 499: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse + 144, // 500: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse + 146, // 501: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse + 262, // 502: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse + 264, // 503: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse + 266, // 504: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse + 58, // 505: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse + 60, // 506: rill.admin.v1.AdminService.ListProjectMemberServices:output_type -> rill.admin.v1.ListProjectMemberServicesResponse + 62, // 507: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse + 64, // 508: rill.admin.v1.AdminService.GetService:output_type -> rill.admin.v1.GetServiceResponse + 66, // 509: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse + 68, // 510: rill.admin.v1.AdminService.SetOrganizationMemberServiceRole:output_type -> rill.admin.v1.SetOrganizationMemberServiceRoleResponse + 70, // 511: rill.admin.v1.AdminService.RemoveOrganizationMemberService:output_type -> rill.admin.v1.RemoveOrganizationMemberServiceResponse + 74, // 512: rill.admin.v1.AdminService.SetProjectMemberServiceRole:output_type -> rill.admin.v1.SetProjectMemberServiceRoleResponse + 72, // 513: rill.admin.v1.AdminService.RemoveProjectMemberService:output_type -> rill.admin.v1.RemoveProjectMemberServiceResponse + 76, // 514: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse + 229, // 515: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse + 227, // 516: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse + 225, // 517: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse + 232, // 518: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse + 234, // 519: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse + 236, // 520: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse + 238, // 521: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse + 191, // 522: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse + 213, // 523: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse + 215, // 524: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse + 217, // 525: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse + 219, // 526: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse + 221, // 527: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse + 268, // 528: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse + 270, // 529: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse + 272, // 530: rill.admin.v1.AdminService.GetVirtualFile:output_type -> rill.admin.v1.GetVirtualFileResponse + 274, // 531: rill.admin.v1.AdminService.DeleteVirtualFile:output_type -> rill.admin.v1.DeleteVirtualFileResponse + 276, // 532: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse + 278, // 533: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse + 280, // 534: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse + 282, // 535: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse + 284, // 536: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse + 286, // 537: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse + 288, // 538: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse + 290, // 539: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse + 292, // 540: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse + 294, // 541: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse + 296, // 542: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse + 298, // 543: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse + 300, // 544: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse + 302, // 545: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse + 304, // 546: rill.admin.v1.AdminService.ListPersonalFiles:output_type -> rill.admin.v1.ListPersonalFilesResponse + 306, // 547: rill.admin.v1.AdminService.CreatePersonalFile:output_type -> rill.admin.v1.CreatePersonalFileResponse + 308, // 548: rill.admin.v1.AdminService.GetPersonalFile:output_type -> rill.admin.v1.GetPersonalFileResponse + 310, // 549: rill.admin.v1.AdminService.EditPersonalFile:output_type -> rill.admin.v1.EditPersonalFileResponse + 312, // 550: rill.admin.v1.AdminService.DeletePersonalFile:output_type -> rill.admin.v1.DeletePersonalFileResponse + 314, // 551: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse + 316, // 552: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse + 318, // 553: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse + 320, // 554: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse + 322, // 555: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse + 324, // 556: rill.admin.v1.AdminService.GetBillingCreditBalance:output_type -> rill.admin.v1.GetBillingCreditBalanceResponse + 326, // 557: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse + 328, // 558: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse + 332, // 559: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse + 334, // 560: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse + 336, // 561: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse + 338, // 562: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse + 340, // 563: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse + 399, // [399:564] is the sub-list for method output_type + 234, // [234:399] is the sub-list for method input_type 234, // [234:234] is the sub-list for extension type_name 234, // [234:234] is the sub-list for extension extendee 0, // [0:234] is the sub-list for field type_name @@ -34149,7 +34834,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[297].Exporter = func(v any, i int) any { - switch v := v.(*GetBillingSubscriptionRequest); i { + switch v := v.(*ListPersonalFilesRequest); i { case 0: return &v.state case 1: @@ -34161,7 +34846,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[298].Exporter = func(v any, i int) any { - switch v := v.(*GetBillingSubscriptionResponse); i { + switch v := v.(*ListPersonalFilesResponse); i { case 0: return &v.state case 1: @@ -34173,7 +34858,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[299].Exporter = func(v any, i int) any { - switch v := v.(*UpdateBillingSubscriptionRequest); i { + switch v := v.(*CreatePersonalFileRequest); i { case 0: return &v.state case 1: @@ -34185,7 +34870,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[300].Exporter = func(v any, i int) any { - switch v := v.(*UpdateBillingSubscriptionResponse); i { + switch v := v.(*CreatePersonalFileResponse); i { case 0: return &v.state case 1: @@ -34197,7 +34882,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[301].Exporter = func(v any, i int) any { - switch v := v.(*CancelBillingSubscriptionRequest); i { + switch v := v.(*GetPersonalFileRequest); i { case 0: return &v.state case 1: @@ -34209,7 +34894,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[302].Exporter = func(v any, i int) any { - switch v := v.(*CancelBillingSubscriptionResponse); i { + switch v := v.(*GetPersonalFileResponse); i { case 0: return &v.state case 1: @@ -34221,7 +34906,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[303].Exporter = func(v any, i int) any { - switch v := v.(*RenewBillingSubscriptionRequest); i { + switch v := v.(*EditPersonalFileRequest); i { case 0: return &v.state case 1: @@ -34233,7 +34918,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[304].Exporter = func(v any, i int) any { - switch v := v.(*RenewBillingSubscriptionResponse); i { + switch v := v.(*EditPersonalFileResponse); i { case 0: return &v.state case 1: @@ -34245,7 +34930,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[305].Exporter = func(v any, i int) any { - switch v := v.(*GetPaymentsPortalURLRequest); i { + switch v := v.(*DeletePersonalFileRequest); i { case 0: return &v.state case 1: @@ -34257,7 +34942,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[306].Exporter = func(v any, i int) any { - switch v := v.(*GetPaymentsPortalURLResponse); i { + switch v := v.(*DeletePersonalFileResponse); i { case 0: return &v.state case 1: @@ -34269,7 +34954,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[307].Exporter = func(v any, i int) any { - switch v := v.(*GetBillingCreditBalanceRequest); i { + switch v := v.(*GetBillingSubscriptionRequest); i { case 0: return &v.state case 1: @@ -34281,7 +34966,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[308].Exporter = func(v any, i int) any { - switch v := v.(*GetBillingCreditBalanceResponse); i { + switch v := v.(*GetBillingSubscriptionResponse); i { case 0: return &v.state case 1: @@ -34293,7 +34978,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[309].Exporter = func(v any, i int) any { - switch v := v.(*ListPublicBillingPlansRequest); i { + switch v := v.(*UpdateBillingSubscriptionRequest); i { case 0: return &v.state case 1: @@ -34305,7 +34990,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[310].Exporter = func(v any, i int) any { - switch v := v.(*ListPublicBillingPlansResponse); i { + switch v := v.(*UpdateBillingSubscriptionResponse); i { case 0: return &v.state case 1: @@ -34317,7 +35002,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[311].Exporter = func(v any, i int) any { - switch v := v.(*GetBillingProjectCredentialsRequest); i { + switch v := v.(*CancelBillingSubscriptionRequest); i { case 0: return &v.state case 1: @@ -34329,7 +35014,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[312].Exporter = func(v any, i int) any { - switch v := v.(*GetBillingProjectCredentialsResponse); i { + switch v := v.(*CancelBillingSubscriptionResponse); i { case 0: return &v.state case 1: @@ -34341,7 +35026,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[313].Exporter = func(v any, i int) any { - switch v := v.(*TelemetryRequest); i { + switch v := v.(*RenewBillingSubscriptionRequest); i { case 0: return &v.state case 1: @@ -34353,7 +35038,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[314].Exporter = func(v any, i int) any { - switch v := v.(*TelemetryResponse); i { + switch v := v.(*RenewBillingSubscriptionResponse); i { case 0: return &v.state case 1: @@ -34365,7 +35050,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[315].Exporter = func(v any, i int) any { - switch v := v.(*RequestProjectAccessRequest); i { + switch v := v.(*GetPaymentsPortalURLRequest); i { case 0: return &v.state case 1: @@ -34377,7 +35062,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[316].Exporter = func(v any, i int) any { - switch v := v.(*RequestProjectAccessResponse); i { + switch v := v.(*GetPaymentsPortalURLResponse); i { case 0: return &v.state case 1: @@ -34389,7 +35074,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[317].Exporter = func(v any, i int) any { - switch v := v.(*GetProjectAccessRequestRequest); i { + switch v := v.(*GetBillingCreditBalanceRequest); i { case 0: return &v.state case 1: @@ -34401,7 +35086,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[318].Exporter = func(v any, i int) any { - switch v := v.(*GetProjectAccessRequestResponse); i { + switch v := v.(*GetBillingCreditBalanceResponse); i { case 0: return &v.state case 1: @@ -34413,7 +35098,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[319].Exporter = func(v any, i int) any { - switch v := v.(*ApproveProjectAccessRequest); i { + switch v := v.(*ListPublicBillingPlansRequest); i { case 0: return &v.state case 1: @@ -34425,7 +35110,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[320].Exporter = func(v any, i int) any { - switch v := v.(*ApproveProjectAccessResponse); i { + switch v := v.(*ListPublicBillingPlansResponse); i { case 0: return &v.state case 1: @@ -34437,7 +35122,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[321].Exporter = func(v any, i int) any { - switch v := v.(*DenyProjectAccessRequest); i { + switch v := v.(*GetBillingProjectCredentialsRequest); i { case 0: return &v.state case 1: @@ -34449,7 +35134,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[322].Exporter = func(v any, i int) any { - switch v := v.(*DenyProjectAccessResponse); i { + switch v := v.(*GetBillingProjectCredentialsResponse); i { case 0: return &v.state case 1: @@ -34461,7 +35146,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[323].Exporter = func(v any, i int) any { - switch v := v.(*ListOrganizationBillingIssuesRequest); i { + switch v := v.(*TelemetryRequest); i { case 0: return &v.state case 1: @@ -34473,7 +35158,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[324].Exporter = func(v any, i int) any { - switch v := v.(*ListOrganizationBillingIssuesResponse); i { + switch v := v.(*TelemetryResponse); i { case 0: return &v.state case 1: @@ -34485,7 +35170,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[325].Exporter = func(v any, i int) any { - switch v := v.(*User); i { + switch v := v.(*RequestProjectAccessRequest); i { case 0: return &v.state case 1: @@ -34497,7 +35182,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[326].Exporter = func(v any, i int) any { - switch v := v.(*Service); i { + switch v := v.(*RequestProjectAccessResponse); i { case 0: return &v.state case 1: @@ -34509,7 +35194,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[327].Exporter = func(v any, i int) any { - switch v := v.(*OrganizationMemberService); i { + switch v := v.(*GetProjectAccessRequestRequest); i { case 0: return &v.state case 1: @@ -34521,7 +35206,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[328].Exporter = func(v any, i int) any { - switch v := v.(*ProjectMemberService); i { + switch v := v.(*GetProjectAccessRequestResponse); i { case 0: return &v.state case 1: @@ -34533,7 +35218,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[329].Exporter = func(v any, i int) any { - switch v := v.(*Organization); i { + switch v := v.(*ApproveProjectAccessRequest); i { case 0: return &v.state case 1: @@ -34545,7 +35230,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[330].Exporter = func(v any, i int) any { - switch v := v.(*Subscription); i { + switch v := v.(*ApproveProjectAccessResponse); i { case 0: return &v.state case 1: @@ -34557,7 +35242,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[331].Exporter = func(v any, i int) any { - switch v := v.(*UserQuotas); i { + switch v := v.(*DenyProjectAccessRequest); i { case 0: return &v.state case 1: @@ -34569,7 +35254,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[332].Exporter = func(v any, i int) any { - switch v := v.(*OrganizationQuotas); i { + switch v := v.(*DenyProjectAccessResponse); i { case 0: return &v.state case 1: @@ -34581,7 +35266,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[333].Exporter = func(v any, i int) any { - switch v := v.(*Project); i { + switch v := v.(*ListOrganizationBillingIssuesRequest); i { case 0: return &v.state case 1: @@ -34593,7 +35278,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[334].Exporter = func(v any, i int) any { - switch v := v.(*Deployment); i { + switch v := v.(*ListOrganizationBillingIssuesResponse); i { case 0: return &v.state case 1: @@ -34605,7 +35290,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[335].Exporter = func(v any, i int) any { - switch v := v.(*ProvisionerResource); i { + switch v := v.(*User); i { case 0: return &v.state case 1: @@ -34617,7 +35302,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[336].Exporter = func(v any, i int) any { - switch v := v.(*OrganizationPermissions); i { + switch v := v.(*Service); i { case 0: return &v.state case 1: @@ -34629,7 +35314,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[337].Exporter = func(v any, i int) any { - switch v := v.(*ProjectPermissions); i { + switch v := v.(*OrganizationMemberService); i { case 0: return &v.state case 1: @@ -34641,7 +35326,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[338].Exporter = func(v any, i int) any { - switch v := v.(*OrganizationRole); i { + switch v := v.(*ProjectMemberService); i { case 0: return &v.state case 1: @@ -34653,7 +35338,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[339].Exporter = func(v any, i int) any { - switch v := v.(*ProjectRole); i { + switch v := v.(*Organization); i { case 0: return &v.state case 1: @@ -34665,7 +35350,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[340].Exporter = func(v any, i int) any { - switch v := v.(*OrganizationMemberUser); i { + switch v := v.(*Subscription); i { case 0: return &v.state case 1: @@ -34677,7 +35362,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[341].Exporter = func(v any, i int) any { - switch v := v.(*ProjectMemberUser); i { + switch v := v.(*UserQuotas); i { case 0: return &v.state case 1: @@ -34689,7 +35374,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[342].Exporter = func(v any, i int) any { - switch v := v.(*UsergroupMemberUser); i { + switch v := v.(*OrganizationQuotas); i { case 0: return &v.state case 1: @@ -34701,7 +35386,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[343].Exporter = func(v any, i int) any { - switch v := v.(*OrganizationInvite); i { + switch v := v.(*Project); i { case 0: return &v.state case 1: @@ -34713,7 +35398,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[344].Exporter = func(v any, i int) any { - switch v := v.(*ProjectInvite); i { + switch v := v.(*Deployment); i { case 0: return &v.state case 1: @@ -34725,7 +35410,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[345].Exporter = func(v any, i int) any { - switch v := v.(*WhitelistedDomain); i { + switch v := v.(*ProvisionerResource); i { case 0: return &v.state case 1: @@ -34737,7 +35422,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[346].Exporter = func(v any, i int) any { - switch v := v.(*Bookmark); i { + switch v := v.(*OrganizationPermissions); i { case 0: return &v.state case 1: @@ -34749,7 +35434,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[347].Exporter = func(v any, i int) any { - switch v := v.(*ServiceToken); i { + switch v := v.(*ProjectPermissions); i { case 0: return &v.state case 1: @@ -34761,7 +35446,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[348].Exporter = func(v any, i int) any { - switch v := v.(*UserAuthToken); i { + switch v := v.(*OrganizationRole); i { case 0: return &v.state case 1: @@ -34773,7 +35458,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[349].Exporter = func(v any, i int) any { - switch v := v.(*MagicAuthToken); i { + switch v := v.(*ProjectRole); i { case 0: return &v.state case 1: @@ -34785,7 +35470,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[350].Exporter = func(v any, i int) any { - switch v := v.(*VirtualFile); i { + switch v := v.(*OrganizationMemberUser); i { case 0: return &v.state case 1: @@ -34797,7 +35482,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[351].Exporter = func(v any, i int) any { - switch v := v.(*ReportOptions); i { + switch v := v.(*ProjectMemberUser); i { case 0: return &v.state case 1: @@ -34809,7 +35494,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[352].Exporter = func(v any, i int) any { - switch v := v.(*AlertOptions); i { + switch v := v.(*UsergroupMemberUser); i { case 0: return &v.state case 1: @@ -34821,7 +35506,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[353].Exporter = func(v any, i int) any { - switch v := v.(*BillingPlan); i { + switch v := v.(*OrganizationInvite); i { case 0: return &v.state case 1: @@ -34833,7 +35518,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[354].Exporter = func(v any, i int) any { - switch v := v.(*Quotas); i { + switch v := v.(*ProjectInvite); i { case 0: return &v.state case 1: @@ -34845,7 +35530,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[355].Exporter = func(v any, i int) any { - switch v := v.(*Usergroup); i { + switch v := v.(*WhitelistedDomain); i { case 0: return &v.state case 1: @@ -34857,7 +35542,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[356].Exporter = func(v any, i int) any { - switch v := v.(*MemberUsergroup); i { + switch v := v.(*Bookmark); i { case 0: return &v.state case 1: @@ -34869,7 +35554,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[357].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssue); i { + switch v := v.(*ServiceToken); i { case 0: return &v.state case 1: @@ -34881,7 +35566,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[358].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadata); i { + switch v := v.(*UserAuthToken); i { case 0: return &v.state case 1: @@ -34893,7 +35578,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[359].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataOnTrial); i { + switch v := v.(*MagicAuthToken); i { case 0: return &v.state case 1: @@ -34905,7 +35590,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[360].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataTrialEnded); i { + switch v := v.(*VirtualFile); i { case 0: return &v.state case 1: @@ -34917,7 +35602,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[361].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataNoPaymentMethod); i { + switch v := v.(*ReportOptions); i { case 0: return &v.state case 1: @@ -34929,7 +35614,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[362].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataNoBillableAddress); i { + switch v := v.(*AlertOptions); i { case 0: return &v.state case 1: @@ -34941,7 +35626,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[363].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataPaymentFailed); i { + switch v := v.(*BillingPlan); i { case 0: return &v.state case 1: @@ -34953,7 +35638,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[364].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataPaymentFailedMeta); i { + switch v := v.(*Quotas); i { case 0: return &v.state case 1: @@ -34965,7 +35650,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[365].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataSubscriptionCancelled); i { + switch v := v.(*Usergroup); i { case 0: return &v.state case 1: @@ -34977,7 +35662,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[366].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataNeverSubscribed); i { + switch v := v.(*MemberUsergroup); i { case 0: return &v.state case 1: @@ -34989,7 +35674,7 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[367].Exporter = func(v any, i int) any { - switch v := v.(*BillingIssueMetadataOnCreditTrial); i { + switch v := v.(*BillingIssue); i { case 0: return &v.state case 1: @@ -35001,6 +35686,126 @@ func file_rill_admin_v1_api_proto_init() { } } file_rill_admin_v1_api_proto_msgTypes[368].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[369].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataOnTrial); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[370].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataTrialEnded); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[371].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataNoPaymentMethod); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[372].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataNoBillableAddress); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[373].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataPaymentFailed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[374].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataPaymentFailedMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[375].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataSubscriptionCancelled); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[376].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataNeverSubscribed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[377].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataOnCreditTrial); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[378].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataTrialCreditsDepleted); i { case 0: return &v.state @@ -35012,7 +35817,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[381].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[391].Exporter = func(v any, i int) any { switch v := v.(*ListGithubUserReposResponse_Repo); i { case 0: return &v.state @@ -35024,7 +35829,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[382].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[392].Exporter = func(v any, i int) any { switch v := v.(*GetReportMetaResponse_DeliveryMeta); i { case 0: return &v.state @@ -35036,7 +35841,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[385].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[395].Exporter = func(v any, i int) any { switch v := v.(*GetAlertMetaResponse_URLs); i { case 0: return &v.state @@ -35096,8 +35901,8 @@ func file_rill_admin_v1_api_proto_init() { (*GetAlertMetaRequest_QueryForUserId)(nil), (*GetAlertMetaRequest_QueryForUserEmail)(nil), } - file_rill_admin_v1_api_proto_msgTypes[329].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[358].OneofWrappers = []any{ + file_rill_admin_v1_api_proto_msgTypes[339].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[368].OneofWrappers = []any{ (*BillingIssueMetadata_OnTrial)(nil), (*BillingIssueMetadata_TrialEnded)(nil), (*BillingIssueMetadata_NoPaymentMethod)(nil), @@ -35114,7 +35919,7 @@ func file_rill_admin_v1_api_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rill_admin_v1_api_proto_rawDesc, NumEnums: 6, - NumMessages: 389, + NumMessages: 399, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/gen/rill/admin/v1/api.pb.gw.go b/proto/gen/rill/admin/v1/api.pb.gw.go index b7e36443de03..c0cf10ac4a9f 100644 --- a/proto/gen/rill/admin/v1/api.pb.gw.go +++ b/proto/gen/rill/admin/v1/api.pb.gw.go @@ -9527,6 +9527,442 @@ func local_request_AdminService_GetAlertYAML_0(ctx context.Context, marshaler ru } +func request_AdminService_ListPersonalFiles_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListPersonalFilesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + msg, err := client.ListPersonalFiles(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_ListPersonalFiles_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListPersonalFilesRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + msg, err := server.ListPersonalFiles(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AdminService_CreatePersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreatePersonalFileRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + msg, err := client.CreatePersonalFile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_CreatePersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CreatePersonalFileRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + msg, err := server.CreatePersonalFile(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AdminService_GetPersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPersonalFileRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.GetPersonalFile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_GetPersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetPersonalFileRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.GetPersonalFile(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AdminService_EditPersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq EditPersonalFileRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.EditPersonalFile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_EditPersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq EditPersonalFileRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.EditPersonalFile(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AdminService_DeletePersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeletePersonalFileRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.DeletePersonalFile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_DeletePersonalFile_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeletePersonalFileRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["org"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "org") + } + + protoReq.Org, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "org", err) + } + + val, ok = pathParams["project"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "project") + } + + protoReq.Project, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "project", err) + } + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.DeletePersonalFile(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_AdminService_GetBillingSubscription_0 = &utilities.DoubleArray{Encoding: map[string]int{"org": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) @@ -13975,6 +14411,131 @@ func RegisterAdminServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_ListPersonalFiles_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, "/rill.admin.v1.AdminService/ListPersonalFiles", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_ListPersonalFiles_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_AdminService_ListPersonalFiles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_CreatePersonalFile_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, "/rill.admin.v1.AdminService/CreatePersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_CreatePersonalFile_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_AdminService_CreatePersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetPersonalFile_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, "/rill.admin.v1.AdminService/GetPersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files/{name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_GetPersonalFile_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_AdminService_GetPersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_EditPersonalFile_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, "/rill.admin.v1.AdminService/EditPersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files/{name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_EditPersonalFile_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_AdminService_EditPersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AdminService_DeletePersonalFile_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, "/rill.admin.v1.AdminService/DeletePersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files/{name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_DeletePersonalFile_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_AdminService_DeletePersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetBillingSubscription_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -17575,6 +18136,116 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("GET", pattern_AdminService_ListPersonalFiles_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, "/rill.admin.v1.AdminService/ListPersonalFiles", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_ListPersonalFiles_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_ListPersonalFiles_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_CreatePersonalFile_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, "/rill.admin.v1.AdminService/CreatePersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_CreatePersonalFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_CreatePersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AdminService_GetPersonalFile_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, "/rill.admin.v1.AdminService/GetPersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files/{name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_GetPersonalFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_GetPersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AdminService_EditPersonalFile_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, "/rill.admin.v1.AdminService/EditPersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files/{name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_EditPersonalFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_EditPersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AdminService_DeletePersonalFile_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, "/rill.admin.v1.AdminService/DeletePersonalFile", runtime.WithHTTPPathPattern("/v1/orgs/{org}/projects/{project}/personal-files/{name}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_DeletePersonalFile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_DeletePersonalFile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AdminService_GetBillingSubscription_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -18159,6 +18830,16 @@ var ( pattern_AdminService_GetAlertYAML_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7}, []string{"v1", "orgs", "org", "projects", "project", "alerts", "name", "yaml"}, "")) + pattern_AdminService_ListPersonalFiles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"v1", "orgs", "org", "projects", "project", "personal-files"}, "")) + + pattern_AdminService_CreatePersonalFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"v1", "orgs", "org", "projects", "project", "personal-files"}, "")) + + pattern_AdminService_GetPersonalFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "orgs", "org", "projects", "project", "personal-files", "name"}, "")) + + pattern_AdminService_EditPersonalFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "orgs", "org", "projects", "project", "personal-files", "name"}, "")) + + pattern_AdminService_DeletePersonalFile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6}, []string{"v1", "orgs", "org", "projects", "project", "personal-files", "name"}, "")) + pattern_AdminService_GetBillingSubscription_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"v1", "orgs", "org", "billing", "subscriptions"}, "")) pattern_AdminService_UpdateBillingSubscription_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 2, 4}, []string{"v1", "orgs", "org", "billing", "subscriptions"}, "")) @@ -18481,6 +19162,16 @@ var ( forward_AdminService_GetAlertYAML_0 = runtime.ForwardResponseMessage + forward_AdminService_ListPersonalFiles_0 = runtime.ForwardResponseMessage + + forward_AdminService_CreatePersonalFile_0 = runtime.ForwardResponseMessage + + forward_AdminService_GetPersonalFile_0 = runtime.ForwardResponseMessage + + forward_AdminService_EditPersonalFile_0 = runtime.ForwardResponseMessage + + forward_AdminService_DeletePersonalFile_0 = runtime.ForwardResponseMessage + forward_AdminService_GetBillingSubscription_0 = runtime.ForwardResponseMessage forward_AdminService_UpdateBillingSubscription_0 = runtime.ForwardResponseMessage diff --git a/proto/gen/rill/admin/v1/api.pb.validate.go b/proto/gen/rill/admin/v1/api.pb.validate.go index 4726be2279b5..c1c235a98997 100644 --- a/proto/gen/rill/admin/v1/api.pb.validate.go +++ b/proto/gen/rill/admin/v1/api.pb.validate.go @@ -38823,6 +38823,1077 @@ var _ interface { ErrorName() string } = GetAlertYAMLResponseValidationError{} +// Validate checks the field values on ListPersonalFilesRequest 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 *ListPersonalFilesRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListPersonalFilesRequest 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 +// ListPersonalFilesRequestMultiError, or nil if none found. +func (m *ListPersonalFilesRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ListPersonalFilesRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Org + + // no validation rules for Project + + if len(errors) > 0 { + return ListPersonalFilesRequestMultiError(errors) + } + + return nil +} + +// ListPersonalFilesRequestMultiError is an error wrapping multiple validation +// errors returned by ListPersonalFilesRequest.ValidateAll() if the designated +// constraints aren't met. +type ListPersonalFilesRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListPersonalFilesRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListPersonalFilesRequestMultiError) AllErrors() []error { return m } + +// ListPersonalFilesRequestValidationError is the validation error returned by +// ListPersonalFilesRequest.Validate if the designated constraints aren't met. +type ListPersonalFilesRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListPersonalFilesRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListPersonalFilesRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListPersonalFilesRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListPersonalFilesRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListPersonalFilesRequestValidationError) ErrorName() string { + return "ListPersonalFilesRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ListPersonalFilesRequestValidationError) 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 %sListPersonalFilesRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListPersonalFilesRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListPersonalFilesRequestValidationError{} + +// Validate checks the field values on ListPersonalFilesResponse 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 *ListPersonalFilesResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ListPersonalFilesResponse 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 +// ListPersonalFilesResponseMultiError, or nil if none found. +func (m *ListPersonalFilesResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ListPersonalFilesResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ListPersonalFilesResponseMultiError(errors) + } + + return nil +} + +// ListPersonalFilesResponseMultiError is an error wrapping multiple validation +// errors returned by ListPersonalFilesResponse.ValidateAll() if the +// designated constraints aren't met. +type ListPersonalFilesResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ListPersonalFilesResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ListPersonalFilesResponseMultiError) AllErrors() []error { return m } + +// ListPersonalFilesResponseValidationError is the validation error returned by +// ListPersonalFilesResponse.Validate if the designated constraints aren't met. +type ListPersonalFilesResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ListPersonalFilesResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ListPersonalFilesResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ListPersonalFilesResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ListPersonalFilesResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ListPersonalFilesResponseValidationError) ErrorName() string { + return "ListPersonalFilesResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ListPersonalFilesResponseValidationError) 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 %sListPersonalFilesResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ListPersonalFilesResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ListPersonalFilesResponseValidationError{} + +// Validate checks the field values on CreatePersonalFileRequest 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 *CreatePersonalFileRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CreatePersonalFileRequest 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 +// CreatePersonalFileRequestMultiError, or nil if none found. +func (m *CreatePersonalFileRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *CreatePersonalFileRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Org + + // no validation rules for Project + + if utf8.RuneCountInString(m.GetDisplayName()) < 1 { + err := CreatePersonalFileRequestValidationError{ + field: "DisplayName", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for Kind + + // no validation rules for Yaml + + if len(errors) > 0 { + return CreatePersonalFileRequestMultiError(errors) + } + + return nil +} + +// CreatePersonalFileRequestMultiError is an error wrapping multiple validation +// errors returned by CreatePersonalFileRequest.ValidateAll() if the +// designated constraints aren't met. +type CreatePersonalFileRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CreatePersonalFileRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CreatePersonalFileRequestMultiError) AllErrors() []error { return m } + +// CreatePersonalFileRequestValidationError is the validation error returned by +// CreatePersonalFileRequest.Validate if the designated constraints aren't met. +type CreatePersonalFileRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CreatePersonalFileRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreatePersonalFileRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreatePersonalFileRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreatePersonalFileRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreatePersonalFileRequestValidationError) ErrorName() string { + return "CreatePersonalFileRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e CreatePersonalFileRequestValidationError) 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 %sCreatePersonalFileRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreatePersonalFileRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreatePersonalFileRequestValidationError{} + +// Validate checks the field values on CreatePersonalFileResponse 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 *CreatePersonalFileResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CreatePersonalFileResponse 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 +// CreatePersonalFileResponseMultiError, or nil if none found. +func (m *CreatePersonalFileResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *CreatePersonalFileResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Name + + if len(errors) > 0 { + return CreatePersonalFileResponseMultiError(errors) + } + + return nil +} + +// CreatePersonalFileResponseMultiError is an error wrapping multiple +// validation errors returned by CreatePersonalFileResponse.ValidateAll() if +// the designated constraints aren't met. +type CreatePersonalFileResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CreatePersonalFileResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CreatePersonalFileResponseMultiError) AllErrors() []error { return m } + +// CreatePersonalFileResponseValidationError is the validation error returned +// by CreatePersonalFileResponse.Validate if the designated constraints aren't met. +type CreatePersonalFileResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CreatePersonalFileResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CreatePersonalFileResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CreatePersonalFileResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CreatePersonalFileResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CreatePersonalFileResponseValidationError) ErrorName() string { + return "CreatePersonalFileResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e CreatePersonalFileResponseValidationError) 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 %sCreatePersonalFileResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CreatePersonalFileResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CreatePersonalFileResponseValidationError{} + +// Validate checks the field values on GetPersonalFileRequest 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 *GetPersonalFileRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetPersonalFileRequest 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 +// GetPersonalFileRequestMultiError, or nil if none found. +func (m *GetPersonalFileRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *GetPersonalFileRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Org + + // no validation rules for Project + + // no validation rules for Name + + if len(errors) > 0 { + return GetPersonalFileRequestMultiError(errors) + } + + return nil +} + +// GetPersonalFileRequestMultiError is an error wrapping multiple validation +// errors returned by GetPersonalFileRequest.ValidateAll() if the designated +// constraints aren't met. +type GetPersonalFileRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetPersonalFileRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetPersonalFileRequestMultiError) AllErrors() []error { return m } + +// GetPersonalFileRequestValidationError is the validation error returned by +// GetPersonalFileRequest.Validate if the designated constraints aren't met. +type GetPersonalFileRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetPersonalFileRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetPersonalFileRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetPersonalFileRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetPersonalFileRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetPersonalFileRequestValidationError) ErrorName() string { + return "GetPersonalFileRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e GetPersonalFileRequestValidationError) 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 %sGetPersonalFileRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetPersonalFileRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetPersonalFileRequestValidationError{} + +// Validate checks the field values on GetPersonalFileResponse 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 *GetPersonalFileResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on GetPersonalFileResponse 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 +// GetPersonalFileResponseMultiError, or nil if none found. +func (m *GetPersonalFileResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *GetPersonalFileResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Path + + // no validation rules for Yaml + + if len(errors) > 0 { + return GetPersonalFileResponseMultiError(errors) + } + + return nil +} + +// GetPersonalFileResponseMultiError is an error wrapping multiple validation +// errors returned by GetPersonalFileResponse.ValidateAll() if the designated +// constraints aren't met. +type GetPersonalFileResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m GetPersonalFileResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m GetPersonalFileResponseMultiError) AllErrors() []error { return m } + +// GetPersonalFileResponseValidationError is the validation error returned by +// GetPersonalFileResponse.Validate if the designated constraints aren't met. +type GetPersonalFileResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e GetPersonalFileResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e GetPersonalFileResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e GetPersonalFileResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e GetPersonalFileResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e GetPersonalFileResponseValidationError) ErrorName() string { + return "GetPersonalFileResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e GetPersonalFileResponseValidationError) 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 %sGetPersonalFileResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = GetPersonalFileResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = GetPersonalFileResponseValidationError{} + +// Validate checks the field values on EditPersonalFileRequest 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 *EditPersonalFileRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on EditPersonalFileRequest 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 +// EditPersonalFileRequestMultiError, or nil if none found. +func (m *EditPersonalFileRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *EditPersonalFileRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Org + + // no validation rules for Project + + // no validation rules for Name + + // no validation rules for Kind + + // no validation rules for Yaml + + if len(errors) > 0 { + return EditPersonalFileRequestMultiError(errors) + } + + return nil +} + +// EditPersonalFileRequestMultiError is an error wrapping multiple validation +// errors returned by EditPersonalFileRequest.ValidateAll() if the designated +// constraints aren't met. +type EditPersonalFileRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m EditPersonalFileRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m EditPersonalFileRequestMultiError) AllErrors() []error { return m } + +// EditPersonalFileRequestValidationError is the validation error returned by +// EditPersonalFileRequest.Validate if the designated constraints aren't met. +type EditPersonalFileRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EditPersonalFileRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EditPersonalFileRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EditPersonalFileRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EditPersonalFileRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EditPersonalFileRequestValidationError) ErrorName() string { + return "EditPersonalFileRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e EditPersonalFileRequestValidationError) 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 %sEditPersonalFileRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EditPersonalFileRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EditPersonalFileRequestValidationError{} + +// Validate checks the field values on EditPersonalFileResponse 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 *EditPersonalFileResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on EditPersonalFileResponse 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 +// EditPersonalFileResponseMultiError, or nil if none found. +func (m *EditPersonalFileResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *EditPersonalFileResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return EditPersonalFileResponseMultiError(errors) + } + + return nil +} + +// EditPersonalFileResponseMultiError is an error wrapping multiple validation +// errors returned by EditPersonalFileResponse.ValidateAll() if the designated +// constraints aren't met. +type EditPersonalFileResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m EditPersonalFileResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m EditPersonalFileResponseMultiError) AllErrors() []error { return m } + +// EditPersonalFileResponseValidationError is the validation error returned by +// EditPersonalFileResponse.Validate if the designated constraints aren't met. +type EditPersonalFileResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e EditPersonalFileResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e EditPersonalFileResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e EditPersonalFileResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e EditPersonalFileResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e EditPersonalFileResponseValidationError) ErrorName() string { + return "EditPersonalFileResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e EditPersonalFileResponseValidationError) 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 %sEditPersonalFileResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = EditPersonalFileResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = EditPersonalFileResponseValidationError{} + +// Validate checks the field values on DeletePersonalFileRequest 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 *DeletePersonalFileRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeletePersonalFileRequest 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 +// DeletePersonalFileRequestMultiError, or nil if none found. +func (m *DeletePersonalFileRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *DeletePersonalFileRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Org + + // no validation rules for Project + + // no validation rules for Name + + if len(errors) > 0 { + return DeletePersonalFileRequestMultiError(errors) + } + + return nil +} + +// DeletePersonalFileRequestMultiError is an error wrapping multiple validation +// errors returned by DeletePersonalFileRequest.ValidateAll() if the +// designated constraints aren't met. +type DeletePersonalFileRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeletePersonalFileRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeletePersonalFileRequestMultiError) AllErrors() []error { return m } + +// DeletePersonalFileRequestValidationError is the validation error returned by +// DeletePersonalFileRequest.Validate if the designated constraints aren't met. +type DeletePersonalFileRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeletePersonalFileRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeletePersonalFileRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeletePersonalFileRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeletePersonalFileRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeletePersonalFileRequestValidationError) ErrorName() string { + return "DeletePersonalFileRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e DeletePersonalFileRequestValidationError) 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 %sDeletePersonalFileRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeletePersonalFileRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeletePersonalFileRequestValidationError{} + +// Validate checks the field values on DeletePersonalFileResponse 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 *DeletePersonalFileResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on DeletePersonalFileResponse 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 +// DeletePersonalFileResponseMultiError, or nil if none found. +func (m *DeletePersonalFileResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *DeletePersonalFileResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return DeletePersonalFileResponseMultiError(errors) + } + + return nil +} + +// DeletePersonalFileResponseMultiError is an error wrapping multiple +// validation errors returned by DeletePersonalFileResponse.ValidateAll() if +// the designated constraints aren't met. +type DeletePersonalFileResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m DeletePersonalFileResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m DeletePersonalFileResponseMultiError) AllErrors() []error { return m } + +// DeletePersonalFileResponseValidationError is the validation error returned +// by DeletePersonalFileResponse.Validate if the designated constraints aren't met. +type DeletePersonalFileResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e DeletePersonalFileResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e DeletePersonalFileResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e DeletePersonalFileResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e DeletePersonalFileResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e DeletePersonalFileResponseValidationError) ErrorName() string { + return "DeletePersonalFileResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e DeletePersonalFileResponseValidationError) 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 %sDeletePersonalFileResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = DeletePersonalFileResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = DeletePersonalFileResponseValidationError{} + // Validate checks the field values on GetBillingSubscriptionRequest 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. diff --git a/proto/gen/rill/admin/v1/api_grpc.pb.go b/proto/gen/rill/admin/v1/api_grpc.pb.go index 498bc5e37b3e..231c3cf0caa7 100644 --- a/proto/gen/rill/admin/v1/api_grpc.pb.go +++ b/proto/gen/rill/admin/v1/api_grpc.pb.go @@ -166,6 +166,11 @@ const ( AdminService_DeleteAlert_FullMethodName = "/rill.admin.v1.AdminService/DeleteAlert" AdminService_GenerateAlertYAML_FullMethodName = "/rill.admin.v1.AdminService/GenerateAlertYAML" AdminService_GetAlertYAML_FullMethodName = "/rill.admin.v1.AdminService/GetAlertYAML" + AdminService_ListPersonalFiles_FullMethodName = "/rill.admin.v1.AdminService/ListPersonalFiles" + AdminService_CreatePersonalFile_FullMethodName = "/rill.admin.v1.AdminService/CreatePersonalFile" + AdminService_GetPersonalFile_FullMethodName = "/rill.admin.v1.AdminService/GetPersonalFile" + AdminService_EditPersonalFile_FullMethodName = "/rill.admin.v1.AdminService/EditPersonalFile" + AdminService_DeletePersonalFile_FullMethodName = "/rill.admin.v1.AdminService/DeletePersonalFile" AdminService_GetBillingSubscription_FullMethodName = "/rill.admin.v1.AdminService/GetBillingSubscription" AdminService_UpdateBillingSubscription_FullMethodName = "/rill.admin.v1.AdminService/UpdateBillingSubscription" AdminService_CancelBillingSubscription_FullMethodName = "/rill.admin.v1.AdminService/CancelBillingSubscription" @@ -502,6 +507,16 @@ type AdminServiceClient interface { GenerateAlertYAML(ctx context.Context, in *GenerateAlertYAMLRequest, opts ...grpc.CallOption) (*GenerateAlertYAMLResponse, error) // GenerateAlertYAML generates YAML for an alert to be copied into a project's Git repository GetAlertYAML(ctx context.Context, in *GetAlertYAMLRequest, opts ...grpc.CallOption) (*GetAlertYAMLResponse, error) + // ListPersonalFiles lists the calling user's personal files. + ListPersonalFiles(ctx context.Context, in *ListPersonalFilesRequest, opts ...grpc.CallOption) (*ListPersonalFilesResponse, error) + // CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + CreatePersonalFile(ctx context.Context, in *CreatePersonalFileRequest, opts ...grpc.CallOption) (*CreatePersonalFileResponse, error) + // GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + GetPersonalFile(ctx context.Context, in *GetPersonalFileRequest, opts ...grpc.CallOption) (*GetPersonalFileResponse, error) + // EditPersonalFile updates the YAML body of a personal virtual file the caller owns. + EditPersonalFile(ctx context.Context, in *EditPersonalFileRequest, opts ...grpc.CallOption) (*EditPersonalFileResponse, error) + // DeletePersonalFile deletes a personal virtual file the caller owns. + DeletePersonalFile(ctx context.Context, in *DeletePersonalFileRequest, opts ...grpc.CallOption) (*DeletePersonalFileResponse, error) // GetBillingSubscription lists the subscription for the organization GetBillingSubscription(ctx context.Context, in *GetBillingSubscriptionRequest, opts ...grpc.CallOption) (*GetBillingSubscriptionResponse, error) // UpdateBillingSubscription updates the billing plan for the organization @@ -2004,6 +2019,56 @@ func (c *adminServiceClient) GetAlertYAML(ctx context.Context, in *GetAlertYAMLR return out, nil } +func (c *adminServiceClient) ListPersonalFiles(ctx context.Context, in *ListPersonalFilesRequest, opts ...grpc.CallOption) (*ListPersonalFilesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ListPersonalFilesResponse) + err := c.cc.Invoke(ctx, AdminService_ListPersonalFiles_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) CreatePersonalFile(ctx context.Context, in *CreatePersonalFileRequest, opts ...grpc.CallOption) (*CreatePersonalFileResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(CreatePersonalFileResponse) + err := c.cc.Invoke(ctx, AdminService_CreatePersonalFile_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) GetPersonalFile(ctx context.Context, in *GetPersonalFileRequest, opts ...grpc.CallOption) (*GetPersonalFileResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(GetPersonalFileResponse) + err := c.cc.Invoke(ctx, AdminService_GetPersonalFile_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) EditPersonalFile(ctx context.Context, in *EditPersonalFileRequest, opts ...grpc.CallOption) (*EditPersonalFileResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(EditPersonalFileResponse) + err := c.cc.Invoke(ctx, AdminService_EditPersonalFile_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *adminServiceClient) DeletePersonalFile(ctx context.Context, in *DeletePersonalFileRequest, opts ...grpc.CallOption) (*DeletePersonalFileResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(DeletePersonalFileResponse) + err := c.cc.Invoke(ctx, AdminService_DeletePersonalFile_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *adminServiceClient) GetBillingSubscription(ctx context.Context, in *GetBillingSubscriptionRequest, opts ...grpc.CallOption) (*GetBillingSubscriptionResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GetBillingSubscriptionResponse) @@ -2455,6 +2520,16 @@ type AdminServiceServer interface { GenerateAlertYAML(context.Context, *GenerateAlertYAMLRequest) (*GenerateAlertYAMLResponse, error) // GenerateAlertYAML generates YAML for an alert to be copied into a project's Git repository GetAlertYAML(context.Context, *GetAlertYAMLRequest) (*GetAlertYAMLResponse, error) + // ListPersonalFiles lists the calling user's personal files. + ListPersonalFiles(context.Context, *ListPersonalFilesRequest) (*ListPersonalFilesResponse, error) + // CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + CreatePersonalFile(context.Context, *CreatePersonalFileRequest) (*CreatePersonalFileResponse, error) + // GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + GetPersonalFile(context.Context, *GetPersonalFileRequest) (*GetPersonalFileResponse, error) + // EditPersonalFile updates the YAML body of a personal virtual file the caller owns. + EditPersonalFile(context.Context, *EditPersonalFileRequest) (*EditPersonalFileResponse, error) + // DeletePersonalFile deletes a personal virtual file the caller owns. + DeletePersonalFile(context.Context, *DeletePersonalFileRequest) (*DeletePersonalFileResponse, error) // GetBillingSubscription lists the subscription for the organization GetBillingSubscription(context.Context, *GetBillingSubscriptionRequest) (*GetBillingSubscriptionResponse, error) // UpdateBillingSubscription updates the billing plan for the organization @@ -2928,6 +3003,21 @@ func (UnimplementedAdminServiceServer) GenerateAlertYAML(context.Context, *Gener func (UnimplementedAdminServiceServer) GetAlertYAML(context.Context, *GetAlertYAMLRequest) (*GetAlertYAMLResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetAlertYAML not implemented") } +func (UnimplementedAdminServiceServer) ListPersonalFiles(context.Context, *ListPersonalFilesRequest) (*ListPersonalFilesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPersonalFiles not implemented") +} +func (UnimplementedAdminServiceServer) CreatePersonalFile(context.Context, *CreatePersonalFileRequest) (*CreatePersonalFileResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePersonalFile not implemented") +} +func (UnimplementedAdminServiceServer) GetPersonalFile(context.Context, *GetPersonalFileRequest) (*GetPersonalFileResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPersonalFile not implemented") +} +func (UnimplementedAdminServiceServer) EditPersonalFile(context.Context, *EditPersonalFileRequest) (*EditPersonalFileResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method EditPersonalFile not implemented") +} +func (UnimplementedAdminServiceServer) DeletePersonalFile(context.Context, *DeletePersonalFileRequest) (*DeletePersonalFileResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePersonalFile not implemented") +} func (UnimplementedAdminServiceServer) GetBillingSubscription(context.Context, *GetBillingSubscriptionRequest) (*GetBillingSubscriptionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBillingSubscription not implemented") } @@ -5634,6 +5724,96 @@ func _AdminService_GetAlertYAML_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _AdminService_ListPersonalFiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPersonalFilesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).ListPersonalFiles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_ListPersonalFiles_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).ListPersonalFiles(ctx, req.(*ListPersonalFilesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_CreatePersonalFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreatePersonalFileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).CreatePersonalFile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_CreatePersonalFile_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).CreatePersonalFile(ctx, req.(*CreatePersonalFileRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_GetPersonalFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPersonalFileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).GetPersonalFile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_GetPersonalFile_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).GetPersonalFile(ctx, req.(*GetPersonalFileRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_EditPersonalFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EditPersonalFileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).EditPersonalFile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_EditPersonalFile_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).EditPersonalFile(ctx, req.(*EditPersonalFileRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AdminService_DeletePersonalFile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePersonalFileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).DeletePersonalFile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_DeletePersonalFile_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).DeletePersonalFile(ctx, req.(*DeletePersonalFileRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AdminService_GetBillingSubscription_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetBillingSubscriptionRequest) if err := dec(in); err != nil { @@ -6463,6 +6643,26 @@ var AdminService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetAlertYAML", Handler: _AdminService_GetAlertYAML_Handler, }, + { + MethodName: "ListPersonalFiles", + Handler: _AdminService_ListPersonalFiles_Handler, + }, + { + MethodName: "CreatePersonalFile", + Handler: _AdminService_CreatePersonalFile_Handler, + }, + { + MethodName: "GetPersonalFile", + Handler: _AdminService_GetPersonalFile_Handler, + }, + { + MethodName: "EditPersonalFile", + Handler: _AdminService_EditPersonalFile_Handler, + }, + { + MethodName: "DeletePersonalFile", + Handler: _AdminService_DeletePersonalFile_Handler, + }, { MethodName: "GetBillingSubscription", Handler: _AdminService_GetBillingSubscription_Handler, diff --git a/proto/gen/rill/admin/v1/openapi.yaml b/proto/gen/rill/admin/v1/openapi.yaml index 29c97d963871..041ce412a14b 100644 --- a/proto/gen/rill/admin/v1/openapi.yaml +++ b/proto/gen/rill/admin/v1/openapi.yaml @@ -511,6 +511,11 @@ components: organization: $ref: '#/components/schemas/v1Organization' type: object + v1CreatePersonalFileResponse: + properties: + name: + type: string + type: object v1CreateProjectResponse: properties: project: @@ -544,6 +549,8 @@ components: type: object v1DeleteOrganizationResponse: type: object + v1DeletePersonalFileResponse: + type: object v1DeleteProjectResponse: properties: id: @@ -611,6 +618,8 @@ components: type: string v1EditAlertResponse: type: object + v1EditPersonalFileResponse: + type: object v1EditReportResponse: type: object v1ExportFormat: @@ -862,6 +871,13 @@ components: url: type: string type: object + v1GetPersonalFileResponse: + properties: + path: + type: string + yaml: + type: string + type: object v1GetProjectAccessRequestResponse: properties: email: @@ -1100,6 +1116,13 @@ components: $ref: '#/components/schemas/v1Organization' type: array type: object + v1ListPersonalFilesResponse: + properties: + files: + items: + type: string + type: array + type: object v1ListProjectInvitesResponse: properties: invites: @@ -4855,6 +4878,185 @@ paths: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. summary: ListUsergroupsForProjectAndUser returns the user groups for a user within a project + /v1/orgs/{org}/projects/{project}/personal-files: + get: + operationId: AdminService_ListPersonalFiles + parameters: + - in: path + name: org + required: true + schema: + type: string + - in: path + name: project + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1ListPersonalFilesResponse' + description: A successful response. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + description: An unexpected error response. + summary: ListPersonalFiles lists the calling user's personal files. + post: + operationId: AdminService_CreatePersonalFile + parameters: + - in: path + name: org + required: true + schema: + type: string + - in: path + name: project + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + displayName: + type: string + kind: + type: string + yaml: + description: 'Optional: initial YAML body. If empty, the server generates a blank template for the given type.' + type: string + type: object + required: true + x-originalParamName: body + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1CreatePersonalFileResponse' + description: A successful response. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + description: An unexpected error response. + summary: CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + /v1/orgs/{org}/projects/{project}/personal-files/{name}: + delete: + operationId: AdminService_DeletePersonalFile + parameters: + - in: path + name: org + required: true + schema: + type: string + - in: path + name: project + required: true + schema: + type: string + - in: path + name: name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1DeletePersonalFileResponse' + description: A successful response. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + description: An unexpected error response. + summary: DeletePersonalFile deletes a personal virtual file the caller owns. + get: + operationId: AdminService_GetPersonalFile + parameters: + - in: path + name: org + required: true + schema: + type: string + - in: path + name: project + required: true + schema: + type: string + - in: path + name: name + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1GetPersonalFileResponse' + description: A successful response. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + description: An unexpected error response. + summary: GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + post: + operationId: AdminService_EditPersonalFile + parameters: + - in: path + name: org + required: true + schema: + type: string + - in: path + name: project + required: true + schema: + type: string + - in: path + name: name + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + properties: + kind: + type: string + yaml: + type: string + type: object + required: true + x-originalParamName: body + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1EditPersonalFileResponse' + description: A successful response. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + description: An unexpected error response. + summary: EditPersonalFile updates the YAML body of a personal virtual file the caller owns. /v1/orgs/{org}/projects/{project}/redeploy: post: operationId: AdminService_RedeployProject diff --git a/proto/gen/rill/admin/v1/public.openapi.yaml b/proto/gen/rill/admin/v1/public.openapi.yaml index 5b12ebc984ba..b9d59b7bb3db 100644 --- a/proto/gen/rill/admin/v1/public.openapi.yaml +++ b/proto/gen/rill/admin/v1/public.openapi.yaml @@ -511,6 +511,11 @@ components: organization: $ref: '#/components/schemas/v1Organization' type: object + v1CreatePersonalFileResponse: + properties: + name: + type: string + type: object v1CreateProjectResponse: properties: project: @@ -544,6 +549,8 @@ components: type: object v1DeleteOrganizationResponse: type: object + v1DeletePersonalFileResponse: + type: object v1DeleteProjectResponse: properties: id: @@ -611,6 +618,8 @@ components: type: string v1EditAlertResponse: type: object + v1EditPersonalFileResponse: + type: object v1EditReportResponse: type: object v1ExportFormat: @@ -862,6 +871,13 @@ components: url: type: string type: object + v1GetPersonalFileResponse: + properties: + path: + type: string + yaml: + type: string + type: object v1GetProjectAccessRequestResponse: properties: email: @@ -1100,6 +1116,13 @@ components: $ref: '#/components/schemas/v1Organization' type: array type: object + v1ListPersonalFilesResponse: + properties: + files: + items: + type: string + type: array + type: object v1ListProjectInvitesResponse: properties: invites: @@ -3279,6 +3302,8 @@ paths: summary: SetProjectMemberUserRole sets the role for the member x-visibility: public /v1/orgs/{org}/projects/{project}/members/{email}/usergroups: {} + /v1/orgs/{org}/projects/{project}/personal-files: {} + /v1/orgs/{org}/projects/{project}/personal-files/{name}: {} /v1/orgs/{org}/projects/{project}/redeploy: {} /v1/orgs/{org}/projects/{project}/reports: {} /v1/orgs/{org}/projects/{project}/reports/-/yaml: {} diff --git a/proto/gen/rill/runtime/v1/resources.pb.go b/proto/gen/rill/runtime/v1/resources.pb.go index 639cf60cd513..27ae2c6f4bb1 100644 --- a/proto/gen/rill/runtime/v1/resources.pb.go +++ b/proto/gen/rill/runtime/v1/resources.pb.go @@ -5671,6 +5671,8 @@ type CanvasSpec struct { // Array of dimension or measure names that must have a value before the canvas can render. // Required filters are implicitly pinned. RequiredFilters []string `protobuf:"bytes,19,rep,name=required_filters,json=requiredFilters,proto3" json:"required_filters,omitempty"` + // Annotations are arbitrary key-value pairs that can be used to attach metadata to the canvas (e.g. used to mark personal canvases created by the admin server). + Annotations map[string]string `protobuf:"bytes,20,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CanvasSpec) Reset() { @@ -5824,6 +5826,13 @@ func (x *CanvasSpec) GetRequiredFilters() []string { return nil } +func (x *CanvasSpec) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + type CanvasState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -9010,7 +9019,7 @@ var file_rill_runtime_v1_resources_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x22, 0xfa, 0x05, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x22, 0x8a, 0x07, 0x0a, 0x0a, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x70, 0x65, 0x63, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, @@ -9057,7 +9066,16 @@ var file_rill_runtime_v1_resources_proto_rawDesc = []byte{ 0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, - 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x91, 0x01, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4e, 0x0a, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, + 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, @@ -9309,7 +9327,7 @@ func file_rill_runtime_v1_resources_proto_rawDescGZIP() []byte { } var file_rill_runtime_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_rill_runtime_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 84) +var file_rill_runtime_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 85) var file_rill_runtime_v1_resources_proto_goTypes = []any{ (ReconcileStatus)(0), // 0: rill.runtime.v1.ReconcileStatus (ModelChangeMode)(0), // 1: rill.runtime.v1.ModelChangeMode @@ -9402,16 +9420,17 @@ var file_rill_runtime_v1_resources_proto_goTypes = []any{ nil, // 88: rill.runtime.v1.ReportSpec.AnnotationsEntry nil, // 89: rill.runtime.v1.AlertSpec.AnnotationsEntry nil, // 90: rill.runtime.v1.ThemeColors.VariablesEntry - nil, // 91: rill.runtime.v1.CanvasPreset.FilterExprEntry - (*timestamppb.Timestamp)(nil), // 92: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 93: google.protobuf.Struct - (*StructType)(nil), // 94: rill.runtime.v1.StructType - (TimeGrain)(0), // 95: rill.runtime.v1.TimeGrain - (*Expression)(nil), // 96: rill.runtime.v1.Expression - (ExportFormat)(0), // 97: rill.runtime.v1.ExportFormat - (*Color)(nil), // 98: rill.runtime.v1.Color - (*structpb.Value)(nil), // 99: google.protobuf.Value - (*Type)(nil), // 100: rill.runtime.v1.Type + nil, // 91: rill.runtime.v1.CanvasSpec.AnnotationsEntry + nil, // 92: rill.runtime.v1.CanvasPreset.FilterExprEntry + (*timestamppb.Timestamp)(nil), // 93: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 94: google.protobuf.Struct + (*StructType)(nil), // 95: rill.runtime.v1.StructType + (TimeGrain)(0), // 96: rill.runtime.v1.TimeGrain + (*Expression)(nil), // 97: rill.runtime.v1.Expression + (ExportFormat)(0), // 98: rill.runtime.v1.ExportFormat + (*Color)(nil), // 99: rill.runtime.v1.Color + (*structpb.Value)(nil), // 100: google.protobuf.Value + (*Type)(nil), // 101: rill.runtime.v1.Type } var file_rill_runtime_v1_resources_proto_depIdxs = []int32{ 9, // 0: rill.runtime.v1.Resource.meta:type_name -> rill.runtime.v1.ResourceMeta @@ -9432,40 +9451,40 @@ var file_rill_runtime_v1_resources_proto_depIdxs = []int32{ 10, // 15: rill.runtime.v1.ResourceMeta.name:type_name -> rill.runtime.v1.ResourceName 10, // 16: rill.runtime.v1.ResourceMeta.refs:type_name -> rill.runtime.v1.ResourceName 10, // 17: rill.runtime.v1.ResourceMeta.owner:type_name -> rill.runtime.v1.ResourceName - 92, // 18: rill.runtime.v1.ResourceMeta.created_on:type_name -> google.protobuf.Timestamp - 92, // 19: rill.runtime.v1.ResourceMeta.spec_updated_on:type_name -> google.protobuf.Timestamp - 92, // 20: rill.runtime.v1.ResourceMeta.state_updated_on:type_name -> google.protobuf.Timestamp - 92, // 21: rill.runtime.v1.ResourceMeta.deleted_on:type_name -> google.protobuf.Timestamp + 93, // 18: rill.runtime.v1.ResourceMeta.created_on:type_name -> google.protobuf.Timestamp + 93, // 19: rill.runtime.v1.ResourceMeta.spec_updated_on:type_name -> google.protobuf.Timestamp + 93, // 20: rill.runtime.v1.ResourceMeta.state_updated_on:type_name -> google.protobuf.Timestamp + 93, // 21: rill.runtime.v1.ResourceMeta.deleted_on:type_name -> google.protobuf.Timestamp 0, // 22: rill.runtime.v1.ResourceMeta.reconcile_status:type_name -> rill.runtime.v1.ReconcileStatus - 92, // 23: rill.runtime.v1.ResourceMeta.reconcile_on:type_name -> google.protobuf.Timestamp + 93, // 23: rill.runtime.v1.ResourceMeta.reconcile_on:type_name -> google.protobuf.Timestamp 10, // 24: rill.runtime.v1.ResourceMeta.renamed_from:type_name -> rill.runtime.v1.ResourceName 12, // 25: rill.runtime.v1.ProjectParser.spec:type_name -> rill.runtime.v1.ProjectParserSpec 13, // 26: rill.runtime.v1.ProjectParser.state:type_name -> rill.runtime.v1.ProjectParserState 73, // 27: rill.runtime.v1.ProjectParserState.parse_errors:type_name -> rill.runtime.v1.ParseError - 92, // 28: rill.runtime.v1.ProjectParserState.current_commit_on:type_name -> google.protobuf.Timestamp + 93, // 28: rill.runtime.v1.ProjectParserState.current_commit_on:type_name -> google.protobuf.Timestamp 15, // 29: rill.runtime.v1.Source.spec:type_name -> rill.runtime.v1.SourceSpec 16, // 30: rill.runtime.v1.Source.state:type_name -> rill.runtime.v1.SourceState - 93, // 31: rill.runtime.v1.SourceSpec.properties:type_name -> google.protobuf.Struct + 94, // 31: rill.runtime.v1.SourceSpec.properties:type_name -> google.protobuf.Struct 72, // 32: rill.runtime.v1.SourceSpec.refresh_schedule:type_name -> rill.runtime.v1.Schedule - 92, // 33: rill.runtime.v1.SourceState.refreshed_on:type_name -> google.protobuf.Timestamp + 93, // 33: rill.runtime.v1.SourceState.refreshed_on:type_name -> google.protobuf.Timestamp 18, // 34: rill.runtime.v1.Model.spec:type_name -> rill.runtime.v1.ModelSpec 19, // 35: rill.runtime.v1.Model.state:type_name -> rill.runtime.v1.ModelState 72, // 36: rill.runtime.v1.ModelSpec.refresh_schedule:type_name -> rill.runtime.v1.Schedule - 93, // 37: rill.runtime.v1.ModelSpec.incremental_state_resolver_properties:type_name -> google.protobuf.Struct - 93, // 38: rill.runtime.v1.ModelSpec.partitions_resolver_properties:type_name -> google.protobuf.Struct - 93, // 39: rill.runtime.v1.ModelSpec.input_properties:type_name -> google.protobuf.Struct - 93, // 40: rill.runtime.v1.ModelSpec.stage_properties:type_name -> google.protobuf.Struct - 93, // 41: rill.runtime.v1.ModelSpec.output_properties:type_name -> google.protobuf.Struct + 94, // 37: rill.runtime.v1.ModelSpec.incremental_state_resolver_properties:type_name -> google.protobuf.Struct + 94, // 38: rill.runtime.v1.ModelSpec.partitions_resolver_properties:type_name -> google.protobuf.Struct + 94, // 39: rill.runtime.v1.ModelSpec.input_properties:type_name -> google.protobuf.Struct + 94, // 40: rill.runtime.v1.ModelSpec.stage_properties:type_name -> google.protobuf.Struct + 94, // 41: rill.runtime.v1.ModelSpec.output_properties:type_name -> google.protobuf.Struct 1, // 42: rill.runtime.v1.ModelSpec.change_mode:type_name -> rill.runtime.v1.ModelChangeMode 20, // 43: rill.runtime.v1.ModelSpec.tests:type_name -> rill.runtime.v1.ModelTest - 93, // 44: rill.runtime.v1.ModelState.result_properties:type_name -> google.protobuf.Struct - 92, // 45: rill.runtime.v1.ModelState.refreshed_on:type_name -> google.protobuf.Timestamp - 93, // 46: rill.runtime.v1.ModelState.incremental_state:type_name -> google.protobuf.Struct - 94, // 47: rill.runtime.v1.ModelState.incremental_state_schema:type_name -> rill.runtime.v1.StructType - 93, // 48: rill.runtime.v1.ModelTest.resolver_properties:type_name -> google.protobuf.Struct + 94, // 44: rill.runtime.v1.ModelState.result_properties:type_name -> google.protobuf.Struct + 93, // 45: rill.runtime.v1.ModelState.refreshed_on:type_name -> google.protobuf.Timestamp + 94, // 46: rill.runtime.v1.ModelState.incremental_state:type_name -> google.protobuf.Struct + 95, // 47: rill.runtime.v1.ModelState.incremental_state_schema:type_name -> rill.runtime.v1.StructType + 94, // 48: rill.runtime.v1.ModelTest.resolver_properties:type_name -> google.protobuf.Struct 22, // 49: rill.runtime.v1.MetricsView.spec:type_name -> rill.runtime.v1.MetricsViewSpec 28, // 50: rill.runtime.v1.MetricsView.state:type_name -> rill.runtime.v1.MetricsViewState - 95, // 51: rill.runtime.v1.MetricsViewSpec.smallest_time_grain:type_name -> rill.runtime.v1.TimeGrain + 96, // 51: rill.runtime.v1.MetricsViewSpec.smallest_time_grain:type_name -> rill.runtime.v1.TimeGrain 81, // 52: rill.runtime.v1.MetricsViewSpec.dimensions:type_name -> rill.runtime.v1.MetricsViewSpec.Dimension 84, // 53: rill.runtime.v1.MetricsViewSpec.measures:type_name -> rill.runtime.v1.MetricsViewSpec.Measure 35, // 54: rill.runtime.v1.MetricsViewSpec.parent_dimensions:type_name -> rill.runtime.v1.FieldSelector @@ -9481,10 +9500,10 @@ var file_rill_runtime_v1_resources_proto_depIdxs = []int32{ 10, // 64: rill.runtime.v1.SecurityRuleAccess.condition_resources:type_name -> rill.runtime.v1.ResourceName 10, // 65: rill.runtime.v1.SecurityRuleFieldAccess.condition_resources:type_name -> rill.runtime.v1.ResourceName 10, // 66: rill.runtime.v1.SecurityRuleRowFilter.condition_resources:type_name -> rill.runtime.v1.ResourceName - 96, // 67: rill.runtime.v1.SecurityRuleRowFilter.expression:type_name -> rill.runtime.v1.Expression + 97, // 67: rill.runtime.v1.SecurityRuleRowFilter.expression:type_name -> rill.runtime.v1.Expression 10, // 68: rill.runtime.v1.SecurityRuleTransitiveAccess.resource:type_name -> rill.runtime.v1.ResourceName 22, // 69: rill.runtime.v1.MetricsViewState.valid_spec:type_name -> rill.runtime.v1.MetricsViewSpec - 92, // 70: rill.runtime.v1.MetricsViewState.data_refreshed_on:type_name -> google.protobuf.Timestamp + 93, // 70: rill.runtime.v1.MetricsViewState.data_refreshed_on:type_name -> google.protobuf.Timestamp 30, // 71: rill.runtime.v1.Explore.spec:type_name -> rill.runtime.v1.ExploreSpec 31, // 72: rill.runtime.v1.Explore.state:type_name -> rill.runtime.v1.ExploreState 35, // 73: rill.runtime.v1.ExploreSpec.dimensions_selector:type_name -> rill.runtime.v1.FieldSelector @@ -9494,11 +9513,11 @@ var file_rill_runtime_v1_resources_proto_depIdxs = []int32{ 34, // 77: rill.runtime.v1.ExploreSpec.default_preset:type_name -> rill.runtime.v1.ExplorePreset 23, // 78: rill.runtime.v1.ExploreSpec.security_rules:type_name -> rill.runtime.v1.SecurityRule 30, // 79: rill.runtime.v1.ExploreState.valid_spec:type_name -> rill.runtime.v1.ExploreSpec - 92, // 80: rill.runtime.v1.ExploreState.data_refreshed_on:type_name -> google.protobuf.Timestamp + 93, // 80: rill.runtime.v1.ExploreState.data_refreshed_on:type_name -> google.protobuf.Timestamp 33, // 81: rill.runtime.v1.ExploreTimeRange.comparison_time_ranges:type_name -> rill.runtime.v1.ExploreComparisonTimeRange 35, // 82: rill.runtime.v1.ExplorePreset.dimensions_selector:type_name -> rill.runtime.v1.FieldSelector 35, // 83: rill.runtime.v1.ExplorePreset.measures_selector:type_name -> rill.runtime.v1.FieldSelector - 96, // 84: rill.runtime.v1.ExplorePreset.where:type_name -> rill.runtime.v1.Expression + 97, // 84: rill.runtime.v1.ExplorePreset.where:type_name -> rill.runtime.v1.Expression 2, // 85: rill.runtime.v1.ExplorePreset.comparison_mode:type_name -> rill.runtime.v1.ExploreComparisonMode 3, // 86: rill.runtime.v1.ExplorePreset.view:type_name -> rill.runtime.v1.ExploreWebView 4, // 87: rill.runtime.v1.ExplorePreset.explore_sort_type:type_name -> rill.runtime.v1.ExploreSortType @@ -9508,53 +9527,53 @@ var file_rill_runtime_v1_resources_proto_depIdxs = []int32{ 41, // 91: rill.runtime.v1.Report.spec:type_name -> rill.runtime.v1.ReportSpec 42, // 92: rill.runtime.v1.Report.state:type_name -> rill.runtime.v1.ReportState 72, // 93: rill.runtime.v1.ReportSpec.refresh_schedule:type_name -> rill.runtime.v1.Schedule - 93, // 94: rill.runtime.v1.ReportSpec.resolver_properties:type_name -> google.protobuf.Struct - 97, // 95: rill.runtime.v1.ReportSpec.export_format:type_name -> rill.runtime.v1.ExportFormat + 94, // 94: rill.runtime.v1.ReportSpec.resolver_properties:type_name -> google.protobuf.Struct + 98, // 95: rill.runtime.v1.ReportSpec.export_format:type_name -> rill.runtime.v1.ExportFormat 46, // 96: rill.runtime.v1.ReportSpec.notifiers:type_name -> rill.runtime.v1.Notifier 88, // 97: rill.runtime.v1.ReportSpec.annotations:type_name -> rill.runtime.v1.ReportSpec.AnnotationsEntry - 92, // 98: rill.runtime.v1.ReportState.next_run_on:type_name -> google.protobuf.Timestamp + 93, // 98: rill.runtime.v1.ReportState.next_run_on:type_name -> google.protobuf.Timestamp 43, // 99: rill.runtime.v1.ReportState.current_execution:type_name -> rill.runtime.v1.ReportExecution 43, // 100: rill.runtime.v1.ReportState.execution_history:type_name -> rill.runtime.v1.ReportExecution - 92, // 101: rill.runtime.v1.ReportExecution.report_time:type_name -> google.protobuf.Timestamp - 92, // 102: rill.runtime.v1.ReportExecution.started_on:type_name -> google.protobuf.Timestamp - 92, // 103: rill.runtime.v1.ReportExecution.finished_on:type_name -> google.protobuf.Timestamp + 93, // 101: rill.runtime.v1.ReportExecution.report_time:type_name -> google.protobuf.Timestamp + 93, // 102: rill.runtime.v1.ReportExecution.started_on:type_name -> google.protobuf.Timestamp + 93, // 103: rill.runtime.v1.ReportExecution.finished_on:type_name -> google.protobuf.Timestamp 45, // 104: rill.runtime.v1.Alert.spec:type_name -> rill.runtime.v1.AlertSpec 47, // 105: rill.runtime.v1.Alert.state:type_name -> rill.runtime.v1.AlertState 72, // 106: rill.runtime.v1.AlertSpec.refresh_schedule:type_name -> rill.runtime.v1.Schedule - 93, // 107: rill.runtime.v1.AlertSpec.resolver_properties:type_name -> google.protobuf.Struct - 93, // 108: rill.runtime.v1.AlertSpec.query_for_attributes:type_name -> google.protobuf.Struct + 94, // 107: rill.runtime.v1.AlertSpec.resolver_properties:type_name -> google.protobuf.Struct + 94, // 108: rill.runtime.v1.AlertSpec.query_for_attributes:type_name -> google.protobuf.Struct 46, // 109: rill.runtime.v1.AlertSpec.notifiers:type_name -> rill.runtime.v1.Notifier 89, // 110: rill.runtime.v1.AlertSpec.annotations:type_name -> rill.runtime.v1.AlertSpec.AnnotationsEntry - 93, // 111: rill.runtime.v1.Notifier.properties:type_name -> google.protobuf.Struct - 92, // 112: rill.runtime.v1.AlertState.next_run_on:type_name -> google.protobuf.Timestamp + 94, // 111: rill.runtime.v1.Notifier.properties:type_name -> google.protobuf.Struct + 93, // 112: rill.runtime.v1.AlertState.next_run_on:type_name -> google.protobuf.Timestamp 48, // 113: rill.runtime.v1.AlertState.current_execution:type_name -> rill.runtime.v1.AlertExecution 48, // 114: rill.runtime.v1.AlertState.execution_history:type_name -> rill.runtime.v1.AlertExecution 49, // 115: rill.runtime.v1.AlertExecution.result:type_name -> rill.runtime.v1.AssertionResult - 92, // 116: rill.runtime.v1.AlertExecution.execution_time:type_name -> google.protobuf.Timestamp - 92, // 117: rill.runtime.v1.AlertExecution.started_on:type_name -> google.protobuf.Timestamp - 92, // 118: rill.runtime.v1.AlertExecution.finished_on:type_name -> google.protobuf.Timestamp - 92, // 119: rill.runtime.v1.AlertExecution.suppressed_since:type_name -> google.protobuf.Timestamp + 93, // 116: rill.runtime.v1.AlertExecution.execution_time:type_name -> google.protobuf.Timestamp + 93, // 117: rill.runtime.v1.AlertExecution.started_on:type_name -> google.protobuf.Timestamp + 93, // 118: rill.runtime.v1.AlertExecution.finished_on:type_name -> google.protobuf.Timestamp + 93, // 119: rill.runtime.v1.AlertExecution.suppressed_since:type_name -> google.protobuf.Timestamp 5, // 120: rill.runtime.v1.AssertionResult.status:type_name -> rill.runtime.v1.AssertionStatus - 93, // 121: rill.runtime.v1.AssertionResult.fail_row:type_name -> google.protobuf.Struct + 94, // 121: rill.runtime.v1.AssertionResult.fail_row:type_name -> google.protobuf.Struct 51, // 122: rill.runtime.v1.RefreshTrigger.spec:type_name -> rill.runtime.v1.RefreshTriggerSpec 52, // 123: rill.runtime.v1.RefreshTrigger.state:type_name -> rill.runtime.v1.RefreshTriggerState 10, // 124: rill.runtime.v1.RefreshTriggerSpec.resources:type_name -> rill.runtime.v1.ResourceName 53, // 125: rill.runtime.v1.RefreshTriggerSpec.models:type_name -> rill.runtime.v1.RefreshModelTrigger 55, // 126: rill.runtime.v1.Theme.spec:type_name -> rill.runtime.v1.ThemeSpec 56, // 127: rill.runtime.v1.Theme.state:type_name -> rill.runtime.v1.ThemeState - 98, // 128: rill.runtime.v1.ThemeSpec.primary_color:type_name -> rill.runtime.v1.Color - 98, // 129: rill.runtime.v1.ThemeSpec.secondary_color:type_name -> rill.runtime.v1.Color + 99, // 128: rill.runtime.v1.ThemeSpec.primary_color:type_name -> rill.runtime.v1.Color + 99, // 129: rill.runtime.v1.ThemeSpec.secondary_color:type_name -> rill.runtime.v1.Color 57, // 130: rill.runtime.v1.ThemeSpec.light:type_name -> rill.runtime.v1.ThemeColors 57, // 131: rill.runtime.v1.ThemeSpec.dark:type_name -> rill.runtime.v1.ThemeColors 90, // 132: rill.runtime.v1.ThemeColors.variables:type_name -> rill.runtime.v1.ThemeColors.VariablesEntry 59, // 133: rill.runtime.v1.Component.spec:type_name -> rill.runtime.v1.ComponentSpec 60, // 134: rill.runtime.v1.Component.state:type_name -> rill.runtime.v1.ComponentState - 93, // 135: rill.runtime.v1.ComponentSpec.renderer_properties:type_name -> google.protobuf.Struct + 94, // 135: rill.runtime.v1.ComponentSpec.renderer_properties:type_name -> google.protobuf.Struct 61, // 136: rill.runtime.v1.ComponentSpec.input:type_name -> rill.runtime.v1.ComponentVariable 61, // 137: rill.runtime.v1.ComponentSpec.output:type_name -> rill.runtime.v1.ComponentVariable 59, // 138: rill.runtime.v1.ComponentState.valid_spec:type_name -> rill.runtime.v1.ComponentSpec - 92, // 139: rill.runtime.v1.ComponentState.data_refreshed_on:type_name -> google.protobuf.Timestamp - 99, // 140: rill.runtime.v1.ComponentVariable.default_value:type_name -> google.protobuf.Value + 93, // 139: rill.runtime.v1.ComponentState.data_refreshed_on:type_name -> google.protobuf.Timestamp + 100, // 140: rill.runtime.v1.ComponentVariable.default_value:type_name -> google.protobuf.Value 63, // 141: rill.runtime.v1.Canvas.spec:type_name -> rill.runtime.v1.CanvasSpec 64, // 142: rill.runtime.v1.Canvas.state:type_name -> rill.runtime.v1.CanvasState 55, // 143: rill.runtime.v1.CanvasSpec.embedded_theme:type_name -> rill.runtime.v1.ThemeSpec @@ -9563,42 +9582,43 @@ var file_rill_runtime_v1_resources_proto_depIdxs = []int32{ 61, // 146: rill.runtime.v1.CanvasSpec.variables:type_name -> rill.runtime.v1.ComponentVariable 65, // 147: rill.runtime.v1.CanvasSpec.rows:type_name -> rill.runtime.v1.CanvasRow 23, // 148: rill.runtime.v1.CanvasSpec.security_rules:type_name -> rill.runtime.v1.SecurityRule - 63, // 149: rill.runtime.v1.CanvasState.valid_spec:type_name -> rill.runtime.v1.CanvasSpec - 92, // 150: rill.runtime.v1.CanvasState.data_refreshed_on:type_name -> google.protobuf.Timestamp - 66, // 151: rill.runtime.v1.CanvasRow.items:type_name -> rill.runtime.v1.CanvasItem - 2, // 152: rill.runtime.v1.CanvasPreset.comparison_mode:type_name -> rill.runtime.v1.ExploreComparisonMode - 91, // 153: rill.runtime.v1.CanvasPreset.filter_expr:type_name -> rill.runtime.v1.CanvasPreset.FilterExprEntry - 96, // 154: rill.runtime.v1.DefaultMetricsSQLFilter.expression:type_name -> rill.runtime.v1.Expression - 70, // 155: rill.runtime.v1.API.spec:type_name -> rill.runtime.v1.APISpec - 71, // 156: rill.runtime.v1.API.state:type_name -> rill.runtime.v1.APIState - 93, // 157: rill.runtime.v1.APISpec.resolver_properties:type_name -> google.protobuf.Struct - 23, // 158: rill.runtime.v1.APISpec.security_rules:type_name -> rill.runtime.v1.SecurityRule - 77, // 159: rill.runtime.v1.ParseError.start_location:type_name -> rill.runtime.v1.CharLocation - 79, // 160: rill.runtime.v1.ConnectorV2.spec:type_name -> rill.runtime.v1.ConnectorSpec - 80, // 161: rill.runtime.v1.ConnectorV2.state:type_name -> rill.runtime.v1.ConnectorState - 93, // 162: rill.runtime.v1.ConnectorSpec.properties:type_name -> google.protobuf.Struct - 93, // 163: rill.runtime.v1.ConnectorSpec.provision_args:type_name -> google.protobuf.Struct - 6, // 164: rill.runtime.v1.MetricsViewSpec.Dimension.type:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionType - 95, // 165: rill.runtime.v1.MetricsViewSpec.Dimension.smallest_time_grain:type_name -> rill.runtime.v1.TimeGrain - 100, // 166: rill.runtime.v1.MetricsViewSpec.Dimension.data_type:type_name -> rill.runtime.v1.Type - 95, // 167: rill.runtime.v1.MetricsViewSpec.DimensionSelector.time_grain:type_name -> rill.runtime.v1.TimeGrain - 82, // 168: rill.runtime.v1.MetricsViewSpec.MeasureWindow.order_by:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionSelector - 7, // 169: rill.runtime.v1.MetricsViewSpec.Measure.type:type_name -> rill.runtime.v1.MetricsViewSpec.MeasureType - 83, // 170: rill.runtime.v1.MetricsViewSpec.Measure.window:type_name -> rill.runtime.v1.MetricsViewSpec.MeasureWindow - 82, // 171: rill.runtime.v1.MetricsViewSpec.Measure.per_dimensions:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionSelector - 82, // 172: rill.runtime.v1.MetricsViewSpec.Measure.required_dimensions:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionSelector - 93, // 173: rill.runtime.v1.MetricsViewSpec.Measure.format_d3_locale:type_name -> google.protobuf.Struct - 100, // 174: rill.runtime.v1.MetricsViewSpec.Measure.data_type:type_name -> rill.runtime.v1.Type - 35, // 175: rill.runtime.v1.MetricsViewSpec.Annotation.measures_selector:type_name -> rill.runtime.v1.FieldSelector - 95, // 176: rill.runtime.v1.MetricsViewSpec.Rollup.time_grain:type_name -> rill.runtime.v1.TimeGrain - 35, // 177: rill.runtime.v1.MetricsViewSpec.Rollup.dimensions_selector:type_name -> rill.runtime.v1.FieldSelector - 35, // 178: rill.runtime.v1.MetricsViewSpec.Rollup.measures_selector:type_name -> rill.runtime.v1.FieldSelector - 68, // 179: rill.runtime.v1.CanvasPreset.FilterExprEntry.value:type_name -> rill.runtime.v1.DefaultMetricsSQLFilter - 180, // [180:180] is the sub-list for method output_type - 180, // [180:180] is the sub-list for method input_type - 180, // [180:180] is the sub-list for extension type_name - 180, // [180:180] is the sub-list for extension extendee - 0, // [0:180] is the sub-list for field type_name + 91, // 149: rill.runtime.v1.CanvasSpec.annotations:type_name -> rill.runtime.v1.CanvasSpec.AnnotationsEntry + 63, // 150: rill.runtime.v1.CanvasState.valid_spec:type_name -> rill.runtime.v1.CanvasSpec + 93, // 151: rill.runtime.v1.CanvasState.data_refreshed_on:type_name -> google.protobuf.Timestamp + 66, // 152: rill.runtime.v1.CanvasRow.items:type_name -> rill.runtime.v1.CanvasItem + 2, // 153: rill.runtime.v1.CanvasPreset.comparison_mode:type_name -> rill.runtime.v1.ExploreComparisonMode + 92, // 154: rill.runtime.v1.CanvasPreset.filter_expr:type_name -> rill.runtime.v1.CanvasPreset.FilterExprEntry + 97, // 155: rill.runtime.v1.DefaultMetricsSQLFilter.expression:type_name -> rill.runtime.v1.Expression + 70, // 156: rill.runtime.v1.API.spec:type_name -> rill.runtime.v1.APISpec + 71, // 157: rill.runtime.v1.API.state:type_name -> rill.runtime.v1.APIState + 94, // 158: rill.runtime.v1.APISpec.resolver_properties:type_name -> google.protobuf.Struct + 23, // 159: rill.runtime.v1.APISpec.security_rules:type_name -> rill.runtime.v1.SecurityRule + 77, // 160: rill.runtime.v1.ParseError.start_location:type_name -> rill.runtime.v1.CharLocation + 79, // 161: rill.runtime.v1.ConnectorV2.spec:type_name -> rill.runtime.v1.ConnectorSpec + 80, // 162: rill.runtime.v1.ConnectorV2.state:type_name -> rill.runtime.v1.ConnectorState + 94, // 163: rill.runtime.v1.ConnectorSpec.properties:type_name -> google.protobuf.Struct + 94, // 164: rill.runtime.v1.ConnectorSpec.provision_args:type_name -> google.protobuf.Struct + 6, // 165: rill.runtime.v1.MetricsViewSpec.Dimension.type:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionType + 96, // 166: rill.runtime.v1.MetricsViewSpec.Dimension.smallest_time_grain:type_name -> rill.runtime.v1.TimeGrain + 101, // 167: rill.runtime.v1.MetricsViewSpec.Dimension.data_type:type_name -> rill.runtime.v1.Type + 96, // 168: rill.runtime.v1.MetricsViewSpec.DimensionSelector.time_grain:type_name -> rill.runtime.v1.TimeGrain + 82, // 169: rill.runtime.v1.MetricsViewSpec.MeasureWindow.order_by:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionSelector + 7, // 170: rill.runtime.v1.MetricsViewSpec.Measure.type:type_name -> rill.runtime.v1.MetricsViewSpec.MeasureType + 83, // 171: rill.runtime.v1.MetricsViewSpec.Measure.window:type_name -> rill.runtime.v1.MetricsViewSpec.MeasureWindow + 82, // 172: rill.runtime.v1.MetricsViewSpec.Measure.per_dimensions:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionSelector + 82, // 173: rill.runtime.v1.MetricsViewSpec.Measure.required_dimensions:type_name -> rill.runtime.v1.MetricsViewSpec.DimensionSelector + 94, // 174: rill.runtime.v1.MetricsViewSpec.Measure.format_d3_locale:type_name -> google.protobuf.Struct + 101, // 175: rill.runtime.v1.MetricsViewSpec.Measure.data_type:type_name -> rill.runtime.v1.Type + 35, // 176: rill.runtime.v1.MetricsViewSpec.Annotation.measures_selector:type_name -> rill.runtime.v1.FieldSelector + 96, // 177: rill.runtime.v1.MetricsViewSpec.Rollup.time_grain:type_name -> rill.runtime.v1.TimeGrain + 35, // 178: rill.runtime.v1.MetricsViewSpec.Rollup.dimensions_selector:type_name -> rill.runtime.v1.FieldSelector + 35, // 179: rill.runtime.v1.MetricsViewSpec.Rollup.measures_selector:type_name -> rill.runtime.v1.FieldSelector + 68, // 180: rill.runtime.v1.CanvasPreset.FilterExprEntry.value:type_name -> rill.runtime.v1.DefaultMetricsSQLFilter + 181, // [181:181] is the sub-list for method output_type + 181, // [181:181] is the sub-list for method input_type + 181, // [181:181] is the sub-list for extension type_name + 181, // [181:181] is the sub-list for extension extendee + 0, // [0:181] is the sub-list for field type_name } func init() { file_rill_runtime_v1_resources_proto_init() } @@ -10608,7 +10628,7 @@ func file_rill_runtime_v1_resources_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rill_runtime_v1_resources_proto_rawDesc, NumEnums: 8, - NumMessages: 84, + NumMessages: 85, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/gen/rill/runtime/v1/resources.pb.validate.go b/proto/gen/rill/runtime/v1/resources.pb.validate.go index 971c5eb0c54f..469570ce842e 100644 --- a/proto/gen/rill/runtime/v1/resources.pb.validate.go +++ b/proto/gen/rill/runtime/v1/resources.pb.validate.go @@ -10414,6 +10414,8 @@ func (m *CanvasSpec) validate(all bool) error { } + // no validation rules for Annotations + if len(errors) > 0 { return CanvasSpecMultiError(errors) } diff --git a/proto/gen/rill/runtime/v1/runtime.swagger.yaml b/proto/gen/rill/runtime/v1/runtime.swagger.yaml index 8b7e736a2881..4a4ee46b73ee 100644 --- a/proto/gen/rill/runtime/v1/runtime.swagger.yaml +++ b/proto/gen/rill/runtime/v1/runtime.swagger.yaml @@ -4454,6 +4454,11 @@ definitions: description: |- Array of dimension or measure names that must have a value before the canvas can render. Required filters are implicitly pinned. + annotations: + type: object + additionalProperties: + type: string + description: Annotations are arbitrary key-value pairs that can be used to attach metadata to the canvas (e.g. used to mark personal canvases created by the admin server). v1CanvasState: type: object properties: diff --git a/proto/rill/admin/v1/api.proto b/proto/rill/admin/v1/api.proto index 2d337971b901..293bbed618ad 100644 --- a/proto/rill/admin/v1/api.proto +++ b/proto/rill/admin/v1/api.proto @@ -1255,6 +1255,39 @@ service AdminService { }; } + // ListPersonalFiles lists the calling user's personal files. + rpc ListPersonalFiles(ListPersonalFilesRequest) returns (ListPersonalFilesResponse) { + option (google.api.http) = {get: "/v1/orgs/{org}/projects/{project}/personal-files"}; + } + + // CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + rpc CreatePersonalFile(CreatePersonalFileRequest) returns (CreatePersonalFileResponse) { + option (google.api.http) = { + post: "/v1/orgs/{org}/projects/{project}/personal-files", + body: "*" + }; + } + + // GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + rpc GetPersonalFile(GetPersonalFileRequest) returns (GetPersonalFileResponse) { + option (google.api.http) = { + get: "/v1/orgs/{org}/projects/{project}/personal-files/{name}" + }; + } + + // EditPersonalFile updates the YAML body of a personal virtual file the caller owns. + rpc EditPersonalFile(EditPersonalFileRequest) returns (EditPersonalFileResponse) { + option (google.api.http) = { + post: "/v1/orgs/{org}/projects/{project}/personal-files/{name}", + body: "*" + }; + } + + // DeletePersonalFile deletes a personal virtual file the caller owns. + rpc DeletePersonalFile(DeletePersonalFileRequest) returns (DeletePersonalFileResponse) { + option (google.api.http) = {delete: "/v1/orgs/{org}/projects/{project}/personal-files/{name}"}; + } + // GetBillingSubscription lists the subscription for the organization rpc GetBillingSubscription(GetBillingSubscriptionRequest) returns (GetBillingSubscriptionResponse) { option (google.api.http) = {get: "/v1/orgs/{org}/billing/subscriptions"}; @@ -3122,6 +3155,59 @@ message GetAlertYAMLResponse { string yaml = 1; } +message ListPersonalFilesRequest { + string org = 1; + string project = 2; +} + +message ListPersonalFilesResponse { + repeated string files = 1; +} + +message CreatePersonalFileRequest { + string org = 1; + string project = 2; + string display_name = 3 [(validate.rules).string.min_len = 1]; + string kind = 4; + // Optional: initial YAML body. If empty, the server generates a blank template for the given type. + string yaml = 5; +} + +message CreatePersonalFileResponse { + string name = 1; +} + +message GetPersonalFileRequest { + string org = 1; + string project = 2; + string name = 3; +} + +message GetPersonalFileResponse { + string path = 1; + string yaml = 2; +} + +message EditPersonalFileRequest { + string org = 1; + string project = 2; + string name = 3; + string kind = 4; + string yaml = 5; +} + +message EditPersonalFileResponse { +} + +message DeletePersonalFileRequest { + string org = 1; + string project = 2; + string name = 3; +} + +message DeletePersonalFileResponse { +} + message GetBillingSubscriptionRequest { string org = 1 [(validate.rules).string.min_len = 1]; bool superuser_force_access = 2; diff --git a/proto/rill/runtime/v1/resources.proto b/proto/rill/runtime/v1/resources.proto index 3aae56b39444..958cb1b778ed 100644 --- a/proto/rill/runtime/v1/resources.proto +++ b/proto/rill/runtime/v1/resources.proto @@ -883,6 +883,8 @@ message CanvasSpec { // Array of dimension or measure names that must have a value before the canvas can render. // Required filters are implicitly pinned. repeated string required_filters = 19; + // Annotations are arbitrary key-value pairs that can be used to attach metadata to the canvas (e.g. used to mark personal canvases created by the admin server). + map annotations = 20; } message CanvasState { diff --git a/runtime/feature_flags.go b/runtime/feature_flags.go index ae9f148f9567..d1e6f19631e3 100644 --- a/runtime/feature_flags.go +++ b/runtime/feature_flags.go @@ -64,6 +64,8 @@ var defaultFeatureFlags = map[string]string{ "cloud_editing": "true", // Controls visibility of the custom chart option in canvas dashboards "custom_charts": "false", + // Controls visibility of the personal canvas feature (per-user owner-only canvases stored as virtual files) + "personal_canvases": "false", } // ResolveFeatureFlags resolves feature flags for the given instance and the provided user attributes. diff --git a/runtime/feature_flags_test.go b/runtime/feature_flags_test.go index 50a99b92a4c2..c5a19bcc142f 100644 --- a/runtime/feature_flags_test.go +++ b/runtime/feature_flags_test.go @@ -45,6 +45,7 @@ func Test_ResolveFeatureFlags(t *testing.T) { "stickyDashboardState": false, "cloudEditing": true, "customCharts": false, + "personalCanvases": false, }, }, { @@ -71,6 +72,7 @@ func Test_ResolveFeatureFlags(t *testing.T) { "stickyDashboardState": false, "cloudEditing": true, "customCharts": false, + "personalCanvases": false, }, }, { @@ -97,6 +99,7 @@ func Test_ResolveFeatureFlags(t *testing.T) { "stickyDashboardState": false, "cloudEditing": true, "customCharts": false, + "personalCanvases": false, }, }, { @@ -123,6 +126,7 @@ func Test_ResolveFeatureFlags(t *testing.T) { "stickyDashboardState": false, "cloudEditing": true, "customCharts": false, + "personalCanvases": false, }, }, } diff --git a/runtime/parser/parse_canvas.go b/runtime/parser/parse_canvas.go index ddb7863b9f18..9dd9800f83aa 100644 --- a/runtime/parser/parse_canvas.go +++ b/runtime/parser/parse_canvas.go @@ -49,7 +49,8 @@ type CanvasYAML struct { InlineComponent map[string]yaml.Node `yaml:",inline"` // Any other properties are considered an inline component definition } `yaml:"items"` } - Security *SecurityPolicyYAML `yaml:"security"` + Security *SecurityPolicyYAML `yaml:"security"` + Annotations map[string]string `yaml:"annotations"` } func (p *Parser) parseCanvas(node *Node) error { @@ -290,6 +291,7 @@ func (p *Parser) parseCanvas(node *Node) error { r.CanvasSpec.SecurityRules = rules r.CanvasSpec.PinnedFilters = tmp.Filters.Pinned r.CanvasSpec.RequiredFilters = tmp.Filters.Required + r.CanvasSpec.Annotations = tmp.Annotations // Track inline components for _, def := range inlineComponentDefs { diff --git a/runtime/security.go b/runtime/security.go index 6e26712f91f7..aa8dadf84e39 100644 --- a/runtime/security.go +++ b/runtime/security.go @@ -8,6 +8,7 @@ import ( "errors" "fmt" "slices" + "strconv" "strings" "sync" @@ -364,13 +365,20 @@ func (p *securityEngine) resolveRules(claims *SecurityClaims, rules []*runtimev1 // Everyone can access a component. case ResourceKindComponent: rules = append(rules, allowAccessRule) - // Determine access using the canvas' security rules. If there are none, then everyone can access it. + // Determine access using the canvas' security rules. If there are none, then everyone can access it, + // unless the canvas is admin-managed (e.g. a personal canvas) in which case only the owner and admins can access it. case ResourceKindCanvas: spec := r.GetCanvas().State.ValidSpec if spec == nil { spec = r.GetCanvas().Spec // Not ideal, but better than giving access to the full resource } - if len(spec.SecurityRules) == 0 { + if isAdminManagedAnnotations(spec.Annotations) { + // Personal / admin-managed canvas: only owner and admins can access. No default-allow fallthrough. + rule := p.builtInCanvasSecurityRule(r.Meta.Name, spec, claims) + if rule != nil { + rules = append([]*runtimev1.SecurityRule{rule}, rules...) + } + } else if len(spec.SecurityRules) == 0 { rules = append(rules, allowAccessRule) } else { rules = append(rules, spec.SecurityRules...) @@ -569,6 +577,52 @@ func (p *securityEngine) builtInReportSecurityRule(reportRes *runtimev1.Resource } } +// isAdminManagedAnnotations returns true if the resource annotations indicate it is admin-managed +// (i.e. created by the admin server via the personal virtual file APIs). +func isAdminManagedAnnotations(annotations map[string]string) bool { + if annotations == nil { + return false + } + v, _ := strconv.ParseBool(annotations["admin_managed"]) + return v +} + +// builtInCanvasSecurityRule returns a built-in security rule to apply to an admin-managed canvas. +// Returns nil if the caller is not an admin and not the owner, so the caller of resolveRules treats it as a deny. +func (p *securityEngine) builtInCanvasSecurityRule(canvasRes *runtimev1.ResourceName, spec *runtimev1.CanvasSpec, claims *SecurityClaims) *runtimev1.SecurityRule { + // Allow if the user is an admin + if claims.Admin() { + return &runtimev1.SecurityRule{ + Rule: &runtimev1.SecurityRule_Access{ + Access: &runtimev1.SecurityRuleAccess{ + Allow: true, + ConditionResources: []*runtimev1.ResourceName{canvasRes}, + }, + }, + } + } + + // Extract the calling user id + var userID string + if len(claims.UserAttributes) != 0 { + userID, _ = claims.UserAttributes["id"].(string) + } + + // Allow if the calling user is the owner + if spec.Annotations != nil && userID != "" && userID == spec.Annotations["admin_owner_user_id"] { + return &runtimev1.SecurityRule{ + Rule: &runtimev1.SecurityRule_Access{ + Access: &runtimev1.SecurityRuleAccess{ + Allow: true, + ConditionResources: []*runtimev1.ResourceName{canvasRes}, + }, + }, + } + } + + return nil +} + // applySecurityRuleAccess applies an access rule to the resolved security. func (p *securityEngine) applySecurityRuleAccess(res *ResolvedSecurity, r *runtimev1.Resource, rule *runtimev1.SecurityRuleAccess, td parser.TemplateData) error { // If already explicitly denied, do nothing (explicit denies take precedence over explicit allows) diff --git a/web-admin/src/client/gen/default/default.ts b/web-admin/src/client/gen/default/default.ts index 97ff57a85f1f..3d673cd4b639 100644 --- a/web-admin/src/client/gen/default/default.ts +++ b/web-admin/src/client/gen/default/default.ts @@ -35,6 +35,7 @@ import type { AdminServiceCreateDeploymentBody, AdminServiceCreateGithubPullRequestBody, AdminServiceCreateManagedGitRepoBody, + AdminServiceCreatePersonalFileBody, AdminServiceCreateProjectBody, AdminServiceCreateProjectWhitelistedDomainBodyBody, AdminServiceCreateReportBodyBody, @@ -42,6 +43,7 @@ import type { AdminServiceCreateUsergroupBody, AdminServiceDeleteUserParams, AdminServiceDeleteVirtualFileParams, + AdminServiceEditPersonalFileBody, AdminServiceGetAlertMetaBody, AdminServiceGetBillingCreditBalanceParams, AdminServiceGetBillingSubscriptionParams, @@ -121,6 +123,7 @@ import type { V1CreateManagedGitRepoResponse, V1CreateOrganizationRequest, V1CreateOrganizationResponse, + V1CreatePersonalFileResponse, V1CreateProjectResponse, V1CreateProjectWhitelistedDomainResponse, V1CreateReportResponse, @@ -130,6 +133,7 @@ import type { V1DeleteAlertResponse, V1DeleteDeploymentResponse, V1DeleteOrganizationResponse, + V1DeletePersonalFileResponse, V1DeleteProjectResponse, V1DeleteReportResponse, V1DeleteServiceResponse, @@ -138,6 +142,7 @@ import type { V1DeleteVirtualFileResponse, V1DenyProjectAccessResponse, V1EditAlertResponse, + V1EditPersonalFileResponse, V1EditReportResponse, V1GenerateAlertYAMLResponse, V1GenerateReportYAMLResponse, @@ -162,6 +167,7 @@ import type { V1GetOrganizationNameForDomainResponse, V1GetOrganizationResponse, V1GetPaymentsPortalURLResponse, + V1GetPersonalFileResponse, V1GetProjectAccessRequestResponse, V1GetProjectByIDResponse, V1GetProjectMemberUserResponse, @@ -189,6 +195,7 @@ import type { V1ListOrganizationMemberUsergroupsResponse, V1ListOrganizationMemberUsersResponse, V1ListOrganizationsResponse, + V1ListPersonalFilesResponse, V1ListProjectInvitesResponse, V1ListProjectMemberServicesResponse, V1ListProjectMemberUsergroupsResponse, @@ -7038,6 +7045,513 @@ export function createAdminServiceListUsergroupsForProjectAndUser< return query; } +/** + * @summary ListPersonalFiles lists the calling user's personal files. + */ +export const adminServiceListPersonalFiles = ( + org: string, + project: string, + signal?: AbortSignal, +) => { + return httpClient({ + url: `/v1/orgs/${org}/projects/${project}/personal-files`, + method: "GET", + signal, + }); +}; + +export const getAdminServiceListPersonalFilesQueryKey = ( + org?: string, + project?: string, +) => { + return [`/v1/orgs/${org}/projects/${project}/personal-files`] as const; +}; + +export const getAdminServiceListPersonalFilesQueryOptions = < + TData = Awaited>, + TError = RpcStatus, +>( + org: string, + project: string, + options?: { + query?: Partial< + CreateQueryOptions< + Awaited>, + TError, + TData + > + >; + }, +) => { + const { query: queryOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getAdminServiceListPersonalFilesQueryKey(org, project); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => adminServiceListPersonalFiles(org, project, signal); + + return { + queryKey, + queryFn, + enabled: !!(org && project), + ...queryOptions, + } as CreateQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type AdminServiceListPersonalFilesQueryResult = NonNullable< + Awaited> +>; +export type AdminServiceListPersonalFilesQueryError = RpcStatus; + +/** + * @summary ListPersonalFiles lists the calling user's personal files. + */ + +export function createAdminServiceListPersonalFiles< + TData = Awaited>, + TError = RpcStatus, +>( + org: string, + project: string, + options?: { + query?: Partial< + CreateQueryOptions< + Awaited>, + TError, + TData + > + >; + }, + queryClient?: QueryClient, +): CreateQueryResult & { + queryKey: DataTag; +} { + const queryOptions = getAdminServiceListPersonalFilesQueryOptions( + org, + project, + options, + ); + + const query = createQuery(queryOptions, queryClient) as CreateQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + query.queryKey = queryOptions.queryKey; + + return query; +} + +/** + * @summary CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + */ +export const adminServiceCreatePersonalFile = ( + org: string, + project: string, + adminServiceCreatePersonalFileBody: AdminServiceCreatePersonalFileBody, + signal?: AbortSignal, +) => { + return httpClient({ + url: `/v1/orgs/${org}/projects/${project}/personal-files`, + method: "POST", + headers: { "Content-Type": "application/json" }, + data: adminServiceCreatePersonalFileBody, + signal, + }); +}; + +export const getAdminServiceCreatePersonalFileMutationOptions = < + TError = RpcStatus, + TContext = unknown, +>(options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { org: string; project: string; data: AdminServiceCreatePersonalFileBody }, + TContext + >; +}): CreateMutationOptions< + Awaited>, + TError, + { org: string; project: string; data: AdminServiceCreatePersonalFileBody }, + TContext +> => { + const mutationKey = ["adminServiceCreatePersonalFile"]; + const { mutation: mutationOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey } }; + + const mutationFn: MutationFunction< + Awaited>, + { org: string; project: string; data: AdminServiceCreatePersonalFileBody } + > = (props) => { + const { org, project, data } = props ?? {}; + + return adminServiceCreatePersonalFile(org, project, data); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type AdminServiceCreatePersonalFileMutationResult = NonNullable< + Awaited> +>; +export type AdminServiceCreatePersonalFileMutationBody = + AdminServiceCreatePersonalFileBody; +export type AdminServiceCreatePersonalFileMutationError = RpcStatus; + +/** + * @summary CreatePersonalFile creates a personal (owner-only) resource as a virtual file in the project. + */ +export const createAdminServiceCreatePersonalFile = < + TError = RpcStatus, + TContext = unknown, +>( + options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { + org: string; + project: string; + data: AdminServiceCreatePersonalFileBody; + }, + TContext + >; + }, + queryClient?: QueryClient, +): CreateMutationResult< + Awaited>, + TError, + { org: string; project: string; data: AdminServiceCreatePersonalFileBody }, + TContext +> => { + const mutationOptions = + getAdminServiceCreatePersonalFileMutationOptions(options); + + return createMutation(mutationOptions, queryClient); +}; +/** + * @summary GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + */ +export const adminServiceGetPersonalFile = ( + org: string, + project: string, + name: string, + signal?: AbortSignal, +) => { + return httpClient({ + url: `/v1/orgs/${org}/projects/${project}/personal-files/${name}`, + method: "GET", + signal, + }); +}; + +export const getAdminServiceGetPersonalFileQueryKey = ( + org?: string, + project?: string, + name?: string, +) => { + return [ + `/v1/orgs/${org}/projects/${project}/personal-files/${name}`, + ] as const; +}; + +export const getAdminServiceGetPersonalFileQueryOptions = < + TData = Awaited>, + TError = RpcStatus, +>( + org: string, + project: string, + name: string, + options?: { + query?: Partial< + CreateQueryOptions< + Awaited>, + TError, + TData + > + >; + }, +) => { + const { query: queryOptions } = options ?? {}; + + const queryKey = + queryOptions?.queryKey ?? + getAdminServiceGetPersonalFileQueryKey(org, project, name); + + const queryFn: QueryFunction< + Awaited> + > = ({ signal }) => adminServiceGetPersonalFile(org, project, name, signal); + + return { + queryKey, + queryFn, + enabled: !!(org && project && name), + ...queryOptions, + } as CreateQueryOptions< + Awaited>, + TError, + TData + > & { queryKey: DataTag }; +}; + +export type AdminServiceGetPersonalFileQueryResult = NonNullable< + Awaited> +>; +export type AdminServiceGetPersonalFileQueryError = RpcStatus; + +/** + * @summary GetPersonalFile returns the YAML body and metadata for a personal virtual file the caller owns. + */ + +export function createAdminServiceGetPersonalFile< + TData = Awaited>, + TError = RpcStatus, +>( + org: string, + project: string, + name: string, + options?: { + query?: Partial< + CreateQueryOptions< + Awaited>, + TError, + TData + > + >; + }, + queryClient?: QueryClient, +): CreateQueryResult & { + queryKey: DataTag; +} { + const queryOptions = getAdminServiceGetPersonalFileQueryOptions( + org, + project, + name, + options, + ); + + const query = createQuery(queryOptions, queryClient) as CreateQueryResult< + TData, + TError + > & { queryKey: DataTag }; + + query.queryKey = queryOptions.queryKey; + + return query; +} + +/** + * @summary DeletePersonalFile deletes a personal virtual file the caller owns. + */ +export const adminServiceDeletePersonalFile = ( + org: string, + project: string, + name: string, +) => { + return httpClient({ + url: `/v1/orgs/${org}/projects/${project}/personal-files/${name}`, + method: "DELETE", + }); +}; + +export const getAdminServiceDeletePersonalFileMutationOptions = < + TError = RpcStatus, + TContext = unknown, +>(options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { org: string; project: string; name: string }, + TContext + >; +}): CreateMutationOptions< + Awaited>, + TError, + { org: string; project: string; name: string }, + TContext +> => { + const mutationKey = ["adminServiceDeletePersonalFile"]; + const { mutation: mutationOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey } }; + + const mutationFn: MutationFunction< + Awaited>, + { org: string; project: string; name: string } + > = (props) => { + const { org, project, name } = props ?? {}; + + return adminServiceDeletePersonalFile(org, project, name); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type AdminServiceDeletePersonalFileMutationResult = NonNullable< + Awaited> +>; + +export type AdminServiceDeletePersonalFileMutationError = RpcStatus; + +/** + * @summary DeletePersonalFile deletes a personal virtual file the caller owns. + */ +export const createAdminServiceDeletePersonalFile = < + TError = RpcStatus, + TContext = unknown, +>( + options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { org: string; project: string; name: string }, + TContext + >; + }, + queryClient?: QueryClient, +): CreateMutationResult< + Awaited>, + TError, + { org: string; project: string; name: string }, + TContext +> => { + const mutationOptions = + getAdminServiceDeletePersonalFileMutationOptions(options); + + return createMutation(mutationOptions, queryClient); +}; +/** + * @summary EditPersonalFile updates the YAML body of a personal virtual file the caller owns. + */ +export const adminServiceEditPersonalFile = ( + org: string, + project: string, + name: string, + adminServiceEditPersonalFileBody: AdminServiceEditPersonalFileBody, + signal?: AbortSignal, +) => { + return httpClient({ + url: `/v1/orgs/${org}/projects/${project}/personal-files/${name}`, + method: "POST", + headers: { "Content-Type": "application/json" }, + data: adminServiceEditPersonalFileBody, + signal, + }); +}; + +export const getAdminServiceEditPersonalFileMutationOptions = < + TError = RpcStatus, + TContext = unknown, +>(options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { + org: string; + project: string; + name: string; + data: AdminServiceEditPersonalFileBody; + }, + TContext + >; +}): CreateMutationOptions< + Awaited>, + TError, + { + org: string; + project: string; + name: string; + data: AdminServiceEditPersonalFileBody; + }, + TContext +> => { + const mutationKey = ["adminServiceEditPersonalFile"]; + const { mutation: mutationOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey } }; + + const mutationFn: MutationFunction< + Awaited>, + { + org: string; + project: string; + name: string; + data: AdminServiceEditPersonalFileBody; + } + > = (props) => { + const { org, project, name, data } = props ?? {}; + + return adminServiceEditPersonalFile(org, project, name, data); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type AdminServiceEditPersonalFileMutationResult = NonNullable< + Awaited> +>; +export type AdminServiceEditPersonalFileMutationBody = + AdminServiceEditPersonalFileBody; +export type AdminServiceEditPersonalFileMutationError = RpcStatus; + +/** + * @summary EditPersonalFile updates the YAML body of a personal virtual file the caller owns. + */ +export const createAdminServiceEditPersonalFile = < + TError = RpcStatus, + TContext = unknown, +>( + options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { + org: string; + project: string; + name: string; + data: AdminServiceEditPersonalFileBody; + }, + TContext + >; + }, + queryClient?: QueryClient, +): CreateMutationResult< + Awaited>, + TError, + { + org: string; + project: string; + name: string; + data: AdminServiceEditPersonalFileBody; + }, + TContext +> => { + const mutationOptions = + getAdminServiceEditPersonalFileMutationOptions(options); + + return createMutation(mutationOptions, queryClient); +}; /** * @summary RedeployProject creates a new production deployment for a project. If the project currently has another production deployment, the old deployment will be deprovisioned. diff --git a/web-admin/src/client/gen/index.schemas.ts b/web-admin/src/client/gen/index.schemas.ts index 51ccbac91c80..67453da43630 100644 --- a/web-admin/src/client/gen/index.schemas.ts +++ b/web-admin/src/client/gen/index.schemas.ts @@ -381,6 +381,10 @@ export interface V1CreateOrganizationResponse { organization?: V1Organization; } +export interface V1CreatePersonalFileResponse { + name?: string; +} + export interface V1CreateProjectResponse { project?: V1Project; } @@ -417,6 +421,10 @@ export interface V1DeleteOrganizationResponse { [key: string]: unknown; } +export interface V1DeletePersonalFileResponse { + [key: string]: unknown; +} + export interface V1DeleteProjectResponse { id?: string; } @@ -481,6 +489,10 @@ export interface V1EditAlertResponse { [key: string]: unknown; } +export interface V1EditPersonalFileResponse { + [key: string]: unknown; +} + export interface V1EditReportResponse { [key: string]: unknown; } @@ -679,6 +691,11 @@ export interface V1GetPaymentsPortalURLResponse { url?: string; } +export interface V1GetPersonalFileResponse { + path?: string; + yaml?: string; +} + export interface V1GetProjectAccessRequestResponse { email?: string; } @@ -849,6 +866,10 @@ export interface V1ListOrganizationsResponse { nextPageToken?: string; } +export interface V1ListPersonalFilesResponse { + files?: string[]; +} + export interface V1ListProjectInvitesResponse { invites?: V1ProjectInvite[]; nextPageToken?: string; @@ -2111,6 +2132,18 @@ export type AdminServiceAddProjectMemberUserBody = { resources?: V1ResourceName[]; }; +export type AdminServiceCreatePersonalFileBody = { + displayName?: string; + kind?: string; + /** Optional: initial YAML body. If empty, the server generates a blank template for the given type. */ + yaml?: string; +}; + +export type AdminServiceEditPersonalFileBody = { + kind?: string; + yaml?: string; +}; + export type AdminServiceRedeployProjectParams = { superuserForceAccess?: boolean; }; diff --git a/web-admin/src/features/dashboards/listing/selectors.ts b/web-admin/src/features/dashboards/listing/selectors.ts index bc19c064ae93..da19e0ad1de1 100644 --- a/web-admin/src/features/dashboards/listing/selectors.ts +++ b/web-admin/src/features/dashboards/listing/selectors.ts @@ -30,7 +30,9 @@ export function useDashboardsLastUpdated( const max = Math.max( ...dashboardsResp.data.map((res) => - new Date(res.meta!.stateUpdatedOn!).getTime(), + res.meta?.stateUpdatedOn + ? new Date(res.meta.stateUpdatedOn).getTime() + : 0, ), ); return new Date(max); @@ -54,9 +56,12 @@ export function useDashboards( {}, { query: { - select: (data) => { - return data.resources.filter((res) => res.canvas || res.explore); - }, + select: (data) => + data.resources?.filter((res) => { + if (res.canvas) + return !res.canvas?.state?.validSpec?.annotations?.admin_managed; + return !!res.explore; + }) ?? [], enabled: !!client.instanceId, refetchInterval: dashboardRefetchInterval, }, diff --git a/web-admin/src/features/personal-files/canvas/CanvasPersonalFile.svelte b/web-admin/src/features/personal-files/canvas/CanvasPersonalFile.svelte new file mode 100644 index 000000000000..a6000dfa2707 --- /dev/null +++ b/web-admin/src/features/personal-files/canvas/CanvasPersonalFile.svelte @@ -0,0 +1,85 @@ + + +{#if $mode === "edit"} + +{:else} +
+
+
+

{displayName}

+ + Personal — only you can see this + +
+ +
+ {#key `${runtimeClient.instanceId}::${name}`} +
+ + + +
+ {/key} +
+{/if} diff --git a/web-admin/src/features/personal-files/canvas/CreatePersonalCanvasDialog.svelte b/web-admin/src/features/personal-files/canvas/CreatePersonalCanvasDialog.svelte new file mode 100644 index 000000000000..d7c56bd8d289 --- /dev/null +++ b/web-admin/src/features/personal-files/canvas/CreatePersonalCanvasDialog.svelte @@ -0,0 +1,196 @@ + + + + + + Create personal canvas + + Personal canvases are only visible to you. They live alongside the + project but never sync to git. + + + +
{ + e.preventDefault(); + submit(e); + }} + use:enhance + class="flex flex-col gap-y-3 pt-4" + > + + + + {#if personalCanvasOptions.length > 0} + + + Blank canvas + + + Copy from an existing canvas + + + {/if} + + {#if $form.mode === "copy"} +