Merge pull request #27470 from runcom/expose-exec-pid

record pid of exec'd process
This commit is contained in:
Vincent Demeester 2016-10-20 21:36:21 +02:00 committed by GitHub
commit 13fd75c3dd
15 changed files with 210 additions and 189 deletions

View File

@ -53,6 +53,7 @@ type ExecInspect struct {
CanRemove bool
ContainerID string
DetachKeys []byte
Pid int
}
// ExecProcessConfig holds information about the exec process

View File

@ -41,6 +41,7 @@ type ContainerExecInspect struct {
ContainerID string
Running bool
ExitCode int
Pid int
}
// ContainerListOptions holds parameters to list containers with.

View File

@ -212,9 +212,13 @@ func (d *Daemon) ContainerExecStart(ctx context.Context, name string, stdin io.R
attachErr := container.AttachStreams(ctx, ec.StreamConfig, ec.OpenStdin, true, ec.Tty, cStdin, cStdout, cStderr, ec.DetachKeys)
if err := d.containerd.AddProcess(ctx, c.ID, name, p); err != nil {
systemPid, err := d.containerd.AddProcess(ctx, c.ID, name, p)
if err != nil {
return err
}
ec.Lock()
ec.Pid = systemPid
ec.Unlock()
select {
case <-ctx.Done():

View File

@ -28,6 +28,7 @@ type Config struct {
Privileged bool
User string
Env []string
Pid int
}
// NewConfig initializes the a new exec configuration

View File

@ -209,6 +209,7 @@ func (daemon *Daemon) ContainerExecInspect(id string) (*backend.ExecInspect, err
CanRemove: e.CanRemove,
ContainerID: e.ContainerID,
DetachKeys: e.DetachKeys,
Pid: e.Pid,
}, nil
}

View File

@ -133,6 +133,7 @@ This section lists each version from latest to oldest. Each listing includes a
* `GET /networks/(name)` now returns field `Created` in response to show network created time.
* `POST /containers/(id or name)/exec` now accepts an `Env` field, which holds a list of environment variables to be set in the context of the command execution.
* `GET /volumes`, `GET /volumes/(name)`, and `POST /volumes/create` now return the `Options` field which holds the driver specific options to use for when creating the volume.
* `GET /exec/(id)/json` now returns `Pid`, which is the system pid for the exec'd process.
### v1.24 API changes

View File

@ -3295,7 +3295,8 @@ Return low-level information about the `exec` command `id`.
"tty": true,
"user": "1000"
},
"Running": false
"Running": false,
"Pid": "42000"
}
**Status codes**:

View File

@ -4,7 +4,7 @@ set -x
TOMLV_COMMIT=9baf8a8a9f2ed20a8e54160840c492f937eeaf9a
RUNC_COMMIT=02f8fa7863dd3f82909a73e2061897828460d52f
CONTAINERD_COMMIT=837e8c5e1cad013ed57f5c2090c8591c10cbbdae
CONTAINERD_COMMIT=52ef1ceb4b660c42cf4ea9013180a5663968d4c7
GRIMES_COMMIT=74341e923bdf06cfb6b70cf54089c4d3ac87ec2d
export GOPATH="$(mktemp -d)"

View File

@ -143,7 +143,7 @@ clone git google.golang.org/cloud dae7e3d993bc3812a2185af60552bb6b847e52a0 https
clone git github.com/docker/docker-credential-helpers v0.3.0
# containerd
clone git github.com/docker/containerd 837e8c5e1cad013ed57f5c2090c8591c10cbbdae
clone git github.com/docker/containerd 52ef1ceb4b660c42cf4ea9013180a5663968d4c7
# cluster
clone git github.com/docker/swarmkit 7e63bdefb94e5bea2641e8bdebae2cfa61a0ed44

View File

