diff --git a/csi.proto b/csi.proto index 856fab5f..10c5a237 100644 --- a/csi.proto +++ b/csi.proto @@ -1066,6 +1066,15 @@ message ControllerExpandVolumeRequest { // Secrets required by the plugin for expanding the volume. // This field is OPTIONAL. map secrets = 3 [(csi_secret) = true]; + + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is + // being used as a block device - the SP MAY set + // node_expansion_required to false in ControllerExpandVolumeResponse + // to skip invocation of NodeExpandVolume on the node by the CO. + // This is an OPTIONAL field. + VolumeCapability volume_capability = 4; } message ControllerExpandVolumeResponse { @@ -1341,6 +1350,17 @@ message NodeExpandVolumeRequest { // filesystem of the process serving this request. // This field is OPTIONAL. string staging_path = 4; + + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is being + // used as a block device the SP MAY choose to skip expanding the + // filesystem in NodeExpandVolume implementation but still perform + // rest of the housekeeping needed for expanding the volume. If + // volume_capability is omitted the SP MAY determine + // access_type from given volume_path for the volume and perform + // node expansion. This is an OPTIONAL field. + VolumeCapability volume_capability = 5; } message NodeExpandVolumeResponse { diff --git a/lib/go/csi/csi.pb.go b/lib/go/csi/csi.pb.go index f9405d18..942d56df 100644 --- a/lib/go/csi/csi.pb.go +++ b/lib/go/csi/csi.pb.go @@ -3266,7 +3266,15 @@ type ControllerExpandVolumeRequest struct { CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"` // Secrets required by the plugin for expanding the volume. // This field is OPTIONAL. - Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is + // being used as a block device - the SP MAY set + // node_expansion_required to false in ControllerExpandVolumeResponse + // to skip invocation of NodeExpandVolume on the node by the CO. + // This is an OPTIONAL field. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -3318,6 +3326,13 @@ func (m *ControllerExpandVolumeRequest) GetSecrets() map[string]string { return nil } +func (m *ControllerExpandVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + type ControllerExpandVolumeResponse struct { // Capacity of volume after expansion. This field is REQUIRED. CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` @@ -4317,10 +4332,20 @@ type NodeExpandVolumeRequest struct { // If not empty, it MUST be an absolute path in the root // filesystem of the process serving this request. // This field is OPTIONAL. - StagingPath string `protobuf:"bytes,4,opt,name=staging_path,json=stagingPath,proto3" json:"staging_path,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + StagingPath string `protobuf:"bytes,4,opt,name=staging_path,json=stagingPath,proto3" json:"staging_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is being + // used as a block device the SP MAY choose to skip expanding the + // filesystem in NodeExpandVolume implementation but still perform + // rest of the housekeeping needed for expanding the volume. If + // volume_capability is omitted the SP MAY determine + // access_type from given volume_path for the volume and perform + // node expansion. This is an OPTIONAL field. + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *NodeExpandVolumeRequest) Reset() { *m = NodeExpandVolumeRequest{} } @@ -4376,6 +4401,13 @@ func (m *NodeExpandVolumeRequest) GetStagingPath() string { return "" } +func (m *NodeExpandVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + type NodeExpandVolumeResponse struct { // The capacity of the volume in bytes. This field is OPTIONAL. CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` @@ -4537,218 +4569,218 @@ func init() { } var fileDescriptor_9cdb00adce470e01 = []byte{ - // 3363 bytes of a gzipped FileDescriptorProto + // 3374 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5a, 0xcf, 0x6f, 0x1b, 0xc7, 0xf5, 0xe7, 0xf2, 0x97, 0xa8, 0x47, 0x49, 0xa6, 0x47, 0x3f, 0x4c, 0xaf, 0x24, 0x5b, 0x5e, 0xc7, 0x8e, 0xec, 0xd8, 0xf4, 0x37, 0x4e, 0x1c, 0x7c, 0x63, 0x3b, 0x6d, 0x28, 0x8a, 0x96, 0x18, 0xd3, 0x94, 0xb2, 0xa4, 0xe4, 0xd8, 0x6d, 0xb0, 0x59, 0x91, 0x23, 0x7a, 0x11, 0x72, 0x97, 0xd9, 0x5d, - 0xaa, 0x52, 0x51, 0xa0, 0x40, 0x7b, 0x2a, 0xfa, 0x07, 0xb4, 0x3d, 0x15, 0x48, 0x6f, 0x6d, 0x83, - 0x9c, 0x8a, 0xf6, 0x56, 0xa0, 0x87, 0x1e, 0x7a, 0xe8, 0xb5, 0x45, 0x2f, 0xb9, 0x16, 0x41, 0x0b, - 0x04, 0x3d, 0x16, 0x3d, 0x14, 0x3b, 0x33, 0xbb, 0xdc, 0x5d, 0xee, 0x2e, 0x49, 0xcb, 0x46, 0x0e, - 0x3d, 0x49, 0x7c, 0xf3, 0xe6, 0xcd, 0x9b, 0x37, 0xef, 0xbd, 0x79, 0xef, 0x33, 0x0b, 0x77, 0xda, - 0x8a, 0xf9, 0xac, 0x7f, 0x50, 0x68, 0x6a, 0xdd, 0x5b, 0x4d, 0x4d, 0x35, 0x65, 0x45, 0xc5, 0xfa, - 0x4d, 0xc3, 0xd4, 0x74, 0xb9, 0x8d, 0x6f, 0x2a, 0xaa, 0x89, 0xf5, 0x43, 0xb9, 0x89, 0x6f, 0x19, - 0x3d, 0xdc, 0xbc, 0xd5, 0x34, 0x94, 0x42, 0x4f, 0xd7, 0x4c, 0x0d, 0xa5, 0xad, 0x7f, 0x8f, 0x5e, - 0xe7, 0xd7, 0xda, 0x9a, 0xd6, 0xee, 0xe0, 0x5b, 0x84, 0x7a, 0xd0, 0x3f, 0xbc, 0xd5, 0xc2, 0x46, - 0x53, 0x57, 0x7a, 0xa6, 0xa6, 0x53, 0x4e, 0xfe, 0xa2, 0x9f, 0xc3, 0x54, 0xba, 0xd8, 0x30, 0xe5, - 0x6e, 0x8f, 0x31, 0x5c, 0xf0, 0x33, 0x7c, 0x47, 0x97, 0x7b, 0x3d, 0xac, 0x1b, 0x74, 0x5c, 0x58, - 0x82, 0x85, 0x2d, 0x6c, 0xee, 0x76, 0xfa, 0x6d, 0x45, 0xad, 0xa8, 0x87, 0x9a, 0x88, 0x3f, 0xe9, - 0x63, 0xc3, 0x14, 0xfe, 0xca, 0xc1, 0xa2, 0x6f, 0xc0, 0xe8, 0x69, 0xaa, 0x81, 0x11, 0x82, 0xa4, - 0x2a, 0x77, 0x71, 0x9e, 0x5b, 0xe3, 0xd6, 0xa7, 0x45, 0xf2, 0x3f, 0xba, 0x02, 0x73, 0x47, 0x58, - 0x6d, 0x69, 0xba, 0x74, 0x84, 0x75, 0x43, 0xd1, 0xd4, 0x7c, 0x9c, 0x8c, 0xce, 0x52, 0xea, 0x3e, - 0x25, 0xa2, 0x2d, 0xc8, 0x74, 0x65, 0x55, 0x39, 0xc4, 0x86, 0x99, 0x4f, 0xac, 0x25, 0xd6, 0xb3, - 0xb7, 0x5f, 0x2b, 0xd0, 0xad, 0x16, 0x02, 0xd7, 0x2a, 0x3c, 0x62, 0xdc, 0x65, 0xd5, 0xd4, 0x4f, - 0x44, 0x67, 0x32, 0x7f, 0x0f, 0x66, 0x3d, 0x43, 0x28, 0x07, 0x89, 0x8f, 0xf1, 0x09, 0xd3, 0xc9, - 0xfa, 0x17, 0x2d, 0x40, 0xea, 0x48, 0xee, 0xf4, 0x31, 0xd3, 0x84, 0xfe, 0xb8, 0x1b, 0xff, 0x7f, - 0x4e, 0xb8, 0x00, 0x2b, 0xce, 0x6a, 0x25, 0xb9, 0x27, 0x1f, 0x28, 0x1d, 0xc5, 0x54, 0xb0, 0x61, - 0x6f, 0xfd, 0x43, 0x58, 0x0d, 0x19, 0x67, 0x16, 0xb8, 0x0f, 0x33, 0x4d, 0x17, 0x3d, 0xcf, 0x91, - 0xad, 0xe4, 0xed, 0xad, 0xf8, 0x66, 0x9e, 0x88, 0x1e, 0x6e, 0xe1, 0xcf, 0x09, 0xc8, 0xf9, 0x59, - 0xd0, 0x7d, 0x98, 0x32, 0xb0, 0x7e, 0xa4, 0x34, 0xa9, 0x5d, 0xb3, 0xb7, 0xd7, 0xc2, 0xa4, 0x15, - 0xea, 0x94, 0x6f, 0x3b, 0x26, 0xda, 0x53, 0xd0, 0x1e, 0xe4, 0x8e, 0xb4, 0x4e, 0xbf, 0x8b, 0x25, - 0x7c, 0xdc, 0x93, 0x55, 0xe7, 0x00, 0xb2, 0xb7, 0xd7, 0x43, 0xc5, 0xec, 0x93, 0x09, 0x65, 0x9b, - 0x7f, 0x3b, 0x26, 0x9e, 0x39, 0xf2, 0x92, 0xf8, 0x9f, 0x70, 0x30, 0xc5, 0x56, 0x43, 0x6f, 0x43, - 0xd2, 0x3c, 0xe9, 0x51, 0xed, 0xe6, 0x6e, 0x5f, 0x19, 0xa5, 0x5d, 0xa1, 0x71, 0xd2, 0xc3, 0x22, - 0x99, 0x22, 0xbc, 0x0f, 0x49, 0xeb, 0x17, 0xca, 0xc2, 0xd4, 0x5e, 0xed, 0x61, 0x6d, 0xe7, 0x71, - 0x2d, 0x17, 0x43, 0x4b, 0x80, 0x4a, 0x3b, 0xb5, 0x86, 0xb8, 0x53, 0xad, 0x96, 0x45, 0xa9, 0x5e, - 0x16, 0xf7, 0x2b, 0xa5, 0x72, 0x8e, 0x43, 0xaf, 0xc0, 0xda, 0xfe, 0x4e, 0x75, 0xef, 0x51, 0x59, - 0x2a, 0x96, 0x4a, 0xe5, 0x7a, 0xbd, 0xb2, 0x51, 0xa9, 0x56, 0x1a, 0x4f, 0xa4, 0xd2, 0x4e, 0xad, - 0xde, 0x10, 0x8b, 0x95, 0x5a, 0xa3, 0x9e, 0x8b, 0xf3, 0x3f, 0xe0, 0xe0, 0x8c, 0x6f, 0x03, 0xa8, - 0xe8, 0xd1, 0xf0, 0xe6, 0xb8, 0x1b, 0x77, 0x6b, 0x7a, 0x23, 0x48, 0x53, 0x80, 0xf4, 0x4e, 0xad, - 0x5a, 0xa9, 0x59, 0xda, 0x65, 0x61, 0x6a, 0xe7, 0xc1, 0x03, 0xf2, 0x23, 0xbe, 0x91, 0xa6, 0x0b, - 0x0a, 0x73, 0x30, 0xb3, 0xab, 0x6b, 0x07, 0xd8, 0xf6, 0x9f, 0x22, 0xcc, 0xb2, 0xdf, 0xcc, 0x5f, - 0xfe, 0x0f, 0x52, 0x3a, 0x96, 0x5b, 0x27, 0xec, 0x68, 0xf9, 0x02, 0x8d, 0xc9, 0x82, 0x1d, 0x93, - 0x85, 0x0d, 0x4d, 0xeb, 0xec, 0x5b, 0xfe, 0x29, 0x52, 0x46, 0xe1, 0xab, 0x24, 0xcc, 0x97, 0x74, - 0x2c, 0x9b, 0x98, 0x6a, 0xcb, 0x44, 0x07, 0xc6, 0xde, 0x7d, 0x98, 0xb3, 0xfc, 0xab, 0xa9, 0x98, - 0x27, 0x92, 0x2e, 0xab, 0x6d, 0xcc, 0x8e, 0x7e, 0xd1, 0xb6, 0x40, 0x89, 0x8d, 0x8a, 0xd6, 0xa0, - 0x38, 0xdb, 0x74, 0xff, 0x44, 0x15, 0x98, 0x67, 0xae, 0xe3, 0x71, 0xe9, 0x84, 0xd7, 0xa5, 0xa9, - 0x16, 0x2e, 0x97, 0x46, 0x47, 0x5e, 0x8a, 0x82, 0x0d, 0xf4, 0x10, 0xa0, 0x27, 0xeb, 0x72, 0x17, - 0x9b, 0x58, 0x37, 0xf2, 0x49, 0x6f, 0x7c, 0x07, 0xec, 0xa6, 0xb0, 0xeb, 0x70, 0xd3, 0xf8, 0x76, - 0x4d, 0x47, 0x5b, 0x56, 0x40, 0x34, 0x75, 0x6c, 0x1a, 0xf9, 0x14, 0x91, 0xb4, 0x1e, 0x25, 0xa9, - 0x4e, 0x59, 0x89, 0x98, 0x8d, 0xc4, 0x4f, 0x37, 0x38, 0xd1, 0x9e, 0x8d, 0x76, 0x60, 0xd1, 0xde, - 0xa0, 0xa6, 0x9a, 0x58, 0x35, 0x25, 0x43, 0xeb, 0xeb, 0x4d, 0x9c, 0x4f, 0x13, 0x2b, 0x2d, 0xfb, - 0xb6, 0x48, 0x79, 0xea, 0x84, 0x45, 0x64, 0xa6, 0xf1, 0x10, 0xd1, 0x53, 0xe0, 0xe5, 0x66, 0x13, - 0x1b, 0x86, 0x42, 0x6d, 0x21, 0xe9, 0xf8, 0x93, 0xbe, 0xa2, 0xe3, 0x2e, 0x56, 0x4d, 0x23, 0x3f, - 0xe5, 0x95, 0xda, 0xd0, 0x7a, 0x5a, 0x47, 0x6b, 0x9f, 0x88, 0x03, 0x1e, 0xf1, 0xbc, 0x67, 0xba, - 0x6b, 0xc4, 0xe0, 0xdf, 0x81, 0x33, 0x3e, 0xa3, 0x4c, 0x92, 0xd9, 0xf8, 0xbb, 0x30, 0xe3, 0xb6, - 0xc4, 0x44, 0x59, 0xf1, 0xc7, 0x71, 0x98, 0x0f, 0xb0, 0x01, 0xda, 0x86, 0x8c, 0xa1, 0xca, 0x3d, - 0xe3, 0x99, 0x66, 0x32, 0xff, 0xbd, 0x1e, 0x61, 0xb2, 0x42, 0x9d, 0xf1, 0xd2, 0x9f, 0xdb, 0x31, - 0xd1, 0x99, 0x8d, 0x36, 0x20, 0x4d, 0xed, 0xe9, 0xcf, 0x4d, 0x41, 0x72, 0x28, 0xcd, 0x91, 0xc2, - 0x66, 0xf2, 0xaf, 0xc3, 0x9c, 0x77, 0x05, 0x74, 0x11, 0xb2, 0xf6, 0x0a, 0x92, 0xd2, 0x62, 0x7b, - 0x05, 0x9b, 0x54, 0x69, 0xf1, 0xaf, 0xc1, 0x8c, 0x5b, 0x18, 0x5a, 0x86, 0x69, 0xe6, 0x10, 0x0e, - 0x7b, 0x86, 0x12, 0x2a, 0x2d, 0x27, 0xa6, 0xbf, 0x01, 0x0b, 0x5e, 0x3f, 0x63, 0xa1, 0x7c, 0xd5, - 0xd9, 0x03, 0xb5, 0xc5, 0x9c, 0x77, 0x0f, 0xb6, 0x9e, 0xc2, 0x2f, 0x93, 0x90, 0xf3, 0x07, 0x0d, - 0xba, 0x0f, 0xa9, 0x83, 0x8e, 0xd6, 0xfc, 0x98, 0xcd, 0x7d, 0x25, 0x2c, 0xba, 0x0a, 0x1b, 0x16, - 0x17, 0xa5, 0x6e, 0xc7, 0x44, 0x3a, 0xc9, 0x9a, 0xdd, 0xd5, 0xfa, 0xaa, 0xc9, 0xac, 0x17, 0x3e, - 0xfb, 0x91, 0xc5, 0x35, 0x98, 0x4d, 0x26, 0xa1, 0x4d, 0xc8, 0x52, 0xb7, 0x93, 0xba, 0x5a, 0x0b, - 0xe7, 0x13, 0x44, 0xc6, 0xe5, 0x50, 0x19, 0x45, 0xc2, 0xfb, 0x48, 0x6b, 0x61, 0x11, 0x64, 0xe7, - 0x7f, 0x7e, 0x16, 0xb2, 0x2e, 0xdd, 0xf8, 0x2d, 0xc8, 0xba, 0x16, 0x43, 0xe7, 0x60, 0xea, 0xd0, - 0x90, 0x9c, 0x24, 0x3c, 0x2d, 0xa6, 0x0f, 0x0d, 0x92, 0x4f, 0x2f, 0x42, 0x96, 0x68, 0x21, 0x1d, - 0x76, 0xe4, 0xb6, 0x91, 0x8f, 0xaf, 0x25, 0xac, 0x33, 0x22, 0xa4, 0x07, 0x16, 0x85, 0xff, 0x07, - 0x07, 0x30, 0x58, 0x12, 0xdd, 0x87, 0x24, 0xd1, 0x92, 0xa6, 0xf2, 0xf5, 0x31, 0xb4, 0x2c, 0x10, - 0x55, 0xc9, 0x2c, 0xe1, 0xe7, 0x1c, 0x24, 0x89, 0x18, 0xff, 0x85, 0x53, 0xaf, 0xd4, 0xb6, 0xaa, - 0x65, 0xa9, 0xb6, 0xb3, 0x59, 0x96, 0x1e, 0x8b, 0x95, 0x46, 0x59, 0xcc, 0x71, 0x68, 0x19, 0xce, - 0xb9, 0xe9, 0x62, 0xb9, 0xb8, 0x59, 0x16, 0xa5, 0x9d, 0x5a, 0xf5, 0x49, 0x2e, 0x8e, 0x78, 0x58, - 0x7a, 0xb4, 0x57, 0x6d, 0x54, 0x86, 0xc7, 0x12, 0x68, 0x05, 0xf2, 0xae, 0x31, 0x26, 0x83, 0x89, - 0x4d, 0x5a, 0x62, 0x5d, 0xa3, 0xf4, 0x5f, 0x36, 0x98, 0xda, 0x98, 0x75, 0x0e, 0x83, 0x38, 0xdb, - 0x63, 0x98, 0xf5, 0xe4, 0x68, 0xab, 0x9c, 0x62, 0x49, 0xa5, 0x25, 0x1d, 0x9c, 0x98, 0xa4, 0xc4, - 0xe0, 0xd6, 0x13, 0xe2, 0xac, 0x4d, 0xdd, 0xb0, 0x88, 0x96, 0x59, 0x3b, 0x4a, 0x57, 0x31, 0x19, - 0x4f, 0x9c, 0xf0, 0x00, 0x21, 0x11, 0x06, 0xe1, 0x8b, 0x38, 0xa4, 0xd9, 0xd9, 0x5c, 0x71, 0xdd, - 0x12, 0x1e, 0x91, 0x36, 0x95, 0x8a, 0xf4, 0x04, 0x47, 0xdc, 0x1b, 0x1c, 0x68, 0x1b, 0xe6, 0xdc, - 0xa9, 0xf4, 0xd8, 0x2e, 0xe2, 0x2e, 0x79, 0x0f, 0xc8, 0x1d, 0xcf, 0xc7, 0xac, 0x74, 0x9b, 0x3d, - 0x72, 0xd3, 0xd0, 0x06, 0xcc, 0xf9, 0xb2, 0x71, 0x72, 0x74, 0x36, 0x9e, 0x6d, 0x7a, 0x12, 0x53, - 0x11, 0xe6, 0xed, 0x44, 0xda, 0xc1, 0x92, 0xc9, 0x12, 0x2d, 0xbb, 0x2d, 0x72, 0x43, 0x09, 0x18, - 0x0d, 0x98, 0x6d, 0x1a, 0xff, 0x2e, 0xa0, 0x61, 0x5d, 0x27, 0xca, 0x9a, 0x7d, 0x98, 0x0f, 0x48, - 0xf1, 0xa8, 0x00, 0xd3, 0xe4, 0xa8, 0x0c, 0xc5, 0xc4, 0xac, 0x3c, 0x1c, 0xd6, 0x68, 0xc0, 0x62, - 0xf1, 0xf7, 0x74, 0x7c, 0x88, 0x75, 0x1d, 0xb7, 0x48, 0x78, 0x04, 0xf2, 0x3b, 0x2c, 0xc2, 0x0f, - 0x39, 0xc8, 0xd8, 0x74, 0x74, 0x17, 0x32, 0x06, 0x6e, 0xd3, 0xeb, 0x87, 0xae, 0x75, 0xc1, 0x3f, - 0xb7, 0x50, 0x67, 0x0c, 0xac, 0x90, 0xb6, 0xf9, 0xad, 0x42, 0xda, 0x33, 0x34, 0xd1, 0xe6, 0x7f, - 0xcb, 0xc1, 0xfc, 0x26, 0xee, 0x60, 0x7f, 0x95, 0x12, 0x95, 0x61, 0xdd, 0x17, 0x7b, 0xdc, 0x7b, - 0xb1, 0x07, 0x88, 0x8a, 0xb8, 0xd8, 0x4f, 0x75, 0xd9, 0x2d, 0xc1, 0x82, 0x77, 0x35, 0x9a, 0xde, - 0x85, 0x7f, 0x26, 0xe0, 0x82, 0xe5, 0x0b, 0xba, 0xd6, 0xe9, 0x60, 0x7d, 0xb7, 0x7f, 0xd0, 0x51, - 0x8c, 0x67, 0x13, 0x6c, 0xee, 0x1c, 0x4c, 0xa9, 0x5a, 0xcb, 0x15, 0x3c, 0x69, 0xeb, 0x67, 0xa5, - 0x85, 0xca, 0x70, 0xd6, 0x5f, 0x66, 0x9d, 0xb0, 0x24, 0x1c, 0x5e, 0x64, 0xe5, 0x8e, 0xfc, 0x37, - 0x08, 0x0f, 0x19, 0xab, 0x40, 0xd4, 0xd4, 0xce, 0x09, 0x89, 0x98, 0x8c, 0xe8, 0xfc, 0x46, 0xa2, - 0xbf, 0x62, 0x7a, 0xc3, 0xa9, 0x98, 0x22, 0x77, 0x14, 0x55, 0x3c, 0x7d, 0x34, 0x14, 0xf1, 0x69, - 0x22, 0xfa, 0xed, 0x31, 0x45, 0x8f, 0xcc, 0x04, 0xa7, 0x39, 0xc5, 0x17, 0x10, 0xbe, 0x7f, 0xe2, - 0xe0, 0x62, 0xe8, 0x16, 0xd8, 0x95, 0xdf, 0x82, 0x33, 0x3d, 0x3a, 0xe0, 0x18, 0x81, 0x46, 0xd9, - 0xbd, 0x91, 0x46, 0x60, 0x5d, 0x2c, 0xa3, 0x7a, 0xcc, 0x30, 0xd7, 0xf3, 0x10, 0xf9, 0x22, 0xcc, - 0x07, 0xb0, 0x4d, 0xb4, 0x99, 0x2f, 0x39, 0x58, 0x1b, 0xa8, 0xb2, 0xa7, 0xf6, 0x5e, 0x9c, 0xfb, - 0x36, 0x06, 0xbe, 0x45, 0x53, 0xfe, 0x9d, 0xe1, 0xbd, 0x07, 0x2f, 0xf8, 0xb2, 0x22, 0xf8, 0x32, - 0x5c, 0x8a, 0x58, 0x9a, 0x85, 0xf3, 0x17, 0x49, 0xb8, 0xb4, 0x2f, 0x77, 0x94, 0x96, 0x53, 0xc8, - 0x05, 0xf4, 0xfb, 0xd1, 0x26, 0x69, 0x0e, 0x45, 0x00, 0xcd, 0x5a, 0xf7, 0x9d, 0xa8, 0x1d, 0x25, - 0x7f, 0x8c, 0xeb, 0xf0, 0x05, 0x36, 0x61, 0x4f, 0x02, 0x9a, 0xb0, 0xb7, 0xc7, 0xd7, 0x35, 0xaa, - 0x25, 0xdb, 0xf3, 0x27, 0x98, 0xb7, 0xc6, 0x97, 0x1b, 0xe1, 0x05, 0xa7, 0x8e, 0xe2, 0xaf, 0xb3, - 0x6b, 0xfa, 0x43, 0x12, 0x84, 0xa8, 0xdd, 0xb3, 0x1c, 0x22, 0xc2, 0x74, 0x53, 0x53, 0x0f, 0x15, - 0xbd, 0x8b, 0x5b, 0xac, 0xfa, 0x7f, 0x73, 0x1c, 0xe3, 0xb1, 0x04, 0x52, 0xb2, 0xe7, 0x8a, 0x03, - 0x31, 0x28, 0x0f, 0x53, 0x5d, 0x6c, 0x18, 0x72, 0xdb, 0x56, 0xcb, 0xfe, 0xc9, 0x7f, 0x96, 0x80, - 0x69, 0x67, 0x0a, 0x52, 0x87, 0x3c, 0x98, 0xa6, 0xaf, 0xad, 0xe7, 0x51, 0xe0, 0xf9, 0x9d, 0x39, - 0xfe, 0x1c, 0xce, 0xdc, 0xf2, 0x38, 0x33, 0x0d, 0x87, 0xcd, 0xe7, 0x52, 0x3b, 0xc2, 0xaf, 0xbf, - 0x76, 0x07, 0x14, 0xbe, 0x0d, 0xa8, 0xaa, 0x18, 0xac, 0x8b, 0x72, 0xd2, 0x92, 0xd5, 0x34, 0xc9, - 0xc7, 0x12, 0x56, 0x4d, 0x5d, 0x61, 0xe5, 0x7a, 0x4a, 0x84, 0xae, 0x7c, 0x5c, 0xa6, 0x14, 0xab, - 0xa4, 0x37, 0x4c, 0x59, 0x37, 0x15, 0xb5, 0x2d, 0x99, 0xda, 0xc7, 0xd8, 0x01, 0x5d, 0x6d, 0x6a, - 0xc3, 0x22, 0x0a, 0x9f, 0xc6, 0x61, 0xde, 0x23, 0x9e, 0xf9, 0xe4, 0x3d, 0x98, 0x1a, 0xc8, 0xf6, - 0x94, 0xf1, 0x01, 0xdc, 0x05, 0x6a, 0x36, 0x7b, 0x06, 0x5a, 0x05, 0x50, 0xf1, 0xb1, 0xe9, 0x59, - 0x77, 0xda, 0xa2, 0x90, 0x35, 0xf9, 0xfb, 0x4e, 0xcf, 0x6d, 0xca, 0x66, 0xdf, 0x40, 0x37, 0x00, - 0xb1, 0x0c, 0x8d, 0x5b, 0x12, 0xbb, 0x62, 0xe8, 0xb2, 0xd3, 0x62, 0xce, 0x19, 0xa9, 0x91, 0xcb, - 0xc6, 0xe0, 0x3f, 0x81, 0x14, 0x35, 0xe2, 0x98, 0xdd, 0x36, 0x7a, 0x17, 0xd2, 0x06, 0x59, 0xc8, - 0x8f, 0x2c, 0x04, 0xed, 0xc4, 0xad, 0x98, 0xc8, 0xe6, 0x09, 0x9f, 0xc5, 0x01, 0x6d, 0x61, 0xd3, - 0x69, 0xc3, 0xd8, 0x19, 0x84, 0xf8, 0x32, 0xf7, 0x1c, 0xbe, 0xfc, 0x9e, 0xc7, 0x97, 0x69, 0x34, - 0x5c, 0x77, 0xa1, 0xdf, 0xbe, 0xa5, 0x23, 0x33, 0x71, 0x48, 0xeb, 0x43, 0xeb, 0xc9, 0xf1, 0x5a, - 0x9f, 0x53, 0xba, 0xec, 0x26, 0xcc, 0x7b, 0x74, 0x66, 0x3e, 0x75, 0x13, 0x90, 0x7c, 0x24, 0x2b, - 0x1d, 0xd9, 0xd2, 0xcb, 0xee, 0x2c, 0x59, 0xa7, 0x79, 0xd6, 0x19, 0xb1, 0xa7, 0x09, 0x82, 0xbb, - 0x60, 0x61, 0xf2, 0xfc, 0x68, 0x7c, 0xc7, 0x7d, 0xd1, 0x0f, 0xf1, 0xb0, 0x75, 0xb7, 0x02, 0x11, - 0xf9, 0xcb, 0xc3, 0x45, 0x0a, 0x83, 0xa7, 0x43, 0xc1, 0xf9, 0x5f, 0x25, 0x60, 0x39, 0x82, 0x1b, - 0xdd, 0x83, 0x84, 0xde, 0x6b, 0x32, 0x77, 0x7c, 0x75, 0x0c, 0xf9, 0x05, 0x71, 0xb7, 0xb4, 0x1d, - 0x13, 0xad, 0x59, 0xfc, 0x1f, 0xe3, 0x90, 0x10, 0x77, 0x4b, 0xe8, 0x5d, 0x0f, 0x52, 0x7d, 0x63, - 0x4c, 0x29, 0x6e, 0xa0, 0xfa, 0x3f, 0x5c, 0x10, 0x52, 0x9d, 0x87, 0x85, 0x92, 0x58, 0x2e, 0x36, - 0xca, 0xd2, 0x66, 0xb9, 0x5a, 0x6e, 0x94, 0x25, 0x8a, 0xa4, 0xe7, 0x38, 0xb4, 0x02, 0xf9, 0xdd, - 0xbd, 0x8d, 0x6a, 0xa5, 0xbe, 0x2d, 0xed, 0xd5, 0xec, 0xff, 0xd8, 0x68, 0x1c, 0xe5, 0x60, 0xa6, - 0x5a, 0xa9, 0x37, 0x18, 0xa1, 0x9e, 0x4b, 0x58, 0x94, 0xad, 0x72, 0x43, 0x2a, 0x15, 0x77, 0x8b, - 0xa5, 0x4a, 0xe3, 0x49, 0x2e, 0x89, 0x78, 0x58, 0xf2, 0xca, 0xae, 0xd7, 0x8a, 0xbb, 0xf5, 0xed, - 0x9d, 0x46, 0x2e, 0x85, 0x10, 0xcc, 0x91, 0xf9, 0x36, 0xa9, 0x9e, 0x4b, 0x5b, 0x12, 0x4a, 0xd5, - 0x9d, 0x9a, 0xa3, 0xc3, 0x14, 0x5a, 0x80, 0x9c, 0xbd, 0xb2, 0x58, 0x2e, 0x6e, 0x12, 0x14, 0x25, - 0x83, 0xce, 0xc2, 0x6c, 0xf9, 0x83, 0xdd, 0x62, 0x6d, 0xd3, 0x66, 0x9c, 0x46, 0x6b, 0xb0, 0xe2, - 0x56, 0x47, 0x62, 0xb3, 0xca, 0x9b, 0x04, 0x4b, 0xa9, 0xe7, 0xc0, 0x41, 0xe9, 0xbe, 0x8c, 0xc3, - 0x22, 0x85, 0xe9, 0x6c, 0x50, 0xd0, 0x0e, 0xdc, 0x75, 0xc8, 0x51, 0x60, 0x41, 0xf2, 0x97, 0x76, - 0x73, 0x94, 0xbe, 0x6f, 0x17, 0x78, 0x36, 0xa4, 0x1e, 0x77, 0x41, 0xea, 0x15, 0x7f, 0xb9, 0x7b, - 0xdd, 0x0b, 0x3e, 0xfb, 0x56, 0x8b, 0xea, 0xa0, 0x1e, 0x05, 0xd4, 0x63, 0x37, 0xa3, 0xa5, 0x45, - 0xdd, 0x55, 0xa7, 0x69, 0x97, 0x4e, 0x19, 0xf2, 0x0f, 0x60, 0xc9, 0xaf, 0x2f, 0x8b, 0xbe, 0x1b, - 0x43, 0x10, 0xb1, 0x93, 0x83, 0x1c, 0x5e, 0x87, 0x43, 0xf8, 0x0b, 0x07, 0x19, 0x9b, 0x6c, 0xdd, - 0x23, 0x86, 0xf2, 0x5d, 0xec, 0x81, 0xa4, 0xa6, 0x2d, 0x8a, 0x83, 0x70, 0xb9, 0xc1, 0xdd, 0xb8, - 0x1f, 0xdc, 0x0d, 0x3c, 0xe7, 0x44, 0xe0, 0x39, 0x7f, 0x13, 0x66, 0x9b, 0x96, 0xfa, 0x8a, 0xa6, - 0x4a, 0xa6, 0xd2, 0xb5, 0x11, 0xa7, 0xe1, 0xc7, 0x98, 0x86, 0xfd, 0x82, 0x2a, 0xce, 0xd8, 0x13, - 0x2c, 0x12, 0x5a, 0x83, 0x19, 0xf2, 0x38, 0x23, 0x99, 0x9a, 0xd4, 0x37, 0x70, 0x3e, 0x45, 0xfa, - 0x6f, 0x20, 0xb4, 0x86, 0xb6, 0x67, 0x60, 0xe1, 0xf7, 0x1c, 0x2c, 0x52, 0x58, 0xc1, 0xef, 0x8e, - 0xa3, 0x40, 0x6a, 0xb7, 0xc7, 0xf9, 0xae, 0x86, 0x40, 0x81, 0x2f, 0xab, 0xab, 0xca, 0xc3, 0x92, - 0x7f, 0x3d, 0xd6, 0x4a, 0x7d, 0x1e, 0x87, 0x05, 0xeb, 0x36, 0xb5, 0x07, 0x5e, 0x74, 0x99, 0x32, - 0xc1, 0x49, 0xfa, 0x8c, 0x99, 0x1c, 0x32, 0xe6, 0xb6, 0xbf, 0x51, 0xb9, 0xe6, 0xae, 0x07, 0xfc, - 0x3b, 0x78, 0x59, 0xb6, 0xfc, 0x35, 0x07, 0x8b, 0xbe, 0xf5, 0x58, 0xbc, 0xbc, 0xe3, 0xaf, 0xbc, - 0x2e, 0x87, 0xe8, 0xf7, 0x5c, 0xb5, 0xd7, 0x1d, 0xbb, 0x7a, 0x9a, 0x2c, 0x2c, 0x7f, 0x14, 0x87, - 0xd5, 0xc1, 0x0d, 0x44, 0x9e, 0x47, 0x5b, 0x13, 0x40, 0x07, 0xa7, 0x7b, 0x85, 0x7c, 0xdf, 0x9f, - 0x70, 0x6f, 0x0f, 0x5f, 0x8a, 0x01, 0x2a, 0xbd, 0xac, 0xa3, 0xfb, 0xbe, 0x1b, 0x05, 0xf4, 0xae, - 0xcb, 0x8e, 0x70, 0x4c, 0x38, 0xfd, 0x2d, 0x38, 0x47, 0xaa, 0x5d, 0xe7, 0x59, 0xde, 0x7e, 0x2c, - 0xa4, 0xb9, 0x2c, 0x23, 0x2e, 0x5a, 0xc3, 0xce, 0x5b, 0x34, 0x83, 0x90, 0x5b, 0xc2, 0x57, 0x49, - 0x58, 0xb2, 0xaa, 0xe1, 0xba, 0x29, 0xb7, 0x27, 0x01, 0x57, 0xbf, 0x35, 0x8c, 0x55, 0xc5, 0xbd, - 0xf6, 0x0c, 0x96, 0x3a, 0x0e, 0x44, 0x85, 0x0a, 0x30, 0x6f, 0x98, 0x72, 0x9b, 0xc4, 0xb1, 0xac, - 0xb7, 0xb1, 0x29, 0xf5, 0x64, 0xf3, 0x19, 0x0b, 0xd2, 0xb3, 0x6c, 0xa8, 0x41, 0x46, 0x76, 0x65, - 0xf3, 0x59, 0x30, 0xe6, 0x99, 0x9c, 0x18, 0xf3, 0x7c, 0xcf, 0x1f, 0xcd, 0xaf, 0x8d, 0xd8, 0x4b, - 0xc4, 0x6d, 0xfc, 0x41, 0x08, 0x9e, 0xf9, 0xfa, 0x08, 0x91, 0xa3, 0x71, 0xcc, 0xd3, 0xe3, 0x77, - 0x5f, 0x33, 0x14, 0x7a, 0x1e, 0xce, 0x0d, 0x6d, 0x9e, 0xe5, 0xfe, 0x36, 0xe4, 0xad, 0xa1, 0x3d, - 0xd5, 0x98, 0xd0, 0x1d, 0x43, 0x3c, 0x26, 0x1e, 0xe2, 0x31, 0xc2, 0x32, 0x9c, 0x0f, 0x58, 0x88, - 0x69, 0xf1, 0x9b, 0x14, 0x55, 0x63, 0x72, 0x54, 0xfe, 0xc3, 0xb0, 0xa8, 0x78, 0xd3, 0x7d, 0xec, - 0x81, 0x00, 0xf6, 0xcb, 0x88, 0x8b, 0x8b, 0x90, 0x75, 0xf3, 0xb1, 0xfb, 0xcb, 0x1c, 0x11, 0x38, - 0xa9, 0x53, 0x3d, 0x16, 0xa4, 0x7d, 0x8f, 0x05, 0xd5, 0x41, 0x50, 0x4d, 0x79, 0x6b, 0xd2, 0x50, - 0x53, 0x44, 0x84, 0xd5, 0xd3, 0xa1, 0xb0, 0xca, 0x78, 0x5f, 0x20, 0x42, 0x85, 0xfe, 0x0f, 0x04, - 0x16, 0x73, 0xea, 0xc0, 0xa7, 0x01, 0xe1, 0x29, 0xf0, 0xd4, 0xe3, 0x27, 0x07, 0xeb, 0x7d, 0x6e, - 0x14, 0xf7, 0xbb, 0x91, 0xb0, 0x0a, 0xcb, 0x81, 0xb2, 0xd9, 0xd2, 0xdf, 0xa3, 0x7a, 0x6d, 0x61, - 0x73, 0x80, 0x88, 0x18, 0xe3, 0xae, 0xcc, 0x06, 0xdd, 0x2b, 0x53, 0x12, 0x71, 0xe0, 0x4b, 0x30, - 0x63, 0x47, 0x84, 0x2b, 0x14, 0xb2, 0x8c, 0x46, 0x94, 0xdb, 0xa2, 0x1b, 0xf7, 0xaf, 0xce, 0xae, - 0xd7, 0x6b, 0x90, 0xea, 0x13, 0x64, 0x93, 0xd6, 0x47, 0xf3, 0x5e, 0xaf, 0xdf, 0xb3, 0x86, 0x44, - 0xca, 0x21, 0x7c, 0xce, 0x41, 0xd6, 0x45, 0x46, 0x2b, 0x30, 0xed, 0x00, 0x0d, 0x76, 0x43, 0xe1, - 0x10, 0xac, 0x63, 0x32, 0x35, 0x53, 0xee, 0xb0, 0xc7, 0x72, 0xfa, 0xc3, 0xea, 0x01, 0xfb, 0x06, - 0xa6, 0xf5, 0x66, 0x42, 0x24, 0xff, 0xa3, 0x1b, 0x90, 0xec, 0xab, 0x8a, 0x49, 0xc2, 0x73, 0xce, - 0x1f, 0x77, 0x64, 0xa9, 0xc2, 0x9e, 0xaa, 0x98, 0x22, 0xe1, 0x12, 0xae, 0x43, 0xd2, 0xfa, 0xe5, - 0xed, 0xc7, 0xa7, 0x21, 0xb5, 0xf1, 0xa4, 0x51, 0xae, 0xe7, 0x38, 0x04, 0x90, 0xae, 0xd0, 0xee, - 0x35, 0x2e, 0xac, 0x38, 0x5b, 0x0f, 0xc2, 0x3b, 0x3e, 0xa2, 0xa7, 0x16, 0x86, 0x74, 0x14, 0x03, - 0x91, 0x8e, 0x55, 0xcf, 0xfd, 0x35, 0x02, 0xe3, 0xf8, 0x17, 0x07, 0x8b, 0x81, 0x7c, 0xe8, 0x8e, - 0x1b, 0xdd, 0xb8, 0x14, 0x29, 0xd3, 0x8d, 0x6b, 0xfc, 0x8c, 0xa3, 0xb8, 0xc6, 0x5d, 0x0f, 0xae, - 0x71, 0x75, 0xe4, 0x7c, 0x37, 0xa2, 0xb1, 0x1f, 0x02, 0x68, 0xd4, 0x1b, 0xc5, 0xad, 0xb2, 0xb4, - 0x57, 0xa3, 0x7f, 0x1d, 0x40, 0x63, 0x01, 0x72, 0x5b, 0x65, 0x1b, 0x22, 0x90, 0xea, 0x8d, 0x62, - 0xa3, 0x9e, 0x8b, 0x0f, 0x83, 0x09, 0x09, 0x07, 0x2a, 0x58, 0x00, 0xc4, 0xcc, 0xea, 0xfe, 0xca, - 0xf5, 0x53, 0x0e, 0xe6, 0x3d, 0x64, 0x66, 0x65, 0xd7, 0x43, 0x18, 0xe7, 0x79, 0x08, 0xbb, 0x05, - 0x0b, 0x56, 0xb7, 0x43, 0x7d, 0xdd, 0x90, 0x7a, 0x58, 0x27, 0x70, 0x26, 0x73, 0xa7, 0xb3, 0x5d, - 0xf9, 0x98, 0xc1, 0x8d, 0xbb, 0x58, 0xb7, 0x04, 0xbf, 0x00, 0xa8, 0x4e, 0xf8, 0x1d, 0x47, 0xaf, - 0xe6, 0x89, 0x6b, 0xf2, 0x91, 0x71, 0x3a, 0x5c, 0xb4, 0x27, 0x26, 0x28, 0xda, 0xfd, 0x51, 0x9e, - 0x1c, 0x8e, 0xf2, 0x22, 0xbd, 0xb2, 0x4f, 0x51, 0x42, 0xdf, 0xfe, 0x37, 0x07, 0x99, 0x4a, 0x0b, - 0xab, 0xa6, 0xe5, 0xa0, 0x35, 0x98, 0xf5, 0x7c, 0x28, 0x8c, 0x56, 0x42, 0xbe, 0x1f, 0x26, 0xd6, - 0xe1, 0x57, 0x23, 0xbf, 0x2e, 0x16, 0x62, 0xe8, 0xd0, 0xf5, 0x91, 0xb3, 0x07, 0xad, 0x7d, 0x65, - 0x68, 0x66, 0x40, 0xac, 0xf2, 0x57, 0x46, 0x70, 0x39, 0xeb, 0xbc, 0x05, 0x29, 0xf2, 0x49, 0x28, - 0x5a, 0x70, 0x3e, 0x4b, 0x75, 0x7d, 0x31, 0xca, 0x2f, 0xfa, 0xa8, 0xf6, 0xbc, 0xdb, 0x7f, 0xcf, - 0x00, 0x0c, 0x3a, 0x11, 0xf4, 0x10, 0x66, 0xdc, 0x5f, 0xa5, 0xa1, 0xe5, 0x88, 0x6f, 0x22, 0xf9, - 0x95, 0xe0, 0x41, 0x47, 0xa7, 0x87, 0x30, 0xe3, 0xfe, 0x06, 0x62, 0x20, 0x2c, 0xe0, 0x3b, 0x8c, - 0x81, 0xb0, 0xc0, 0xcf, 0x26, 0x62, 0xa8, 0x03, 0xe7, 0x42, 0x5e, 0xc1, 0xd1, 0xd5, 0xf1, 0xbe, - 0x15, 0xe0, 0x5f, 0x1d, 0xf3, 0x39, 0x5d, 0x88, 0x21, 0x1d, 0xce, 0x87, 0x3e, 0xfe, 0xa2, 0xf5, - 0x71, 0x9f, 0xa6, 0xf9, 0x6b, 0x63, 0x70, 0x3a, 0x6b, 0xf6, 0x81, 0x0f, 0x7f, 0x71, 0x42, 0xd7, - 0xc6, 0x7e, 0x0a, 0xe5, 0xaf, 0x8f, 0xff, 0x80, 0x25, 0xc4, 0xd0, 0x36, 0x64, 0x5d, 0x8f, 0x18, - 0x88, 0x0f, 0x7c, 0xd9, 0xa0, 0x82, 0x97, 0x23, 0x5e, 0x3d, 0xa8, 0x24, 0x17, 0x64, 0x3f, 0x90, - 0x34, 0xfc, 0xf6, 0x30, 0x90, 0x14, 0x80, 0xf1, 0xfb, 0xcd, 0xef, 0xbb, 0xa8, 0x82, 0xcc, 0x1f, - 0x7c, 0xd3, 0x05, 0x99, 0x3f, 0xe4, 0xd6, 0x13, 0x62, 0xe8, 0x7d, 0x98, 0xf3, 0xa2, 0x8f, 0x68, - 0x35, 0x12, 0x45, 0xe5, 0x2f, 0x84, 0x0d, 0xbb, 0x45, 0x7a, 0xc1, 0xae, 0x81, 0xc8, 0x40, 0xd0, - 0x6d, 0x20, 0x32, 0x04, 0x23, 0x8b, 0x59, 0xf9, 0xc9, 0x03, 0xe1, 0x0c, 0xf2, 0x53, 0x10, 0xf2, - 0x34, 0xc8, 0x4f, 0x81, 0xb8, 0x8f, 0x10, 0x43, 0x0a, 0x2c, 0x05, 0x03, 0x11, 0xe8, 0xca, 0x58, - 0x00, 0x09, 0x7f, 0x75, 0x14, 0x9b, 0x93, 0x6a, 0xfe, 0x96, 0x82, 0x24, 0xb9, 0xb1, 0x1a, 0x70, - 0xc6, 0xd7, 0x08, 0xa2, 0x0b, 0xd1, 0xed, 0x31, 0x7f, 0x31, 0x74, 0xdc, 0xd9, 0xc9, 0x53, 0x38, - 0x3b, 0xd4, 0xda, 0xa1, 0x35, 0xf7, 0xbc, 0xa0, 0xf6, 0x92, 0xbf, 0x14, 0xc1, 0xe1, 0x97, 0xed, - 0x4d, 0x3b, 0x6b, 0xa3, 0x7a, 0x0f, 0xaf, 0xec, 0xb0, 0x54, 0xf3, 0x11, 0x2d, 0x10, 0xfc, 0x49, - 0x46, 0xf0, 0xea, 0x15, 0x98, 0x5e, 0x2e, 0x47, 0xf2, 0x38, 0x2b, 0x7c, 0xe8, 0x54, 0x26, 0xae, - 0x4a, 0x18, 0x79, 0x94, 0x0b, 0xac, 0xd1, 0x79, 0x21, 0x8a, 0xc5, 0x11, 0xff, 0x18, 0x72, 0xfe, - 0x2b, 0x18, 0x79, 0xce, 0x2b, 0xc8, 0x6d, 0xd6, 0xc2, 0x19, 0xfc, 0x96, 0xf1, 0xc7, 0xbf, 0x5f, - 0xab, 0xa0, 0xc8, 0xbf, 0x1c, 0xc9, 0xe3, 0xce, 0x58, 0xae, 0xe2, 0x6c, 0x90, 0xb1, 0x86, 0x0b, - 0xb9, 0x41, 0xc6, 0x0a, 0xa8, 0xe6, 0x84, 0xd8, 0xdd, 0x77, 0x00, 0x9a, 0x86, 0x22, 0xd1, 0x7e, - 0x15, 0xad, 0x0e, 0x61, 0xfe, 0x0f, 0x14, 0xdc, 0x69, 0xed, 0xf4, 0x4c, 0x45, 0x53, 0x8d, 0xfc, - 0x2f, 0x32, 0xa4, 0x59, 0x9e, 0x6e, 0x1a, 0x0a, 0x6d, 0x1b, 0x37, 0x52, 0x4f, 0x13, 0x4d, 0x43, - 0x39, 0x48, 0x13, 0xfe, 0x37, 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x83, 0x96, 0x22, 0xe6, 0xd6, - 0x35, 0x00, 0x00, + 0xaa, 0x56, 0x51, 0xa0, 0x40, 0x7b, 0xec, 0x1f, 0xd0, 0xf6, 0x54, 0x20, 0xbd, 0xb5, 0x0d, 0x72, + 0x2a, 0x7a, 0x2c, 0xd0, 0x43, 0x0f, 0x3d, 0x14, 0xbd, 0xb5, 0xe8, 0x25, 0xd7, 0x22, 0x68, 0x81, + 0xa0, 0xc7, 0xa2, 0x40, 0x8b, 0x9d, 0x99, 0x5d, 0xee, 0x2e, 0x77, 0x97, 0xa4, 0x25, 0x23, 0x87, + 0x9e, 0xc8, 0x7d, 0xf3, 0xe6, 0xcd, 0x9b, 0x99, 0xf7, 0xde, 0xbc, 0xf7, 0x99, 0x81, 0x3b, 0x6d, + 0xc5, 0x7c, 0xd6, 0x3f, 0x28, 0x34, 0xb5, 0xee, 0xad, 0xa6, 0xa6, 0x9a, 0xb2, 0xa2, 0x62, 0xfd, + 0xa6, 0x61, 0x6a, 0xba, 0xdc, 0xc6, 0x37, 0x15, 0xd5, 0xc4, 0xfa, 0xa1, 0xdc, 0xc4, 0xb7, 0x8c, + 0x1e, 0x6e, 0xde, 0x6a, 0x1a, 0x4a, 0xa1, 0xa7, 0x6b, 0xa6, 0x86, 0xd2, 0xd6, 0xdf, 0xa3, 0xd7, + 0xf9, 0xb5, 0xb6, 0xa6, 0xb5, 0x3b, 0xf8, 0x16, 0xa1, 0x1e, 0xf4, 0x0f, 0x6f, 0xb5, 0xb0, 0xd1, + 0xd4, 0x95, 0x9e, 0xa9, 0xe9, 0x94, 0x93, 0xbf, 0xe8, 0xe7, 0x30, 0x95, 0x2e, 0x36, 0x4c, 0xb9, + 0xdb, 0x63, 0x0c, 0x17, 0xfc, 0x0c, 0xdf, 0xd1, 0xe5, 0x5e, 0x0f, 0xeb, 0x06, 0x6d, 0x17, 0x96, + 0x60, 0x61, 0x0b, 0x9b, 0xbb, 0x9d, 0x7e, 0x5b, 0x51, 0x2b, 0xea, 0xa1, 0x26, 0xe2, 0x4f, 0xfa, + 0xd8, 0x30, 0x85, 0xbf, 0x70, 0xb0, 0xe8, 0x6b, 0x30, 0x7a, 0x9a, 0x6a, 0x60, 0x84, 0x20, 0xa9, + 0xca, 0x5d, 0x9c, 0xe7, 0xd6, 0xb8, 0xf5, 0x69, 0x91, 0xfc, 0x47, 0x57, 0x60, 0xee, 0x08, 0xab, + 0x2d, 0x4d, 0x97, 0x8e, 0xb0, 0x6e, 0x28, 0x9a, 0x9a, 0x8f, 0x93, 0xd6, 0x59, 0x4a, 0xdd, 0xa7, + 0x44, 0xb4, 0x05, 0x99, 0xae, 0xac, 0x2a, 0x87, 0xd8, 0x30, 0xf3, 0x89, 0xb5, 0xc4, 0x7a, 0xf6, + 0xf6, 0x6b, 0x05, 0x3a, 0xd5, 0x42, 0xe0, 0x58, 0x85, 0x47, 0x8c, 0xbb, 0xac, 0x9a, 0xfa, 0xb1, + 0xe8, 0x74, 0xe6, 0xef, 0xc1, 0xac, 0xa7, 0x09, 0xe5, 0x20, 0xf1, 0x31, 0x3e, 0x66, 0x3a, 0x59, + 0x7f, 0xd1, 0x02, 0xa4, 0x8e, 0xe4, 0x4e, 0x1f, 0x33, 0x4d, 0xe8, 0xc7, 0xdd, 0xf8, 0xff, 0x73, + 0xc2, 0x05, 0x58, 0x71, 0x46, 0x2b, 0xc9, 0x3d, 0xf9, 0x40, 0xe9, 0x28, 0xa6, 0x82, 0x0d, 0x7b, + 0xea, 0x1f, 0xc2, 0x6a, 0x48, 0x3b, 0x5b, 0x81, 0xfb, 0x30, 0xd3, 0x74, 0xd1, 0xf3, 0x1c, 0x99, + 0x4a, 0xde, 0x9e, 0x8a, 0xaf, 0xe7, 0xb1, 0xe8, 0xe1, 0x16, 0xfe, 0x98, 0x80, 0x9c, 0x9f, 0x05, + 0xdd, 0x87, 0x29, 0x03, 0xeb, 0x47, 0x4a, 0x93, 0xae, 0x6b, 0xf6, 0xf6, 0x5a, 0x98, 0xb4, 0x42, + 0x9d, 0xf2, 0x6d, 0xc7, 0x44, 0xbb, 0x0b, 0xda, 0x83, 0xdc, 0x91, 0xd6, 0xe9, 0x77, 0xb1, 0x84, + 0x9f, 0xf7, 0x64, 0xd5, 0xd9, 0x80, 0xec, 0xed, 0xf5, 0x50, 0x31, 0xfb, 0xa4, 0x43, 0xd9, 0xe6, + 0xdf, 0x8e, 0x89, 0x67, 0x8e, 0xbc, 0x24, 0xfe, 0xc7, 0x1c, 0x4c, 0xb1, 0xd1, 0xd0, 0xdb, 0x90, + 0x34, 0x8f, 0x7b, 0x54, 0xbb, 0xb9, 0xdb, 0x57, 0x46, 0x69, 0x57, 0x68, 0x1c, 0xf7, 0xb0, 0x48, + 0xba, 0x08, 0xef, 0x43, 0xd2, 0xfa, 0x42, 0x59, 0x98, 0xda, 0xab, 0x3d, 0xac, 0xed, 0x3c, 0xae, + 0xe5, 0x62, 0x68, 0x09, 0x50, 0x69, 0xa7, 0xd6, 0x10, 0x77, 0xaa, 0xd5, 0xb2, 0x28, 0xd5, 0xcb, + 0xe2, 0x7e, 0xa5, 0x54, 0xce, 0x71, 0xe8, 0x15, 0x58, 0xdb, 0xdf, 0xa9, 0xee, 0x3d, 0x2a, 0x4b, + 0xc5, 0x52, 0xa9, 0x5c, 0xaf, 0x57, 0x36, 0x2a, 0xd5, 0x4a, 0xe3, 0x89, 0x54, 0xda, 0xa9, 0xd5, + 0x1b, 0x62, 0xb1, 0x52, 0x6b, 0xd4, 0x73, 0x71, 0xfe, 0x07, 0x1c, 0x9c, 0xf1, 0x4d, 0x00, 0x15, + 0x3d, 0x1a, 0xde, 0x1c, 0x77, 0xe2, 0x6e, 0x4d, 0x6f, 0x04, 0x69, 0x0a, 0x90, 0xde, 0xa9, 0x55, + 0x2b, 0x35, 0x4b, 0xbb, 0x2c, 0x4c, 0xed, 0x3c, 0x78, 0x40, 0x3e, 0xe2, 0x1b, 0x69, 0x3a, 0xa0, + 0x30, 0x07, 0x33, 0xbb, 0xba, 0x76, 0x80, 0x6d, 0xfb, 0x29, 0xc2, 0x2c, 0xfb, 0x66, 0xf6, 0xf2, + 0x7f, 0x90, 0xd2, 0xb1, 0xdc, 0x3a, 0x66, 0x5b, 0xcb, 0x17, 0xa8, 0x4f, 0x16, 0x6c, 0x9f, 0x2c, + 0x6c, 0x68, 0x5a, 0x67, 0xdf, 0xb2, 0x4f, 0x91, 0x32, 0x0a, 0x5f, 0x25, 0x61, 0xbe, 0xa4, 0x63, + 0xd9, 0xc4, 0x54, 0x5b, 0x26, 0x3a, 0xd0, 0xf7, 0xee, 0xc3, 0x9c, 0x65, 0x5f, 0x4d, 0xc5, 0x3c, + 0x96, 0x74, 0x59, 0x6d, 0x63, 0xb6, 0xf5, 0x8b, 0xf6, 0x0a, 0x94, 0x58, 0xab, 0x68, 0x35, 0x8a, + 0xb3, 0x4d, 0xf7, 0x27, 0xaa, 0xc0, 0x3c, 0x33, 0x1d, 0x8f, 0x49, 0x27, 0xbc, 0x26, 0x4d, 0xb5, + 0x70, 0x99, 0x34, 0x3a, 0xf2, 0x52, 0x14, 0x6c, 0xa0, 0x87, 0x00, 0x3d, 0x59, 0x97, 0xbb, 0xd8, + 0xc4, 0xba, 0x91, 0x4f, 0x7a, 0xfd, 0x3b, 0x60, 0x36, 0x85, 0x5d, 0x87, 0x9b, 0xfa, 0xb7, 0xab, + 0x3b, 0xda, 0xb2, 0x1c, 0xa2, 0xa9, 0x63, 0xd3, 0xc8, 0xa7, 0x88, 0xa4, 0xf5, 0x28, 0x49, 0x75, + 0xca, 0x4a, 0xc4, 0x6c, 0x24, 0x7e, 0xb2, 0xc1, 0x89, 0x76, 0x6f, 0xb4, 0x03, 0x8b, 0xf6, 0x04, + 0x35, 0xd5, 0xc4, 0xaa, 0x29, 0x19, 0x5a, 0x5f, 0x6f, 0xe2, 0x7c, 0x9a, 0xac, 0xd2, 0xb2, 0x6f, + 0x8a, 0x94, 0xa7, 0x4e, 0x58, 0x44, 0xb6, 0x34, 0x1e, 0x22, 0x7a, 0x0a, 0xbc, 0xdc, 0x6c, 0x62, + 0xc3, 0x50, 0xe8, 0x5a, 0x48, 0x3a, 0xfe, 0xa4, 0xaf, 0xe8, 0xb8, 0x8b, 0x55, 0xd3, 0xc8, 0x4f, + 0x79, 0xa5, 0x36, 0xb4, 0x9e, 0xd6, 0xd1, 0xda, 0xc7, 0xe2, 0x80, 0x47, 0x3c, 0xef, 0xe9, 0xee, + 0x6a, 0x31, 0xf8, 0x77, 0xe0, 0x8c, 0x6f, 0x51, 0x26, 0x89, 0x6c, 0xfc, 0x5d, 0x98, 0x71, 0xaf, + 0xc4, 0x44, 0x51, 0xf1, 0x47, 0x71, 0x98, 0x0f, 0x58, 0x03, 0xb4, 0x0d, 0x19, 0x43, 0x95, 0x7b, + 0xc6, 0x33, 0xcd, 0x64, 0xf6, 0x7b, 0x3d, 0x62, 0xc9, 0x0a, 0x75, 0xc6, 0x4b, 0x3f, 0xb7, 0x63, + 0xa2, 0xd3, 0x1b, 0x6d, 0x40, 0x9a, 0xae, 0xa7, 0x3f, 0x36, 0x05, 0xc9, 0xa1, 0x34, 0x47, 0x0a, + 0xeb, 0xc9, 0xbf, 0x0e, 0x73, 0xde, 0x11, 0xd0, 0x45, 0xc8, 0xda, 0x23, 0x48, 0x4a, 0x8b, 0xcd, + 0x15, 0x6c, 0x52, 0xa5, 0xc5, 0xbf, 0x06, 0x33, 0x6e, 0x61, 0x68, 0x19, 0xa6, 0x99, 0x41, 0x38, + 0xec, 0x19, 0x4a, 0xa8, 0xb4, 0x1c, 0x9f, 0xfe, 0x06, 0x2c, 0x78, 0xed, 0x8c, 0xb9, 0xf2, 0x55, + 0x67, 0x0e, 0x74, 0x2d, 0xe6, 0xbc, 0x73, 0xb0, 0xf5, 0x14, 0x7e, 0x91, 0x84, 0x9c, 0xdf, 0x69, + 0xd0, 0x7d, 0x48, 0x1d, 0x74, 0xb4, 0xe6, 0xc7, 0xac, 0xef, 0x2b, 0x61, 0xde, 0x55, 0xd8, 0xb0, + 0xb8, 0x28, 0x75, 0x3b, 0x26, 0xd2, 0x4e, 0x56, 0xef, 0xae, 0xd6, 0x57, 0x4d, 0xb6, 0x7a, 0xe1, + 0xbd, 0x1f, 0x59, 0x5c, 0x83, 0xde, 0xa4, 0x13, 0xda, 0x84, 0x2c, 0x35, 0x3b, 0xa9, 0xab, 0xb5, + 0x70, 0x3e, 0x41, 0x64, 0x5c, 0x0e, 0x95, 0x51, 0x24, 0xbc, 0x8f, 0xb4, 0x16, 0x16, 0x41, 0x76, + 0xfe, 0xf3, 0xb3, 0x90, 0x75, 0xe9, 0xc6, 0x6f, 0x41, 0xd6, 0x35, 0x18, 0x3a, 0x07, 0x53, 0x87, + 0x86, 0xe4, 0x04, 0xe1, 0x69, 0x31, 0x7d, 0x68, 0x90, 0x78, 0x7a, 0x11, 0xb2, 0x44, 0x0b, 0xe9, + 0xb0, 0x23, 0xb7, 0x8d, 0x7c, 0x7c, 0x2d, 0x61, 0xed, 0x11, 0x21, 0x3d, 0xb0, 0x28, 0xfc, 0xdf, + 0x39, 0x80, 0xc1, 0x90, 0xe8, 0x3e, 0x24, 0x89, 0x96, 0x34, 0x94, 0xaf, 0x8f, 0xa1, 0x65, 0x81, + 0xa8, 0x4a, 0x7a, 0x09, 0x3f, 0xe3, 0x20, 0x49, 0xc4, 0xf8, 0x0f, 0x9c, 0x7a, 0xa5, 0xb6, 0x55, + 0x2d, 0x4b, 0xb5, 0x9d, 0xcd, 0xb2, 0xf4, 0x58, 0xac, 0x34, 0xca, 0x62, 0x8e, 0x43, 0xcb, 0x70, + 0xce, 0x4d, 0x17, 0xcb, 0xc5, 0xcd, 0xb2, 0x28, 0xed, 0xd4, 0xaa, 0x4f, 0x72, 0x71, 0xc4, 0xc3, + 0xd2, 0xa3, 0xbd, 0x6a, 0xa3, 0x32, 0xdc, 0x96, 0x40, 0x2b, 0x90, 0x77, 0xb5, 0x31, 0x19, 0x4c, + 0x6c, 0xd2, 0x12, 0xeb, 0x6a, 0xa5, 0x7f, 0x59, 0x63, 0x6a, 0x63, 0xd6, 0xd9, 0x0c, 0x62, 0x6c, + 0x8f, 0x61, 0xd6, 0x13, 0xa3, 0xad, 0x74, 0x8a, 0x05, 0x95, 0x96, 0x74, 0x70, 0x6c, 0x92, 0x14, + 0x83, 0x5b, 0x4f, 0x88, 0xb3, 0x36, 0x75, 0xc3, 0x22, 0x5a, 0xcb, 0xda, 0x51, 0xba, 0x8a, 0xc9, + 0x78, 0xe2, 0x84, 0x07, 0x08, 0x89, 0x30, 0x08, 0x5f, 0xc4, 0x21, 0xcd, 0xf6, 0xe6, 0x8a, 0xeb, + 0x94, 0xf0, 0x88, 0xb4, 0xa9, 0x54, 0xa4, 0xc7, 0x39, 0xe2, 0x5e, 0xe7, 0x40, 0xdb, 0x30, 0xe7, + 0x0e, 0xa5, 0xcf, 0xed, 0x24, 0xee, 0x92, 0x77, 0x83, 0xdc, 0xfe, 0xfc, 0x9c, 0xa5, 0x6e, 0xb3, + 0x47, 0x6e, 0x1a, 0xda, 0x80, 0x39, 0x5f, 0x34, 0x4e, 0x8e, 0x8e, 0xc6, 0xb3, 0x4d, 0x4f, 0x60, + 0x2a, 0xc2, 0xbc, 0x1d, 0x48, 0x3b, 0x58, 0x32, 0x59, 0xa0, 0x65, 0xa7, 0x45, 0x6e, 0x28, 0x00, + 0xa3, 0x01, 0xb3, 0x4d, 0xe3, 0xdf, 0x05, 0x34, 0xac, 0xeb, 0x44, 0x51, 0xb3, 0x0f, 0xf3, 0x01, + 0x21, 0x1e, 0x15, 0x60, 0x9a, 0x6c, 0x95, 0xa1, 0x98, 0x98, 0xa5, 0x87, 0xc3, 0x1a, 0x0d, 0x58, + 0x2c, 0xfe, 0x9e, 0x8e, 0x0f, 0xb1, 0xae, 0xe3, 0x16, 0x71, 0x8f, 0x40, 0x7e, 0x87, 0x45, 0xf8, + 0x21, 0x07, 0x19, 0x9b, 0x8e, 0xee, 0x42, 0xc6, 0xc0, 0x6d, 0x7a, 0xfc, 0xd0, 0xb1, 0x2e, 0xf8, + 0xfb, 0x16, 0xea, 0x8c, 0x81, 0x25, 0xd2, 0x36, 0xbf, 0x95, 0x48, 0x7b, 0x9a, 0x26, 0x9a, 0xfc, + 0x6f, 0x38, 0x98, 0xdf, 0xc4, 0x1d, 0xec, 0xcf, 0x52, 0xa2, 0x22, 0xac, 0xfb, 0x60, 0x8f, 0x7b, + 0x0f, 0xf6, 0x00, 0x51, 0x11, 0x07, 0xfb, 0x89, 0x0e, 0xbb, 0x25, 0x58, 0xf0, 0x8e, 0x46, 0xc3, + 0xbb, 0xf0, 0x8f, 0x04, 0x5c, 0xb0, 0x6c, 0x41, 0xd7, 0x3a, 0x1d, 0xac, 0xef, 0xf6, 0x0f, 0x3a, + 0x8a, 0xf1, 0x6c, 0x82, 0xc9, 0x9d, 0x83, 0x29, 0x55, 0x6b, 0xb9, 0x9c, 0x27, 0x6d, 0x7d, 0x56, + 0x5a, 0xa8, 0x0c, 0x67, 0xfd, 0x69, 0xd6, 0x31, 0x0b, 0xc2, 0xe1, 0x49, 0x56, 0xee, 0xc8, 0x7f, + 0x82, 0xf0, 0x90, 0xb1, 0x12, 0x44, 0x4d, 0xed, 0x1c, 0x13, 0x8f, 0xc9, 0x88, 0xce, 0x37, 0x12, + 0xfd, 0x19, 0xd3, 0x1b, 0x4e, 0xc6, 0x14, 0x39, 0xa3, 0xa8, 0xe4, 0xe9, 0xa3, 0x21, 0x8f, 0x4f, + 0x13, 0xd1, 0x6f, 0x8f, 0x29, 0x7a, 0x64, 0x24, 0x38, 0xc9, 0x2e, 0x9e, 0x82, 0xfb, 0xfe, 0x81, + 0x83, 0x8b, 0xa1, 0x53, 0x60, 0x47, 0x7e, 0x0b, 0xce, 0xf4, 0x68, 0x83, 0xb3, 0x08, 0xd4, 0xcb, + 0xee, 0x8d, 0x5c, 0x04, 0x56, 0xc5, 0x32, 0xaa, 0x67, 0x19, 0xe6, 0x7a, 0x1e, 0x22, 0x5f, 0x84, + 0xf9, 0x00, 0xb6, 0x89, 0x26, 0xf3, 0x25, 0x07, 0x6b, 0x03, 0x55, 0xf6, 0xd4, 0xde, 0xe9, 0x99, + 0x6f, 0x63, 0x60, 0x5b, 0x34, 0xe4, 0xdf, 0x19, 0x9e, 0x7b, 0xf0, 0x80, 0x2f, 0xcb, 0x83, 0x2f, + 0xc3, 0xa5, 0x88, 0xa1, 0x99, 0x3b, 0x7f, 0x91, 0x84, 0x4b, 0xfb, 0x72, 0x47, 0x69, 0x39, 0x89, + 0x5c, 0x40, 0xbd, 0x1f, 0xbd, 0x24, 0xcd, 0x21, 0x0f, 0xa0, 0x51, 0xeb, 0xbe, 0xe3, 0xb5, 0xa3, + 0xe4, 0x8f, 0x71, 0x1c, 0x9e, 0x62, 0x11, 0xf6, 0x24, 0xa0, 0x08, 0x7b, 0x7b, 0x7c, 0x5d, 0xa3, + 0x4a, 0xb2, 0x3d, 0x7f, 0x80, 0x79, 0x6b, 0x7c, 0xb9, 0x11, 0x56, 0x70, 0x62, 0x2f, 0xfe, 0x3a, + 0xab, 0xa6, 0xdf, 0x25, 0x41, 0x88, 0x9a, 0x3d, 0x8b, 0x21, 0x22, 0x4c, 0x37, 0x35, 0xf5, 0x50, + 0xd1, 0xbb, 0xb8, 0xc5, 0xb2, 0xff, 0x37, 0xc7, 0x59, 0x3c, 0x16, 0x40, 0x4a, 0x76, 0x5f, 0x71, + 0x20, 0x06, 0xe5, 0x61, 0xaa, 0x8b, 0x0d, 0x43, 0x6e, 0xdb, 0x6a, 0xd9, 0x9f, 0xfc, 0x67, 0x09, + 0x98, 0x76, 0xba, 0x20, 0x75, 0xc8, 0x82, 0x69, 0xf8, 0xda, 0x7a, 0x11, 0x05, 0x5e, 0xdc, 0x98, + 0xe3, 0x2f, 0x60, 0xcc, 0x2d, 0x8f, 0x31, 0x53, 0x77, 0xd8, 0x7c, 0x21, 0xb5, 0x23, 0xec, 0xfa, + 0x6b, 0x37, 0x40, 0xe1, 0xdb, 0x80, 0xaa, 0x8a, 0xc1, 0xaa, 0x28, 0x27, 0x2c, 0x59, 0x45, 0x93, + 0xfc, 0x5c, 0xc2, 0xaa, 0xa9, 0x2b, 0x2c, 0x5d, 0x4f, 0x89, 0xd0, 0x95, 0x9f, 0x97, 0x29, 0xc5, + 0x4a, 0xe9, 0x0d, 0x53, 0xd6, 0x4d, 0x45, 0x6d, 0x4b, 0xa6, 0xf6, 0x31, 0x76, 0x40, 0x57, 0x9b, + 0xda, 0xb0, 0x88, 0xc2, 0xa7, 0x71, 0x98, 0xf7, 0x88, 0x67, 0x36, 0x79, 0x0f, 0xa6, 0x06, 0xb2, + 0x3d, 0x69, 0x7c, 0x00, 0x77, 0x81, 0x2e, 0x9b, 0xdd, 0x03, 0xad, 0x02, 0xa8, 0xf8, 0xb9, 0xe9, + 0x19, 0x77, 0xda, 0xa2, 0x90, 0x31, 0xf9, 0xfb, 0x4e, 0xcd, 0x6d, 0xca, 0x66, 0xdf, 0x40, 0x37, + 0x00, 0xb1, 0x08, 0x8d, 0x5b, 0x12, 0x3b, 0x62, 0xe8, 0xb0, 0xd3, 0x62, 0xce, 0x69, 0xa9, 0x91, + 0xc3, 0xc6, 0xe0, 0x3f, 0x81, 0x14, 0x5d, 0xc4, 0x31, 0xab, 0x6d, 0xf4, 0x2e, 0xa4, 0x0d, 0x32, + 0x90, 0x1f, 0x59, 0x08, 0x9a, 0x89, 0x5b, 0x31, 0x91, 0xf5, 0x13, 0x3e, 0x8b, 0x03, 0xda, 0xc2, + 0xa6, 0x53, 0x86, 0xb1, 0x3d, 0x08, 0xb1, 0x65, 0xee, 0x05, 0x6c, 0xf9, 0x3d, 0x8f, 0x2d, 0x53, + 0x6f, 0xb8, 0xee, 0x42, 0xbf, 0x7d, 0x43, 0x47, 0x46, 0xe2, 0x90, 0xd2, 0x87, 0xe6, 0x93, 0xe3, + 0x95, 0x3e, 0x27, 0x34, 0xd9, 0x4d, 0x98, 0xf7, 0xe8, 0xcc, 0x6c, 0xea, 0x26, 0x20, 0xf9, 0x48, + 0x56, 0x3a, 0xb2, 0xa5, 0x97, 0x5d, 0x59, 0xb2, 0x4a, 0xf3, 0xac, 0xd3, 0x62, 0x77, 0x13, 0x04, + 0x77, 0xc2, 0xc2, 0xe4, 0xf9, 0xd1, 0xf8, 0x8e, 0xfb, 0xa0, 0x1f, 0xe2, 0x61, 0xe3, 0x6e, 0x05, + 0x22, 0xf2, 0x97, 0x87, 0x93, 0x14, 0x06, 0x4f, 0x87, 0x82, 0xf3, 0xbf, 0x4c, 0xc0, 0x72, 0x04, + 0x37, 0xba, 0x07, 0x09, 0xbd, 0xd7, 0x64, 0xe6, 0xf8, 0xea, 0x18, 0xf2, 0x0b, 0xe2, 0x6e, 0x69, + 0x3b, 0x26, 0x5a, 0xbd, 0xf8, 0xdf, 0xc7, 0x21, 0x21, 0xee, 0x96, 0xd0, 0xbb, 0x1e, 0xa4, 0xfa, + 0xc6, 0x98, 0x52, 0xdc, 0x40, 0xf5, 0xbf, 0xb9, 0x20, 0xa4, 0x3a, 0x0f, 0x0b, 0x25, 0xb1, 0x5c, + 0x6c, 0x94, 0xa5, 0xcd, 0x72, 0xb5, 0xdc, 0x28, 0x4b, 0x14, 0x49, 0xcf, 0x71, 0x68, 0x05, 0xf2, + 0xbb, 0x7b, 0x1b, 0xd5, 0x4a, 0x7d, 0x5b, 0xda, 0xab, 0xd9, 0xff, 0x58, 0x6b, 0x1c, 0xe5, 0x60, + 0xa6, 0x5a, 0xa9, 0x37, 0x18, 0xa1, 0x9e, 0x4b, 0x58, 0x94, 0xad, 0x72, 0x43, 0x2a, 0x15, 0x77, + 0x8b, 0xa5, 0x4a, 0xe3, 0x49, 0x2e, 0x89, 0x78, 0x58, 0xf2, 0xca, 0xae, 0xd7, 0x8a, 0xbb, 0xf5, + 0xed, 0x9d, 0x46, 0x2e, 0x85, 0x10, 0xcc, 0x91, 0xfe, 0x36, 0xa9, 0x9e, 0x4b, 0x5b, 0x12, 0x4a, + 0xd5, 0x9d, 0x9a, 0xa3, 0xc3, 0x14, 0x5a, 0x80, 0x9c, 0x3d, 0xb2, 0x58, 0x2e, 0x6e, 0x12, 0x14, + 0x25, 0x83, 0xce, 0xc2, 0x6c, 0xf9, 0x83, 0xdd, 0x62, 0x6d, 0xd3, 0x66, 0x9c, 0x46, 0x6b, 0xb0, + 0xe2, 0x56, 0x47, 0x62, 0xbd, 0xca, 0x9b, 0x04, 0x4b, 0xa9, 0xe7, 0xc0, 0x41, 0xe9, 0xbe, 0x8c, + 0xc3, 0x22, 0x85, 0xe9, 0x6c, 0x50, 0xd0, 0x76, 0xdc, 0x75, 0xc8, 0x51, 0x60, 0x41, 0xf2, 0xa7, + 0x76, 0x73, 0x94, 0xbe, 0x6f, 0x27, 0x78, 0x36, 0xa4, 0x1e, 0x77, 0x41, 0xea, 0x15, 0x7f, 0xba, + 0x7b, 0xdd, 0x0b, 0x3e, 0xfb, 0x46, 0x8b, 0xaa, 0xa0, 0x1e, 0x05, 0xe4, 0x63, 0x37, 0xa3, 0xa5, + 0x45, 0x9d, 0x55, 0x27, 0x29, 0x97, 0x4e, 0xe8, 0xf2, 0x0f, 0x60, 0xc9, 0xaf, 0x2f, 0xf3, 0xbe, + 0x1b, 0x43, 0x10, 0xb1, 0x13, 0x83, 0x1c, 0x5e, 0x87, 0x43, 0xf8, 0x33, 0x07, 0x19, 0x9b, 0x6c, + 0x9d, 0x23, 0x86, 0xf2, 0x5d, 0xec, 0x81, 0xa4, 0xa6, 0x2d, 0x8a, 0x83, 0x70, 0xb9, 0xc1, 0xdd, + 0xb8, 0x1f, 0xdc, 0x0d, 0xdc, 0xe7, 0x44, 0xe0, 0x3e, 0x7f, 0x13, 0x66, 0x9b, 0x96, 0xfa, 0x8a, + 0xa6, 0x4a, 0xa6, 0xd2, 0xb5, 0x11, 0xa7, 0xe1, 0xcb, 0x98, 0x86, 0x7d, 0x83, 0x2a, 0xce, 0xd8, + 0x1d, 0x2c, 0x12, 0x5a, 0x83, 0x19, 0x72, 0x39, 0x23, 0x99, 0x9a, 0xd4, 0x37, 0x70, 0x3e, 0x45, + 0xea, 0x6f, 0x20, 0xb4, 0x86, 0xb6, 0x67, 0x60, 0xe1, 0xb7, 0x1c, 0x2c, 0x52, 0x58, 0xc1, 0x6f, + 0x8e, 0xa3, 0x40, 0x6a, 0xb7, 0xc5, 0xf9, 0x8e, 0x86, 0x40, 0x81, 0x2f, 0xab, 0xaa, 0xca, 0xc3, + 0x92, 0x7f, 0x3c, 0x56, 0x4a, 0x7d, 0x1e, 0x87, 0x05, 0xeb, 0x34, 0xb5, 0x1b, 0x4e, 0x3b, 0x4d, + 0x99, 0x60, 0x27, 0x7d, 0x8b, 0x99, 0x1c, 0x5a, 0xcc, 0x6d, 0x7f, 0xa1, 0x72, 0xcd, 0x9d, 0x0f, + 0xf8, 0x67, 0xf0, 0xb2, 0xd6, 0xf2, 0x57, 0x1c, 0x2c, 0xfa, 0xc6, 0x63, 0xfe, 0xf2, 0x8e, 0x3f, + 0xf3, 0xba, 0x1c, 0xa2, 0xdf, 0x0b, 0xe5, 0x5e, 0x77, 0xec, 0xec, 0x69, 0x32, 0xb7, 0xfc, 0x53, + 0x1c, 0x56, 0x07, 0x27, 0x10, 0xb9, 0x1e, 0x6d, 0x4d, 0x00, 0x1d, 0x9c, 0xec, 0x16, 0xf2, 0x7d, + 0x7f, 0xc0, 0xbd, 0x3d, 0x7c, 0x28, 0x06, 0xa8, 0x14, 0x15, 0x78, 0x03, 0x11, 0xb7, 0xe4, 0xa4, + 0x88, 0xdb, 0x89, 0x2c, 0xe0, 0xfb, 0x6e, 0x30, 0xd1, 0xab, 0x3e, 0xb3, 0x84, 0x31, 0x51, 0xf9, + 0xb7, 0xe0, 0x1c, 0x49, 0x9a, 0x9d, 0xdb, 0x7d, 0xfb, 0xce, 0x91, 0x86, 0xc4, 0x8c, 0xb8, 0x68, + 0x35, 0x3b, 0x57, 0xda, 0x0c, 0x89, 0x6e, 0x09, 0x5f, 0x25, 0x61, 0xc9, 0x4a, 0xaa, 0xeb, 0xa6, + 0xdc, 0x9e, 0x04, 0xa3, 0xfd, 0xd6, 0x30, 0xe4, 0x15, 0xf7, 0x6e, 0x4b, 0xb0, 0xd4, 0x71, 0x90, + 0x2e, 0x54, 0x80, 0x79, 0xc3, 0x94, 0xdb, 0x24, 0x1c, 0xc8, 0x7a, 0x1b, 0x9b, 0x52, 0x4f, 0x36, + 0x9f, 0x31, 0x5f, 0x3f, 0xcb, 0x9a, 0x1a, 0xa4, 0x65, 0x57, 0x36, 0x9f, 0x9d, 0xd2, 0x46, 0xa2, + 0xf7, 0xfc, 0x41, 0xe1, 0xb5, 0x11, 0x73, 0x89, 0xb0, 0xad, 0x0f, 0x42, 0x60, 0xd1, 0xd7, 0x47, + 0x88, 0x1c, 0x0d, 0x87, 0x9e, 0x1c, 0x06, 0xfc, 0x9a, 0x11, 0xd5, 0xf3, 0x70, 0x6e, 0x68, 0xf2, + 0xec, 0x08, 0x69, 0x43, 0xde, 0x6a, 0xda, 0x53, 0x8d, 0x09, 0xcd, 0x31, 0xc4, 0x62, 0xe2, 0x21, + 0x16, 0x23, 0x2c, 0xc3, 0xf9, 0x80, 0x81, 0x98, 0x16, 0xbf, 0x4e, 0x51, 0x35, 0x26, 0x07, 0xf7, + 0x3f, 0x0c, 0xf3, 0x8a, 0x37, 0xdd, 0xdb, 0x1e, 0x88, 0x83, 0xbf, 0x0c, 0xbf, 0xb8, 0x08, 0x59, + 0x37, 0x1f, 0x3b, 0x06, 0xcd, 0x11, 0x8e, 0x93, 0x3a, 0xd1, 0x9d, 0x43, 0xda, 0x77, 0xe7, 0x50, + 0x1d, 0x38, 0xd5, 0x94, 0x37, 0xb5, 0x0d, 0x5d, 0x8a, 0x08, 0xb7, 0x7a, 0x3a, 0xe4, 0x56, 0x19, + 0xef, 0x45, 0x46, 0xa8, 0xd0, 0xff, 0x01, 0xc7, 0x62, 0x46, 0x1d, 0x78, 0xc3, 0x20, 0x3c, 0x05, + 0x9e, 0x5a, 0xfc, 0xe4, 0x98, 0xbf, 0xcf, 0x8c, 0xe2, 0x7e, 0x33, 0x12, 0x56, 0x61, 0x39, 0x50, + 0x36, 0x1b, 0xfa, 0x7b, 0x54, 0xaf, 0x2d, 0x6c, 0x0e, 0x80, 0x15, 0x63, 0xdc, 0x91, 0x59, 0xa3, + 0x7b, 0x64, 0x4a, 0x22, 0x06, 0x7c, 0x09, 0x66, 0x6c, 0x8f, 0x70, 0xb9, 0x42, 0x96, 0xd1, 0x88, + 0x72, 0x5b, 0x74, 0xe2, 0xfe, 0xd1, 0xd9, 0xf1, 0x7a, 0x0d, 0x52, 0x7d, 0x02, 0x90, 0xd2, 0x34, + 0x6b, 0xde, 0x6b, 0xf5, 0x7b, 0x56, 0x93, 0x48, 0x39, 0x84, 0xcf, 0x39, 0xc8, 0xba, 0xc8, 0x68, + 0x05, 0xa6, 0x1d, 0xbc, 0xc2, 0xae, 0x4b, 0x1c, 0x82, 0xb5, 0x4d, 0xa6, 0x66, 0xca, 0x1d, 0x76, + 0xe7, 0x4e, 0x3f, 0xac, 0x52, 0xb2, 0x6f, 0x60, 0x9a, 0xb6, 0x26, 0x44, 0xf2, 0x1f, 0xdd, 0x80, + 0x64, 0x5f, 0x55, 0x4c, 0xe2, 0x9e, 0x73, 0x7e, 0xbf, 0x23, 0x43, 0x15, 0xf6, 0x54, 0xc5, 0x14, + 0x09, 0x97, 0x70, 0x1d, 0x92, 0xd6, 0x97, 0xb7, 0xac, 0x9f, 0x86, 0xd4, 0xc6, 0x93, 0x46, 0xb9, + 0x9e, 0xe3, 0x10, 0x40, 0xba, 0x42, 0x8b, 0xe0, 0xb8, 0xb0, 0xe2, 0x4c, 0x3d, 0x08, 0x36, 0xf9, + 0x88, 0xee, 0x5a, 0x18, 0x60, 0x52, 0x0c, 0x04, 0x4c, 0x56, 0x3d, 0xe7, 0xd7, 0x08, 0xa8, 0xe4, + 0x9f, 0x1c, 0x2c, 0x06, 0xf2, 0xa1, 0x3b, 0x6e, 0x90, 0xe4, 0x52, 0xa4, 0x4c, 0x37, 0x3c, 0xf2, + 0x53, 0x8e, 0xc2, 0x23, 0x77, 0x3d, 0xf0, 0xc8, 0xd5, 0x91, 0xfd, 0xdd, 0xc0, 0xc8, 0x7e, 0x08, + 0x2e, 0x52, 0x6f, 0x14, 0xb7, 0xca, 0xd2, 0x5e, 0x8d, 0xfe, 0x3a, 0xb8, 0xc8, 0x02, 0xe4, 0xb6, + 0xca, 0x36, 0xd2, 0x20, 0xd5, 0x1b, 0xc5, 0x46, 0x3d, 0x17, 0x1f, 0xc6, 0x24, 0x12, 0x0e, 0xe2, + 0xb0, 0x00, 0x88, 0x2d, 0xab, 0xfb, 0xb1, 0xec, 0xa7, 0x1c, 0xcc, 0x7b, 0xc8, 0x6c, 0x95, 0x5d, + 0xf7, 0x69, 0x9c, 0xe7, 0x3e, 0xed, 0x16, 0x2c, 0x58, 0x45, 0x13, 0xb5, 0x75, 0x43, 0xea, 0x61, + 0x9d, 0xa0, 0xa2, 0xcc, 0x9c, 0xce, 0x76, 0xe5, 0xe7, 0x0c, 0xb5, 0xdc, 0xc5, 0xba, 0x25, 0xf8, + 0x14, 0x10, 0x3f, 0xe1, 0x3f, 0x1c, 0x3d, 0x9a, 0x27, 0x4e, 0xed, 0x47, 0xfa, 0xe9, 0x70, 0xee, + 0x9f, 0x98, 0x20, 0xf7, 0xf7, 0x7b, 0x79, 0x72, 0xc8, 0xcb, 0x4f, 0xe9, 0x24, 0x13, 0x8a, 0xf4, + 0xe4, 0x3f, 0x41, 0x26, 0x7e, 0xfb, 0x5f, 0x1c, 0x64, 0x2a, 0x2d, 0xac, 0x9a, 0x96, 0x9d, 0xd7, + 0x60, 0xd6, 0xf3, 0x6c, 0x19, 0xad, 0x84, 0xbc, 0x66, 0x26, 0x8b, 0xcc, 0xaf, 0x46, 0xbe, 0x75, + 0x16, 0x62, 0xe8, 0xd0, 0xf5, 0xe4, 0xda, 0x83, 0x1d, 0xbf, 0x32, 0xd4, 0x33, 0xc0, 0xe5, 0xf9, + 0x2b, 0x23, 0xb8, 0x9c, 0x71, 0xde, 0x82, 0x14, 0x79, 0xa0, 0x8a, 0x16, 0x9c, 0x47, 0xb2, 0xae, + 0xf7, 0xab, 0xfc, 0xa2, 0x8f, 0x6a, 0xf7, 0xbb, 0xfd, 0xb7, 0x0c, 0xc0, 0xa0, 0xa0, 0x41, 0x0f, + 0x61, 0xc6, 0xfd, 0x46, 0x0e, 0x2d, 0x47, 0xbc, 0xd0, 0xe4, 0x57, 0x82, 0x1b, 0x1d, 0x9d, 0x1e, + 0xc2, 0x8c, 0xfb, 0x45, 0xc6, 0x40, 0x58, 0xc0, 0xab, 0x90, 0x81, 0xb0, 0xc0, 0x47, 0x1c, 0x31, + 0xd4, 0x81, 0x73, 0x21, 0x77, 0xf2, 0xe8, 0xea, 0x78, 0x2f, 0x17, 0xf8, 0x57, 0xc7, 0xbc, 0xdc, + 0x17, 0x62, 0x48, 0x87, 0xf3, 0xa1, 0x57, 0xd1, 0x68, 0x7d, 0xdc, 0x8b, 0x72, 0xfe, 0xda, 0x18, + 0x9c, 0xce, 0x98, 0x7d, 0xe0, 0xc3, 0xef, 0xbf, 0xd0, 0xb5, 0xb1, 0x2f, 0x66, 0xf9, 0xeb, 0xe3, + 0x5f, 0xa7, 0x09, 0x31, 0xb4, 0x0d, 0x59, 0xd7, 0x95, 0x0a, 0xe2, 0x03, 0xef, 0x59, 0xa8, 0xe0, + 0xe5, 0x88, 0x3b, 0x18, 0x2a, 0xc9, 0x75, 0x81, 0x30, 0x90, 0x34, 0x7c, 0x13, 0x32, 0x90, 0x14, + 0x70, 0xe3, 0xe0, 0x5f, 0x7e, 0xdf, 0x79, 0x17, 0xb4, 0xfc, 0xc1, 0x07, 0x66, 0xd0, 0xf2, 0x87, + 0x1c, 0x9e, 0x42, 0x0c, 0xbd, 0x0f, 0x73, 0x5e, 0x2c, 0x14, 0xad, 0x46, 0x62, 0xba, 0xfc, 0x85, + 0xb0, 0x66, 0xb7, 0x48, 0x2f, 0xf4, 0x36, 0x10, 0x19, 0x08, 0x01, 0x0e, 0x44, 0x86, 0x20, 0x76, + 0x31, 0x2b, 0x3e, 0x79, 0x00, 0xa5, 0x41, 0x7c, 0x0a, 0xc2, 0xc1, 0x06, 0xf1, 0x29, 0x10, 0x85, + 0x12, 0x62, 0x48, 0x81, 0xa5, 0x60, 0x3c, 0x03, 0x5d, 0x19, 0x0b, 0xae, 0xe1, 0xaf, 0x8e, 0x62, + 0x73, 0x42, 0xcd, 0x5f, 0x53, 0x90, 0x24, 0x07, 0x5f, 0x03, 0xce, 0xf8, 0xea, 0x49, 0x74, 0x21, + 0xba, 0xca, 0xe6, 0x2f, 0x86, 0xb6, 0x3b, 0x33, 0x79, 0x0a, 0x67, 0x87, 0x2a, 0x44, 0xb4, 0xe6, + 0xee, 0x17, 0x54, 0xa5, 0xf2, 0x97, 0x22, 0x38, 0xfc, 0xb2, 0xbd, 0x61, 0x67, 0x6d, 0x54, 0x09, + 0xe3, 0x95, 0x1d, 0x16, 0x6a, 0x3e, 0xa2, 0x79, 0x86, 0x3f, 0xc8, 0x08, 0x5e, 0xbd, 0x02, 0xc3, + 0xcb, 0xe5, 0x48, 0x1e, 0x67, 0x84, 0x0f, 0x9d, 0x04, 0xc7, 0x95, 0x50, 0x23, 0x8f, 0x72, 0x81, + 0xa9, 0x3e, 0x2f, 0x44, 0xb1, 0x38, 0xe2, 0x1f, 0x43, 0xce, 0x7f, 0x04, 0x23, 0xcf, 0x7e, 0x05, + 0x99, 0xcd, 0x5a, 0x38, 0x83, 0x7f, 0x65, 0xfc, 0xfe, 0xef, 0xd7, 0x2a, 0xc8, 0xf3, 0x2f, 0x47, + 0xf2, 0xb8, 0x23, 0x96, 0x2b, 0xc7, 0x1b, 0x44, 0xac, 0xe1, 0x7c, 0x70, 0x10, 0xb1, 0x02, 0x92, + 0x42, 0x21, 0x76, 0xf7, 0x1d, 0x80, 0xa6, 0xa1, 0x48, 0xb4, 0xec, 0x45, 0xab, 0x43, 0x37, 0x10, + 0x0f, 0x14, 0xdc, 0x69, 0xed, 0xf4, 0x4c, 0x45, 0x53, 0x8d, 0xfc, 0xcf, 0x33, 0xa4, 0xe6, 0x9e, + 0x6e, 0x1a, 0x0a, 0xad, 0x3e, 0x37, 0x52, 0x4f, 0x13, 0x4d, 0x43, 0x39, 0x48, 0x13, 0xfe, 0x37, + 0xfe, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x8f, 0x05, 0xce, 0x64, 0x36, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/spec.md b/spec.md index 30793987..1d1bb47e 100644 --- a/spec.md +++ b/spec.md @@ -1805,6 +1805,8 @@ This RPC allows the CO to expand the size of a volume. This call MAY be made by the CO during any time in the lifecycle of the volume after creation if plugin has `VolumeExpansion.ONLINE` capability. If plugin has `EXPAND_VOLUME` node capability, then `NodeExpandVolume` MUST be called after successful `ControllerExpandVolume` and `node_expansion_required` in `ControllerExpandVolumeResponse` is `true`. +If specified, the `volume_capability` in `ControllerExpandVolumeRequest` should be same as what CO would pass in `ControllerPublishVolumeRequest`. + If the plugin has only `VolumeExpansion.OFFLINE` expansion capability and volume is currently published or available on a node then `ControllerExpandVolume` MUST be called ONLY after either: - The plugin has controller `PUBLISH_UNPUBLISH_VOLUME` capability and `ControllerUnpublishVolume` has been invoked successfully. @@ -1845,6 +1847,15 @@ message ControllerExpandVolumeRequest { // Secrets required by the plugin for expanding the volume. // This field is OPTIONAL. map secrets = 3 [(csi_secret) = true]; + + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is + // being used as a block device - the SP MAY set + // node_expansion_required to false in ControllerExpandVolumeResponse + // to skip invocation of NodeExpandVolume on the node by the CO. + // This is an OPTIONAL field. + VolumeCapability volume_capability = 4; } message ControllerExpandVolumeResponse { @@ -1862,6 +1873,7 @@ message ControllerExpandVolumeResponse { | Condition | gRPC Code | Description | Recovery Behavior | |-----------|-----------|-------------|-------------------| +| Exceeds capabilities | 3 INVALID_ARGUMENT | Indicates that CO has specified capabilities not supported by the volume. | Caller MAY verify volume capabilities by calling ValidateVolumeCapabilities and retry with matching capabilities. | | Volume does not exist | 5 NOT FOUND | Indicates that a volume corresponding to the specified volume_id does not exist. | Caller MUST verify that the volume_id is correct and that the volume is accessible and has not been deleted before retrying with exponential back off. | | Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be expanded because it is currently published on a node but the plugin does not have ONLINE expansion capability. | Caller SHOULD ensure that volume is not published and retry with exponential back off. | | Unsupported `capacity_range` | 11 OUT_OF_RANGE | Indicates that the capacity range is not allowed by the Plugin. More human-readable information MAY be provided in the gRPC `status.message` field. | Caller MUST fix the capacity range before retrying. | @@ -2377,6 +2389,17 @@ message NodeExpandVolumeRequest { // filesystem of the process serving this request. // This field is OPTIONAL. string staging_path = 4; + + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is being + // used as a block device the SP MAY choose to skip expanding the + // filesystem in NodeExpandVolume implementation but still perform + // rest of the housekeeping needed for expanding the volume. If + // volume_capability is omitted the SP MAY determine + // access_type from given volume_path for the volume and perform + // node expansion. This is an OPTIONAL field. + VolumeCapability volume_capability = 5; } message NodeExpandVolumeResponse { @@ -2389,6 +2412,7 @@ message NodeExpandVolumeResponse { | Condition | gRPC code | Description | Recovery Behavior | |-----------------------|-----------|-----------------------|-----------------------------------| +| Exceeds capabilities | 3 INVALID_ARGUMENT | Indicates that CO has specified capabilities not supported by the volume. | Caller MAY verify volume capabilities by calling ValidateVolumeCapabilities and retry with matching capabilities. | | Volume does not exist | 5 NOT FOUND | Indicates that a volume corresponding to the specified volume_id does not exist. | Caller MUST verify that the volume_id is correct and that the volume is accessible and has not been deleted before retrying with exponential back off. | | Volume in use | 9 FAILED_PRECONDITION | Indicates that the volume corresponding to the specified `volume_id` could not be expanded because it is node-published or node-staged and the underlying filesystem does not support expansion of published or staged volumes. | Caller MUST NOT retry. | | Unsupported capacity_range | 11 OUT_OF_RANGE | Indicates that the capacity range is not allowed by the Plugin. More human-readable information MAY be provided in the gRPC `status.message` field. | Caller MUST fix the capacity range before retrying. |