// Path: src/main/java/com/cedarsoftware/util/StringUtilities.java
// public static int hashCodeIgnoreCase(String s)
// {
//     if (s == null)
//     {
//         return 0;
//     }
//     final int len = s.length();
//     int hash = 0;
//     for (int i = 0; i < len; i++)
//     {
//         hash = 31 * hash + Character.toLowerCase((int)s.charAt(i));
//     }
//     return hash;
// }


import java.util.*;
import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.ConcurrentSkipListSet;
import static com.cedarsoftware.util.StringUtilities.hashCodeIgnoreCase;
            map = new CaseInsensitiveMap<>(collection.size());
        }
        addAll(collection);
    }

    public CaseInsensitiveSet(Collection<? extends E> source, Map backingMap)
    {
        map = backingMap;
        addAll(source);
    }

    public CaseInsensitiveSet(int initialCapacity)
    {
        map = new CaseInsensitiveMap<>(initialCapacity);
    }

    public CaseInsensitiveSet(int initialCapacity, float loadFactor)
    {
        map = new CaseInsensitiveMap<>(initialCapacity, loadFactor);
    }

    public int hashCode()
    {
        int hash = 0;
        for (Object item : map.keySet())
        {
            if (item != null)
            {
                if (item instanceof String)
                {
// Path: src/main/java/com/cedarsoftware/util/StringUtilities.java
// public static int hashCodeIgnoreCase(String s)
// {
//     if (s == null)
//     {
//         return 0;
//     }
//     final int len = s.length();
//     int hash = 0;
//     for (int i = 0; i < len; i++)
//     {
//         hash = 31 * hash + Character.toLowerCase((int)s.charAt(i));
//     }
//     return hash;
// }


// Path: src/main/java/com/cedarsoftware/util/CaseInsensitiveSet.java
import java.util.*;
import java.util.concurrent.ConcurrentSkipListMap;
import java.util.concurrent.ConcurrentSkipListSet;
import static com.cedarsoftware.util.StringUtilities.hashCodeIgnoreCase;

            map = new CaseInsensitiveMap<>(collection.size());
        }
        addAll(collection);
    }

    public CaseInsensitiveSet(Collection<? extends E> source, Map backingMap)
    {
        map = backingMap;
        addAll(source);
    }

    public CaseInsensitiveSet(int initialCapacity)
    {
        map = new CaseInsensitiveMap<>(initialCapacity);
    }

    public CaseInsensitiveSet(int initialCapacity, float loadFactor)
    {
        map = new CaseInsensitiveMap<>(initialCapacity, loadFactor);
    }

    public int hashCode()
    {
        int hash = 0;
        for (Object item : map.keySet())
        {
            if (item != null)
            {
                if (item instanceof String)
                {
                    hash += hashCodeIgnoreCase((String)item);