// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

package armredisenterprise

const (
	moduleName    = "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/redisenterprise/armredisenterprise"
	moduleVersion = "v2.1.0-beta.3"
)

// AccessKeyType - Which access key to regenerate.
type AccessKeyType string

const (
	AccessKeyTypePrimary   AccessKeyType = "Primary"
	AccessKeyTypeSecondary AccessKeyType = "Secondary"
)

// PossibleAccessKeyTypeValues returns the possible values for the AccessKeyType const type.
func PossibleAccessKeyTypeValues() []AccessKeyType {
	return []AccessKeyType{
		AccessKeyTypePrimary,
		AccessKeyTypeSecondary,
	}
}

// AccessKeysAuthentication - This property can be Enabled/Disabled to allow or deny access with the current access keys.
// Can be updated even after database is created.
type AccessKeysAuthentication string

const (
	AccessKeysAuthenticationDisabled AccessKeysAuthentication = "Disabled"
	AccessKeysAuthenticationEnabled  AccessKeysAuthentication = "Enabled"
)

// PossibleAccessKeysAuthenticationValues returns the possible values for the AccessKeysAuthentication const type.
func PossibleAccessKeysAuthenticationValues() []AccessKeysAuthentication {
	return []AccessKeysAuthentication{
		AccessKeysAuthenticationDisabled,
		AccessKeysAuthenticationEnabled,
	}
}

// ActionType - Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs.
type ActionType string

const (
	ActionTypeInternal ActionType = "Internal"
)

// PossibleActionTypeValues returns the possible values for the ActionType const type.
func PossibleActionTypeValues() []ActionType {
	return []ActionType{
		ActionTypeInternal,
	}
}

// AofFrequency - Sets the frequency at which data is written to disk. Defaults to '1s', meaning 'every second'. Note that
// the 'always' setting is deprecated, because of its performance impact.
type AofFrequency string

const (
	AofFrequencyAlways AofFrequency = "always"
	AofFrequencyOneS   AofFrequency = "1s"
)

// PossibleAofFrequencyValues returns the possible values for the AofFrequency const type.
func PossibleAofFrequencyValues() []AofFrequency {
	return []AofFrequency{
		AofFrequencyAlways,
		AofFrequencyOneS,
	}
}

// ClusteringPolicy - Clustering policy - default is OSSCluster. This property can be updated only if the current value is
// NoCluster. If the value is OSSCluster or EnterpriseCluster, it cannot be updated without deleting
// the database.
type ClusteringPolicy string

const (
	// ClusteringPolicyEnterpriseCluster - Enterprise clustering policy uses only the classic redis protocol, which does not support
	// redis cluster commands.
	ClusteringPolicyEnterpriseCluster ClusteringPolicy = "EnterpriseCluster"
	// ClusteringPolicyNoCluster - The NoCluster policy is used for non-clustered Redis instances that do not require clustering
	// features.
	ClusteringPolicyNoCluster ClusteringPolicy = "NoCluster"
	// ClusteringPolicyOSSCluster - OSS clustering policy follows the redis cluster specification, and requires all clients to
	// support redis clustering.
	ClusteringPolicyOSSCluster ClusteringPolicy = "OSSCluster"
)

// PossibleClusteringPolicyValues returns the possible values for the ClusteringPolicy const type.
func PossibleClusteringPolicyValues() []ClusteringPolicy {
	return []ClusteringPolicy{
		ClusteringPolicyEnterpriseCluster,
		ClusteringPolicyNoCluster,
		ClusteringPolicyOSSCluster,
	}
}

// CmkIdentityType - Only userAssignedIdentity is supported in this API version; other types may be supported in the future
type CmkIdentityType string

const (
	CmkIdentityTypeSystemAssignedIdentity CmkIdentityType = "systemAssignedIdentity"
	CmkIdentityTypeUserAssignedIdentity   CmkIdentityType = "userAssignedIdentity"
)

// PossibleCmkIdentityTypeValues returns the possible values for the CmkIdentityType const type.
func PossibleCmkIdentityTypeValues() []CmkIdentityType {
	return []CmkIdentityType{
		CmkIdentityTypeSystemAssignedIdentity,
		CmkIdentityTypeUserAssignedIdentity,
	}
}

