private String getPreDecodedLine(String line, List<String> openedTags)
	{
		StringBuilder builder = new StringBuilder();
		for (int i = 0; i < openedTags.size(); i++)
		{
			builder.append(openedTags.get(i));
		}
		builder.append(line);
		openedTags.clear();
		line = builder.toString();
		Matcher mathcer = TEXT_PART_PATTERN.matcher(line);
		while (mathcer.find())
		{
			String match = mathcer.group();
			if (!match.startsWith("</"))
			{
				openedTags.add(match);
			}
			else if (openedTags.size() > 0)
			{
				openedTags.remove(openedTags.size() - 1);
			}
		}
		for (int i = openedTags.size() - 1; i >= 0; i--)
		{
			String tag = openedTags.get(i);
			if (tag.equals("<b>"))
			{
				builder.append("</b>");
			}
			else if (tag.equals("<i>"))
			{
				builder.append("</i>");
			}
			else if (tag.equals("<u>"))
			{
				builder.append("</i>");
			}
		}
		return builder.toString();
	}