//go:build !ignore_autogenerated
// +build !ignore_autogenerated

// Code generated by deepcopy-gen. DO NOT EDIT.

package v1

import (
	buildv1 "github.com/openshift/api/build/v1"
	corev1 "k8s.io/api/core/v1"
	runtime "k8s.io/apimachinery/pkg/runtime"
)

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ActiveDirectoryConfig) DeepCopyInto(out *ActiveDirectoryConfig) {
	*out = *in
	out.AllUsersQuery = in.AllUsersQuery
	if in.UserNameAttributes != nil {
		in, out := &in.UserNameAttributes, &out.UserNameAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.GroupMembershipAttributes != nil {
		in, out := &in.GroupMembershipAttributes, &out.GroupMembershipAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActiveDirectoryConfig.
func (in *ActiveDirectoryConfig) DeepCopy() *ActiveDirectoryConfig {
	if in == nil {
		return nil
	}
	out := new(ActiveDirectoryConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AdmissionConfig) DeepCopyInto(out *AdmissionConfig) {
	*out = *in
	if in.PluginConfig != nil {
		in, out := &in.PluginConfig, &out.PluginConfig
		*out = make(map[string]*AdmissionPluginConfig, len(*in))
		for key, val := range *in {
			var outVal *AdmissionPluginConfig
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = new(AdmissionPluginConfig)
				(*in).DeepCopyInto(*out)
			}
			(*out)[key] = outVal
		}
	}
	if in.PluginOrderOverride != nil {
		in, out := &in.PluginOrderOverride, &out.PluginOrderOverride
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionConfig.
func (in *AdmissionConfig) DeepCopy() *AdmissionConfig {
	if in == nil {
		return nil
	}
	out := new(AdmissionConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AdmissionPluginConfig) DeepCopyInto(out *AdmissionPluginConfig) {
	*out = *in
	in.Configuration.DeepCopyInto(&out.Configuration)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdmissionPluginConfig.
func (in *AdmissionPluginConfig) DeepCopy() *AdmissionPluginConfig {
	if in == nil {
		return nil
	}
	out := new(AdmissionPluginConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AggregatorConfig) DeepCopyInto(out *AggregatorConfig) {
	*out = *in
	out.ProxyClientInfo = in.ProxyClientInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AggregatorConfig.
func (in *AggregatorConfig) DeepCopy() *AggregatorConfig {
	if in == nil {
		return nil
	}
	out := new(AggregatorConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AllowAllPasswordIdentityProvider) DeepCopyInto(out *AllowAllPasswordIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowAllPasswordIdentityProvider.
func (in *AllowAllPasswordIdentityProvider) DeepCopy() *AllowAllPasswordIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(AllowAllPasswordIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *AllowAllPasswordIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in AllowedRegistries) DeepCopyInto(out *AllowedRegistries) {
	{
		in := &in
		*out = make(AllowedRegistries, len(*in))
		copy(*out, *in)
		return
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedRegistries.
func (in AllowedRegistries) DeepCopy() AllowedRegistries {
	if in == nil {
		return nil
	}
	out := new(AllowedRegistries)
	in.DeepCopyInto(out)
	return *out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AuditConfig) DeepCopyInto(out *AuditConfig) {
	*out = *in
	in.PolicyConfiguration.DeepCopyInto(&out.PolicyConfiguration)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuditConfig.
func (in *AuditConfig) DeepCopy() *AuditConfig {
	if in == nil {
		return nil
	}
	out := new(AuditConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *AugmentedActiveDirectoryConfig) DeepCopyInto(out *AugmentedActiveDirectoryConfig) {
	*out = *in
	out.AllUsersQuery = in.AllUsersQuery
	if in.UserNameAttributes != nil {
		in, out := &in.UserNameAttributes, &out.UserNameAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.GroupMembershipAttributes != nil {
		in, out := &in.GroupMembershipAttributes, &out.GroupMembershipAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.AllGroupsQuery = in.AllGroupsQuery
	if in.GroupNameAttributes != nil {
		in, out := &in.GroupNameAttributes, &out.GroupNameAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AugmentedActiveDirectoryConfig.
func (in *AugmentedActiveDirectoryConfig) DeepCopy() *AugmentedActiveDirectoryConfig {
	if in == nil {
		return nil
	}
	out := new(AugmentedActiveDirectoryConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BasicAuthPasswordIdentityProvider) DeepCopyInto(out *BasicAuthPasswordIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.RemoteConnectionInfo = in.RemoteConnectionInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BasicAuthPasswordIdentityProvider.
func (in *BasicAuthPasswordIdentityProvider) DeepCopy() *BasicAuthPasswordIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(BasicAuthPasswordIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *BasicAuthPasswordIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BuildDefaultsConfig) DeepCopyInto(out *BuildDefaultsConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	if in.Env != nil {
		in, out := &in.Env, &out.Env
		*out = make([]corev1.EnvVar, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.SourceStrategyDefaults != nil {
		in, out := &in.SourceStrategyDefaults, &out.SourceStrategyDefaults
		*out = new(SourceStrategyDefaultsConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.ImageLabels != nil {
		in, out := &in.ImageLabels, &out.ImageLabels
		*out = make([]buildv1.ImageLabel, len(*in))
		copy(*out, *in)
	}
	if in.NodeSelector != nil {
		in, out := &in.NodeSelector, &out.NodeSelector
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	in.Resources.DeepCopyInto(&out.Resources)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildDefaultsConfig.
func (in *BuildDefaultsConfig) DeepCopy() *BuildDefaultsConfig {
	if in == nil {
		return nil
	}
	out := new(BuildDefaultsConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *BuildDefaultsConfig) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BuildOverridesConfig) DeepCopyInto(out *BuildOverridesConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	if in.ImageLabels != nil {
		in, out := &in.ImageLabels, &out.ImageLabels
		*out = make([]buildv1.ImageLabel, len(*in))
		copy(*out, *in)
	}
	if in.NodeSelector != nil {
		in, out := &in.NodeSelector, &out.NodeSelector
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Annotations != nil {
		in, out := &in.Annotations, &out.Annotations
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.Tolerations != nil {
		in, out := &in.Tolerations, &out.Tolerations
		*out = make([]corev1.Toleration, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BuildOverridesConfig.
func (in *BuildOverridesConfig) DeepCopy() *BuildOverridesConfig {
	if in == nil {
		return nil
	}
	out := new(BuildOverridesConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *BuildOverridesConfig) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CertInfo) DeepCopyInto(out *CertInfo) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertInfo.
func (in *CertInfo) DeepCopy() *CertInfo {
	if in == nil {
		return nil
	}
	out := new(CertInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClientConnectionOverrides) DeepCopyInto(out *ClientConnectionOverrides) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClientConnectionOverrides.
func (in *ClientConnectionOverrides) DeepCopy() *ClientConnectionOverrides {
	if in == nil {
		return nil
	}
	out := new(ClientConnectionOverrides)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ClusterNetworkEntry) DeepCopyInto(out *ClusterNetworkEntry) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterNetworkEntry.
func (in *ClusterNetworkEntry) DeepCopy() *ClusterNetworkEntry {
	if in == nil {
		return nil
	}
	out := new(ClusterNetworkEntry)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig) {
	*out = *in
	if in.Controllers != nil {
		in, out := &in.Controllers, &out.Controllers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Election != nil {
		in, out := &in.Election, &out.Election
		*out = new(ControllerElectionConfig)
		**out = **in
	}
	in.ServiceServingCert.DeepCopyInto(&out.ServiceServingCert)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfig.
func (in *ControllerConfig) DeepCopy() *ControllerConfig {
	if in == nil {
		return nil
	}
	out := new(ControllerConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ControllerElectionConfig) DeepCopyInto(out *ControllerElectionConfig) {
	*out = *in
	out.LockResource = in.LockResource
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerElectionConfig.
func (in *ControllerElectionConfig) DeepCopy() *ControllerElectionConfig {
	if in == nil {
		return nil
	}
	out := new(ControllerElectionConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DNSConfig) DeepCopyInto(out *DNSConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSConfig.
func (in *DNSConfig) DeepCopy() *DNSConfig {
	if in == nil {
		return nil
	}
	out := new(DNSConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DefaultAdmissionConfig) DeepCopyInto(out *DefaultAdmissionConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DefaultAdmissionConfig.
func (in *DefaultAdmissionConfig) DeepCopy() *DefaultAdmissionConfig {
	if in == nil {
		return nil
	}
	out := new(DefaultAdmissionConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *DefaultAdmissionConfig) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DenyAllPasswordIdentityProvider) DeepCopyInto(out *DenyAllPasswordIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DenyAllPasswordIdentityProvider.
func (in *DenyAllPasswordIdentityProvider) DeepCopy() *DenyAllPasswordIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(DenyAllPasswordIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *DenyAllPasswordIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *DockerConfig) DeepCopyInto(out *DockerConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerConfig.
func (in *DockerConfig) DeepCopy() *DockerConfig {
	if in == nil {
		return nil
	}
	out := new(DockerConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EtcdConfig) DeepCopyInto(out *EtcdConfig) {
	*out = *in
	in.ServingInfo.DeepCopyInto(&out.ServingInfo)
	in.PeerServingInfo.DeepCopyInto(&out.PeerServingInfo)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdConfig.
func (in *EtcdConfig) DeepCopy() *EtcdConfig {
	if in == nil {
		return nil
	}
	out := new(EtcdConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EtcdConnectionInfo) DeepCopyInto(out *EtcdConnectionInfo) {
	*out = *in
	if in.URLs != nil {
		in, out := &in.URLs, &out.URLs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.CertInfo = in.CertInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdConnectionInfo.
func (in *EtcdConnectionInfo) DeepCopy() *EtcdConnectionInfo {
	if in == nil {
		return nil
	}
	out := new(EtcdConnectionInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *EtcdStorageConfig) DeepCopyInto(out *EtcdStorageConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdStorageConfig.
func (in *EtcdStorageConfig) DeepCopy() *EtcdStorageConfig {
	if in == nil {
		return nil
	}
	out := new(EtcdStorageConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in ExtendedArguments) DeepCopyInto(out *ExtendedArguments) {
	{
		in := &in
		*out = make(ExtendedArguments, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
		return
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExtendedArguments.
func (in ExtendedArguments) DeepCopy() ExtendedArguments {
	if in == nil {
		return nil
	}
	out := new(ExtendedArguments)
	in.DeepCopyInto(out)
	return *out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in FeatureList) DeepCopyInto(out *FeatureList) {
	{
		in := &in
		*out = make(FeatureList, len(*in))
		copy(*out, *in)
		return
	}
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureList.
func (in FeatureList) DeepCopy() FeatureList {
	if in == nil {
		return nil
	}
	out := new(FeatureList)
	in.DeepCopyInto(out)
	return *out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GitHubIdentityProvider) DeepCopyInto(out *GitHubIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.ClientSecret = in.ClientSecret
	if in.Organizations != nil {
		in, out := &in.Organizations, &out.Organizations
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Teams != nil {
		in, out := &in.Teams, &out.Teams
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubIdentityProvider.
func (in *GitHubIdentityProvider) DeepCopy() *GitHubIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(GitHubIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *GitHubIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GitLabIdentityProvider) DeepCopyInto(out *GitLabIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.ClientSecret = in.ClientSecret
	if in.Legacy != nil {
		in, out := &in.Legacy, &out.Legacy
		*out = new(bool)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitLabIdentityProvider.
func (in *GitLabIdentityProvider) DeepCopy() *GitLabIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(GitLabIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *GitLabIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GoogleIdentityProvider) DeepCopyInto(out *GoogleIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.ClientSecret = in.ClientSecret
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GoogleIdentityProvider.
func (in *GoogleIdentityProvider) DeepCopy() *GoogleIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(GoogleIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *GoogleIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GrantConfig) DeepCopyInto(out *GrantConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantConfig.
func (in *GrantConfig) DeepCopy() *GrantConfig {
	if in == nil {
		return nil
	}
	out := new(GrantConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *GroupResource) DeepCopyInto(out *GroupResource) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupResource.
func (in *GroupResource) DeepCopy() *GroupResource {
	if in == nil {
		return nil
	}
	out := new(GroupResource)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTPasswdPasswordIdentityProvider) DeepCopyInto(out *HTPasswdPasswordIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTPasswdPasswordIdentityProvider.
func (in *HTPasswdPasswordIdentityProvider) DeepCopy() *HTPasswdPasswordIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(HTPasswdPasswordIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *HTPasswdPasswordIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *HTTPServingInfo) DeepCopyInto(out *HTTPServingInfo) {
	*out = *in
	in.ServingInfo.DeepCopyInto(&out.ServingInfo)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPServingInfo.
func (in *HTTPServingInfo) DeepCopy() *HTTPServingInfo {
	if in == nil {
		return nil
	}
	out := new(HTTPServingInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *IdentityProvider) DeepCopyInto(out *IdentityProvider) {
	*out = *in
	in.Provider.DeepCopyInto(&out.Provider)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IdentityProvider.
func (in *IdentityProvider) DeepCopy() *IdentityProvider {
	if in == nil {
		return nil
	}
	out := new(IdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImageConfig) DeepCopyInto(out *ImageConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageConfig.
func (in *ImageConfig) DeepCopy() *ImageConfig {
	if in == nil {
		return nil
	}
	out := new(ImageConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ImagePolicyConfig) DeepCopyInto(out *ImagePolicyConfig) {
	*out = *in
	if in.AllowedRegistriesForImport != nil {
		in, out := &in.AllowedRegistriesForImport, &out.AllowedRegistriesForImport
		*out = new(AllowedRegistries)
		if **in != nil {
			in, out := *in, *out
			*out = make([]RegistryLocation, len(*in))
			copy(*out, *in)
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImagePolicyConfig.
func (in *ImagePolicyConfig) DeepCopy() *ImagePolicyConfig {
	if in == nil {
		return nil
	}
	out := new(ImagePolicyConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *JenkinsPipelineConfig) DeepCopyInto(out *JenkinsPipelineConfig) {
	*out = *in
	if in.AutoProvisionEnabled != nil {
		in, out := &in.AutoProvisionEnabled, &out.AutoProvisionEnabled
		*out = new(bool)
		**out = **in
	}
	if in.Parameters != nil {
		in, out := &in.Parameters, &out.Parameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsPipelineConfig.
func (in *JenkinsPipelineConfig) DeepCopy() *JenkinsPipelineConfig {
	if in == nil {
		return nil
	}
	out := new(JenkinsPipelineConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KeystonePasswordIdentityProvider) DeepCopyInto(out *KeystonePasswordIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.RemoteConnectionInfo = in.RemoteConnectionInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeystonePasswordIdentityProvider.
func (in *KeystonePasswordIdentityProvider) DeepCopy() *KeystonePasswordIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(KeystonePasswordIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *KeystonePasswordIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KubeletConnectionInfo) DeepCopyInto(out *KubeletConnectionInfo) {
	*out = *in
	out.CertInfo = in.CertInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConnectionInfo.
func (in *KubeletConnectionInfo) DeepCopy() *KubeletConnectionInfo {
	if in == nil {
		return nil
	}
	out := new(KubeletConnectionInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KubernetesMasterConfig) DeepCopyInto(out *KubernetesMasterConfig) {
	*out = *in
	if in.APILevels != nil {
		in, out := &in.APILevels, &out.APILevels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.DisabledAPIGroupVersions != nil {
		in, out := &in.DisabledAPIGroupVersions, &out.DisabledAPIGroupVersions
		*out = make(map[string][]string, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	out.ProxyClientInfo = in.ProxyClientInfo
	if in.APIServerArguments != nil {
		in, out := &in.APIServerArguments, &out.APIServerArguments
		*out = make(ExtendedArguments, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.ControllerArguments != nil {
		in, out := &in.ControllerArguments, &out.ControllerArguments
		*out = make(ExtendedArguments, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.SchedulerArguments != nil {
		in, out := &in.SchedulerArguments, &out.SchedulerArguments
		*out = make(ExtendedArguments, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesMasterConfig.
func (in *KubernetesMasterConfig) DeepCopy() *KubernetesMasterConfig {
	if in == nil {
		return nil
	}
	out := new(KubernetesMasterConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPAttributeMapping) DeepCopyInto(out *LDAPAttributeMapping) {
	*out = *in
	if in.ID != nil {
		in, out := &in.ID, &out.ID
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PreferredUsername != nil {
		in, out := &in.PreferredUsername, &out.PreferredUsername
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Email != nil {
		in, out := &in.Email, &out.Email
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPAttributeMapping.
func (in *LDAPAttributeMapping) DeepCopy() *LDAPAttributeMapping {
	if in == nil {
		return nil
	}
	out := new(LDAPAttributeMapping)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPPasswordIdentityProvider) DeepCopyInto(out *LDAPPasswordIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.BindPassword = in.BindPassword
	in.Attributes.DeepCopyInto(&out.Attributes)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPPasswordIdentityProvider.
func (in *LDAPPasswordIdentityProvider) DeepCopy() *LDAPPasswordIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(LDAPPasswordIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *LDAPPasswordIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPQuery) DeepCopyInto(out *LDAPQuery) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPQuery.
func (in *LDAPQuery) DeepCopy() *LDAPQuery {
	if in == nil {
		return nil
	}
	out := new(LDAPQuery)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LDAPSyncConfig) DeepCopyInto(out *LDAPSyncConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.BindPassword = in.BindPassword
	if in.LDAPGroupUIDToOpenShiftGroupNameMapping != nil {
		in, out := &in.LDAPGroupUIDToOpenShiftGroupNameMapping, &out.LDAPGroupUIDToOpenShiftGroupNameMapping
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	if in.RFC2307Config != nil {
		in, out := &in.RFC2307Config, &out.RFC2307Config
		*out = new(RFC2307Config)
		(*in).DeepCopyInto(*out)
	}
	if in.ActiveDirectoryConfig != nil {
		in, out := &in.ActiveDirectoryConfig, &out.ActiveDirectoryConfig
		*out = new(ActiveDirectoryConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.AugmentedActiveDirectoryConfig != nil {
		in, out := &in.AugmentedActiveDirectoryConfig, &out.AugmentedActiveDirectoryConfig
		*out = new(AugmentedActiveDirectoryConfig)
		(*in).DeepCopyInto(*out)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LDAPSyncConfig.
func (in *LDAPSyncConfig) DeepCopy() *LDAPSyncConfig {
	if in == nil {
		return nil
	}
	out := new(LDAPSyncConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *LDAPSyncConfig) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *LocalQuota) DeepCopyInto(out *LocalQuota) {
	*out = *in
	if in.PerFSGroup != nil {
		in, out := &in.PerFSGroup, &out.PerFSGroup
		x := (*in).DeepCopy()
		*out = &x
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalQuota.
func (in *LocalQuota) DeepCopy() *LocalQuota {
	if in == nil {
		return nil
	}
	out := new(LocalQuota)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MasterAuthConfig) DeepCopyInto(out *MasterAuthConfig) {
	*out = *in
	if in.RequestHeader != nil {
		in, out := &in.RequestHeader, &out.RequestHeader
		*out = new(RequestHeaderAuthenticationOptions)
		(*in).DeepCopyInto(*out)
	}
	if in.WebhookTokenAuthenticators != nil {
		in, out := &in.WebhookTokenAuthenticators, &out.WebhookTokenAuthenticators
		*out = make([]WebhookTokenAuthenticator, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MasterAuthConfig.
func (in *MasterAuthConfig) DeepCopy() *MasterAuthConfig {
	if in == nil {
		return nil
	}
	out := new(MasterAuthConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MasterClients) DeepCopyInto(out *MasterClients) {
	*out = *in
	if in.OpenShiftLoopbackClientConnectionOverrides != nil {
		in, out := &in.OpenShiftLoopbackClientConnectionOverrides, &out.OpenShiftLoopbackClientConnectionOverrides
		*out = new(ClientConnectionOverrides)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MasterClients.
func (in *MasterClients) DeepCopy() *MasterClients {
	if in == nil {
		return nil
	}
	out := new(MasterClients)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MasterConfig) DeepCopyInto(out *MasterConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ServingInfo.DeepCopyInto(&out.ServingInfo)
	in.AuthConfig.DeepCopyInto(&out.AuthConfig)
	out.AggregatorConfig = in.AggregatorConfig
	if in.CORSAllowedOrigins != nil {
		in, out := &in.CORSAllowedOrigins, &out.CORSAllowedOrigins
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.APILevels != nil {
		in, out := &in.APILevels, &out.APILevels
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	in.AdmissionConfig.DeepCopyInto(&out.AdmissionConfig)
	in.ControllerConfig.DeepCopyInto(&out.ControllerConfig)
	out.EtcdStorageConfig = in.EtcdStorageConfig
	in.EtcdClientInfo.DeepCopyInto(&out.EtcdClientInfo)
	out.KubeletClientInfo = in.KubeletClientInfo
	in.KubernetesMasterConfig.DeepCopyInto(&out.KubernetesMasterConfig)
	if in.EtcdConfig != nil {
		in, out := &in.EtcdConfig, &out.EtcdConfig
		*out = new(EtcdConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.OAuthConfig != nil {
		in, out := &in.OAuthConfig, &out.OAuthConfig
		*out = new(OAuthConfig)
		(*in).DeepCopyInto(*out)
	}
	if in.DNSConfig != nil {
		in, out := &in.DNSConfig, &out.DNSConfig
		*out = new(DNSConfig)
		**out = **in
	}
	in.ServiceAccountConfig.DeepCopyInto(&out.ServiceAccountConfig)
	in.MasterClients.DeepCopyInto(&out.MasterClients)
	out.ImageConfig = in.ImageConfig
	in.ImagePolicyConfig.DeepCopyInto(&out.ImagePolicyConfig)
	in.PolicyConfig.DeepCopyInto(&out.PolicyConfig)
	in.ProjectConfig.DeepCopyInto(&out.ProjectConfig)
	out.RoutingConfig = in.RoutingConfig
	in.NetworkConfig.DeepCopyInto(&out.NetworkConfig)
	in.VolumeConfig.DeepCopyInto(&out.VolumeConfig)
	in.JenkinsPipelineConfig.DeepCopyInto(&out.JenkinsPipelineConfig)
	in.AuditConfig.DeepCopyInto(&out.AuditConfig)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MasterConfig.
func (in *MasterConfig) DeepCopy() *MasterConfig {
	if in == nil {
		return nil
	}
	out := new(MasterConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *MasterConfig) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MasterNetworkConfig) DeepCopyInto(out *MasterNetworkConfig) {
	*out = *in
	if in.ClusterNetworks != nil {
		in, out := &in.ClusterNetworks, &out.ClusterNetworks
		*out = make([]ClusterNetworkEntry, len(*in))
		copy(*out, *in)
	}
	if in.ExternalIPNetworkCIDRs != nil {
		in, out := &in.ExternalIPNetworkCIDRs, &out.ExternalIPNetworkCIDRs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MasterNetworkConfig.
func (in *MasterNetworkConfig) DeepCopy() *MasterNetworkConfig {
	if in == nil {
		return nil
	}
	out := new(MasterNetworkConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *MasterVolumeConfig) DeepCopyInto(out *MasterVolumeConfig) {
	*out = *in
	if in.DynamicProvisioningEnabled != nil {
		in, out := &in.DynamicProvisioningEnabled, &out.DynamicProvisioningEnabled
		*out = new(bool)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MasterVolumeConfig.
func (in *MasterVolumeConfig) DeepCopy() *MasterVolumeConfig {
	if in == nil {
		return nil
	}
	out := new(MasterVolumeConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NamedCertificate) DeepCopyInto(out *NamedCertificate) {
	*out = *in
	if in.Names != nil {
		in, out := &in.Names, &out.Names
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.CertInfo = in.CertInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NamedCertificate.
func (in *NamedCertificate) DeepCopy() *NamedCertificate {
	if in == nil {
		return nil
	}
	out := new(NamedCertificate)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeAuthConfig) DeepCopyInto(out *NodeAuthConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAuthConfig.
func (in *NodeAuthConfig) DeepCopy() *NodeAuthConfig {
	if in == nil {
		return nil
	}
	out := new(NodeAuthConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeConfig) DeepCopyInto(out *NodeConfig) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	in.ServingInfo.DeepCopyInto(&out.ServingInfo)
	if in.MasterClientConnectionOverrides != nil {
		in, out := &in.MasterClientConnectionOverrides, &out.MasterClientConnectionOverrides
		*out = new(ClientConnectionOverrides)
		**out = **in
	}
	if in.DNSNameservers != nil {
		in, out := &in.DNSNameservers, &out.DNSNameservers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.NetworkConfig = in.NetworkConfig
	out.ImageConfig = in.ImageConfig
	if in.PodManifestConfig != nil {
		in, out := &in.PodManifestConfig, &out.PodManifestConfig
		*out = new(PodManifestConfig)
		**out = **in
	}
	out.AuthConfig = in.AuthConfig
	out.DockerConfig = in.DockerConfig
	if in.KubeletArguments != nil {
		in, out := &in.KubeletArguments, &out.KubeletArguments
		*out = make(ExtendedArguments, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.ProxyArguments != nil {
		in, out := &in.ProxyArguments, &out.ProxyArguments
		*out = make(ExtendedArguments, len(*in))
		for key, val := range *in {
			var outVal []string
			if val == nil {
				(*out)[key] = nil
			} else {
				in, out := &val, &outVal
				*out = make([]string, len(*in))
				copy(*out, *in)
			}
			(*out)[key] = outVal
		}
	}
	if in.EnableUnidling != nil {
		in, out := &in.EnableUnidling, &out.EnableUnidling
		*out = new(bool)
		**out = **in
	}
	in.VolumeConfig.DeepCopyInto(&out.VolumeConfig)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfig.
func (in *NodeConfig) DeepCopy() *NodeConfig {
	if in == nil {
		return nil
	}
	out := new(NodeConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *NodeConfig) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeNetworkConfig) DeepCopyInto(out *NodeNetworkConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeNetworkConfig.
func (in *NodeNetworkConfig) DeepCopy() *NodeNetworkConfig {
	if in == nil {
		return nil
	}
	out := new(NodeNetworkConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *NodeVolumeConfig) DeepCopyInto(out *NodeVolumeConfig) {
	*out = *in
	in.LocalQuota.DeepCopyInto(&out.LocalQuota)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeVolumeConfig.
func (in *NodeVolumeConfig) DeepCopy() *NodeVolumeConfig {
	if in == nil {
		return nil
	}
	out := new(NodeVolumeConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OAuthConfig) DeepCopyInto(out *OAuthConfig) {
	*out = *in
	if in.MasterCA != nil {
		in, out := &in.MasterCA, &out.MasterCA
		*out = new(string)
		**out = **in
	}
	if in.IdentityProviders != nil {
		in, out := &in.IdentityProviders, &out.IdentityProviders
		*out = make([]IdentityProvider, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	out.GrantConfig = in.GrantConfig
	if in.SessionConfig != nil {
		in, out := &in.SessionConfig, &out.SessionConfig
		*out = new(SessionConfig)
		**out = **in
	}
	in.TokenConfig.DeepCopyInto(&out.TokenConfig)
	if in.Templates != nil {
		in, out := &in.Templates, &out.Templates
		*out = new(OAuthTemplates)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthConfig.
func (in *OAuthConfig) DeepCopy() *OAuthConfig {
	if in == nil {
		return nil
	}
	out := new(OAuthConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OAuthTemplates) DeepCopyInto(out *OAuthTemplates) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OAuthTemplates.
func (in *OAuthTemplates) DeepCopy() *OAuthTemplates {
	if in == nil {
		return nil
	}
	out := new(OAuthTemplates)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OpenIDClaims) DeepCopyInto(out *OpenIDClaims) {
	*out = *in
	if in.ID != nil {
		in, out := &in.ID, &out.ID
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PreferredUsername != nil {
		in, out := &in.PreferredUsername, &out.PreferredUsername
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Name != nil {
		in, out := &in.Name, &out.Name
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Email != nil {
		in, out := &in.Email, &out.Email
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDClaims.
func (in *OpenIDClaims) DeepCopy() *OpenIDClaims {
	if in == nil {
		return nil
	}
	out := new(OpenIDClaims)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OpenIDIdentityProvider) DeepCopyInto(out *OpenIDIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	out.ClientSecret = in.ClientSecret
	if in.ExtraScopes != nil {
		in, out := &in.ExtraScopes, &out.ExtraScopes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ExtraAuthorizeParameters != nil {
		in, out := &in.ExtraAuthorizeParameters, &out.ExtraAuthorizeParameters
		*out = make(map[string]string, len(*in))
		for key, val := range *in {
			(*out)[key] = val
		}
	}
	out.URLs = in.URLs
	in.Claims.DeepCopyInto(&out.Claims)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDIdentityProvider.
func (in *OpenIDIdentityProvider) DeepCopy() *OpenIDIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(OpenIDIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *OpenIDIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *OpenIDURLs) DeepCopyInto(out *OpenIDURLs) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OpenIDURLs.
func (in *OpenIDURLs) DeepCopy() *OpenIDURLs {
	if in == nil {
		return nil
	}
	out := new(OpenIDURLs)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PodManifestConfig) DeepCopyInto(out *PodManifestConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodManifestConfig.
func (in *PodManifestConfig) DeepCopy() *PodManifestConfig {
	if in == nil {
		return nil
	}
	out := new(PodManifestConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *PolicyConfig) DeepCopyInto(out *PolicyConfig) {
	*out = *in
	in.UserAgentMatchingConfig.DeepCopyInto(&out.UserAgentMatchingConfig)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyConfig.
func (in *PolicyConfig) DeepCopy() *PolicyConfig {
	if in == nil {
		return nil
	}
	out := new(PolicyConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ProjectConfig) DeepCopyInto(out *ProjectConfig) {
	*out = *in
	if in.SecurityAllocator != nil {
		in, out := &in.SecurityAllocator, &out.SecurityAllocator
		*out = new(SecurityAllocator)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectConfig.
func (in *ProjectConfig) DeepCopy() *ProjectConfig {
	if in == nil {
		return nil
	}
	out := new(ProjectConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RFC2307Config) DeepCopyInto(out *RFC2307Config) {
	*out = *in
	out.AllGroupsQuery = in.AllGroupsQuery
	if in.GroupNameAttributes != nil {
		in, out := &in.GroupNameAttributes, &out.GroupNameAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.GroupMembershipAttributes != nil {
		in, out := &in.GroupMembershipAttributes, &out.GroupMembershipAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	out.AllUsersQuery = in.AllUsersQuery
	if in.UserNameAttributes != nil {
		in, out := &in.UserNameAttributes, &out.UserNameAttributes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RFC2307Config.
func (in *RFC2307Config) DeepCopy() *RFC2307Config {
	if in == nil {
		return nil
	}
	out := new(RFC2307Config)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RegistryLocation) DeepCopyInto(out *RegistryLocation) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryLocation.
func (in *RegistryLocation) DeepCopy() *RegistryLocation {
	if in == nil {
		return nil
	}
	out := new(RegistryLocation)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RemoteConnectionInfo) DeepCopyInto(out *RemoteConnectionInfo) {
	*out = *in
	out.CertInfo = in.CertInfo
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteConnectionInfo.
func (in *RemoteConnectionInfo) DeepCopy() *RemoteConnectionInfo {
	if in == nil {
		return nil
	}
	out := new(RemoteConnectionInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RequestHeaderAuthenticationOptions) DeepCopyInto(out *RequestHeaderAuthenticationOptions) {
	*out = *in
	if in.ClientCommonNames != nil {
		in, out := &in.ClientCommonNames, &out.ClientCommonNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.UsernameHeaders != nil {
		in, out := &in.UsernameHeaders, &out.UsernameHeaders
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.GroupHeaders != nil {
		in, out := &in.GroupHeaders, &out.GroupHeaders
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.ExtraHeaderPrefixes != nil {
		in, out := &in.ExtraHeaderPrefixes, &out.ExtraHeaderPrefixes
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderAuthenticationOptions.
func (in *RequestHeaderAuthenticationOptions) DeepCopy() *RequestHeaderAuthenticationOptions {
	if in == nil {
		return nil
	}
	out := new(RequestHeaderAuthenticationOptions)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RequestHeaderIdentityProvider) DeepCopyInto(out *RequestHeaderIdentityProvider) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	if in.ClientCommonNames != nil {
		in, out := &in.ClientCommonNames, &out.ClientCommonNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.Headers != nil {
		in, out := &in.Headers, &out.Headers
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PreferredUsernameHeaders != nil {
		in, out := &in.PreferredUsernameHeaders, &out.PreferredUsernameHeaders
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.NameHeaders != nil {
		in, out := &in.NameHeaders, &out.NameHeaders
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.EmailHeaders != nil {
		in, out := &in.EmailHeaders, &out.EmailHeaders
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RequestHeaderIdentityProvider.
func (in *RequestHeaderIdentityProvider) DeepCopy() *RequestHeaderIdentityProvider {
	if in == nil {
		return nil
	}
	out := new(RequestHeaderIdentityProvider)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *RequestHeaderIdentityProvider) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *RoutingConfig) DeepCopyInto(out *RoutingConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoutingConfig.
func (in *RoutingConfig) DeepCopy() *RoutingConfig {
	if in == nil {
		return nil
	}
	out := new(RoutingConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SecurityAllocator) DeepCopyInto(out *SecurityAllocator) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityAllocator.
func (in *SecurityAllocator) DeepCopy() *SecurityAllocator {
	if in == nil {
		return nil
	}
	out := new(SecurityAllocator)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceAccountConfig) DeepCopyInto(out *ServiceAccountConfig) {
	*out = *in
	if in.ManagedNames != nil {
		in, out := &in.ManagedNames, &out.ManagedNames
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	if in.PublicKeyFiles != nil {
		in, out := &in.PublicKeyFiles, &out.PublicKeyFiles
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceAccountConfig.
func (in *ServiceAccountConfig) DeepCopy() *ServiceAccountConfig {
	if in == nil {
		return nil
	}
	out := new(ServiceAccountConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServiceServingCert) DeepCopyInto(out *ServiceServingCert) {
	*out = *in
	if in.Signer != nil {
		in, out := &in.Signer, &out.Signer
		*out = new(CertInfo)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceServingCert.
func (in *ServiceServingCert) DeepCopy() *ServiceServingCert {
	if in == nil {
		return nil
	}
	out := new(ServiceServingCert)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ServingInfo) DeepCopyInto(out *ServingInfo) {
	*out = *in
	out.CertInfo = in.CertInfo
	if in.NamedCertificates != nil {
		in, out := &in.NamedCertificates, &out.NamedCertificates
		*out = make([]NamedCertificate, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.CipherSuites != nil {
		in, out := &in.CipherSuites, &out.CipherSuites
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServingInfo.
func (in *ServingInfo) DeepCopy() *ServingInfo {
	if in == nil {
		return nil
	}
	out := new(ServingInfo)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SessionConfig) DeepCopyInto(out *SessionConfig) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionConfig.
func (in *SessionConfig) DeepCopy() *SessionConfig {
	if in == nil {
		return nil
	}
	out := new(SessionConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SessionSecret) DeepCopyInto(out *SessionSecret) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionSecret.
func (in *SessionSecret) DeepCopy() *SessionSecret {
	if in == nil {
		return nil
	}
	out := new(SessionSecret)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SessionSecrets) DeepCopyInto(out *SessionSecrets) {
	*out = *in
	out.TypeMeta = in.TypeMeta
	if in.Secrets != nil {
		in, out := &in.Secrets, &out.Secrets
		*out = make([]SessionSecret, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SessionSecrets.
func (in *SessionSecrets) DeepCopy() *SessionSecrets {
	if in == nil {
		return nil
	}
	out := new(SessionSecrets)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *SessionSecrets) DeepCopyObject() runtime.Object {
	if c := in.DeepCopy(); c != nil {
		return c
	}
	return nil
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *SourceStrategyDefaultsConfig) DeepCopyInto(out *SourceStrategyDefaultsConfig) {
	*out = *in
	if in.Incremental != nil {
		in, out := &in.Incremental, &out.Incremental
		*out = new(bool)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SourceStrategyDefaultsConfig.
func (in *SourceStrategyDefaultsConfig) DeepCopy() *SourceStrategyDefaultsConfig {
	if in == nil {
		return nil
	}
	out := new(SourceStrategyDefaultsConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StringSource) DeepCopyInto(out *StringSource) {
	*out = *in
	out.StringSourceSpec = in.StringSourceSpec
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringSource.
func (in *StringSource) DeepCopy() *StringSource {
	if in == nil {
		return nil
	}
	out := new(StringSource)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StringSourceSpec) DeepCopyInto(out *StringSourceSpec) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StringSourceSpec.
func (in *StringSourceSpec) DeepCopy() *StringSourceSpec {
	if in == nil {
		return nil
	}
	out := new(StringSourceSpec)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *TokenConfig) DeepCopyInto(out *TokenConfig) {
	*out = *in
	if in.AccessTokenInactivityTimeoutSeconds != nil {
		in, out := &in.AccessTokenInactivityTimeoutSeconds, &out.AccessTokenInactivityTimeoutSeconds
		*out = new(int32)
		**out = **in
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TokenConfig.
func (in *TokenConfig) DeepCopy() *TokenConfig {
	if in == nil {
		return nil
	}
	out := new(TokenConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UserAgentDenyRule) DeepCopyInto(out *UserAgentDenyRule) {
	*out = *in
	in.UserAgentMatchRule.DeepCopyInto(&out.UserAgentMatchRule)
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAgentDenyRule.
func (in *UserAgentDenyRule) DeepCopy() *UserAgentDenyRule {
	if in == nil {
		return nil
	}
	out := new(UserAgentDenyRule)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UserAgentMatchRule) DeepCopyInto(out *UserAgentMatchRule) {
	*out = *in
	if in.HTTPVerbs != nil {
		in, out := &in.HTTPVerbs, &out.HTTPVerbs
		*out = make([]string, len(*in))
		copy(*out, *in)
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAgentMatchRule.
func (in *UserAgentMatchRule) DeepCopy() *UserAgentMatchRule {
	if in == nil {
		return nil
	}
	out := new(UserAgentMatchRule)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *UserAgentMatchingConfig) DeepCopyInto(out *UserAgentMatchingConfig) {
	*out = *in
	if in.RequiredClients != nil {
		in, out := &in.RequiredClients, &out.RequiredClients
		*out = make([]UserAgentMatchRule, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	if in.DeniedClients != nil {
		in, out := &in.DeniedClients, &out.DeniedClients
		*out = make([]UserAgentDenyRule, len(*in))
		for i := range *in {
			(*in)[i].DeepCopyInto(&(*out)[i])
		}
	}
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAgentMatchingConfig.
func (in *UserAgentMatchingConfig) DeepCopy() *UserAgentMatchingConfig {
	if in == nil {
		return nil
	}
	out := new(UserAgentMatchingConfig)
	in.DeepCopyInto(out)
	return out
}

// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *WebhookTokenAuthenticator) DeepCopyInto(out *WebhookTokenAuthenticator) {
	*out = *in
	return
}

// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookTokenAuthenticator.
func (in *WebhookTokenAuthenticator) DeepCopy() *WebhookTokenAuthenticator {
	if in == nil {
		return nil
	}
	out := new(WebhookTokenAuthenticator)
	in.DeepCopyInto(out)
	return out
}