// CreatedByType - The type of identity that created the resource.
type CreatedByType string

const (
	CreatedByTypeApplication     CreatedByType = "Application"
	CreatedByTypeKey             CreatedByType = "Key"
	CreatedByTypeManagedIdentity CreatedByType = "ManagedIdentity"
	CreatedByTypeUser            CreatedByType = "User"
)

// PossibleCreatedByTypeValues returns the possible values for the CreatedByType const type.
func PossibleCreatedByTypeValues() []CreatedByType {
	return []CreatedByType{
		CreatedByTypeApplication,
		CreatedByTypeKey,
		CreatedByTypeManagedIdentity,
		CreatedByTypeUser,
	}
}

// DeferUpgradeSetting - Option to defer upgrade when newest version is released - default is NotDeferred. Learn more: https://aka.ms/redisversionupgrade
type DeferUpgradeSetting string

const (
	DeferUpgradeSettingDeferred    DeferUpgradeSetting = "Deferred"
	DeferUpgradeSettingNotDeferred DeferUpgradeSetting = "NotDeferred"
)

// PossibleDeferUpgradeSettingValues returns the possible values for the DeferUpgradeSetting const type.
func PossibleDeferUpgradeSettingValues() []DeferUpgradeSetting {
	return []DeferUpgradeSetting{
		DeferUpgradeSettingDeferred,
		DeferUpgradeSettingNotDeferred,
	}
}

// EvictionPolicy - Redis eviction policy - default is VolatileLRU
type EvictionPolicy string

const (
	EvictionPolicyAllKeysLFU     EvictionPolicy = "AllKeysLFU"
	EvictionPolicyAllKeysLRU     EvictionPolicy = "AllKeysLRU"
	EvictionPolicyAllKeysRandom  EvictionPolicy = "AllKeysRandom"
	EvictionPolicyNoEviction     EvictionPolicy = "NoEviction"
	EvictionPolicyVolatileLFU    EvictionPolicy = "VolatileLFU"
	EvictionPolicyVolatileLRU    EvictionPolicy = "VolatileLRU"
	EvictionPolicyVolatileRandom EvictionPolicy = "VolatileRandom"
	EvictionPolicyVolatileTTL    EvictionPolicy = "VolatileTTL"
)

// PossibleEvictionPolicyValues returns the possible values for the EvictionPolicy const type.
func PossibleEvictionPolicyValues() []EvictionPolicy {
	return []EvictionPolicy{
		EvictionPolicyAllKeysLFU,
		EvictionPolicyAllKeysLRU,
		EvictionPolicyAllKeysRandom,
		EvictionPolicyNoEviction,
		EvictionPolicyVolatileLFU,
		EvictionPolicyVolatileLRU,
		EvictionPolicyVolatileRandom,
		EvictionPolicyVolatileTTL,
	}
}

// HighAvailability - Enabled by default. If highAvailability is disabled, the data set is not replicated. This affects the
// availability SLA, and increases the risk of data loss.
type HighAvailability string

const (
	HighAvailabilityDisabled HighAvailability = "Disabled"
	HighAvailabilityEnabled  HighAvailability = "Enabled"
)

// PossibleHighAvailabilityValues returns the possible values for the HighAvailability const type.
func PossibleHighAvailabilityValues() []HighAvailability {
	return []HighAvailability{
		HighAvailabilityDisabled,
		HighAvailabilityEnabled,
	}
}

// Kind - Distinguishes the kind of cluster. Read-only.
type Kind string

const (
	KindV1 Kind = "v1"
	KindV2 Kind = "v2"
)

// PossibleKindValues returns the possible values for the Kind const type.
func PossibleKindValues() []Kind {
	return []Kind{
		KindV1,
		KindV2,
	}
}

// LinkState - State of the link between the database resources.
type LinkState string

const (
	LinkStateLinkFailed   LinkState = "LinkFailed"
	LinkStateLinked       LinkState = "Linked"
	LinkStateLinking      LinkState = "Linking"
	LinkStateUnlinkFailed LinkState = "UnlinkFailed"
	LinkStateUnlinking    LinkState = "Unlinking"
)

