code: public static GwtProperties load(String source) {
      String[] lines = source.split("\r?\n");
      ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
  
      for (int i = 0; i < lines.length; ++i) {
        String line = lines[i];
        if (line.isEmpty() || line.startsWith("#") || line.startsWith("!")) {
          continue; // skip if empty or starts with # or !
        }
  
        String data = "";
  
        int delimeterIndex = findDelimiter(line);
        if (delimeterIndex == -1) {
          continue;
        }
        // Remove whitespace on both sides of key.
        String key = line.substring(0, delimeterIndex).trim();
        // Remove whitespace only on left side of data value. Trailing white space is data.
        line = trimLeft(line.substring(delimeterIndex + 1));
        while (true) {
          if (line.endsWith("\\")) {
            data += line.substring(0, line.length() - 1);
            if (i + 1 == lines.length) {
              break;
            }
            line = trimLeft(lines[++i]);
          } else {
            data += line;
            break;
          }
          }
        builder.put(key, data);
        }
  
      return new GwtProperties(builder.build());
      }
docs: Constructs a new {@link GwtProperties} from the given source string.
  
  @param source To load from.
  @return The {@link GwtProperties} object from the source.