vendor: Vendor in agent protocol changes.

This includes the addition of "SandboxPidNs" in the
CreateContainerRequest api.

Shortlog:
a30395a grpc: signal frozen containers
08674c0 agent: Add support for ephemeral volumes
c517125 ci: Refactor to pass metalinter checks
ad9c33d tests: Modify tests to take into account if pid ns needs to be
shared
e334596 namespace: Share pid namespace of containers
1e72fbb agent: Get cgroup mounts info from /proc/cgroups
ab6c4ff namespaces: Create persistent UTS and IPC namespaces
be3993e release: Kata Containers 1.0.0
75c6fc0 grpc: implement pause and resume commands
9da1fea release: Kata Containers 0.3.0
4bad43e grpc: honour CPU constraints in Kubernetes
11d5c56 grpc: log errors in async commands
7b47559 channel: Support Epoll on Arm64
a7033a7 release: update version to 0.2.0
5c3c000 signal: Backtrace on SIGUSR1
a0880aa signal: Switch to standard signal handling
f8081ca main: Improve logging in signal handling loop
075ad56 main: Rename signal functions for clarity
899bc6d main: Log errors on failure
6689db0 agent: Fix typo

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
This commit is contained in:
Archana Shinde 2018-05-29 11:29:45 -07:00
parent 9fb0b337ef
commit 6d391c4355
3 changed files with 550 additions and 178 deletions

4
Gopkg.lock generated
View File

@ -99,7 +99,7 @@
"protocols/client", "protocols/client",
"protocols/grpc" "protocols/grpc"
] ]
revision = "ea0e6ae4862c8af0b2d10eb6c074682fd676016a" revision = "f6db83c952e3042ed7b527a1bd576e6b888f4f75"
[[projects]] [[projects]]
name = "github.com/kubernetes-incubator/cri-o" name = "github.com/kubernetes-incubator/cri-o"
@ -263,6 +263,6 @@
[solve-meta] [solve-meta]
analyzer-name = "dep" analyzer-name = "dep"
analyzer-version = 1 analyzer-version = 1
inputs-digest = "cb04b7652592ba04799fda27eb1f6d2034b5d669e1c82665d223fb004d676652" inputs-digest = "a8e90901b945488c3b660e20c076fce3345dba96b4ec15e7ca00b8a06baa16a3"
solver-name = "gps-cdcl" solver-name = "gps-cdcl"
solver-version = 1 solver-version = 1

View File

@ -60,7 +60,7 @@
[[constraint]] [[constraint]]
name = "github.com/kata-containers/agent" name = "github.com/kata-containers/agent"
revision = "ea0e6ae4862c8af0b2d10eb6c074682fd676016a" revision = "f6db83c952e3042ed7b527a1bd576e6b888f4f75"
[[constraint]] [[constraint]]
name = "github.com/containerd/cri-containerd" name = "github.com/containerd/cri-containerd"

View File