// PossibleLinkStateValues returns the possible values for the LinkState const type.
func PossibleLinkStateValues() []LinkState {
	return []LinkState{
		LinkStateLinkFailed,
		LinkStateLinked,
		LinkStateLinking,
		LinkStateUnlinkFailed,
		LinkStateUnlinking,
	}
}

// ManagedServiceIdentityType - Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).
type ManagedServiceIdentityType string

const (
	ManagedServiceIdentityTypeNone                       ManagedServiceIdentityType = "None"
	ManagedServiceIdentityTypeSystemAssigned             ManagedServiceIdentityType = "SystemAssigned"
	ManagedServiceIdentityTypeSystemAssignedUserAssigned ManagedServiceIdentityType = "SystemAssigned, UserAssigned"
	ManagedServiceIdentityTypeUserAssigned               ManagedServiceIdentityType = "UserAssigned"
)

// PossibleManagedServiceIdentityTypeValues returns the possible values for the ManagedServiceIdentityType const type.
func PossibleManagedServiceIdentityTypeValues() []ManagedServiceIdentityType {
	return []ManagedServiceIdentityType{
		ManagedServiceIdentityTypeNone,
		ManagedServiceIdentityTypeSystemAssigned,
		ManagedServiceIdentityTypeSystemAssignedUserAssigned,
		ManagedServiceIdentityTypeUserAssigned,
	}
}

// Origin - The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default
// value is "user,system"
type Origin string

const (
	OriginSystem     Origin = "system"
	OriginUser       Origin = "user"
	OriginUserSystem Origin = "user,system"
)

// PossibleOriginValues returns the possible values for the Origin const type.
func PossibleOriginValues() []Origin {
	return []Origin{
		OriginSystem,
		OriginUser,
		OriginUserSystem,
	}
}

// PrivateEndpointConnectionProvisioningState - The current provisioning state.
type PrivateEndpointConnectionProvisioningState string

const (
	PrivateEndpointConnectionProvisioningStateCreating  PrivateEndpointConnectionProvisioningState = "Creating"
	PrivateEndpointConnectionProvisioningStateDeleting  PrivateEndpointConnectionProvisioningState = "Deleting"
	PrivateEndpointConnectionProvisioningStateFailed    PrivateEndpointConnectionProvisioningState = "Failed"
	PrivateEndpointConnectionProvisioningStateSucceeded PrivateEndpointConnectionProvisioningState = "Succeeded"
)

// PossiblePrivateEndpointConnectionProvisioningStateValues returns the possible values for the PrivateEndpointConnectionProvisioningState const type.
func PossiblePrivateEndpointConnectionProvisioningStateValues() []PrivateEndpointConnectionProvisioningState {
	return []PrivateEndpointConnectionProvisioningState{
		PrivateEndpointConnectionProvisioningStateCreating,
		PrivateEndpointConnectionProvisioningStateDeleting,
		PrivateEndpointConnectionProvisioningStateFailed,
		PrivateEndpointConnectionProvisioningStateSucceeded,
	}
}

// PrivateEndpointServiceConnectionStatus - The private endpoint connection status.
type PrivateEndpointServiceConnectionStatus string

const (
	PrivateEndpointServiceConnectionStatusApproved PrivateEndpointServiceConnectionStatus = "Approved"
	PrivateEndpointServiceConnectionStatusPending  PrivateEndpointServiceConnectionStatus = "Pending"
	PrivateEndpointServiceConnectionStatusRejected PrivateEndpointServiceConnectionStatus = "Rejected"
)

// PossiblePrivateEndpointServiceConnectionStatusValues returns the possible values for the PrivateEndpointServiceConnectionStatus const type.
func PossiblePrivateEndpointServiceConnectionStatusValues() []PrivateEndpointServiceConnectionStatus {
	return []PrivateEndpointServiceConnectionStatus{
		PrivateEndpointServiceConnectionStatusApproved,
		PrivateEndpointServiceConnectionStatusPending,
		PrivateEndpointServiceConnectionStatusRejected,
	}
}

// Protocol - Specifies whether redis clients can connect using TLS-encrypted or plaintext redis protocols. Default is TLS-encrypted.
type Protocol string

const (
	ProtocolEncrypted Protocol = "Encrypted"
	ProtocolPlaintext Protocol = "Plaintext"
)