@ -69,6 +69,10 @@ func (s *DockerSuite) TestExecAPIStart(c *check.C) {
id := createExec(c, "test")
startExec(c, id, http.StatusOK)
var execJSON struct{ PID int }
inspectExec(c, id, &execJSON)
c.Assert(execJSON.PID, checker.GreaterThan, 1)
id = createExec(c, "test")
dockerCmd(c, "stop", "test")

View File

@ -30,17 +30,20 @@ type client struct {
liveRestore bool
}
func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendlyName string, specp Process) error {
// AddProcess is the handler for adding a process to an already running
// container. It's called through docker exec. It returns the system pid of the
// exec'd process.
func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendlyName string, specp Process) (int, error) {
clnt.lock(containerID)
defer clnt.unlock(containerID)
container, err := clnt.getContainer(containerID)
if err != nil {
return err
return -1, err
}
spec, err := container.spec()
if err != nil {
return err
return -1, err
}
sp := spec.Process
sp.Args = specp.Args
@ -88,12 +91,13 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
iopipe, err := p.openFifos(sp.Terminal)
if err != nil {
return err
return -1, err
}
if _, err := clnt.remote.apiClient.AddProcess(ctx, r); err != nil {
resp, err := clnt.remote.apiClient.AddProcess(ctx, r)
if err != nil {
p.closeFifos(iopipe)
return err
return -1, err
}
container.processes[processFriendlyName] = p
@ -102,11 +106,11 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
if err := clnt.backend.AttachStreams(processFriendlyName, *iopipe); err != nil {
clnt.lock(containerID)
return err
return -1, err
}
clnt.lock(containerID)
return nil
return int(resp.SystemPid), nil
}
func (clnt *client) prepareBundleDir(uid, gid int) (string, error) {

View File

@ -263,13 +263,14 @@ func (clnt *client) Create(containerID string, checkpoint string, checkpointDir
}
// AddProcess is the handler for adding a process to an already running
// container. It's called through docker exec.
func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendlyName string, procToAdd Process) error {
// container. It's called through docker exec. It returns the system pid of the
// exec'd process.
func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendlyName string, procToAdd Process) (int, error) {
clnt.lock(containerID)
defer clnt.unlock(containerID)
container, err := clnt.getContainer(containerID)
if err != nil {
return err
return -1, err
}
// Note we always tell HCS to
// create stdout as it's required regardless of '-i' or '-t' options, so that
@ -305,7 +306,7 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
newProcess, err := container.hcsContainer.CreateProcess(&createProcessParms)
if err != nil {
logrus.Errorf("libcontainerd: AddProcess(%s) CreateProcess() failed %s", containerID, err)
return err
return -1, err
}
pid := newProcess.Pid()
@ -313,7 +314,7 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
stdin, stdout, stderr, err = newProcess.Stdio()
if err != nil {
logrus.Errorf("libcontainerd: %s getting std pipes failed %s", containerID, err)
return err
return -1, err
}
iopipe := &IOPipe{Terminal: procToAdd.Terminal}
@ -347,7 +348,7 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
// Tell the engine to attach streams back to the client
if err := clnt.backend.AttachStreams(processFriendlyName, *iopipe); err != nil {
clnt.lock(containerID)
return err
return -1, err
}
// Lock again so that the defer unlock doesn't fail. (I really don't like this code)
@ -356,7 +357,7 @@ func (clnt *client) AddProcess(ctx context.Context, containerID, processFriendly
// Spin up a go routine waiting for exit to handle cleanup
go container.waitExit(proc, false)
return nil
return pid, nil
}
// Signal handles `docker stop` on Windows. While Linux has support for

View File

@ -39,7 +39,7 @@ type Client interface {
Create(containerID string, checkpoint string, checkpointDir string, spec specs.Spec, options ...CreateOption) error
Signal(containerID string, sig int) error
SignalProcess(containerID string, processFriendlyName string, sig int) error
AddProcess(ctx context.Context, containerID, processFriendlyName string, process Process) error
AddProcess(ctx context.Context, containerID, processFriendlyName string, process Process) (int, error)
Resize(containerID, processFriendlyName string, width, height int) error
Pause(containerID string) error
Resume(containerID string) error

View File

@ -225,7 +225,7 @@ func (*Rlimit) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
type User struct {
Uid uint32 `protobuf:"varint,1,opt,name=uid" json:"uid,omitempty"`
Gid uint32 `protobuf:"varint,2,opt,name=gid" json:"gid,omitempty"`
AdditionalGids []uint32 `protobuf:"varint,3,rep,packed,name=additionalGids" json:"additionalGids,omitempty"`
AdditionalGids []uint32 `protobuf:"varint,3,rep,name=additionalGids" json:"additionalGids,omitempty"`
}
func (m *User) Reset() { *m = User{} }
@ -234,6 +234,7 @@ func (*User) ProtoMessage() {}
func (*User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
type AddProcessResponse struct {
SystemPid uint32 `protobuf:"varint,1,opt,name=systemPid" json:"systemPid,omitempty"`
}
func (m *AddProcessResponse) Reset() { *m = AddProcessResponse{} }
@ -387,7 +388,7 @@ type Container struct {
Processes []*Process `protobuf:"bytes,3,rep,name=processes" json:"processes,omitempty"`
Status string `protobuf:"bytes,4,opt,name=status" json:"status,omitempty"`
Labels []string `protobuf:"bytes,5,rep,name=labels" json:"labels,omitempty"`
Pids []uint32 `protobuf:"varint,6,rep,packed,name=pids" json:"pids,omitempty"`
Pids []uint32 `protobuf:"varint,6,rep,name=pids" json:"pids,omitempty"`
Runtime string `protobuf:"bytes,7,opt,name=runtime" json:"runtime,omitempty"`
}
@ -630,7 +631,7 @@ func (*NetworkStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []in
type CpuUsage struct {
TotalUsage uint64 `protobuf:"varint,1,opt,name=total_usage,json=totalUsage" json:"total_usage,omitempty"`
PercpuUsage []uint64 `protobuf:"varint,2,rep,packed,name=percpu_usage,json=percpuUsage" json:"percpu_usage,omitempty"`
PercpuUsage []uint64 `protobuf:"varint,2,rep,name=percpu_usage,json=percpuUsage" json:"percpu_usage,omitempty"`
UsageInKernelmode uint64 `protobuf:"varint,3,opt,name=usage_in_kernelmode,json=usageInKernelmode" json:"usage_in_kernelmode,omitempty"`
UsageInUsermode uint64 `protobuf:"varint,4,opt,name=usage_in_usermode,json=usageInUsermode" json:"usage_in_usermode,omitempty"`
}
@ -1440,168 +1441,168 @@ var _API_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("api.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 2604 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x59, 0x4b, 0x6f, 0x1c, 0x5b,
0xf1, 0xcf, 0x3c, 0x3c, 0xf6, 0xd4, 0x3c, 0xec, 0xe9, 0x38, 0xce, 0x64, 0xf2, 0xfc, 0xb7, 0xee,
0x1f, 0x02, 0x5c, 0x39, 0xc1, 0xb9, 0x17, 0x22, 0x90, 0x90, 0x12, 0x3b, 0x5c, 0xcc, 0xcd, 0xc3,
0x69, 0x3b, 0x44, 0x48, 0x48, 0xa3, 0xf6, 0xcc, 0xc9, 0x4c, 0xe3, 0x9e, 0xee, 0xbe, 0xdd, 0x67,
0xfc, 0xd8, 0xb0, 0x60, 0x01, 0x3b, 0xd8, 0x22, 0xb1, 0x64, 0xc7, 0x9e, 0x05, 0x7c, 0x01, 0x24,
0x3e, 0x08, 0x3b, 0xf6, 0x2c, 0xa9, 0x53, 0xe7, 0xd1, 0xa7, 0xe7, 0xe1, 0x24, 0x48, 0x88, 0x0d,
0x9b, 0x51, 0x57, 0x9d, 0x3a, 0x55, 0x75, 0xea, 0x54, 0xfd, 0x4e, 0x9d, 0x33, 0x50, 0xf7, 0x93,
0x60, 0x3b, 0x49, 0x63, 0x1e, 0x3b, 0x2b, 0xfc, 0x22, 0x61, 0x59, 0xef, 0xee, 0x28, 0x8e, 0x47,
0x21, 0x7b, 0x40, 0xcc, 0xe3, 0xe9, 0xbb, 0x07, 0x3c, 0x98, 0xb0, 0x8c, 0xfb, 0x93, 0x44, 0xca,
0xb9, 0x37, 0xe0, 0xfa, 0x17, 0x8c, 0x1f, 0xb2, 0xf4, 0x94, 0xa5, 0x3f, 0x61, 0x69, 0x16, 0xc4,
0x91, 0xc7, 0xbe, 0x9a, 0xa2, 0x8c, 0x7b, 0x0e, 0xdd, 0xf9, 0xa1, 0x2c, 0x89, 0xa3, 0x8c, 0x39,
0x9b, 0xb0, 0x32, 0xf1, 0x7f, 0x1e, 0xa7, 0xdd, 0xd2, 0xbd, 0xd2, 0xfd, 0x96, 0x27, 0x09, 0xe2,
0x06, 0x11, 0x72, 0xcb, 0x8a, 0x2b, 0x08, 0xc1, 0x4d, 0x7c, 0x3e, 0x18, 0x77, 0x2b, 0x92, 0x4b,
0x84, 0xd3, 0x83, 0xb5, 0x94, 0x9d, 0x06, 0x42, 0x6b, 0xb7, 0x8a, 0x03, 0x75, 0xcf, 0xd0, 0xee,
0xaf, 0x4a, 0xb0, 0xf9, 0x26, 0x19, 0xfa, 0x9c, 0x1d, 0xa4, 0xf1, 0x80, 0x65, 0x99, 0x72, 0xc9,
0x69, 0x43, 0x39, 0x18, 0x92, 0xcd, 0xba, 0x87, 0x5f, 0xce, 0x06, 0x54, 0x12, 0x64, 0x94, 0x89,
0x21, 0x3e, 0x9d, 0x3b, 0x00, 0x83, 0x30, 0xce, 0xd8, 0x21, 0x1f, 0x06, 0x11, 0x59, 0x5c, 0xf3,
0x2c, 0x8e, 0x70, 0xe6, 0x2c, 0x18, 0xf2, 0x31, 0xd9, 0x44, 0x67, 0x88, 0x70, 0xb6, 0xa0, 0x36,
0x66, 0xc1, 0x68, 0xcc, 0xbb, 0x2b, 0xc4, 0x56, 0x94, 0x7b, 0x1d, 0xae, 0xcd, 0xf8, 0x21, 0xd7,
0xef, 0xfe, 0xad, 0x0c, 0x5b, 0xbb, 0x29, 0xc3, 0x91, 0xdd, 0x38, 0xe2, 0x7e, 0x10, 0xb1, 0x74,
0x99, 0x8f, 0xe8, 0xd1, 0xf1, 0x34, 0x1a, 0x86, 0xec, 0xc0, 0x47, 0xb3, 0xd2, 0x55, 0x8b, 0x43,
0x1e, 0x8f, 0xd9, 0xe0, 0x24, 0x89, 0x83, 0x88, 0x93, 0xc7, 0x38, 0x9e, 0x73, 0x84, 0xc7, 0x19,
0x2d, 0x46, 0x46, 0x49, 0x12, 0xc2, 0x63, 0xfc, 0x88, 0xa7, 0xd2, 0xe3, 0xba, 0xa7, 0x28, 0xc5,
0x67, 0x69, 0xda, 0xad, 0x19, 0x3e, 0x52, 0x82, 0x1f, 0xfa, 0xc7, 0x2c, 0xcc, 0xba, 0xab, 0xf7,
0x2a, 0x82, 0x2f, 0x29, 0xe7, 0x1e, 0x34, 0xa2, 0xf8, 0x20, 0x38, 0x8d, 0xb9, 0x17, 0xc7, 0xbc,
0xbb, 0x46, 0x01, 0xb3, 0x59, 0x4e, 0x17, 0x56, 0xd3, 0x69, 0x24, 0xf2, 0xa6, 0x5b, 0x27, 0x95,
0x9a, 0x14, 0x73, 0xd5, 0xe7, 0x93, 0x74, 0x94, 0x75, 0x81, 0x14, 0xdb, 0x2c, 0xe7, 0x13, 0x68,
0xe5, 0x2b, 0xd9, 0x0b, 0xd2, 0x6e, 0x83, 0x34, 0x14, 0x99, 0xee, 0x3e, 0x5c, 0x9f, 0x8b, 0xa5,
0xca, 0xb3, 0x6d, 0xa8, 0x0f, 0x34, 0x93, 0x62, 0xda, 0xd8, 0xd9, 0xd8, 0xa6, 0xd4, 0xde, 0xce,
0x85, 0x73, 0x11, 0x54, 0xd5, 0x3a, 0x0c, 0x46, 0x91, 0x1f, 0x7e, 0x78, 0xc6, 0x88, 0x88, 0xd1,
0x14, 0x95, 0x9f, 0x8a, 0x72, 0x37, 0xa0, 0xad, 0x55, 0xa9, 0x4d, 0xff, 0x53, 0x05, 0x3a, 0x4f,
0x86, 0xc3, 0xf7, 0xe4, 0x24, 0x26, 0x36, 0x67, 0x29, 0xa6, 0x3e, 0x6a, 0x2c, 0x53, 0x38, 0x0d,
0xed, 0xdc, 0x85, 0xea, 0x34, 0xc3, 0x95, 0x54, 0x68, 0x25, 0x0d, 0xb5, 0x92, 0x37, 0xc8, 0xf2,
0x68, 0xc0, 0x71, 0xa0, 0xea, 0x8b, 0x58, 0x56, 0x29, 0x96, 0xf4, 0x2d, 0x5c, 0x66, 0xd1, 0x29,
0xee, 0xb3, 0x60, 0x89, 0x4f, 0xc1, 0x19, 0x9c, 0x0d, 0xd5, 0x0e, 0x8b, 0x4f, 0xbd, 0xac, 0xd5,
0x7c, 0x59, 0x26, 0x6d, 0xd6, 0x16, 0xa7, 0x4d, 0x7d, 0x49, 0xda, 0x40, 0x21, 0x6d, 0x5c, 0x68,
0x0e, 0xfc, 0xc4, 0x3f, 0x0e, 0xc2, 0x80, 0x07, 0x2c, 0xc3, 0xfd, 0x13, 0x4e, 0x14, 0x78, 0xce,
0x7d, 0x58, 0xf7, 0x93, 0xc4, 0x4f, 0x27, 0x71, 0x8a, 0xa1, 0x79, 0x17, 0x84, 0xac, 0xdb, 0x24,
0x25, 0xb3, 0x6c, 0xa1, 0x2d, 0x63, 0x61, 0x10, 0x4d, 0xcf, 0x9f, 0x8b, 0xec, 0xeb, 0xb6, 0x48,
0xac, 0xc0, 0x13, 0xda, 0xa2, 0xf8, 0x25, 0x3b, 0x3b, 0x48, 0x83, 0x53, 0x9c, 0x33, 0x42, 0xa3,
0x6d, 0x8a, 0xe2, 0x2c, 0xdb, 0xf9, 0x3a, 0x26, 0x66, 0x18, 0x4c, 0x02, 0x9e, 0x75, 0xd7, 0xd1,
0xad, 0xc6, 0x4e, 0x4b, 0xc5, 0xd3, 0x23, 0xae, 0xa7, 0x47, 0xdd, 0x3d, 0xa8, 0x49, 0x96, 0x08,
0xaf, 0x10, 0x51, 0xbb, 0x45, 0xdf, 0x82, 0x97, 0xc5, 0xef, 0x38, 0xed, 0x55, 0xd5, 0xa3, 0x6f,
0xc1, 0x1b, 0xfb, 0xe9, 0x90, 0xf6, 0x09, 0x79, 0xe2, 0xdb, 0xf5, 0xa0, 0x2a, 0x36, 0x4a, 0x84,
0x7a, 0xaa, 0x36, 0xbc, 0xe5, 0x89, 0x4f, 0xc1, 0x19, 0xa9, 0x9c, 0x42, 0x0e, 0x7e, 0x3a, 0x5f,
0x83, 0xb6, 0x3f, 0x1c, 0x62, 0x78, 0x62, 0xdc, 0xf5, 0x2f, 0x82, 0x61, 0x86, 0x9a, 0x2a, 0x38,
0x38, 0xc3, 0x75, 0x37, 0xc1, 0xb1, 0x13, 0x4a, 0xe5, 0xd9, 0x2f, 0x4b, 0xa6, 0x20, 0x4c, 0x9d,
0x2c, 0xcb, 0xb6, 0x6f, 0x17, 0xd0, 0xa3, 0x4c, 0x79, 0xd5, 0xd1, 0x15, 0x92, 0xcf, 0xb6, 0x01,
0x65, 0xae, 0x28, 0x2b, 0x8b, 0x8a, 0xb2, 0x07, 0xdd, 0x79, 0x1f, 0x94, 0x83, 0x03, 0xb8, 0xbe,
0xc7, 0x42, 0xf6, 0x21, 0xfe, 0x61, 0x24, 0x23, 0x1f, 0xa1, 0x43, 0x16, 0x1c, 0x7d, 0x7f, 0xb8,
0x03, 0xf3, 0x46, 0x94, 0x03, 0x2f, 0xe0, 0xda, 0xf3, 0x20, 0xe3, 0xef, 0x37, 0x3f, 0x67, 0xaa,
0xbc, 0xc8, 0xd4, 0xef, 0x4a, 0x00, 0xb9, 0x2e, 0xe3, 0x73, 0xc9, 0xf2, 0x19, 0x79, 0xec, 0x3c,
0xe0, 0xaa, 0xa2, 0xe9, 0x5b, 0xec, 0x3b, 0x1f, 0x24, 0xea, 0x90, 0x11, 0x9f, 0x02, 0x11, 0xa7,
0x51, 0x70, 0x7e, 0x18, 0x0f, 0x4e, 0x18, 0xcf, 0x08, 0xb1, 0x11, 0x4d, 0x2d, 0x16, 0x95, 0xe5,
0x98, 0x85, 0x21, 0xc1, 0xf6, 0x9a, 0x27, 0x09, 0x81, 0xb1, 0x6c, 0x92, 0xf0, 0x8b, 0x97, 0x87,
0x58, 0xd4, 0xa2, 0xc2, 0x34, 0x89, 0x2b, 0xdd, 0x9a, 0x5d, 0xa9, 0x82, 0xc6, 0x47, 0xd0, 0xc8,
0x57, 0x91, 0xa1, 0xb3, 0x95, 0xc5, 0x5b, 0x6f, 0x4b, 0xb9, 0x77, 0xa0, 0x79, 0xc8, 0x71, 0x53,
0x97, 0xc4, 0xcb, 0xbd, 0x0f, 0x6d, 0x83, 0xab, 0x24, 0x28, 0x91, 0xc1, 0xe7, 0xd3, 0x4c, 0x49,
0x29, 0xca, 0xfd, 0x73, 0x05, 0x56, 0x55, 0xe2, 0x6a, 0xf4, 0x29, 0xe5, 0xe8, 0xf3, 0x5f, 0x01,
0xc1, 0x5b, 0x50, 0xcf, 0x2e, 0x32, 0xce, 0x26, 0x07, 0x0a, 0x0a, 0x5b, 0x5e, 0xce, 0xf8, 0x1f,
0x20, 0xe6, 0x80, 0xf8, 0xd7, 0x12, 0xd4, 0xcd, 0x36, 0x7f, 0x74, 0xc3, 0xf2, 0x29, 0xd4, 0x13,
0xb9, 0xf1, 0x4c, 0xe2, 0x5a, 0x63, 0xa7, 0xad, 0x0c, 0x69, 0x24, 0xcb, 0x05, 0xac, 0xfc, 0xa9,
0xda, 0xf9, 0x63, 0x35, 0x24, 0x2b, 0x85, 0x86, 0x04, 0x37, 0x3f, 0x11, 0x80, 0x59, 0x23, 0xc0,
0xa4, 0x6f, 0xbb, 0x05, 0x59, 0x2d, 0xb4, 0x20, 0xee, 0xe7, 0xb0, 0xfa, 0xc2, 0x1f, 0x8c, 0x71,
0x1d, 0x62, 0xe2, 0x20, 0x51, 0x69, 0x8a, 0x13, 0xc5, 0xb7, 0x30, 0x32, 0x61, 0x18, 0xef, 0x0b,
0x85, 0xee, 0x8a, 0x72, 0x4f, 0xb0, 0x4d, 0x90, 0x65, 0xa0, 0x8a, 0xe9, 0x21, 0xc2, 0xa8, 0x0e,
0x88, 0xae, 0xa5, 0xf9, 0x46, 0xc3, 0x92, 0xc1, 0x6d, 0x59, 0x9d, 0x48, 0xcb, 0x0a, 0x75, 0x75,
0x0c, 0x94, 0x3f, 0x9e, 0x1e, 0x76, 0x7f, 0x5d, 0x82, 0x2d, 0xd9, 0x45, 0xbe, 0xb7, 0x57, 0x5c,
0xdc, 0x9d, 0xc8, 0xf0, 0x55, 0x0a, 0xe1, 0x7b, 0x04, 0xf5, 0x94, 0x65, 0xf1, 0x34, 0xc5, 0x30,
0x53, 0x64, 0x1b, 0x3b, 0xd7, 0x74, 0x25, 0x91, 0x2d, 0x4f, 0x8d, 0x7a, 0xb9, 0x9c, 0xfb, 0x8f,
0x1a, 0xb4, 0x8b, 0xa3, 0x02, 0xb1, 0x8e, 0xc3, 0x93, 0x20, 0x7e, 0x2b, 0xdb, 0xdf, 0x12, 0x85,
0xc9, 0x66, 0x89, 0xaa, 0xc2, 0x58, 0x1e, 0xe2, 0x19, 0x88, 0x96, 0x64, 0x18, 0x73, 0x86, 0x1a,
0x3d, 0x60, 0x69, 0x10, 0xeb, 0xe3, 0x32, 0x67, 0x08, 0x18, 0x40, 0xe2, 0xf5, 0x34, 0xe6, 0x3e,
0x39, 0x59, 0xf5, 0x0c, 0x4d, 0x7d, 0x2f, 0xee, 0x11, 0xe3, 0xbb, 0x62, 0xd7, 0x56, 0x54, 0xdf,
0x6b, 0x38, 0xf9, 0xf8, 0x0b, 0x36, 0xc9, 0x54, 0x99, 0x5b, 0x1c, 0xe1, 0xb9, 0xdc, 0xcd, 0xe7,
0x22, 0xa9, 0x29, 0x31, 0xd0, 0x73, 0x8b, 0x25, 0x34, 0x48, 0xf2, 0xf0, 0xcc, 0x4f, 0xa8, 0xec,
0xab, 0x9e, 0xc5, 0xc1, 0x44, 0xee, 0x48, 0x0a, 0xa3, 0x81, 0xb7, 0x1c, 0x5f, 0x1c, 0xcc, 0x04,
0x03, 0x55, 0x6f, 0x7e, 0x40, 0x48, 0x9f, 0xb0, 0x34, 0x62, 0xe1, 0x0b, 0xcb, 0x2a, 0x48, 0xe9,
0xb9, 0x01, 0x67, 0x07, 0x36, 0x25, 0xf3, 0x68, 0xf7, 0xc0, 0x9e, 0xd0, 0xa0, 0x09, 0x0b, 0xc7,
0x44, 0xa5, 0x53, 0xe0, 0x9f, 0x33, 0xff, 0x9d, 0xda, 0x8f, 0x26, 0x89, 0xcf, 0xb2, 0x9d, 0x27,
0xd0, 0xb1, 0xb6, 0x68, 0x0f, 0xef, 0x4d, 0x03, 0x86, 0xe0, 0x21, 0xb2, 0xf6, 0xaa, 0xca, 0x02,
0x7b, 0xc8, 0x9b, 0x97, 0x76, 0xde, 0x40, 0x8f, 0x98, 0x47, 0x63, 0xbc, 0x07, 0xf2, 0x10, 0x33,
0xc2, 0x1f, 0x3e, 0x4d, 0x32, 0xa5, 0xab, 0x4d, 0xba, 0x74, 0x46, 0x69, 0x19, 0xa5, 0xed, 0x92,
0x89, 0xce, 0x5b, 0xb8, 0x59, 0x18, 0x7d, 0x9b, 0x06, 0x9c, 0xe5, 0x7a, 0xd7, 0x2f, 0xd3, 0x7b,
0xd9, 0xcc, 0x39, 0xc5, 0xc2, 0xec, 0x7e, 0x6c, 0x14, 0x6f, 0x7c, 0xb8, 0xe2, 0xe2, 0x4c, 0xe7,
0xa7, 0x70, 0x6b, 0xde, 0xae, 0xa5, 0xb9, 0x73, 0x99, 0xe6, 0x4b, 0xa7, 0xba, 0xdf, 0x87, 0xd6,
0xd3, 0x10, 0x0f, 0xfe, 0xfd, 0x57, 0xca, 0x56, 0xe1, 0xda, 0x5c, 0x59, 0x78, 0x6d, 0xae, 0xa8,
0x6b, 0xb3, 0xfb, 0x0b, 0x68, 0x16, 0x36, 0xec, 0x3b, 0x54, 0xa9, 0x5a, 0x95, 0xba, 0x0c, 0x6d,
0x2a, 0xb7, 0x0a, 0x66, 0x3c, 0x5b, 0x50, 0x20, 0xc8, 0x99, 0x4c, 0x26, 0xd9, 0xa0, 0x2a, 0x4a,
0x54, 0x47, 0x98, 0x27, 0x9a, 0xbc, 0xfb, 0x58, 0x1c, 0xf7, 0x67, 0xd0, 0x2e, 0x2e, 0xf6, 0xdf,
0xf6, 0x00, 0x91, 0x39, 0x45, 0xcc, 0xd1, 0x1d, 0xb6, 0xf8, 0x16, 0xef, 0x0e, 0x73, 0x98, 0xa8,
0x9a, 0xbb, 0x0b, 0x68, 0x3d, 0x3b, 0x65, 0xd8, 0xad, 0x68, 0x94, 0x7c, 0x0c, 0x75, 0xf3, 0x6c,
0xa1, 0xc0, 0xb6, 0xb7, 0x2d, 0x1f, 0x36, 0xb6, 0xf5, 0xc3, 0xc6, 0xf6, 0x91, 0x96, 0xf0, 0x72,
0x61, 0xb1, 0xc6, 0x8c, 0xc7, 0x29, 0x1b, 0xbe, 0x8a, 0xc2, 0x0b, 0xfd, 0x1a, 0x90, 0x73, 0x14,
0xfe, 0x56, 0x4d, 0xfb, 0xf3, 0xdb, 0x12, 0xac, 0x90, 0xed, 0x85, 0x37, 0x05, 0x29, 0x5d, 0x36,
0x68, 0x5d, 0xc4, 0xe6, 0x96, 0xc1, 0x66, 0x85, 0xe2, 0xd5, 0x1c, 0xc5, 0x0b, 0x2b, 0xa8, 0x7d,
0xc4, 0x0a, 0xdc, 0xdf, 0x94, 0xa1, 0xf9, 0x92, 0xf1, 0xb3, 0x38, 0x3d, 0x11, 0x27, 0x56, 0xb6,
0xb0, 0x39, 0xbd, 0x01, 0x6b, 0xe9, 0x79, 0xff, 0xf8, 0x82, 0x1b, 0x84, 0x5e, 0x4d, 0xcf, 0x9f,
0x0a, 0xd2, 0xb9, 0x0d, 0x80, 0x43, 0x07, 0xbe, 0x6c, 0x48, 0x15, 0x40, 0xa7, 0xe7, 0x8a, 0xe1,
0xdc, 0x84, 0xba, 0x77, 0xde, 0xc7, 0xc6, 0x26, 0x4e, 0x33, 0x8d, 0xd0, 0xe9, 0xf9, 0x33, 0xa2,
0xc5, 0x5c, 0x1c, 0x1c, 0xa6, 0x71, 0x92, 0xb0, 0x21, 0x21, 0x34, 0xcd, 0xdd, 0x93, 0x0c, 0x61,
0xf5, 0x48, 0x5b, 0xad, 0x49, 0xab, 0x3c, 0xb7, 0x8a, 0x43, 0x89, 0xb2, 0x2a, 0xa1, 0xb9, 0xce,
0x6d, 0xab, 0x47, 0xc6, 0xaa, 0xc4, 0xe5, 0x35, 0x6e, 0x59, 0x3d, 0xca, 0xad, 0xd6, 0xf5, 0x5c,
0x65, 0xd5, 0xfd, 0x63, 0x09, 0xd6, 0xf0, 0x7c, 0x78, 0x93, 0xf9, 0x23, 0x86, 0xad, 0x64, 0x83,
0xe3, 0x59, 0x12, 0xf6, 0xa7, 0x82, 0x54, 0xa7, 0x17, 0x10, 0x4b, 0x0a, 0xfc, 0x1f, 0x34, 0x13,
0x96, 0xe2, 0xa9, 0xa1, 0x24, 0xca, 0x58, 0xcc, 0x78, 0x4a, 0x48, 0x9e, 0x14, 0xd9, 0x86, 0xab,
0x34, 0xd6, 0x0f, 0xa2, 0xbe, 0x84, 0xe5, 0x49, 0x3c, 0x64, 0x2a, 0x54, 0x1d, 0x1a, 0xda, 0x8f,
0xbe, 0x34, 0x03, 0xce, 0x37, 0xa1, 0x63, 0xe4, 0x45, 0xbb, 0x4a, 0xd2, 0x32, 0x74, 0xeb, 0x4a,
0xfa, 0x8d, 0x62, 0x63, 0x0d, 0xeb, 0x1a, 0x0a, 0xa2, 0xd1, 0x9e, 0x8f, 0xa7, 0x1e, 0xb6, 0x32,
0x09, 0x9d, 0x8d, 0x99, 0xf2, 0x56, 0x93, 0xce, 0xb7, 0xa0, 0xc3, 0x55, 0xbd, 0x0d, 0xfb, 0x5a,
0x46, 0xee, 0xe6, 0x86, 0x19, 0x38, 0x50, 0xc2, 0xff, 0x0f, 0xed, 0x5c, 0x98, 0x1a, 0x23, 0xe9,
0x6f, 0xcb, 0x70, 0x45, 0x36, 0xb9, 0xbf, 0x97, 0xc1, 0x92, 0x99, 0xf3, 0x29, 0x1d, 0xd5, 0x56,
0xa8, 0x1a, 0x3b, 0xeb, 0xba, 0xc5, 0x51, 0xc1, 0xa0, 0xe3, 0x59, 0x86, 0xe5, 0x07, 0xb0, 0xce,
0x8d, 0xeb, 0x7d, 0xac, 0x54, 0x5f, 0x95, 0xde, 0x0c, 0x12, 0xaa, 0x85, 0x79, 0x6d, 0x5e, 0x5c,
0x28, 0x46, 0x5e, 0xf6, 0xde, 0xca, 0xa0, 0xf4, 0xaf, 0x21, 0x79, 0x64, 0x02, 0xe1, 0xb1, 0x8e,
0x8d, 0x79, 0x26, 0xbd, 0xc3, 0xc0, 0x0c, 0xa6, 0x69, 0x8a, 0xb5, 0xa7, 0x03, 0xa3, 0x48, 0x01,
0x8f, 0xd4, 0xb7, 0xaa, 0x60, 0x48, 0xc2, 0x8d, 0x01, 0xe4, 0xd9, 0x49, 0xd6, 0x50, 0xc6, 0x4e,
0x01, 0x49, 0x88, 0x3c, 0x9b, 0xf8, 0xe7, 0x66, 0xeb, 0x29, 0xcf, 0x90, 0x21, 0x17, 0x88, 0x06,
0xdf, 0xf9, 0x41, 0x38, 0x50, 0x8f, 0x6e, 0x68, 0x50, 0x91, 0xb9, 0xc1, 0xaa, 0x6d, 0xf0, 0x0f,
0x65, 0x68, 0x48, 0x8b, 0xd2, 0x61, 0x94, 0x1a, 0x60, 0x87, 0x67, 0x4c, 0x12, 0x81, 0x3d, 0xf8,
0x4a, 0x6e, 0x2e, 0xbf, 0x8f, 0xe5, 0xae, 0x6a, 0xdf, 0xb0, 0xe3, 0xcc, 0xb0, 0x09, 0xb1, 0xa2,
0xb3, 0x50, 0xba, 0x2e, 0x84, 0xa4, 0xc3, 0x9f, 0x41, 0x53, 0xe6, 0xa7, 0x9a, 0x53, 0x5d, 0x36,
0xa7, 0x21, 0xc5, 0xe4, 0xac, 0x47, 0xe2, 0xda, 0x83, 0xfe, 0x52, 0x9b, 0xdd, 0xd8, 0xb9, 0x5d,
0x10, 0xa7, 0x95, 0x6c, 0xd3, 0xef, 0xb3, 0x88, 0x63, 0xbf, 0x23, 0x65, 0x7b, 0x8f, 0x01, 0x72,
0xa6, 0xc0, 0xb3, 0x13, 0x76, 0xa1, 0xaf, 0x77, 0xf8, 0x29, 0xd6, 0x7e, 0xea, 0x87, 0x53, 0x1d,
0x54, 0x49, 0x7c, 0xaf, 0xfc, 0xb8, 0xe4, 0x0e, 0x60, 0xfd, 0xa9, 0x38, 0x12, 0xad, 0xe9, 0x85,
0x43, 0xaf, 0xba, 0xf0, 0xd0, 0xab, 0xea, 0xb7, 0x62, 0x84, 0xd8, 0x38, 0x51, 0xad, 0x2e, 0x7e,
0xe5, 0x86, 0xaa, 0x96, 0x21, 0xf7, 0xef, 0x55, 0x80, 0xdc, 0x8a, 0x73, 0x08, 0xbd, 0x20, 0xee,
0x8b, 0x4e, 0x0d, 0x4f, 0x1b, 0x09, 0x48, 0xfd, 0x94, 0x61, 0xfa, 0x64, 0xc1, 0x29, 0x53, 0xcd,
0xfc, 0x96, 0x39, 0xa6, 0x0a, 0xce, 0x79, 0xd7, 0x91, 0x92, 0x13, 0x09, 0xb9, 0x3c, 0x3d, 0xcd,
0xf9, 0x31, 0x5c, 0xcb, 0x95, 0x0e, 0x2d, 0x7d, 0xe5, 0x4b, 0xf5, 0x5d, 0x35, 0xfa, 0x86, 0xb9,
0xae, 0x1f, 0x02, 0xb2, 0xfb, 0x78, 0x98, 0x4d, 0x0b, 0x9a, 0x2a, 0x97, 0x6a, 0xea, 0x04, 0xf1,
0x6b, 0x9a, 0x91, 0xeb, 0x79, 0x0d, 0x37, 0xac, 0x85, 0x8a, 0xb2, 0xb7, 0xb4, 0x55, 0x2f, 0xd5,
0xb6, 0x65, 0xfc, 0x12, 0xc0, 0x90, 0xab, 0xfc, 0x12, 0x70, 0xa4, 0x7f, 0xe6, 0x07, 0x7c, 0x56,
0xdf, 0xca, 0xfb, 0xd6, 0xf9, 0x16, 0x27, 0x15, 0x95, 0xc9, 0x75, 0x4e, 0x58, 0x3a, 0x2a, 0xac,
0xb3, 0xf6, 0xbe, 0x75, 0xbe, 0xa0, 0x19, 0xb9, 0x9e, 0xa7, 0x80, 0xcc, 0x59, 0x7f, 0x56, 0x2f,
0xd5, 0xb2, 0x8e, 0x5d, 0x58, 0xc1, 0x97, 0x5d, 0xe8, 0x64, 0x6c, 0x80, 0x47, 0xbd, 0x9d, 0x0b,
0x6b, 0x97, 0xea, 0xd8, 0x50, 0x13, 0x8c, 0x12, 0xf7, 0x2b, 0x68, 0xfe, 0x68, 0x3a, 0x62, 0x3c,
0x3c, 0x36, 0x35, 0xff, 0x9f, 0x86, 0x99, 0x7f, 0x22, 0xcc, 0xec, 0x8e, 0xd2, 0x78, 0x9a, 0x14,
0x50, 0x5b, 0xd6, 0xf0, 0x1c, 0x6a, 0x93, 0x0c, 0xa1, 0xb6, 0x94, 0xfe, 0x1c, 0x9a, 0xf2, 0xe6,
0xa2, 0x26, 0x48, 0x14, 0x72, 0xe6, 0x8b, 0x5e, 0xdf, 0x94, 0xe4, 0xb4, 0x1d, 0x75, 0x0b, 0x54,
0xb3, 0x8a, 0x68, 0x94, 0x87, 0xc9, 0x83, 0xe3, 0xbc, 0xea, 0xf6, 0xa1, 0x35, 0x96, 0xb1, 0x51,
0xb3, 0x64, 0x02, 0x7e, 0xa2, 0x9d, 0xcb, 0xd7, 0xb0, 0x6d, 0xc7, 0x50, 0x86, 0xba, 0x39, 0xb6,
0xc3, 0xfa, 0x00, 0x40, 0xdc, 0xf3, 0xfb, 0x1a, 0xa8, 0xec, 0x67, 0x7e, 0x73, 0x42, 0x78, 0xf5,
0x44, 0x7f, 0xf6, 0x8e, 0xa0, 0x33, 0xa7, 0x73, 0x01, 0x4c, 0x7d, 0xc3, 0x86, 0xa9, 0xfc, 0x6a,
0x64, 0x4f, 0xb5, 0xb1, 0xeb, 0x2f, 0x25, 0xf9, 0x2c, 0x60, 0x5e, 0x62, 0xb1, 0x6f, 0x6b, 0x45,
0xb2, 0xf9, 0x32, 0x1b, 0x60, 0xdf, 0xb1, 0xec, 0xc6, 0xcc, 0x6b, 0x46, 0x76, 0x9b, 0x86, 0x1b,
0x31, 0xa0, 0x08, 0x2c, 0xdc, 0x08, 0x2b, 0x38, 0x5e, 0x63, 0x60, 0xed, 0x76, 0xa1, 0x51, 0xac,
0x7e, 0x4c, 0xa3, 0xa8, 0x5e, 0xf6, 0x96, 0xfd, 0x2d, 0xb1, 0x83, 0x77, 0xff, 0xca, 0x93, 0x83,
0x7d, 0xbc, 0xf7, 0x6d, 0xcc, 0xfe, 0xab, 0xe7, 0xdc, 0x51, 0x6e, 0x2d, 0xf9, 0x27, 0xb0, 0x77,
0x77, 0xe9, 0xb8, 0x6a, 0xd9, 0xaf, 0x38, 0x1e, 0xac, 0xcf, 0xfc, 0x87, 0xe3, 0xe8, 0xa3, 0x66,
0xf1, 0xff, 0x64, 0xbd, 0x3b, 0xcb, 0x86, 0x6d, 0x9d, 0x33, 0x77, 0x04, 0xa3, 0x73, 0xf1, 0x7b,
0x8a, 0xd1, 0xb9, 0xec, 0x6a, 0x71, 0xc5, 0xf9, 0x2e, 0xd4, 0xe4, 0xbf, 0x3a, 0x8e, 0xbe, 0xb8,
0x14, 0xfe, 0x2f, 0xea, 0x5d, 0x9b, 0xe1, 0x9a, 0x89, 0xcf, 0xa1, 0x55, 0xf8, 0x2b, 0xd0, 0xb9,
0x59, 0xb0, 0x55, 0xfc, 0x53, 0xa8, 0x77, 0x6b, 0xf1, 0xa0, 0xd1, 0xb6, 0x0b, 0x90, 0x3f, 0xfc,
0x3b, 0x5d, 0x25, 0x3d, 0xf7, 0xe7, 0x52, 0xef, 0xc6, 0x82, 0x11, 0xa3, 0x04, 0xb7, 0x72, 0xf6,
0x89, 0xde, 0x99, 0x89, 0xea, 0xec, 0x03, 0xb9, 0xd9, 0xca, 0xa5, 0x6f, 0xfb, 0xa4, 0x76, 0xf6,
0xe1, 0xdd, 0xa8, 0x5d, 0xf2, 0xec, 0x6f, 0xd4, 0x2e, 0x7d, 0xb1, 0xbf, 0xe2, 0xbc, 0x82, 0x76,
0xf1, 0x25, 0xdb, 0xd1, 0x41, 0x5a, 0xf8, 0x94, 0xdf, 0xbb, 0xbd, 0x64, 0xd4, 0x28, 0xfc, 0x0c,
0x56, 0xe4, 0x13, 0xb5, 0x2e, 0x47, 0xfb, 0x65, 0xbb, 0xb7, 0x59, 0x64, 0x9a, 0x59, 0x0f, 0xa1,
0x26, 0x6f, 0x97, 0x26, 0x01, 0x0a, 0x97, 0xcd, 0x5e, 0xd3, 0xe6, 0xba, 0x57, 0x1e, 0x96, 0xb4,
0x9d, 0xac, 0x60, 0x27, 0x5b, 0x64, 0xc7, 0xda, 0x9c, 0xe3, 0x1a, 0x95, 0xeb, 0xa3, 0x7f, 0x05,
0x00, 0x00, 0xff, 0xff, 0xa7, 0x2d, 0xc6, 0x49, 0x94, 0x1f, 0x00, 0x00,
// 2606 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xec, 0x39, 0xcb, 0x6f, 0x1c, 0x4d,
0xf1, 0xd9, 0x87, 0xd7, 0xde, 0xda, 0x87, 0xbd, 0x93, 0xc4, 0xd9, 0x6c, 0x9e, 0xbf, 0xd1, 0xf7,
0x83, 0x00, 0x9f, 0x9c, 0xe0, 0x7c, 0x1f, 0x44, 0x20, 0x21, 0x25, 0x76, 0xf8, 0x30, 0x5f, 0x1e,
0xce, 0xd8, 0x21, 0x42, 0x42, 0x5a, 0x8d, 0x77, 0x3b, 0xbb, 0x83, 0x67, 0x67, 0xe6, 0x9b, 0xe9,
0xf5, 0xe3, 0xc2, 0x81, 0x03, 0xdc, 0xe0, 0x8a, 0xc4, 0x91, 0x1b, 0x77, 0x0e, 0xf0, 0x0f, 0x20,
0xf1, 0x87, 0x70, 0xe3, 0xce, 0x91, 0xea, 0xea, 0xc7, 0xf4, 0xec, 0xc3, 0x4e, 0x90, 0x10, 0x17,
0x2e, 0xa3, 0xae, 0xea, 0x7a, 0x75, 0x75, 0x55, 0x75, 0x75, 0x0f, 0xd4, 0xfd, 0x24, 0xd8, 0x4a,
0xd2, 0x98, 0xc7, 0xce, 0x0a, 0x3f, 0x4f, 0x58, 0xd6, 0xbb, 0x37, 0x8a, 0xe3, 0x51, 0xc8, 0x1e,
0x12, 0xf2, 0x68, 0xfa, 0xfe, 0x21, 0x0f, 0x26, 0x2c, 0xe3, 0xfe, 0x24, 0x91, 0x74, 0xee, 0x4d,
0xb8, 0xf1, 0x05, 0xe3, 0x07, 0x2c, 0x3d, 0x61, 0xe9, 0x4f, 0x58, 0x9a, 0x05, 0x71, 0xe4, 0xb1,
0xaf, 0xa6, 0x48, 0xe3, 0x9e, 0x41, 0x77, 0x7e, 0x2a, 0x4b, 0xe2, 0x28, 0x63, 0xce, 0x35, 0x58,
0x99, 0xf8, 0x3f, 0x8f, 0xd3, 0x6e, 0xe9, 0x7e, 0xe9, 0x41, 0xcb, 0x93, 0x00, 0x61, 0x83, 0x08,
0xb1, 0x65, 0x85, 0x15, 0x80, 0xc0, 0x26, 0x3e, 0x1f, 0x8c, 0xbb, 0x15, 0x89, 0x25, 0xc0, 0xe9,
0xc1, 0x5a, 0xca, 0x4e, 0x02, 0x21, 0xb5, 0x5b, 0xc5, 0x89, 0xba, 0x67, 0x60, 0xf7, 0x57, 0x25,
0xb8, 0xf6, 0x36, 0x19, 0xfa, 0x9c, 0xed, 0xa7, 0xf1, 0x80, 0x65, 0x99, 0x32, 0xc9, 0x69, 0x43,
0x39, 0x18, 0x92, 0xce, 0xba, 0x87, 0x23, 0x67, 0x03, 0x2a, 0x09, 0x22, 0xca, 0x84, 0x10, 0x43,
0xe7, 0x2e, 0xc0, 0x20, 0x8c, 0x33, 0x76, 0xc0, 0x87, 0x41, 0x44, 0x1a, 0xd7, 0x3c, 0x0b, 0x23,
0x8c, 0x39, 0x0d, 0x86, 0x7c, 0x4c, 0x3a, 0xd1, 0x18, 0x02, 0x9c, 0x4d, 0xa8, 0x8d, 0x59, 0x30,
0x1a, 0xf3, 0xee, 0x0a, 0xa1, 0x15, 0xe4, 0xde, 0x80, 0xeb, 0x33, 0x76, 0xc8, 0xf5, 0xbb, 0x7f,
0x2b, 0xc3, 0xe6, 0x4e, 0xca, 0x70, 0x66, 0x27, 0x8e, 0xb8, 0x1f, 0x44, 0x2c, 0x5d, 0x66, 0x23,
0x5a, 0x74, 0x34, 0x8d, 0x86, 0x21, 0xdb, 0xf7, 0x51, 0xad, 0x34, 0xd5, 0xc2, 0x90, 0xc5, 0x63,
0x36, 0x38, 0x4e, 0xe2, 0x20, 0xe2, 0x64, 0x31, 0xce, 0xe7, 0x18, 0x61, 0x71, 0x46, 0x8b, 0x91,
0x5e, 0x92, 0x80, 0xb0, 0x18, 0x07, 0xf1, 0x54, 0x5a, 0x5c, 0xf7, 0x14, 0xa4, 0xf0, 0x2c, 0x4d,
0xbb, 0x35, 0x83, 0x47, 0x48, 0xe0, 0x43, 0xff, 0x88, 0x85, 0x59, 0x77, 0xf5, 0x7e, 0x45, 0xe0,
0x25, 0xe4, 0xdc, 0x87, 0x46, 0x14, 0xef, 0x07, 0x27, 0x31, 0xf7, 0xe2, 0x98, 0x77, 0xd7, 0xc8,
0x61, 0x36, 0xca, 0xe9, 0xc2, 0x6a, 0x3a, 0x8d, 0x44, 0xdc, 0x74, 0xeb, 0x24, 0x52, 0x83, 0x82,
0x57, 0x0d, 0x9f, 0xa6, 0xa3, 0xac, 0x0b, 0x24, 0xd8, 0x46, 0x39, 0x9f, 0x40, 0x2b, 0x5f, 0xc9,
0x6e, 0x90, 0x76, 0x1b, 0x24, 0xa1, 0x88, 0x74, 0xf7, 0xe0, 0xc6, 0x9c, 0x2f, 0x55, 0x9c, 0x6d,
0x41, 0x7d, 0xa0, 0x91, 0xe4, 0xd3, 0xc6, 0xf6, 0xc6, 0x16, 0x85, 0xf6, 0x56, 0x4e, 0x9c, 0x93,
0xa0, 0xa8, 0xd6, 0x41, 0x30, 0x8a, 0xfc, 0xf0, 0xc3, 0x23, 0x46, 0x78, 0x8c, 0x58, 0x54, 0x7c,
0x2a, 0xc8, 0xdd, 0x80, 0xb6, 0x16, 0xa5, 0x36, 0xfd, 0x4f, 0x15, 0xe8, 0x3c, 0x1d, 0x0e, 0x2f,
0x89, 0x49, 0x0c, 0x6c, 0xce, 0x52, 0x0c, 0x7d, 0x94, 0x58, 0x26, 0x77, 0x1a, 0xd8, 0xb9, 0x07,
0xd5, 0x69, 0x86, 0x2b, 0xa9, 0xd0, 0x4a, 0x1a, 0x6a, 0x25, 0x6f, 0x11, 0xe5, 0xd1, 0x84, 0xe3,
0x40, 0xd5, 0x17, 0xbe, 0xac, 0x92, 0x2f, 0x69, 0x2c, 0x4c, 0x66, 0xd1, 0x09, 0xee, 0xb3, 0x40,
0x89, 0xa1, 0xc0, 0x0c, 0x4e, 0x87, 0x6a, 0x87, 0xc5, 0x50, 0x2f, 0x6b, 0x35, 0x5f, 0x96, 0x09,
0x9b, 0xb5, 0xc5, 0x61, 0x53, 0x5f, 0x12, 0x36, 0x50, 0x08, 0x1b, 0x17, 0x9a, 0x03, 0x3f, 0xf1,
0x8f, 0x82, 0x30, 0xe0, 0x01, 0xcb, 0x70, 0xff, 0x84, 0x11, 0x05, 0x9c, 0xf3, 0x00, 0xd6, 0xfd,
0x24, 0xf1, 0xd3, 0x49, 0x9c, 0xa2, 0x6b, 0xde, 0x07, 0x21, 0xeb, 0x36, 0x49, 0xc8, 0x2c, 0x5a,
0x48, 0xcb, 0x58, 0x18, 0x44, 0xd3, 0xb3, 0x17, 0x22, 0xfa, 0xba, 0x2d, 0x22, 0x2b, 0xe0, 0x84,
0xb4, 0x28, 0x7e, 0xc5, 0x4e, 0xf7, 0xd3, 0xe0, 0x04, 0x79, 0x46, 0xa8, 0xb4, 0x4d, 0x5e, 0x9c,
0x45, 0x3b, 0x5f, 0xc7, 0xc0, 0x0c, 0x83, 0x49, 0xc0, 0xb3, 0xee, 0x3a, 0x9a, 0xd5, 0xd8, 0x6e,
0x29, 0x7f, 0x7a, 0x84, 0xf5, 0xf4, 0xac, 0xbb, 0x0b, 0x35, 0x89, 0x12, 0xee, 0x15, 0x24, 0x6a,
0xb7, 0x68, 0x2c, 0x70, 0x59, 0xfc, 0x9e, 0xd3, 0x5e, 0x55, 0x3d, 0x1a, 0x0b, 0xdc, 0xd8, 0x4f,
0x87, 0xb4, 0x4f, 0x88, 0x13, 0x63, 0xd7, 0x83, 0xaa, 0xd8, 0x28, 0xe1, 0xea, 0xa9, 0xda, 0xf0,
0x96, 0x27, 0x86, 0x02, 0x33, 0x52, 0x31, 0x85, 0x18, 0x1c, 0x3a, 0x5f, 0x83, 0xb6, 0x3f, 0x1c,
0xa2, 0x7b, 0x62, 0xdc, 0xf5, 0x2f, 0x82, 0x61, 0x86, 0x92, 0x2a, 0x38, 0x39, 0x83, 0x75, 0xb7,
0xc1, 0xb1, 0x03, 0x4a, 0x05, 0xfd, 0x6d, 0xa8, 0x67, 0xe7, 0x19, 0x67, 0x93, 0x7d, 0xa3, 0x27,
0x47, 0xb8, 0xbf, 0x2c, 0x99, 0x74, 0x31, 0x59, 0xb4, 0x2c, 0x16, 0xbf, 0x5d, 0xa8, 0x2d, 0x65,
0x8a, 0xba, 0x8e, 0xce, 0x9f, 0x9c, 0xdb, 0x2e, 0x37, 0x73, 0x29, 0x5b, 0x59, 0x94, 0xb2, 0x3d,
0xe8, 0xce, 0xdb, 0xa0, 0xd2, 0x64, 0x00, 0x37, 0x76, 0x59, 0xc8, 0x3e, 0xc4, 0x3e, 0xf4, 0x73,
0xe4, 0x63, 0x61, 0x91, 0xe9, 0x48, 0xe3, 0x0f, 0x37, 0x60, 0x5e, 0x89, 0x32, 0xe0, 0x25, 0x5c,
0x7f, 0x11, 0x64, 0xfc, 0x72, 0xf5, 0x73, 0xaa, 0xca, 0x8b, 0x54, 0xfd, 0xae, 0x04, 0x90, 0xcb,
0x32, 0x36, 0x97, 0x2c, 0x9b, 0x11, 0xc7, 0xce, 0x02, 0xae, 0xf2, 0x9d, 0xc6, 0x22, 0x2a, 0xf8,
0x20, 0x51, 0x47, 0x90, 0x18, 0x8a, 0x7a, 0x39, 0x8d, 0x82, 0xb3, 0x83, 0x78, 0x70, 0xcc, 0x78,
0x46, 0xf5, 0x1c, 0x6b, 0xad, 0x85, 0xa2, 0xa4, 0x1d, 0xb3, 0x30, 0xa4, 0xa2, 0xbe, 0xe6, 0x49,
0x40, 0x54, 0x60, 0x36, 0x49, 0xf8, 0xf9, 0xab, 0x03, 0x4c, 0x79, 0x91, 0x7f, 0x1a, 0xc4, 0x95,
0x6e, 0xce, 0xae, 0x54, 0xc5, 0xd0, 0x63, 0x68, 0xe4, 0xab, 0xc8, 0xd0, 0xd8, 0xca, 0xe2, 0xad,
0xb7, 0xa9, 0xdc, 0xbb, 0xd0, 0x3c, 0xe0, 0xb8, 0xa9, 0x4b, 0xfc, 0xe5, 0x3e, 0x80, 0xb6, 0xa9,
0xba, 0x44, 0x28, 0xeb, 0x86, 0xcf, 0xa7, 0x99, 0xa2, 0x52, 0x90, 0xfb, 0xe7, 0x0a, 0xac, 0xaa,
0xb0, 0xd6, 0xb5, 0xa9, 0x94, 0xd7, 0xa6, 0xff, 0x4a, 0x89, 0x2c, 0x64, 0xd5, 0xea, 0x4c, 0x56,
0xfd, 0xaf, 0x5c, 0xe6, 0xe5, 0xf2, 0xaf, 0x25, 0xa8, 0x9b, 0x6d, 0xfe, 0xe8, 0x76, 0xe6, 0x53,
0xa8, 0x27, 0x72, 0xe3, 0x99, 0xac, 0x7a, 0x8d, 0xed, 0xb6, 0x52, 0xa4, 0xeb, 0x5c, 0x4e, 0x60,
0xc5, 0x4f, 0xd5, 0x8e, 0x1f, 0xab, 0x5d, 0x59, 0x29, 0xb4, 0x2b, 0xb8, 0xf9, 0x89, 0x28, 0xa7,
0x35, 0x2a, 0xa7, 0x34, 0xb6, 0x1b, 0x94, 0xd5, 0x42, 0x83, 0xe2, 0x7e, 0x0e, 0xab, 0x2f, 0xfd,
0xc1, 0x18, 0xd7, 0x21, 0x18, 0x07, 0x89, 0x0a, 0x53, 0x64, 0x14, 0x63, 0xa1, 0x64, 0xc2, 0xd0,
0xdf, 0xe7, 0xaa, 0xf6, 0x2b, 0xc8, 0x3d, 0xc6, 0x26, 0x42, 0xa6, 0x81, 0x4a, 0xa6, 0x47, 0x58,
0x46, 0xb5, 0x43, 0x74, 0x2e, 0xcd, 0xb7, 0x21, 0x16, 0x0d, 0x6e, 0xcb, 0xea, 0x44, 0x6a, 0x56,
0x55, 0x57, 0xfb, 0x40, 0xd9, 0xe3, 0xe9, 0x69, 0xf7, 0xd7, 0x25, 0xd8, 0x94, 0x3d, 0xe6, 0xa5,
0x9d, 0xe4, 0xe2, 0xde, 0x45, 0xba, 0xaf, 0x52, 0x70, 0xdf, 0x63, 0xa8, 0xa7, 0x2c, 0x8b, 0xa7,
0x29, 0xba, 0x99, 0x3c, 0xdb, 0xd8, 0xbe, 0xae, 0x33, 0x89, 0x74, 0x79, 0x6a, 0xd6, 0xcb, 0xe9,
0xdc, 0x7f, 0xd4, 0xa0, 0x5d, 0x9c, 0x15, 0x15, 0xeb, 0x28, 0x3c, 0x0e, 0xe2, 0x77, 0xb2, 0x39,
0x2e, 0x91, 0x9b, 0x6c, 0x94, 0xc8, 0x2a, 0xf4, 0xe5, 0x01, 0x9e, 0x90, 0xa8, 0x49, 0xba, 0x31,
0x47, 0xa8, 0xd9, 0x7d, 0x96, 0x06, 0xb1, 0x3e, 0x4c, 0x73, 0x84, 0x28, 0x03, 0x08, 0xbc, 0x99,
0xc6, 0xdc, 0x27, 0x23, 0xab, 0x9e, 0x81, 0xa9, 0x2b, 0xc6, 0x3d, 0x62, 0x7c, 0x47, 0xec, 0xda,
0x8a, 0xea, 0x8a, 0x0d, 0x26, 0x9f, 0x7f, 0xc9, 0x26, 0x99, 0x4a, 0x73, 0x0b, 0x23, 0x2c, 0x97,
0xbb, 0xf9, 0x42, 0x04, 0x35, 0x05, 0x06, 0x5a, 0x6e, 0xa1, 0x84, 0x04, 0x09, 0x1e, 0x9c, 0xfa,
0x09, 0xa5, 0x7d, 0xd5, 0xb3, 0x30, 0x18, 0xc8, 0x1d, 0x09, 0xa1, 0x37, 0xf0, 0x0e, 0xe4, 0x8b,
0x63, 0x9b, 0xca, 0x40, 0xd5, 0x9b, 0x9f, 0x10, 0xd4, 0xc7, 0x2c, 0x8d, 0x58, 0xf8, 0xd2, 0xd2,
0x0a, 0x92, 0x7a, 0x6e, 0xc2, 0xd9, 0x86, 0x6b, 0x12, 0x79, 0xb8, 0xb3, 0x6f, 0x33, 0x34, 0x88,
0x61, 0xe1, 0x9c, 0xc8, 0x74, 0x72, 0xfc, 0x0b, 0xe6, 0xbf, 0x57, 0xfb, 0xd1, 0x24, 0xf2, 0x59,
0xb4, 0xf3, 0x14, 0x3a, 0xd6, 0x16, 0xed, 0xe2, 0xad, 0x6a, 0xc0, 0xb0, 0x78, 0x88, 0xa8, 0xbd,
0xaa, 0xa2, 0xc0, 0x9e, 0xf2, 0xe6, 0xa9, 0x9d, 0xb7, 0xd0, 0x23, 0xe4, 0xe1, 0x18, 0x6f, 0x89,
0x3c, 0xc4, 0x88, 0xf0, 0x87, 0xcf, 0x92, 0x4c, 0xc9, 0x6a, 0x93, 0x2c, 0x1d, 0x51, 0x9a, 0x46,
0x49, 0xbb, 0x80, 0xd1, 0x79, 0x07, 0xb7, 0x0a, 0xb3, 0xef, 0xd2, 0x80, 0xb3, 0x5c, 0xee, 0xfa,
0x45, 0x72, 0x2f, 0xe2, 0x9c, 0x13, 0x2c, 0xd4, 0xee, 0xc5, 0x46, 0xf0, 0xc6, 0x87, 0x0b, 0x2e,
0x72, 0x3a, 0x3f, 0x85, 0xdb, 0xf3, 0x7a, 0x2d, 0xc9, 0x9d, 0x8b, 0x24, 0x5f, 0xc8, 0xea, 0x7e,
0x1f, 0x5a, 0xcf, 0x42, 0x3c, 0xf8, 0xf7, 0x5e, 0x2b, 0x5d, 0x85, 0x4b, 0x75, 0x65, 0xe1, 0xa5,
0xba, 0xa2, 0x2e, 0xd5, 0xee, 0x2f, 0xa0, 0x59, 0xd8, 0xb0, 0xef, 0x50, 0xa6, 0x6a, 0x51, 0xea,
0xaa, 0x74, 0x4d, 0x99, 0x55, 0x50, 0xe3, 0xd9, 0x84, 0xa2, 0x82, 0x9c, 0xca, 0x60, 0x92, 0xed,
0xab, 0x82, 0x44, 0x76, 0x84, 0x79, 0xa0, 0xc9, 0x9b, 0x91, 0x85, 0x71, 0x7f, 0x06, 0xed, 0xe2,
0x62, 0xff, 0x6d, 0x0b, 0xb0, 0x32, 0xa7, 0x58, 0x73, 0x74, 0xff, 0x2d, 0xc6, 0xe2, 0x55, 0x62,
0xae, 0x26, 0xaa, 0xe6, 0xee, 0x1c, 0x5a, 0xcf, 0x4f, 0x18, 0x76, 0x2b, 0xba, 0x4a, 0x3e, 0x81,
0xba, 0x79, 0xd4, 0x50, 0xc5, 0xb6, 0xb7, 0x25, 0x9f, 0x3d, 0xb6, 0xf4, 0xb3, 0xc7, 0xd6, 0xa1,
0xa6, 0xf0, 0x72, 0x62, 0xb1, 0xc6, 0x8c, 0xc7, 0x29, 0x1b, 0xbe, 0x8e, 0xc2, 0x73, 0xfd, 0x56,
0x90, 0x63, 0x54, 0xfd, 0xad, 0x9a, 0xf6, 0xe7, 0xb7, 0x25, 0x58, 0x21, 0xdd, 0x0b, 0xef, 0x11,
0x92, 0xba, 0x6c, 0xaa, 0x75, 0xb1, 0x36, 0xb7, 0x4c, 0x6d, 0x56, 0x55, 0xbc, 0x9a, 0x57, 0xf1,
0xc2, 0x0a, 0x6a, 0x1f, 0xb1, 0x02, 0xf7, 0x37, 0x65, 0x68, 0xbe, 0x62, 0xfc, 0x34, 0x4e, 0x8f,
0xc5, 0x89, 0x95, 0x2d, 0x6c, 0x4e, 0x6f, 0xc2, 0x5a, 0x7a, 0xd6, 0x3f, 0x3a, 0xe7, 0xa6, 0x42,
0xaf, 0xa6, 0x67, 0xcf, 0x04, 0xe8, 0xdc, 0x01, 0xc0, 0xa9, 0x7d, 0x5f, 0x36, 0xa4, 0xaa, 0x40,
0xa7, 0x67, 0x0a, 0xe1, 0xdc, 0x82, 0xba, 0x77, 0xd6, 0xc7, 0xc6, 0x26, 0x4e, 0x33, 0x5d, 0xa1,
0xd3, 0xb3, 0xe7, 0x04, 0x0b, 0x5e, 0x9c, 0x1c, 0xa6, 0x71, 0x92, 0xb0, 0x21, 0x55, 0x68, 0xe2,
0xdd, 0x95, 0x08, 0xa1, 0xf5, 0x50, 0x6b, 0xad, 0x49, 0xad, 0x3c, 0xd7, 0x8a, 0x53, 0x89, 0xd2,
0x2a, 0x4b, 0x73, 0x9d, 0xdb, 0x5a, 0x0f, 0x8d, 0x56, 0x59, 0x97, 0xd7, 0xb8, 0xa5, 0xf5, 0x30,
0xd7, 0x5a, 0xd7, 0xbc, 0x4a, 0xab, 0xfb, 0xc7, 0x12, 0xac, 0xe1, 0xf9, 0xf0, 0x36, 0xf3, 0x47,
0x0c, 0x5b, 0xc9, 0x06, 0xc7, 0xb3, 0x24, 0xec, 0x4f, 0x05, 0xa8, 0x4e, 0x2f, 0x20, 0x94, 0x24,
0xf8, 0x3f, 0x68, 0x26, 0x2c, 0xc5, 0x53, 0x43, 0x51, 0x94, 0x31, 0x99, 0xf1, 0x94, 0x90, 0x38,
0x49, 0xb2, 0x05, 0x57, 0x69, 0xae, 0x1f, 0x44, 0x7d, 0x59, 0x96, 0x27, 0xf1, 0x90, 0x29, 0x57,
0x75, 0x68, 0x6a, 0x2f, 0xfa, 0xd2, 0x4c, 0x38, 0xdf, 0x84, 0x8e, 0xa1, 0x17, 0xed, 0x2a, 0x51,
0x4b, 0xd7, 0xad, 0x2b, 0xea, 0xb7, 0x0a, 0x8d, 0x39, 0xac, 0x73, 0x28, 0x88, 0x46, 0xbb, 0x3e,
0x9e, 0x7a, 0xd8, 0xca, 0x24, 0x74, 0x36, 0x66, 0xca, 0x5a, 0x0d, 0x3a, 0xdf, 0x82, 0x0e, 0x57,
0xf9, 0x36, 0xec, 0x6b, 0x1a, 0xb9, 0x9b, 0x1b, 0x66, 0x62, 0x5f, 0x11, 0xff, 0x3f, 0xb4, 0x73,
0x62, 0x6a, 0x8c, 0xa4, 0xbd, 0x2d, 0x83, 0x15, 0xd1, 0xe4, 0xfe, 0x5e, 0x3a, 0x4b, 0x46, 0xce,
0xa7, 0x74, 0x54, 0x5b, 0xae, 0x6a, 0x6c, 0xaf, 0xeb, 0x16, 0x47, 0x39, 0x83, 0x8e, 0x67, 0xe9,
0x96, 0x1f, 0xc0, 0x3a, 0x37, 0xa6, 0xf7, 0x31, 0x53, 0x7d, 0x95, 0x7a, 0x33, 0x95, 0x50, 0x2d,
0xcc, 0x6b, 0xf3, 0xe2, 0x42, 0xd1, 0xf3, 0xb2, 0xf7, 0x56, 0x0a, 0xa5, 0x7d, 0x0d, 0x89, 0x23,
0x15, 0x58, 0x1e, 0xeb, 0xd8, 0x98, 0x67, 0xd2, 0x3a, 0x74, 0xcc, 0x60, 0x9a, 0xa6, 0x98, 0x7b,
0xda, 0x31, 0x0a, 0x14, 0xe5, 0x91, 0xfa, 0x56, 0xe5, 0x0c, 0x09, 0xb8, 0x31, 0x80, 0x3c, 0x3b,
0x49, 0x1b, 0xd2, 0xd8, 0x21, 0x20, 0x01, 0x11, 0x67, 0x13, 0xff, 0xcc, 0x6c, 0x3d, 0xc5, 0x19,
0x22, 0xe4, 0x02, 0x51, 0xe1, 0x7b, 0x3f, 0x08, 0x07, 0xea, 0x49, 0x0e, 0x15, 0x2a, 0x30, 0x57,
0x58, 0xb5, 0x15, 0xfe, 0xa1, 0x0c, 0x0d, 0xa9, 0x51, 0x1a, 0x8c, 0x54, 0x03, 0xec, 0xf0, 0x8c,
0x4a, 0x02, 0xb0, 0x07, 0x5f, 0xc9, 0xd5, 0xe5, 0xf7, 0xb1, 0xdc, 0x54, 0x6d, 0x1b, 0x76, 0x9c,
0x19, 0x36, 0x21, 0x96, 0x77, 0x16, 0x52, 0xd7, 0x05, 0x91, 0x34, 0xf8, 0x33, 0x68, 0xca, 0xf8,
0x54, 0x3c, 0xd5, 0x65, 0x3c, 0x0d, 0x49, 0x26, 0xb9, 0x1e, 0x8b, 0x6b, 0x0f, 0xda, 0x4b, 0x6d,
0x76, 0x63, 0xfb, 0x4e, 0x81, 0x9c, 0x56, 0xb2, 0x45, 0xdf, 0xe7, 0x11, 0xc7, 0x7e, 0x47, 0xd2,
0xf6, 0x9e, 0x00, 0xe4, 0x48, 0x51, 0xcf, 0x8e, 0xd9, 0xb9, 0xbe, 0xde, 0xe1, 0x50, 0xac, 0xfd,
0xc4, 0x0f, 0xa7, 0xda, 0xa9, 0x12, 0xf8, 0x5e, 0xf9, 0x49, 0xc9, 0x1d, 0xc0, 0xfa, 0x33, 0x71,
0x24, 0x5a, 0xec, 0x85, 0x43, 0xaf, 0xba, 0xf0, 0xd0, 0xab, 0xea, 0x97, 0x64, 0x2c, 0xb1, 0x71,
0xa2, 0x5a, 0x5d, 0x1c, 0xe5, 0x8a, 0xaa, 0x96, 0x22, 0xf7, 0xef, 0x55, 0x80, 0x5c, 0x8b, 0x73,
0x00, 0xbd, 0x20, 0xee, 0x8b, 0x4e, 0x0d, 0x4f, 0x1b, 0x59, 0x90, 0xfa, 0x29, 0xc3, 0xf0, 0xc9,
0x82, 0x13, 0xa6, 0x9a, 0xf9, 0x4d, 0x73, 0x4c, 0x15, 0x8c, 0xf3, 0x6e, 0x20, 0x24, 0x19, 0xa9,
0x72, 0x79, 0x9a, 0xcd, 0xf9, 0x31, 0x5c, 0xcf, 0x85, 0x0e, 0x2d, 0x79, 0xe5, 0x0b, 0xe5, 0x5d,
0x35, 0xf2, 0x86, 0xb9, 0xac, 0x1f, 0x02, 0xa2, 0xfb, 0x78, 0x98, 0x4d, 0x0b, 0x92, 0x2a, 0x17,
0x4a, 0xea, 0x04, 0xf1, 0x1b, 0xe2, 0xc8, 0xe5, 0xbc, 0x81, 0x9b, 0xd6, 0x42, 0x45, 0xda, 0x5b,
0xd2, 0xaa, 0x17, 0x4a, 0xdb, 0x34, 0x76, 0x89, 0xc2, 0x90, 0x8b, 0xfc, 0x12, 0x70, 0xa6, 0x7f,
0xea, 0x07, 0x7c, 0x56, 0xde, 0xca, 0x65, 0xeb, 0x7c, 0x87, 0x4c, 0x45, 0x61, 0x72, 0x9d, 0x13,
0x96, 0x8e, 0x0a, 0xeb, 0xac, 0x5d, 0xb6, 0xce, 0x97, 0xc4, 0x91, 0xcb, 0x79, 0x06, 0x88, 0x9c,
0xb5, 0x67, 0xf5, 0x42, 0x29, 0xeb, 0xd8, 0x85, 0x15, 0x6c, 0xd9, 0x81, 0x4e, 0xc6, 0x06, 0x78,
0xd4, 0xdb, 0xb1, 0xb0, 0x76, 0xa1, 0x8c, 0x0d, 0xc5, 0x60, 0x84, 0xb8, 0x5f, 0x41, 0xf3, 0x47,
0xd3, 0x11, 0xe3, 0xe1, 0x91, 0xc9, 0xf9, 0xff, 0x74, 0x99, 0xf9, 0x27, 0x96, 0x99, 0x9d, 0x51,
0x1a, 0x4f, 0x93, 0x42, 0xd5, 0x96, 0x39, 0x3c, 0x57, 0xb5, 0x89, 0x86, 0xaa, 0xb6, 0xa4, 0xfe,
0x1c, 0x9a, 0xf2, 0xe6, 0xa2, 0x18, 0x64, 0x15, 0x72, 0xe6, 0x93, 0x5e, 0xdf, 0x94, 0x24, 0xdb,
0xb6, 0xba, 0x05, 0x2a, 0xae, 0x62, 0x35, 0xca, 0xdd, 0xe4, 0xc1, 0x51, 0x9e, 0x75, 0x7b, 0xd0,
0x1a, 0x4b, 0xdf, 0x28, 0x2e, 0x19, 0x80, 0x9f, 0x68, 0xe3, 0xf2, 0x35, 0x6c, 0xd9, 0x3e, 0x94,
0xae, 0x6e, 0x8e, 0x6d, 0xb7, 0x3e, 0x04, 0x10, 0xf7, 0xfc, 0xbe, 0x2e, 0x54, 0xf6, 0x4f, 0x00,
0x73, 0x42, 0x78, 0xf5, 0x44, 0x0f, 0x7b, 0x87, 0xd0, 0x99, 0x93, 0xb9, 0xa0, 0x4c, 0x7d, 0xc3,
0x2e, 0x53, 0xf9, 0xd5, 0xc8, 0x66, 0xb5, 0x6b, 0xd7, 0x5f, 0x4a, 0xf2, 0x59, 0x20, 0x7f, 0xa7,
0x7d, 0x02, 0xad, 0x48, 0x36, 0x5f, 0x66, 0x03, 0xec, 0x3b, 0x96, 0xdd, 0x98, 0x79, 0xcd, 0xc8,
0x6e, 0xd3, 0x70, 0x23, 0x06, 0xe4, 0x81, 0x85, 0x1b, 0x61, 0x39, 0xc7, 0x6b, 0x0c, 0xac, 0xdd,
0x2e, 0x34, 0x8a, 0xd5, 0x8f, 0x69, 0x14, 0xd5, 0xcb, 0xde, 0xb2, 0x9f, 0x16, 0xdb, 0x78, 0xf7,
0xaf, 0x3c, 0xdd, 0xdf, 0xc3, 0x7b, 0xdf, 0xc6, 0xec, 0x3f, 0x3f, 0xe7, 0xae, 0x32, 0x6b, 0xc9,
0x7f, 0xc2, 0xde, 0xbd, 0xa5, 0xf3, 0xaa, 0x65, 0xbf, 0xe2, 0x78, 0xb0, 0x3e, 0xf3, 0x87, 0xc7,
0xd1, 0x47, 0xcd, 0xe2, 0xbf, 0x68, 0xbd, 0xbb, 0xcb, 0xa6, 0x6d, 0x99, 0x33, 0x77, 0x04, 0x23,
0x73, 0xf1, 0x7b, 0x8a, 0x91, 0xb9, 0xec, 0x6a, 0x71, 0xc5, 0xf9, 0x2e, 0xd4, 0xe4, 0x3f, 0x1f,
0x47, 0x5f, 0x5c, 0x0a, 0x7f, 0x93, 0x7a, 0xd7, 0x67, 0xb0, 0x86, 0xf1, 0x05, 0xb4, 0x0a, 0x3f,
0x0a, 0x9d, 0x5b, 0x05, 0x5d, 0xc5, 0x5f, 0x46, 0xbd, 0xdb, 0x8b, 0x27, 0x8d, 0xb4, 0x1d, 0x80,
0xfc, 0xb7, 0x80, 0xd3, 0x55, 0xd4, 0x73, 0xbf, 0x9e, 0x7a, 0x37, 0x17, 0xcc, 0x18, 0x21, 0xb8,
0x95, 0xb3, 0x4f, 0xf4, 0xce, 0x8c, 0x57, 0x67, 0x1f, 0xc8, 0xcd, 0x56, 0x2e, 0x7d, 0xdb, 0x27,
0xb1, 0xb3, 0x0f, 0xef, 0x46, 0xec, 0x92, 0x67, 0x7f, 0x23, 0x76, 0xe9, 0x8b, 0xfd, 0x15, 0xe7,
0x35, 0xb4, 0x8b, 0x2f, 0xd9, 0x8e, 0x76, 0xd2, 0xc2, 0xa7, 0xfc, 0xde, 0x9d, 0x25, 0xb3, 0x46,
0xe0, 0x67, 0xb0, 0x22, 0x9f, 0xa8, 0x75, 0x3a, 0xda, 0x2f, 0xdb, 0xbd, 0x6b, 0x45, 0xa4, 0xe1,
0x7a, 0x04, 0x35, 0x79, 0xbb, 0x34, 0x01, 0x50, 0xb8, 0x6c, 0xf6, 0x9a, 0x36, 0xd6, 0xbd, 0xf2,
0xa8, 0xa4, 0xf5, 0x64, 0x05, 0x3d, 0xd9, 0x22, 0x3d, 0xd6, 0xe6, 0x1c, 0xd5, 0x28, 0x5d, 0x1f,
0xff, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x11, 0x58, 0x45, 0xd9, 0xb2, 0x1f, 0x00, 0x00,
}

View File

@ -73,7 +73,7 @@ message AddProcessRequest {
User user = 3; // User under which process will be run
repeated string args = 4; // Arguments for process, first is binary path itself
repeated string env = 5; // List of environment variables for process
string cwd = 6; // Workind directory of process
string cwd = 6; // Working directory of process
string pid = 7; // Process ID
string stdin = 8; // path to the file where stdin will be read (optional)
string stdout = 9; // path to file where stdout will be written (optional)
@ -98,6 +98,7 @@ message User {
}
message AddProcessResponse {
uint32 systemPid = 1;
}
message CreateCheckpointRequest {
@ -150,7 +151,7 @@ message Process {
User user = 3; // User under which process will be run
repeated string args = 4; // Arguments for process, first is binary path itself
repeated string env = 5; // List of environment variables for process
string cwd = 6; // Workind directory of process
string cwd = 6; // Working directory of process
uint32 systemPid = 7;
string stdin = 8; // path to the file where stdin will be read (optional)
string stdout = 9; // path to file where stdout will be written (optional)