@ -21,6 +21,8 @@
ListProcessesResponse ListProcessesResponse
UpdateContainerRequest UpdateContainerRequest
StatsContainerRequest StatsContainerRequest
PauseContainerRequest
ResumeContainerRequest
CpuUsage CpuUsage
ThrottlingData ThrottlingData
CpuStats CpuStats
@ -138,6 +140,7 @@ type CreateContainerRequest struct {
Devices []*Device `protobuf:"bytes,4,rep,name=devices" json:"devices,omitempty"` Devices []*Device `protobuf:"bytes,4,rep,name=devices" json:"devices,omitempty"`
Storages []*Storage `protobuf:"bytes,5,rep,name=storages" json:"storages,omitempty"` Storages []*Storage `protobuf:"bytes,5,rep,name=storages" json:"storages,omitempty"`
OCI *Spec `protobuf:"bytes,6,opt,name=OCI" json:"OCI,omitempty"` OCI *Spec `protobuf:"bytes,6,opt,name=OCI" json:"OCI,omitempty"`
SandboxPidns bool `protobuf:"varint,7,opt,name=sandbox_pidns,json=sandboxPidns,proto3" json:"sandbox_pidns,omitempty"`
} }
func (m *CreateContainerRequest) Reset() { *m = CreateContainerRequest{} } func (m *CreateContainerRequest) Reset() { *m = CreateContainerRequest{} }
@ -187,6 +190,13 @@ func (m *CreateContainerRequest) GetOCI() *Spec {
return nil return nil
} }
func (m *CreateContainerRequest) GetSandboxPidns() bool {
if m != nil {
return m.SandboxPidns
}
return false
}
type StartContainerRequest struct { type StartContainerRequest struct {
ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
} }
@ -437,6 +447,38 @@ func (m *StatsContainerRequest) GetContainerId() string {
return "" return ""
} }
type PauseContainerRequest struct {
ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}
func (m *PauseContainerRequest) Reset() { *m = PauseContainerRequest{} }
func (m *PauseContainerRequest) String() string { return proto.CompactTextString(m) }
func (*PauseContainerRequest) ProtoMessage() {}
func (*PauseContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{11} }
func (m *PauseContainerRequest) GetContainerId() string {
if m != nil {
return m.ContainerId
}
return ""
}
type ResumeContainerRequest struct {
ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}
func (m *ResumeContainerRequest) Reset() { *m = ResumeContainerRequest{} }
func (m *ResumeContainerRequest) String() string { return proto.CompactTextString(m) }
func (*ResumeContainerRequest) ProtoMessage() {}
func (*ResumeContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{12} }
func (m *ResumeContainerRequest) GetContainerId() string {
if m != nil {
return m.ContainerId
}
return ""
}
type CpuUsage struct { type CpuUsage struct {
TotalUsage uint64 `protobuf:"varint,1,opt,name=total_usage,json=totalUsage,proto3" json:"total_usage,omitempty"` TotalUsage uint64 `protobuf:"varint,1,opt,name=total_usage,json=totalUsage,proto3" 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,packed,name=percpu_usage,json=percpuUsage" json:"percpu_usage,omitempty"`
@ -447,7 +489,7 @@ type CpuUsage struct {
func (m *CpuUsage) Reset() { *m = CpuUsage{} } func (m *CpuUsage) Reset() { *m = CpuUsage{} }
func (m *CpuUsage) String() string { return proto.CompactTextString(m) } func (m *CpuUsage) String() string { return proto.CompactTextString(m) }
func (*CpuUsage) ProtoMessage() {} func (*CpuUsage) ProtoMessage() {}
func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{11} } func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{13} }
func (m *CpuUsage) GetTotalUsage() uint64 { func (m *CpuUsage) GetTotalUsage() uint64 {
if m != nil { if m != nil {
@ -486,7 +528,7 @@ type ThrottlingData struct {
func (m *ThrottlingData) Reset() { *m = ThrottlingData{} } func (m *ThrottlingData) Reset() { *m = ThrottlingData{} }
func (m *ThrottlingData) String() string { return proto.CompactTextString(m) } func (m *ThrottlingData) String() string { return proto.CompactTextString(m) }
func (*ThrottlingData) ProtoMessage() {} func (*ThrottlingData) ProtoMessage() {}
func (*ThrottlingData) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{12} } func (*ThrottlingData) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{14} }
func (m *ThrottlingData) GetPeriods() uint64 { func (m *ThrottlingData) GetPeriods() uint64 {
if m != nil { if m != nil {
@ -517,7 +559,7 @@ type CpuStats struct {
func (m *CpuStats) Reset() { *m = CpuStats{} } func (m *CpuStats) Reset() { *m = CpuStats{} }
func (m *CpuStats) String() string { return proto.CompactTextString(m) } func (m *CpuStats) String() string { return proto.CompactTextString(m) }
func (*CpuStats) ProtoMessage() {} func (*CpuStats) ProtoMessage() {}
func (*CpuStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{13} } func (*CpuStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{15} }
func (m *CpuStats) GetCpuUsage() *CpuUsage { func (m *CpuStats) GetCpuUsage() *CpuUsage {
if m != nil { if m != nil {
@ -541,7 +583,7 @@ type PidsStats struct {
func (m *PidsStats) Reset() { *m = PidsStats{} } func (m *PidsStats) Reset() { *m = PidsStats{} }
func (m *PidsStats) String() string { return proto.CompactTextString(m) } func (m *PidsStats) String() string { return proto.CompactTextString(m) }
func (*PidsStats) ProtoMessage() {} func (*PidsStats) ProtoMessage() {}
func (*PidsStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{14} } func (*PidsStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{16} }
func (m *PidsStats) GetCurrent() uint64 { func (m *PidsStats) GetCurrent() uint64 {
if m != nil { if m != nil {
@ -567,7 +609,7 @@ type MemoryData struct {
func (m *MemoryData) Reset() { *m = MemoryData{} } func (m *MemoryData) Reset() { *m = MemoryData{} }
func (m *MemoryData) String() string { return proto.CompactTextString(m) } func (m *MemoryData) String() string { return proto.CompactTextString(m) }
func (*MemoryData) ProtoMessage() {} func (*MemoryData) ProtoMessage() {}
func (*MemoryData) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{15} } func (*MemoryData) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{17} }
func (m *MemoryData) GetUsage() uint64 { func (m *MemoryData) GetUsage() uint64 {
if m != nil { if m != nil {
@ -609,7 +651,7 @@ type MemoryStats struct {
func (m *MemoryStats) Reset() { *m = MemoryStats{} } func (m *MemoryStats) Reset() { *m = MemoryStats{} }
func (m *MemoryStats) String() string { return proto.CompactTextString(m) } func (m *MemoryStats) String() string { return proto.CompactTextString(m) }
func (*MemoryStats) ProtoMessage() {} func (*MemoryStats) ProtoMessage() {}
func (*MemoryStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{16} } func (*MemoryStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{18} }
func (m *MemoryStats) GetCache() uint64 { func (m *MemoryStats) GetCache() uint64 {
if m != nil { if m != nil {
@ -663,7 +705,7 @@ type BlkioStatsEntry struct {
func (m *BlkioStatsEntry) Reset() { *m = BlkioStatsEntry{} } func (m *BlkioStatsEntry) Reset() { *m = BlkioStatsEntry{} }
func (m *BlkioStatsEntry) String() string { return proto.CompactTextString(m) } func (m *BlkioStatsEntry) String() string { return proto.CompactTextString(m) }
func (*BlkioStatsEntry) ProtoMessage() {} func (*BlkioStatsEntry) ProtoMessage() {}
func (*BlkioStatsEntry) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{17} } func (*BlkioStatsEntry) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{19} }
func (m *BlkioStatsEntry) GetMajor() uint64 { func (m *BlkioStatsEntry) GetMajor() uint64 {
if m != nil { if m != nil {
@ -707,7 +749,7 @@ type BlkioStats struct {
func (m *BlkioStats) Reset() { *m = BlkioStats{} } func (m *BlkioStats) Reset() { *m = BlkioStats{} }
func (m *BlkioStats) String() string { return proto.CompactTextString(m) } func (m *BlkioStats) String() string { return proto.CompactTextString(m) }
func (*BlkioStats) ProtoMessage() {} func (*BlkioStats) ProtoMessage() {}
func (*BlkioStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{18} } func (*BlkioStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{20} }
func (m *BlkioStats) GetIoServiceBytesRecursive() []*BlkioStatsEntry { func (m *BlkioStats) GetIoServiceBytesRecursive() []*BlkioStatsEntry {
if m != nil { if m != nil {
@ -774,7 +816,7 @@ type HugetlbStats struct {
func (m *HugetlbStats) Reset() { *m = HugetlbStats{} } func (m *HugetlbStats) Reset() { *m = HugetlbStats{} }
func (m *HugetlbStats) String() string { return proto.CompactTextString(m) } func (m *HugetlbStats) String() string { return proto.CompactTextString(m) }
func (*HugetlbStats) ProtoMessage() {} func (*HugetlbStats) ProtoMessage() {}
func (*HugetlbStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{19} } func (*HugetlbStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{21} }
func (m *HugetlbStats) GetUsage() uint64 { func (m *HugetlbStats) GetUsage() uint64 {
if m != nil { if m != nil {
@ -808,7 +850,7 @@ type CgroupStats struct {
func (m *CgroupStats) Reset() { *m = CgroupStats{} } func (m *CgroupStats) Reset() { *m = CgroupStats{} }
func (m *CgroupStats) String() string { return proto.CompactTextString(m) } func (m *CgroupStats) String() string { return proto.CompactTextString(m) }
func (*CgroupStats) ProtoMessage() {} func (*CgroupStats) ProtoMessage() {}
func (*CgroupStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{20} } func (*CgroupStats) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{22} }
func (m *CgroupStats) GetCpuStats() *CpuStats { func (m *CgroupStats) GetCpuStats() *CpuStats {
if m != nil { if m != nil {
@ -852,7 +894,7 @@ type StatsContainerResponse struct {
func (m *StatsContainerResponse) Reset() { *m = StatsContainerResponse{} } func (m *StatsContainerResponse) Reset() { *m = StatsContainerResponse{} }
func (m *StatsContainerResponse) String() string { return proto.CompactTextString(m) } func (m *StatsContainerResponse) String() string { return proto.CompactTextString(m) }
func (*StatsContainerResponse) ProtoMessage() {} func (*StatsContainerResponse) ProtoMessage() {}
func (*StatsContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{21} } func (*StatsContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{23} }
func (m *StatsContainerResponse) GetCgroupStats() *CgroupStats { func (m *StatsContainerResponse) GetCgroupStats() *CgroupStats {
if m != nil { if m != nil {
@ -870,7 +912,7 @@ type WriteStreamRequest struct {
func (m *WriteStreamRequest) Reset() { *m = WriteStreamRequest{} } func (m *WriteStreamRequest) Reset() { *m = WriteStreamRequest{} }
func (m *WriteStreamRequest) String() string { return proto.CompactTextString(m) } func (m *WriteStreamRequest) String() string { return proto.CompactTextString(m) }
func (*WriteStreamRequest) ProtoMessage() {} func (*WriteStreamRequest) ProtoMessage() {}
func (*WriteStreamRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{22} } func (*WriteStreamRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{24} }
func (m *WriteStreamRequest) GetContainerId() string { func (m *WriteStreamRequest) GetContainerId() string {
if m != nil { if m != nil {
@ -900,7 +942,7 @@ type WriteStreamResponse struct {
func (m *WriteStreamResponse) Reset() { *m = WriteStreamResponse{} } func (m *WriteStreamResponse) Reset() { *m = WriteStreamResponse{} }
func (m *WriteStreamResponse) String() string { return proto.CompactTextString(m) } func (m *WriteStreamResponse) String() string { return proto.CompactTextString(m) }
func (*WriteStreamResponse) ProtoMessage() {} func (*WriteStreamResponse) ProtoMessage() {}
func (*WriteStreamResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{23} } func (*WriteStreamResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{25} }
func (m *WriteStreamResponse) GetLen() uint32 { func (m *WriteStreamResponse) GetLen() uint32 {
if m != nil { if m != nil {
@ -918,7 +960,7 @@ type ReadStreamRequest struct {
func (m *ReadStreamRequest) Reset() { *m = ReadStreamRequest{} } func (m *ReadStreamRequest) Reset() { *m = ReadStreamRequest{} }
func (m *ReadStreamRequest) String() string { return proto.CompactTextString(m) } func (m *ReadStreamRequest) String() string { return proto.CompactTextString(m) }
func (*ReadStreamRequest) ProtoMessage() {} func (*ReadStreamRequest) ProtoMessage() {}
func (*ReadStreamRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{24} } func (*ReadStreamRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{26} }
func (m *ReadStreamRequest) GetContainerId() string { func (m *ReadStreamRequest) GetContainerId() string {
if m != nil { if m != nil {
@ -948,7 +990,7 @@ type ReadStreamResponse struct {
func (m *ReadStreamResponse) Reset() { *m = ReadStreamResponse{} } func (m *ReadStreamResponse) Reset() { *m = ReadStreamResponse{} }
func (m *ReadStreamResponse) String() string { return proto.CompactTextString(m) } func (m *ReadStreamResponse) String() string { return proto.CompactTextString(m) }
func (*ReadStreamResponse) ProtoMessage() {} func (*ReadStreamResponse) ProtoMessage() {}
func (*ReadStreamResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{25} } func (*ReadStreamResponse) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{27} }
func (m *ReadStreamResponse) GetData() []byte { func (m *ReadStreamResponse) GetData() []byte {
if m != nil { if m != nil {
@ -965,7 +1007,7 @@ type CloseStdinRequest struct {
func (m *CloseStdinRequest) Reset() { *m = CloseStdinRequest{} } func (m *CloseStdinRequest) Reset() { *m = CloseStdinRequest{} }
func (m *CloseStdinRequest) String() string { return proto.CompactTextString(m) } func (m *CloseStdinRequest) String() string { return proto.CompactTextString(m) }
func (*CloseStdinRequest) ProtoMessage() {} func (*CloseStdinRequest) ProtoMessage() {}
func (*CloseStdinRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{26} } func (*CloseStdinRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{28} }
func (m *CloseStdinRequest) GetContainerId() string { func (m *CloseStdinRequest) GetContainerId() string {
if m != nil { if m != nil {
@ -991,7 +1033,7 @@ type TtyWinResizeRequest struct {
func (m *TtyWinResizeRequest) Reset() { *m = TtyWinResizeRequest{} } func (m *TtyWinResizeRequest) Reset() { *m = TtyWinResizeRequest{} }
func (m *TtyWinResizeRequest) String() string { return proto.CompactTextString(m) } func (m *TtyWinResizeRequest) String() string { return proto.CompactTextString(m) }
func (*TtyWinResizeRequest) ProtoMessage() {} func (*TtyWinResizeRequest) ProtoMessage() {}
func (*TtyWinResizeRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{27} } func (*TtyWinResizeRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{29} }
func (m *TtyWinResizeRequest) GetContainerId() string { func (m *TtyWinResizeRequest) GetContainerId() string {
if m != nil { if m != nil {
@ -1031,7 +1073,7 @@ type CreateSandboxRequest struct {
func (m *CreateSandboxRequest) Reset() { *m = CreateSandboxRequest{} } func (m *CreateSandboxRequest) Reset() { *m = CreateSandboxRequest{} }
func (m *CreateSandboxRequest) String() string { return proto.CompactTextString(m) } func (m *CreateSandboxRequest) String() string { return proto.CompactTextString(m) }
func (*CreateSandboxRequest) ProtoMessage() {} func (*CreateSandboxRequest) ProtoMessage() {}
func (*CreateSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{28} } func (*CreateSandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{30} }
func (m *CreateSandboxRequest) GetHostname() string { func (m *CreateSandboxRequest) GetHostname() string {
if m != nil { if m != nil {
@ -1067,7 +1109,7 @@ type DestroySandboxRequest struct {
func (m *DestroySandboxRequest) Reset() { *m = DestroySandboxRequest{} } func (m *DestroySandboxRequest) Reset() { *m = DestroySandboxRequest{} }
func (m *DestroySandboxRequest) String() string { return proto.CompactTextString(m) } func (m *DestroySandboxRequest) String() string { return proto.CompactTextString(m) }
func (*DestroySandboxRequest) ProtoMessage() {} func (*DestroySandboxRequest) ProtoMessage() {}
func (*DestroySandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{29} } func (*DestroySandboxRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{31} }
type IPAddress struct { type IPAddress struct {
Family IPFamily `protobuf:"varint,1,opt,name=family,proto3,enum=grpc.IPFamily" json:"family,omitempty"` Family IPFamily `protobuf:"varint,1,opt,name=family,proto3,enum=grpc.IPFamily" json:"family,omitempty"`
@ -1078,7 +1120,7 @@ type IPAddress struct {
func (m *IPAddress) Reset() { *m = IPAddress{} } func (m *IPAddress) Reset() { *m = IPAddress{} }
func (m *IPAddress) String() string { return proto.CompactTextString(m) } func (m *IPAddress) String() string { return proto.CompactTextString(m) }
func (*IPAddress) ProtoMessage() {} func (*IPAddress) ProtoMessage() {}
func (*IPAddress) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{30} } func (*IPAddress) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{32} }
func (m *IPAddress) GetFamily() IPFamily { func (m *IPAddress) GetFamily() IPFamily {
if m != nil { if m != nil {
@ -1112,7 +1154,7 @@ type Interface struct {
func (m *Interface) Reset() { *m = Interface{} } func (m *Interface) Reset() { *m = Interface{} }
func (m *Interface) String() string { return proto.CompactTextString(m) } func (m *Interface) String() string { return proto.CompactTextString(m) }
func (*Interface) ProtoMessage() {} func (*Interface) ProtoMessage() {}
func (*Interface) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{31} } func (*Interface) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{33} }
func (m *Interface) GetDevice() string { func (m *Interface) GetDevice() string {
if m != nil { if m != nil {
@ -1160,7 +1202,7 @@ type Route struct {
func (m *Route) Reset() { *m = Route{} } func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) } func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {} func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{32} } func (*Route) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{34} }
func (m *Route) GetDest() string { func (m *Route) GetDest() string {
if m != nil { if m != nil {
@ -1204,7 +1246,7 @@ type Routes struct {
func (m *Routes) Reset() { *m = Routes{} } func (m *Routes) Reset() { *m = Routes{} }
func (m *Routes) String() string { return proto.CompactTextString(m) } func (m *Routes) String() string { return proto.CompactTextString(m) }
func (*Routes) ProtoMessage() {} func (*Routes) ProtoMessage() {}
func (*Routes) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{33} } func (*Routes) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{35} }
func (m *Routes) GetRoutes() []*Route { func (m *Routes) GetRoutes() []*Route {
if m != nil { if m != nil {
@ -1220,7 +1262,7 @@ type UpdateInterfaceRequest struct {
func (m *UpdateInterfaceRequest) Reset() { *m = UpdateInterfaceRequest{} } func (m *UpdateInterfaceRequest) Reset() { *m = UpdateInterfaceRequest{} }
func (m *UpdateInterfaceRequest) String() string { return proto.CompactTextString(m) } func (m *UpdateInterfaceRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateInterfaceRequest) ProtoMessage() {} func (*UpdateInterfaceRequest) ProtoMessage() {}
func (*UpdateInterfaceRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{34} } func (*UpdateInterfaceRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{36} }
func (m *UpdateInterfaceRequest) GetInterface() *Interface { func (m *UpdateInterfaceRequest) GetInterface() *Interface {
if m != nil { if m != nil {
@ -1236,7 +1278,7 @@ type AddInterfaceRequest struct {
func (m *AddInterfaceRequest) Reset() { *m = AddInterfaceRequest{} } func (m *AddInterfaceRequest) Reset() { *m = AddInterfaceRequest{} }
func (m *AddInterfaceRequest) String() string { return proto.CompactTextString(m) } func (m *AddInterfaceRequest) String() string { return proto.CompactTextString(m) }
func (*AddInterfaceRequest) ProtoMessage() {} func (*AddInterfaceRequest) ProtoMessage() {}
func (*AddInterfaceRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{35} } func (*AddInterfaceRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{37} }
func (m *AddInterfaceRequest) GetInterface() *Interface { func (m *AddInterfaceRequest) GetInterface() *Interface {
if m != nil { if m != nil {
@ -1252,7 +1294,7 @@ type RemoveInterfaceRequest struct {
func (m *RemoveInterfaceRequest) Reset() { *m = RemoveInterfaceRequest{} } func (m *RemoveInterfaceRequest) Reset() { *m = RemoveInterfaceRequest{} }
func (m *RemoveInterfaceRequest) String() string { return proto.CompactTextString(m) } func (m *RemoveInterfaceRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveInterfaceRequest) ProtoMessage() {} func (*RemoveInterfaceRequest) ProtoMessage() {}
func (*RemoveInterfaceRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{36} } func (*RemoveInterfaceRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{38} }
func (m *RemoveInterfaceRequest) GetInterface() *Interface { func (m *RemoveInterfaceRequest) GetInterface() *Interface {
if m != nil { if m != nil {
@ -1268,7 +1310,7 @@ type UpdateRoutesRequest struct {
func (m *UpdateRoutesRequest) Reset() { *m = UpdateRoutesRequest{} } func (m *UpdateRoutesRequest) Reset() { *m = UpdateRoutesRequest{} }
func (m *UpdateRoutesRequest) String() string { return proto.CompactTextString(m) } func (m *UpdateRoutesRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateRoutesRequest) ProtoMessage() {} func (*UpdateRoutesRequest) ProtoMessage() {}
func (*UpdateRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{37} } func (*UpdateRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{39} }
func (m *UpdateRoutesRequest) GetRoutes() *Routes { func (m *UpdateRoutesRequest) GetRoutes() *Routes {
if m != nil { if m != nil {
@ -1289,7 +1331,7 @@ type OnlineCPUMemRequest struct {
func (m *OnlineCPUMemRequest) Reset() { *m = OnlineCPUMemRequest{} } func (m *OnlineCPUMemRequest) Reset() { *m = OnlineCPUMemRequest{} }
func (m *OnlineCPUMemRequest) String() string { return proto.CompactTextString(m) } func (m *OnlineCPUMemRequest) String() string { return proto.CompactTextString(m) }
func (*OnlineCPUMemRequest) ProtoMessage() {} func (*OnlineCPUMemRequest) ProtoMessage() {}
func (*OnlineCPUMemRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{38} } func (*OnlineCPUMemRequest) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{40} }
func (m *OnlineCPUMemRequest) GetWait() bool { func (m *OnlineCPUMemRequest) GetWait() bool {
if m != nil { if m != nil {
@ -1338,7 +1380,7 @@ type Storage struct {
func (m *Storage) Reset() { *m = Storage{} } func (m *Storage) Reset() { *m = Storage{} }
func (m *Storage) String() string { return proto.CompactTextString(m) } func (m *Storage) String() string { return proto.CompactTextString(m) }
func (*Storage) ProtoMessage() {} func (*Storage) ProtoMessage() {}
func (*Storage) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{39} } func (*Storage) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{41} }
func (m *Storage) GetDriver() string { func (m *Storage) GetDriver() string {
if m != nil { if m != nil {
@ -1421,7 +1463,7 @@ type Device struct {
func (m *Device) Reset() { *m = Device{} } func (m *Device) Reset() { *m = Device{} }
func (m *Device) String() string { return proto.CompactTextString(m) } func (m *Device) String() string { return proto.CompactTextString(m) }
func (*Device) ProtoMessage() {} func (*Device) ProtoMessage() {}
func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{40} } func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{42} }
func (m *Device) GetId() string { func (m *Device) GetId() string {
if m != nil { if m != nil {
@ -1467,7 +1509,7 @@ type StringUser struct {
func (m *StringUser) Reset() { *m = StringUser{} } func (m *StringUser) Reset() { *m = StringUser{} }
func (m *StringUser) String() string { return proto.CompactTextString(m) } func (m *StringUser) String() string { return proto.CompactTextString(m) }
func (*StringUser) ProtoMessage() {} func (*StringUser) ProtoMessage() {}
func (*StringUser) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{41} } func (*StringUser) Descriptor() ([]byte, []int) { return fileDescriptorAgent, []int{43} }
func (m *StringUser) GetUid() string { func (m *StringUser) GetUid() string {
if m != nil { if m != nil {
@ -1502,6 +1544,8 @@ func init() {
proto.RegisterType((*ListProcessesResponse)(nil), "grpc.ListProcessesResponse") proto.RegisterType((*ListProcessesResponse)(nil), "grpc.ListProcessesResponse")
proto.RegisterType((*UpdateContainerRequest)(nil), "grpc.UpdateContainerRequest") proto.RegisterType((*UpdateContainerRequest)(nil), "grpc.UpdateContainerRequest")
proto.RegisterType((*StatsContainerRequest)(nil), "grpc.StatsContainerRequest") proto.RegisterType((*StatsContainerRequest)(nil), "grpc.StatsContainerRequest")
proto.RegisterType((*PauseContainerRequest)(nil), "grpc.PauseContainerRequest")
proto.RegisterType((*ResumeContainerRequest)(nil), "grpc.ResumeContainerRequest")
proto.RegisterType((*CpuUsage)(nil), "grpc.CpuUsage") proto.RegisterType((*CpuUsage)(nil), "grpc.CpuUsage")
proto.RegisterType((*ThrottlingData)(nil), "grpc.ThrottlingData") proto.RegisterType((*ThrottlingData)(nil), "grpc.ThrottlingData")
proto.RegisterType((*CpuStats)(nil), "grpc.CpuStats") proto.RegisterType((*CpuStats)(nil), "grpc.CpuStats")
@ -1563,6 +1607,8 @@ type AgentServiceClient interface {
ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc1.CallOption) (*ListProcessesResponse, error) ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc1.CallOption) (*ListProcessesResponse, error)
UpdateContainer(ctx context.Context, in *UpdateContainerRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error) UpdateContainer(ctx context.Context, in *UpdateContainerRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error)
StatsContainer(ctx context.Context, in *StatsContainerRequest, opts ...grpc1.CallOption) (*StatsContainerResponse, error) StatsContainer(ctx context.Context, in *StatsContainerRequest, opts ...grpc1.CallOption) (*StatsContainerResponse, error)
PauseContainer(ctx context.Context, in *PauseContainerRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error)
ResumeContainer(ctx context.Context, in *ResumeContainerRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error)
// stdio // stdio
WriteStdin(ctx context.Context, in *WriteStreamRequest, opts ...grpc1.CallOption) (*WriteStreamResponse, error) WriteStdin(ctx context.Context, in *WriteStreamRequest, opts ...grpc1.CallOption) (*WriteStreamResponse, error)
ReadStdout(ctx context.Context, in *ReadStreamRequest, opts ...grpc1.CallOption) (*ReadStreamResponse, error) ReadStdout(ctx context.Context, in *ReadStreamRequest, opts ...grpc1.CallOption) (*ReadStreamResponse, error)
@ -1669,6 +1715,24 @@ func (c *agentServiceClient) StatsContainer(ctx context.Context, in *StatsContai
return out, nil return out, nil
} }
func (c *agentServiceClient) PauseContainer(ctx context.Context, in *PauseContainerRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error) {
out := new(google_protobuf2.Empty)
err := grpc1.Invoke(ctx, "/grpc.AgentService/PauseContainer", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *agentServiceClient) ResumeContainer(ctx context.Context, in *ResumeContainerRequest, opts ...grpc1.CallOption) (*google_protobuf2.Empty, error) {
out := new(google_protobuf2.Empty)
err := grpc1.Invoke(ctx, "/grpc.AgentService/ResumeContainer", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *agentServiceClient) WriteStdin(ctx context.Context, in *WriteStreamRequest, opts ...grpc1.CallOption) (*WriteStreamResponse, error) { func (c *agentServiceClient) WriteStdin(ctx context.Context, in *WriteStreamRequest, opts ...grpc1.CallOption) (*WriteStreamResponse, error) {
out := new(WriteStreamResponse) out := new(WriteStreamResponse)
err := grpc1.Invoke(ctx, "/grpc.AgentService/WriteStdin", in, out, c.cc, opts...) err := grpc1.Invoke(ctx, "/grpc.AgentService/WriteStdin", in, out, c.cc, opts...)
@ -1796,6 +1860,8 @@ type AgentServiceServer interface {
ListProcesses(context.Context, *ListProcessesRequest) (*ListProcessesResponse, error) ListProcesses(context.Context, *ListProcessesRequest) (*ListProcessesResponse, error)
UpdateContainer(context.Context, *UpdateContainerRequest) (*google_protobuf2.Empty, error) UpdateContainer(context.Context, *UpdateContainerRequest) (*google_protobuf2.Empty, error)
StatsContainer(context.Context, *StatsContainerRequest) (*StatsContainerResponse, error) StatsContainer(context.Context, *StatsContainerRequest) (*StatsContainerResponse, error)
PauseContainer(context.Context, *PauseContainerRequest) (*google_protobuf2.Empty, error)
ResumeContainer(context.Context, *ResumeContainerRequest) (*google_protobuf2.Empty, error)
// stdio // stdio
WriteStdin(context.Context, *WriteStreamRequest) (*WriteStreamResponse, error) WriteStdin(context.Context, *WriteStreamRequest) (*WriteStreamResponse, error)
ReadStdout(context.Context, *ReadStreamRequest) (*ReadStreamResponse, error) ReadStdout(context.Context, *ReadStreamRequest) (*ReadStreamResponse, error)
@ -1979,6 +2045,42 @@ func _AgentService_StatsContainer_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _AgentService_PauseContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc1.UnaryServerInterceptor) (interface{}, error) {
in := new(PauseContainerRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(AgentServiceServer).PauseContainer(ctx, in)
}
info := &grpc1.UnaryServerInfo{
Server: srv,
FullMethod: "/grpc.AgentService/PauseContainer",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AgentServiceServer).PauseContainer(ctx, req.(*PauseContainerRequest))
}
return interceptor(ctx, in, info, handler)
}
func _AgentService_ResumeContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc1.UnaryServerInterceptor) (interface{}, error) {
in := new(ResumeContainerRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(AgentServiceServer).ResumeContainer(ctx, in)
}
info := &grpc1.UnaryServerInfo{
Server: srv,
FullMethod: "/grpc.AgentService/ResumeContainer",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AgentServiceServer).ResumeContainer(ctx, req.(*ResumeContainerRequest))
}
return interceptor(ctx, in, info, handler)
}
func _AgentService_WriteStdin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc1.UnaryServerInterceptor) (interface{}, error) { func _AgentService_WriteStdin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc1.UnaryServerInterceptor) (interface{}, error) {
in := new(WriteStreamRequest) in := new(WriteStreamRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@ -2235,6 +2337,14 @@ var _AgentService_serviceDesc = grpc1.ServiceDesc{
MethodName: "StatsContainer", MethodName: "StatsContainer",
Handler: _AgentService_StatsContainer_Handler, Handler: _AgentService_StatsContainer_Handler,
}, },
{
MethodName: "PauseContainer",
Handler: _AgentService_PauseContainer_Handler,
},
{
MethodName: "ResumeContainer",
Handler: _AgentService_ResumeContainer_Handler,
},
{ {
MethodName: "WriteStdin", MethodName: "WriteStdin",
Handler: _AgentService_WriteStdin_Handler, Handler: _AgentService_WriteStdin_Handler,
@ -2359,6 +2469,16 @@ func (m *CreateContainerRequest) MarshalTo(dAtA []byte) (int, error) {
} }
i += n2 i += n2
} }
if m.SandboxPidns {
dAtA[i] = 0x38
i++
if m.SandboxPidns {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
return i, nil return i, nil
} }
@ -2680,6 +2800,54 @@ func (m *StatsContainerRequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil return i, nil
} }
func (m *PauseContainerRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *PauseContainerRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.ContainerId) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintAgent(dAtA, i, uint64(len(m.ContainerId)))
i += copy(dAtA[i:], m.ContainerId)
}
return i, nil
}
func (m *ResumeContainerRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ResumeContainerRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.ContainerId) > 0 {
dAtA[i] = 0xa
i++
i = encodeVarintAgent(dAtA, i, uint64(len(m.ContainerId)))
i += copy(dAtA[i:], m.ContainerId)
}
return i, nil
}
func (m *CpuUsage) Marshal() (dAtA []byte, err error) { func (m *CpuUsage) Marshal() (dAtA []byte, err error) {
size := m.Size() size := m.Size()
dAtA = make([]byte, size) dAtA = make([]byte, size)
@ -4037,6 +4205,9 @@ func (m *CreateContainerRequest) Size() (n int) {
l = m.OCI.Size() l = m.OCI.Size()
n += 1 + l + sovAgent(uint64(l)) n += 1 + l + sovAgent(uint64(l))
} }
if m.SandboxPidns {
n += 2
}
return n return n
} }
@ -4179,6 +4350,26 @@ func (m *StatsContainerRequest) Size() (n int) {
return n return n
} }
func (m *PauseContainerRequest) Size() (n int) {
var l int
_ = l
l = len(m.ContainerId)
if l > 0 {
n += 1 + l + sovAgent(uint64(l))
}
return n
}
func (m *ResumeContainerRequest) Size() (n int) {
var l int
_ = l
l = len(m.ContainerId)
if l > 0 {
n += 1 + l + sovAgent(uint64(l))
}
return n
}
func (m *CpuUsage) Size() (n int) { func (m *CpuUsage) Size() (n int) {
var l int var l int
_ = l _ = l
@ -4987,6 +5178,26 @@ func (m *CreateContainerRequest) Unmarshal(dAtA []byte) error {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
case 7:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field SandboxPidns", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAgent
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.SandboxPidns = bool(v != 0)
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipAgent(dAtA[iNdEx:]) skippy, err := skipAgent(dAtA[iNdEx:])
@ -6072,6 +6283,164 @@ func (m *StatsContainerRequest) Unmarshal(dAtA []byte) error {
} }
return nil return nil
} }
func (m *PauseContainerRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAgent
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: PauseContainerRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: PauseContainerRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAgent
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthAgent
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ContainerId = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipAgent(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthAgent
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ResumeContainerRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAgent
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ResumeContainerRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ResumeContainerRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowAgent
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthAgent
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ContainerId = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipAgent(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthAgent
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *CpuUsage) Unmarshal(dAtA []byte) error { func (m *CpuUsage) Unmarshal(dAtA []byte) error {
l := len(dAtA) l := len(dAtA)
iNdEx := 0 iNdEx := 0
@ -10446,143 +10815,146 @@ var (
func init() { proto.RegisterFile("agent.proto", fileDescriptorAgent) } func init() { proto.RegisterFile("agent.proto", fileDescriptorAgent) }
var fileDescriptorAgent = []byte{ var fileDescriptorAgent = []byte{
// 2196 bytes of a gzipped FileDescriptorProto // 2246 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x6e, 0x1b, 0xc7, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xdd, 0x6e, 0x1b, 0xc7,
0x15, 0x2e, 0x7f, 0x44, 0x89, 0x87, 0xa4, 0x24, 0xae, 0x64, 0x99, 0xa1, 0x0d, 0x57, 0x59, 0xb7, 0xf5, 0xff, 0xf3, 0x53, 0xe2, 0x21, 0x29, 0x89, 0x2b, 0x59, 0x66, 0x68, 0xc3, 0x7f, 0x65, 0xdd,
0x8e, 0x9a, 0xc0, 0x32, 0xa2, 0x18, 0x6d, 0xe0, 0x20, 0x48, 0x25, 0xd9, 0x95, 0xd5, 0xc4, 0x35, 0x3a, 0x6a, 0x02, 0xcb, 0x88, 0x62, 0xb4, 0x81, 0x8d, 0x20, 0xb5, 0x64, 0x55, 0x56, 0x13, 0xd7,
0x3b, 0xb2, 0xe0, 0x02, 0xbd, 0x20, 0x46, 0xbb, 0x63, 0x6a, 0x62, 0xee, 0xce, 0x66, 0x66, 0x56, 0xec, 0xca, 0x82, 0x0b, 0xf4, 0x82, 0x18, 0xed, 0x8e, 0xa8, 0x89, 0xb9, 0x3b, 0x9b, 0x99, 0x59,
0x12, 0x1b, 0xa0, 0x97, 0x7d, 0x82, 0x3e, 0x40, 0xaf, 0x8b, 0xde, 0xf5, 0x15, 0x7a, 0xd1, 0xcb, 0x49, 0x6c, 0x80, 0x5e, 0xf6, 0x09, 0x7a, 0xdb, 0x17, 0x28, 0x7a, 0x51, 0xa0, 0xaf, 0xd0, 0x8b,
0x3e, 0x41, 0x51, 0xf8, 0x11, 0x7a, 0xd5, 0xcb, 0x62, 0xfe, 0xf6, 0x87, 0x22, 0xe5, 0xd6, 0x11, 0x5e, 0xf6, 0x09, 0x8a, 0xc2, 0x8f, 0xd0, 0x27, 0x28, 0xe6, 0x6b, 0x3f, 0xf8, 0xe5, 0x56, 0x11,
0x90, 0x1b, 0x72, 0xce, 0x99, 0x33, 0xdf, 0xf9, 0x99, 0x99, 0x33, 0x67, 0x0f, 0xb4, 0xf0, 0x88, 0xd0, 0x1b, 0x72, 0xcf, 0x99, 0x33, 0xbf, 0xf3, 0x31, 0x33, 0x67, 0xce, 0x1c, 0x68, 0xa2, 0x21,
0xc4, 0x72, 0x3b, 0xe1, 0x4c, 0x32, 0xaf, 0x3e, 0xe2, 0x49, 0xd0, 0x6f, 0xb2, 0x80, 0x1a, 0x46, 0x8e, 0xc4, 0x4e, 0xcc, 0xa8, 0xa0, 0x4e, 0x75, 0xc8, 0x62, 0xbf, 0xd7, 0xa0, 0x3e, 0xd1, 0x8c,
0xff, 0xd6, 0x88, 0xb1, 0xd1, 0x98, 0x3c, 0xd0, 0xd4, 0x49, 0xfa, 0xea, 0x01, 0x89, 0x12, 0x39, 0xde, 0x9d, 0x21, 0xa5, 0xc3, 0x11, 0x7e, 0xa4, 0xa8, 0xd3, 0xe4, 0xec, 0x11, 0x0e, 0x63, 0x31,
0x31, 0x93, 0xfe, 0x7f, 0x2a, 0xb0, 0xb1, 0xcf, 0x09, 0x96, 0x64, 0x9f, 0xc5, 0x12, 0xd3, 0x98, 0xd6, 0x83, 0xee, 0x1f, 0xca, 0xb0, 0xb9, 0xcf, 0x30, 0x12, 0x78, 0x9f, 0x46, 0x02, 0x91, 0x08,
0x70, 0x44, 0xbe, 0x49, 0x89, 0x90, 0xde, 0xfb, 0xd0, 0x0e, 0x1c, 0x6f, 0x48, 0xc3, 0x5e, 0x65, 0x33, 0x0f, 0x7f, 0x9b, 0x60, 0x2e, 0x9c, 0x0f, 0xa1, 0xe5, 0x5b, 0xde, 0x80, 0x04, 0xdd, 0xd2,
0xb3, 0xb2, 0xd5, 0x44, 0xad, 0x8c, 0x77, 0x18, 0x7a, 0x37, 0x61, 0x91, 0x5c, 0x90, 0x40, 0xcd, 0x56, 0x69, 0xbb, 0xe1, 0x35, 0x53, 0xde, 0x51, 0xe0, 0xdc, 0x86, 0x25, 0x7c, 0x85, 0x7d, 0x39,
0x56, 0xf5, 0x6c, 0x43, 0x91, 0x87, 0xa1, 0xf7, 0x31, 0xb4, 0x84, 0xe4, 0x34, 0x1e, 0x0d, 0x53, 0x5a, 0x56, 0xa3, 0x75, 0x49, 0x1e, 0x05, 0xce, 0xa7, 0xd0, 0xe4, 0x82, 0x91, 0x68, 0x38, 0x48,
0x41, 0x78, 0xaf, 0xb6, 0x59, 0xd9, 0x6a, 0xed, 0xac, 0x6e, 0x2b, 0xd3, 0xb6, 0x8f, 0xf4, 0xc4, 0x38, 0x66, 0xdd, 0xca, 0x56, 0x69, 0xbb, 0xb9, 0xbb, 0xb6, 0x23, 0x4d, 0xdb, 0x39, 0x56, 0x03,
0xb1, 0x20, 0x1c, 0x81, 0xc8, 0xc6, 0xde, 0x3d, 0x58, 0x0c, 0xc9, 0x19, 0x0d, 0x88, 0xe8, 0xd5, 0x27, 0x1c, 0x33, 0x0f, 0x78, 0xfa, 0xed, 0x3c, 0x80, 0xa5, 0x00, 0x5f, 0x10, 0x1f, 0xf3, 0x6e,
0x37, 0x6b, 0x5b, 0xad, 0x9d, 0xb6, 0x11, 0x7f, 0xac, 0x99, 0xc8, 0x4d, 0x7a, 0x3f, 0x81, 0x25, 0x75, 0xab, 0xb2, 0xdd, 0xdc, 0x6d, 0x69, 0xf1, 0xe7, 0x8a, 0xe9, 0xd9, 0x41, 0xe7, 0x47, 0xb0,
0x21, 0x19, 0xc7, 0x23, 0x22, 0x7a, 0x0b, 0x5a, 0xb0, 0xe3, 0x70, 0x35, 0x17, 0x65, 0xd3, 0xde, 0xcc, 0x05, 0x65, 0x68, 0x88, 0x79, 0xb7, 0xa6, 0x04, 0xdb, 0x16, 0x57, 0x71, 0xbd, 0x74, 0xd8,
0x6d, 0xa8, 0x3d, 0xdf, 0x3f, 0xec, 0x35, 0xb4, 0x76, 0xb0, 0x52, 0x09, 0x09, 0x90, 0x62, 0xfb, 0xb9, 0x0b, 0x95, 0x57, 0xfb, 0x47, 0xdd, 0xba, 0xd2, 0x0e, 0x46, 0x2a, 0xc6, 0xbe, 0x27, 0xd9,
0x8f, 0xe0, 0xc6, 0x91, 0xc4, 0x5c, 0xbe, 0x83, 0xe3, 0xfe, 0x31, 0x6c, 0x20, 0x12, 0xb1, 0xb3, 0xce, 0x7d, 0x68, 0x73, 0x14, 0x05, 0xa7, 0xf4, 0x6a, 0x10, 0x93, 0x20, 0xe2, 0xdd, 0xa5, 0xad,
0x77, 0x8a, 0x5a, 0x0f, 0x16, 0x25, 0x8d, 0x08, 0x4b, 0xa5, 0x8e, 0x5a, 0x07, 0x39, 0xd2, 0xff, 0xd2, 0xf6, 0xb2, 0xd7, 0x32, 0xcc, 0xbe, 0xe4, 0xb9, 0x4f, 0xe0, 0xd6, 0xb1, 0x40, 0x4c, 0x5c,
0x4b, 0x05, 0xbc, 0x27, 0x17, 0x24, 0x18, 0x70, 0x16, 0x10, 0x21, 0xbe, 0xa7, 0x9d, 0xf8, 0x00, 0x23, 0x3a, 0xee, 0x09, 0x6c, 0x7a, 0x38, 0xa4, 0x17, 0xd7, 0x0a, 0x6d, 0x17, 0x96, 0x04, 0x09,
0x16, 0x13, 0x63, 0x40, 0xaf, 0xae, 0xc5, 0x6d, 0x80, 0x9d, 0x55, 0x6e, 0xd6, 0xff, 0x1a, 0xd6, 0x31, 0x4d, 0x84, 0x0a, 0x6d, 0xdb, 0xb3, 0xa4, 0xfb, 0xa7, 0x12, 0x38, 0x07, 0x57, 0xd8, 0xef,
0x8f, 0xe8, 0x28, 0xc6, 0xe3, 0x6b, 0xb4, 0x77, 0x03, 0x1a, 0x42, 0x63, 0x6a, 0x53, 0x3b, 0xc8, 0x33, 0xea, 0x63, 0xce, 0xff, 0x47, 0xcb, 0xf5, 0x11, 0x2c, 0xc5, 0xda, 0x80, 0x6e, 0x55, 0x89,
0x52, 0xfe, 0x00, 0xbc, 0x97, 0x98, 0xca, 0xeb, 0xd3, 0xe4, 0xdf, 0x87, 0xb5, 0x12, 0xa2, 0x48, 0x9b, 0x55, 0xb0, 0x56, 0xd9, 0x51, 0xf7, 0x1b, 0xd8, 0x38, 0x26, 0xc3, 0x08, 0x8d, 0x6e, 0xd0,
0x58, 0x2c, 0x88, 0x36, 0x40, 0x62, 0x99, 0x0a, 0x0d, 0xb6, 0x80, 0x2c, 0xe5, 0x13, 0x58, 0xff, 0xde, 0x4d, 0xa8, 0x73, 0x85, 0xa9, 0x4c, 0x6d, 0x7b, 0x86, 0x72, 0xfb, 0xe0, 0xbc, 0x41, 0x44,
0x8a, 0x0a, 0x27, 0x4e, 0xfe, 0x1f, 0x13, 0x36, 0xa0, 0xf1, 0x8a, 0xf1, 0x08, 0x4b, 0x67, 0x81, 0xdc, 0x9c, 0x26, 0xf7, 0x21, 0xac, 0x17, 0x10, 0x79, 0x4c, 0x23, 0x8e, 0x95, 0x01, 0x02, 0x89,
0xa1, 0x3c, 0x0f, 0xea, 0x98, 0x8f, 0x44, 0xaf, 0xb6, 0x59, 0xdb, 0x6a, 0x22, 0x3d, 0x56, 0xa7, 0x84, 0x2b, 0xb0, 0x9a, 0x67, 0x28, 0x17, 0xc3, 0xc6, 0xd7, 0x84, 0x5b, 0x71, 0xfc, 0xdf, 0x98,
0x72, 0x4a, 0x8d, 0xb5, 0xeb, 0x7d, 0x68, 0xdb, 0xb8, 0x0f, 0xc7, 0x54, 0x48, 0xad, 0xa7, 0x8d, 0xb0, 0x09, 0xf5, 0x33, 0xca, 0x42, 0x24, 0xac, 0x05, 0x9a, 0x72, 0x1c, 0xa8, 0x22, 0x36, 0xe4,
0x5a, 0x96, 0xa7, 0xd6, 0xf8, 0x0c, 0x36, 0x8e, 0x93, 0xf0, 0x1d, 0xef, 0xf2, 0x0e, 0x34, 0x39, 0xdd, 0xca, 0x56, 0x65, 0xbb, 0xe1, 0xa9, 0x6f, 0xb9, 0x2b, 0x27, 0xd4, 0x18, 0xbb, 0x3e, 0x84,
0x11, 0x2c, 0xe5, 0xea, 0x06, 0x56, 0xf5, 0xbe, 0xaf, 0x9b, 0x7d, 0xff, 0x8a, 0xc6, 0xe9, 0x05, 0x96, 0x89, 0xfb, 0x60, 0x44, 0xb8, 0x50, 0x7a, 0x5a, 0x5e, 0xd3, 0xf0, 0xe4, 0x1c, 0x97, 0xc2,
0x72, 0x73, 0x28, 0x17, 0xb3, 0x57, 0x48, 0x8a, 0x77, 0xb9, 0x42, 0x7f, 0xae, 0xc0, 0xd2, 0x7e, 0xe6, 0x49, 0x1c, 0x5c, 0xf3, 0xc0, 0xef, 0x42, 0x83, 0x61, 0x4e, 0x13, 0x26, 0x8f, 0x69, 0x59,
0x92, 0x1e, 0x0b, 0x3c, 0x22, 0xde, 0x0f, 0xa1, 0x25, 0x99, 0xc4, 0xe3, 0x61, 0xaa, 0x48, 0x2d, 0xad, 0xfb, 0x86, 0x5e, 0xf7, 0xaf, 0x49, 0x94, 0x5c, 0x79, 0x76, 0xcc, 0xcb, 0xc4, 0xcc, 0x11,
0x5e, 0x47, 0xa0, 0x59, 0x46, 0x40, 0x79, 0x4f, 0x78, 0x90, 0xa4, 0x56, 0xa2, 0xba, 0x59, 0xdb, 0x12, 0xfc, 0x3a, 0x47, 0xe8, 0x09, 0xdc, 0xea, 0xa3, 0x84, 0x5f, 0xc7, 0x56, 0xf7, 0xa9, 0x3c,
0xaa, 0xa3, 0x96, 0xe1, 0x19, 0x91, 0x6d, 0x58, 0xd3, 0x73, 0x43, 0x1a, 0x0f, 0x5f, 0x13, 0x1e, 0x7e, 0x3c, 0x09, 0xaf, 0x35, 0xf9, 0x8f, 0x25, 0x58, 0xde, 0x8f, 0x93, 0x13, 0x8e, 0x86, 0xd8,
0x93, 0x71, 0xc4, 0x42, 0xa2, 0x8f, 0x51, 0x1d, 0x75, 0xf5, 0xd4, 0x61, 0xfc, 0x65, 0x36, 0xe1, 0xf9, 0x7f, 0x68, 0x0a, 0x2a, 0xd0, 0x68, 0x90, 0x48, 0x52, 0x89, 0x57, 0x3d, 0x50, 0x2c, 0x2d,
0x7d, 0x08, 0xdd, 0x4c, 0x5e, 0xdd, 0x0d, 0x2d, 0x5d, 0xd7, 0xd2, 0x2b, 0x56, 0xfa, 0xd8, 0xb2, 0x20, 0xc3, 0x8e, 0x99, 0x1f, 0x27, 0x46, 0xa2, 0xbc, 0x55, 0xd9, 0xae, 0x7a, 0x4d, 0xcd, 0xd3,
0xfd, 0xdf, 0xc3, 0xf2, 0x8b, 0x53, 0xce, 0xa4, 0x1c, 0xd3, 0x78, 0xf4, 0x18, 0x4b, 0xac, 0x2e, 0x22, 0x3b, 0xb0, 0xae, 0xc6, 0x06, 0x24, 0x1a, 0xbc, 0xc5, 0x2c, 0xc2, 0xa3, 0x90, 0x06, 0x58,
0x71, 0x42, 0x38, 0x65, 0xa1, 0xb0, 0xd6, 0x3a, 0xd2, 0xfb, 0x08, 0xba, 0xd2, 0xc8, 0x92, 0x70, 0xed, 0xdf, 0xaa, 0xd7, 0x51, 0x43, 0x47, 0xd1, 0x57, 0xe9, 0x80, 0xf3, 0x31, 0x74, 0x52, 0x79,
0xe8, 0x64, 0xaa, 0x5a, 0x66, 0x35, 0x9b, 0x18, 0x58, 0xe1, 0x1f, 0xc3, 0x72, 0x2e, 0xac, 0xd2, 0x79, 0x28, 0x95, 0x74, 0x55, 0x49, 0xaf, 0x1a, 0xe9, 0x13, 0xc3, 0x76, 0x7f, 0x0b, 0x2b, 0xaf,
0x80, 0xb5, 0xb7, 0x93, 0x71, 0x5f, 0xd0, 0x88, 0xf8, 0x67, 0x3a, 0x56, 0x3a, 0xd6, 0xde, 0x47, 0xcf, 0x19, 0x15, 0x62, 0x44, 0xa2, 0xe1, 0x73, 0x24, 0x90, 0xcc, 0x1e, 0x31, 0x66, 0x84, 0x06,
0xd0, 0xcc, 0xe3, 0x50, 0xd1, 0x1b, 0xb5, 0x6c, 0x36, 0xca, 0x85, 0x13, 0x2d, 0x65, 0x41, 0xf9, 0xdc, 0x58, 0x6b, 0x49, 0xe7, 0x13, 0xe8, 0x08, 0x2d, 0x8b, 0x83, 0x81, 0x95, 0x29, 0x2b, 0x99,
0x1c, 0x56, 0x64, 0x66, 0xf8, 0x30, 0xc4, 0x12, 0x97, 0xf7, 0xb6, 0xec, 0x15, 0x5a, 0x96, 0x25, 0xb5, 0x74, 0xa0, 0x6f, 0x84, 0x7f, 0x08, 0x2b, 0x99, 0xb0, 0xcc, 0x3f, 0xc6, 0xde, 0x76, 0xca,
0xda, 0xff, 0x0c, 0x9a, 0x03, 0x1a, 0x0a, 0xa3, 0xb8, 0x07, 0x8b, 0x41, 0xca, 0x39, 0x89, 0xa5, 0x7d, 0x4d, 0x42, 0xec, 0x5e, 0xa8, 0x58, 0xa9, 0x45, 0x76, 0x3e, 0x81, 0x46, 0x16, 0x87, 0x92,
0x73, 0xd9, 0x92, 0xde, 0x3a, 0x2c, 0x8c, 0x69, 0x44, 0xa5, 0x75, 0xd3, 0x10, 0x3e, 0x03, 0x78, 0xda, 0x21, 0x2b, 0x7a, 0x87, 0xd8, 0x70, 0x7a, 0xcb, 0x69, 0x50, 0xbe, 0x80, 0x55, 0x91, 0x1a,
0x46, 0x22, 0xc6, 0x27, 0x3a, 0x60, 0xeb, 0xb0, 0x50, 0xdc, 0x5c, 0x43, 0x78, 0xb7, 0xa0, 0x19, 0x3e, 0x08, 0x90, 0x40, 0xc5, 0x4d, 0x55, 0xf4, 0xca, 0x5b, 0x11, 0x05, 0xda, 0x7d, 0x0a, 0x8d,
0xe1, 0x8b, 0x6c, 0x53, 0xd5, 0xcc, 0x52, 0x84, 0x2f, 0x8c, 0xf1, 0x3d, 0x58, 0x7c, 0x85, 0xe9, 0x3e, 0x09, 0xb8, 0x56, 0xdc, 0x85, 0x25, 0x3f, 0x61, 0x0c, 0x47, 0xc2, 0xba, 0x6c, 0x48, 0x67,
0x38, 0x88, 0xa5, 0x8d, 0x8a, 0x23, 0x73, 0x85, 0xf5, 0xa2, 0xc2, 0xbf, 0x55, 0xa1, 0x65, 0x34, 0x03, 0x6a, 0x23, 0x12, 0x12, 0x61, 0xdc, 0xd4, 0x84, 0x4b, 0x01, 0x5e, 0xe2, 0x90, 0xb2, 0xb1,
0x1a, 0x83, 0xd7, 0x61, 0x21, 0xc0, 0xc1, 0x69, 0xa6, 0x52, 0x13, 0xde, 0x3d, 0x67, 0x48, 0xb5, 0x0a, 0xd8, 0x06, 0xd4, 0xf2, 0x8b, 0xab, 0x09, 0xe7, 0x0e, 0x34, 0x42, 0x74, 0x95, 0x2e, 0xaa,
0x98, 0x0b, 0x73, 0x4b, 0x9d, 0x69, 0x0f, 0x00, 0xc4, 0x39, 0x4e, 0xac, 0x6d, 0xb5, 0x39, 0xc2, 0x1c, 0x59, 0x0e, 0xd1, 0x95, 0x36, 0xbe, 0x0b, 0x4b, 0x67, 0x88, 0x8c, 0xfc, 0x48, 0x98, 0xa8,
0x4d, 0x25, 0x63, 0xcc, 0xfd, 0x04, 0xda, 0xe6, 0xdc, 0xd9, 0x25, 0xf5, 0x39, 0x4b, 0x5a, 0x46, 0x58, 0x32, 0x53, 0x58, 0xcd, 0x2b, 0xfc, 0x6b, 0x19, 0x9a, 0x5a, 0xa3, 0x36, 0x78, 0x03, 0x6a,
0xca, 0x2c, 0xba, 0x0b, 0x9d, 0x54, 0x90, 0xe1, 0x29, 0x25, 0x1c, 0xf3, 0xe0, 0x74, 0xd2, 0x5b, 0x3e, 0xf2, 0xcf, 0x53, 0x95, 0x8a, 0x70, 0x1e, 0x58, 0x43, 0xca, 0xf9, 0x24, 0x9c, 0x59, 0x6a,
0xd8, 0xac, 0x6c, 0x2d, 0xa1, 0x76, 0x2a, 0xc8, 0x53, 0xc7, 0xf3, 0x76, 0x60, 0x41, 0x65, 0x21, 0x4d, 0x7b, 0x04, 0xc0, 0x2f, 0x51, 0x6c, 0x6c, 0xab, 0xcc, 0x11, 0x6e, 0x48, 0x19, 0x6d, 0xee,
0xd1, 0x6b, 0xe8, 0x07, 0xef, 0x76, 0x11, 0x52, 0xbb, 0xba, 0xad, 0x7f, 0x9f, 0xc4, 0x92, 0x4f, 0x67, 0xd0, 0xd2, 0xfb, 0xce, 0x4c, 0xa9, 0xce, 0x99, 0xd2, 0xd4, 0x52, 0x7a, 0xd2, 0x7d, 0x68,
0x90, 0x11, 0xed, 0x7f, 0x0a, 0x90, 0x33, 0xbd, 0x55, 0xa8, 0xbd, 0x26, 0x13, 0x7b, 0x0f, 0xd5, 0x27, 0x1c, 0x0f, 0xce, 0x09, 0x66, 0x88, 0xf9, 0xe7, 0xe3, 0x6e, 0x4d, 0xdf, 0x91, 0x09, 0xc7,
0x50, 0x05, 0xe7, 0x0c, 0x8f, 0x53, 0x17, 0x75, 0x43, 0x3c, 0xaa, 0x7e, 0x5a, 0xf1, 0x03, 0x58, 0x2f, 0x2c, 0xcf, 0xd9, 0x85, 0x9a, 0x4c, 0x7f, 0xbc, 0x5b, 0x57, 0xd7, 0xf1, 0xdd, 0x3c, 0xa4,
0xd9, 0x1b, 0xbf, 0xa6, 0xac, 0xb0, 0x7c, 0x1d, 0x16, 0x22, 0xfc, 0x35, 0xe3, 0x2e, 0x92, 0x9a, 0x72, 0x75, 0x47, 0xfd, 0x1e, 0x44, 0x82, 0x8d, 0x3d, 0x2d, 0xda, 0xfb, 0x1c, 0x20, 0x63, 0x3a,
0xd0, 0x5c, 0x1a, 0x33, 0xee, 0x20, 0x34, 0xe1, 0x2d, 0x43, 0x95, 0x25, 0x3a, 0x5e, 0x4d, 0x54, 0x6b, 0x50, 0x79, 0x8b, 0xc7, 0xe6, 0x1c, 0xca, 0x4f, 0x19, 0x9c, 0x0b, 0x34, 0x4a, 0x6c, 0xd4,
0x65, 0x49, 0xae, 0xa8, 0x5e, 0x50, 0xe4, 0xff, 0xb3, 0x0e, 0x90, 0x6b, 0xf1, 0x10, 0xf4, 0x29, 0x35, 0xf1, 0xa4, 0xfc, 0x79, 0xc9, 0xf5, 0x61, 0x75, 0x6f, 0xf4, 0x96, 0xd0, 0xdc, 0xf4, 0x0d,
0x1b, 0x0a, 0xc2, 0xd5, 0x23, 0x3f, 0x3c, 0x99, 0x48, 0x22, 0x86, 0x9c, 0x04, 0x29, 0x17, 0xf4, 0xa8, 0x85, 0xe8, 0x1b, 0xca, 0x6c, 0x24, 0x15, 0xa1, 0xb8, 0x24, 0xa2, 0xcc, 0x42, 0x28, 0xc2,
0x4c, 0xed, 0x9f, 0x72, 0xfb, 0x86, 0x71, 0x7b, 0xca, 0x36, 0x74, 0x93, 0xb2, 0x23, 0xb3, 0x6e, 0x59, 0x81, 0x32, 0x8d, 0x55, 0xbc, 0x1a, 0x5e, 0x99, 0xc6, 0x99, 0xa2, 0x6a, 0x4e, 0x91, 0xfb,
0x4f, 0x2d, 0x43, 0x6e, 0x95, 0x77, 0x08, 0x37, 0x72, 0xcc, 0xb0, 0x00, 0x57, 0xbd, 0x0a, 0x6e, 0x8f, 0x2a, 0x40, 0xa6, 0xc5, 0xf1, 0xa0, 0x47, 0xe8, 0x80, 0x63, 0x26, 0x4b, 0x90, 0xc1, 0xe9,
0x2d, 0x83, 0x0b, 0x73, 0xa8, 0x27, 0xb0, 0x46, 0xd9, 0xf0, 0x9b, 0x94, 0xa4, 0x25, 0xa0, 0xda, 0x58, 0x60, 0x3e, 0x60, 0xd8, 0x4f, 0x18, 0x27, 0x17, 0x72, 0xfd, 0xa4, 0xdb, 0xb7, 0xb4, 0xdb,
0x55, 0x40, 0x5d, 0xca, 0x7e, 0xad, 0x17, 0xe4, 0x30, 0x03, 0x78, 0xaf, 0xe0, 0xa5, 0xba, 0xee, 0x13, 0xb6, 0x79, 0xb7, 0x09, 0x3d, 0xd6, 0xf3, 0xf6, 0xe4, 0x34, 0xcf, 0xce, 0x72, 0x8e, 0xe0,
0x05, 0xb0, 0xfa, 0x55, 0x60, 0x1b, 0x99, 0x55, 0x2a, 0x1f, 0xe4, 0x88, 0xbf, 0x84, 0x0d, 0xca, 0x56, 0x86, 0x19, 0xe4, 0xe0, 0xca, 0x8b, 0xe0, 0xd6, 0x53, 0xb8, 0x20, 0x83, 0x3a, 0x80, 0x75,
0x86, 0xe7, 0x98, 0xca, 0x69, 0xb8, 0x85, 0xb7, 0x38, 0xa9, 0xde, 0xbe, 0x32, 0x96, 0x71, 0x32, 0x42, 0x07, 0xdf, 0x26, 0x38, 0x29, 0x00, 0x55, 0x16, 0x01, 0x75, 0x08, 0xfd, 0xa5, 0x9a, 0x90,
0x22, 0x7c, 0x54, 0x72, 0xb2, 0xf1, 0x16, 0x27, 0x9f, 0xe9, 0x05, 0x39, 0xcc, 0x2e, 0x74, 0x29, 0xc1, 0xf4, 0xe1, 0x83, 0x9c, 0x97, 0xf2, 0xb8, 0xe7, 0xc0, 0xaa, 0x8b, 0xc0, 0x36, 0x53, 0xab,
0x9b, 0xb6, 0x66, 0xf1, 0x2a, 0x90, 0x15, 0xca, 0xca, 0x96, 0xec, 0x41, 0x57, 0x90, 0x40, 0x32, 0x64, 0x3e, 0xc8, 0x10, 0x7f, 0x0e, 0x9b, 0x84, 0x0e, 0x2e, 0x11, 0x11, 0x93, 0x70, 0xb5, 0xf7,
0x5e, 0x3c, 0x04, 0x4b, 0x57, 0x41, 0xac, 0x5a, 0xf9, 0x0c, 0xc3, 0xff, 0x2d, 0xb4, 0x9f, 0xa6, 0x38, 0x29, 0x2f, 0xdd, 0x22, 0x96, 0x76, 0x32, 0xc4, 0x6c, 0x58, 0x70, 0xb2, 0xfe, 0x1e, 0x27,
0x23, 0x22, 0xc7, 0x27, 0x59, 0x32, 0xb8, 0xb6, 0xfc, 0xe3, 0xff, 0xbb, 0x0a, 0xad, 0xfd, 0x11, 0x5f, 0xaa, 0x09, 0x19, 0xcc, 0x33, 0xe8, 0x10, 0x3a, 0x69, 0xcd, 0xd2, 0x22, 0x90, 0x55, 0x42,
0x67, 0x69, 0x52, 0xca, 0xc9, 0xe6, 0x92, 0x4e, 0xe7, 0x64, 0x2d, 0xa2, 0x73, 0xb2, 0x11, 0x7e, 0x8b, 0x96, 0xec, 0x41, 0x87, 0x63, 0x5f, 0x50, 0x96, 0xdf, 0x04, 0xcb, 0x8b, 0x20, 0xd6, 0x8c,
0x08, 0xed, 0x48, 0x5f, 0x5d, 0x2b, 0x6f, 0xf2, 0x50, 0xf7, 0xd2, 0xa5, 0x46, 0xad, 0xa8, 0x90, 0x7c, 0x8a, 0xe1, 0xfe, 0x1a, 0x5a, 0x2f, 0x92, 0x21, 0x16, 0xa3, 0xd3, 0x34, 0x19, 0xdc, 0x58,
0xcc, 0xb6, 0x01, 0x12, 0x1a, 0x0a, 0xbb, 0xc6, 0xa4, 0xa3, 0x15, 0x5b, 0x98, 0xb9, 0x14, 0x8d, 0xfe, 0x71, 0xff, 0x55, 0x86, 0xe6, 0xfe, 0x90, 0xd1, 0x24, 0x2e, 0xe4, 0x64, 0x7d, 0x48, 0x27,
0x9a, 0x49, 0x96, 0xad, 0x3f, 0x86, 0xd6, 0x89, 0x0a, 0x92, 0x5d, 0x50, 0x4a, 0x46, 0x79, 0xf4, 0x73, 0xb2, 0x12, 0x51, 0x39, 0x59, 0x0b, 0x3f, 0x86, 0x56, 0xa8, 0x8e, 0xae, 0x91, 0xd7, 0x79,
0x10, 0x9c, 0xe4, 0x97, 0xf0, 0x29, 0x74, 0x4e, 0x4d, 0xc8, 0xec, 0x22, 0x73, 0x86, 0xee, 0x5a, 0xa8, 0x33, 0x75, 0xa8, 0xbd, 0x66, 0x98, 0x4b, 0x66, 0x3b, 0x00, 0x31, 0x09, 0xb8, 0x99, 0xa3,
0x4f, 0x72, 0x7f, 0xb7, 0x8b, 0x91, 0x35, 0x1b, 0xd0, 0x3e, 0x2d, 0xb0, 0xfa, 0x47, 0xd0, 0xbd, 0xd3, 0xd1, 0xaa, 0xa9, 0x08, 0x6d, 0x8a, 0xf6, 0x1a, 0x71, 0x9a, 0xad, 0x3f, 0x85, 0xe6, 0xa9,
0x24, 0x32, 0x23, 0x07, 0x6d, 0x15, 0x73, 0x50, 0x6b, 0xc7, 0x33, 0x8a, 0x8a, 0x2b, 0x8b, 0x79, 0x0c, 0x92, 0x99, 0x50, 0x48, 0x46, 0x59, 0xf4, 0x3c, 0x38, 0xcd, 0x0e, 0xe1, 0x0b, 0x68, 0x9f,
0xe9, 0x57, 0xb0, 0x31, 0x5d, 0x6d, 0xd8, 0xda, 0xe8, 0x21, 0xb4, 0x03, 0x6d, 0x5d, 0x69, 0x07, 0xeb, 0x90, 0x99, 0x49, 0x7a, 0x0f, 0xdd, 0x37, 0x9e, 0x64, 0xfe, 0xee, 0xe4, 0x23, 0xab, 0x17,
0xba, 0x97, 0xec, 0x46, 0xad, 0x20, 0x27, 0xfc, 0x10, 0xbc, 0x97, 0x9c, 0x4a, 0x72, 0x24, 0x39, 0xa0, 0x75, 0x9e, 0x63, 0xf5, 0x8e, 0xa1, 0x33, 0x25, 0x32, 0x23, 0x07, 0x6d, 0xe7, 0x73, 0x50,
0xc1, 0xd1, 0x75, 0x14, 0xaf, 0x1e, 0xd4, 0xf5, 0x13, 0x5b, 0xd3, 0xb5, 0x99, 0x1e, 0xfb, 0x1f, 0x73, 0xd7, 0xd1, 0x8a, 0xf2, 0x33, 0xf3, 0x79, 0xe9, 0x17, 0xb0, 0x39, 0x59, 0xe6, 0x98, 0xa2,
0xc0, 0x5a, 0x49, 0x8b, 0x35, 0x79, 0x15, 0x6a, 0x63, 0x12, 0x6b, 0xf4, 0x0e, 0x52, 0x43, 0x1f, 0xec, 0x31, 0xb4, 0x7c, 0x65, 0x5d, 0x61, 0x05, 0x3a, 0x53, 0x76, 0x7b, 0x4d, 0x3f, 0x23, 0xdc,
0x43, 0x17, 0x11, 0x1c, 0x5e, 0x9f, 0x35, 0x56, 0x45, 0x2d, 0x57, 0xb1, 0x05, 0x5e, 0x51, 0x85, 0x00, 0x9c, 0x37, 0x8c, 0x08, 0x7c, 0x2c, 0x18, 0x46, 0xe1, 0x4d, 0x54, 0xcd, 0x0e, 0x54, 0xd5,
0x35, 0xc5, 0x59, 0x5d, 0x29, 0x58, 0xfd, 0x1c, 0xba, 0xfb, 0x63, 0x26, 0xc8, 0x91, 0x0c, 0x69, 0x15, 0x5b, 0x51, 0x45, 0xa1, 0xfa, 0x76, 0x3f, 0x82, 0xf5, 0x82, 0x16, 0x63, 0xf2, 0x1a, 0x54,
0x7c, 0x1d, 0xd5, 0xf6, 0xb7, 0xb0, 0xf6, 0x42, 0x4e, 0x5e, 0x2a, 0x30, 0x41, 0x7f, 0x47, 0xae, 0x46, 0x38, 0x52, 0xe8, 0x6d, 0x4f, 0x7e, 0xba, 0x08, 0x3a, 0x1e, 0x46, 0xc1, 0xcd, 0x59, 0x63,
0xc9, 0x3f, 0xce, 0xce, 0x9d, 0x7f, 0x9c, 0x9d, 0xab, 0x42, 0x3b, 0x60, 0xe3, 0x34, 0x8a, 0xf5, 0x54, 0x54, 0x32, 0x15, 0xdb, 0xe0, 0xe4, 0x55, 0x18, 0x53, 0xac, 0xd5, 0xa5, 0x9c, 0xd5, 0xaf,
0x71, 0xef, 0x20, 0x4b, 0xf9, 0x7f, 0xac, 0xc0, 0xba, 0xf9, 0xca, 0x3d, 0xc2, 0x71, 0x78, 0xc2, 0xa0, 0xb3, 0x3f, 0xa2, 0x1c, 0x1f, 0x8b, 0x80, 0x44, 0x37, 0x51, 0xe6, 0x7f, 0x07, 0xeb, 0xaf,
0x2e, 0x9c, 0xfa, 0x3e, 0x2c, 0x9d, 0x32, 0x21, 0x63, 0x1c, 0x11, 0xab, 0x3a, 0xa3, 0x15, 0x7c, 0xc5, 0xf8, 0x8d, 0x04, 0xe3, 0xe4, 0x37, 0xf8, 0x86, 0xfc, 0x63, 0xf4, 0xd2, 0xfa, 0xc7, 0xe8,
0x18, 0x0b, 0xfd, 0x58, 0x34, 0x91, 0x1a, 0x96, 0x3e, 0x3d, 0x6b, 0x57, 0x7f, 0x7a, 0xde, 0x85, 0xa5, 0xac, 0xf0, 0x7d, 0x3a, 0x4a, 0xc2, 0x48, 0x6d, 0xf7, 0xb6, 0x67, 0x28, 0xf7, 0xf7, 0x25,
0x8e, 0x30, 0xaa, 0x86, 0x09, 0x55, 0x30, 0x75, 0xf3, 0xac, 0x5b, 0xe6, 0x40, 0xf1, 0xfc, 0x9b, 0xd8, 0xd0, 0x6f, 0xf0, 0x63, 0xfd, 0xf4, 0xb4, 0xea, 0x7b, 0xb0, 0x7c, 0x4e, 0xb9, 0x88, 0x50,
0x70, 0xe3, 0x31, 0x11, 0x92, 0xb3, 0x49, 0xd9, 0x2c, 0x1f, 0x43, 0xf3, 0x70, 0xb0, 0x1b, 0x86, 0x88, 0x8d, 0xea, 0x94, 0x96, 0xf0, 0xf2, 0xcd, 0x5a, 0x56, 0xaf, 0x02, 0xf9, 0x59, 0x78, 0x18,
0x9c, 0x08, 0xe1, 0xdd, 0x83, 0xc6, 0x2b, 0x1c, 0xd1, 0xb1, 0xb9, 0x39, 0xcb, 0x2e, 0xb1, 0x1c, 0x57, 0x16, 0x3f, 0x8c, 0xa7, 0x9e, 0xbe, 0xd5, 0x19, 0x4f, 0xdf, 0xdb, 0x70, 0xeb, 0x39, 0xe6,
0x0e, 0x7e, 0xa1, 0xb9, 0xc8, 0xce, 0xaa, 0x6c, 0x85, 0xcd, 0x12, 0x1b, 0x27, 0x47, 0xaa, 0x0d, 0x82, 0xd1, 0x71, 0xd1, 0x2c, 0x17, 0x41, 0xe3, 0xa8, 0xff, 0x2c, 0x08, 0x18, 0xe6, 0xdc, 0x79,
0x8e, 0xb0, 0x78, 0x6d, 0xdf, 0x64, 0x3d, 0x56, 0x21, 0x69, 0x1e, 0xc6, 0x92, 0xf0, 0x57, 0x38, 0x00, 0xf5, 0x33, 0x14, 0x92, 0x91, 0x3e, 0x39, 0x2b, 0x36, 0xb1, 0x1c, 0xf5, 0x7f, 0xa6, 0xb8,
0xd0, 0x1f, 0x3d, 0xe6, 0xfb, 0xda, 0x46, 0xc1, 0x52, 0x6a, 0xa5, 0x8e, 0x8d, 0x01, 0xd4, 0x63, 0x9e, 0x19, 0x95, 0xd9, 0x0a, 0xe9, 0x29, 0x26, 0x4e, 0x96, 0x94, 0x0b, 0x1c, 0x22, 0xfe, 0xd6,
0x95, 0x58, 0x32, 0xe3, 0xb2, 0x40, 0xac, 0x38, 0xa3, 0xec, 0x04, 0x2a, 0xca, 0xa8, 0x50, 0x46, 0xdc, 0xc9, 0xea, 0x5b, 0x86, 0xa4, 0x71, 0x14, 0x09, 0xcc, 0xce, 0x90, 0xaf, 0x5e, 0x5b, 0xfa,
0x32, 0xb5, 0x05, 0x80, 0x1a, 0x2a, 0x85, 0xa7, 0xe7, 0x4a, 0x40, 0xd7, 0x3b, 0x4d, 0x64, 0x29, 0xf5, 0x6f, 0xa2, 0x60, 0x28, 0x39, 0x53, 0xc5, 0x46, 0x03, 0xaa, 0x6f, 0x99, 0x58, 0x52, 0xe3,
0xff, 0x5b, 0x58, 0x40, 0x2c, 0x95, 0xe6, 0x50, 0x12, 0xfb, 0x99, 0xd3, 0x44, 0x7a, 0xac, 0x3c, 0xd2, 0x40, 0xac, 0x5a, 0xa3, 0xcc, 0x80, 0x97, 0x97, 0x91, 0xa1, 0x0c, 0x45, 0x62, 0x0a, 0x00,
0x1c, 0x61, 0x49, 0xce, 0xf1, 0xc4, 0x79, 0x68, 0xc9, 0x82, 0xfd, 0xb5, 0x92, 0xfd, 0xea, 0x63, 0xf9, 0x29, 0x15, 0x9e, 0x5f, 0x4a, 0x01, 0x55, 0xef, 0x34, 0x3c, 0x43, 0xb9, 0xdf, 0x41, 0xcd,
0x4e, 0x7f, 0xab, 0x68, 0xdd, 0x4d, 0x64, 0x29, 0xf5, 0x18, 0x88, 0x80, 0x25, 0x44, 0x6b, 0xef, 0xa3, 0x89, 0xd0, 0x9b, 0x12, 0x9b, 0xf7, 0x55, 0xc3, 0x53, 0xdf, 0xd2, 0xc3, 0x21, 0x12, 0xf8,
0x20, 0x43, 0xf8, 0xf7, 0xa1, 0xa1, 0x95, 0xab, 0xed, 0xb3, 0x23, 0x5b, 0x7a, 0xb4, 0x8c, 0x7b, 0x12, 0x8d, 0xad, 0x87, 0x86, 0xcc, 0xd9, 0x5f, 0x29, 0xd8, 0x2f, 0x5f, 0x91, 0xea, 0x91, 0xa4,
0x9a, 0x87, 0xec, 0x94, 0x7f, 0xe0, 0x3e, 0xb7, 0xb2, 0x38, 0xba, 0x63, 0x75, 0x1f, 0x9a, 0xd4, 0x74, 0x37, 0x3c, 0x43, 0xc9, 0xcb, 0x80, 0xfb, 0x34, 0xc6, 0x4a, 0x7b, 0xdb, 0xd3, 0x84, 0xfb,
0xf1, 0x6c, 0x32, 0x72, 0x01, 0xca, 0x44, 0x73, 0x09, 0xff, 0x31, 0xac, 0xed, 0x86, 0xe1, 0x77, 0x10, 0xea, 0x4a, 0xb9, 0x5c, 0x3e, 0xf3, 0x65, 0x4a, 0x8f, 0xa6, 0x76, 0x4f, 0xf1, 0x3c, 0x33,
0x45, 0x39, 0x70, 0x3d, 0x89, 0xef, 0x0a, 0xf4, 0x19, 0xac, 0x19, 0xbf, 0x8c, 0x9f, 0x0e, 0xe5, 0xe4, 0x1e, 0xda, 0x77, 0x5e, 0x1a, 0x47, 0xbb, 0xad, 0x1e, 0x42, 0x83, 0x58, 0x9e, 0x49, 0x46,
0x47, 0xd0, 0xe0, 0x2e, 0x26, 0x95, 0xbc, 0x3f, 0x63, 0x85, 0xec, 0x9c, 0xbf, 0x07, 0x6b, 0xcf, 0x36, 0x40, 0xa9, 0x68, 0x26, 0xe1, 0x3e, 0x87, 0xf5, 0x67, 0x41, 0xf0, 0x7d, 0x51, 0x0e, 0x6d,
0xe3, 0x31, 0x8d, 0xc9, 0xfe, 0xe0, 0xf8, 0x19, 0xc9, 0xf2, 0x98, 0x07, 0x75, 0x55, 0xa4, 0xe8, 0x33, 0xe4, 0xfb, 0x02, 0x3d, 0x85, 0x75, 0xed, 0x97, 0xf6, 0xd3, 0xa2, 0xfc, 0x00, 0xea, 0xcc,
0xa5, 0x4b, 0x48, 0x8f, 0xd5, 0xc5, 0x8e, 0x4f, 0x86, 0x41, 0x92, 0x0a, 0xdb, 0x07, 0x69, 0xc4, 0xc6, 0xa4, 0x94, 0x75, 0x8f, 0x8c, 0x90, 0x19, 0x73, 0xf7, 0x60, 0xfd, 0x55, 0x34, 0x22, 0x11,
0x27, 0xfb, 0x49, 0x2a, 0xfc, 0xbf, 0x56, 0x60, 0xd1, 0x5e, 0x29, 0xbd, 0xb3, 0x9c, 0x9e, 0x11, 0xde, 0xef, 0x9f, 0xbc, 0xc4, 0x69, 0x1e, 0x73, 0xa0, 0x2a, 0x8b, 0x14, 0x35, 0x75, 0xd9, 0x53,
0x9e, 0x9d, 0x4c, 0x4d, 0xa9, 0x0f, 0x27, 0x33, 0x1a, 0xb2, 0x44, 0x52, 0x96, 0x5d, 0xd4, 0x8e, 0xdf, 0xf2, 0x60, 0x47, 0xa7, 0x03, 0x3f, 0x4e, 0xb8, 0x69, 0xc0, 0xd4, 0xa3, 0xd3, 0xfd, 0x38,
0xe1, 0x3e, 0x37, 0xcc, 0xc2, 0x01, 0xa8, 0x95, 0x0e, 0x80, 0xfa, 0x24, 0x17, 0x72, 0x92, 0x64, 0xe1, 0xee, 0x5f, 0x4a, 0xb0, 0x64, 0x8e, 0x94, 0x5a, 0x59, 0x46, 0x2e, 0x30, 0x4b, 0x77, 0xa6,
0x07, 0xc3, 0x50, 0xea, 0x88, 0x39, 0xbc, 0x05, 0x8d, 0xe7, 0x48, 0xf5, 0x89, 0x1a, 0xb1, 0x34, 0xa2, 0xe4, 0xc3, 0x49, 0x7f, 0x0d, 0x68, 0x2c, 0x08, 0x4d, 0x0f, 0x6a, 0x5b, 0x73, 0x5f, 0x69,
0x96, 0xc3, 0x84, 0xd1, 0x58, 0xea, 0xa6, 0x52, 0x13, 0x81, 0x66, 0x0d, 0x14, 0xc7, 0xff, 0x43, 0x66, 0x6e, 0x03, 0x54, 0x0a, 0x1b, 0x60, 0x13, 0xea, 0x67, 0x5c, 0x8c, 0xe3, 0x74, 0x63, 0x68,
0x05, 0x1a, 0xa6, 0x59, 0xa5, 0x4a, 0xe0, 0x2c, 0x97, 0x55, 0xa9, 0x7e, 0x17, 0xb4, 0x2e, 0x7b, 0x4a, 0x6e, 0x31, 0x8b, 0x57, 0x53, 0x78, 0x96, 0x94, 0x4f, 0xd4, 0x90, 0x26, 0x91, 0x18, 0xc4,
0x8d, 0xb4, 0xa6, 0x9b, 0xb0, 0x78, 0x16, 0x0d, 0x13, 0x2c, 0x4f, 0x9d, 0x69, 0x67, 0xd1, 0x00, 0x94, 0x44, 0x42, 0xb5, 0xbc, 0x1a, 0x1e, 0x28, 0x56, 0x5f, 0x72, 0xdc, 0xdf, 0x95, 0xa0, 0xae,
0xcb, 0x53, 0xe5, 0x59, 0x9e, 0x12, 0xf5, 0xbc, 0x31, 0xb1, 0x93, 0x71, 0xb5, 0xd8, 0x5c, 0x4b, 0x5b, 0x69, 0xb2, 0x04, 0x4e, 0x73, 0x59, 0x99, 0xa8, 0x7b, 0x41, 0xe9, 0x32, 0xc7, 0x48, 0x69,
0xfd, 0xdf, 0xa8, 0xca, 0x3f, 0xeb, 0xe6, 0xac, 0x42, 0x2d, 0xcd, 0x8c, 0x51, 0x43, 0xc5, 0x19, 0xba, 0x0d, 0x4b, 0x17, 0xe1, 0x20, 0x46, 0xe2, 0xdc, 0x9a, 0x76, 0x11, 0xf6, 0x91, 0x38, 0x97,
0x65, 0xc9, 0x54, 0x0d, 0xbd, 0x7b, 0xb0, 0x8c, 0xc3, 0x90, 0xaa, 0xe5, 0x78, 0x7c, 0x40, 0x43, 0x9e, 0x65, 0x29, 0x51, 0x8d, 0x6b, 0x13, 0xdb, 0x29, 0x57, 0x89, 0xcd, 0xb5, 0xd4, 0xfd, 0x95,
0xd7, 0x92, 0x98, 0xe2, 0x7e, 0xd8, 0x87, 0x25, 0x97, 0x76, 0xbc, 0x06, 0x54, 0xcf, 0x1e, 0xae, 0xac, 0xfc, 0xd3, 0x36, 0xd2, 0x1a, 0x54, 0x92, 0xd4, 0x18, 0xf9, 0x29, 0x39, 0xc3, 0x34, 0x99,
0xfe, 0x40, 0xff, 0xff, 0x74, 0xb5, 0xb2, 0xf3, 0xa7, 0x16, 0xb4, 0x77, 0x47, 0x24, 0x96, 0xb6, 0xca, 0x4f, 0xe7, 0x01, 0xac, 0xa0, 0x20, 0x20, 0x72, 0x3a, 0x1a, 0x1d, 0x92, 0xc0, 0xf6, 0x42,
0x4e, 0xf5, 0x0e, 0x60, 0x65, 0xaa, 0xb3, 0xe8, 0xd9, 0x0f, 0x97, 0xd9, 0x0d, 0xc7, 0xfe, 0xc6, 0x26, 0xb8, 0x1f, 0xf7, 0x60, 0xd9, 0xa6, 0x1d, 0xa7, 0x0e, 0xe5, 0x8b, 0xc7, 0x6b, 0xff, 0xa7,
0xb6, 0xe9, 0x54, 0x6e, 0xbb, 0x4e, 0xe5, 0xf6, 0x93, 0x28, 0x91, 0x13, 0xef, 0x09, 0x2c, 0x97, 0xfe, 0x7f, 0xbc, 0x56, 0xda, 0xfd, 0x73, 0x0b, 0x5a, 0xcf, 0x86, 0x38, 0x12, 0xa6, 0x4e, 0x75,
0x1b, 0x75, 0xde, 0x2d, 0x97, 0x76, 0x67, 0xb4, 0xef, 0xe6, 0xc2, 0x1c, 0xc0, 0xca, 0x54, 0xcf, 0x0e, 0x61, 0x75, 0xa2, 0xef, 0xe9, 0x98, 0x87, 0xcb, 0xec, 0x76, 0x68, 0x6f, 0x73, 0x47, 0xf7,
0xce, 0xd9, 0x33, 0xbb, 0x95, 0x37, 0x17, 0xe8, 0x0b, 0x68, 0x15, 0x9a, 0x74, 0x5e, 0xcf, 0x80, 0x51, 0x77, 0x6c, 0x1f, 0x75, 0xe7, 0x20, 0x8c, 0xc5, 0xd8, 0x39, 0x80, 0x95, 0x62, 0x87, 0xd0,
0x5c, 0xee, 0xdb, 0xcd, 0x05, 0xd8, 0x87, 0x4e, 0xa9, 0x6f, 0xe6, 0xf5, 0xad, 0x3f, 0x33, 0x9a, 0xb9, 0x63, 0xd3, 0xee, 0x8c, 0xbe, 0xe1, 0x5c, 0x98, 0x43, 0x58, 0x9d, 0x68, 0x16, 0x5a, 0x7b,
0x69, 0x73, 0x41, 0xf6, 0xa0, 0x55, 0x68, 0x5f, 0x39, 0x2b, 0x2e, 0xf7, 0xc8, 0xfa, 0xef, 0xcd, 0x66, 0xf7, 0x10, 0xe7, 0x02, 0x7d, 0x09, 0xcd, 0x5c, 0x77, 0xd0, 0xe9, 0x6a, 0x90, 0xe9, 0x86,
0x98, 0xb1, 0x2f, 0xff, 0x53, 0xe8, 0x94, 0x9a, 0x4d, 0xce, 0x90, 0x59, 0x8d, 0xae, 0xfe, 0xad, 0xe1, 0x5c, 0x80, 0x7d, 0x68, 0x17, 0x1a, 0x76, 0x4e, 0xcf, 0xf8, 0x33, 0xa3, 0x8b, 0x37, 0x17,
0x99, 0x73, 0x16, 0xe9, 0x00, 0x56, 0xa6, 0x5a, 0x4f, 0x2e, 0xb8, 0xb3, 0x3b, 0x52, 0x73, 0xdd, 0x64, 0x0f, 0x9a, 0xb9, 0xbe, 0x99, 0xb5, 0x62, 0xba, 0x39, 0xd7, 0xfb, 0x60, 0xc6, 0x88, 0xb9,
0xfa, 0x52, 0x6f, 0x76, 0xa1, 0xc8, 0x2b, 0x6c, 0xf6, 0xe5, 0x46, 0x53, 0xff, 0xf6, 0xec, 0x49, 0xf9, 0x5f, 0x40, 0xbb, 0xd0, 0xe5, 0xb2, 0x86, 0xcc, 0xea, 0xb0, 0xf5, 0xee, 0xcc, 0x1c, 0x33,
0x6b, 0xd5, 0x2e, 0x80, 0xad, 0xbd, 0x42, 0x1a, 0x67, 0x21, 0xba, 0x54, 0xf3, 0x65, 0x21, 0x9a, 0x48, 0x87, 0xb0, 0x3a, 0xd1, 0xf3, 0xb2, 0xc1, 0x9d, 0xdd, 0x0a, 0x9b, 0xeb, 0xd6, 0x57, 0x6a,
0x51, 0xa7, 0x7d, 0x01, 0x60, 0x4a, 0xa6, 0x90, 0xa5, 0xd2, 0xbb, 0xe9, 0x0e, 0xcc, 0x54, 0x9d, 0xb1, 0x73, 0x45, 0x5e, 0x6e, 0xb1, 0xa7, 0x3b, 0x5c, 0xbd, 0xbb, 0xb3, 0x07, 0x8d, 0x55, 0x07,
0xd6, 0xef, 0x5d, 0x9e, 0xb8, 0x04, 0x40, 0x38, 0x7f, 0x17, 0x80, 0xcf, 0x01, 0xf2, 0x52, 0xcc, 0xb0, 0x52, 0x6c, 0x6e, 0x59, 0xb0, 0x99, 0x2d, 0xaf, 0xc5, 0x3b, 0xa7, 0xd0, 0xe7, 0xca, 0x76,
0x01, 0x5c, 0x2a, 0xce, 0xe6, 0x06, 0x74, 0x17, 0xda, 0xc5, 0xc2, 0xcb, 0xb3, 0xbe, 0xce, 0x28, 0xce, 0xac, 0xf6, 0xd7, 0x5c, 0xa0, 0x67, 0x00, 0xa6, 0x16, 0x0c, 0x48, 0x94, 0x2e, 0xd9, 0x54,
0xc6, 0xe6, 0x42, 0x3c, 0x82, 0x76, 0xf1, 0x7d, 0x72, 0x10, 0x33, 0xde, 0xac, 0xfe, 0xf4, 0xbb, 0x0d, 0x9a, 0x2e, 0xd9, 0x8c, 0xba, 0xf1, 0x4b, 0x00, 0x5d, 0xc2, 0x05, 0x34, 0x11, 0xce, 0x6d,
0xe2, 0xfd, 0xdc, 0x1d, 0x8c, 0x9c, 0x55, 0x3a, 0x18, 0xff, 0x13, 0xc2, 0xd4, 0xbb, 0x56, 0xbe, 0x6b, 0xc6, 0x44, 0xdd, 0xd8, 0xeb, 0x4e, 0x0f, 0x4c, 0x01, 0x60, 0xc6, 0xae, 0x03, 0xf0, 0x05,
0xb7, 0x6f, 0x47, 0xf8, 0x19, 0xb4, 0x8b, 0x0f, 0x9a, 0xb3, 0x7f, 0xc6, 0x23, 0xd7, 0x2f, 0x3d, 0x40, 0x56, 0x1a, 0x5a, 0x80, 0xa9, 0x62, 0x71, 0x41, 0x0c, 0x5a, 0xf9, 0x42, 0xd0, 0x31, 0xbe,
0x6a, 0xea, 0xa2, 0x96, 0xca, 0x46, 0x77, 0x3f, 0x66, 0xd5, 0x92, 0x57, 0xa5, 0xaf, 0x72, 0x95, 0xce, 0x28, 0x0e, 0xe7, 0x42, 0x3c, 0x81, 0x56, 0xfe, 0xbe, 0xb4, 0x10, 0x33, 0xee, 0xd0, 0xde,
0xe7, 0x4e, 0xf4, 0xcc, 0xda, 0xef, 0xaa, 0x7d, 0x2c, 0x3e, 0xac, 0xce, 0x89, 0x19, 0x8f, 0xed, 0xe4, 0x3d, 0xe7, 0xfc, 0xd4, 0x6e, 0xd4, 0x8c, 0x55, 0xd8, 0xa8, 0xff, 0x11, 0xc2, 0xc4, 0x3d,
0x3c, 0x88, 0xbd, 0xf6, 0xdf, 0xdf, 0xdc, 0xa9, 0xfc, 0xe3, 0xcd, 0x9d, 0xca, 0xbf, 0xde, 0xdc, 0x5b, 0xcc, 0x23, 0xef, 0x47, 0xf8, 0x09, 0xb4, 0xf2, 0x17, 0xac, 0xb5, 0x7f, 0xc6, 0xa5, 0xdb,
0xa9, 0x9c, 0x34, 0xf4, 0xec, 0x27, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x2a, 0xfd, 0xa4, 0x2b, 0x5c, 0xb2, 0x32, 0x71, 0x14, 0xca, 0x58, 0x7b, 0x5e, 0x67, 0xd5, 0xb6, 0x8b, 0xd2, 0x69,
0x3e, 0x1a, 0x00, 0x00, 0xb1, 0xea, 0xb4, 0x87, 0x62, 0x66, 0x2d, 0xba, 0x68, 0x1d, 0xf3, 0x17, 0xbd, 0x75, 0x62, 0xc6,
0xe5, 0x3f, 0x0f, 0x62, 0xaf, 0xf5, 0xb7, 0x77, 0xf7, 0x4a, 0x7f, 0x7f, 0x77, 0xaf, 0xf4, 0xcf,
0x77, 0xf7, 0x4a, 0xa7, 0x75, 0x35, 0xfa, 0xd9, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x48, 0x4a,
0x6a, 0xab, 0x6c, 0x1b, 0x00, 0x00,
} }