// PossibleProtocolValues returns the possible values for the Protocol const type.
func PossibleProtocolValues() []Protocol {
	return []Protocol{
		ProtocolEncrypted,
		ProtocolPlaintext,
	}
}

// ProvisioningState - Current provisioning status
type ProvisioningState string

const (
	ProvisioningStateCanceled  ProvisioningState = "Canceled"
	ProvisioningStateCreating  ProvisioningState = "Creating"
	ProvisioningStateDeleting  ProvisioningState = "Deleting"
	ProvisioningStateFailed    ProvisioningState = "Failed"
	ProvisioningStateSucceeded ProvisioningState = "Succeeded"
	ProvisioningStateUpdating  ProvisioningState = "Updating"
)

// PossibleProvisioningStateValues returns the possible values for the ProvisioningState const type.
func PossibleProvisioningStateValues() []ProvisioningState {
	return []ProvisioningState{
		ProvisioningStateCanceled,
		ProvisioningStateCreating,
		ProvisioningStateDeleting,
		ProvisioningStateFailed,
		ProvisioningStateSucceeded,
		ProvisioningStateUpdating,
	}
}

// RdbFrequency - Sets the frequency at which a snapshot of the database is created.
type RdbFrequency string

const (
	RdbFrequencyOneH    RdbFrequency = "1h"
	RdbFrequencySixH    RdbFrequency = "6h"
	RdbFrequencyTwelveH RdbFrequency = "12h"
)

// PossibleRdbFrequencyValues returns the possible values for the RdbFrequency const type.
func PossibleRdbFrequencyValues() []RdbFrequency {
	return []RdbFrequency{
		RdbFrequencyOneH,
		RdbFrequencySixH,
		RdbFrequencyTwelveH,
	}
}

// RedundancyMode - Explains the current redundancy strategy of the cluster, which affects the expected SLA.
type RedundancyMode string

const (
	// RedundancyModeLR - Local redundancy with high availability.
	RedundancyModeLR RedundancyMode = "LR"
	// RedundancyModeNone - No redundancy. Availability loss will occur.
	RedundancyModeNone RedundancyMode = "None"
	// RedundancyModeZR - Zone redundant. Higher availability.
	RedundancyModeZR RedundancyMode = "ZR"
)

// PossibleRedundancyModeValues returns the possible values for the RedundancyMode const type.
func PossibleRedundancyModeValues() []RedundancyMode {
	return []RedundancyMode{
		RedundancyModeLR,
		RedundancyModeNone,
		RedundancyModeZR,
	}
}

// ResourceState - Current resource status
type ResourceState string

const (
	ResourceStateCreateFailed  ResourceState = "CreateFailed"
	ResourceStateCreating      ResourceState = "Creating"
	ResourceStateDeleteFailed  ResourceState = "DeleteFailed"
	ResourceStateDeleting      ResourceState = "Deleting"
	ResourceStateDisableFailed ResourceState = "DisableFailed"
	ResourceStateDisabled      ResourceState = "Disabled"
	ResourceStateDisabling     ResourceState = "Disabling"
	ResourceStateEnableFailed  ResourceState = "EnableFailed"
	ResourceStateEnabling      ResourceState = "Enabling"
	ResourceStateMoving        ResourceState = "Moving"
	ResourceStateRunning       ResourceState = "Running"
	ResourceStateScaling       ResourceState = "Scaling"
	ResourceStateScalingFailed ResourceState = "ScalingFailed"
	ResourceStateUpdateFailed  ResourceState = "UpdateFailed"
	ResourceStateUpdating      ResourceState = "Updating"
)

// PossibleResourceStateValues returns the possible values for the ResourceState const type.
func PossibleResourceStateValues() []ResourceState {
	return []ResourceState{
		ResourceStateCreateFailed,
		ResourceStateCreating,
		ResourceStateDeleteFailed,
		ResourceStateDeleting,
		ResourceStateDisableFailed,
		ResourceStateDisabled,
		ResourceStateDisabling,
		ResourceStateEnableFailed,
		ResourceStateEnabling,
		ResourceStateMoving,
		ResourceStateRunning,
		ResourceStateScaling,
		ResourceStateScalingFailed,
		ResourceStateUpdateFailed,
		ResourceStateUpdating,
	}
}

