Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
e3e10ddf
Commit
e3e10ddf
authored
Aug 13, 2016
by
Pengfei Ni
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Kubelet: implement GetPods for kuberuntime
parent
5645ca74
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
536 additions
and
184 deletions
+536
-184
api.pb.go
pkg/kubelet/api/v1alpha1/runtime/api.pb.go
+183
-172
api.proto
pkg/kubelet/api/v1alpha1/runtime/api.proto
+3
-0
helpers.go
pkg/kubelet/kuberuntime/helpers.go
+47
-2
kuberuntime_container.go
pkg/kubelet/kuberuntime/kuberuntime_container.go
+31
-0
kuberuntime_image_test.go
pkg/kubelet/kuberuntime/kuberuntime_image_test.go
+4
-4
kuberuntime_manager.go
pkg/kubelet/kuberuntime/kuberuntime_manager.go
+47
-1
kuberuntime_manager_test.go
pkg/kubelet/kuberuntime/kuberuntime_manager_test.go
+176
-4
kuberuntime_sandbox.go
pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
+30
-0
labels.go
pkg/kubelet/kuberuntime/labels.go
+15
-1
No files found.
pkg/kubelet/api/v1alpha1/runtime/api.pb.go
View file @
e3e10ddf
...
@@ -1660,6 +1660,9 @@ type Container struct {
...
@@ -1660,6 +1660,9 @@ type Container struct {
State
*
ContainerState
`protobuf:"varint,5,opt,name=state,enum=runtime.ContainerState" json:"state,omitempty"`
State
*
ContainerState
`protobuf:"varint,5,opt,name=state,enum=runtime.ContainerState" json:"state,omitempty"`
// Labels are key value pairs that may be used to scope and select individual resources.
// Labels are key value pairs that may be used to scope and select individual resources.
Labels
map
[
string
]
string
`protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
Labels
map
[
string
]
string
`protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
// Annotations is an unstructured key value map that may be set by external
// tools to store and retrieve arbitrary metadata.
Annotations
map
[
string
]
string
`protobuf:"bytes,7,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
XXX_unrecognized
[]
byte
`json:"-"`
XXX_unrecognized
[]
byte
`json:"-"`
}
}
...
@@ -1710,6 +1713,13 @@ func (m *Container) GetLabels() map[string]string {
...
@@ -1710,6 +1713,13 @@ func (m *Container) GetLabels() map[string]string {
return
nil
return
nil
}
}
func
(
m
*
Container
)
GetAnnotations
()
map
[
string
]
string
{
if
m
!=
nil
{
return
m
.
Annotations
}
return
nil
}
type
ListContainersResponse
struct
{
type
ListContainersResponse
struct
{
// List of containers
// List of containers
Containers
[]
*
Container
`protobuf:"bytes,1,rep,name=containers" json:"containers,omitempty"`
Containers
[]
*
Container
`protobuf:"bytes,1,rep,name=containers" json:"containers,omitempty"`
...
@@ -3012,176 +3022,177 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
...
@@ -3012,176 +3022,177 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
}
}
var
fileDescriptorApi
=
[]
byte
{
var
fileDescriptorApi
=
[]
byte
{
// 2735 bytes of a gzipped FileDescriptorProto
// 2747 bytes of a gzipped FileDescriptorProto
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x09
,
0x6e
,
0x88
,
0x02
,
0xff
,
0xcc
,
0x19
,
0x4d
,
0x73
,
0x1b
,
0x49
,
0x1f
,
0x8b
,
0x08
,
0x00
,
0x00
,
0x09
,
0x6e
,
0x88
,
0x02
,
0xff
,
0xcc
,
0x1a
,
0x4d
,
0x73
,
0xdb
,
0xc6
,
0x35
,
0xb2
,
0x2c
,
0x5b
,
0x7a
,
0xb2
,
0x64
,
0xb9
,
0xe3
,
0xd8
,
0x8a
,
0xb2
,
0x49
,
0x9c
,
0x61
,
0x17
,
0xd5
,
0x14
,
0x45
,
0x89
,
0x7c
,
0x14
,
0x29
,
0x6a
,
0x2d
,
0x4b
,
0x34
,
0x1d
,
0xdb
,
0x32
,
0x92
,
0xb4
,
0x12
,
0xef
,
0xae
,
0x2b
,
0x18
,
0x8a
,
0x25
,
0xd9
,
0xdd
,
0x6c
,
0xbc
,
0xb6
,
0x49
,
0x79
,
0xe3
,
0x38
,
0xb6
,
0x92
,
0x68
,
0x5c
,
0xb5
,
0xd3
,
0xd4
,
0x4e
,
0xe2
,
0x58
,
0x91
,
0x54
,
0x8f
,
0x62
,
0x59
,
0x56
,
0x66
,
0x94
,
0x84
,
0xcd
,
0x49
,
0x35
,
0xd1
,
0xb4
,
0xed
,
0x49
,
0xa4
,
0x99
,
0xd9
,
0x99
,
0x91
,
0x89
,
0x41
,
0xdb
,
0x8d
,
0x4f
,
0x18
,
0x98
,
0x58
,
0x49
,
0xb0
,
0x49
,
0x00
,
0x01
,
0x40
,
0xd5
,
0xea
,
0xb5
,
0xb8
,
0xf2
,
0x1b
,
0xa8
,
0xe2
,
0xc8
,
0x81
,
0x2a
,
0x4e
,
0x5c
,
0xa8
,
0xe2
,
0x4f
,
0x40
,
0x71
,
0xe2
,
0xbf
,
0xa1
,
0xe7
,
0xf6
,
0xd0
,
0x99
,
0x9e
,
0x7a
,
0xe9
,
0x4c
,
0xff
,
0x44
,
0x3b
,
0x3d
,
0xf5
,
0x77
,
0x77
,
0x70
,
0xe2
,
0xc2
,
0x85
,
0x82
,
0xd7
,
0x1f
,
0xd3
,
0xd3
,
0xf3
,
0x21
,
0x47
,
0xce
,
0x52
,
0x64
,
0xf4
,
0xd4
,
0x4b
,
0x2f
,
0x9d
,
0xf6
,
0xed
,
0x07
,
0x16
,
0x8b
,
0x0f
,
0xca
,
0x92
,
0x33
,
0x53
,
0xe7
,
0x6f
,
0xdd
,
0xef
,
0xbd
,
0x7e
,
0xfd
,
0xfa
,
0xbd
,
0xd7
,
0xef
,
0xa3
,
0x1b
,
0x6a
,
0x96
,
0xef
,
0x6c
,
0x86
,
0x7d
,
0xef
,
0xed
,
0xdb
,
0xb7
,
0xef
,
0xbd
,
0x7d
,
0x1f
,
0xbb
,
0x80
,
0x86
,
0x1d
,
0xb8
,
0x6b
,
0xf8
,
0x81
,
0x17
,
0x79
,
0x64
,
0x3e
,
0x18
,
0xb9
,
0x91
,
0x33
,
0xa4
,
0xc6
,
0x3a
,
0x34
,
0x9f
,
0xd1
,
0x41
,
0xe8
,
0xc7
,
0x3e
,
0x99
,
0x0d
,
0xc7
,
0x5e
,
0xec
,
0x8e
,
0xa8
,
0xb1
,
0x0a
,
0xed
,
0x67
,
0x34
,
0x20
,
0x74
,
0x3c
,
0xd7
,
0xa4
,
0xdf
,
0x8c
,
0x68
,
0x18
,
0x91
,
0x36
,
0xcc
,
0x9f
,
0x0a
,
0x48
,
0xbb
,
0x8c
,
0x5c
,
0xdf
,
0x33
,
0xe9
,
0xb7
,
0x63
,
0x1a
,
0xc5
,
0xa4
,
0x0b
,
0xb3
,
0xc7
,
0x02
,
0xd2
,
0xad
,
0xb4
,
0x56
,
0xba
,
0x59
,
0x33
,
0xe3
,
0xa9
,
0xf1
,
0x87
,
0x12
,
0x2c
,
0x2a
,
0xe2
,
0xd0
,
0xf7
,
0xdc
,
0xac
,
0x54
,
0x6e
,
0x36
,
0xcc
,
0x64
,
0x68
,
0xfc
,
0xb1
,
0x02
,
0xf3
,
0x8a
,
0x38
,
0x0a
,
0x7c
,
0x2f
,
0x90
,
0x4e
,
0xa6
,
0x26
,
0x37
,
0x60
,
0x41
,
0x6e
,
0xd2
,
0x73
,
0xad
,
0x21
,
0x6d
,
0xcf
,
0x70
,
0x74
,
0xa2
,
0x93
,
0xa9
,
0xc9
,
0x0d
,
0x98
,
0x93
,
0x8b
,
0x58
,
0x9e
,
0x3d
,
0xa2
,
0xdd
,
0x29
,
0x8e
,
0x6e
,
0x5d
,
0xc2
,
0x0e
,
0x10
,
0x44
,
0x7e
,
0x00
,
0x8b
,
0x31
,
0x49
,
0xcc
,
0xa4
,
0xcc
,
0xa9
,
0x9a
,
0x12
,
0x4a
,
0xd8
,
0x1e
,
0x82
,
0xc8
,
0x0f
,
0x61
,
0x3e
,
0x21
,
0x49
,
0x98
,
0x54
,
0x39
,
0x55
,
0x5b
,
0x82
,
0x2c
,
0x77
,
0x23
,
0x1b
,
0x70
,
0x31
,
0x26
,
0xc4
,
0x33
,
0x28
,
0xe2
,
0x59
,
0x4e
,
0xbc
,
0x24
,
0x51
,
0xe5
,
0x6a
,
0x64
,
0x0d
,
0x2e
,
0x26
,
0x84
,
0xb8
,
0x07
,
0x45
,
0x3c
,
0xcd
,
0x89
,
0x17
,
0x24
,
0x6a
,
0x5b
,
0xbe
,
0x23
,
0xe9
,
0x8d
,
0x2d
,
0xa8
,
0xed
,
0x1c
,
0x74
,
0x1f
,
0xfb
,
0x11
,
0x5b
,
0x8c
,
0x22
,
0x23
,
0x70
,
0x25
,
0xbd
,
0xb1
,
0x01
,
0x8d
,
0xad
,
0xbd
,
0xfe
,
0xe3
,
0x20
,
0x66
,
0x93
,
0x51
,
0xc4
,
0x86
,
0x34
,
0x60
,
0x6b
,
0x50
,
0xc4
,
0x32
,
0x13
,
0x51
,
0x4e
,
0x49
,
0x07
,
0xaa
,
0x21
,
0xb5
,
0x82
,
0x88
,
0x86
,
0x6c
,
0x0e
,
0x8a
,
0x58
,
0x65
,
0x22
,
0xca
,
0x21
,
0xe9
,
0x41
,
0x3d
,
0xa2
,
0x76
,
0x38
,
0xfe
,
0x09
,
0x0d
,
0x51
,
0x3c
,
0x86
,
0x52
,
0x73
,
0xe3
,
0x8f
,
0x25
,
0xa8
,
0x1f
,
0x7a
,
0x41
,
0xf4
,
0x38
,
0xa2
,
0x11
,
0x8a
,
0xc7
,
0x50
,
0x6a
,
0x6c
,
0xfc
,
0xa9
,
0x02
,
0xcd
,
0x7d
,
0x3f
,
0x8c
,
0x1f
,
0xc8
,
0xf2
,
0x7d
,
0xc7
,
0x3d
,
0x26
,
0x04
,
0x66
,
0xf9
,
0x31
,
0xc4
,
0x29
,
0xf9
,
0x98
,
0x7c
,
0x0c
,
0xd9
,
0x41
,
0xe0
,
0x7a
,
0x87
,
0x84
,
0xc0
,
0x34
,
0xdf
,
0x86
,
0xd8
,
0x25
,
0xff
,
0x26
,
0x9f
,
0x40
,
0x55
,
0xae
,
0xce
,
0xbe
,
0x37
,
0xe0
,
0xc7
,
0x6b
,
0x6e
,
0x2e
,
0x6d
,
0x48
,
0x61
,
0x36
,
0x0e
,
0x25
,
0x9d
,
0xab
,
0x73
,
0xe0
,
0x0f
,
0xf9
,
0xf6
,
0xda
,
0xeb
,
0x0b
,
0x6b
,
0x52
,
0x98
,
0xb5
,
0x7d
,
0x89
,
0xc2
,
0x54
,
0x24
,
0xe4
,
0x03
,
0x68
,
0xf6
,
0x3d
,
0x37
,
0xb2
,
0x1c
,
0x97
,
0x06
,
0x3d
,
0x1f
,
0x79
,
0x30
,
0x15
,
0x09
,
0xf9
,
0x10
,
0xda
,
0x03
,
0xdf
,
0x8b
,
0x6d
,
0xd7
,
0xa3
,
0xa1
,
0x15
,
0x20
,
0x6f
,
0xf3
,
0xd3
,
0x56
,
0xcc
,
0x86
,
0x82
,
0xb2
,
0x0d
,
0xc9
,
0x15
,
0xa8
,
0x9d
,
0x78
,
0x61
,
0x24
,
0x28
,
0xbe
,
0xdb
,
0x9a
,
0xd9
,
0x52
,
0x50
,
0xb6
,
0x20
,
0xb9
,
0x02
,
0x8d
,
0x23
,
0x3f
,
0x8a
,
0x05
,
0xc5
,
0x66
,
0x39
,
0x45
,
0x95
,
0x01
,
0x38
,
0x72
,
0x15
,
0xe6
,
0x39
,
0xd2
,
0xf1
,
0xdb
,
0x15
,
0x2e
,
0xc9
,
0x34
,
0xa7
,
0xa8
,
0x33
,
0x00
,
0x47
,
0x2e
,
0xc3
,
0x2c
,
0x47
,
0xba
,
0x41
,
0xb7
,
0xc6
,
0x25
,
0x99
,
0x1c
,
0x9b
,
0xee
,
0xf9
,
0xc6
,
0xef
,
0x4b
,
0x50
,
0x79
,
0xe4
,
0xe1
,
0xe6
,
0x85
,
0x92
,
0xa6
,
0xb7
,
0x61
,
0xc3
,
0x9d
,
0xc0
,
0xf8
,
0x43
,
0x05
,
0x6a
,
0x8f
,
0x7c
,
0x5c
,
0xbc
,
0x54
,
0xd2
,
0xec
,
0xd2
,
0xb6
,
0xa2
,
0x13
,
0x69
,
0x0e
,
0x6d
,
0x6b
,
0x04
,
0x26
,
0x5b
,
0x33
,
0x0a
,
0x61
,
0x0a
,
0xb1
,
0x35
,
0x76
,
0x7c
,
0x24
,
0xcd
,
0xa1
,
0x2d
,
0x8d
,
0xc0
,
0x74
,
0x69
,
0x46
,
0x21
,
0x4c
,
0x21
,
0x96
,
0x66
,
0x43
,
0xa2
,
0xb6
,
0x02
,
0x6a
,
0xd9
,
0x9e
,
0x3b
,
0x18
,
0x73
,
0xb1
,
0xaa
,
0xa6
,
0x9a
,
0x33
,
0x4b
,
0x48
,
0xd4
,
0x56
,
0x48
,
0x6d
,
0xc7
,
0xf7
,
0x86
,
0x27
,
0x5c
,
0xac
,
0xba
,
0xa9
,
0xc6
,
0xcc
,
0x92
,
0x86
,
0x74
,
0xe0
,
0xb8
,
0xa3
,
0xd7
,
0xbd
,
0x80
,
0x0e
,
0xac
,
0x17
,
0x74
,
0xc0
,
0xc5
,
0xab
,
0x9a
,
0x11
,
0x1d
,
0xba
,
0xde
,
0xf8
,
0xb5
,
0x15
,
0xd2
,
0xa1
,
0xfd
,
0x82
,
0x0e
,
0xb9
,
0x78
,
0x75
,
0xb3
,
0x4d
,
0x09
,
0x36
,
0x05
,
0xd4
,
0x78
,
0x09
,
0x8b
,
0xcc
,
0xf4
,
0xa1
,
0x6f
,
0xf5
,
0xa9
,
0xb4
,
0x0f
,
0x2d
,
0xc1
,
0xa6
,
0x80
,
0x1a
,
0x2f
,
0x61
,
0x9e
,
0x99
,
0x3e
,
0x0a
,
0xec
,
0x01
,
0x95
,
0xf6
,
0x41
,
0x3a
,
0x0a
,
0xdf
,
0xd4
,
0xa5
,
0xd1
,
0x2f
,
0xbd
,
0xe0
,
0x15
,
0x97
,
0xbb
,
0x6a
,
0xd6
,
0x19
,
0xec
,
0x47
,
0xe1
,
0x8b
,
0x7a
,
0x34
,
0xfe
,
0x95
,
0x1f
,
0xbe
,
0xe2
,
0x72
,
0xd7
,
0xcd
,
0x26
,
0x83
,
0xed
,
0x40
,
0x80
,
0xc8
,
0x65
,
0xa8
,
0x0a
,
0xb9
,
0x1c
,
0x9b
,
0x0b
,
0x5e
,
0x35
,
0xb9
,
0x16
,
0x0e
,
0x1d
,
0x09
,
0x10
,
0xb9
,
0x0c
,
0x75
,
0x21
,
0x97
,
0xeb
,
0x70
,
0xc1
,
0xeb
,
0x26
,
0xd7
,
0xc2
,
0xbe
,
0xeb
,
0x5b
,
0xa1
,
0x1c
,
0xbf
,
0xcf
,
0x25
,
0x96
,
0xa8
,
0x3d
,
0xbf
,
0x6f
,
0xfc
,
0xba
,
0x04
,
0x97
,
0xf6
,
0x28
,
0x94
,
0x1b
,
0x0c
,
0xb8
,
0xc4
,
0x12
,
0xb5
,
0x13
,
0x0c
,
0x8c
,
0xdf
,
0x54
,
0xe0
,
0xd2
,
0x2e
,
0xd9
,
0xe6
,
0x87
,
0x9e
,
0xdd
,
0xb5
,
0x5c
,
0xfb
,
0x85
,
0xf7
,
0x7a
,
0xdb
,
0x73
,
0x8f
,
0x9c
,
0x63
,
0x5b
,
0x7c
,
0xdf
,
0x77
,
0xfa
,
0xb6
,
0xe7
,
0xbc
,
0xf0
,
0x5f
,
0x6f
,
0xfa
,
0xde
,
0x81
,
0x7b
,
0x48
,
0xf2
,
0x3d
,
0x68
,
0xf4
,
0x8f
,
0x03
,
0x6f
,
0xe4
,
0xe3
,
0x49
,
0x03
,
0xea
,
0x46
,
0x52
,
0x57
,
0x0b
,
0xde
,
0x87
,
0xd6
,
0xe0
,
0x30
,
0xf4
,
0xc7
,
0x01
,
0xee
,
0x34
,
0xa4
,
0x5e
,
0x2c
,
0x75
,
0x35
,
0x27
,
0x02
,
0x78
,
0xc8
,
0x61
,
0x64
,
0x17
,
0x96
,
0xdc
,
0x58
,
0xd4
,
0x9e
,
0xc7
,
0x65
,
0x0d
,
0xf9
,
0xee
,
0x80
,
0xfb
,
0x1c
,
0x46
,
0xb6
,
0x61
,
0xc1
,
0x4b
,
0x44
,
0xb5
,
0x7c
,
0x2e
,
0x6b
,
0xc4
,
0x57
,
0x6f
,
0xf5
,
0xcd
,
0xb6
,
0x32
,
0x73
,
0xe6
,
0x30
,
0x66
,
0xcb
,
0x4d
,
0x03
,
0x42
,
0xe3
,
0x37
,
0xb3
,
0xd0
,
0xae
,
0x77
,
0x95
,
0x99
,
0x73
,
0x9b
,
0x31
,
0x3b
,
0x5e
,
0x16
,
0x10
,
0x19
,
0xbf
,
0x9d
,
0x86
,
0x4e
,
0xca
,
0x09
,
0x50
,
0x64
,
0xa3
,
0x8e
,
0x38
,
0x89
,
0x76
,
0x59
,
0xd4
,
0x9c
,
0x09
,
0x3c
,
0xf0
,
0x8e
,
0x41
,
0x80
,
0x32
,
0x1b
,
0xf5
,
0xc4
,
0x4e
,
0xb4
,
0xc3
,
0xa2
,
0xc6
,
0x4c
,
0xe0
,
0xa1
,
0x7f
,
0x68
,
0x7b
,
0xb6
,
0x13
,
0xd0
,
0x7e
,
0xe4
,
0x05
,
0x63
,
0x69
,
0x9c
,
0x05
,
0x04
,
0xee
,
0xc4
,
0x30
,
0xf2
,
0x39
,
0x6e
,
0x48
,
0x07
,
0xb1
,
0x1f
,
0x9e
,
0x48
,
0xe3
,
0xcc
,
0x21
,
0x70
,
0x2b
,
0x81
,
0x91
,
0x1f
,
0x23
,
0xa8
,
0xdb
,
0x6e
,
0xa8
,
0x44
,
0x9d
,
0xe5
,
0xa2
,
0x12
,
0x25
,
0xaa
,
0xba
,
0x11
,
0x26
,
0x20
,
0x43
,
0xd3
,
0xf1
,
0x22
,
0x25
,
0xea
,
0x34
,
0x17
,
0x95
,
0x28
,
0x51
,
0xd5
,
0x89
,
0x30
,
0x01
,
0xc9
,
0x99
,
0x14
,
0x8f
,
0xdc
,
0x81
,
0x06
,
0x73
,
0xb4
,
0xde
,
0x50
,
0xf8
,
0x79
,
0x88
,
0x76
,
0x2b
,
0xe3
,
0xa4
,
0x78
,
0xe4
,
0x0e
,
0xb4
,
0x98
,
0xa3
,
0x59
,
0x23
,
0xe1
,
0xe7
,
0x11
,
0xda
,
0xad
,
0x8a
,
0xd3
,
0xb2
,
0xe5
,
0xc4
,
0x91
,
0x93
,
0x4b
,
0x60
,
0x2e
,
0xf8
,
0xc9
,
0x24
,
0x24
,
0x9f
,
0xc3
,
0x1c
,
0x37
,
0x16
,
0x53
,
0x47
,
0x4e
,
0x0f
,
0x81
,
0x39
,
0x17
,
0xa4
,
0x83
,
0x88
,
0x7c
,
0x01
,
0x33
,
0xdc
,
0xa8
,
0x6a
,
0xd8
,
0x9e
,
0xe3
,
0x6b
,
0x3e
,
0xd0
,
0xd6
,
0xa4
,
0xcf
,
0xbb
,
0xb1
,
0xcf
,
0xe9
,
0x76
,
0xdd
,
0x51
,
0x77
,
0x86
,
0xcf
,
0xf9
,
0x50
,
0x9b
,
0x93
,
0xdd
,
0xef
,
0xda
,
0x2e
,
0xa7
,
0xdb
,
0xf6
,
0xe2
,
0x28
,
0x18
,
0x9b
,
0x72
,
0x11
,
0xd9
,
0x87
,
0xba
,
0xe5
,
0xba
,
0x5e
,
0x64
,
0x09
,
0x71
,
0xe7
,
0x39
,
0xf0
,
0xc4
,
0x94
,
0x93
,
0xc8
,
0x2e
,
0x34
,
0x6d
,
0xcf
,
0xf3
,
0x63
,
0x5b
,
0x88
,
0x3b
,
0xcb
,
0x79
,
0x8f
,
0xf5
,
0xc9
,
0x3c
,
0xb6
,
0x12
,
0x62
,
0xc1
,
0x48
,
0x5f
,
0x4e
,
0x7e
,
0x0c
,
0x15
,
0xee
,
0x68
,
0xac
,
0x4e
,
0xe6
,
0xb1
,
0x91
,
0x12
,
0x0b
,
0x46
,
0xfa
,
0x74
,
0xf2
,
0x13
,
0xa8
,
0x71
,
0x47
,
0xeb
,
0xed
,
0x2a
,
0x3f
,
0xf6
,
0x35
,
0xc5
,
0xa7
,
0xd0
,
0x03
,
0x4c
,
0x41
,
0xdc
,
0xb9
,
0x03
,
0x75
,
0x4d
,
0xd6
,
0xf9
,
0xb6
,
0xaf
,
0x29
,
0x3e
,
0xa5
,
0x1e
,
0x60
,
0x0a
,
0xe2
,
0xde
,
0x1d
,
0x68
,
0x6a
,
0xa2
,
0x34
,
0xd2
,
0x82
,
0xf2
,
0x2b
,
0x3a
,
0x96
,
0x56
,
0x61
,
0x43
,
0xb2
,
0x0c
,
0x95
,
0x53
,
0x6b
,
0x30
,
0x91
,
0x0e
,
0x54
,
0x5f
,
0xd1
,
0x13
,
0x69
,
0x15
,
0xf6
,
0x49
,
0x16
,
0xa1
,
0x76
,
0x6c
,
0x0f
,
0xc7
,
0x8a
,
0x2d
,
0x22
,
0x26
,
0x77
,
0x67
,
0x7e
,
0x5a
,
0xea
,
0xdc
,
0x83
,
0x56
,
0x56
,
0xa2
,
0xf3
,
0xac
,
0x89
,
0x45
,
0xc4
,
0xe0
,
0xee
,
0xd4
,
0xcf
,
0x2a
,
0xbd
,
0x7b
,
0xd0
,
0xc9
,
0x4b
,
0x74
,
0x9e
,
0xf9
,
0x37
,
0xf6
,
0x61
,
0x75
,
0x1b
,
0xef
,
0x4f
,
0x44
,
0x13
,
0xd9
,
0xe2
,
0x10
,
0xfc
,
0x43
,
0x98
,
0xeb
,
0xc6
,
0x2e
,
0x2c
,
0x6f
,
0xe2
,
0xf9
,
0x89
,
0x69
,
0x2a
,
0x5b
,
0x12
,
0x82
,
0x7f
,
0x04
,
0x33
,
0x03
,
0x73
,
0x31
,
0x39
,
0xa7
,
0xfa
,
0xe6
,
0xe5
,
0x89
,
0x4a
,
0x31
,
0x25
,
0xa1
,
0x71
,
0x1f
,
0xda
,
0x79
,
0x2e
,
0x26
,
0xe7
,
0xd4
,
0x5c
,
0xbf
,
0x3c
,
0x51
,
0x29
,
0xa6
,
0x24
,
0x34
,
0xee
,
0x43
,
0xb7
,
0xc8
,
0x6e
,
0x32
,
0x46
,
0xbf
,
0x0f
,
0x4d
,
0xdf
,
0xb3
,
0x7b
,
0xa1
,
0x00
,
0xf7
,
0xf0
,
0x0e
,
0x49
,
0x77
,
0x4d
,
0xc6
,
0xe8
,
0x0f
,
0xa0
,
0x1d
,
0xf8
,
0x8e
,
0x15
,
0x09
,
0xb0
,
0x85
,
0x67
,
0x48
,
0xba
,
0x7b
,
0xf7
,
0x15
,
0xed
,
0x9e
,
0x6d
,
0x7c
,
0x0e
,
0x97
,
0xba
,
0x91
,
0xe7
,
0xe7
,
0xa5
,
0x99
,
0x6e
,
0x79
,
0xa0
,
0x68
,
0x77
,
0x1c
,
0xe3
,
0x0b
,
0xb8
,
0xd4
,
0x8f
,
0xfd
,
0xa0
,
0x28
,
0xcd
,
0xd9
,
0xa6
,
0x77
,
0x1b
,
0x56
,
0xb2
,
0xcb
,
0xc5
,
0xf6
,
0xc6
,
0x17
,
0xb0
,
0x6a
,
0xd2
,
0xa1
,
0x77
,
0x4a
,
0xdf
,
0x96
,
0x61
,
0x29
,
0x3f
,
0x5d
,
0x2c
,
0x6f
,
0x7c
,
0x09
,
0xcb
,
0x26
,
0x1d
,
0xf9
,
0xc7
,
0xf4
,
0x6d
,
0x59
,
0x75
,
0x07
,
0xda
,
0x79
,
0x06
,
0x09
,
0xf3
,
0x04
,
0xda
,
0x45
,
0x63
,
0x8c
,
0xc2
,
0xf3
,
0x31
,
0xbf
,
0xf7
,
0xa0
,
0x5b
,
0x64
,
0x90
,
0x32
,
0x4f
,
0xa1
,
0x7d
,
0x34
,
0xc6
,
0x38
,
0x3a
,
0x1f
,
0xf3
,
0x5b
,
0xa5
,
0x33
,
0x90
,
0xf1
,
0x46
,
0xf0
,
0x21
,
0x4d
,
0x98
,
0xc1
,
0x30
,
0x2b
,
0x16
,
0xe1
,
0xc8
,
0x78
,
0x3a
,
0x03
,
0x19
,
0x6f
,
0x04
,
0x1f
,
0xd2
,
0x86
,
0x29
,
0x0c
,
0xb3
,
0x62
,
0x12
,
0x7e
,
0x19
,
0xcf
,
0x0e
,
0x35
,
0x75
,
0xdd
,
0x59
,
0x56
,
0xd1
,
0x03
,
0x16
,
0x66
,
0x15
,
0x39
,
0x25
,
0x9b
,
0x30
,
0x3f
,
0xa1
,
0xa1
,
0x8e
,
0x3b
,
0xcb
,
0x2a
,
0x7a
,
0xc0
,
0xc2
,
0xac
,
0x22
,
0x87
,
0x64
,
0x1d
,
0x66
,
0xcf
,
0x6d
,
0xb4
,
0x88
,
0x09
,
0x8d
,
0x87
,
0xb9
,
0x48
,
0x25
,
0x65
,
0xd8
,
0x04
,
0x50
,
0x11
,
0x25
,
0x94
,
0x1a
,
0x2d
,
0x12
,
0x42
,
0xe3
,
0x61
,
0x21
,
0x52
,
0x49
,
0x19
,
0xd6
,
0x01
,
0x54
,
0x44
,
0x89
,
0xa4
,
0xee
,
0x40
,
0xf2
,
0xfc
,
0x4c
,
0x8d
,
0xca
,
0xf8
,
0x4f
,
0x59
,
0x8f
,
0x38
,
0xda
,
0x61
,
0x6c
,
0x75
,
0x3b
,
0x90
,
0x22
,
0x3f
,
0x53
,
0xa3
,
0x32
,
0xfe
,
0x5b
,
0xd5
,
0x23
,
0x8e
,
0xb6
,
0x19
,
0x47
,
0x6d
,
0x18
,
0x5b
,
0x45
,
0xa0
,
0x19
,
0x2d
,
0x02
,
0x6d
,
0x40
,
0x25
,
0x44
,
0x6a
,
0xca
,
0xa3
,
0x4b
,
0x53
,
0xc6
,
0x51
,
0x11
,
0x68
,
0x4a
,
0x8b
,
0x40
,
0x6b
,
0x50
,
0x8b
,
0x90
,
0x9a
,
0xf2
,
0xe8
,
0xd2
,
0xd6
,
0x93
,
0x5b
,
0x72
,
0xfb
,
0x52
,
0x70
,
0xa3
,
0xa6
,
0x20
,
0x23
,
0x57
,
0x01
,
0xfa
,
0xdc
,
0xe9
,
0xec
,
0xe4
,
0x96
,
0xdc
,
0xbe
,
0x12
,
0xdc
,
0xa8
,
0x29
,
0xc8
,
0xc8
,
0x55
,
0x80
,
0x01
,
0x77
,
0x3a
,
0xc7
,
0x9e
,
0x25
,
0x52
,
0x55
,
0xd9
,
0xac
,
0x49
,
0xc8
,
0x56
,
0x44
,
0xee
,
0x26
,
0x2a
,
0xaa
,
0x70
,
0xc1
,
0xb2
,
0x45
,
0xaa
,
0xaa
,
0x9a
,
0x0d
,
0x09
,
0xd9
,
0x88
,
0xc9
,
0xdd
,
0x54
,
0x45
,
0x35
,
0x2e
,
0xf8
,
0xd7
,
0x0a
,
0xfc
,
0x38
,
0xa5
,
0xf2
,
0x44
,
0x89
,
0xea
,
0x3a
,
0xcf
,
0x9d
,
0x7d
,
0x9d
,
0xe5
,
0x3a
,
0x4a
,
0x89
,
0x1f
,
0x67
,
0x54
,
0x9e
,
0x2a
,
0x51
,
0x1d
,
0xe7
,
0x99
,
0xd3
,
0x8f
,
0xb3
,
0x9c
,
0x27
,
0x41
,
0xac
,
0x45
,
0xa4
,
0xf9
,
0x89
,
0x11
,
0x49
,
0xac
,
0x98
,
0x26
,
0x22
,
0x55
,
0x27
,
0x46
,
0x24
,
0x88
,
0xb5
,
0x88
,
0x34
,
0x3b
,
0x31
,
0x22
,
0x89
,
0x19
,
0x67
,
0x89
,
0x48
,
0xf5
,
0x89
,
0x11
,
0x49
,
0xc9
,
0xe3
,
0xcc
,
0x88
,
0xf4
,
0x2e
,
0x63
,
0xcb
,
0x23
,
0x68
,
0xe7
,
0x6f
,
0x85
,
0x8c
,
0x06
,
0x18
,
0xf2
,
0x38
,
0x35
,
0x22
,
0xbd
,
0xcb
,
0xd8
,
0xf2
,
0x08
,
0xba
,
0xc5
,
0x53
,
0x21
,
0xa3
,
0x01
,
0x06
,
0x5c
,
0x42
,
0x0e
,
0x39
,
0x23
,
0xb8
,
0xc8
,
0x25
,
0x92
,
0xd0
,
0xf8
,
0x77
,
0x49
,
0x77
,
0xa8
,
0x9f
,
0x97
,
0x88
,
0x43
,
0x4e
,
0x09
,
0x2e
,
0x72
,
0x8a
,
0x24
,
0x34
,
0xfe
,
0x53
,
0xd1
,
0x1d
,
0xea
,
0xe7
,
0x39
,
0x83
,
0x88
,
0x06
,
0x85
,
0x29
,
0x4c
,
0x38
,
0xd9
,
0x8c
,
0x72
,
0xb2
,
0xf3
,
0x3a
,
0x54
,
0x17
,
0xee
,
0x30
,
0xa6
,
0x61
,
0x69
,
0x0a
,
0x13
,
0x4e
,
0x36
,
0xa5
,
0x9c
,
0xec
,
0xbc
,
0x0e
,
0xd5
,
0x87
,
0x9a
,
0xdc
,
0x14
,
0x3d
,
0xac
,
0x1a
,
0x78
,
0x52
,
0x43
,
0xa7
,
0x62
,
0x36
,
0xf8
,
0xa8
,
0x40
,
0x46
,
0x36
,
0x37
,
0x85
,
0x85
,
0x55
,
0x03
,
0x4f
,
0x6a
,
0xe8
,
0x54
,
0xcc
,
0x06
,
0x1f
,
0x97
,
0xc8
,
0x28
,
0x21
,
0x86
,
0xb0
,
0x63
,
0x57
,
0x92
,
0x0b
,
0x2b
,
0x34
,
0x06
,
0x3a
,
0xac
,
0x73
,
0x1f
,
0x48
,
0x9e
,
0xc4
,
0x10
,
0x76
,
0xec
,
0x4b
,
0x72
,
0x61
,
0x85
,
0xd6
,
0x50
,
0x87
,
0xf5
,
0xee
,
0x03
,
0x29
,
0x12
,
0xe8
,
0x5c
,
0xea
,
0xfc
,
0x8a
,
0xdd
,
0x4e
,
0x56
,
0x80
,
0x15
,
0x04
,
0xea
,
0x23
,
0x2e
,
0xc6
,
0x19
,
0x9d
,
0x4b
,
0x9d
,
0x5f
,
0xb3
,
0xd3
,
0xc9
,
0x0a
,
0xb0
,
0x92
,
0x40
,
0x7d
,
0xc0
,
0xc5
,
0x38
,
0x45
,
0xba
,
0x14
,
0x72
,
0x9a
,
0x92
,
0xd0
,
0xf8
,
0x67
,
0x09
,
0x20
,
0x41
,
0xbe
,
0x8b
,
0x6b
,
0xf9
,
0x89
,
0x97
,
0x42
,
0x4e
,
0x53
,
0x12
,
0x1a
,
0xff
,
0xaa
,
0x00
,
0xa4
,
0xc8
,
0x77
,
0x71
,
0x2c
,
0x3f
,
0x55
,
0xba
,
0x24
,
0x22
,
0xd5
,
0x5f
,
0x2f
,
0x10
,
0xba
,
0xe8
,
0x7a
,
0x7c
,
0x0b
,
0x87
,
0x36
,
0xb6
,
0x61
,
0x87
,
0x44
,
0xa4
,
0xfa
,
0xeb
,
0x25
,
0x42
,
0x97
,
0x1d
,
0x8f
,
0xef
,
0xe0
,
0xd0
,
0xc6
,
0x26
,
0x2c
,
0x25
,
0xab
,
0x41
,
0xe9
,
0x8e
,
0xb7
,
0xa0
,
0xe2
,
0x44
,
0x74
,
0x28
,
0x6a
,
0xf3
,
0xfa
,
0xe6
,
0xc5
,
0xe5
,
0x35
,
0x28
,
0xdd
,
0xf1
,
0x16
,
0xd4
,
0xdc
,
0x98
,
0x8e
,
0x44
,
0x6d
,
0xde
,
0x5c
,
0xbf
,
0x58
,
0x02
,
0x61
,
0x4c
,
0x41
,
0x61
,
0xdc
,
0x80
,
0xda
,
0xde
,
0xd0
,
0x3a
,
0xa6
,
0x5d
,
0x9f
,
0xf6
,
0xd9
,
0x22
,
0x8c
,
0x29
,
0x28
,
0x8c
,
0x1b
,
0xd0
,
0xd8
,
0x19
,
0xd9
,
0x87
,
0xb4
,
0x1f
,
0xd0
,
0x01
,
0x5b
,
0x5e
,
0x0e
,
0x9b
,
0xc8
,
0xfd
,
0xc5
,
0xc4
,
0xd8
,
0x84
,
0xea
,
0x43
,
0x3a
,
0x7e
,
0xc6
,
0xf6
,
0x9d
,
0xcb
,
0x65
,
0x03
,
0xb9
,
0xbe
,
0x18
,
0x18
,
0xeb
,
0x50
,
0x7f
,
0x48
,
0x4f
,
0x9e
,
0xb1
,
0x75
,
0xcf
,
0x56
,
0x3e
,
0xe3
,
0xaf
,
0x25
,
0x58
,
0xe5
,
0x51
,
0x65
,
0x3b
,
0xae
,
0x85
,
0x51
,
0x38
,
0x6f
,
0x14
,
0x2a
,
0x9f
,
0xf1
,
0xb7
,
0x0a
,
0x2c
,
0xf3
,
0xa8
,
0xb2
,
0x99
,
0xd4
,
0xc2
,
0x28
,
0x9c
,
0x3f
,
0x0e
,
0x60
,
0x28
,
0xe5
,
0xaa
,
0xf4
,
0x47
,
0x3d
,
0x9f
,
0x06
,
0x8e
,
0x27
,
0xcc
,
0xc4
,
0x54
,
0xe9
,
0x8f
,
0x31
,
0x94
,
0x72
,
0x55
,
0x06
,
0x63
,
0x2b
,
0xa0
,
0xa1
,
0xeb
,
0x0b
,
0x33
,
0x31
,
0x55
,
0x06
,
0xe3
,
0x0e
,
0x39
,
0x80
,
0xd5
,
0xcb
,
0x0c
,
0xfd
,
0xcd
,
0x08
,
0xaf
,
0x2a
,
0x67
,
0x5a
,
0x36
,
0xab
,
0x08
,
0x7d
,
0x0e
,
0x60
,
0xf5
,
0x32
,
0x43
,
0x7f
,
0x3b
,
0xc6
,
0xa3
,
0xca
,
0x99
,
0x56
,
0xcd
,
0x3a
,
0x02
,
0xf8
,
0x39
,
0x9b
,
0xc7
,
0x6b
,
0xc3
,
0x13
,
0x2c
,
0x27
,
0x43
,
0x6e
,
0x3b
,
0xb1
,
0xb6
,
0xcb
,
0x01
,
0x7e
,
0xc1
,
0xc6
,
0xc9
,
0xdc
,
0xe8
,
0x08
,
0xcb
,
0xc9
,
0x88
,
0xdb
,
0x4e
,
0xcc
,
0xed
,
0x73
,
0x00
,
0xe8
,
0x3b
,
0x97
,
0x86
,
0x98
,
0xd5
,
0x82
,
0x71
,
0x6f
,
0xe0
,
0x0c
,
0x1d
,
0x2c
,
0x60
,
0xdd
,
0xde
,
0xfa
,
0xce
,
0xa5
,
0x11
,
0x66
,
0xb5
,
0xf0
,
0xc4
,
0x1a
,
0xba
,
0x23
,
0x17
,
0x0b
,
0x58
,
0xcf
,
0x7a
,
0x8b
,
0x71
,
0x44
,
0x43
,
0x69
,
0x30
,
0x22
,
0x90
,
0xfb
,
0x0c
,
0xb7
,
0xe7
,
0x7e
,
0xc9
,
0x30
,
0xc4
,
0x71
,
0x12
,
0xd3
,
0x48
,
0x1a
,
0x8c
,
0x08
,
0xe4
,
0x2e
,
0xc3
,
0xed
,
0x78
,
0x5f
,
0x31
,
0x0c
,
0x31
,
0x80
,
0x86
,
0xe7
,
0x0d
,
0x7b
,
0x61
,
0xdf
,
0x0b
,
0xb0
,
0x11
,
0xb2
,
0x5f
,
0xf2
,
0xb0
,
0x5a
,
0x36
,
0xa0
,
0xe5
,
0xfb
,
0x23
,
0x2b
,
0x1a
,
0xf8
,
0x21
,
0x36
,
0x42
,
0xce
,
0x4b
,
0x1e
,
0x56
,
0xab
,
0x66
,
0xeb
,
0x08
,
0xec
,
0x32
,
0xd8
,
0x96
,
0xfd
,
0xd2
,
0xb0
,
0xa0
,
0xd1
,
0xdd
,
0xe5
,
0xc7
,
0x91
,
0xe5
,
0x13
,
0x81
,
0x7d
,
0x06
,
0xdb
,
0x70
,
0x5e
,
0x1a
,
0x36
,
0xb4
,
0xfa
,
0xdb
,
0x7c
,
0x3b
,
0xb2
,
0xbc
,
0x35
,
0x7a
,
0xd4
,
0x28
,
0x94
,
0x1e
,
0x8a
,
0x1e
,
0xc5
,
0xc6
,
0x0c
,
0x16
,
0x78
,
0x03
,
0xe5
,
0x65
,
0x46
,
0x8f
,
0x1a
,
0x47
,
0xd2
,
0x43
,
0xd1
,
0xa3
,
0xd8
,
0x37
,
0x83
,
0x85
,
0xfe
,
0x50
,
0x79
,
0x19
,
0x6c
,
0xcc
,
0x60
,
0xd1
,
0xd8
,
0xa7
,
0xb2
,
0xb2
,
0xe4
,
0x63
,
0xa6
,
0xb0
,
0x01
,
0x3d
,
0xc5
,
0x62
,
0xfb
,
0x66
,
0xb0
,
0xf8
,
0x24
,
0xa0
,
0xb2
,
0xb2
,
0xe4
,
0xdf
,
0x4c
,
0x61
,
0x43
,
0x7a
,
0x8c
,
0xc5
,
0x5e
,
0x74
,
0x5a
,
0x62
,
0x62
,
0xd8
,
0x00
,
0xdb
,
0x96
,
0x6f
,
0xbd
,
0x70
,
0x06
,
0x4e
,
0x34
,
0x46
,
0xbc
,
0xe8
,
0xb4
,
0xc4
,
0xc0
,
0x70
,
0x00
,
0x36
,
0xed
,
0xc0
,
0x7e
,
0xe1
,
0x0e
,
0xdd
,
0xf8
,
0x04
,
0x03
,
0xb6
,
0x2c
,
0xdb
,
0xee
,
0xf5
,
0x63
,
0x88
,
0x43
,
0xe3
,
0x3e
,
0x6b
,
0x11
,
0xe1
,
0xdb
,
0x1a
,
0x0d
,
0xd8
,
0xb1
,
0x1d
,
0xc7
,
0x1a
,
0x24
,
0x10
,
0x97
,
0x26
,
0x7d
,
0xd6
,
0x3c
,
0xc2
,
0x37
,
0x35
,
0x98
,
0x7c
,
0x08
,
0x4b
,
0x76
,
0xe0
,
0xf9
,
0x69
,
0x5a
,
0xd1
,
0x78
,
0xb5
,
0x18
,
0x42
,
0x27
,
0x36
,
0x30
,
0xf9
,
0x08
,
0x16
,
0x9c
,
0xd0
,
0x0f
,
0xb2
,
0xb4
,
0xa2
,
0xf1
,
0xea
,
0x30
,
0x84
,
0x4e
,
0x6c
,
0xfe
,
0x55
,
0x82
,
0xe5
,
0xb4
,
0x59
,
0x64
,
0xed
,
0x7c
,
0x0f
,
0x6a
,
0x41
,
0x6c
,
0x20
,
0x79
,
0xef
,
0xfc
,
0xbb
,
0x02
,
0x8b
,
0x59
,
0xb3
,
0xc8
,
0xda
,
0xf9
,
0x1e
,
0x34
,
0xc2
,
0xc4
,
0x40
,
0xf2
,
0xdc
,
0xd6
,
0xd2
,
0xe9
,
0x21
,
0x6f
,
0x48
,
0x33
,
0x59
,
0x82
,
0xfe
,
0xbf
,
0x90
,
0x11
,
0xa0
,
0x94
,
0x72
,
0xad
,
0x64
,
0xd3
,
0x43
,
0xd1
,
0x90
,
0x66
,
0x3a
,
0x05
,
0xfd
,
0x7f
,
0x2e
,
0x27
,
0x40
,
0x25
,
0xe3
,
0xbc
,
0xe4
,
0x6c
,
0x66
,
0x8a
,
0x90
,
0x7c
,
0x91
,
0x34
,
0x39
,
0x71
,
0x82
,
0x2f
,
0xf3
,
0xb5
,
0x2b
,
0x78
,
0xe9
,
0xde
,
0xcc
,
0x0c
,
0x21
,
0xf9
,
0x32
,
0x6d
,
0x72
,
0x92
,
0x04
,
0x5f
,
0xe5
,
0x73
,
0x97
,
0x6a
,
0x6d
,
0x4a
,
0xf5
,
0xaa
,
0xf9
,
0x89
,
0x6b
,
0xed
,
0xef
,
0x4b
,
0x53
,
0x64
,
0x2b
,
0x73
,
0xbe
,
0xd4
,
0xdc
,
0x8c
,
0xea
,
0x55
,
0xf3
,
0x93
,
0xd4
,
0xda
,
0x3f
,
0x90
,
0xa6
,
0xc8
,
0x57
,
0xe6
,
0x7c
,
0xe6
,
0x29
,
0x62
,
0x84
,
0x79
,
0x8c
,
0xaf
,
0xa1
,
0xa6
,
0x40
,
0xcc
,
0x8d
,
0x47
,
0x4e
,
0xec
,
0x7b
,
0xce
,
0x53
,
0xc4
,
0x08
,
0xf3
,
0x18
,
0xdf
,
0x40
,
0x43
,
0x81
,
0x98
,
0x1b
,
0x8f
,
0xdd
,
0xc4
,
0xf7
,
0x6c
,
0xc8
,
0x20
,
0xc7
,
0x32
,
0xcc
,
0x22
,
0x04
,
0x87
,
0xac
,
0xfd
,
0x42
,
0x5d
,
0x3b
,
0x6c
,
0x17
,
0xd8
,
0x27
,
0x83
,
0x1c
,
0xca
,
0x30
,
0x8b
,
0x10
,
0xfc
,
0x64
,
0xed
,
0x17
,
0xea
,
0xda
,
0x65
,
0xab
,
0x6b
,
0xd0
,
0x43
,
0x08
,
0x93
,
0xac
,
0x8c
,
0xd8
,
0x66
,
0x02
,
0x7e
,
0x80
,
0x50
,
0xe3
,
0xef
,
0x15
,
0xd8
,
0x43
,
0x0b
,
0x21
,
0x4c
,
0xb2
,
0x2a
,
0x62
,
0xdb
,
0x29
,
0xf8
,
0x01
,
0x42
,
0x8d
,
0x7f
,
0xd4
,
0x58
,
0xcc
,
0xea
,
0xb3
,
0x28
,
0x90
,
0xdf
,
0x8c
,
0x6f
,
0xd7
,
0x4c
,
0x46
,
0x54
,
0x75
,
0x01
,
0xe5
,
0x60
,
0x3e
,
0xaf
,
0xcf
,
0xb2
,
0x40
,
0x7e
,
0x33
,
0x39
,
0x5d
,
0x53
,
0x39
,
0x51
,
0xd5
,
0x01
,
0x94
,
0x8d
,
0x63
,
0x75
,
0x50
,
0xdf
,
0x1b
,
0x0e
,
0xf1
,
0xa6
,
0xf2
,
0x2d
,
0xb1
,
0x0e
,
0x92
,
0x53
,
0xc6
,
0x27
,
0x8e
,
0xd5
,
0x41
,
0x03
,
0x7f
,
0x34
,
0xc2
,
0x93
,
0xca
,
0x97
,
0xc4
,
0x3a
,
0x48
,
0x0e
,
0x19
,
0xd7
,
0x0a
,
0x8e
,
0x43
,
0x1e
,
0xc2
,
0x91
,
0x2f
,
0x1b
,
0x93
,
0xeb
,
0x50
,
0x67
,
0xe9
,
0x1d
,
0xdb
,
0x5f
,
0x3b
,
0x3c
,
0x8c
,
0x78
,
0x08
,
0x47
,
0xbe
,
0xec
,
0x9b
,
0x5c
,
0x87
,
0x26
,
0x4b
,
0xef
,
0xd8
,
0x07
,
0xd6
,
0xcb
,
0xc8
,
0x16
,
0x16
,
0x24
,
0x08
,
0x3b
,
0x19
,
0x6c
,
0x54
,
0x67
,
0xa9
,
0x7b
,
0x1a
,
0x3e
,
0xb0
,
0x5e
,
0x46
,
0xb6
,
0xb0
,
0x20
,
0x41
,
0xd8
,
0xc9
,
0x60
,
0xa3
,
0x3a
,
0x4d
,
0xbd
,
0xe3
,
0x77
,
0x14
,
0x49
,
0x3b
,
0x1d
,
0xdf
,
0x6a
,
0x93
,
0xa3
,
0x51
,
0x93
,
0x73
,
0x43
,
0xd6
,
0xec
,
0xc6
,
0xa4
,
0xa3
,
0x48
,
0xdb
,
0xe9
,
0xe4
,
0x54
,
0x9b
,
0x1c
,
0x8d
,
0x9a
,
0x9c
,
0x19
,
0xb1
,
0x66
,
0x37
,
0x89
,
0xbe
,
0xa9
,
0x08
,
0x79
,
0x0f
,
0x6c
,
0x4a
,
0x2c
,
0xf9
,
0x4c
,
0xc5
,
0x3a
,
0x91
,
0xcc
,
0xdf
,
0x49
,
0xf4
,
0x6d
,
0x45
,
0xc8
,
0x7b
,
0x60
,
0x53
,
0x62
,
0xc9
,
0xe7
,
0x2a
,
0xd6
,
0x89
,
0x64
,
0xfe
,
0x4f
,
0xac
,
0x9c
,
0xd6
,
0x42
,
0x61
,
0x3d
,
0xf0
,
0x30
,
0x5d
,
0x0f
,
0xd4
,
0x38
,
0x8b
,
0x5b
,
0x13
,
0x41
,
0x6a
,
0xe5
,
0xac
,
0x16
,
0x4a
,
0xeb
,
0x81
,
0x87
,
0xd9
,
0x7a
,
0xa0
,
0xc1
,
0x59
,
0xdc
,
0x9a
,
0x59
,
0x9c
,
0xdd
,
0xa0
,
0x5c
,
0x03
,
0xf0
,
0x03
,
0xe7
,
0xd4
,
0x19
,
0xd0
,
0x63
,
0x6a
,
0xb7
,
0x81
,
0xc8
,
0xe2
,
0xf4
,
0x06
,
0xe5
,
0x1a
,
0x40
,
0x10
,
0xba
,
0xc7
,
0xee
,
0x90
,
0x1e
,
0x52
,
0xa7
,
0x0b
,
0xb7
,
0xaa
,
0x1a
,
0x84
,
0x3f
,
0x86
,
0xc8
,
0x76
,
0xba
,
0x17
,
0x78
,
0x5e
,
0x74
,
0x14
,
0xb6
,
0xeb
,
0xbc
,
0x55
,
0xd5
,
0x20
,
0xfc
,
0x32
,
0x44
,
0xb6
,
0xd3
,
0x56
,
0xe8
,
0xfb
,
0xf1
,
0x41
,
0xd4
,
0x6d
,
0xa2
,
0x85
,
0x8e
,
0xc1
,
0x26
,
0x87
,
0xb2
,
0x8e
,
0x97
,
0xf5
,
0x82
,
0xbc
,
0x47
,
0x5f
,
0x10
,
0xa5
,
0x8a
,
0x16
,
0x3a
,
0x01
,
0x9b
,
0x1c
,
0xca
,
0x3a
,
0x5e
,
0xd6
,
0x0b
,
0xf2
,
0x1e
,
0x7d
,
0x4e
,
0x94
,
0x27
,
0xce
,
0x79
,
0x8b
,
0xbe
,
0xcc
,
0x32
,
0x85
,
0xed
,
0xb8
,
0xed
,
0x06
,
0x5f
,
0x29
,
0x26
,
0x2c
,
0x9e
,
0x38
,
0xe6
,
0x2d
,
0xfa
,
0x22
,
0xcb
,
0x14
,
0x8e
,
0xeb
,
0x75
,
0x5b
,
0x7c
,
0xa6
,
0x18
,
0xb0
,
0x10
,
0xf1
,
0x41
,
0xcf
,
0x73
,
0xfb
,
0xb4
,
0xdd
,
0xe4
,
0xa8
,
0x1a
,
0x87
,
0x3c
,
0x46
,
0x00
,
0x73
,
0x40
,
0xc4
,
0x3f
,
0x2c
,
0xdf
,
0x1b
,
0xd0
,
0x6e
,
0x9b
,
0xa3
,
0x1a
,
0x1c
,
0xf2
,
0x18
,
0x01
,
0xcc
,
0xa7
,
0x28
,
0x1a
,
0xb7
,
0x17
,
0x39
,
0x9c
,
0x0d
,
0xb1
,
0x91
,
0x94
,
0xc5
,
0x57
,
0x8b
,
0x5b
,
0xff
,
0x9d
,
0xe2
,
0xf8
,
0xa4
,
0x3b
,
0xcf
,
0xe1
,
0xec
,
0x13
,
0x1b
,
0x49
,
0x59
,
0x7c
,
0x75
,
0xb8
,
0xf5
,
0xea
,
0x84
,
0xdb
,
0xf5
,
0x9d
,
0x69
,
0xa5
,
0xfe
,
0x54
,
0x82
,
0x15
,
0xd1
,
0xfd
,
0x68
,
0x37
,
0xff
,
0xaf
,
0x4e
,
0x38
,
0x5d
,
0xdf
,
0x9b
,
0x56
,
0xea
,
0xcf
,
0x15
,
0x58
,
0x12
,
0xdd
,
0x8f
,
0x76
,
0xf2
,
0x1c
,
0x4d
,
0x00
,
0xb9
,
0xad
,
0x1a
,
0xae
,
0x6c
,
0xc5
,
0x9e
,
0x3d
,
0xac
,
0xa4
,
0x23
,
0xf7
,
0xa1
,
0xcf
,
0xd1
,
0x04
,
0x90
,
0xdb
,
0xaa
,
0xe1
,
0xca
,
0x57
,
0xec
,
0xf9
,
0xcd
,
0x4a
,
0x3a
,
0x72
,
0x1f
,
0x19
,
0xf3
,
0x94
,
0x2b
,
0xcb
,
0x6f
,
0x6a
,
0xd5
,
0x1a
,
0xa1
,
0x3e
,
0x35
,
0x3e
,
0x8b
,
0xfb
,
0x3f
,
0xda
,
0x09
,
0x4f
,
0x39
,
0xb3
,
0xfa
,
0xa6
,
0x56
,
0xad
,
0x15
,
0xe9
,
0x43
,
0xe3
,
0xf3
,
0xa4
,
0xff
,
0x3d
,
0x5a
,
0x89
,
0x9c
,
0x78
,
0x03
,
0x23
,
0x94
,
0x7a
,
0xad
,
0x51
,
0x22
,
0xd7
,
0x15
,
0x0c
,
0xdb
,
0xd3
,
0xa3
,
0x95
,
0xc8
,
0x89
,
0x37
,
0x30
,
0x42
,
0xa9
,
0xdb
,
0x1a
,
0x25
,
0x72
,
0x53
,
0xc1
,
0xb0
,
0x96
,
0xbb
,
0xac
,
0x5b
,
0xb3
,
0x82
,
0x28
,
0x77
,
0xe0
,
0x29
,
0xd6
,
0xf2
,
0x56
,
0x2d
,
0xbd
,
0x56
,
0x6d
,
0xb9
,
0xcb
,
0xba
,
0x35
,
0x3b
,
0x8c
,
0x0b
,
0x1b
,
0x3e
,
0xc3
,
0x5c
,
0xde
,
0xaa
,
0x65
,
0xe7
,
0x76
,
0x53
,
0x5d
,
0x58
,
0x66
,
0x4d
,
0xdc
,
0x5b
,
0x30
,
0x65
,
0x71
,
0x80
,
0x1d
,
0xdb
,
0x1b
,
0x45
,
0xca
,
0x6e
,
0xaa
,
0x0f
,
0x8b
,
0xac
,
0x89
,
0x7b
,
0x0b
,
0xa6
,
0x2c
,
0x0e
,
0xb0
,
0x6d
,
0xfb
,
0xe3
,
0x32
,
0x30
,
0xc5
,
0x53
,
0x63
,
0x55
,
0x34
,
0x96
,
0xf9
,
0xdd
,
0x3e
,
0x85
,
0x15
,
0xd1
,
0xd7
,
0xbd
,
0x58
,
0x06
,
0xa6
,
0x64
,
0x68
,
0x2c
,
0x8b
,
0xc6
,
0xb2
,
0xb8
,
0xda
,
0x67
,
0xb0
,
0x24
,
0xfa
,
0xba
,
0xcd
,
0x21
,
0x2e
,
0xc7
,
0x5d
,
0x65
,
0x9e
,
0xef
,
0xef
,
0x66
,
0xb4
,
0x20
,
0x77
,
0x8e
,
0x6a
,
0xf5
,
0xb7
,
0xd9
,
0xc4
,
0xe5
,
0xa4
,
0xab
,
0x2c
,
0xf2
,
0xfd
,
0xfd
,
0x94
,
0x16
,
0xe4
,
0xce
,
0x51
,
0xad
,
0xe3
,
0x74
,
0x9d
,
0xb5
,
0x9a
,
0x77
,
0x82
,
0x54
,
0x99
,
0x95
,
0x77
,
0xad
,
0xd9
,
0x02
,
0xd7
,
0x32
,
0x7e
,
0x92
,
0xad
,
0xb3
,
0x96
,
0x8b
,
0x4e
,
0x90
,
0x29
,
0xb3
,
0x8a
,
0xae
,
0x35
,
0x5d
,
0xe2
,
0x5a
,
0x73
,
0x25
,
0xad
,
0xa8
,
0xba
,
0x3e
,
0xcc
,
0x73
,
0xff
,
0x3f
,
0x56
,
0xb4
,
0x7b
,
0xa2
,
0xa2
,
0x55
,
0x66
,
0xa1
,
0xa4
,
0x15
,
0x55
,
0xd7
,
0x47
,
0x45
,
0xee
,
0xff
,
0xc7
,
0x8a
,
0x76
,
0x47
,
0x54
,
0xb4
,
0x5b
,
0xab
,
0xa6
,
0xf9
,
0x76
,
0xa6
,
0xa2
,
0x6d
,
0x4f
,
0x12
,
0x53
,
0x15
,
0xb4
,
0xbf
,
0x9d
,
0x81
,
0x6a
,
0x69
,
0xd5
,
0x34
,
0xdf
,
0xce
,
0x55
,
0xb4
,
0xdd
,
0x49
,
0x62
,
0xaa
,
0x82
,
0xf6
,
0x77
,
0x55
,
0x9a
,
0xc2
,
0x4d
,
0x55
,
0xcf
,
0xaa
,
0xe4
,
0x52
,
0x7e
,
0x53
,
0x72
,
0xc1
,
0xfa
,
0x8a
,
0x0f
,
0x7a
,
0x68
,
0x28
,
0xdc
,
0x99
,
0xea
,
0x59
,
0x95
,
0x5c
,
0xaa
,
0x6f
,
0x4a
,
0x2e
,
0x58
,
0x5f
,
0xf1
,
0x0f
,
0x01
,
0x3d
,
0x92
,
0xda
,
0xad
,
0x72
,
0x80
,
0x49
,
0x8f
,
0x12
,
0x73
,
0x55
,
0xa6
,
0x32
,
0xd7
,
0x4f
,
0x2b
,
0xa4
,
0x07
,
0x52
,
0xbb
,
0x75
,
0x0e
,
0x30
,
0xe9
,
0x41
,
0x6a
,
0xae
,
0xda
,
0x99
,
0xcc
,
0xf5
,
0x32
,
0xaf
,
0x55
,
0xd7
,
0xf2
,
0xf4
,
0xff
,
0xeb
,
0xaa
,
0x77
,
0x5f
,
0x54
,
0xbd
,
0xba
,
0x96
,
0xe5
,
0xd3
,
0xdc
,
0x6d
,
0xd5
,
0xb5
,
0x22
,
0x7d
,
0x69
,
0x12
,
0xd8
,
0x2e
,
0xbb
,
0xa6
,
0x7a
,
0xbf
,
0x64
,
0x0d
,
0xc7
,
0xb6
,
0x5e
,
0x39
,
0x73
,
0x5c
,
0xfa
,
0x92
,
0xbc
,
0x40
,
0xa6
,
0x46
,
0xc5
,
0xae
,
0x4b
,
0xf2
,
0xf7
,
0xb6
,
0x1b
,
0xdc
,
0x15
,
0xc5
,
0xb7
,
0x6e
,
0x6c
,
0x19
,
0x68
,
0xd6
,
0xb1
,
0x44
,
0x55
,
0xea
,
0x64
,
0xc9
,
0x4b
,
0xc7
,
0x14
,
0xd7
,
0xe5
,
0x1f
,
0xb3
,
0xda
,
0x9d
,
0x38
,
0xc7
,
0x93
,
0xc0
,
0x50
,
0x59
,
0x81
,
0x93
,
0xe2
,
0xd6
,
0x4c
,
0x8d
,
0x8a
,
0x9d
,
0xda
,
0x8c
,
0x82
,
0xd3
,
0x0b
,
0x97
,
0x39
,
0xef
,
0xc4
,
0x1b
,
0x5a
,
0x0f
,
0x9e
,
0x89
,
0x30
,
0xf2
,
0x08
,
0xb4
,
0xa8
,
0x5e
,
0x6b
,
0x12
,
0x33
,
0x9c
,
0xda
,
0x7f
,
0x4e
,
0x6b
,
0x47
,
0xf3
,
0x1c
,
0x37
,
0x13
,
0xe7
,
0x3c
,
0x9a
,
0x6f
,
0xe8
,
0x82
,
0x68
,
0xac
,
0x0e
,
0x8e
,
0x1c
,
0xd7
,
0x09
,
0x4f
,
0x04
,
0x7e
,
0x8e
,
0xe3
,
0x21
,
0x06
,
0x6d
,
0x80
,
0x78
,
0x42
,
0xc4
,
0x00
,
0x28
,
0xd0
,
0xa2
,
0x88
,
0x6e
,
0x48
,
0x08
,
0xa2
,
0xb1
,
0x48
,
0x39
,
0xf1
,
0xa7
,
0x71
,
0xfa
,
0x1a
,
0x6b
,
0xe5
,
0xbe
,
0x67
,
0x53
,
0xcc
,
0xfc
,
0xfc
,
0x69
,
0x9c
,
0x01
,
0x70
,
0x3d
,
0x37
,
0x3a
,
0x12
,
0xf8
,
0x19
,
0x8e
,
0x87
,
0x04
,
0xb4
,
0xc1
,
0x6f
,
0xe8
,
0xe9
,
0x6b
,
0xb6
,
0x71
,
0x9e
,
0xb8
,
0x55
,
0xf5
,
0x5c
,
0x6e
,
0x55
,
0xcb
,
0xb8
,
0xd5
,
0x0a
,
0xcc
,
0xa1
,
0xbc
,
0x2c
,
0xd9
,
0x07
,
0xbe
,
0x43
,
0xd1
,
0x21
,
0xf8
,
0x0d
,
0x3d
,
0x03
,
0x6c
,
0xe2
,
0x38
,
0xf5
,
0xee
,
0xa1
,
0xe7
,
0xf2
,
0x1c
,
0x5d
,
0x33
,
0xe5
,
0x4c
,
0x2b
,
0x25
,
0xea
,
0x93
,
0x4a
,
0x89
,
0x33
,
0x9e
,
0xfa
,
0xb9
,
0xbc
,
0xbb
,
0x91
,
0xf3
,
0xee
,
0x25
,
0x98
,
0x41
,
0x79
,
0x23
,
0xdf
,
0xe3
,
0xa5
,
0x42
,
0x16
,
0x32
,
0xa5
,
0xc4
,
0xc2
,
0xa4
,
0x52
,
0x62
,
0x9a
,
0x97
,
0x05
,
0xad
,
0xfa
,
0x69
,
0x9c
,
0x55
,
0xc3
,
0x94
,
0x23
,
0xad
,
0xa2
,
0x69
,
0x4e
,
0xaa
,
0x68
,
0x4e
,
0xb9
,
0xe1
,
0xc8
,
0x55
,
0x34
,
0x73
,
0xfd
,
0xbc
,
0xcb
,
0x94
,
0xfc
,
0x10
,
0xb3
,
0x5b
,
0xd6
,
0x59
,
0xa5
,
0xef
,
0xdf
,
0xce
,
0x3c
,
0x40
,
0x93
,
0x2a
,
0x9a
,
0xb3
,
0x5c
,
0x70
,
0x68
,
0x45
,
0x58
,
0xeb
,
0xb4
,
0x22
,
0xec
,
0x5d
,
0xba
,
0xfe
,
0xb4
,
0x27
,
0x69
,
0x41
,
0xbd
,
0x3f
,
0xbc
,
0x84
,
0xfa
,
0xee
,
0x6b
,
0x34
,
0xdf
,
0xf4
,
0xd9
,
0x08
,
0x43
,
0x4c
,
0xb2
,
0x79
,
0x67
,
0x95
,
0xbe
,
0x7f
,
0x3b
,
0x77
,
0x0f
,
0xd2
,
0x9d
,
0xa4
,
0x05
,
0x75
,
0x45
,
0xed
,
0x0f
,
0x6d
,
0xd9
,
0x5b
,
0xb0
,
0x61
,
0x5c
,
0xe5
,
0x94
,
0x93
,
0x2a
,
0x47
,
0x15
,
0x4b
,
0x0d
,
0xf2
,
0x12
,
0x9a
,
0xdb
,
0xaf
,
0xd1
,
0x7c
,
0x67
,
0x4f
,
0x8a
,
0x28
,
0xea
,
0x60
,
0xe4
,
0xc8
,
0xcc
,
0x4d
,
0x17
,
0x64
,
0xb1
,
0x64
,
0xdc
,
0x83
,
0x05
,
0xb1
,
0x97
,
0x94
,
0x76
,
0x85
,
0x49
,
0x6b
,
0x16
,
0x87
,
0x7d
,
0x26
,
0xc5
,
0x56
,
0x35
,
0x2d
,
0xb6
,
0x54
,
0xcd
,
0xc6
,
0xdc
,
0x74
,
0x4e
,
0xd6
,
0xb3
,
0xb4
,
0x56
,
0xe2
,
0x64
,
0x72
,
0x26
,
0xe1
,
0x34
,
0x08
,
0xf8
,
0xd9
,
0x05
,
0x1c
,
0x67
,
0xc6
,
0x6c
,
0xc6
,
0x3d
,
0x98
,
0x13
,
0x6b
,
0x49
,
0x69
,
0x97
,
0x98
,
0xb4
,
0x0e
,
0xcb
,
0xae
,
0x15
,
0x4e
,
0x27
,
0x50
,
0xe7
,
0xfe
,
0x26
,
0xf3
,
0xce
,
0x4d
,
0xbd
,
0x4d
,
0x3d
,
0xcb
,
0x29
,
0x8d
,
0x2d
,
0x58
,
0x26
,
0x47
,
0x12
,
0x4e
,
0xc3
,
0x90
,
0xef
,
0x5d
,
0xc0
,
0x71
,
0x64
,
0x7c
,
0x0a
,
0x4d
,
0xee
,
0x6f
,
0x62
,
0xc1
,
0x82
,
0xc3
,
0xd5
,
0xcd
,
0xfe
,
0x28
,
0x13
,
0x8e
,
0x97
,
0xd3
,
0xeb
,
0x33
,
0xa1
,
0xf8
,
0x32
,
0xfd
,
0xdd
,
0xd4
,
0xbb
,
0xe5
,
0xd3
,
0x9c
,
0xd2
,
0xd8
,
0x80
,
0x05
,
0x16
,
0x2c
,
0x38
,
0x5c
,
0x15
,
0x54
,
0x38
,
0x38
,
0x77
,
0xb3
,
0xaf
,
0xb0
,
0x96
,
0xc9
,
0xf7
,
0x7a
,
0x91
,
0x75
,
0xac
,
0x7e
,
0x9d
,
0xec
,
0x8f
,
0x73
,
0x59
,
0x61
,
0x31
,
0x3b
,
0x3f
,
0x97
,
0x11
,
0x5e
,
0x41
,
0x8d
,
0x83
,
0x0b
,
0xba
,
0x18
,
0xe0
,
0x09
,
0xce
,
0xf9
,
0x47
,
0x1d
,
0x43
,
0xda
,
0x0e
,
0x6e
,
0x1c
,
0x85
,
0xb2
,
0x8c
,
0x27
,
0xfb
,
0x0a
,
0xeb
,
0xdc
,
0x02
,
0xdf
,
0x8a
,
0xed
,
0x43
,
0xf5
,
0xe0
,
0xc6
,
0x00
,
0x4f
,
0x70
,
0xaf
,
0x33
,
0xd8
,
0x8e
,
0x00
,
0xb1
,
0xc8
,
0x10
,
0x3a
,
0xbf
,
0xa2
,
0x5c
,
0x53
,
0xb3
,
0x26
,
0x1f
,
0xcc
,
0xdf
,
0x0b
,
0x19
,
0xd2
,
0x71
,
0x71
,
0xe1
,
0x38
,
0x92
,
0xdd
,
0x44
,
0x93
,
0xc1
,
0xb6
,
0x04
,
0x63
,
0xfd
,
0x42
,
0x74
,
0x79
,
0xa5
,
0xba
,
0xd0
,
0x35
,
0xf9
,
0x71
,
0xe2
,
0xa0
,
0xd6
,
0x4c
,
0x0b
,
0x88
,
0x45
,
0x86
,
0xc8
,
0xfd
,
0x35
,
0xe5
,
0x9a
,
0x9a
,
0x36
,
0xf9
,
0x37
,
0x96
,
0x51
,
0x44
,
0x97
,
0x6c
,
0x4a
,
0x2c
,
0xaa
,
0x99
,
0x08
,
0x0d
,
0xa4
,
0x02
,
0xd9
,
0xf4
,
0xda
,
0xfa
,
0x14
,
0x2e
,
0xa6
,
0x57
,
0xaa
,
0x0b
,
0x5d
,
0x93
,
0x6f
,
0x27
,
0x09
,
0x6a
,
0xed
,
0xac
,
0xc0
,
0xa6
,
0xc4
,
0xa2
,
0x9a
,
0xd6
,
0xab
,
0xa7
,
0xee
,
0x14
,
0x83
,
0xec
,
0xee
,
0x72
,
0xf1
,
0xdf
,
0x4a
,
0x00
,
0x5b
,
0xa3
,
0xe8
,
0x89
,
0xd0
,
0x40
,
0x26
,
0x90
,
0x9d
,
0x5d
,
0x5b
,
0x9f
,
0xc1
,
0xc5
,
0xcc
,
0x7c
,
0x75
,
0xe3
,
0x9e
,
0x44
,
0x36
,
0x40
,
0x1d
,
0xa8
,
0xb2
,
0xb6
,
0x4b
,
0xab
,
0x0f
,
0xd4
,
0x9c
,
0xe1
,
0x7c
,
0x2b
,
0x0c
,
0x61
,
0x90
,
0x5f
,
0x5d
,
0x4e
,
0xfe
,
0x7b
,
0x05
,
0x60
,
0x63
,
0x1c
,
0x1f
,
0xc9
,
0x3e
,
0xac
,
0x07
,
0xb1
,
0x43
,
0x89
,
0x2b
,
0x05
,
0x35
,
0xe7
,
0x0d
,
0xce
,
0x48
,
0x7d
,
0x94
,
0xf1
,
0x31
,
0xfb
,
0x68
,
0x75
,
0xd6
,
0xfd
,
0x69
,
0x65
,
0x8a
,
0x1a
,
0x33
,
0x5c
,
0x60
,
0x47
,
0x11
,
0x36
,
0x4a
,
0x49
,
0xc1
,
0x13
,
0xbf
,
0x8b
,
0xd8
,
0x9f
,
0xdb
,
0xd8
,
0x73
,
0x86
,
0x32
,
0x6d
,
0x35
,
0x04
,
0x74
,
0x4b
,
0x00
,
0xa2
,
0xc6
,
0xbc
,
0xcf
,
0x1a
,
0xab
,
0xf7
,
0x3a
,
0xfe
,
0xcd
,
0xde
,
0xfb
,
0xc4
,
0x23
,
0xa7
,
0x85
,
0x19
,
0x99
,
0x63
,
0x53
,
0x14
,
0x2d
,
0x1a
,
0xf7
,
0x22
,
0xef
,
0x15
,
0x75
,
0x65
,
0x2b
,
0xd4
,
0x88
,
0x0d
,
0x20
,
0xb6
,
0xbe
,
0x91
,
0xcc
,
0x9e
,
0x2d
,
0x01
,
0xdd
,
0x10
,
0x40
,
0x46
,
0xe6
,
0x3a
,
0x14
,
0xa1
,
0x4f
,
0x18
,
0x90
,
0x91
,
0x05
,
0xf4
,
0x18
,
0xb5
,
0x1c
,
0xc4
,
0x64
,
0x73
,
0x82
,
0x2c
,
0x86
,
0x45
,
0x8b
,
0x4f
,
0xac
,
0xd8
,
0x7f
,
0x45
,
0x3d
,
0xd9
,
0x91
,
0xb5
,
0x12
,
0xe8
,
0x13
,
0x06
,
0x64
,
0x72
,
0x32
,
0xf6
,
0x31
,
0xdb
,
0x3a
,
0x1c
,
0x0d
,
0x06
,
0xe2
,
0x90
,
0xe7
,
0xd5
,
0x25
,
0x76
,
0x1e
,
0x64
,
0x21
,
0x3d
,
0x44
,
0x2d
,
0x87
,
0x09
,
0xd9
,
0x8c
,
0x20
,
0x4b
,
0xa0
,
0x9c
,
0x8c
,
0xbd
,
0x0f
,
0xe2
,
0x1c
,
0xd9
,
0x46
,
0x38
,
0x51
,
0x91
,
0x3c
,
0xdc
,
0xb7
,
0x2f
,
0x7a
,
0x2f
,
0xc2
,
0x92
,
0x26
,
0x77
,
0xf6
,
0xc7
,
0xc3
,
0xa1
,
0xd8
,
0xe4
,
0x79
,
0x75
,
0x89
,
0x0d
,
0x90
,
0xd8
,
0x47
,
0xbe
,
0x1f
,
0xa8
,
0xac
,
0xd7
,
0xd0
,
0x17
,
0x44
,
0x29
,
0xf7
,
0x76
,
0xf2
,
0x1b
,
0x97
,
0xe0
,
0x62
,
0x6a
,
0xbd
,
0x4f
,
0x55
,
0x24
,
0x37
,
0xf7
,
0xdd
,
0x6b
,
0xef
,
0x8b
,
0xb0
,
0xa0
,
0x09
,
0x2a
,
0xcb
,
0x46
,
0xf4
,
0x60
,
0xbb
,
0xfe
,
0x1e
,
0x54
,
0xe3
,
0x4f
,
0x58
,
0x32
,
0x0f
,
0xe5
,
0x27
,
0xdb
,
0x87
,
0xad
,
0x0b
,
0x05
,
0x51
,
0x51
,
0xbe
,
0x9d
,
0xfc
,
0xc6
,
0x25
,
0xb8
,
0x98
,
0x99
,
0x2f
,
0xd8
,
0xae
,
0xbe
,
0x07
,
0x6c
,
0xf0
,
0x74
,
0xe7
,
0xb0
,
0x55
,
0x5a
,
0x5f
,
0x87
,
0xc5
,
0xcc
,
0xf3
,
0x19
,
0xa9
,
0x41
,
0xc5
,
0xf5
,
0xe4
,
0x2d
,
0x98
,
0xcc
,
0x42
,
0xf5
,
0xc9
,
0xe6
,
0x7e
,
0xe7
,
0x02
,
0xfb
,
0x78
,
0xba
,
0xb5
,
0xdc
,
0xdd
,
0xda
,
0x79
,
0x8e
,
0x64
,
0x0b
,
0x50
,
0x3d
,
0x78
,
0xfc
,
0x44
,
0xcc
,
0x4a
,
0xeb
,
0xdb
,
0xdf
,
0xa9
,
0xac
,
0xae
,
0xc2
,
0x7c
,
0xee
,
0x16
,
0x8f
,
0x34
,
0xa0
,
0x66
,
0x6e
,
0x6f
,
0x6c
,
0x3d
,
0xd0
,
0x4c
,
0xa7
,
0x3b
,
0x52
,
0x87
,
0xf9
,
0x6d
,
0xc4
,
0x3e
,
0xd9
,
0xdd
,
0x41
,
0x62
,
0x9c
,
0x98
,
0x47
,
0xb2
,
0x39
,
0xa8
,
0xef
,
0x3d
,
0x7e
,
0x22
,
0x46
,
0x95
,
0xd5
,
0x4d
,
0x68
,
0x67
,
0xd3
,
0x1d
,
0x4f
,
0x0f
,
0x0e
,
0xf6
,
0x0e
,
0x1e
,
0xb4
,
0x4a
,
0x04
,
0x60
,
0x6e
,
0xf7
,
0xeb
,
0x3d
,
0x86
,
0x98
,
0x69
,
0xc2
,
0xec
,
0x26
,
0x62
,
0x9f
,
0x6c
,
0x6f
,
0x21
,
0x31
,
0x0e
,
0xcc
,
0xa7
,
0x7b
,
0x7b
,
0x3b
,
0x61
,
0x88
,
0xa7
,
0x07
,
0x0f
,
0x0f
,
0x1e
,
0xff
,
0xe2
,
0xa0
,
0x55
,
0xde
,
0xfc
,
0x4b
,
0x15
,
0x9a
,
0x7b
,
0x0f
,
0x3a
,
0x15
,
0x02
,
0x30
,
0xb3
,
0xfd
,
0xcd
,
0x0e
,
0x43
,
0x4c
,
0x31
,
0xc4
,
0xd3
,
0xbd
,
0xa6
,
0x38
,
0x42
,
0x17
,
0x7d
,
0xc1
,
0xc1
,
0xce
,
0xeb
,
0x1e
,
0xcc
,
0xc7
,
0x3f
,
0xdc
,
0x49
,
0x62
,
0x87
,
0x7b
,
0x8f
,
0x7f
,
0xb9
,
0xd7
,
0xa9
,
0xae
,
0xff
,
0xb5
,
0x0e
,
0x6d
,
0x53
,
0x6c
,
0xa1
,
0x8f
,
0x4d
,
0x7f
,
0xc7
,
0x77
,
0xda
,
0x79
,
0x84
,
0x54
,
0xdb
,
0x05
,
0xf2
,
0x1c
,
0x5a
,
0xd9
,
0x4f
,
0x1f
,
0xbe
,
0xe0
,
0x62
,
0x03
,
0x78
,
0x0f
,
0x66
,
0x93
,
0x87
,
0xf6
,
0x34
,
0xb1
,
0x66
,
0xff
,
0x0a
,
0xe8
,
0x92
,
0x3c
,
0x85
,
0x4c
,
0xf8
,
0x5d
,
0xea
,
0xdc
,
0x38
,
0x83
,
0x42
,
0xb1
,
0xee
,
0x42
,
0x33
,
0xfd
,
0x75
,
0x8b
,
0x08
,
0xa9
,
0xb6
,
0x0b
,
0xe4
,
0x39
,
0x74
,
0xf2
,
0x6f
,
0x4f
,
0x24
,
0xbd
,
0x91
,
0x99
,
0x9d
,
0x43
,
0x92
,
0x7a
,
0xa9
,
0xf0
,
0x9b
,
0xa8
,
0x73
,
0x7d
,
0x22
,
0x5e
,
0x97
,
0x37
,
0xfb
,
0x91
,
0xf0
,
0xc8
,
0xd5
,
0xbb
,
0x71
,
0x0a
,
0x85
,
0x62
,
0xdd
,
0x87
,
0x76
,
0xf6
,
0x55
,
0x89
,
0xa4
,
0x65
,
0xa3
,
0xc9
,
0x3b
,
0xe1
,
0x93
,
0x48
,
0x93
,
0x77
,
0xe2
,
0x2f
,
0x10
,
0x67
,
0x9d
,
0xfb
,
0xf2
,
0x58
,
0x5b
,
0xe9
,
0x6b
,
0x55
,
0xef
,
0xfa
,
0x44
,
0xbc
,
0x2e
,
0x6f
,
0xfe
,
0x3d
,
0x49
,
0x93
,
0x77
,
0xc2
,
0x9b
,
0xfc
,
0xb2
,
0x9d
,
0x63
,
0x3d
,
0xe9
,
0xb9
,
0x5c
,
0xa8
,
0x22
,
0xfd
,
0x76
,
0x49
,
0xf4
,
0xdf
,
0x5b
,
0x95
,
0x26
,
0xef
,
0xc4
,
0xc7
,
0x28
,
0xce
,
0xba
,
0xf0
,
0xf2
,
0xb2
,
0x32
,
0xf9
,
0x82
,
0xbd
,
0x88
,
0x82
,
0x67
,
0x61
,
0x4d
,
0x15
,
0xc5
,
0x8f
,
0x9e
,
0xc8
,
0xf4
,
0x19
,
0x96
,
0x63
,
0xe9
,
0xee
,
0xc0
,
0x7a
,
0xd2
,
0xad
,
0xbd
,
0x50
,
0x45
,
0xf6
,
0x0a
,
0x95
,
0xe8
,
0x8f
,
0x22
,
0x25
,
0xb7
,
0xd3
,
0x8f
,
0x5c
,
0xcf
,
0xd8
,
0x25
,
0xdb
,
0x15
,
0x75
,
0xd6
,
0x26
,
0x13
,
0xa4
,
0xed
,
0xa6
,
0xf7
,
0x76
,
0x9a
,
0x2a
,
0xca
,
0xef
,
0x5e
,
0x91
,
0xe9
,
0x33
,
0x2c
,
0xc7
,
0xb2
,
0x4d
,
0x28
,
0xb9
,
0x9e
,
0xb3
,
0x29
,
0xbb
,
0x15
,
0x34
,
0x8c
,
0x29
,
0xbb
,
0x15
,
0x36
,
0x85
,
0x17
,
0xc8
,
0x21
,
0x34
,
0x52
,
0x1d
,
0x4b
,
0xbe
,
0x39
,
0xeb
,
0xad
,
0x4c
,
0x26
,
0xc8
,
0xda
,
0x4d
,
0x6f
,
0x31
,
0x33
,
0x76
,
0x2b
,
0xe9
,
0x1c
,
0xb9
,
0x9a
,
0xb2
,
0x75
,
0x8e
,
0xe5
,
0xb5
,
0x49
,
0x68
,
0xfd
,
0xf8
,
0x99
,
0xee
,
0x4d
,
0x3b
,
0x5b
,
0x33
,
0x76
,
0x2b
,
0xed
,
0x4d
,
0x2f
,
0x90
,
0x7d
,
0x68
,
0x65
,
0x1a
,
0x49
,
0x72
,
0x35
,
0x63
,
0x7e
,
0x71
,
0x53
,
0xd8
,
0x59
,
0x9b
,
0x4c
,
0x90
,
0xb5
,
0x55
,
0x52
,
0x71
,
0x67
,
0x6c
,
0x95
,
0x6b
,
0xeb
,
0x02
,
0xcb
,
0x6b
,
0x93
,
0xd0
,
0xfa
,
0xf6
,
0x73
,
0x4d
,
0xa4
,
0xb6
,
0xfd
,
0xf2
,
0xde
,
0xb4
,
0x78
,
0x32
,
0xb6
,
0xca
,
0x97
,
0xea
,
0xd2
,
0x56
,
0x99
,
0xd2
,
0xf9
,
0xfa
,
0xc4
,
0x9a
,
0x25
,
0x6f
,
0xb7
,
0x32
,
0x99
,
0x20
,
0x6f
,
0xab
,
0xb4
,
0xe2
,
0xce
,
0xd9
,
0xaa
,
0xd0
,
0x77
,
0xe5
,
0x6c
,
0x55
,
0xab
,
0xe2
,
0x32
,
0x08
,
0xf9
,
0xde
,
0x81
,
0x59
,
0x56
,
0x6a
,
0x90
,
0x24
,
0xa9
,
0x6b
,
0x55
,
0x4e
,
0x2c
,
0xd5
,
0xa5
,
0xad
,
0x72
,
0xa5
,
0xf3
,
0xf5
,
0x89
,
0x35
,
0x4b
,
0xd1
,
0x56
,
0xe5
,
0x65
,
0x10
,
0xe7
,
0x52
,
0x06
,
0x1a
,
0x2f
,
0xbb
,
0x59
,
0xba
,
0x5d
,
0xda
,
0xfc
,
0xf3
,
0x0c
,
0x2c
,
0x88
,
0x38
,
0xf2
,
0xbd
,
0x03
,
0xd3
,
0xac
,
0xd4
,
0x20
,
0x69
,
0x52
,
0xd7
,
0xaa
,
0x9c
,
0xde
,
0xa5
,
0x1c
,
0x34
,
0x28
,
0x43
,
0xc9
,
0x03
,
0x80
,
0x24
,
0x1b
,
0x93
,
0x4e
,
0xea
,
0x50
,
0xa9
,
0x92
,
0xa2
,
0x73
,
0xa5
,
0x99
,
0x76
,
0xb3
,
0x72
,
0xbb
,
0xb2
,
0xfe
,
0x97
,
0x29
,
0x98
,
0x13
,
0x71
,
0x50
,
0x86
,
0x92
,
0x07
,
0x10
,
0xa7
,
0x84
,
0xfa
,
0x4a
,
0xd6
,
0x2f
,
0xf2
,
0xa0
,
0x57
,
0x32
,
0x61
,
0x37
,
0x75
,
0xc8
,
0xf7
,
0x00
,
0x69
,
0x36
,
0x26
,
0xbd
,
0xcc
,
0xa6
,
0x32
,
0x25
,
0x45
,
0xef
,
0x4a
,
0x29
,
0x4e
,
0x09
,
0xf5
,
0x8a
,
0x91
,
0x8a
,
0xd7
,
0x0e
,
0xd4
,
0x54
,
0xb4
,
0x27
,
0x5a
,
0x92
,
0xc8
,
0xa4
,
0xaa
,
0x4e
,
0xa7
,
0xb5
,
0xac
,
0x5f
,
0xe4
,
0x46
,
0xaf
,
0xe4
,
0xc2
,
0x6e
,
0x66
,
0x93
,
0xef
,
0x95
,
0x23
,
0x15
,
0xaf
,
0x08
,
0xa5
,
0x4b
,
0xa4
,
0x85
,
0x77
,
0x4d
,
0xa2
,
0x7c
,
0xd2
,
0xd0
,
0x24
,
0x2a
,
0xc8
,
0x08
,
0xc6
,
0x2d
,
0x68
,
0xa8
,
0x68
,
0x4f
,
0xb4
,
0x24
,
0x91
,
0x4b
,
0x55
,
0xbd
,
0x5e
,
0x19
,
0x4a
,
0x97
,
0x48
,
0x85
,
0xff
,
0x06
,
0x00
,
0x00
,
0xff
,
0xff
,
0x00
,
0x73
,
0xab
,
0x16
,
0x03
,
0x25
,
0x00
,
0x00
,
0x0b
,
0xef
,
0x9a
,
0x44
,
0xc5
,
0xa4
,
0xa1
,
0x49
,
0x54
,
0x92
,
0x11
,
0x8c
,
0x0b
,
0xff
,
0x0b
,
0x00
,
0x00
,
0xff
,
0xff
,
0x3e
,
0xe9
,
0xdd
,
0x26
,
0x8a
,
0x25
,
0x00
,
0x00
,
}
}
pkg/kubelet/api/v1alpha1/runtime/api.proto
View file @
e3e10ddf
...
@@ -495,6 +495,9 @@ message Container {
...
@@ -495,6 +495,9 @@ message Container {
optional
ContainerState
state
=
5
;
optional
ContainerState
state
=
5
;
// Labels are key value pairs that may be used to scope and select individual resources.
// Labels are key value pairs that may be used to scope and select individual resources.
map
<
string
,
string
>
labels
=
6
;
map
<
string
,
string
>
labels
=
6
;
// Annotations is an unstructured key value map that may be set by external
// tools to store and retrieve arbitrary metadata.
map
<
string
,
string
>
annotations
=
7
;
}
}
message
ListContainersResponse
{
message
ListContainersResponse
{
...
...
pkg/kubelet/kuberuntime/helpers.go
View file @
e3e10ddf
...
@@ -40,10 +40,22 @@ const (
...
@@ -40,10 +40,22 @@ const (
milliCPUToCPU
=
1000
milliCPUToCPU
=
1000
// 100000 is equivalent to 100ms
// 100000 is equivalent to 100ms
quotaPeriod
=
100
000
quotaPeriod
=
100
*
minQuotaPeriod
minQuotaPeriod
=
1000
minQuotaPeriod
=
1000
)
)
type
podsByID
[]
*
kubecontainer
.
Pod
func
(
b
podsByID
)
Len
()
int
{
return
len
(
b
)
}
func
(
b
podsByID
)
Swap
(
i
,
j
int
)
{
b
[
i
],
b
[
j
]
=
b
[
j
],
b
[
i
]
}
func
(
b
podsByID
)
Less
(
i
,
j
int
)
bool
{
return
b
[
i
]
.
ID
<
b
[
j
]
.
ID
}
type
containersByID
[]
*
kubecontainer
.
Container
func
(
b
containersByID
)
Len
()
int
{
return
len
(
b
)
}
func
(
b
containersByID
)
Swap
(
i
,
j
int
)
{
b
[
i
],
b
[
j
]
=
b
[
j
],
b
[
i
]
}
func
(
b
containersByID
)
Less
(
i
,
j
int
)
bool
{
return
b
[
i
]
.
ID
.
ID
<
b
[
j
]
.
ID
.
ID
}
// buildSandboxName creates a name which can be reversed to identify sandbox full name
// buildSandboxName creates a name which can be reversed to identify sandbox full name
func
buildSandboxName
(
pod
*
api
.
Pod
)
string
{
func
buildSandboxName
(
pod
*
api
.
Pod
)
string
{
_
,
sandboxName
,
_
:=
buildKubeGenericName
(
pod
,
kubeSandboxNamePrefix
)
_
,
sandboxName
,
_
:=
buildKubeGenericName
(
pod
,
kubeSandboxNamePrefix
)
...
@@ -107,7 +119,23 @@ func parseContainerName(name string) (podName, podNamespace, podUID, containerNa
...
@@ -107,7 +119,23 @@ func parseContainerName(name string) (podName, podNamespace, podUID, containerNa
return
parts
[
2
],
parts
[
3
],
parts
[
4
],
containerName
,
hash
,
nil
return
parts
[
2
],
parts
[
3
],
parts
[
4
],
containerName
,
hash
,
nil
}
}
// toRuntimeProtocol converts api.Protocol to runtimeApi.Protocol
// toKubeContainerState converts runtimeApi.ContainerState to kubecontainer.ContainerState.
func
toKubeContainerState
(
state
runtimeApi
.
ContainerState
)
kubecontainer
.
ContainerState
{
switch
state
{
case
runtimeApi
.
ContainerState_CREATED
:
return
kubecontainer
.
ContainerStateCreated
case
runtimeApi
.
ContainerState_RUNNING
:
return
kubecontainer
.
ContainerStateRunning
case
runtimeApi
.
ContainerState_EXITED
:
return
kubecontainer
.
ContainerStateExited
case
runtimeApi
.
ContainerState_UNKNOWN
:
return
kubecontainer
.
ContainerStateUnknown
}
return
kubecontainer
.
ContainerStateUnknown
}
// toRuntimeProtocol converts api.Protocol to runtimeApi.Protocol.
func
toRuntimeProtocol
(
protocol
api
.
Protocol
)
runtimeApi
.
Protocol
{
func
toRuntimeProtocol
(
protocol
api
.
Protocol
)
runtimeApi
.
Protocol
{
switch
protocol
{
switch
protocol
{
case
api
.
ProtocolTCP
:
case
api
.
ProtocolTCP
:
...
@@ -120,6 +148,23 @@ func toRuntimeProtocol(protocol api.Protocol) runtimeApi.Protocol {
...
@@ -120,6 +148,23 @@ func toRuntimeProtocol(protocol api.Protocol) runtimeApi.Protocol {
return
runtimeApi
.
Protocol_TCP
return
runtimeApi
.
Protocol_TCP
}
}
// toKubeContainer converts runtimeApi.Container to kubecontainer.Container.
func
(
m
*
kubeGenericRuntimeManager
)
toKubeContainer
(
c
*
runtimeApi
.
Container
)
(
*
kubecontainer
.
Container
,
error
)
{
if
c
==
nil
||
c
.
Id
==
nil
||
c
.
Image
==
nil
||
c
.
State
==
nil
{
return
nil
,
fmt
.
Errorf
(
"unable to convert a nil pointer to a runtime container"
)
}
labeledInfo
:=
getContainerInfoFromLabels
(
c
.
Labels
)
annotatedInfo
:=
getContainerInfoFromAnnotations
(
c
.
Annotations
)
return
&
kubecontainer
.
Container
{
ID
:
kubecontainer
.
ContainerID
{
Type
:
m
.
runtimeName
,
ID
:
c
.
GetId
()},
Name
:
labeledInfo
.
ContainerName
,
Image
:
c
.
Image
.
GetImage
(),
Hash
:
annotatedInfo
.
Hash
,
State
:
toKubeContainerState
(
c
.
GetState
()),
},
nil
}
// milliCPUToShares converts milliCPU to CPU shares
// milliCPUToShares converts milliCPU to CPU shares
func
milliCPUToShares
(
milliCPU
int64
)
int64
{
func
milliCPUToShares
(
milliCPU
int64
)
int64
{
if
milliCPU
==
0
{
if
milliCPU
==
0
{
...
...
pkg/kubelet/kuberuntime/kuberuntime_container.go
View file @
e3e10ddf
...
@@ -191,6 +191,37 @@ func makeMounts(cid string, opts *kubecontainer.RunContainerOptions, container *
...
@@ -191,6 +191,37 @@ func makeMounts(cid string, opts *kubecontainer.RunContainerOptions, container *
return
volumeMounts
return
volumeMounts
}
}
// getKubeletContainers lists containers managed by kubelet.
// The boolean parameter specifies whether returns all containers including
// those already exited and dead containers (used for garbage collection).
func
(
m
*
kubeGenericRuntimeManager
)
getKubeletContainers
(
allContainers
bool
)
([]
*
runtimeApi
.
Container
,
error
)
{
filter
:=
&
runtimeApi
.
ContainerFilter
{
LabelSelector
:
map
[
string
]
string
{
kubernetesManagedLabel
:
"true"
},
}
if
!
allContainers
{
runningState
:=
runtimeApi
.
ContainerState_RUNNING
filter
.
State
=
&
runningState
}
containers
,
err
:=
m
.
getContainersHelper
(
filter
)
if
err
!=
nil
{
glog
.
Errorf
(
"getKubeletContainers failed: %v"
,
err
)
return
nil
,
err
}
return
containers
,
nil
}
// getContainers lists containers by filter.
func
(
m
*
kubeGenericRuntimeManager
)
getContainersHelper
(
filter
*
runtimeApi
.
ContainerFilter
)
([]
*
runtimeApi
.
Container
,
error
)
{
resp
,
err
:=
m
.
runtimeService
.
ListContainers
(
filter
)
if
err
!=
nil
{
return
nil
,
err
}
return
resp
,
err
}
// AttachContainer attaches to the container's console
// AttachContainer attaches to the container's console
func
(
m
*
kubeGenericRuntimeManager
)
AttachContainer
(
id
kubecontainer
.
ContainerID
,
stdin
io
.
Reader
,
stdout
,
stderr
io
.
WriteCloser
,
tty
bool
,
resize
<-
chan
term
.
Size
)
(
err
error
)
{
func
(
m
*
kubeGenericRuntimeManager
)
AttachContainer
(
id
kubecontainer
.
ContainerID
,
stdin
io
.
Reader
,
stdout
,
stderr
io
.
WriteCloser
,
tty
bool
,
resize
<-
chan
term
.
Size
)
(
err
error
)
{
return
fmt
.
Errorf
(
"not implemented"
)
return
fmt
.
Errorf
(
"not implemented"
)
...
...
pkg/kubelet/kuberuntime/kuberuntime_image_test.go
View file @
e3e10ddf
...
@@ -25,7 +25,7 @@ import (
...
@@ -25,7 +25,7 @@ import (
)
)
func
TestPullImage
(
t
*
testing
.
T
)
{
func
TestPullImage
(
t
*
testing
.
T
)
{
_
,
_
,
fakeManager
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
_
,
fakeManager
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
err
=
fakeManager
.
PullImage
(
kubecontainer
.
ImageSpec
{
Image
:
"busybox"
},
nil
)
err
=
fakeManager
.
PullImage
(
kubecontainer
.
ImageSpec
{
Image
:
"busybox"
},
nil
)
...
@@ -38,7 +38,7 @@ func TestPullImage(t *testing.T) {
...
@@ -38,7 +38,7 @@ func TestPullImage(t *testing.T) {
}
}
func
TestListImages
(
t
*
testing
.
T
)
{
func
TestListImages
(
t
*
testing
.
T
)
{
_
,
fakeImageService
,
fakeManager
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
fakeImageService
,
fakeManager
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
images
:=
[]
string
{
"1111"
,
"2222"
,
"3333"
}
images
:=
[]
string
{
"1111"
,
"2222"
,
"3333"
}
...
@@ -56,7 +56,7 @@ func TestListImages(t *testing.T) {
...
@@ -56,7 +56,7 @@ func TestListImages(t *testing.T) {
}
}
func
TestIsImagePresent
(
t
*
testing
.
T
)
{
func
TestIsImagePresent
(
t
*
testing
.
T
)
{
_
,
fakeImageService
,
fakeManager
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
fakeImageService
,
fakeManager
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
image
:=
"busybox"
image
:=
"busybox"
...
@@ -67,7 +67,7 @@ func TestIsImagePresent(t *testing.T) {
...
@@ -67,7 +67,7 @@ func TestIsImagePresent(t *testing.T) {
}
}
func
TestRemoveImage
(
t
*
testing
.
T
)
{
func
TestRemoveImage
(
t
*
testing
.
T
)
{
_
,
fakeImageService
,
fakeManager
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
fakeImageService
,
fakeManager
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
err
=
fakeManager
.
PullImage
(
kubecontainer
.
ImageSpec
{
Image
:
"busybox"
},
nil
)
err
=
fakeManager
.
PullImage
(
kubecontainer
.
ImageSpec
{
Image
:
"busybox"
},
nil
)
...
...
pkg/kubelet/kuberuntime/kuberuntime_manager.go
View file @
e3e10ddf
...
@@ -223,7 +223,53 @@ func (m *kubeGenericRuntimeManager) Status() error {
...
@@ -223,7 +223,53 @@ func (m *kubeGenericRuntimeManager) Status() error {
// specifies whether the runtime returns all containers including those already
// specifies whether the runtime returns all containers including those already
// exited and dead containers (used for garbage collection).
// exited and dead containers (used for garbage collection).
func
(
m
*
kubeGenericRuntimeManager
)
GetPods
(
all
bool
)
([]
*
kubecontainer
.
Pod
,
error
)
{
func
(
m
*
kubeGenericRuntimeManager
)
GetPods
(
all
bool
)
([]
*
kubecontainer
.
Pod
,
error
)
{
return
nil
,
fmt
.
Errorf
(
"not implemented"
)
pods
:=
make
(
map
[
kubetypes
.
UID
]
*
kubecontainer
.
Pod
)
sandboxes
,
err
:=
m
.
getKubeletSandboxes
(
all
)
if
err
!=
nil
{
return
nil
,
err
}
for
_
,
s
:=
range
sandboxes
{
name
,
namespace
,
uid
,
_
:=
parseSandboxName
(
s
.
GetName
())
podUID
:=
kubetypes
.
UID
(
uid
)
pods
[
podUID
]
=
&
kubecontainer
.
Pod
{
ID
:
podUID
,
Name
:
name
,
Namespace
:
namespace
,
}
}
containers
,
err
:=
m
.
getKubeletContainers
(
all
)
if
err
!=
nil
{
return
nil
,
err
}
for
_
,
c
:=
range
containers
{
labelledInfo
:=
getContainerInfoFromLabels
(
c
.
Labels
)
pod
,
found
:=
pods
[
labelledInfo
.
PodUID
]
if
!
found
{
pod
=
&
kubecontainer
.
Pod
{
ID
:
labelledInfo
.
PodUID
,
Name
:
labelledInfo
.
PodName
,
Namespace
:
labelledInfo
.
PodNamespace
,
}
pods
[
labelledInfo
.
PodUID
]
=
pod
}
converted
,
err
:=
m
.
toKubeContainer
(
c
)
if
err
!=
nil
{
glog
.
Warningf
(
"Convert %s container %v of pod %q failed: %v"
,
m
.
runtimeName
,
c
,
labelledInfo
.
PodUID
,
err
)
continue
}
pod
.
Containers
=
append
(
pod
.
Containers
,
converted
)
}
// Convert map to list.
var
result
[]
*
kubecontainer
.
Pod
for
_
,
pod
:=
range
pods
{
result
=
append
(
result
,
pod
)
}
return
result
,
nil
}
}
// SyncPod syncs the running pod into the desired pod.
// SyncPod syncs the running pod into the desired pod.
...
...
pkg/kubelet/kuberuntime/kuberuntime_manager_test.go
View file @
e3e10ddf
...
@@ -17,17 +17,27 @@ limitations under the License.
...
@@ -17,17 +17,27 @@ limitations under the License.
package
kuberuntime
package
kuberuntime
import
(
import
(
"reflect"
"sort"
"testing"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/assert"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/apis/componentconfig"
apitest
"k8s.io/kubernetes/pkg/kubelet/api/testing"
apitest
"k8s.io/kubernetes/pkg/kubelet/api/testing"
runtimeApi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
containertest
"k8s.io/kubernetes/pkg/kubelet/container/testing"
containertest
"k8s.io/kubernetes/pkg/kubelet/container/testing"
"k8s.io/kubernetes/pkg/kubelet/network"
"k8s.io/kubernetes/pkg/kubelet/network"
nettest
"k8s.io/kubernetes/pkg/kubelet/network/testing"
nettest
"k8s.io/kubernetes/pkg/kubelet/network/testing"
kubetypes
"k8s.io/kubernetes/pkg/types"
)
)
func
createTestFakeRuntimeManager
()
(
*
apitest
.
FakeRuntimeService
,
*
apitest
.
FakeImageService
,
*
kubeGenericRuntimeManager
,
error
)
{
var
(
fakeCreatedAt
int64
=
1
)
func
createTestRuntimeManager
()
(
*
apitest
.
FakeRuntimeService
,
*
apitest
.
FakeImageService
,
*
kubeGenericRuntimeManager
,
error
)
{
fakeRuntimeService
:=
apitest
.
NewFakeRuntimeService
()
fakeRuntimeService
:=
apitest
.
NewFakeRuntimeService
()
fakeImageService
:=
apitest
.
NewFakeImageService
()
fakeImageService
:=
apitest
.
NewFakeImageService
()
networkPlugin
,
_
:=
network
.
InitNetworkPlugin
(
networkPlugin
,
_
:=
network
.
InitNetworkPlugin
(
...
@@ -42,13 +52,113 @@ func createTestFakeRuntimeManager() (*apitest.FakeRuntimeService, *apitest.FakeI
...
@@ -42,13 +52,113 @@ func createTestFakeRuntimeManager() (*apitest.FakeRuntimeService, *apitest.FakeI
return
fakeRuntimeService
,
fakeImageService
,
manager
,
err
return
fakeRuntimeService
,
fakeImageService
,
manager
,
err
}
}
func
makeAndSetFakePod
(
m
*
kubeGenericRuntimeManager
,
fakeRuntime
*
apitest
.
FakeRuntimeService
,
pod
*
api
.
Pod
)
(
*
apitest
.
FakePodSandbox
,
[]
*
apitest
.
FakeContainer
,
error
)
{
fakePodSandbox
,
err
:=
makeFakePodSandbox
(
m
,
pod
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
fakeContainers
,
err
:=
makeFakeContainers
(
m
,
pod
,
pod
.
Spec
.
Containers
)
if
err
!=
nil
{
return
nil
,
nil
,
err
}
fakeRuntime
.
SetFakeSandboxes
([]
*
apitest
.
FakePodSandbox
{
fakePodSandbox
})
fakeRuntime
.
SetFakeContainers
(
fakeContainers
)
return
fakePodSandbox
,
fakeContainers
,
nil
}
func
makeFakePodSandbox
(
m
*
kubeGenericRuntimeManager
,
pod
*
api
.
Pod
)
(
*
apitest
.
FakePodSandbox
,
error
)
{
config
,
err
:=
m
.
generatePodSandboxConfig
(
pod
,
""
)
if
err
!=
nil
{
return
nil
,
err
}
podSandboxID
:=
config
.
GetName
()
readyState
:=
runtimeApi
.
PodSandBoxState_READY
return
&
apitest
.
FakePodSandbox
{
PodSandbox
:
runtimeApi
.
PodSandbox
{
Id
:
&
podSandboxID
,
Name
:
config
.
Name
,
State
:
&
readyState
,
CreatedAt
:
&
fakeCreatedAt
,
Labels
:
config
.
Labels
,
},
Annotations
:
config
.
Annotations
,
},
nil
}
func
makeFakeContainer
(
m
*
kubeGenericRuntimeManager
,
pod
*
api
.
Pod
,
container
api
.
Container
,
sandboxConfig
*
runtimeApi
.
PodSandboxConfig
)
(
*
apitest
.
FakeContainer
,
error
)
{
containerConfig
,
err
:=
m
.
generateContainerConfig
(
&
container
,
pod
,
0
,
""
)
if
err
!=
nil
{
return
nil
,
err
}
containerID
:=
containerConfig
.
GetName
()
runningState
:=
runtimeApi
.
ContainerState_RUNNING
imageRef
:=
containerConfig
.
Image
.
GetImage
()
return
&
apitest
.
FakeContainer
{
ContainerStatus
:
runtimeApi
.
ContainerStatus
{
Id
:
&
containerID
,
Name
:
containerConfig
.
Name
,
Image
:
containerConfig
.
Image
,
ImageRef
:
&
imageRef
,
CreatedAt
:
&
fakeCreatedAt
,
State
:
&
runningState
,
Labels
:
containerConfig
.
Labels
,
Annotations
:
containerConfig
.
Annotations
,
},
SandboxID
:
sandboxConfig
.
GetName
(),
},
nil
}
func
makeFakeContainers
(
m
*
kubeGenericRuntimeManager
,
pod
*
api
.
Pod
,
containers
[]
api
.
Container
)
([]
*
apitest
.
FakeContainer
,
error
)
{
sandboxConfig
,
err
:=
m
.
generatePodSandboxConfig
(
pod
,
""
)
if
err
!=
nil
{
return
nil
,
err
}
result
:=
make
([]
*
apitest
.
FakeContainer
,
len
(
containers
))
for
idx
,
c
:=
range
containers
{
containerWithState
,
err
:=
makeFakeContainer
(
m
,
pod
,
c
,
sandboxConfig
)
if
err
!=
nil
{
return
nil
,
err
}
result
[
idx
]
=
containerWithState
}
return
result
,
nil
}
// verifyPods returns true if the two pod slices are equal.
func
verifyPods
(
a
,
b
[]
*
kubecontainer
.
Pod
)
bool
{
if
len
(
a
)
!=
len
(
b
)
{
return
false
}
// Sort the containers within a pod.
for
i
:=
range
a
{
sort
.
Sort
(
containersByID
(
a
[
i
]
.
Containers
))
}
for
i
:=
range
b
{
sort
.
Sort
(
containersByID
(
b
[
i
]
.
Containers
))
}
// Sort the pods by UID.
sort
.
Sort
(
podsByID
(
a
))
sort
.
Sort
(
podsByID
(
b
))
return
reflect
.
DeepEqual
(
a
,
b
)
}
func
TestNewKubeRuntimeManager
(
t
*
testing
.
T
)
{
func
TestNewKubeRuntimeManager
(
t
*
testing
.
T
)
{
_
,
_
,
_
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
_
,
_
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
}
}
func
TestVersion
(
t
*
testing
.
T
)
{
func
TestVersion
(
t
*
testing
.
T
)
{
_
,
_
,
m
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
_
,
m
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
version
,
err
:=
m
.
Version
()
version
,
err
:=
m
.
Version
()
...
@@ -57,9 +167,71 @@ func TestVersion(t *testing.T) {
...
@@ -57,9 +167,71 @@ func TestVersion(t *testing.T) {
}
}
func
TestContainerRuntimeType
(
t
*
testing
.
T
)
{
func
TestContainerRuntimeType
(
t
*
testing
.
T
)
{
_
,
_
,
m
,
err
:=
createTest
Fake
RuntimeManager
()
_
,
_
,
m
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
assert
.
NoError
(
t
,
err
)
runtimeType
:=
m
.
Type
()
runtimeType
:=
m
.
Type
()
assert
.
Equal
(
t
,
"fakeRuntime"
,
runtimeType
)
assert
.
Equal
(
t
,
"fakeRuntime"
,
runtimeType
)
}
}
func
TestGetPods
(
t
*
testing
.
T
)
{
fakeRuntime
,
_
,
m
,
err
:=
createTestRuntimeManager
()
assert
.
NoError
(
t
,
err
)
pod
:=
&
api
.
Pod
{
ObjectMeta
:
api
.
ObjectMeta
{
UID
:
"12345678"
,
Name
:
"foo"
,
Namespace
:
"new"
,
},
Spec
:
api
.
PodSpec
{
Containers
:
[]
api
.
Container
{
{
Name
:
"foo1"
,
Image
:
"busybox"
,
},
{
Name
:
"foo2"
,
Image
:
"busybox"
,
},
},
},
}
// Set fake sandbox and fake containers to fakeRuntime.
_
,
fakeContainers
,
err
:=
makeAndSetFakePod
(
m
,
fakeRuntime
,
pod
)
assert
.
NoError
(
t
,
err
)
// Convert the fakeContainers to kubecontainer.Container
containers
:=
make
([]
*
kubecontainer
.
Container
,
len
(
fakeContainers
))
for
i
:=
range
containers
{
fakeContainer
:=
fakeContainers
[
i
]
c
,
err
:=
m
.
toKubeContainer
(
&
runtimeApi
.
Container
{
Id
:
fakeContainer
.
Id
,
Name
:
fakeContainer
.
Name
,
State
:
fakeContainer
.
State
,
Image
:
fakeContainer
.
Image
,
ImageRef
:
fakeContainer
.
ImageRef
,
Labels
:
fakeContainer
.
Labels
,
})
if
err
!=
nil
{
t
.
Fatalf
(
"unexpected error %v"
,
err
)
}
containers
[
i
]
=
c
}
expected
:=
[]
*
kubecontainer
.
Pod
{
{
ID
:
kubetypes
.
UID
(
"12345678"
),
Name
:
"foo"
,
Namespace
:
"new"
,
Containers
:
[]
*
kubecontainer
.
Container
{
containers
[
0
],
containers
[
1
]},
},
}
actual
,
err
:=
m
.
GetPods
(
false
)
assert
.
NoError
(
t
,
err
)
if
!
verifyPods
(
expected
,
actual
)
{
t
.
Errorf
(
"expected %#v, got %#v"
,
expected
,
actual
)
}
}
pkg/kubelet/kuberuntime/kuberuntime_sandbox.go
View file @
e3e10ddf
...
@@ -17,6 +17,7 @@ limitations under the License.
...
@@ -17,6 +17,7 @@ limitations under the License.
package
kuberuntime
package
kuberuntime
import
(
import
(
"github.com/golang/glog"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
runtimeApi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
runtimeApi
"k8s.io/kubernetes/pkg/kubelet/api/v1alpha1/runtime"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
kubecontainer
"k8s.io/kubernetes/pkg/kubelet/container"
...
@@ -105,3 +106,32 @@ func generatePodSandboxLinuxConfig(pod *api.Pod, cgroupParent string) *runtimeAp
...
@@ -105,3 +106,32 @@ func generatePodSandboxLinuxConfig(pod *api.Pod, cgroupParent string) *runtimeAp
return
linuxPodSandboxConfig
return
linuxPodSandboxConfig
}
}
// getKubeletSandboxes lists all (or just the running) sandboxes managed by kubelet.
func
(
m
*
kubeGenericRuntimeManager
)
getKubeletSandboxes
(
all
bool
)
([]
*
runtimeApi
.
PodSandbox
,
error
)
{
var
filter
*
runtimeApi
.
PodSandboxFilter
if
!
all
{
readyState
:=
runtimeApi
.
PodSandBoxState_READY
filter
=
&
runtimeApi
.
PodSandboxFilter
{
State
:
&
readyState
,
}
}
resp
,
err
:=
m
.
runtimeService
.
ListPodSandbox
(
filter
)
if
err
!=
nil
{
glog
.
Errorf
(
"ListPodSandbox failed: %v"
,
err
)
return
nil
,
err
}
result
:=
[]
*
runtimeApi
.
PodSandbox
{}
for
_
,
s
:=
range
resp
{
if
!
isManagedByKubelet
(
s
.
Labels
)
{
glog
.
V
(
5
)
.
Infof
(
"Sandbox %s is not managed by kubelet"
,
s
.
GetName
())
continue
}
result
=
append
(
result
,
s
)
}
return
result
,
nil
}
pkg/kubelet/kuberuntime/labels.go
View file @
e3e10ddf
...
@@ -39,6 +39,9 @@ const (
...
@@ -39,6 +39,9 @@ const (
containerTerminationMessagePathLabel
=
"io.kubernetes.container.terminationMessagePath"
containerTerminationMessagePathLabel
=
"io.kubernetes.container.terminationMessagePath"
containerPreStopHandlerLabel
=
"io.kubernetes.container.preStopHandler"
containerPreStopHandlerLabel
=
"io.kubernetes.container.preStopHandler"
containerPortsLabel
=
"io.kubernetes.container.ports"
containerPortsLabel
=
"io.kubernetes.container.ports"
// kubernetesManagedLabel is used to distinguish whether a container/sandbox is managed by kubelet or not
kubernetesManagedLabel
=
"io.kubernetes.managed"
)
)
type
labeledPodSandboxInfo
struct
{
type
labeledPodSandboxInfo
struct
{
...
@@ -83,6 +86,7 @@ func newPodLabels(pod *api.Pod) map[string]string {
...
@@ -83,6 +86,7 @@ func newPodLabels(pod *api.Pod) map[string]string {
labels
[
types
.
KubernetesPodNameLabel
]
=
pod
.
Name
labels
[
types
.
KubernetesPodNameLabel
]
=
pod
.
Name
labels
[
types
.
KubernetesPodNamespaceLabel
]
=
pod
.
Namespace
labels
[
types
.
KubernetesPodNamespaceLabel
]
=
pod
.
Namespace
labels
[
types
.
KubernetesPodUIDLabel
]
=
string
(
pod
.
UID
)
labels
[
types
.
KubernetesPodUIDLabel
]
=
string
(
pod
.
UID
)
labels
[
kubernetesManagedLabel
]
=
"true"
return
labels
return
labels
}
}
...
@@ -99,6 +103,7 @@ func newContainerLabels(container *api.Container, pod *api.Pod) map[string]strin
...
@@ -99,6 +103,7 @@ func newContainerLabels(container *api.Container, pod *api.Pod) map[string]strin
labels
[
types
.
KubernetesPodNamespaceLabel
]
=
pod
.
Namespace
labels
[
types
.
KubernetesPodNamespaceLabel
]
=
pod
.
Namespace
labels
[
types
.
KubernetesPodUIDLabel
]
=
string
(
pod
.
UID
)
labels
[
types
.
KubernetesPodUIDLabel
]
=
string
(
pod
.
UID
)
labels
[
types
.
KubernetesContainerNameLabel
]
=
container
.
Name
labels
[
types
.
KubernetesContainerNameLabel
]
=
container
.
Name
labels
[
kubernetesManagedLabel
]
=
"true"
return
labels
return
labels
}
}
...
@@ -150,7 +155,7 @@ func getPodSandboxInfoFromLabels(labels map[string]string) *labeledPodSandboxInf
...
@@ -150,7 +155,7 @@ func getPodSandboxInfoFromLabels(labels map[string]string) *labeledPodSandboxInf
// Remain only labels from api.Pod
// Remain only labels from api.Pod
for
k
,
v
:=
range
labels
{
for
k
,
v
:=
range
labels
{
if
k
!=
types
.
KubernetesPodNameLabel
&&
k
!=
types
.
KubernetesPodNamespaceLabel
&&
k
!=
types
.
KubernetesPodUIDLabel
{
if
k
!=
types
.
KubernetesPodNameLabel
&&
k
!=
types
.
KubernetesPodNamespaceLabel
&&
k
!=
types
.
KubernetesPodUIDLabel
&&
k
!=
kubernetesManagedLabel
{
podSandboxInfo
.
Labels
[
k
]
=
v
podSandboxInfo
.
Labels
[
k
]
=
v
}
}
}
}
...
@@ -175,6 +180,15 @@ func getContainerInfoFromLabels(labels map[string]string) *labeledContainerInfo
...
@@ -175,6 +180,15 @@ func getContainerInfoFromLabels(labels map[string]string) *labeledContainerInfo
}
}
}
}
// isManagedByKubelet returns true is the sandbox/container is managed by kubelet.
func
isManagedByKubelet
(
labels
map
[
string
]
string
)
bool
{
if
_
,
ok
:=
labels
[
kubernetesManagedLabel
];
ok
{
return
true
}
return
false
}
// getContainerInfoFromAnnotations gets annotatedContainerInfo from annotations.
// getContainerInfoFromAnnotations gets annotatedContainerInfo from annotations.
func
getContainerInfoFromAnnotations
(
annotations
map
[
string
]
string
)
*
annotatedContainerInfo
{
func
getContainerInfoFromAnnotations
(
annotations
map
[
string
]
string
)
*
annotatedContainerInfo
{
var
err
error
var
err
error
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment