text: /* 2.4.326 TODO: payload is a zip file */
  function parse_Theme(blob, length) {
  	var dwThemeVersion = blob.read_shift(4);
  	if(dwThemeVersion === 124226) return;
  	blob.l += length-4;
  }
  
  /* 2.5.49 */
  function parse_ColorTheme(blob, length) { return blob.read_shift(4); }
  
  /* 2.5.155 */
  function parse_FullColorExt(blob, length) {
  	var o = {};
  	o.xclrType = blob.read_shift(2);
  	o.nTintShade = blob.read_shift(2);
  	switch(o.xclrType) {
  		case 0: blob.l += 4; break;
  		case 1: o.xclrValue = parse_IcvXF(blob, 4); break;
  		case 2: o.xclrValue = parse_LongRGBA(blob, 4); break;
  		case 3: o.xclrValue = parse_ColorTheme(blob, 4); break;
  		case 4: blob.l += 4; break;
  	}
  	blob.l += 8;
  	return o;
  }
  
  /* 2.5.108 */
  function parse_ExtProp(blob, length) {
  	var extType = blob.read_shift(2);
  	var cb = blob.read_shift(2);
  	var o = [extType];
  	switch(extType) {
  		case 0x04: case 0x05: case 0x07: case 0x08:
  		case 0x09: case 0x0A: case 0x0B: case 0x0D:
  			o[1] = parse_FullColorExt(blob, cb); break;
  		case 0x06: o[1] = parse_XFExtGradient(blob, cb); break;
  		case 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 5 ? 1 : 2); break;
  		default: throw new Error("Unrecognized ExtProp type: " + extType + " " + cb);
  	}
  	return o;
  }
  
  /* 2.4.355 */
  function parse_XFExt(blob, length) {
  	var end = blob.l + length;
  	blob.l += 2;
  	var ixfe = blob.read_shift(2);
  	blob.l += 2;
  	var cexts = blob.read_shift(2);
  	var ext = [];
  	while(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));
  	return {ixfe:ixfe, ext:ext};
  }
  
  /* xf is an XF, see parse_XFExt for xfext */
  function update_xfext(xf, xfext) {
  	xfext.forEach(function(xfe) {
  		switch(xfe[0]) { /* 2.5.108 extPropData */
  			case 0x04: break; /* foreground color */
  			case 0x05: break; /* background color */
  			case 0x07: case 0x08: case 0x09: case 0x0a: break;
  			case 0x0d: break; /* text color */
  			case 0x0e: break; /* font scheme */
  			default: throw "bafuq" + xfe[0].toString(16);
  		}
  	});
  }
  