// SKUName - The level of Redis Enterprise cluster to deploy. Possible values: ('BalancedB5', 'MemoryOptimizedM10', 'ComputeOptimized_X5',
// etc.). For more information on SKUs see the latest pricing documentation.
// Note that additional SKUs may become supported in the future.
type SKUName string

const (
	SKUNameBalancedB0           SKUName = "Balanced_B0"
	SKUNameBalancedB1           SKUName = "Balanced_B1"
	SKUNameBalancedB10          SKUName = "Balanced_B10"
	SKUNameBalancedB100         SKUName = "Balanced_B100"
	SKUNameBalancedB1000        SKUName = "Balanced_B1000"
	SKUNameBalancedB150         SKUName = "Balanced_B150"
	SKUNameBalancedB20          SKUName = "Balanced_B20"
	SKUNameBalancedB250         SKUName = "Balanced_B250"
	SKUNameBalancedB3           SKUName = "Balanced_B3"
	SKUNameBalancedB350         SKUName = "Balanced_B350"
	SKUNameBalancedB5           SKUName = "Balanced_B5"
	SKUNameBalancedB50          SKUName = "Balanced_B50"
	SKUNameBalancedB500         SKUName = "Balanced_B500"
	SKUNameBalancedB700         SKUName = "Balanced_B700"
	SKUNameComputeOptimizedX10  SKUName = "ComputeOptimized_X10"
	SKUNameComputeOptimizedX100 SKUName = "ComputeOptimized_X100"
	SKUNameComputeOptimizedX150 SKUName = "ComputeOptimized_X150"
	SKUNameComputeOptimizedX20  SKUName = "ComputeOptimized_X20"
	SKUNameComputeOptimizedX250 SKUName = "ComputeOptimized_X250"
	SKUNameComputeOptimizedX3   SKUName = "ComputeOptimized_X3"
	SKUNameComputeOptimizedX350 SKUName = "ComputeOptimized_X350"
	SKUNameComputeOptimizedX5   SKUName = "ComputeOptimized_X5"
	SKUNameComputeOptimizedX50  SKUName = "ComputeOptimized_X50"
	SKUNameComputeOptimizedX500 SKUName = "ComputeOptimized_X500"
	SKUNameComputeOptimizedX700 SKUName = "ComputeOptimized_X700"
	SKUNameEnterpriseE1         SKUName = "Enterprise_E1"
	SKUNameEnterpriseE10        SKUName = "Enterprise_E10"
	SKUNameEnterpriseE100       SKUName = "Enterprise_E100"
	SKUNameEnterpriseE20        SKUName = "Enterprise_E20"
	SKUNameEnterpriseE200       SKUName = "Enterprise_E200"
	SKUNameEnterpriseE400       SKUName = "Enterprise_E400"
	SKUNameEnterpriseE5         SKUName = "Enterprise_E5"
	SKUNameEnterpriseE50        SKUName = "Enterprise_E50"
	SKUNameEnterpriseFlashF1500 SKUName = "EnterpriseFlash_F1500"
	SKUNameEnterpriseFlashF300  SKUName = "EnterpriseFlash_F300"
	SKUNameEnterpriseFlashF700  SKUName = "EnterpriseFlash_F700"
	SKUNameFlashOptimizedA1000  SKUName = "FlashOptimized_A1000"
	SKUNameFlashOptimizedA1500  SKUName = "FlashOptimized_A1500"
	SKUNameFlashOptimizedA2000  SKUName = "FlashOptimized_A2000"
	SKUNameFlashOptimizedA250   SKUName = "FlashOptimized_A250"
	SKUNameFlashOptimizedA4500  SKUName = "FlashOptimized_A4500"
	SKUNameFlashOptimizedA500   SKUName = "FlashOptimized_A500"
	SKUNameFlashOptimizedA700   SKUName = "FlashOptimized_A700"
	SKUNameMemoryOptimizedM10   SKUName = "MemoryOptimized_M10"
	SKUNameMemoryOptimizedM100  SKUName = "MemoryOptimized_M100"
	SKUNameMemoryOptimizedM1000 SKUName = "MemoryOptimized_M1000"
	SKUNameMemoryOptimizedM150  SKUName = "MemoryOptimized_M150"
	SKUNameMemoryOptimizedM1500 SKUName = "MemoryOptimized_M1500"
	SKUNameMemoryOptimizedM20   SKUName = "MemoryOptimized_M20"
	SKUNameMemoryOptimizedM2000 SKUName = "MemoryOptimized_M2000"
	SKUNameMemoryOptimizedM250  SKUName = "MemoryOptimized_M250"
	SKUNameMemoryOptimizedM350  SKUName = "MemoryOptimized_M350"
	SKUNameMemoryOptimizedM50   SKUName = "MemoryOptimized_M50"
	SKUNameMemoryOptimizedM500  SKUName = "MemoryOptimized_M500"
	SKUNameMemoryOptimizedM700  SKUName = "MemoryOptimized_M700"
)

