/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (UsersPath != null)
         {
             hashCode = hashCode * 59 + UsersPath.GetHashCode();
         }
         if (GroupsPath != null)
         {
             hashCode = hashCode * 59 + GroupsPath.GetHashCode();
         }
         if (SystemRelativePath != null)
         {
             hashCode = hashCode * 59 + SystemRelativePath.GetHashCode();
         }
         if (DefaultDepth != null)
         {
             hashCode = hashCode * 59 + DefaultDepth.GetHashCode();
         }
         if (ImportBehavior != null)
         {
             hashCode = hashCode * 59 + ImportBehavior.GetHashCode();
         }
         if (PasswordHashAlgorithm != null)
         {
             hashCode = hashCode * 59 + PasswordHashAlgorithm.GetHashCode();
         }
         if (PasswordHashIterations != null)
         {
             hashCode = hashCode * 59 + PasswordHashIterations.GetHashCode();
         }
         if (PasswordSaltSize != null)
         {
             hashCode = hashCode * 59 + PasswordSaltSize.GetHashCode();
         }
         if (OmitAdminPw != null)
         {
             hashCode = hashCode * 59 + OmitAdminPw.GetHashCode();
         }
         if (SupportAutoSave != null)
         {
             hashCode = hashCode * 59 + SupportAutoSave.GetHashCode();
         }
         if (PasswordMaxAge != null)
         {
             hashCode = hashCode * 59 + PasswordMaxAge.GetHashCode();
         }
         if (InitialPasswordChange != null)
         {
             hashCode = hashCode * 59 + InitialPasswordChange.GetHashCode();
         }
         if (PasswordHistorySize != null)
         {
             hashCode = hashCode * 59 + PasswordHistorySize.GetHashCode();
         }
         if (PasswordExpiryForAdmin != null)
         {
             hashCode = hashCode * 59 + PasswordExpiryForAdmin.GetHashCode();
         }
         if (CacheExpiration != null)
         {
             hashCode = hashCode * 59 + CacheExpiration.GetHashCode();
         }
         if (EnableRFC7613UsercaseMappedProfile != null)
         {
             hashCode = hashCode * 59 + EnableRFC7613UsercaseMappedProfile.GetHashCode();
         }
         return(hashCode);
     }
 }