private void writeInt(List<Byte> ret, int val)
	{
		if (val < 0 || val >= 0x200000)
		{
			ret.add((byte)(((val >> 22) & 0x7f) | 0x80));
			ret.add((byte)(((val >> 15) & 0x7f) | 0x80));
			ret.add((byte)(((val >> 8) & 0x7f) | 0x80));
			ret.add((byte)(val & 0xff));
		}
		else
		{
			if (val >= 0x4000)
			{
				ret.add((byte)(((val >> 14) & 0x7f) | 0x80));
			}
			if (val >= 0x80)
			{
				ret.add((byte)(((val >> 7) & 0x7f) | 0x80));
			}
			ret.add((byte)(val & 0x7f));
		}
	}