// PossibleSKUNameValues returns the possible values for the SKUName const type.
func PossibleSKUNameValues() []SKUName {
	return []SKUName{
		SKUNameBalancedB0,
		SKUNameBalancedB1,
		SKUNameBalancedB10,
		SKUNameBalancedB100,
		SKUNameBalancedB1000,
		SKUNameBalancedB150,
		SKUNameBalancedB20,
		SKUNameBalancedB250,
		SKUNameBalancedB3,
		SKUNameBalancedB350,
		SKUNameBalancedB5,
		SKUNameBalancedB50,
		SKUNameBalancedB500,
		SKUNameBalancedB700,
		SKUNameComputeOptimizedX10,
		SKUNameComputeOptimizedX100,
		SKUNameComputeOptimizedX150,
		SKUNameComputeOptimizedX20,
		SKUNameComputeOptimizedX250,
		SKUNameComputeOptimizedX3,
		SKUNameComputeOptimizedX350,
		SKUNameComputeOptimizedX5,
		SKUNameComputeOptimizedX50,
		SKUNameComputeOptimizedX500,
		SKUNameComputeOptimizedX700,
		SKUNameEnterpriseE1,
		SKUNameEnterpriseE10,
		SKUNameEnterpriseE100,
		SKUNameEnterpriseE20,
		SKUNameEnterpriseE200,
		SKUNameEnterpriseE400,
		SKUNameEnterpriseE5,
		SKUNameEnterpriseE50,
		SKUNameEnterpriseFlashF1500,
		SKUNameEnterpriseFlashF300,
		SKUNameEnterpriseFlashF700,
		SKUNameFlashOptimizedA1000,
		SKUNameFlashOptimizedA1500,
		SKUNameFlashOptimizedA2000,
		SKUNameFlashOptimizedA250,
		SKUNameFlashOptimizedA4500,
		SKUNameFlashOptimizedA500,
		SKUNameFlashOptimizedA700,
		SKUNameMemoryOptimizedM10,
		SKUNameMemoryOptimizedM100,
		SKUNameMemoryOptimizedM1000,
		SKUNameMemoryOptimizedM150,
		SKUNameMemoryOptimizedM1500,
		SKUNameMemoryOptimizedM20,
		SKUNameMemoryOptimizedM2000,
		SKUNameMemoryOptimizedM250,
		SKUNameMemoryOptimizedM350,
		SKUNameMemoryOptimizedM50,
		SKUNameMemoryOptimizedM500,
		SKUNameMemoryOptimizedM700,
	}
}

// TLSVersion - The minimum TLS version for the cluster to support, e.g. '1.2'. Newer versions can be added in the future.
// Note that TLS 1.0 and TLS 1.1 are now completely obsolete -- you cannot use them. They are
// mentioned only for the sake of consistency with old API versions.
type TLSVersion string

const (
	TLSVersionOne0 TLSVersion = "1.0"
	TLSVersionOne1 TLSVersion = "1.1"
	TLSVersionOne2 TLSVersion = "1.2"
)

// PossibleTLSVersionValues returns the possible values for the TLSVersion const type.
func PossibleTLSVersionValues() []TLSVersion {
	return []TLSVersion{
		TLSVersionOne0,
		TLSVersionOne1,
		TLSVersionOne2,
	}
}
