public OnDemandData getNextNode()
	{
		OnDemandData onDemandData;
		synchronized(aClass19_1358)
		{
			onDemandData = (OnDemandData)aClass19_1358.popHead();
		}
		if(onDemandData == null)
			return null;
		synchronized(nodeSubList)
		{
			onDemandData.unlinkSub();
		}
		if(onDemandData.buffer == null)
			return onDemandData;
		int i = 0;
		try
		{
			GZIPInputStream gzipinputstream = new GZIPInputStream(new ByteArrayInputStream(onDemandData.buffer));
			do
			{
				if(i == gzipInputBuffer.length)
					throw new RuntimeException("buffer overflow!");
				int k = gzipinputstream.read(gzipInputBuffer, i, gzipInputBuffer.length - i);
				if(k == -1)
					break;
				i += k;
			} while(true);
		}
		catch(IOException _ex)
		{
			throw new RuntimeException("error unzipping");
		}
		onDemandData.buffer = new byte[i];
		System.arraycopy(gzipInputBuffer, 0, onDemandData.buffer, 0, i);

		return onDemandData;
	}