Deserializer_3(@SuppressWarnings("hiding") final SongData sdc) {
		super(sdc);
		final String entry = this.idx.getFilename().replace(".idx", "")
				.replace(".zip", "");
		this.inFile = this.idx.resolve("..", entry);
		this.tmp = this.idx.getParent().resolve(entry + ".tmp");
		final Set<String> zip = this.io.openZipIn(this.idx);
		if ((zip == null) || !zip.contains(entry)) {
			if (this.tmp.exists()) {
				this.tmp.renameTo(this.inFile);
				this.in = this.io.openIn(this.inFile.toFile());
			} else {
				this.in = null;
			}
		} else {
			this.in = this.io.openIn(this.inFile.toFile());
		}
		if (!this.tmp.getParent().exists()) {
			this.out = null;
		} else {
			this.out = this.io.openOut(this.tmp.toFile());
			this.io.write(this.out, VERSION);
		}
	}