Replace swarm Capabilites API with cap add/drop API
| ... | ... |
@@ -489,9 +489,6 @@ func (s *containerRouter) postContainersCreate(ctx context.Context, w http.Respo |
| 489 | 489 |
// Ignore KernelMemoryTCP because it was added in API 1.40. |
| 490 | 490 |
hostConfig.KernelMemoryTCP = 0 |
| 491 | 491 |
|
| 492 |
- // Ignore Capabilities because it was added in API 1.40. |
|
| 493 |
- hostConfig.Capabilities = nil |
|
| 494 |
- |
|
| 495 | 492 |
// Older clients (API < 1.40) expects the default to be shareable, make them happy |
| 496 | 493 |
if hostConfig.IpcMode.IsEmpty() {
|
| 497 | 494 |
hostConfig.IpcMode = container.IpcMode("shareable")
|
| ... | ... |
@@ -99,7 +99,8 @@ func adjustForAPIVersion(cliVersion string, service *swarm.ServiceSpec) {
|
| 99 | 99 |
if service.TaskTemplate.ContainerSpec != nil {
|
| 100 | 100 |
// Capabilities for docker swarm services weren't |
| 101 | 101 |
// supported before API version 1.41 |
| 102 |
- service.TaskTemplate.ContainerSpec.Capabilities = nil |
|
| 102 |
+ service.TaskTemplate.ContainerSpec.CapabilityAdd = nil |
|
| 103 |
+ service.TaskTemplate.ContainerSpec.CapabilityDrop = nil |
|
| 103 | 104 |
} |
| 104 | 105 |
if service.TaskTemplate.Resources != nil && service.TaskTemplate.Resources.Limits != nil {
|
| 105 | 106 |
// Limits.Pids not supported before API version 1.41 |
| ... | ... |
@@ -906,15 +906,6 @@ definitions: |
| 906 | 906 |
$ref: "#/definitions/Mount" |
| 907 | 907 |
|
| 908 | 908 |
# Applicable to UNIX platforms |
| 909 |
- Capabilities: |
|
| 910 |
- type: "array" |
|
| 911 |
- description: | |
|
| 912 |
- A list of kernel capabilities to be available for container (this |
|
| 913 |
- overrides the default set). |
|
| 914 |
- |
|
| 915 |
- Conflicts with options 'CapAdd' and 'CapDrop'" |
|
| 916 |
- items: |
|
| 917 |
- type: "string" |
|
| 918 | 909 |
CapAdd: |
| 919 | 910 |
type: "array" |
| 920 | 911 |
description: | |
| ... | ... |
@@ -3288,11 +3279,11 @@ definitions: |
| 3288 | 3288 |
additionalProperties: |
| 3289 | 3289 |
type: "string" |
| 3290 | 3290 |
# This option is not used by Windows containers |
| 3291 |
- Capabilities: |
|
| 3291 |
+ CapabilityAdd: |
|
| 3292 | 3292 |
type: "array" |
| 3293 | 3293 |
description: | |
| 3294 |
- A list of kernel capabilities to be available for container (this |
|
| 3295 |
- overrides the default set). |
|
| 3294 |
+ A list of kernel capabilities to add to the default set |
|
| 3295 |
+ for the container. |
|
| 3296 | 3296 |
items: |
| 3297 | 3297 |
type: "string" |
| 3298 | 3298 |
example: |
| ... | ... |
@@ -3300,6 +3291,15 @@ definitions: |
| 3300 | 3300 |
- "CAP_SYS_ADMIN" |
| 3301 | 3301 |
- "CAP_SYS_CHROOT" |
| 3302 | 3302 |
- "CAP_SYSLOG" |
| 3303 |
+ CapabilityDrop: |
|
| 3304 |
+ type: "array" |
|
| 3305 |
+ description: | |
|
| 3306 |
+ A list of kernel capabilities to drop from the default set |
|
| 3307 |
+ for the container. |
|
| 3308 |
+ items: |
|
| 3309 |
+ type: "string" |
|
| 3310 |
+ example: |
|
| 3311 |
+ - "CAP_NET_RAW" |
|
| 3303 | 3312 |
NetworkAttachmentSpec: |
| 3304 | 3313 |
description: | |
| 3305 | 3314 |
Read-only spec type for non-swarm containers attached to swarm overlay |
| ... | ... |
@@ -403,7 +403,6 @@ type HostConfig struct {
|
| 403 | 403 |
// Applicable to UNIX platforms |
| 404 | 404 |
CapAdd strslice.StrSlice // List of kernel capabilities to add to the container |
| 405 | 405 |
CapDrop strslice.StrSlice // List of kernel capabilities to remove from the container |
| 406 |
- Capabilities []string `json:"Capabilities"` // List of kernel capabilities to be available for container (this overrides the default set) |
|
| 407 | 406 |
CgroupnsMode CgroupnsMode // Cgroup namespace mode to use for the container |
| 408 | 407 |
DNS []string `json:"Dns"` // List of DNS server to lookup |
| 409 | 408 |
DNSOptions []string `json:"DnsOptions"` // List of DNSOption to look for |
| ... | ... |
@@ -67,11 +67,12 @@ type ContainerSpec struct {
|
| 67 | 67 |
// The format of extra hosts on swarmkit is specified in: |
| 68 | 68 |
// http://man7.org/linux/man-pages/man5/hosts.5.html |
| 69 | 69 |
// IP_address canonical_hostname [aliases...] |
| 70 |
- Hosts []string `json:",omitempty"` |
|
| 71 |
- DNSConfig *DNSConfig `json:",omitempty"` |
|
| 72 |
- Secrets []*SecretReference `json:",omitempty"` |
|
| 73 |
- Configs []*ConfigReference `json:",omitempty"` |
|
| 74 |
- Isolation container.Isolation `json:",omitempty"` |
|
| 75 |
- Sysctls map[string]string `json:",omitempty"` |
|
| 76 |
- Capabilities []string `json:",omitempty"` |
|
| 70 |
+ Hosts []string `json:",omitempty"` |
|
| 71 |
+ DNSConfig *DNSConfig `json:",omitempty"` |
|
| 72 |
+ Secrets []*SecretReference `json:",omitempty"` |
|
| 73 |
+ Configs []*ConfigReference `json:",omitempty"` |
|
| 74 |
+ Isolation container.Isolation `json:",omitempty"` |
|
| 75 |
+ Sysctls map[string]string `json:",omitempty"` |
|
| 76 |
+ CapabilityAdd []string `json:",omitempty"` |
|
| 77 |
+ CapabilityDrop []string `json:",omitempty"` |
|
| 77 | 78 |
} |
| ... | ... |
@@ -18,26 +18,27 @@ func containerSpecFromGRPC(c *swarmapi.ContainerSpec) *types.ContainerSpec {
|
| 18 | 18 |
return nil |
| 19 | 19 |
} |
| 20 | 20 |
containerSpec := &types.ContainerSpec{
|
| 21 |
- Image: c.Image, |
|
| 22 |
- Labels: c.Labels, |
|
| 23 |
- Command: c.Command, |
|
| 24 |
- Args: c.Args, |
|
| 25 |
- Hostname: c.Hostname, |
|
| 26 |
- Env: c.Env, |
|
| 27 |
- Dir: c.Dir, |
|
| 28 |
- User: c.User, |
|
| 29 |
- Groups: c.Groups, |
|
| 30 |
- StopSignal: c.StopSignal, |
|
| 31 |
- TTY: c.TTY, |
|
| 32 |
- OpenStdin: c.OpenStdin, |
|
| 33 |
- ReadOnly: c.ReadOnly, |
|
| 34 |
- Hosts: c.Hosts, |
|
| 35 |
- Secrets: secretReferencesFromGRPC(c.Secrets), |
|
| 36 |
- Configs: configReferencesFromGRPC(c.Configs), |
|
| 37 |
- Isolation: IsolationFromGRPC(c.Isolation), |
|
| 38 |
- Init: initFromGRPC(c.Init), |
|
| 39 |
- Sysctls: c.Sysctls, |
|
| 40 |
- Capabilities: c.Capabilities, |
|
| 21 |
+ Image: c.Image, |
|
| 22 |
+ Labels: c.Labels, |
|
| 23 |
+ Command: c.Command, |
|
| 24 |
+ Args: c.Args, |
|
| 25 |
+ Hostname: c.Hostname, |
|
| 26 |
+ Env: c.Env, |
|
| 27 |
+ Dir: c.Dir, |
|
| 28 |
+ User: c.User, |
|
| 29 |
+ Groups: c.Groups, |
|
| 30 |
+ StopSignal: c.StopSignal, |
|
| 31 |
+ TTY: c.TTY, |
|
| 32 |
+ OpenStdin: c.OpenStdin, |
|
| 33 |
+ ReadOnly: c.ReadOnly, |
|
| 34 |
+ Hosts: c.Hosts, |
|
| 35 |
+ Secrets: secretReferencesFromGRPC(c.Secrets), |
|
| 36 |
+ Configs: configReferencesFromGRPC(c.Configs), |
|
| 37 |
+ Isolation: IsolationFromGRPC(c.Isolation), |
|
| 38 |
+ Init: initFromGRPC(c.Init), |
|
| 39 |
+ Sysctls: c.Sysctls, |
|
| 40 |
+ CapabilityAdd: c.CapabilityAdd, |
|
| 41 |
+ CapabilityDrop: c.CapabilityDrop, |
|
| 41 | 42 |
} |
| 42 | 43 |
|
| 43 | 44 |
if c.DNSConfig != nil {
|
| ... | ... |
@@ -246,25 +247,26 @@ func configReferencesFromGRPC(sr []*swarmapi.ConfigReference) []*types.ConfigRef |
| 246 | 246 |
|
| 247 | 247 |
func containerToGRPC(c *types.ContainerSpec) (*swarmapi.ContainerSpec, error) {
|
| 248 | 248 |
containerSpec := &swarmapi.ContainerSpec{
|
| 249 |
- Image: c.Image, |
|
| 250 |
- Labels: c.Labels, |
|
| 251 |
- Command: c.Command, |
|
| 252 |
- Args: c.Args, |
|
| 253 |
- Hostname: c.Hostname, |
|
| 254 |
- Env: c.Env, |
|
| 255 |
- Dir: c.Dir, |
|
| 256 |
- User: c.User, |
|
| 257 |
- Groups: c.Groups, |
|
| 258 |
- StopSignal: c.StopSignal, |
|
| 259 |
- TTY: c.TTY, |
|
| 260 |
- OpenStdin: c.OpenStdin, |
|
| 261 |
- ReadOnly: c.ReadOnly, |
|
| 262 |
- Hosts: c.Hosts, |
|
| 263 |
- Secrets: secretReferencesToGRPC(c.Secrets), |
|
| 264 |
- Isolation: isolationToGRPC(c.Isolation), |
|
| 265 |
- Init: initToGRPC(c.Init), |
|
| 266 |
- Sysctls: c.Sysctls, |
|
| 267 |
- Capabilities: c.Capabilities, |
|
| 249 |
+ Image: c.Image, |
|
| 250 |
+ Labels: c.Labels, |
|
| 251 |
+ Command: c.Command, |
|
| 252 |
+ Args: c.Args, |
|
| 253 |
+ Hostname: c.Hostname, |
|
| 254 |
+ Env: c.Env, |
|
| 255 |
+ Dir: c.Dir, |
|
| 256 |
+ User: c.User, |
|
| 257 |
+ Groups: c.Groups, |
|
| 258 |
+ StopSignal: c.StopSignal, |
|
| 259 |
+ TTY: c.TTY, |
|
| 260 |
+ OpenStdin: c.OpenStdin, |
|
| 261 |
+ ReadOnly: c.ReadOnly, |
|
| 262 |
+ Hosts: c.Hosts, |
|
| 263 |
+ Secrets: secretReferencesToGRPC(c.Secrets), |
|
| 264 |
+ Isolation: isolationToGRPC(c.Isolation), |
|
| 265 |
+ Init: initToGRPC(c.Init), |
|
| 266 |
+ Sysctls: c.Sysctls, |
|
| 267 |
+ CapabilityAdd: c.CapabilityAdd, |
|
| 268 |
+ CapabilityDrop: c.CapabilityDrop, |
|
| 268 | 269 |
} |
| 269 | 270 |
|
| 270 | 271 |
if c.DNSConfig != nil {
|
| ... | ... |
@@ -360,7 +360,8 @@ func (c *containerConfig) hostConfig() *enginecontainer.HostConfig {
|
| 360 | 360 |
Isolation: c.isolation(), |
| 361 | 361 |
Init: c.init(), |
| 362 | 362 |
Sysctls: c.spec().Sysctls, |
| 363 |
- Capabilities: c.spec().Capabilities, |
|
| 363 |
+ CapAdd: c.spec().CapabilityAdd, |
|
| 364 |
+ CapDrop: c.spec().CapabilityDrop, |
|
| 364 | 365 |
} |
| 365 | 366 |
|
| 366 | 367 |
if c.spec().DNSConfig != nil {
|
| ... | ... |
@@ -305,21 +305,12 @@ func validateHostConfig(hostConfig *containertypes.HostConfig, platform string) |
| 305 | 305 |
} |
| 306 | 306 |
|
| 307 | 307 |
func validateCapabilities(hostConfig *containertypes.HostConfig) error {
|
| 308 |
- if len(hostConfig.CapAdd) > 0 && hostConfig.Capabilities != nil {
|
|
| 309 |
- return errdefs.InvalidParameter(errors.Errorf("conflicting options: Capabilities and CapAdd"))
|
|
| 310 |
- } |
|
| 311 |
- if len(hostConfig.CapDrop) > 0 && hostConfig.Capabilities != nil {
|
|
| 312 |
- return errdefs.InvalidParameter(errors.Errorf("conflicting options: Capabilities and CapDrop"))
|
|
| 313 |
- } |
|
| 314 | 308 |
if _, err := caps.NormalizeLegacyCapabilities(hostConfig.CapAdd); err != nil {
|
| 315 | 309 |
return errors.Wrap(err, "invalid CapAdd") |
| 316 | 310 |
} |
| 317 | 311 |
if _, err := caps.NormalizeLegacyCapabilities(hostConfig.CapDrop); err != nil {
|
| 318 | 312 |
return errors.Wrap(err, "invalid CapDrop") |
| 319 | 313 |
} |
| 320 |
- if err := caps.ValidateCapabilities(hostConfig.Capabilities); err != nil {
|
|
| 321 |
- return errors.Wrap(err, "invalid Capabilities") |
|
| 322 |
- } |
|
| 323 | 314 |
// TODO consider returning warnings if "Privileged" is combined with Capabilities, CapAdd and/or CapDrop |
| 324 | 315 |
return nil |
| 325 | 316 |
} |
| ... | ... |
@@ -390,7 +390,7 @@ func (daemon *Daemon) createSpecLinuxFields(c *container.Container, s *specs.Spe |
| 390 | 390 |
// Note these are against the UVM. |
| 391 | 391 |
setResourcesInSpec(c, s, true) // LCOW is Hyper-V only |
| 392 | 392 |
|
| 393 |
- capabilities, err := caps.TweakCapabilities(caps.DefaultCapabilities(), c.HostConfig.CapAdd, c.HostConfig.CapDrop, c.HostConfig.Capabilities, c.HostConfig.Privileged) |
|
| 393 |
+ capabilities, err := caps.TweakCapabilities(caps.DefaultCapabilities(), c.HostConfig.CapAdd, c.HostConfig.CapDrop, c.HostConfig.Privileged) |
|
| 394 | 394 |
if err != nil {
|
| 395 | 395 |
return fmt.Errorf("linux spec capabilities: %v", err)
|
| 396 | 396 |
} |
| ... | ... |
@@ -28,12 +28,12 @@ keywords: "API, Docker, rcli, REST, documentation" |
| 28 | 28 |
* The `filter` (singular) query parameter, which was deprecated in favor of the |
| 29 | 29 |
`filters` option in Docker 1.13, has now been removed from the `GET /images/json` |
| 30 | 30 |
endpoint. The parameter remains available when using API version 1.40 or below. |
| 31 |
-* `GET /services` now returns `Capabilities` as part of the `ContainerSpec`. |
|
| 32 |
-* `GET /services/{id}` now returns `Capabilities` as part of the `ContainerSpec`.
|
|
| 33 |
-* `POST /services/create` now accepts `Capabilities` as part of the `ContainerSpec`. |
|
| 34 |
-* `POST /services/{id}/update` now accepts `Capabilities` as part of the `ContainerSpec`.
|
|
| 35 |
-* `GET /tasks` now returns `Capabilities` as part of the `ContainerSpec`. |
|
| 36 |
-* `GET /tasks/{id}` now returns `Capabilities` as part of the `ContainerSpec`.
|
|
| 31 |
+* `GET /services` now returns `CappAdd` and `CapDrop` as part of the `ContainerSpec`. |
|
| 32 |
+* `GET /services/{id}` now returns `CapAdd` and `CapDrop` as part of the `ContainerSpec`.
|
|
| 33 |
+* `POST /services/create` now accepts `CapAdd` and `CapDrop` as part of the `ContainerSpec`. |
|
| 34 |
+* `POST /services/{id}/update` now accepts `CapAdd` and `CapDrop` as part of the `ContainerSpec`.
|
|
| 35 |
+* `GET /tasks` now returns `CapAdd` and `CapDrop` as part of the `ContainerSpec`. |
|
| 36 |
+* `GET /tasks/{id}` now returns `CapAdd` and `CapDrop` as part of the `ContainerSpec`.
|
|
| 37 | 37 |
* `GET /services` now returns `Pids` in `TaskTemplate.Resources.Limits`. |
| 38 | 38 |
* `GET /services/{id}` now returns `Pids` in `TaskTemplate.Resources.Limits`.
|
| 39 | 39 |
* `POST /services/create` now accepts `Pids` in `TaskTemplate.Resources.Limits`. |
| ... | ... |
@@ -135,11 +135,6 @@ keywords: "API, Docker, rcli, REST, documentation" |
| 135 | 135 |
* `GET /service/{id}` now returns `MaxReplicas` as part of the `Placement`.
|
| 136 | 136 |
* `POST /service/create` and `POST /services/(id or name)/update` now take the field `MaxReplicas` |
| 137 | 137 |
as part of the service `Placement`, allowing to specify maximum replicas per node for the service. |
| 138 |
-* `GET /containers` now returns `Capabilities` field as part of the `HostConfig`. |
|
| 139 |
-* `GET /containers/{id}/json` now returns a `Capabilities` field as part of the `HostConfig`.
|
|
| 140 |
-* `POST /containers/create` now takes a `Capabilities` field to set the list of |
|
| 141 |
- kernel capabilities to be available for the container (this overrides the default |
|
| 142 |
- set). |
|
| 143 | 138 |
* `POST /containers/create` on Linux now creates a container with `HostConfig.IpcMode=private` |
| 144 | 139 |
by default, if IpcMode is not explicitly specified. The per-daemon default can be changed |
| 145 | 140 |
back to `shareable` by using `DefaultIpcMode` daemon configuration parameter. |
| ... | ... |
@@ -17,7 +17,6 @@ import ( |
| 17 | 17 |
"github.com/docker/docker/errdefs" |
| 18 | 18 |
ctr "github.com/docker/docker/integration/internal/container" |
| 19 | 19 |
"github.com/docker/docker/oci" |
| 20 |
- "github.com/docker/docker/testutil/request" |
|
| 21 | 20 |
specs "github.com/opencontainers/image-spec/specs-go/v1" |
| 22 | 21 |
"gotest.tools/v3/assert" |
| 23 | 22 |
is "gotest.tools/v3/assert/cmp" |
| ... | ... |
@@ -258,133 +257,6 @@ func TestCreateWithCustomMaskedPaths(t *testing.T) {
|
| 258 | 258 |
} |
| 259 | 259 |
} |
| 260 | 260 |
|
| 261 |
-func TestCreateWithCapabilities(t *testing.T) {
|
|
| 262 |
- skip.If(t, testEnv.DaemonInfo.OSType == "windows", "FIXME: test should be able to run on LCOW") |
|
| 263 |
- skip.If(t, versions.LessThan(testEnv.DaemonAPIVersion(), "1.40"), "Capabilities was added in API v1.40") |
|
| 264 |
- |
|
| 265 |
- defer setupTest(t)() |
|
| 266 |
- ctx := context.Background() |
|
| 267 |
- clientNew := request.NewAPIClient(t) |
|
| 268 |
- clientOld := request.NewAPIClient(t, client.WithVersion("1.39"))
|
|
| 269 |
- |
|
| 270 |
- testCases := []struct {
|
|
| 271 |
- doc string |
|
| 272 |
- hostConfig container.HostConfig |
|
| 273 |
- expected []string |
|
| 274 |
- expectedError string |
|
| 275 |
- oldClient bool |
|
| 276 |
- }{
|
|
| 277 |
- {
|
|
| 278 |
- doc: "no capabilities", |
|
| 279 |
- hostConfig: container.HostConfig{},
|
|
| 280 |
- }, |
|
| 281 |
- {
|
|
| 282 |
- doc: "empty capabilities", |
|
| 283 |
- hostConfig: container.HostConfig{
|
|
| 284 |
- Capabilities: []string{},
|
|
| 285 |
- }, |
|
| 286 |
- expected: []string{},
|
|
| 287 |
- }, |
|
| 288 |
- {
|
|
| 289 |
- doc: "valid capabilities", |
|
| 290 |
- hostConfig: container.HostConfig{
|
|
| 291 |
- Capabilities: []string{"CAP_NET_RAW", "CAP_SYS_CHROOT"},
|
|
| 292 |
- }, |
|
| 293 |
- expected: []string{"CAP_NET_RAW", "CAP_SYS_CHROOT"},
|
|
| 294 |
- }, |
|
| 295 |
- {
|
|
| 296 |
- doc: "invalid capabilities", |
|
| 297 |
- hostConfig: container.HostConfig{
|
|
| 298 |
- Capabilities: []string{"NET_RAW"},
|
|
| 299 |
- }, |
|
| 300 |
- expectedError: `invalid Capabilities: unknown capability: "NET_RAW"`, |
|
| 301 |
- }, |
|
| 302 |
- {
|
|
| 303 |
- doc: "duplicate capabilities", |
|
| 304 |
- hostConfig: container.HostConfig{
|
|
| 305 |
- Capabilities: []string{"CAP_SYS_NICE", "CAP_SYS_NICE"},
|
|
| 306 |
- }, |
|
| 307 |
- expected: []string{"CAP_SYS_NICE", "CAP_SYS_NICE"},
|
|
| 308 |
- }, |
|
| 309 |
- {
|
|
| 310 |
- doc: "capabilities API v1.39", |
|
| 311 |
- hostConfig: container.HostConfig{
|
|
| 312 |
- Capabilities: []string{"CAP_NET_RAW", "CAP_SYS_CHROOT"},
|
|
| 313 |
- }, |
|
| 314 |
- expected: nil, |
|
| 315 |
- oldClient: true, |
|
| 316 |
- }, |
|
| 317 |
- {
|
|
| 318 |
- doc: "empty capadd", |
|
| 319 |
- hostConfig: container.HostConfig{
|
|
| 320 |
- Capabilities: []string{"CAP_NET_ADMIN"},
|
|
| 321 |
- CapAdd: []string{},
|
|
| 322 |
- }, |
|
| 323 |
- expected: []string{"CAP_NET_ADMIN"},
|
|
| 324 |
- }, |
|
| 325 |
- {
|
|
| 326 |
- doc: "empty capdrop", |
|
| 327 |
- hostConfig: container.HostConfig{
|
|
| 328 |
- Capabilities: []string{"CAP_NET_ADMIN"},
|
|
| 329 |
- CapDrop: []string{},
|
|
| 330 |
- }, |
|
| 331 |
- expected: []string{"CAP_NET_ADMIN"},
|
|
| 332 |
- }, |
|
| 333 |
- {
|
|
| 334 |
- doc: "capadd capdrop", |
|
| 335 |
- hostConfig: container.HostConfig{
|
|
| 336 |
- CapAdd: []string{"SYS_NICE", "CAP_SYS_NICE"},
|
|
| 337 |
- CapDrop: []string{"SYS_NICE", "CAP_SYS_NICE"},
|
|
| 338 |
- }, |
|
| 339 |
- }, |
|
| 340 |
- {
|
|
| 341 |
- doc: "conflict with capadd", |
|
| 342 |
- hostConfig: container.HostConfig{
|
|
| 343 |
- Capabilities: []string{"CAP_NET_ADMIN"},
|
|
| 344 |
- CapAdd: []string{"SYS_NICE"},
|
|
| 345 |
- }, |
|
| 346 |
- expectedError: `conflicting options: Capabilities and CapAdd`, |
|
| 347 |
- }, |
|
| 348 |
- {
|
|
| 349 |
- doc: "conflict with capdrop", |
|
| 350 |
- hostConfig: container.HostConfig{
|
|
| 351 |
- Capabilities: []string{"CAP_NET_ADMIN"},
|
|
| 352 |
- CapDrop: []string{"NET_RAW"},
|
|
| 353 |
- }, |
|
| 354 |
- expectedError: `conflicting options: Capabilities and CapDrop`, |
|
| 355 |
- }, |
|
| 356 |
- } |
|
| 357 |
- |
|
| 358 |
- for _, tc := range testCases {
|
|
| 359 |
- tc := tc |
|
| 360 |
- t.Run(tc.doc, func(t *testing.T) {
|
|
| 361 |
- t.Parallel() |
|
| 362 |
- client := clientNew |
|
| 363 |
- if tc.oldClient {
|
|
| 364 |
- client = clientOld |
|
| 365 |
- } |
|
| 366 |
- |
|
| 367 |
- c, err := client.ContainerCreate(context.Background(), |
|
| 368 |
- &container.Config{Image: "busybox"},
|
|
| 369 |
- &tc.hostConfig, |
|
| 370 |
- &network.NetworkingConfig{},
|
|
| 371 |
- nil, |
|
| 372 |
- "", |
|
| 373 |
- ) |
|
| 374 |
- if tc.expectedError == "" {
|
|
| 375 |
- assert.NilError(t, err) |
|
| 376 |
- ci, err := client.ContainerInspect(ctx, c.ID) |
|
| 377 |
- assert.NilError(t, err) |
|
| 378 |
- assert.Check(t, ci.HostConfig != nil) |
|
| 379 |
- assert.DeepEqual(t, tc.expected, ci.HostConfig.Capabilities) |
|
| 380 |
- } else {
|
|
| 381 |
- assert.ErrorContains(t, err, tc.expectedError) |
|
| 382 |
- assert.Check(t, errdefs.IsInvalidParameter(err)) |
|
| 383 |
- } |
|
| 384 |
- }) |
|
| 385 |
- } |
|
| 386 |
-} |
|
| 387 |
- |
|
| 388 | 261 |
func TestCreateWithCustomReadonlyPaths(t *testing.T) {
|
| 389 | 262 |
skip.If(t, testEnv.DaemonInfo.OSType != "linux") |
| 390 | 263 |
|
| ... | ... |
@@ -189,10 +189,11 @@ func ServiceWithSysctls(sysctls map[string]string) ServiceSpecOpt {
|
| 189 | 189 |
} |
| 190 | 190 |
|
| 191 | 191 |
// ServiceWithCapabilities sets the Capabilities option of the service's ContainerSpec. |
| 192 |
-func ServiceWithCapabilities(Capabilities []string) ServiceSpecOpt {
|
|
| 192 |
+func ServiceWithCapabilities(add []string, drop []string) ServiceSpecOpt {
|
|
| 193 | 193 |
return func(spec *swarmtypes.ServiceSpec) {
|
| 194 | 194 |
ensureContainerSpec(spec) |
| 195 |
- spec.TaskTemplate.ContainerSpec.Capabilities = Capabilities |
|
| 195 |
+ spec.TaskTemplate.ContainerSpec.CapabilityAdd = add |
|
| 196 |
+ spec.TaskTemplate.ContainerSpec.CapabilityDrop = drop |
|
| 196 | 197 |
} |
| 197 | 198 |
} |
| 198 | 199 |
|
| ... | ... |
@@ -10,6 +10,7 @@ import ( |
| 10 | 10 |
|
| 11 | 11 |
"github.com/docker/docker/api/types" |
| 12 | 12 |
"github.com/docker/docker/api/types/filters" |
| 13 |
+ "github.com/docker/docker/api/types/strslice" |
|
| 13 | 14 |
swarmtypes "github.com/docker/docker/api/types/swarm" |
| 14 | 15 |
"github.com/docker/docker/api/types/versions" |
| 15 | 16 |
"github.com/docker/docker/client" |
| ... | ... |
@@ -492,12 +493,13 @@ func TestCreateServiceCapabilities(t *testing.T) {
|
| 492 | 492 |
ctx := context.Background() |
| 493 | 493 |
|
| 494 | 494 |
// store the map we're going to be using everywhere. |
| 495 |
- expectedCapabilities := []string{"CAP_NET_RAW", "CAP_SYS_CHROOT"}
|
|
| 495 |
+ capAdd := []string{"CAP_SYS_CHROOT"}
|
|
| 496 |
+ capDrop := []string{"CAP_NET_RAW"}
|
|
| 496 | 497 |
|
| 497 | 498 |
// Create the service with the capabilities options |
| 498 | 499 |
var instances uint64 = 1 |
| 499 | 500 |
serviceID := swarm.CreateService(t, d, |
| 500 |
- swarm.ServiceWithCapabilities(expectedCapabilities), |
|
| 501 |
+ swarm.ServiceWithCapabilities(capAdd, capDrop), |
|
| 501 | 502 |
) |
| 502 | 503 |
|
| 503 | 504 |
// wait for the service to converge to 1 running task as expected |
| ... | ... |
@@ -529,15 +531,16 @@ func TestCreateServiceCapabilities(t *testing.T) {
|
| 529 | 529 |
// verify that the container has the capabilities option set |
| 530 | 530 |
ctnr, err := client.ContainerInspect(ctx, tasks[0].Status.ContainerStatus.ContainerID) |
| 531 | 531 |
assert.NilError(t, err) |
| 532 |
- assert.DeepEqual(t, ctnr.HostConfig.Capabilities, expectedCapabilities) |
|
| 532 |
+ assert.DeepEqual(t, ctnr.HostConfig.CapAdd, strslice.StrSlice(capAdd)) |
|
| 533 |
+ assert.DeepEqual(t, ctnr.HostConfig.CapDrop, strslice.StrSlice(capDrop)) |
|
| 533 | 534 |
|
| 534 | 535 |
// verify that the task has the capabilities option set in the task object |
| 535 |
- assert.DeepEqual(t, tasks[0].Spec.ContainerSpec.Capabilities, expectedCapabilities) |
|
| 536 |
+ assert.DeepEqual(t, tasks[0].Spec.ContainerSpec.CapabilityAdd, capAdd) |
|
| 537 |
+ assert.DeepEqual(t, tasks[0].Spec.ContainerSpec.CapabilityDrop, capDrop) |
|
| 536 | 538 |
|
| 537 | 539 |
// verify that the service also has the capabilities set in the spec. |
| 538 | 540 |
service, _, err := client.ServiceInspectWithRaw(ctx, serviceID, types.ServiceInspectOptions{})
|
| 539 | 541 |
assert.NilError(t, err) |
| 540 |
- assert.DeepEqual(t, |
|
| 541 |
- service.Spec.TaskTemplate.ContainerSpec.Capabilities, expectedCapabilities, |
|
| 542 |
- ) |
|
| 542 |
+ assert.DeepEqual(t, service.Spec.TaskTemplate.ContainerSpec.CapabilityAdd, capAdd) |
|
| 543 |
+ assert.DeepEqual(t, service.Spec.TaskTemplate.ContainerSpec.CapabilityDrop, capDrop) |
|
| 543 | 544 |
} |
| ... | ... |
@@ -117,17 +117,11 @@ func ValidateCapabilities(caps []string) error {
|
| 117 | 117 |
|
| 118 | 118 |
// TweakCapabilities tweaks capabilities by adding, dropping, or overriding |
| 119 | 119 |
// capabilities in the basics capabilities list. |
| 120 |
-func TweakCapabilities(basics, adds, drops, capabilities []string, privileged bool) ([]string, error) {
|
|
| 120 |
+func TweakCapabilities(basics, adds, drops []string, privileged bool) ([]string, error) {
|
|
| 121 | 121 |
switch {
|
| 122 | 122 |
case privileged: |
| 123 | 123 |
// Privileged containers get all capabilities |
| 124 | 124 |
return GetAllCapabilities(), nil |
| 125 |
- case capabilities != nil: |
|
| 126 |
- // Use custom set of capabilities |
|
| 127 |
- if err := ValidateCapabilities(capabilities); err != nil {
|
|
| 128 |
- return nil, err |
|
| 129 |
- } |
|
| 130 |
- return capabilities, nil |
|
| 131 | 125 |
case len(adds) == 0 && len(drops) == 0: |
| 132 | 126 |
// Nothing to tweak; we're done |
| 133 | 127 |
return basics, nil |
| ... | ... |
@@ -134,7 +134,7 @@ github.com/gogo/googleapis 01e0f9cca9b92166042241267ee2 |
| 134 | 134 |
github.com/cilium/ebpf 60c3aa43f488292fe2ee50fb8b833b383ca8ebbb |
| 135 | 135 |
|
| 136 | 136 |
# cluster |
| 137 |
-github.com/docker/swarmkit ebe39a32e3ed4c3a3783a02c11cccf388818694c |
|
| 137 |
+github.com/docker/swarmkit 035d564a3686f5e348d861ec0c074ff26854c498 |
|
| 138 | 138 |
github.com/gogo/protobuf 5628607bb4c51c3157aacc3a50f0ab707582b805 # v1.3.1 |
| 139 | 139 |
github.com/golang/protobuf d23c5127dc24889085f8ccea5c9d560a57a879d8 # v1.3.3 |
| 140 | 140 |
github.com/cloudflare/cfssl 5d63dbd981b5c408effbb58c442d54761ff94fbd # 1.3.2 |
| ... | ... |
@@ -1019,8 +1019,10 @@ type ContainerSpec struct {
|
| 1019 | 1019 |
// |
| 1020 | 1020 |
// https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime |
| 1021 | 1021 |
Sysctls map[string]string `protobuf:"bytes,26,rep,name=sysctls,proto3" json:"sysctls,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` |
| 1022 |
- // Capabilities is the list of Linux capabilities to be available for container (this overrides the default set of capabilities) |
|
| 1023 |
- Capabilities []string `protobuf:"bytes,27,rep,name=capabilities,proto3" json:"capabilities,omitempty"` |
|
| 1022 |
+ // CapabilityAdd sets the list of capabilities to add to the default capability list |
|
| 1023 |
+ CapabilityAdd []string `protobuf:"bytes,27,rep,name=capability_add,json=capabilityAdd,proto3" json:"capability_add,omitempty"` |
|
| 1024 |
+ // CapabilityAdd sets the list of capabilities to drop from the default capability list |
|
| 1025 |
+ CapabilityDrop []string `protobuf:"bytes,28,rep,name=capability_drop,json=capabilityDrop,proto3" json:"capability_drop,omitempty"` |
|
| 1024 | 1026 |
} |
| 1025 | 1027 |
|
| 1026 | 1028 |
func (m *ContainerSpec) Reset() { *m = ContainerSpec{} }
|
| ... | ... |
@@ -1501,151 +1503,152 @@ func init() {
|
| 1501 | 1501 |
} |
| 1502 | 1502 |
|
| 1503 | 1503 |
var fileDescriptor_6589acc608f7d4fd = []byte{
|
| 1504 |
- // 2289 bytes of a gzipped FileDescriptorProto |
|
| 1505 |
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x73, 0x23, 0xb7, |
|
| 1506 |
- 0xd1, 0x26, 0x25, 0x8a, 0x1f, 0x3d, 0xa4, 0x96, 0x82, 0xd7, 0xf6, 0x88, 0x6b, 0x53, 0x34, 0xbd, |
|
| 1507 |
- 0xf6, 0x2b, 0xdb, 0xf5, 0x52, 0x15, 0xc5, 0xe5, 0xf8, 0x23, 0x4e, 0x42, 0x8a, 0xb4, 0x44, 0xef, |
|
| 1508 |
- 0xae, 0xc4, 0x02, 0x65, 0x25, 0x5b, 0x95, 0x2a, 0x16, 0x38, 0x03, 0x91, 0x13, 0x0d, 0x07, 0x13, |
|
| 1509 |
- 0x0c, 0x28, 0x9b, 0xb7, 0x1c, 0x5d, 0xca, 0x25, 0x7f, 0x40, 0xa7, 0x54, 0x4e, 0xb9, 0x24, 0xff, |
|
| 1510 |
- 0x62, 0x8f, 0x3e, 0x3a, 0x17, 0x55, 0xac, 0xfd, 0x09, 0xb9, 0xe5, 0x92, 0x14, 0x30, 0x98, 0x21, |
|
| 1511 |
- 0xa9, 0x25, 0x57, 0x9b, 0xca, 0x1e, 0x72, 0x03, 0x7a, 0x9e, 0xa7, 0xd1, 0x0d, 0x74, 0x37, 0x1a, |
|
| 1512 |
- 0x03, 0xef, 0x0f, 0x1c, 0x31, 0x1c, 0xf7, 0x6b, 0x16, 0x1b, 0xed, 0xd8, 0xcc, 0x3a, 0xa3, 0x7c, |
|
| 1513 |
- 0x27, 0xf8, 0x9a, 0xf0, 0xd1, 0x99, 0x23, 0x76, 0x88, 0xef, 0xec, 0x04, 0x3e, 0xb5, 0x82, 0x9a, |
|
| 1514 |
- 0xcf, 0x99, 0x60, 0x08, 0x85, 0x80, 0x5a, 0x04, 0xa8, 0x9d, 0xff, 0xa8, 0x74, 0x1b, 0x5f, 0x4c, |
|
| 1515 |
- 0x7c, 0xaa, 0xf9, 0xa5, 0xbb, 0x03, 0x36, 0x60, 0x6a, 0xb8, 0x23, 0x47, 0x5a, 0x5a, 0x1e, 0x30, |
|
| 1516 |
- 0x36, 0x70, 0xe9, 0x8e, 0x9a, 0xf5, 0xc7, 0xa7, 0x3b, 0xf6, 0x98, 0x13, 0xe1, 0x30, 0x4f, 0x7f, |
|
| 1517 |
- 0xdf, 0xbc, 0xf9, 0x9d, 0x78, 0x93, 0x65, 0xd4, 0xaf, 0x39, 0xf1, 0x7d, 0xca, 0xf5, 0x82, 0xd5, |
|
| 1518 |
- 0xcb, 0x14, 0x64, 0x0f, 0x99, 0x4d, 0xbb, 0x3e, 0xb5, 0xd0, 0x3e, 0x18, 0xc4, 0xf3, 0x98, 0x50, |
|
| 1519 |
- 0xba, 0x03, 0x33, 0x59, 0x49, 0x6e, 0x1b, 0xbb, 0x5b, 0xb5, 0x67, 0x7d, 0xaa, 0xd5, 0xa7, 0xb0, |
|
| 1520 |
- 0x46, 0xea, 0xc9, 0xd5, 0x56, 0x02, 0xcf, 0x32, 0xd1, 0xcf, 0x21, 0x6f, 0xd3, 0xc0, 0xe1, 0xd4, |
|
| 1521 |
- 0xee, 0x71, 0xe6, 0x52, 0x73, 0xa5, 0x92, 0xdc, 0x5e, 0xdf, 0x7d, 0x63, 0x91, 0x26, 0xb9, 0x38, |
|
| 1522 |
- 0x66, 0x2e, 0xc5, 0x86, 0x66, 0xc8, 0x09, 0xda, 0x07, 0x18, 0xd1, 0x51, 0x9f, 0xf2, 0x60, 0xe8, |
|
| 1523 |
- 0xf8, 0xe6, 0xaa, 0xa2, 0xff, 0xdf, 0x32, 0xba, 0xb4, 0xbd, 0xf6, 0x28, 0x86, 0xe3, 0x19, 0x2a, |
|
| 1524 |
- 0x7a, 0x04, 0x79, 0x72, 0x4e, 0x1c, 0x97, 0xf4, 0x1d, 0xd7, 0x11, 0x13, 0x33, 0xa5, 0x54, 0xbd, |
|
| 1525 |
- 0xf7, 0x5c, 0x55, 0xf5, 0x19, 0x02, 0x9e, 0xa3, 0x57, 0x6d, 0x80, 0xe9, 0x42, 0xe8, 0x5d, 0xc8, |
|
| 1526 |
- 0x74, 0x5a, 0x87, 0xcd, 0xf6, 0xe1, 0x7e, 0x31, 0x51, 0xda, 0xbc, 0xb8, 0xac, 0xbc, 0x2a, 0x75, |
|
| 1527 |
- 0x4c, 0x01, 0x1d, 0xea, 0xd9, 0x8e, 0x37, 0x40, 0xdb, 0x90, 0xad, 0xef, 0xed, 0xb5, 0x3a, 0xc7, |
|
| 1528 |
- 0xad, 0x66, 0x31, 0x59, 0x2a, 0x5d, 0x5c, 0x56, 0x5e, 0x9b, 0x07, 0xd6, 0x2d, 0x8b, 0xfa, 0x82, |
|
| 1529 |
- 0xda, 0xa5, 0xd4, 0xb7, 0x7f, 0x2c, 0x27, 0xaa, 0xdf, 0x26, 0x21, 0x3f, 0x6b, 0x04, 0x7a, 0x17, |
|
| 1530 |
- 0xd2, 0xf5, 0xbd, 0xe3, 0xf6, 0x49, 0xab, 0x98, 0x98, 0xd2, 0x67, 0x11, 0x75, 0x4b, 0x38, 0xe7, |
|
| 1531 |
- 0x14, 0xdd, 0x87, 0xb5, 0x4e, 0xfd, 0xab, 0x6e, 0xab, 0x98, 0x9c, 0x9a, 0x33, 0x0b, 0xeb, 0x90, |
|
| 1532 |
- 0x71, 0xa0, 0x50, 0x4d, 0x5c, 0x6f, 0x1f, 0x16, 0x57, 0x16, 0xa3, 0x9a, 0x9c, 0x38, 0x9e, 0x36, |
|
| 1533 |
- 0xe5, 0xcf, 0x6b, 0x60, 0x74, 0x29, 0x3f, 0x77, 0xac, 0x97, 0x1c, 0x22, 0x1f, 0x41, 0x4a, 0x90, |
|
| 1534 |
- 0xe0, 0x4c, 0x85, 0x86, 0xb1, 0x38, 0x34, 0x8e, 0x49, 0x70, 0x26, 0x17, 0xd5, 0x74, 0x85, 0x97, |
|
| 1535 |
- 0x91, 0xc1, 0xa9, 0xef, 0x3a, 0x16, 0x11, 0xd4, 0x56, 0x91, 0x61, 0xec, 0xbe, 0xb3, 0x88, 0x8d, |
|
| 1536 |
- 0x63, 0x94, 0xb6, 0xff, 0x20, 0x81, 0x67, 0xa8, 0xe8, 0x33, 0x48, 0x0f, 0x5c, 0xd6, 0x27, 0xae, |
|
| 1537 |
- 0x8a, 0x09, 0x63, 0xf7, 0xad, 0x45, 0x4a, 0xf6, 0x15, 0x62, 0xaa, 0x40, 0x53, 0xd0, 0x97, 0xb0, |
|
| 1538 |
- 0x3e, 0x55, 0xd5, 0xfb, 0x0d, 0xeb, 0x9b, 0xb0, 0x5c, 0xc9, 0xd4, 0x92, 0x2f, 0x59, 0xff, 0x20, |
|
| 1539 |
- 0x81, 0x0b, 0x7c, 0x56, 0x80, 0x7e, 0x06, 0x10, 0x6a, 0x55, 0x7a, 0x0c, 0xa5, 0xe7, 0xcd, 0xe5, |
|
| 1540 |
- 0xc6, 0x84, 0x3a, 0x72, 0x83, 0x68, 0x82, 0x3e, 0x86, 0xf4, 0xd8, 0xb7, 0x89, 0xa0, 0x66, 0x5a, |
|
| 1541 |
- 0x71, 0x2b, 0x8b, 0xb8, 0x5f, 0x29, 0xc4, 0x1e, 0xf3, 0x4e, 0x9d, 0x01, 0xd6, 0x78, 0xf4, 0x53, |
|
| 1542 |
- 0xc8, 0x72, 0xe6, 0xba, 0x7d, 0x62, 0x9d, 0x99, 0xb9, 0x17, 0xe4, 0xc6, 0x0c, 0xf4, 0x00, 0xb2, |
|
| 1543 |
- 0x1e, 0x15, 0x5f, 0x33, 0x7e, 0x16, 0x98, 0x99, 0xca, 0xea, 0xb6, 0xb1, 0xfb, 0xc1, 0xc2, 0xb4, |
|
| 1544 |
- 0x0a, 0x31, 0x75, 0x21, 0x88, 0x35, 0x1c, 0x51, 0x4f, 0x84, 0x8a, 0x1a, 0x2b, 0x66, 0x12, 0xc7, |
|
| 1545 |
- 0x0a, 0xa4, 0x29, 0xd4, 0xb3, 0x7d, 0xe6, 0x78, 0xc2, 0xcc, 0x2e, 0x37, 0xa5, 0xa5, 0x31, 0x32, |
|
| 1546 |
- 0x2c, 0x70, 0xcc, 0x68, 0xa4, 0x21, 0x35, 0x62, 0x36, 0xad, 0xee, 0xc0, 0xc6, 0x33, 0xc7, 0x8e, |
|
| 1547 |
- 0x4a, 0x90, 0xd5, 0x1b, 0x1e, 0xc6, 0x6b, 0x0a, 0xc7, 0xf3, 0xea, 0x1d, 0x28, 0xcc, 0x1d, 0x71, |
|
| 1548 |
- 0xd5, 0x82, 0xc2, 0xdc, 0x71, 0xa1, 0x77, 0x60, 0x7d, 0x44, 0xbe, 0xe9, 0x59, 0xcc, 0xb3, 0xc6, |
|
| 1549 |
- 0x9c, 0x53, 0x4f, 0x68, 0x1d, 0x85, 0x11, 0xf9, 0x66, 0x2f, 0x16, 0xa2, 0x0f, 0x60, 0x43, 0x30, |
|
| 1550 |
- 0x41, 0xdc, 0x9e, 0xc5, 0x46, 0xbe, 0x4b, 0xc3, 0xec, 0x58, 0x51, 0xc8, 0xa2, 0xfa, 0xb0, 0x37, |
|
| 1551 |
- 0x95, 0x57, 0x0d, 0xc8, 0xc5, 0x67, 0x59, 0xfd, 0xcb, 0x1a, 0x64, 0xa3, 0x48, 0x47, 0x0f, 0x00, |
|
| 1552 |
- 0x48, 0xbc, 0x51, 0x7a, 0x23, 0xde, 0x7b, 0xa1, 0x5d, 0x95, 0x74, 0x19, 0xe1, 0x53, 0x3a, 0xaa, |
|
| 1553 |
- 0x43, 0xce, 0x62, 0x9e, 0x20, 0x8e, 0x47, 0xb9, 0xce, 0xd4, 0x85, 0xf1, 0xb9, 0x17, 0x81, 0xb4, |
|
| 1554 |
- 0x8e, 0x29, 0x0b, 0x35, 0x20, 0x33, 0xa0, 0x1e, 0xe5, 0x8e, 0xa5, 0x03, 0xfc, 0xdd, 0x85, 0x81, |
|
| 1555 |
- 0x19, 0x42, 0xf0, 0xd8, 0x13, 0xce, 0x88, 0x6a, 0x2d, 0x11, 0x11, 0x7d, 0x01, 0x39, 0x4e, 0x03, |
|
| 1556 |
- 0x36, 0xe6, 0x16, 0x0d, 0x74, 0xba, 0x6f, 0x2f, 0x4e, 0x93, 0x10, 0x84, 0xe9, 0x6f, 0xc7, 0x0e, |
|
| 1557 |
- 0xa7, 0xd2, 0x85, 0x00, 0x4f, 0xa9, 0xe8, 0x33, 0xc8, 0x70, 0x1a, 0x08, 0xc2, 0xc5, 0xf3, 0x32, |
|
| 1558 |
- 0x16, 0x87, 0x90, 0x0e, 0x73, 0x1d, 0x6b, 0x82, 0x23, 0x06, 0xfa, 0x0c, 0x72, 0xbe, 0x4b, 0x2c, |
|
| 1559 |
- 0xa5, 0xd5, 0x5c, 0x5b, 0x9e, 0x63, 0x9d, 0x08, 0x84, 0xa7, 0x78, 0xf4, 0x09, 0x80, 0xcb, 0x06, |
|
| 1560 |
- 0x3d, 0x9b, 0x3b, 0xe7, 0x94, 0xeb, 0x2c, 0x2b, 0x2d, 0x62, 0x37, 0x15, 0x02, 0xe7, 0x5c, 0x36, |
|
| 1561 |
- 0x08, 0x87, 0x68, 0xff, 0xbf, 0x4a, 0x92, 0x99, 0x04, 0x79, 0x0b, 0xf2, 0xa7, 0x8c, 0x5b, 0xb4, |
|
| 1562 |
- 0xa7, 0x73, 0x3d, 0xa7, 0x62, 0xcb, 0x50, 0xb2, 0x30, 0x41, 0xd1, 0xaf, 0xe1, 0x95, 0x68, 0xb7, |
|
| 1563 |
- 0x7a, 0x9c, 0x9e, 0x52, 0x4e, 0x3d, 0xb9, 0xe5, 0x86, 0x5a, 0xf6, 0x9d, 0xe7, 0x6f, 0xb9, 0x46, |
|
| 1564 |
- 0xeb, 0x52, 0x8b, 0xf8, 0xcd, 0x0f, 0x41, 0x23, 0x07, 0x19, 0x1e, 0x1e, 0x70, 0xf5, 0xf7, 0x49, |
|
| 1565 |
- 0x99, 0x67, 0x37, 0x10, 0x68, 0x07, 0x8c, 0x78, 0x79, 0xc7, 0x56, 0x01, 0x97, 0x6b, 0xac, 0x5f, |
|
| 1566 |
- 0x5f, 0x6d, 0x41, 0x84, 0x6d, 0x37, 0x65, 0x05, 0xd6, 0x63, 0x1b, 0xb5, 0xa0, 0x10, 0x13, 0x64, |
|
| 1567 |
- 0x13, 0xa4, 0xdb, 0x84, 0xca, 0xf3, 0x2c, 0x3d, 0x9e, 0xf8, 0x14, 0xe7, 0xf9, 0xcc, 0xac, 0xfa, |
|
| 1568 |
- 0x2b, 0x40, 0xcf, 0x06, 0x20, 0x42, 0x90, 0x3a, 0x73, 0x3c, 0x6d, 0x06, 0x56, 0x63, 0x54, 0x83, |
|
| 1569 |
- 0x8c, 0x4f, 0x26, 0x2e, 0x23, 0xb6, 0x8e, 0xc3, 0xbb, 0xb5, 0xb0, 0x3d, 0xaa, 0x45, 0xed, 0x51, |
|
| 1570 |
- 0xad, 0xee, 0x4d, 0x70, 0x04, 0xaa, 0x3e, 0x80, 0x57, 0x17, 0xe6, 0x19, 0xda, 0x85, 0x7c, 0x9c, |
|
| 1571 |
- 0x23, 0x53, 0x5f, 0xef, 0x5c, 0x5f, 0x6d, 0x19, 0x71, 0x32, 0xb5, 0x9b, 0xd8, 0x88, 0x41, 0x6d, |
|
| 1572 |
- 0xbb, 0x7a, 0x51, 0x80, 0xc2, 0x5c, 0xa6, 0xa1, 0xbb, 0xb0, 0xe6, 0x8c, 0xc8, 0x80, 0x6a, 0x1b, |
|
| 1573 |
- 0xc3, 0x09, 0x6a, 0x41, 0xda, 0x25, 0x7d, 0xea, 0xca, 0x5c, 0x91, 0x07, 0xf7, 0xff, 0xb7, 0xa6, |
|
| 1574 |
- 0x6c, 0xed, 0xa1, 0xc2, 0xb7, 0x3c, 0xc1, 0x27, 0x58, 0x93, 0x91, 0x09, 0x19, 0x8b, 0x8d, 0x46, |
|
| 1575 |
- 0xc4, 0x93, 0x97, 0xe4, 0xea, 0x76, 0x0e, 0x47, 0x53, 0xb9, 0x33, 0x84, 0x0f, 0x02, 0x33, 0xa5, |
|
| 1576 |
- 0xc4, 0x6a, 0x2c, 0x6b, 0xe4, 0x90, 0x05, 0xc2, 0x23, 0x23, 0x6a, 0xae, 0x2b, 0x6b, 0xe2, 0x39, |
|
| 1577 |
- 0x2a, 0xc2, 0x2a, 0xf5, 0xce, 0xcd, 0x35, 0x05, 0x97, 0x43, 0x29, 0xb1, 0x9d, 0x30, 0x11, 0x72, |
|
| 1578 |
- 0x58, 0x0e, 0xa5, 0xce, 0x71, 0x40, 0xb9, 0x99, 0x09, 0x77, 0x5b, 0x8e, 0xd1, 0x6b, 0x90, 0x1e, |
|
| 1579 |
- 0x70, 0x36, 0xf6, 0xc3, 0x08, 0xcc, 0x61, 0x3d, 0x93, 0xf7, 0x9d, 0xcf, 0x9d, 0x73, 0xc7, 0xa5, |
|
| 1580 |
- 0x03, 0x1a, 0x98, 0xaf, 0xa9, 0x83, 0x28, 0x2f, 0xcc, 0xc5, 0x18, 0x85, 0x67, 0x18, 0xa8, 0x06, |
|
| 1581 |
- 0x29, 0xc7, 0x73, 0x84, 0xf9, 0xba, 0xce, 0xc3, 0x9b, 0x47, 0xd8, 0x60, 0xcc, 0x3d, 0x21, 0xee, |
|
| 1582 |
- 0x98, 0x62, 0x85, 0x43, 0x9b, 0xb0, 0x2a, 0xc4, 0xc4, 0x2c, 0x54, 0x92, 0xdb, 0xd9, 0x46, 0xe6, |
|
| 1583 |
- 0xfa, 0x6a, 0x6b, 0xf5, 0xf8, 0xf8, 0x31, 0x96, 0x32, 0xf4, 0x26, 0x00, 0xf3, 0xa9, 0xd7, 0x0b, |
|
| 1584 |
- 0x84, 0xed, 0x78, 0x26, 0x92, 0x08, 0x9c, 0x93, 0x92, 0xae, 0x14, 0xa0, 0x7b, 0xb2, 0x72, 0x11, |
|
| 1585 |
- 0xbb, 0xc7, 0x3c, 0x77, 0x62, 0xbe, 0xa2, 0xbe, 0x66, 0xa5, 0xe0, 0xc8, 0x73, 0x27, 0x68, 0x0b, |
|
| 1586 |
- 0x8c, 0x40, 0x30, 0xbf, 0x17, 0x38, 0x03, 0x8f, 0xb8, 0xe6, 0x5d, 0xe5, 0x39, 0x48, 0x51, 0x57, |
|
| 1587 |
- 0x49, 0xd0, 0x4f, 0x20, 0x3d, 0x62, 0x63, 0x4f, 0x04, 0x66, 0x56, 0x1d, 0xe4, 0xe6, 0x22, 0x1f, |
|
| 1588 |
- 0x1f, 0x49, 0x84, 0xce, 0x3a, 0x0d, 0x47, 0x2d, 0xd8, 0x50, 0x9a, 0x07, 0x9c, 0x58, 0xb4, 0xe7, |
|
| 1589 |
- 0x53, 0xee, 0x30, 0x5b, 0xdf, 0xcf, 0x9b, 0xcf, 0x78, 0xdb, 0xd4, 0x4f, 0x01, 0x7c, 0x47, 0x72, |
|
| 1590 |
- 0xf6, 0x25, 0xa5, 0xa3, 0x18, 0xa8, 0x03, 0x79, 0x7f, 0xec, 0xba, 0x3d, 0xe6, 0x87, 0xb7, 0x51, |
|
| 1591 |
- 0x58, 0xc0, 0x5f, 0x20, 0x9c, 0x3a, 0x63, 0xd7, 0x3d, 0x0a, 0x49, 0xd8, 0xf0, 0xa7, 0x13, 0xf4, |
|
| 1592 |
- 0x39, 0x64, 0x02, 0x6a, 0x71, 0x2a, 0x02, 0x33, 0xaf, 0x5c, 0x7a, 0x7b, 0x91, 0xb2, 0xae, 0x82, |
|
| 1593 |
- 0xc4, 0x75, 0x01, 0x47, 0x1c, 0x49, 0xb7, 0x54, 0x59, 0x0b, 0xcc, 0x57, 0x97, 0xd3, 0x75, 0xe5, |
|
| 1594 |
- 0x9b, 0xd2, 0x35, 0x47, 0xa6, 0x8b, 0x8c, 0xc9, 0xc0, 0xdc, 0x50, 0xe1, 0x14, 0x4e, 0xd0, 0x63, |
|
| 1595 |
- 0x00, 0xdb, 0x0b, 0x7a, 0x21, 0xc8, 0xbc, 0xa3, 0x7c, 0xfc, 0xe0, 0x76, 0x1f, 0x9b, 0x87, 0x5d, |
|
| 1596 |
- 0xdd, 0x87, 0x14, 0xae, 0xaf, 0xb6, 0x72, 0xf1, 0x14, 0xe7, 0x6c, 0x2f, 0x08, 0x87, 0xa8, 0x01, |
|
| 1597 |
- 0xc6, 0x90, 0x12, 0x57, 0x0c, 0xad, 0x21, 0xb5, 0xce, 0xcc, 0xe2, 0xf2, 0xb6, 0xe4, 0x40, 0xc1, |
|
| 1598 |
- 0xb4, 0x86, 0x59, 0x12, 0x6a, 0x43, 0xce, 0x09, 0x98, 0xab, 0x8e, 0xc8, 0x34, 0x55, 0x7d, 0x7b, |
|
| 1599 |
- 0x01, 0xeb, 0xda, 0x11, 0x05, 0x4f, 0xd9, 0xe8, 0x0d, 0xc8, 0xf9, 0x8e, 0x1d, 0x3c, 0x74, 0x46, |
|
| 1600 |
- 0x8e, 0x30, 0x37, 0x2b, 0xc9, 0xed, 0x55, 0x3c, 0x15, 0xa0, 0x03, 0xc8, 0x04, 0x93, 0xc0, 0x12, |
|
| 1601 |
- 0x6e, 0x60, 0x96, 0xd4, 0xe6, 0xd6, 0x6e, 0x5f, 0xa6, 0x1b, 0x12, 0xc2, 0xc2, 0x11, 0xd1, 0x51, |
|
| 1602 |
- 0x15, 0xf2, 0x16, 0xf1, 0xc3, 0xb7, 0x80, 0x43, 0x03, 0xf3, 0x9e, 0xda, 0xee, 0x39, 0x59, 0xe9, |
|
| 1603 |
- 0x13, 0x30, 0x66, 0x8a, 0x8e, 0x2c, 0x08, 0x67, 0x74, 0xa2, 0xeb, 0x98, 0x1c, 0xca, 0xc3, 0x3a, |
|
| 1604 |
- 0x97, 0x39, 0xa8, 0x0a, 0x6d, 0x0e, 0x87, 0x93, 0x4f, 0x57, 0x3e, 0x4e, 0x96, 0x76, 0xc1, 0x98, |
|
| 1605 |
- 0x09, 0x30, 0xf4, 0xb6, 0xbc, 0x04, 0x06, 0x4e, 0x20, 0xf8, 0xa4, 0x47, 0xc6, 0x62, 0x68, 0xfe, |
|
| 1606 |
- 0x42, 0x11, 0xf2, 0x91, 0xb0, 0x3e, 0x16, 0xc3, 0x52, 0x0f, 0xa6, 0x27, 0x84, 0x2a, 0x60, 0xc8, |
|
| 1607 |
- 0xba, 0x14, 0x50, 0x7e, 0x4e, 0xb9, 0x6c, 0xe9, 0xa4, 0x79, 0xb3, 0x22, 0x59, 0x79, 0x02, 0x4a, |
|
| 1608 |
- 0xb8, 0x35, 0x54, 0x25, 0x34, 0x87, 0xf5, 0x4c, 0xd6, 0xc4, 0x28, 0x19, 0x74, 0x4d, 0xd4, 0xd3, |
|
| 1609 |
- 0xd2, 0xa7, 0x90, 0x9f, 0xdd, 0x8c, 0xff, 0xc4, 0xa1, 0xea, 0x5f, 0x93, 0x90, 0x8b, 0x0f, 0x0c, |
|
| 1610 |
- 0x7d, 0x08, 0x1b, 0xed, 0xee, 0xd1, 0xc3, 0xfa, 0x71, 0xfb, 0xe8, 0xb0, 0xd7, 0x6c, 0x7d, 0x51, |
|
| 1611 |
- 0xff, 0xea, 0xe1, 0x71, 0x31, 0x51, 0x7a, 0xf3, 0xe2, 0xb2, 0xb2, 0x39, 0xbd, 0x1b, 0x22, 0x78, |
|
| 1612 |
- 0x93, 0x9e, 0x92, 0xb1, 0x2b, 0xe6, 0x59, 0x1d, 0x7c, 0xb4, 0xd7, 0xea, 0x76, 0x8b, 0xc9, 0x65, |
|
| 1613 |
- 0xac, 0x0e, 0x67, 0x16, 0x0d, 0x02, 0xb4, 0x0b, 0xc5, 0x29, 0xeb, 0xe0, 0x71, 0xa7, 0x85, 0x4f, |
|
| 1614 |
- 0x8a, 0x2b, 0xa5, 0x37, 0x2e, 0x2e, 0x2b, 0xe6, 0xb3, 0xa4, 0x83, 0x89, 0x4f, 0xf9, 0x89, 0x7e, |
|
| 1615 |
- 0xd6, 0xfd, 0x23, 0x09, 0xf9, 0xd9, 0x5e, 0x1a, 0xed, 0x85, 0x1d, 0xb4, 0xf2, 0x78, 0x7d, 0x77, |
|
| 1616 |
- 0xe7, 0xb6, 0xde, 0x5b, 0xdd, 0xc7, 0xee, 0x58, 0xea, 0x7d, 0x24, 0x1f, 0xf0, 0x8a, 0x8c, 0x3e, |
|
| 1617 |
- 0x84, 0x35, 0x9f, 0x71, 0x11, 0xdd, 0x5c, 0x8b, 0x8b, 0x3a, 0xe3, 0x51, 0x73, 0x13, 0x82, 0xab, |
|
| 1618 |
- 0x43, 0x58, 0x9f, 0xd7, 0x86, 0xee, 0xc3, 0xea, 0x49, 0xbb, 0x53, 0x4c, 0x94, 0xee, 0x5d, 0x5c, |
|
| 1619 |
- 0x56, 0x5e, 0x9f, 0xff, 0x78, 0xe2, 0x70, 0x31, 0x26, 0x6e, 0xbb, 0x83, 0xde, 0x87, 0xb5, 0xe6, |
|
| 1620 |
- 0x61, 0x17, 0xe3, 0x62, 0xb2, 0xb4, 0x75, 0x71, 0x59, 0xb9, 0x37, 0x8f, 0x93, 0x9f, 0xd8, 0xd8, |
|
| 1621 |
- 0xb3, 0x31, 0xeb, 0xc7, 0x8f, 0xd9, 0x7f, 0xae, 0x80, 0xa1, 0x2f, 0xf4, 0x97, 0xfd, 0xbf, 0xa3, |
|
| 1622 |
- 0x10, 0x36, 0x87, 0x51, 0x1d, 0x5a, 0xb9, 0xb5, 0x47, 0xcc, 0x87, 0x04, 0x1d, 0xd3, 0x6f, 0x41, |
|
| 1623 |
- 0xde, 0xf1, 0xcf, 0x3f, 0xea, 0x51, 0x8f, 0xf4, 0x5d, 0xfd, 0xae, 0xcd, 0x62, 0x43, 0xca, 0x5a, |
|
| 1624 |
- 0xa1, 0x48, 0x5e, 0xd1, 0x8e, 0x27, 0x28, 0xf7, 0xf4, 0x8b, 0x35, 0x8b, 0xe3, 0x39, 0xfa, 0x1c, |
|
| 1625 |
- 0x52, 0x8e, 0x4f, 0x46, 0xba, 0xb1, 0x5d, 0xe8, 0x41, 0xbb, 0x53, 0x7f, 0xa4, 0x73, 0xae, 0x91, |
|
| 1626 |
- 0xbd, 0xbe, 0xda, 0x4a, 0x49, 0x01, 0x56, 0x34, 0x54, 0x8e, 0x5e, 0x1d, 0x72, 0x25, 0x75, 0xad, |
|
| 1627 |
- 0x67, 0xf1, 0x8c, 0x44, 0xe6, 0x8d, 0xe3, 0x0d, 0x38, 0x0d, 0x02, 0x75, 0xc1, 0x67, 0x71, 0x34, |
|
| 1628 |
- 0x45, 0x25, 0xc8, 0xe8, 0x0e, 0x55, 0x3d, 0x56, 0x72, 0xb2, 0xef, 0xd7, 0x82, 0x46, 0x01, 0x8c, |
|
| 1629 |
- 0x70, 0x37, 0x7a, 0xa7, 0x9c, 0x8d, 0xaa, 0xff, 0x4a, 0x81, 0xb1, 0xe7, 0x8e, 0x03, 0xa1, 0xbb, |
|
| 1630 |
- 0x9f, 0x97, 0xb6, 0xf9, 0x8f, 0x61, 0x83, 0xa8, 0xff, 0x27, 0xc4, 0x93, 0xd7, 0xa5, 0x6a, 0xfc, |
|
| 1631 |
- 0xf5, 0x01, 0xdc, 0x5f, 0xa8, 0x2e, 0x06, 0x87, 0x8f, 0x84, 0x46, 0x5a, 0xea, 0x34, 0x93, 0xb8, |
|
| 1632 |
- 0x48, 0x6e, 0x7c, 0x41, 0x5d, 0x28, 0x30, 0x6e, 0x0d, 0x69, 0x20, 0xc2, 0x4b, 0x56, 0xff, 0x6f, |
|
| 1633 |
- 0x58, 0xf8, 0x27, 0xea, 0x68, 0x16, 0xa8, 0xef, 0x96, 0xd0, 0xda, 0x79, 0x1d, 0xe8, 0x63, 0x48, |
|
| 1634 |
- 0x71, 0x72, 0x1a, 0x3d, 0x62, 0x16, 0x26, 0x09, 0x26, 0xa7, 0x62, 0x4e, 0x85, 0x62, 0xa0, 0x2f, |
|
| 1635 |
- 0x01, 0x6c, 0x27, 0xf0, 0x89, 0xb0, 0x86, 0x94, 0xeb, 0xc3, 0x5e, 0xe8, 0x62, 0x33, 0x46, 0xcd, |
|
| 1636 |
- 0x69, 0x99, 0x61, 0xa3, 0x07, 0x90, 0xb3, 0x48, 0x14, 0xae, 0xe9, 0xe5, 0x3f, 0x61, 0xf6, 0xea, |
|
| 1637 |
- 0x5a, 0x45, 0x51, 0xaa, 0xb8, 0xbe, 0xda, 0xca, 0x46, 0x12, 0x9c, 0xb5, 0x88, 0x0e, 0xdf, 0x07, |
|
| 1638 |
- 0x50, 0x10, 0x24, 0x38, 0xeb, 0xd9, 0x61, 0x39, 0x0b, 0xc3, 0x64, 0xc9, 0x5d, 0x29, 0xdf, 0xba, |
|
| 1639 |
- 0xba, 0xec, 0x45, 0xc7, 0x99, 0x17, 0x33, 0x32, 0xf4, 0x4b, 0xd8, 0xa0, 0x9e, 0xc5, 0x27, 0x2a, |
|
| 1640 |
- 0x58, 0x23, 0x0b, 0xb3, 0xcb, 0x9d, 0x6d, 0xc5, 0xe0, 0x39, 0x67, 0x8b, 0xf4, 0x86, 0xbc, 0xfa, |
|
| 1641 |
- 0xb7, 0x24, 0x40, 0xd8, 0x9c, 0xbc, 0xdc, 0x00, 0x44, 0x90, 0xb2, 0x89, 0x20, 0x2a, 0xe6, 0xf2, |
|
| 1642 |
- 0x58, 0x8d, 0xd1, 0xa7, 0x00, 0x82, 0x8e, 0x7c, 0x59, 0x7a, 0xbd, 0x81, 0x0e, 0x9b, 0xe7, 0x95, |
|
| 1643 |
- 0x83, 0x19, 0x34, 0xda, 0x85, 0xb4, 0x7e, 0x6a, 0xa6, 0x6e, 0xe5, 0x69, 0x64, 0xf5, 0x4f, 0x49, |
|
| 1644 |
- 0x80, 0xd0, 0xcd, 0xff, 0x69, 0xdf, 0x1a, 0xf7, 0x9f, 0xfc, 0x50, 0x4e, 0x7c, 0xff, 0x43, 0x39, |
|
| 1645 |
- 0xf1, 0xbb, 0xeb, 0x72, 0xf2, 0xc9, 0x75, 0x39, 0xf9, 0xdd, 0x75, 0x39, 0xf9, 0xf7, 0xeb, 0x72, |
|
| 1646 |
- 0xf2, 0x0f, 0x4f, 0xcb, 0x89, 0xef, 0x9e, 0x96, 0x13, 0xdf, 0x3f, 0x2d, 0x27, 0xfa, 0x69, 0xd5, |
|
| 1647 |
- 0xde, 0xfe, 0xf8, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x91, 0x6d, 0x50, 0x31, 0x7b, 0x17, 0x00, |
|
| 1648 |
- 0x00, |
|
| 1504 |
+ // 2311 bytes of a gzipped FileDescriptorProto |
|
| 1505 |
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x73, 0x1b, 0xc7, |
|
| 1506 |
+ 0xd1, 0x06, 0x48, 0x10, 0x1f, 0xbd, 0x00, 0x05, 0x8e, 0x65, 0x7b, 0x09, 0xc9, 0x20, 0x0c, 0xcb, |
|
| 1507 |
+ 0x36, 0x6d, 0xd7, 0x0b, 0xd6, 0xcb, 0xb8, 0x1c, 0x7f, 0xc4, 0x49, 0x00, 0x02, 0x96, 0x60, 0x49, |
|
| 1508 |
+ 0x14, 0x6a, 0x40, 0x2b, 0x51, 0x55, 0xaa, 0x50, 0x83, 0xdd, 0x21, 0xb0, 0xe1, 0x62, 0x67, 0x33, |
|
| 1509 |
+ 0x3b, 0xa0, 0x8d, 0x5b, 0x8e, 0x2e, 0xe6, 0x92, 0x3f, 0xc0, 0x53, 0x2a, 0xa7, 0x5c, 0x92, 0x4b, |
|
| 1510 |
+ 0x7e, 0x83, 0x8f, 0x3e, 0x3a, 0x17, 0x56, 0x4c, 0xff, 0x84, 0xdc, 0x72, 0x49, 0x6a, 0x66, 0x67, |
|
| 1511 |
+ 0x17, 0x0b, 0x0a, 0x10, 0x95, 0x8a, 0x0e, 0xb9, 0xcd, 0xf4, 0x3e, 0x4f, 0x4f, 0xf7, 0x4c, 0x77, |
|
| 1512 |
+ 0x4f, 0xcf, 0xc2, 0xbb, 0x23, 0x47, 0x8c, 0xa7, 0xc3, 0x86, 0xc5, 0x26, 0x7b, 0x36, 0xb3, 0x4e, |
|
| 1513 |
+ 0x28, 0xdf, 0x0b, 0xbe, 0x24, 0x7c, 0x72, 0xe2, 0x88, 0x3d, 0xe2, 0x3b, 0x7b, 0x81, 0x4f, 0xad, |
|
| 1514 |
+ 0xa0, 0xe1, 0x73, 0x26, 0x18, 0x42, 0x21, 0xa0, 0x11, 0x01, 0x1a, 0xa7, 0xff, 0x5f, 0xb9, 0x8e, |
|
| 1515 |
+ 0x2f, 0x66, 0x3e, 0xd5, 0xfc, 0xca, 0xcd, 0x11, 0x1b, 0x31, 0x35, 0xdc, 0x93, 0x23, 0x2d, 0xad, |
|
| 1516 |
+ 0x8e, 0x18, 0x1b, 0xb9, 0x74, 0x4f, 0xcd, 0x86, 0xd3, 0xe3, 0x3d, 0x7b, 0xca, 0x89, 0x70, 0x98, |
|
| 1517 |
+ 0xa7, 0xbf, 0x6f, 0x5f, 0xfd, 0x4e, 0xbc, 0xd9, 0x2a, 0xea, 0x97, 0x9c, 0xf8, 0x3e, 0xe5, 0x7a, |
|
| 1518 |
+ 0xc1, 0xfa, 0x79, 0x06, 0xf2, 0x87, 0xcc, 0xa6, 0x7d, 0x9f, 0x5a, 0xe8, 0x2e, 0x18, 0xc4, 0xf3, |
|
| 1519 |
+ 0x98, 0x50, 0xba, 0x03, 0x33, 0x5d, 0x4b, 0xef, 0x1a, 0xfb, 0x3b, 0x8d, 0xa7, 0x7d, 0x6a, 0x34, |
|
| 1520 |
+ 0xe7, 0xb0, 0x56, 0xe6, 0x9b, 0x8b, 0x9d, 0x14, 0x4e, 0x32, 0xd1, 0xcf, 0xa0, 0x68, 0xd3, 0xc0, |
|
| 1521 |
+ 0xe1, 0xd4, 0x1e, 0x70, 0xe6, 0x52, 0x73, 0xad, 0x96, 0xde, 0xdd, 0xdc, 0xbf, 0xbd, 0x4c, 0x93, |
|
| 1522 |
+ 0x5c, 0x1c, 0x33, 0x97, 0x62, 0x43, 0x33, 0xe4, 0x04, 0xdd, 0x05, 0x98, 0xd0, 0xc9, 0x90, 0xf2, |
|
| 1523 |
+ 0x60, 0xec, 0xf8, 0xe6, 0xba, 0xa2, 0xbf, 0xbd, 0x8a, 0x2e, 0x6d, 0x6f, 0x3c, 0x8c, 0xe1, 0x38, |
|
| 1524 |
+ 0x41, 0x45, 0x0f, 0xa1, 0x48, 0x4e, 0x89, 0xe3, 0x92, 0xa1, 0xe3, 0x3a, 0x62, 0x66, 0x66, 0x94, |
|
| 1525 |
+ 0xaa, 0x77, 0x9e, 0xa9, 0xaa, 0x99, 0x20, 0xe0, 0x05, 0x7a, 0xdd, 0x06, 0x98, 0x2f, 0x84, 0xde, |
|
| 1526 |
+ 0x82, 0x5c, 0xaf, 0x73, 0xd8, 0xee, 0x1e, 0xde, 0x2d, 0xa7, 0x2a, 0xdb, 0x67, 0xe7, 0xb5, 0x97, |
|
| 1527 |
+ 0xa5, 0x8e, 0x39, 0xa0, 0x47, 0x3d, 0xdb, 0xf1, 0x46, 0x68, 0x17, 0xf2, 0xcd, 0x83, 0x83, 0x4e, |
|
| 1528 |
+ 0xef, 0xa8, 0xd3, 0x2e, 0xa7, 0x2b, 0x95, 0xb3, 0xf3, 0xda, 0x2b, 0x8b, 0xc0, 0xa6, 0x65, 0x51, |
|
| 1529 |
+ 0x5f, 0x50, 0xbb, 0x92, 0xf9, 0xfa, 0x0f, 0xd5, 0x54, 0xfd, 0xeb, 0x34, 0x14, 0x93, 0x46, 0xa0, |
|
| 1530 |
+ 0xb7, 0x20, 0xdb, 0x3c, 0x38, 0xea, 0x3e, 0xee, 0x94, 0x53, 0x73, 0x7a, 0x12, 0xd1, 0xb4, 0x84, |
|
| 1531 |
+ 0x73, 0x4a, 0xd1, 0x1d, 0xd8, 0xe8, 0x35, 0xbf, 0xe8, 0x77, 0xca, 0xe9, 0xb9, 0x39, 0x49, 0x58, |
|
| 1532 |
+ 0x8f, 0x4c, 0x03, 0x85, 0x6a, 0xe3, 0x66, 0xf7, 0xb0, 0xbc, 0xb6, 0x1c, 0xd5, 0xe6, 0xc4, 0xf1, |
|
| 1533 |
+ 0xb4, 0x29, 0x7f, 0xda, 0x00, 0xa3, 0x4f, 0xf9, 0xa9, 0x63, 0xbd, 0xe0, 0x10, 0xf9, 0x00, 0x32, |
|
| 1534 |
+ 0x82, 0x04, 0x27, 0x2a, 0x34, 0x8c, 0xe5, 0xa1, 0x71, 0x44, 0x82, 0x13, 0xb9, 0xa8, 0xa6, 0x2b, |
|
| 1535 |
+ 0xbc, 0x8c, 0x0c, 0x4e, 0x7d, 0xd7, 0xb1, 0x88, 0xa0, 0xb6, 0x8a, 0x0c, 0x63, 0xff, 0xcd, 0x65, |
|
| 1536 |
+ 0x6c, 0x1c, 0xa3, 0xb4, 0xfd, 0xf7, 0x52, 0x38, 0x41, 0x45, 0x9f, 0x40, 0x76, 0xe4, 0xb2, 0x21, |
|
| 1537 |
+ 0x71, 0x55, 0x4c, 0x18, 0xfb, 0xaf, 0x2f, 0x53, 0x72, 0x57, 0x21, 0xe6, 0x0a, 0x34, 0x05, 0x7d, |
|
| 1538 |
+ 0x0e, 0x9b, 0x73, 0x55, 0x83, 0x5f, 0xb3, 0xa1, 0x09, 0xab, 0x95, 0xcc, 0x2d, 0xf9, 0x9c, 0x0d, |
|
| 1539 |
+ 0xef, 0xa5, 0x70, 0x89, 0x27, 0x05, 0xe8, 0xa7, 0x00, 0xa1, 0x56, 0xa5, 0xc7, 0x50, 0x7a, 0x5e, |
|
| 1540 |
+ 0x5b, 0x6d, 0x4c, 0xa8, 0xa3, 0x30, 0x8a, 0x26, 0xe8, 0x43, 0xc8, 0x4e, 0x7d, 0x9b, 0x08, 0x6a, |
|
| 1541 |
+ 0x66, 0x15, 0xb7, 0xb6, 0x8c, 0xfb, 0x85, 0x42, 0x1c, 0x30, 0xef, 0xd8, 0x19, 0x61, 0x8d, 0x47, |
|
| 1542 |
+ 0x3f, 0x81, 0x3c, 0x67, 0xae, 0x3b, 0x24, 0xd6, 0x89, 0x59, 0x78, 0x4e, 0x6e, 0xcc, 0x40, 0xf7, |
|
| 1543 |
+ 0x21, 0xef, 0x51, 0xf1, 0x25, 0xe3, 0x27, 0x81, 0x99, 0xab, 0xad, 0xef, 0x1a, 0xfb, 0xef, 0x2d, |
|
| 1544 |
+ 0x4d, 0xab, 0x10, 0xd3, 0x14, 0x82, 0x58, 0xe3, 0x09, 0xf5, 0x44, 0xa8, 0xa8, 0xb5, 0x66, 0xa6, |
|
| 1545 |
+ 0x71, 0xac, 0x40, 0x9a, 0x42, 0x3d, 0xdb, 0x67, 0x8e, 0x27, 0xcc, 0xfc, 0x6a, 0x53, 0x3a, 0x1a, |
|
| 1546 |
+ 0x23, 0xc3, 0x02, 0xc7, 0x8c, 0x56, 0x16, 0x32, 0x13, 0x66, 0xd3, 0xfa, 0x1e, 0x6c, 0x3d, 0x75, |
|
| 1547 |
+ 0xec, 0xa8, 0x02, 0x79, 0xbd, 0xe1, 0x61, 0xbc, 0x66, 0x70, 0x3c, 0xaf, 0xdf, 0x80, 0xd2, 0xc2, |
|
| 1548 |
+ 0x11, 0xd7, 0x2d, 0x28, 0x2d, 0x1c, 0x17, 0x7a, 0x13, 0x36, 0x27, 0xe4, 0xab, 0x81, 0xc5, 0x3c, |
|
| 1549 |
+ 0x6b, 0xca, 0x39, 0xf5, 0x84, 0xd6, 0x51, 0x9a, 0x90, 0xaf, 0x0e, 0x62, 0x21, 0x7a, 0x0f, 0xb6, |
|
| 1550 |
+ 0x04, 0x13, 0xc4, 0x1d, 0x58, 0x6c, 0xe2, 0xbb, 0x34, 0xcc, 0x8e, 0x35, 0x85, 0x2c, 0xab, 0x0f, |
|
| 1551 |
+ 0x07, 0x73, 0x79, 0xdd, 0x80, 0x42, 0x7c, 0x96, 0xf5, 0x3f, 0x6f, 0x40, 0x3e, 0x8a, 0x74, 0x74, |
|
| 1552 |
+ 0x1f, 0x80, 0xc4, 0x1b, 0xa5, 0x37, 0xe2, 0x9d, 0xe7, 0xda, 0x55, 0x49, 0x97, 0x11, 0x3e, 0xa7, |
|
| 1553 |
+ 0xa3, 0x26, 0x14, 0x2c, 0xe6, 0x09, 0xe2, 0x78, 0x94, 0xeb, 0x4c, 0x5d, 0x1a, 0x9f, 0x07, 0x11, |
|
| 1554 |
+ 0x48, 0xeb, 0x98, 0xb3, 0x50, 0x0b, 0x72, 0x23, 0xea, 0x51, 0xee, 0x58, 0x3a, 0xc0, 0xdf, 0x5a, |
|
| 1555 |
+ 0x1a, 0x98, 0x21, 0x04, 0x4f, 0x3d, 0xe1, 0x4c, 0xa8, 0xd6, 0x12, 0x11, 0xd1, 0x67, 0x50, 0xe0, |
|
| 1556 |
+ 0x34, 0x60, 0x53, 0x6e, 0xd1, 0x40, 0xa7, 0xfb, 0xee, 0xf2, 0x34, 0x09, 0x41, 0x98, 0xfe, 0x66, |
|
| 1557 |
+ 0xea, 0x70, 0x2a, 0x5d, 0x08, 0xf0, 0x9c, 0x8a, 0x3e, 0x81, 0x1c, 0xa7, 0x81, 0x20, 0x5c, 0x3c, |
|
| 1558 |
+ 0x2b, 0x63, 0x71, 0x08, 0xe9, 0x31, 0xd7, 0xb1, 0x66, 0x38, 0x62, 0xa0, 0x4f, 0xa0, 0xe0, 0xbb, |
|
| 1559 |
+ 0xc4, 0x52, 0x5a, 0xcd, 0x8d, 0xd5, 0x39, 0xd6, 0x8b, 0x40, 0x78, 0x8e, 0x47, 0x1f, 0x01, 0xb8, |
|
| 1560 |
+ 0x6c, 0x34, 0xb0, 0xb9, 0x73, 0x4a, 0xb9, 0xce, 0xb2, 0xca, 0x32, 0x76, 0x5b, 0x21, 0x70, 0xc1, |
|
| 1561 |
+ 0x65, 0xa3, 0x70, 0x88, 0xee, 0xfe, 0x57, 0x49, 0x92, 0x48, 0x90, 0xd7, 0xa1, 0x78, 0xcc, 0xb8, |
|
| 1562 |
+ 0x45, 0x07, 0x3a, 0xd7, 0x0b, 0x2a, 0xb6, 0x0c, 0x25, 0x0b, 0x13, 0x14, 0xfd, 0x0a, 0x5e, 0x8a, |
|
| 1563 |
+ 0x76, 0x6b, 0xc0, 0xe9, 0x31, 0xe5, 0xd4, 0x93, 0x5b, 0x6e, 0xa8, 0x65, 0xdf, 0x7c, 0xf6, 0x96, |
|
| 1564 |
+ 0x6b, 0xb4, 0x2e, 0xb5, 0x88, 0x5f, 0xfd, 0x10, 0xb4, 0x0a, 0x90, 0xe3, 0xe1, 0x01, 0xd7, 0x7f, |
|
| 1565 |
+ 0x97, 0x96, 0x79, 0x76, 0x05, 0x81, 0xf6, 0xc0, 0x88, 0x97, 0x77, 0x6c, 0x15, 0x70, 0x85, 0xd6, |
|
| 1566 |
+ 0xe6, 0xe5, 0xc5, 0x0e, 0x44, 0xd8, 0x6e, 0x5b, 0x56, 0x60, 0x3d, 0xb6, 0x51, 0x07, 0x4a, 0x31, |
|
| 1567 |
+ 0x41, 0x36, 0x41, 0xba, 0x4d, 0xa8, 0x3d, 0xcb, 0xd2, 0xa3, 0x99, 0x4f, 0x71, 0x91, 0x27, 0x66, |
|
| 1568 |
+ 0xf5, 0x5f, 0x02, 0x7a, 0x3a, 0x00, 0x11, 0x82, 0xcc, 0x89, 0xe3, 0x69, 0x33, 0xb0, 0x1a, 0xa3, |
|
| 1569 |
+ 0x06, 0xe4, 0x7c, 0x32, 0x73, 0x19, 0xb1, 0x75, 0x1c, 0xde, 0x6c, 0x84, 0xed, 0x51, 0x23, 0x6a, |
|
| 1570 |
+ 0x8f, 0x1a, 0x4d, 0x6f, 0x86, 0x23, 0x50, 0xfd, 0x3e, 0xbc, 0xbc, 0x34, 0xcf, 0xd0, 0x3e, 0x14, |
|
| 1571 |
+ 0xe3, 0x1c, 0x99, 0xfb, 0x7a, 0xe3, 0xf2, 0x62, 0xc7, 0x88, 0x93, 0xa9, 0xdb, 0xc6, 0x46, 0x0c, |
|
| 1572 |
+ 0xea, 0xda, 0xf5, 0xbf, 0x96, 0xa0, 0xb4, 0x90, 0x69, 0xe8, 0x26, 0x6c, 0x38, 0x13, 0x32, 0xa2, |
|
| 1573 |
+ 0xda, 0xc6, 0x70, 0x82, 0x3a, 0x90, 0x75, 0xc9, 0x90, 0xba, 0x32, 0x57, 0xe4, 0xc1, 0xfd, 0xdf, |
|
| 1574 |
+ 0xb5, 0x29, 0xdb, 0x78, 0xa0, 0xf0, 0x1d, 0x4f, 0xf0, 0x19, 0xd6, 0x64, 0x64, 0x42, 0xce, 0x62, |
|
| 1575 |
+ 0x93, 0x09, 0xf1, 0xe4, 0x25, 0xb9, 0xbe, 0x5b, 0xc0, 0xd1, 0x54, 0xee, 0x0c, 0xe1, 0xa3, 0xc0, |
|
| 1576 |
+ 0xcc, 0x28, 0xb1, 0x1a, 0xcb, 0x1a, 0x39, 0x66, 0x81, 0xf0, 0xc8, 0x84, 0x9a, 0x9b, 0xca, 0x9a, |
|
| 1577 |
+ 0x78, 0x8e, 0xca, 0xb0, 0x4e, 0xbd, 0x53, 0x73, 0x43, 0xc1, 0xe5, 0x50, 0x4a, 0x6c, 0x27, 0x4c, |
|
| 1578 |
+ 0x84, 0x02, 0x96, 0x43, 0xa9, 0x73, 0x1a, 0x50, 0x6e, 0xe6, 0xc2, 0xdd, 0x96, 0x63, 0xf4, 0x0a, |
|
| 1579 |
+ 0x64, 0x47, 0x9c, 0x4d, 0xfd, 0x30, 0x02, 0x0b, 0x58, 0xcf, 0xe4, 0x7d, 0xe7, 0x73, 0xe7, 0xd4, |
|
| 1580 |
+ 0x71, 0xe9, 0x88, 0x06, 0xe6, 0x2b, 0xea, 0x20, 0xaa, 0x4b, 0x73, 0x31, 0x46, 0xe1, 0x04, 0x03, |
|
| 1581 |
+ 0x35, 0x20, 0xe3, 0x78, 0x8e, 0x30, 0x5f, 0xd5, 0x79, 0x78, 0xf5, 0x08, 0x5b, 0x8c, 0xb9, 0x8f, |
|
| 1582 |
+ 0x89, 0x3b, 0xa5, 0x58, 0xe1, 0xd0, 0x36, 0xac, 0x0b, 0x31, 0x33, 0x4b, 0xb5, 0xf4, 0x6e, 0xbe, |
|
| 1583 |
+ 0x95, 0xbb, 0xbc, 0xd8, 0x59, 0x3f, 0x3a, 0x7a, 0x82, 0xa5, 0x0c, 0xbd, 0x06, 0xc0, 0x7c, 0xea, |
|
| 1584 |
+ 0x0d, 0x02, 0x61, 0x3b, 0x9e, 0x89, 0x24, 0x02, 0x17, 0xa4, 0xa4, 0x2f, 0x05, 0xe8, 0x96, 0xac, |
|
| 1585 |
+ 0x5c, 0xc4, 0x1e, 0x30, 0xcf, 0x9d, 0x99, 0x2f, 0xa9, 0xaf, 0x79, 0x29, 0x78, 0xe4, 0xb9, 0x33, |
|
| 1586 |
+ 0xb4, 0x03, 0x46, 0x20, 0x98, 0x3f, 0x08, 0x9c, 0x91, 0x47, 0x5c, 0xf3, 0xa6, 0xf2, 0x1c, 0xa4, |
|
| 1587 |
+ 0xa8, 0xaf, 0x24, 0xe8, 0xc7, 0x90, 0x9d, 0xb0, 0xa9, 0x27, 0x02, 0x33, 0xaf, 0x0e, 0x72, 0x7b, |
|
| 1588 |
+ 0x99, 0x8f, 0x0f, 0x25, 0x42, 0x67, 0x9d, 0x86, 0xa3, 0x0e, 0x6c, 0x29, 0xcd, 0x23, 0x4e, 0x2c, |
|
| 1589 |
+ 0x3a, 0xf0, 0x29, 0x77, 0x98, 0xad, 0xef, 0xe7, 0xed, 0xa7, 0xbc, 0x6d, 0xeb, 0xa7, 0x00, 0xbe, |
|
| 1590 |
+ 0x21, 0x39, 0x77, 0x25, 0xa5, 0xa7, 0x18, 0xa8, 0x07, 0x45, 0x7f, 0xea, 0xba, 0x03, 0xe6, 0x87, |
|
| 1591 |
+ 0xb7, 0x51, 0x58, 0xc0, 0x9f, 0x23, 0x9c, 0x7a, 0x53, 0xd7, 0x7d, 0x14, 0x92, 0xb0, 0xe1, 0xcf, |
|
| 1592 |
+ 0x27, 0xe8, 0x53, 0xc8, 0x05, 0xd4, 0xe2, 0x54, 0x04, 0x66, 0x51, 0xb9, 0xf4, 0xc6, 0x32, 0x65, |
|
| 1593 |
+ 0x7d, 0x05, 0x89, 0xeb, 0x02, 0x8e, 0x38, 0x92, 0x6e, 0xa9, 0xb2, 0x16, 0x98, 0x2f, 0xaf, 0xa6, |
|
| 1594 |
+ 0xeb, 0xca, 0x37, 0xa7, 0x6b, 0x8e, 0x4c, 0x17, 0x19, 0x93, 0x81, 0xb9, 0xa5, 0xc2, 0x29, 0x9c, |
|
| 1595 |
+ 0xa0, 0x27, 0x00, 0xb6, 0x17, 0x0c, 0x42, 0x90, 0x79, 0x43, 0xf9, 0xf8, 0xde, 0xf5, 0x3e, 0xb6, |
|
| 1596 |
+ 0x0f, 0xfb, 0xba, 0x0f, 0x29, 0x5d, 0x5e, 0xec, 0x14, 0xe2, 0x29, 0x2e, 0xd8, 0x5e, 0x10, 0x0e, |
|
| 1597 |
+ 0x51, 0x0b, 0x8c, 0x31, 0x25, 0xae, 0x18, 0x5b, 0x63, 0x6a, 0x9d, 0x98, 0xe5, 0xd5, 0x6d, 0xc9, |
|
| 1598 |
+ 0x3d, 0x05, 0xd3, 0x1a, 0x92, 0x24, 0xd4, 0x85, 0x82, 0x13, 0x30, 0x57, 0x1d, 0x91, 0x69, 0xaa, |
|
| 1599 |
+ 0xfa, 0xf6, 0x1c, 0xd6, 0x75, 0x23, 0x0a, 0x9e, 0xb3, 0xd1, 0x6d, 0x28, 0xf8, 0x8e, 0x1d, 0x3c, |
|
| 1600 |
+ 0x70, 0x26, 0x8e, 0x30, 0xb7, 0x6b, 0xe9, 0xdd, 0x75, 0x3c, 0x17, 0xa0, 0x7b, 0x90, 0x0b, 0x66, |
|
| 1601 |
+ 0x81, 0x25, 0xdc, 0xc0, 0xac, 0xa8, 0xcd, 0x6d, 0x5c, 0xbf, 0x4c, 0x3f, 0x24, 0x84, 0x85, 0x23, |
|
| 1602 |
+ 0xa2, 0xcb, 0x8e, 0xc7, 0x22, 0xbe, 0x7e, 0x0b, 0x0c, 0x88, 0x6d, 0x9b, 0xb7, 0xd4, 0x86, 0x97, |
|
| 1603 |
+ 0xe6, 0xd2, 0xa6, 0x6d, 0xa3, 0xb7, 0xe1, 0x46, 0x02, 0x66, 0x73, 0xe6, 0x9b, 0xb7, 0x15, 0x2e, |
|
| 1604 |
+ 0xc1, 0x6e, 0x73, 0xe6, 0x57, 0x3e, 0x02, 0x23, 0x51, 0xa0, 0x64, 0xf1, 0x38, 0xa1, 0x33, 0x5d, |
|
| 1605 |
+ 0xf3, 0xe4, 0x50, 0x1e, 0xec, 0xa9, 0xcc, 0x57, 0x55, 0x94, 0x0b, 0x38, 0x9c, 0x7c, 0xbc, 0xf6, |
|
| 1606 |
+ 0x61, 0xba, 0xb2, 0x0f, 0x46, 0x22, 0x18, 0xd1, 0x1b, 0xf2, 0xc2, 0x18, 0x39, 0x81, 0xe0, 0xb3, |
|
| 1607 |
+ 0x01, 0x99, 0x8a, 0xb1, 0xf9, 0x73, 0x45, 0x28, 0x46, 0xc2, 0xe6, 0x54, 0x8c, 0x2b, 0x03, 0x98, |
|
| 1608 |
+ 0x9f, 0x26, 0xaa, 0x81, 0x21, 0x6b, 0x58, 0x40, 0xf9, 0x29, 0xe5, 0xb2, 0xfd, 0x93, 0x06, 0x26, |
|
| 1609 |
+ 0x45, 0xb2, 0x4a, 0x05, 0x94, 0x70, 0x6b, 0xac, 0xca, 0x6d, 0x01, 0xeb, 0x99, 0xac, 0x9f, 0x51, |
|
| 1610 |
+ 0xe2, 0xe8, 0xfa, 0xa9, 0xa7, 0x95, 0x8f, 0xa1, 0x98, 0xdc, 0xb8, 0xff, 0xc4, 0xa1, 0xfa, 0x5f, |
|
| 1611 |
+ 0xd2, 0x50, 0x88, 0x0f, 0x17, 0xbd, 0x0f, 0x5b, 0xdd, 0xfe, 0xa3, 0x07, 0xcd, 0xa3, 0xee, 0xa3, |
|
| 1612 |
+ 0xc3, 0x41, 0xbb, 0xf3, 0x59, 0xf3, 0x8b, 0x07, 0x47, 0xe5, 0x54, 0xe5, 0xb5, 0xb3, 0xf3, 0xda, |
|
| 1613 |
+ 0xf6, 0xfc, 0x1e, 0x89, 0xe0, 0x6d, 0x7a, 0x4c, 0xa6, 0xae, 0x58, 0x64, 0xf5, 0xf0, 0xa3, 0x83, |
|
| 1614 |
+ 0x4e, 0xbf, 0x5f, 0x4e, 0xaf, 0x62, 0xf5, 0x38, 0xb3, 0x68, 0x10, 0xa0, 0x7d, 0x28, 0xcf, 0x59, |
|
| 1615 |
+ 0xf7, 0x9e, 0xf4, 0x3a, 0xf8, 0x71, 0x79, 0xad, 0x72, 0xfb, 0xec, 0xbc, 0x66, 0x3e, 0x4d, 0xba, |
|
| 1616 |
+ 0x37, 0xf3, 0x29, 0x7f, 0xac, 0x9f, 0x80, 0xff, 0x48, 0x43, 0x31, 0xd9, 0x77, 0xa3, 0x83, 0xb0, |
|
| 1617 |
+ 0xdb, 0x56, 0x1e, 0x6f, 0xee, 0xef, 0x5d, 0xd7, 0xa7, 0xab, 0xbb, 0xdb, 0x9d, 0x4a, 0xbd, 0x0f, |
|
| 1618 |
+ 0xe5, 0x63, 0x5f, 0x91, 0xd1, 0xfb, 0xb0, 0xe1, 0x33, 0x2e, 0xa2, 0x5b, 0x6e, 0xf9, 0x05, 0xc0, |
|
| 1619 |
+ 0x78, 0xd4, 0x08, 0x85, 0xe0, 0xfa, 0x18, 0x36, 0x17, 0xb5, 0xa1, 0x3b, 0xb0, 0xfe, 0xb8, 0xdb, |
|
| 1620 |
+ 0x2b, 0xa7, 0x2a, 0xb7, 0xce, 0xce, 0x6b, 0xaf, 0x2e, 0x7e, 0x7c, 0xec, 0x70, 0x31, 0x25, 0x6e, |
|
| 1621 |
+ 0xb7, 0x87, 0xde, 0x85, 0x8d, 0xf6, 0x61, 0x1f, 0xe3, 0x72, 0xba, 0xb2, 0x73, 0x76, 0x5e, 0xbb, |
|
| 1622 |
+ 0xb5, 0x88, 0x93, 0x9f, 0xd8, 0xd4, 0xb3, 0x31, 0x1b, 0xc6, 0x0f, 0xdf, 0x7f, 0xae, 0x81, 0xa1, |
|
| 1623 |
+ 0x2f, 0xff, 0x17, 0xfd, 0x6f, 0xa4, 0x14, 0x36, 0x92, 0x51, 0xcd, 0x5a, 0xbb, 0xb6, 0x9f, 0x2c, |
|
| 1624 |
+ 0x86, 0x04, 0x1d, 0xd3, 0xaf, 0x43, 0xd1, 0xf1, 0x4f, 0x3f, 0x18, 0x50, 0x8f, 0x0c, 0x5d, 0xfd, |
|
| 1625 |
+ 0x06, 0xce, 0x63, 0x43, 0xca, 0x3a, 0xa1, 0x48, 0x5e, 0xe7, 0x8e, 0x27, 0x28, 0xf7, 0xf4, 0xeb, |
|
| 1626 |
+ 0x36, 0x8f, 0xe3, 0x39, 0xfa, 0x14, 0x32, 0x8e, 0x4f, 0x26, 0xba, 0x09, 0x5e, 0xea, 0x41, 0xb7, |
|
| 1627 |
+ 0xd7, 0x7c, 0xa8, 0x73, 0xae, 0x95, 0xbf, 0xbc, 0xd8, 0xc9, 0x48, 0x01, 0x56, 0x34, 0x54, 0x8d, |
|
| 1628 |
+ 0x5e, 0x28, 0x72, 0x25, 0xd5, 0x02, 0xe4, 0x71, 0x42, 0x22, 0xf3, 0xc6, 0xf1, 0x46, 0x9c, 0x06, |
|
| 1629 |
+ 0x81, 0x6a, 0x06, 0xf2, 0x38, 0x9a, 0xa2, 0x0a, 0xe4, 0x74, 0x37, 0xab, 0x1e, 0x36, 0x05, 0xf9, |
|
| 1630 |
+ 0x46, 0xd0, 0x82, 0x56, 0x09, 0x8c, 0x70, 0x37, 0x06, 0xc7, 0x9c, 0x4d, 0xea, 0xff, 0xca, 0x80, |
|
| 1631 |
+ 0x71, 0xe0, 0x4e, 0x03, 0xa1, 0x3b, 0xa5, 0x17, 0xb6, 0xf9, 0x4f, 0x60, 0x8b, 0xa8, 0x7f, 0x2d, |
|
| 1632 |
+ 0xc4, 0x93, 0x57, 0xab, 0x7a, 0x24, 0xe8, 0x03, 0xb8, 0xb3, 0x54, 0x5d, 0x0c, 0x0e, 0x1f, 0x14, |
|
| 1633 |
+ 0xad, 0xac, 0xd4, 0x69, 0xa6, 0x71, 0x99, 0x5c, 0xf9, 0x82, 0xfa, 0x50, 0x62, 0xdc, 0x1a, 0xd3, |
|
| 1634 |
+ 0x40, 0x84, 0x17, 0xb2, 0xfe, 0x37, 0xb1, 0xf4, 0xaf, 0xd5, 0xa3, 0x24, 0x50, 0xdf, 0x43, 0xa1, |
|
| 1635 |
+ 0xb5, 0x8b, 0x3a, 0xd0, 0x87, 0x90, 0xe1, 0xe4, 0x38, 0x7a, 0xf0, 0x2c, 0x4d, 0x12, 0x4c, 0x8e, |
|
| 1636 |
+ 0xc5, 0x82, 0x0a, 0xc5, 0x40, 0x9f, 0x03, 0xd8, 0x4e, 0xe0, 0x13, 0x61, 0x8d, 0x29, 0xd7, 0x87, |
|
| 1637 |
+ 0xbd, 0xd4, 0xc5, 0x76, 0x8c, 0x5a, 0xd0, 0x92, 0x60, 0xa3, 0xfb, 0x50, 0xb0, 0x48, 0x14, 0xae, |
|
| 1638 |
+ 0xd9, 0xd5, 0x3f, 0x6c, 0x0e, 0x9a, 0x5a, 0x45, 0x59, 0xaa, 0xb8, 0xbc, 0xd8, 0xc9, 0x47, 0x12, |
|
| 1639 |
+ 0x9c, 0xb7, 0x88, 0x0e, 0xdf, 0xfb, 0x50, 0x12, 0x24, 0x38, 0x19, 0xd8, 0x61, 0x39, 0x0b, 0xc3, |
|
| 1640 |
+ 0x64, 0xc5, 0xbd, 0x2a, 0xdf, 0xc5, 0xba, 0xec, 0x45, 0xc7, 0x59, 0x14, 0x09, 0x19, 0xfa, 0x05, |
|
| 1641 |
+ 0x6c, 0x51, 0xcf, 0xe2, 0x33, 0x15, 0xac, 0x91, 0x85, 0xf9, 0xd5, 0xce, 0x76, 0x62, 0xf0, 0x82, |
|
| 1642 |
+ 0xb3, 0x65, 0x7a, 0x45, 0x5e, 0xff, 0x5b, 0x1a, 0x20, 0x6c, 0x64, 0x5e, 0x6c, 0x00, 0x22, 0xc8, |
|
| 1643 |
+ 0xd8, 0x44, 0x10, 0x15, 0x73, 0x45, 0xac, 0xc6, 0xe8, 0x63, 0x00, 0x41, 0x27, 0xbe, 0x2c, 0xbd, |
|
| 1644 |
+ 0xde, 0x48, 0x87, 0xcd, 0xb3, 0xca, 0x41, 0x02, 0x8d, 0xf6, 0x21, 0xab, 0x9f, 0xa5, 0x99, 0x6b, |
|
| 1645 |
+ 0x79, 0x1a, 0x59, 0xff, 0x63, 0x1a, 0x20, 0x74, 0xf3, 0x7f, 0xda, 0xb7, 0xd6, 0x9d, 0x6f, 0xbe, |
|
| 1646 |
+ 0xaf, 0xa6, 0xbe, 0xfb, 0xbe, 0x9a, 0xfa, 0xed, 0x65, 0x35, 0xfd, 0xcd, 0x65, 0x35, 0xfd, 0xed, |
|
| 1647 |
+ 0x65, 0x35, 0xfd, 0xf7, 0xcb, 0x6a, 0xfa, 0xf7, 0x3f, 0x54, 0x53, 0xdf, 0xfe, 0x50, 0x4d, 0x7d, |
|
| 1648 |
+ 0xf7, 0x43, 0x35, 0x35, 0xcc, 0xaa, 0x56, 0xf8, 0x47, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x92, |
|
| 1649 |
+ 0xc4, 0x34, 0xad, 0xa7, 0x17, 0x00, 0x00, |
|
| 1649 | 1650 |
} |
| 1650 | 1651 |
|
| 1651 | 1652 |
func (m *NodeSpec) Copy() *NodeSpec {
|
| ... | ... |
@@ -1997,9 +2000,14 @@ func (m *ContainerSpec) CopyFrom(src interface{}) {
|
| 1997 | 1997 |
} |
| 1998 | 1998 |
} |
| 1999 | 1999 |
|
| 2000 |
- if o.Capabilities != nil {
|
|
| 2001 |
- m.Capabilities = make([]string, len(o.Capabilities)) |
|
| 2002 |
- copy(m.Capabilities, o.Capabilities) |
|
| 2000 |
+ if o.CapabilityAdd != nil {
|
|
| 2001 |
+ m.CapabilityAdd = make([]string, len(o.CapabilityAdd)) |
|
| 2002 |
+ copy(m.CapabilityAdd, o.CapabilityAdd) |
|
| 2003 |
+ } |
|
| 2004 |
+ |
|
| 2005 |
+ if o.CapabilityDrop != nil {
|
|
| 2006 |
+ m.CapabilityDrop = make([]string, len(o.CapabilityDrop)) |
|
| 2007 |
+ copy(m.CapabilityDrop, o.CapabilityDrop) |
|
| 2003 | 2008 |
} |
| 2004 | 2009 |
|
| 2005 | 2010 |
} |
| ... | ... |
@@ -2983,8 +2991,8 @@ func (m *ContainerSpec) MarshalTo(dAtA []byte) (int, error) {
|
| 2983 | 2983 |
i += copy(dAtA[i:], v) |
| 2984 | 2984 |
} |
| 2985 | 2985 |
} |
| 2986 |
- if len(m.Capabilities) > 0 {
|
|
| 2987 |
- for _, s := range m.Capabilities {
|
|
| 2986 |
+ if len(m.CapabilityAdd) > 0 {
|
|
| 2987 |
+ for _, s := range m.CapabilityAdd {
|
|
| 2988 | 2988 |
dAtA[i] = 0xda |
| 2989 | 2989 |
i++ |
| 2990 | 2990 |
dAtA[i] = 0x1 |
| ... | ... |
@@ -3000,6 +3008,23 @@ func (m *ContainerSpec) MarshalTo(dAtA []byte) (int, error) {
|
| 3000 | 3000 |
i += copy(dAtA[i:], s) |
| 3001 | 3001 |
} |
| 3002 | 3002 |
} |
| 3003 |
+ if len(m.CapabilityDrop) > 0 {
|
|
| 3004 |
+ for _, s := range m.CapabilityDrop {
|
|
| 3005 |
+ dAtA[i] = 0xe2 |
|
| 3006 |
+ i++ |
|
| 3007 |
+ dAtA[i] = 0x1 |
|
| 3008 |
+ i++ |
|
| 3009 |
+ l = len(s) |
|
| 3010 |
+ for l >= 1<<7 {
|
|
| 3011 |
+ dAtA[i] = uint8(uint64(l)&0x7f | 0x80) |
|
| 3012 |
+ l >>= 7 |
|
| 3013 |
+ i++ |
|
| 3014 |
+ } |
|
| 3015 |
+ dAtA[i] = uint8(l) |
|
| 3016 |
+ i++ |
|
| 3017 |
+ i += copy(dAtA[i:], s) |
|
| 3018 |
+ } |
|
| 3019 |
+ } |
|
| 3003 | 3020 |
return i, nil |
| 3004 | 3021 |
} |
| 3005 | 3022 |
|
| ... | ... |
@@ -3814,8 +3839,14 @@ func (m *ContainerSpec) Size() (n int) {
|
| 3814 | 3814 |
n += mapEntrySize + 2 + sovSpecs(uint64(mapEntrySize)) |
| 3815 | 3815 |
} |
| 3816 | 3816 |
} |
| 3817 |
- if len(m.Capabilities) > 0 {
|
|
| 3818 |
- for _, s := range m.Capabilities {
|
|
| 3817 |
+ if len(m.CapabilityAdd) > 0 {
|
|
| 3818 |
+ for _, s := range m.CapabilityAdd {
|
|
| 3819 |
+ l = len(s) |
|
| 3820 |
+ n += 2 + l + sovSpecs(uint64(l)) |
|
| 3821 |
+ } |
|
| 3822 |
+ } |
|
| 3823 |
+ if len(m.CapabilityDrop) > 0 {
|
|
| 3824 |
+ for _, s := range m.CapabilityDrop {
|
|
| 3819 | 3825 |
l = len(s) |
| 3820 | 3826 |
n += 2 + l + sovSpecs(uint64(l)) |
| 3821 | 3827 |
} |
| ... | ... |
@@ -4243,7 +4274,8 @@ func (this *ContainerSpec) String() string {
|
| 4243 | 4243 |
`Isolation:` + fmt.Sprintf("%v", this.Isolation) + `,`,
|
| 4244 | 4244 |
`PidsLimit:` + fmt.Sprintf("%v", this.PidsLimit) + `,`,
|
| 4245 | 4245 |
`Sysctls:` + mapStringForSysctls + `,`, |
| 4246 |
- `Capabilities:` + fmt.Sprintf("%v", this.Capabilities) + `,`,
|
|
| 4246 |
+ `CapabilityAdd:` + fmt.Sprintf("%v", this.CapabilityAdd) + `,`,
|
|
| 4247 |
+ `CapabilityDrop:` + fmt.Sprintf("%v", this.CapabilityDrop) + `,`,
|
|
| 4247 | 4248 |
`}`, |
| 4248 | 4249 |
}, "") |
| 4249 | 4250 |
return s |
| ... | ... |
@@ -6891,7 +6923,39 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error {
|
| 6891 | 6891 |
iNdEx = postIndex |
| 6892 | 6892 |
case 27: |
| 6893 | 6893 |
if wireType != 2 {
|
| 6894 |
- return fmt.Errorf("proto: wrong wireType = %d for field Capabilities", wireType)
|
|
| 6894 |
+ return fmt.Errorf("proto: wrong wireType = %d for field CapabilityAdd", wireType)
|
|
| 6895 |
+ } |
|
| 6896 |
+ var stringLen uint64 |
|
| 6897 |
+ for shift := uint(0); ; shift += 7 {
|
|
| 6898 |
+ if shift >= 64 {
|
|
| 6899 |
+ return ErrIntOverflowSpecs |
|
| 6900 |
+ } |
|
| 6901 |
+ if iNdEx >= l {
|
|
| 6902 |
+ return io.ErrUnexpectedEOF |
|
| 6903 |
+ } |
|
| 6904 |
+ b := dAtA[iNdEx] |
|
| 6905 |
+ iNdEx++ |
|
| 6906 |
+ stringLen |= uint64(b&0x7F) << shift |
|
| 6907 |
+ if b < 0x80 {
|
|
| 6908 |
+ break |
|
| 6909 |
+ } |
|
| 6910 |
+ } |
|
| 6911 |
+ intStringLen := int(stringLen) |
|
| 6912 |
+ if intStringLen < 0 {
|
|
| 6913 |
+ return ErrInvalidLengthSpecs |
|
| 6914 |
+ } |
|
| 6915 |
+ postIndex := iNdEx + intStringLen |
|
| 6916 |
+ if postIndex < 0 {
|
|
| 6917 |
+ return ErrInvalidLengthSpecs |
|
| 6918 |
+ } |
|
| 6919 |
+ if postIndex > l {
|
|
| 6920 |
+ return io.ErrUnexpectedEOF |
|
| 6921 |
+ } |
|
| 6922 |
+ m.CapabilityAdd = append(m.CapabilityAdd, string(dAtA[iNdEx:postIndex])) |
|
| 6923 |
+ iNdEx = postIndex |
|
| 6924 |
+ case 28: |
|
| 6925 |
+ if wireType != 2 {
|
|
| 6926 |
+ return fmt.Errorf("proto: wrong wireType = %d for field CapabilityDrop", wireType)
|
|
| 6895 | 6927 |
} |
| 6896 | 6928 |
var stringLen uint64 |
| 6897 | 6929 |
for shift := uint(0); ; shift += 7 {
|
| ... | ... |
@@ -6919,7 +6983,7 @@ func (m *ContainerSpec) Unmarshal(dAtA []byte) error {
|
| 6919 | 6919 |
if postIndex > l {
|
| 6920 | 6920 |
return io.ErrUnexpectedEOF |
| 6921 | 6921 |
} |
| 6922 |
- m.Capabilities = append(m.Capabilities, string(dAtA[iNdEx:postIndex])) |
|
| 6922 |
+ m.CapabilityDrop = append(m.CapabilityDrop, string(dAtA[iNdEx:postIndex])) |
|
| 6923 | 6923 |
iNdEx = postIndex |
| 6924 | 6924 |
default: |
| 6925 | 6925 |
iNdEx = preIndex |
| ... | ... |
@@ -356,8 +356,10 @@ message ContainerSpec {
|
| 356 | 356 |
// https://docs.docker.com/engine/reference/commandline/run/#configure-namespaced-kernel-parameters-sysctls-at-runtime |
| 357 | 357 |
map<string, string> sysctls = 26; |
| 358 | 358 |
|
| 359 |
- // Capabilities is the list of Linux capabilities to be available for container (this overrides the default set of capabilities) |
|
| 360 |
- repeated string capabilities = 27; |
|
| 359 |
+ // CapabilityAdd sets the list of capabilities to add to the default capability list |
|
| 360 |
+ repeated string capability_add = 27; |
|
| 361 |
+ // CapabilityAdd sets the list of capabilities to drop from the default capability list |
|
| 362 |
+ repeated string capability_drop = 28; |
|
| 361 | 363 |
} |
| 362 | 364 |
|
| 363 | 365 |
// EndpointSpec defines the properties that can be configured to |