You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
88 KiB

{"version":3,"sources":["webpack://WMF/webpack/bootstrap","webpack://WMF/./src/Records.ts","webpack://WMF/./src/canvas.ts","webpack://WMF/./src/index.ts","webpack://WMF/./src/util.ts","webpack://WMF/./src/wmf.ts","webpack://WMF/./misc/entry.js"],"names":[],"mappings":"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","file":"wmf.node.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./misc/entry.js\");\n","/*! wmf.js (C) 2020-present SheetJS LLC -- https://sheetjs.com */\nexport interface WMFRecord {\n\tn: string;\n}\n\nexport interface WMFEscape {\n\tn: string;\n}\n\n/* 2.1.1.1 RecordType Enumeration */\nexport const WMFRecords: {[key: number]: WMFRecord} = {\n\t0x0000: { n: \"META_EOF\" }, // 2.3.2.1\n\t0x0626: { n: \"META_ESCAPE\" }, // 2.3.6.1\n\n\t0x0940: { n: \"META_DIBBITBLT\" }, // 2.3.1.2\n\t0x0B41: { n: \"META_DIBSTRETCHBLT\" }, // 2.3.1.3\n\n\t0x0A32: { n: \"META_EXTTEXTOUT\" }, // 2.3.3.5\n\t0x0325: { n: \"META_POLYLINE\" }, // 2.3.3.14\n\t0x0324: { n: \"META_POLYGON\" }, // 2.3.3.15\n\t0x0538: { n: \"META_POLYPOLYGON\" }, // 2.3.3.16\n\n\t0x02FC: { n: \"META_CREATEBRUSHINDIRECT\" }, // 2.3.4.1\n\t0x02FB: { n: \"META_CREATEFONTINDIRECT\" }, // 2.3.4.2\n\t0x02FA: { n: \"META_CREATEPENINDIRECT\" }, // 2.3.4.5\n\t0x01F0: { n: \"META_DELETEOBJECT\" }, // 2.3.4.7\n\t0x012C: { n: \"META_SELECTCLIPREGION\" }, // 2.3.4.9\n\t0x012D: { n: \"META_SELECTOBJECT\" }, // 2.3.4.10\n\n\t0x0416: { n: \"META_INTERSECTCLIPRECT\" }, // 2.3.5.3\n\t0x0035: { n: \"META_REALIZEPALETTE\" }, // 2.3.5.8\n\t0x0127: { n: \"META_RESTOREDC\" }, // 2.3.5.10\n\t0x001E: { n: \"META_SAVEDC\" }, // 2.3.5.11\n\t0x0102: { n: \"META_SETBKMODE\" }, // 2.3.5.15\n\t0x0103: { n: \"META_SETMAPMODE\" }, // 2.3.5.17\n\t0x0037: { n: \"META_SETPALENTRIES\" }, // 2.3.5.19\n\t0x0106: { n: \"META_SETPOLYFILLMODE\" }, // 2.3.5.20\n\t0x0107: { n: \"META_SETSTRETCHBLTMODE\" }, // 2.3.5.23\n\t0x012E: { n: \"META_SETTEXTALIGN\" }, // 2.3.5.24\n\t0x0209: { n: \"META_SETTEXTCOLOR\" }, // 2.3.5.26\n\t0x020C: { n: \"META_SETWINDOWEXT\" }, // 2.3.5.30\n\t0x020B: { n: \"META_SETWINDOWORG\" }, // 2.3.5.31\n\n\t0xFFFF: { n: \"META_SHEETJS\" }\n};\n\nexport const WMFEscapes: {[key: number]: WMFEscape} = {\n\t0x000F: { n: \"META_ESCAPE_ENHANCED_METAFILE\" }\n};\n\n","/*! wmf.js (C) 2020-present SheetJS LLC -- https://sheetjs.com */\nimport { PreppedBytes, prep_blob } from './util';\nimport { Action, PlaybackDeviceContextState, get_actions_prepped_bytes } from './wmf'\n\nexport const css_color = (clr: number): string => `#${(clr & 0xFF).toString(16).padStart(2, \"0\")}${((clr>>8) & 0xFF).toString(16).padStart(2, \"0\")}${((clr>>16) & 0xFF).toString(16).padStart(2, \"0\")}`\n\nexport const set_ctx_state = (ctx: CanvasRenderingContext2D, state: PlaybackDeviceContextState): void => {\n\tif(!state) return;\n\tlet font = \"\";\n\tif(state.Font) {\n\t\tif(state.Font.Italic) font += \" italic\";\n\t\tif(state.Font.Weight) font += ` ${state.Font.Weight == 700 ? \"bold\" : state.Font.Weight == 400 ? \"\" : state.Font.Weight}`;\n\t\tif(state.Font.Height < 0) font += ` ${-state.Font.Height}px`;\n\t\telse if(state.Font.Height > 0) font += ` ${state.Font.Height}px`;\n\t\tlet name = state.Font.Name || \"\";\n\t\tif(name == \"System\") name = \"Calibri\"; // TODO: default sys font is Segoe UI\n\t\tif(name) font += ` '${name}', sans-serif`;\n\t\tctx.font = font.trim();\n\t}\n};\n\n// TODO: DIB BIT ORDER?\nexport const render_actions_to_context = (out: Action[], ctx: CanvasRenderingContext2D) => {\n\tout.forEach(act => {\n\t\tctx.save();\n\t\tset_ctx_state(ctx, act.s);\n\t\tswitch(act.t) {\n\t\t\tcase \"poly\":\n\t\t\t\tctx.beginPath();\n\t\t\t\tif(act.s.Pen.Color != null) ctx.strokeStyle = css_color(act.s.Pen.Color);\n\t\t\t\tif(act.s.Pen.Width > 0) ctx.lineWidth = act.s.Pen.Width;\n\t\t\t\tif(act.s.Brush.Color != null) ctx.fillStyle = css_color(act.s.Brush.Color);\n\t\t\t\tctx.moveTo(act.p[0][0], act.p[0][1]);\n\t\t\t\tact.p.slice(1).forEach(([x,y]) => {\n\t\t\t\t\tctx.lineTo(x, y);\n\t\t\t\t});\n\t\t\t\tif(act.g) ctx.closePath();\n\t\t\t\tif(act.s.Pen.Style != 5) ctx.stroke();\n\t\t\t\tif(act.s.Brush.Style != 1) ctx.fill();\n\t\t\t\tbreak;\n\t\t\tcase \"text\":\n\t\t\t\tif(act.s && act.s.TextColor) ctx.fillStyle = css_color(act.s.TextColor);\n\t\t\t\tif(act.s.Font.Angle != 0) {\n\t\t\t\t\tctx.translate(act.p[0], act.p[1]);\n\t\t\t\t\tctx.rotate(-act.s.Font.Angle * Math.PI / 180);\n\t\t\t\t\tctx.fillText(act.v, 0, 0);\n\t\t\t\t\tctx.translate(-act.p[0], -act.p[1]);\n\t\t\t\t}\n\t\t\t\telse ctx.fillText(act.v, act.p[0], act.p[1]);\n\t\t\t\tbreak;\n\t\t\tcase \"cpy\": {\n\t\t\t\t// TODO: base on ROP\n\t\t\t\tconst idata = ctx.getImageData(act.src[0][0], act.src[1][0], act.src[0][1], act.src[1][1]);\n\t\t\t\tctx.putImageData(idata, act.dst[0], act.dst[1]);\n\t\t\t} break;\n\t\t\tcase \"str\": {\n\t\t\t\tif(act.data && act.data.BitCount == 24 && act.data.ImageData) {\n\t\t\t\t\tconst _o = new Uint8ClampedArray(act.data.Width * act.data.Height * 4);\n\t\t\t\t\tfor(let i = 0; i < act.data.Width * act.data.Height; ++i) {\n\t\t\t\t\t\tconst j = (i % act.data.Width) + act.data.Width * (act.data.Height - 1 - Math.floor(i / act.data.Width));\n\t\t\t\t\t\t_o[4*i] = act.data.ImageData[3*j+2];\n\t\t\t\t\t\t_o[4*i+1] = act.data.ImageData[3*j+1];\n\t\t\t\t\t\t_o[4*i+2] = act.data.ImageData[3*j];\n\t\t\t\t\t\t_o[4*i+3] = 255;\n\t\t\t\t\t}\n\t\t\t\t\tconst idata = new ImageData(_o, act.data.Width, act.data.Height);\n\t\t\t\t\tctx.putImageData(idata, act.dst[0][0], act.dst[1][0]);\n\t\t\t\t}\n\t\t\t\t// TODO: ROP et al\n\t\t\t}\n\t\t}\n\t\tctx.restore();\n\t});\n}\n\nexport const render_canvas = (out: Action[], image: HTMLCanvasElement): void => {\n\tlet ctx: CanvasRenderingContext2D;\n\n\t/* find first action with window info */\n\tout.forEach(act => {\n\t\tif(ctx) return;\n\t\tif(!act.s) return;\n\t\tif(!act.s.Extent || !act.s.Origin) return;\n\t\timage.width = act.s.Extent[0] - act.s.Origin[0];\n\t\timage.height = act.s.Extent[1] - act.s.Origin[1];\n\t\tctx = image.getContext('2d');\n\t\tctx.save();\n\t\tctx.fillStyle = 'rgb(255,255,255)';\n\t\tctx.fillRect(0, 0, act.s.Extent[0] - act.s.Origin[0], act.s.Extent[1] - act.s.Origin[1])\n\t\tctx.restore();\n\t});\n\n\tif(!ctx) ctx = image.getContext('2d');\n\trender_actions_to_context(out, ctx);\n}\n\nexport const draw_canvas = (data: Buffer | Uint8Array | ArrayBuffer, image: HTMLCanvasElement): void => {\n\tif(data instanceof ArrayBuffer) return draw_canvas(new Uint8Array(data), image);\n\tprep_blob((data as any), 0);\n\tconst out: Action[] = get_actions_prepped_bytes(data as PreppedBytes);\n\treturn render_canvas(out, image);\n};\n","/*! wmf.js (C) 2020-present SheetJS LLC -- https://sheetjs.com */\nimport { PreppedBytes, prep_blob } from './util';\nimport { Action, get_actions_prepped_bytes, image_size_prepped_bytes } from './wmf'\n\nexport { draw_canvas, render_canvas } from './canvas';\n\nexport const get_actions = (data: Buffer | Uint8Array | ArrayBuffer): Action[] => {\n\tif(data instanceof ArrayBuffer) return get_actions(new Uint8Array(data));\n\tprep_blob((data as any), 0);\n\treturn get_actions_prepped_bytes(data as PreppedBytes);\n}\n\nexport const image_size = (data: Buffer | Uint8Array | ArrayBuffer): [number, number] => {\n\tif(data instanceof ArrayBuffer) return image_size(new Uint8Array(data));\n\tprep_blob((data as any), 0);\n\treturn image_size_prepped_bytes(data as PreppedBytes);\n}\n","/*! wmf.js (C) 2020-present SheetJS LLC -- https://sheetjs.com */\nexport type RawBytes = Buffer | number[];\n\nexport type PreppedBytes = RawBytes & {\n l: number;\n read_shift(size: 1): number;\n read_shift(size: 2): number;\n read_shift(size: 2, t: \"i\"): number;\n read_shift(size: 4): number;\n read_shift(size: 4, t: \"i\"): number;\n read_shift(size: 8, t: \"f\"): number;\n read_shift(size: number, t: \"cstr\"): string;\n read_shift(size: number, t: \"cpstr\"): string;\n read_shift(size: number, t: \"_wstr\"): string;\n read_shift(size: number, t?: string): number|string;\n chk(hexstr: string, fld: string): void;\n write_shift(t: number, val: string|number, f?: string): void;\n};\n\n// ---\n\nconst has_buf = !!(typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && process.versions.node);\n\nlet Buffer_from: typeof Buffer.from;\n\nif(typeof Buffer !== 'undefined') {\n let nbfs = !Buffer.from;\n\tif(!nbfs) try {\n Buffer.from(\"foo\", \"utf8\");\n } catch(e) { nbfs = true; }\n\tBuffer_from = nbfs ? ((buf, enc?: string): Buffer => (enc) ? new Buffer(buf, (enc as BufferEncoding)) : new Buffer(buf)) : Buffer.from.bind(Buffer);\n\tif(!Buffer.alloc) Buffer.alloc = function(n: number): Buffer { return new Buffer(n); };\n\tif(!Buffer.allocUnsafe) Buffer.allocUnsafe = function(n: number): Buffer { return new Buffer(n); };\n}\n\nexport { Buffer_from, has_buf };\n\nexport const new_raw_buf = (len: number): Buffer|number[] => has_buf ? Buffer.alloc(len) : new Array(len);\n\nexport const new_unsafe_buf = (len: number): Buffer|number[] => has_buf ? Buffer.allocUnsafe(len) : new Array(len);\n\nexport const _chr = (c: number): string => String.fromCharCode(c);\n\nexport const chr0 = /\\u0000/g; // eslint-disable-line no-control-regex\nexport const chr1 = /[\\u0001-\\u0006]/g; // eslint-disable-line no-control-regex\n\n// ---\n\nconst read_double_le = (b: RawBytes, idx: number): number => {\n\tconst s = 1 - 2 * (b[idx + 7] >>> 7);\n\tlet e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tlet m = (b[idx+6]&0x0f);\n\tfor(let i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n};\n\nconst write_double_le = (b: RawBytes, v: number, idx: number): void => {\n\tconst bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7);\n\tlet e = 0, m = 0;\n\tconst av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(let i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n};\n\nlet __toBuffer = (bufs/*:Array<Array<RawBytes> >*/): RawBytes => {\n\tconst x: number[] =[];\n\tfor(let i=0; i<bufs[0].length; ++i) if(bufs[0][i])\n\t\tfor(let j=0, L=bufs[0][i].length; j<L; j+=10240) x.push(...bufs[0][i].slice(j,j+10240));\n\treturn x;\n};\nconst ___toBuffer = __toBuffer;\n\nconst __readUInt8 = (b: RawBytes, idx: number): number => b[idx];\nconst __readUInt16LE = (b: RawBytes, idx: number): number => (b[idx+1]*(1<<8))+b[idx];\nconst __readInt16LE = (b: RawBytes, idx: number): number => { const u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nconst __readUInt32LE = (b: RawBytes, idx: number): number => b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx];\nconst __readInt32LE = (b: RawBytes, idx: number): number => (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx];\nconst __readInt32BE = (b: RawBytes, idx: number): number => (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3];\n\nlet __utf16le = (b: RawBytes, s: number, e: number): string => {\n\tconst ss: string[] = [];\n\tfor(let i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i)));\n\treturn ss.join(\"\").replace(chr0,'');\n};\nconst ___utf16le = __utf16le;\nlet __hexlify = function(b/*:RawBytes|CFBlob*/,s: number,l: number): string { const ss: string[] = []; for(let i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nconst ___hexlify = __hexlify;\nlet __utf8 = function(b/*:RawBytes|CFBlob*/,s: number,e: number): string { const ss=[]; for(let i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nconst ___utf8 = __utf8;\nlet __lpstr = function(b/*:RawBytes|CFBlob*/,i: number): string { const len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nconst ___lpstr = __lpstr;\nlet __cpstr = function(b/*:RawBytes|CFBlob*/,i: number): string { const len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nconst ___cpstr = __cpstr;\nlet __lpwstr = function(b/*:RawBytes|CFBlob*/,i: number): string { const len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nconst ___lpwstr = __lpwstr;\nlet __lpp4, ___lpp4;\n__lpp4 = ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i: number): string { const len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nconst ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i: number): string { const len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nlet __8lpp4 = ___8lpp4;\nconst ___double = (b/*:RawBytes|CFBlob*/, idx: number): number => read_double_le(b, idx);\nlet __double = ___double;\n\nif(has_buf) {\n\t__utf16le = (b/*:RawBytes|CFBlob*/,s: number,e: number): string => (!Buffer.isBuffer(b)) ? ___utf16le(b,s,e) : b.toString('utf16le',s,e).replace(chr0,'');\n\t__hexlify = (b/*:RawBytes|CFBlob*/,s: number,l: number): string => Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l);\n\t__lpstr = (b/*:RawBytes|CFBlob*/, i: number): string => { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); const len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = (b/*:RawBytes|CFBlob*/, i: number): string => { if(!Buffer.isBuffer(b)) return ___cpstr(b, i); const len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = (b/*:RawBytes|CFBlob*/, i: number): string => { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); const len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = (b/*:RawBytes|CFBlob*/, i: number): string => { if(!Buffer.isBuffer(b)) return ___lpp4(b, i); const len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = (b/*:RawBytes|CFBlob*/, i: number): string => { if(!Buffer.isBuffer(b)) return ___8lpp4(b, i); const len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__utf8 = (b/*:RawBytes|CFBlob*/, s: number, e: number): string => (Buffer.isBuffer(b)) ? b.toString('utf8',s,e) : ___utf8(b,s,e);\n\t__toBuffer = (bufs): RawBytes => (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);\n\t__double = (b/*:RawBytes|CFBlob*/, i: number): number => (Buffer.isBuffer(b)) ? b.readDoubleLE(i) : ___double(b,i);\n}\n\nfunction ReadShift(size: 1): number;\nfunction ReadShift(size: 2): number;\nfunction ReadShift(size: 2, t: \"i\"): number;\nfunction ReadShift(size: 4): number;\nfunction ReadShift(size: 4, t: \"i\"): number;\nfunction ReadShift(size: 8, t: \"f\"): number;\nfunction ReadShift(size: number, t: \"cstr\"): string;\nfunction ReadShift(size: number, t: \"cpstr\"): string;\nfunction ReadShift(size: number, t: \"_wstr\"): string;\nfunction ReadShift(size: number, t?: string): number|string {\n\tlet o=\"\", oI = 0, oR, w, vv, i, loc;\n\tconst oo = [];\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\treturn ReadShift.call(this, size, 'dbcs');\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(String.fromCharCode(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(String.fromCharCode(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(String.fromCharCode(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(String.fromCharCode(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nconst __writeUInt32LE = (b/*:RawBytes|CFBlob*/, val: number, idx: number): void => { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nconst __writeInt32LE = (b/*:RawBytes|CFBlob*/, val: number, idx: number): void => { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nconst __writeUInt16LE = (b/*:RawBytes|CFBlob*/, val: number, idx: number): void => { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t: number, val: string|number, f?: string): void {\n\tlet size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\tif(typeof val !== 'string') throw new Error(\"expected string\");\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs') {\n\t\t{\n\t\t\tval = (val as string).replace(/[^\\x00-\\x7F]/g, \"_\"); // eslint-disable-line no-control-regex\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t}\n\t\tsize = val.length;\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\tthis[this.l++] = (parseInt((val as string).slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tconst end: number = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min((val as string).length, t); ++i) {\n\t\t\t\tconst cc = (val as string).charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else if(typeof val === 'number') switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr: string, fld: string): void {\n\tconst m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nconst prep_blob = (blob: PreppedBytes, pos: number): void => {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n};\n\nconst new_buf = (sz: number): PreppedBytes => {\n\tconst o = (new_raw_buf(sz) as PreppedBytes);\n\tprep_blob(o, 0);\n\treturn o;\n};\n\nexport { ReadShift, WriteShift, CheckField, prep_blob, new_buf, __utf16le };\n\n// ---\n\nconst __bconcat = function(bufs/*:Array<RawBytes>*/): Buffer | Uint8Array | number[] {\n let is_all_arrays = true;\n for(let w = 0; w < bufs.length; ++w) if(!Array.isArray(bufs[w])) is_all_arrays = false;\n\tif(is_all_arrays) return [].concat(...bufs);\n\tlet maxlen = 0, i = 0;\n\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\tconst o = new Uint8Array(maxlen);\n\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += bufs[i].length, ++i) o.set(bufs[i], maxlen);\n\treturn o;\n};\nlet bconcat = __bconcat;\n\nif(has_buf) bconcat = (bufs): Buffer | Uint8Array | number[] => Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat(...bufs);\n\nexport { bconcat };\n","/*! wmf.js (C) 2020-present SheetJS LLC -- https://sheetjs.com */\nimport { PreppedBytes, RawBytes, bconcat, prep_blob } from './util';\nimport { WMFRecords, WMFEscapes } from './Records';\n\nexport interface Brush {\n\t/** Style (MS-WMF 2.1.1.4) */\n\tStyle?: Number;\n\t/** Brush color RGB */\n\tColor?: number;\n\t/** Hatch Type (2.1.1.12 if brush is hatched) */\n\tHatch?: number;\n}\n\nexport interface Pen {\n\tStyle?: number;\n\tWidth?: number;\n\tColor?: number;\n}\n\nexport interface Font {\n\tName?: string;\n\tHeight?: number;\n\tItalic?: boolean;\n\tWeight?: number;\n\tAngle?: number;\n}\n\nexport interface PlaybackDeviceContextState {\n\t/** Mapping mode (MS-WMF 2.1.1.16) */\n\tMapMode?: number;\n\t/** Output window origin (X, Y) */\n\tOrigin?: [number, number];\n\t/** Output window extents (X, Y) */\n\tExtent?: [number, number];\n\t/** Background Mix Mode (MS-WMF 2.1.1.20) */\n\tBkMode?: number;\n\t/** Polygon fill mode (MS-WMF 2.1.1.25) */\n\tPolyFillMode?: number;\n\t/** Bitmap stretching mode (MS-WMF 2.1.1.30) */\n\tStretchMode?: number;\n\t/** Text alignment mode (MS-WMF 2.1.2.3 / 2.1.2.4) */\n\tTextAlignmentMode?: number;\n\t/** Text foreground color RGB */\n\tTextColor?: number;\n\t/** Brush */\n\tBrush?: Brush;\n\t/** Font */\n\tFont?: Font;\n\t/** Pen */\n\tPen?: Pen;\n\t/** Clipping Region (x,y) LT (x,y) RB */\n\tClipRect?: [[number, number], [number, number]];\n}\n\n/** [x, y] */\nexport type Point = [ number, number ];\n\nexport interface ActionCommon {\n\t/** State */\n\ts?: PlaybackDeviceContextState;\n}\n\n/** Draw Text */\nexport interface ActionText extends ActionCommon {\n\t/** Action Type */\n\tt: \"text\";\n\n\t/** Text */\n\tv: string;\n\n\t/** Origin */\n\tp?: Point;\n}\n\n/** Draw Polygon (shape with stroke/fill) / Polyline (stroke only) */\nexport interface ActionPoly extends ActionCommon {\n\t/** Action Type */\n\tt: \"poly\";\n\n\t/** Points */\n\tp: Point[];\n\n\t/** Polygon (true) or Polyline (false) */\n\tg: boolean;\n}\n\nexport interface ActionRaster {\n\t/** Raster Operaton 2.1.1.31 */\n\trop?: number;\n}\n\nexport interface ActionCpy extends ActionCommon, ActionRaster {\n\tt: \"cpy\";\n\n\t/** Source [[X, W], [Y, H]] */\n\tsrc: [[number, number], [number, number]];\n\n\tdst: Point;\n\n\tdata?: any;\n}\n\nexport interface ActionStr extends ActionCommon, ActionRaster {\n\tt: \"str\";\n\n\t/** Source [[X, W], [Y, H]] */\n\tsrc: [[number, number], [number, number]];\n\n\t/** Dest [[X, W], [Y, H]] */\n\tdst: [[number, number], [number, number]];\n\n\tdata?: any;\n}\n\nexport type Action = ActionText | ActionPoly | ActionCpy | ActionStr;\n\nconst parse_emf = (data: PreppedBytes): void => {\n\t//try { require(\"fs\").writeFileSync(\"out.emf\", data); } catch(e) {}\n}\n\n/* 2.2.2.9 */\nconst parse_dib = (data: PreppedBytes) => {\n\tif(data.length == 0) return null;\n\tprep_blob(data, 0);\n\n\t/* DIBHeaderInfo */\n\tconst HeaderSize = data.read_shift(4);\n\tlet Width = 0, Height = 0, Planes = 0, BitCount = 0;\n\tlet Compression = 0, ImageSize = 0, XPelsPerMeter = 0, YPelsPerMeter = 0, ColorUsed = 0, ColorImportant = 0;\n\tif(HeaderSize == 0x0C) {\n\t\tWidth = data.read_shift(2);\n\t\tHeight = data.read_shift(2);\n\t} else {\n\t\tWidth = data.read_shift(4, 'i');\n\t\tHeight = data.read_shift(4, 'i');\n\t}\n\tPlanes = data.read_shift(2);\n\tBitCount = data.read_shift(2);\n\n\tconst out: object = {\n\t\tWidth,\n\t\tHeight,\n\t\tBitCount,\n\t};\n\n\tif(HeaderSize != 0x0C) {\n\t\tCompression = data.read_shift(4);\n\t\tImageSize = data.read_shift(4);\n\t\tXPelsPerMeter = data.read_shift(4, 'i');\n\t\tYPelsPerMeter = data.read_shift(4, 'i');\n\t\tColorUsed = data.read_shift(4);\n\t\tColorImportant = data.read_shift(4);\n\t\tout[\"Compression\"] = Compression;\n\t\tif(BitCount == 24 && ImageSize > Height * 3 * Width) Width = out[\"Width\"] = ImageSize / (Height * 3);\n\t}\n\n\t/* Colors */\n\t/* BitmapBuffer */\n\tif(ImageSize == data.length - data.l) {\n\t\tout[\"ImageData\"] = data.slice(data.l, data.length);\n\t\tprep_blob(out[\"ImageData\"], 0);\n\t}\n\treturn out;\n}\n\nconst add_to_objects = (objects: PlaybackDeviceContextState[], obj: PlaybackDeviceContextState): void => {\n\tfor(var i = 0; i < objects.length; ++i) if(!objects[i]) { objects[i] = obj; return }\n\tobjects.push(obj);\n}\n\nexport const get_actions_prepped_bytes = (data: PreppedBytes): Action[] => {\n\tconst out: Action[] = [];\n\n\t/* 2.3.2.2 META_HEADER */\n\t// Type (2 bytes) must be 1 or 2\n\tlet h = data.read_shift(2);\n\tif(h != 1 && h != 2) throw `Header: Type ${h} must be 1 or 2`;\n\n\t// HeaderSize expected to be 9\n\tif((h = data.read_shift(2)) != 9) throw `Header: HeaderSize ${h} must be 9`;\n\n\t// Version (2 bytes) 1 or 3\n\th = data.read_shift(2);\n\tif(h != 0x0100 && h != 0x0300) throw `Header: Version ${h} must be 0x0100 or 0x0300`;\n\n\t// SizeLow / SizeHigh\n\tdata.l += 4;\n\n\t// #Objects\n\tconst NumberOfObjects = data.read_shift(2);\n\tlet objects: PlaybackDeviceContextState[] = Array.from({length: NumberOfObjects}, () => null);\n\n\t// MaxRecord\n\tdata.l += 4;\n\n\t// NumberOfMembers\n\tdata.l += 2;\n\n\tlet rt = 0;\n\n\t/* used for EMF */\n\tlet escapecnt = 0;\n\tlet CommentRecordCount = 0;\n\tlet RemainingBytes = 0;\n\tlet EnhancedMetafileDataSize = 0;\n\tlet bufs: RawBytes[] = [];\n\n\tlet states: PlaybackDeviceContextState[] = [];\n\tlet state: PlaybackDeviceContextState = {};\n\tlet sidx = -1;\n\n\twhile(data.l < data.length) {\n\t\th = data.read_shift(4);\n\t\tconst end = data.l + h*2 - 4;\n\n\t\trt = data.read_shift(2);\n\t\tlet Record = WMFRecords[rt];\n\t\tif(rt == 0x0000) break; // META_EOF\n\t\tswitch(rt) {\n\t\t\tcase 0x0626: { // META_ESCAPE\n\t\t\t\tconst EscapeFunction = data.read_shift(2);\n\t\t\t\tconst Escape = WMFEscapes[EscapeFunction];\n\t\t\t\t/* 2.3.6 */\n\t\t\t\tswitch(EscapeFunction) {\n\t\t\t\t\tcase 0x000F: { // META_ESCAPE_ENHANCED_METAFILE\n\t\t\t\t\t\tconst ByteCount = data.read_shift(2);\n\t\t\t\t\t\tlet tmp = data.read_shift(4);\n\t\t\t\t\t\tif(tmp != 0x43464D57) throw `Escape: Comment ID 0x${tmp.toString(16)} != 0x43464D57`;\n\t\t\t\t\t\ttmp = data.read_shift(4);\n\t\t\t\t\t\tif(tmp != 0x00000001) throw `Escape: Comment Type 0x${tmp.toString(16)} != 0x00000001`;\n\t\t\t\t\t\ttmp = data.read_shift(4);\n\t\t\t\t\t\tif(tmp != 0x00010000) throw `Escape: Version 0x${tmp.toString(16)} != 0x00010000`;\n\n\t\t\t\t\t\tconst Checksum = data.read_shift(2);\n\n\t\t\t\t\t\tdata.l += 4; // Flags\n\t\t\t\t\t\tif(escapecnt == 0) {\n\t\t\t\t\t\t\tCommentRecordCount = data.read_shift(4); // total number of records\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst _CommentRecordCount = data.read_shift(4);\n\t\t\t\t\t\t\tif(_CommentRecordCount != CommentRecordCount) throw `Escape: CommentRecordCount ${_CommentRecordCount} != ${CommentRecordCount}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst CurrentRecordSize = data.read_shift(4); // size of this record\n\t\t\t\t\t\tconst _RemainingBytes = data.read_shift(4);\n\t\t\t\t\t\tif(escapecnt > 0 && CurrentRecordSize + _RemainingBytes != RemainingBytes) throw `Escape: ${RemainingBytes} != ${CurrentRecordSize} + ${_RemainingBytes}`;\n\t\t\t\t\t\tRemainingBytes = _RemainingBytes;\n\t\t\t\t\t\tconst _EnhancedMetafileDataSize = data.read_shift(4);\n\t\t\t\t\t\tif(escapecnt == 0) {\n\t\t\t\t\t\t\tif(_EnhancedMetafileDataSize != CurrentRecordSize + _RemainingBytes) throw `Escape: ${_EnhancedMetafileDataSize} != ${CurrentRecordSize} + ${_RemainingBytes}`;\n\t\t\t\t\t\t\tEnhancedMetafileDataSize = _EnhancedMetafileDataSize;\n\t\t\t\t\t\t} else if(EnhancedMetafileDataSize != _EnhancedMetafileDataSize) throw `Escape: ${EnhancedMetafileDataSize} != ${_EnhancedMetafileDataSize}`;\n\n\t\t\t\t\t\tif(ByteCount != (end - data.l) + 34) throw `Escape: Sizes ${ByteCount} != ${end - data.l} + 34`\n\t\t\t\t\t\tif(end - data.l != CurrentRecordSize) throw `Escape: CRSize ${CurrentRecordSize} != ${end - data.l}`;\n\t\t\t\t\t\tbufs.push(data.slice(data.l, end));\n\t\t\t\t\t\t++escapecnt;\n\t\t\t\t\t\tif(escapecnt == CommentRecordCount) {\n\t\t\t\t\t\t\tconst prepped: PreppedBytes = bconcat(bufs) as PreppedBytes;\n\t\t\t\t\t\t\tprep_blob(prepped, 0);\n\t\t\t\t\t\t\tparse_emf(prepped);\n\t\t\t\t\t\t}\n\t\t\t\t\t} break;\n\t\t\t\t\tdefault: throw `Escape: Unrecognized META_ESCAPE Type 0x${EscapeFunction.toString(16)}`;\n\t\t\t\t}\n\t\t\t} break;\n\n\t\t\t// #region 2.3.1 Bitmap Record Types\n\n\t\t\tcase 0x0940: { // 2.3.1.2 META_DIBBITBLT\n\t\t\t\tconst has_bitmap = h != (rt>>8)+3;\n\t\t\t\tconst RasterOperation = data.read_shift(4);\n\t\t\t\tconst YSrc = data.read_shift(2, \"i\");\n\t\t\t\tconst XSrc = data.read_shift(2, \"i\");\n\t\t\t\tif(!has_bitmap) data.l += 2;\n\t\t\t\tconst Height = data.read_shift(2, \"i\");\n\t\t\t\tconst Width = data.read_shift(2, \"i\");\n\t\t\t\tconst YDest = data.read_shift(2, \"i\");\n\t\t\t\tconst XDest = data.read_shift(2, \"i\");\n\t\t\t\tconst res: ActionCpy = {\n\t\t\t\t\tt: \"cpy\",\n\t\t\t\t\tsrc: [[XSrc, Width], [YSrc, Height]],\n\t\t\t\t\tdst: [XDest, YDest],\n\t\t\t\t\trop: RasterOperation,\n\t\t\t\t\ts: Object.assign({}, state)\n\t\t\t\t};\n\t\t\t\tif(has_bitmap) {\n\t\t\t\t\tconst DIB = parse_dib(data.slice(data.l, end) as PreppedBytes);\n\t\t\t\t\tres.data = DIB;\n\t\t\t\t}\n\t\t\t\tout.push(res);\n\t\t\t} break;\n\n\t\t\tcase 0x0B41: { // 2.3.1.3 META_DIBSTRETCHBLT\n\t\t\t\tconst has_bitmap = h != (rt>>8)+3;\n\t\t\t\tconst RasterOperation = data.read_shift(4);\n\t\t\t\tconst SrcHeight = data.read_shift(2, \"i\");\n\t\t\t\tconst SrcWidth = data.read_shift(2, \"i\");\n\t\t\t\tconst YSrc = data.read_shift(2, \"i\");\n\t\t\t\tconst XSrc = data.read_shift(2, \"i\");\n\t\t\t\tif(!has_bitmap) data.l += 2;\n\t\t\t\tconst DestHeight = data.read_shift(2, \"i\");\n\t\t\t\tconst DestWidth = data.read_shift(2, \"i\");\n\t\t\t\tconst YDest = data.read_shift(2, \"i\");\n\t\t\t\tconst XDest = data.read_shift(2, \"i\");\n\t\t\t\tconst res: ActionStr = {\n\t\t\t\t\tt: \"str\",\n\t\t\t\t\tsrc: [[XSrc, SrcWidth], [YSrc, SrcHeight]],\n\t\t\t\t\tdst: [[XDest, DestWidth], [YDest, DestHeight]],\n\t\t\t\t\trop: RasterOperation,\n\t\t\t\t\ts: Object.assign({}, state)\n\t\t\t\t};\n\t\t\t\tif(has_bitmap) {\n\t\t\t\t\tconst DIB = parse_dib(data.slice(data.l, end) as PreppedBytes);\n\t\t\t\t\tres.data = DIB;\n\t\t\t\t}\n\t\t\t\tout.push(res);\n\t\t\t} break;\n\n\t\t\t// #endregion\n\n\t\t\t// #region 2.3.3 Drawing Record Types\n\n\t\t\tcase 0x0A32: { // 2.3.3.5 META_EXTTEXTOUT\n\t\t\t\tconst Y = data.read_shift(2);\n\t\t\t\tconst X = data.read_shift(2);\n\t\t\t\tconst StringLength = data.read_shift(2);\n\t\t\t\tconst fwOpts = data.read_shift(2); // 2.1.2.2\n\t\t\t\tif(fwOpts & 0x06) {\n\t\t\t\t\tdata.l += 8; // Rectangle 2.2.2.18 (for clipping/opaquing)\n\t\t\t\t}\n\t\t\t\tconst str = data.read_shift(StringLength, 'cpstr');\n\t\t\t\tif(data.l < end){/* TODO: Dx */}\n\t\t\t\tout.push({t: \"text\", v: str, p: [X, Y], s: Object.assign({}, state)});\n\t\t\t\t/* TODO!! */\n\t\t\t} break;\n\n\t\t\tcase 0x0325: // 2.3.3.14 META_POLYLINE\n\t\t\tcase 0x0324: // 2.3.3.15 META_POLYGON\n\t\t\t{\n\t\t\t\tconst nPoints = data.read_shift(2);\n\t\t\t\tconst points: Array<Point> = [];\n\t\t\t\tfor(let i = 0; i < nPoints; ++i) points.push([data.read_shift(2), data.read_shift(2)])\n\t\t\t\tout.push({t: \"poly\", p: points, g: rt !== 0x0325, s: Object.assign({}, state)});\n\t\t\t} break;\n\n\t\t\tcase 0x0538: { // 2.3.3.16 META_POLYPOLYGON\n\t\t\t\tconst nPolygons = data.read_shift(2);\n\t\t\t\tconst polys: Array<Array<Point> > = [];\n\t\t\t\tconst szs: number[] = [];\n\t\t\t\t/* 2.2.2.17 PolyPolygon */\n\t\t\t\tfor(let i = 0; i < nPolygons; ++i) szs[i] = data.read_shift(2);\n\t\t\t\tfor(let i = 0; i < szs.length; ++i) {\n\t\t\t\t\tpolys[i] = [];\n\t\t\t\t\tfor(let j = 0; j < szs[i]; ++j) polys[i].push([data.read_shift(2), data.read_shift(2)])\n\t\t\t\t\tout.push({t: \"poly\", p: polys[i], g: true, s: Object.assign({}, state)});\n\t\t\t\t}\n\t\t\t} break;\n\n\t\t\t// #endregion\n\n\t\t\t// #region 2.3.4 Object Record Types\n\n\t\t\tcase 0x02FC: { // 2.3.4.1 META_CREATEBRUSHINDIRECT\n\t\t\t\tconst obj: PlaybackDeviceContextState = {};\n\t\t\t\tobj.Brush = {\n\t\t\t\t\tStyle: data.read_shift(2),\n\t\t\t\t\tColor: data.read_shift(4),\n\t\t\t\t\tHatch: data.read_shift(2)\n\t\t\t\t};\n\t\t\t\tadd_to_objects(objects, obj);\n\t\t\t} break;\n\n\t\t\tcase 0x02FB: { // 2.3.4.2 META_CREATEFONTINDIRECT\n\t\t\t\tconst obj: PlaybackDeviceContextState = {};\n\t\t\t\tobj.Font = {};\n\t\t\t\t/* 2.2.1.2 Font TODO!! */\n\t\t\t\tconst Height = data.read_shift(2, \"i\");\n\t\t\t\tconst Width = data.read_shift(2, \"i\");\n\t\t\t\tconst Escapement = data.read_shift(2, \"i\");\n\t\t\t\tconst Orientation = data.read_shift(2, \"i\");\n\t\t\t\tconst Weight = data.read_shift(2, \"i\");\n\t\t\t\tconst Italic = !!data.read_shift(1);\n\t\t\t\tconst Underline = !!data.read_shift(1);\n\t\t\t\tconst StrikeOut = !!data.read_shift(1);\n\t\t\t\tconst CharSet = data.read_shift(1);\n\t\t\t\tconst OutPrecision = data.read_shift(1);\n\t\t\t\tconst ClipPrecision = data.read_shift(1);\n\t\t\t\tconst Quality = data.read_shift(1);\n\t\t\t\tconst PitchAndFamily = data.read_shift(1);\n\t\t\t\tconst Facename = data.read_shift(32, \"cstr\");\n\t\t\t\tobj.Font.Name = Facename;\n\t\t\t\tobj.Font.Height = Height;\n\t\t\t\tobj.Font.Weight = Weight;\n\t\t\t\tobj.Font.Italic = Italic;\n\t\t\t\tobj.Font.Angle = Escapement / 10;\n\t\t\t\tadd_to_objects(objects, obj);\n\t\t\t} break;\n\n\t\t\tcase 0x02FA: { // 2.3.4.5 META_CREATEPENINDIRECT\n\t\t\t\tconst obj: PlaybackDeviceContextState = {};\n\t\t\t\tobj.Pen = {\n\t\t\t\t\tStyle: data.read_shift(2),\n\t\t\t\t\tWidth: data.read_shift(4) & 0xFF,\n\t\t\t\t\tColor: data.read_shift(4)\n\t\t\t\t};\n\t\t\t\tadd_to_objects(objects, obj);\n\t\t\t} break;\n\n\t\t\tcase 0x01F0: { // 2.3.4.7 META_DELETEOBJECT\n\t\t\t\tconst ObjectIndex = data.read_shift(2);\n\t\t\t\tobjects[ObjectIndex] = null;\n\t\t\t} break;\n\n\t\t\tcase 0x012C: { // 2.3.4.9 META_SELECTCLIPREGION\n\t\t\t\tconst Region = data.read_shift(2);\n\t\t\t\t//Object.assign(state, objects[Region]);\n\t\t\t} break;\n\n\t\t\tcase 0x012D: { // 2.3.4.10 META_SELECTOBJECT\n\t\t\t\tconst ObjectIndex = data.read_shift(2);\n\t\t\t\tObject.assign(state, objects[ObjectIndex]);\n\t\t\t\t// TODO!!\n\t\t\t} break;\n\n\t\t\t// #endregion\n\n\t\t\t// #region 2.3.5 State Record Types\n\n\t\t\tcase 0x0416: // 2.3.5.3 META_INTERSECTCLIPRECT\n\t\t\t\tstate.ClipRect = [[0,0],[0,0]];\n\t\t\t\tstate.ClipRect[1][1] = data.read_shift(2);\n\t\t\t\tstate.ClipRect[1][0] = data.read_shift(2);\n\t\t\t\tstate.ClipRect[0][1] = data.read_shift(2);\n\t\t\t\tstate.ClipRect[0][0] = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0127: { // 2.3.5.10 META_RESTOREDC\n\t\t\t\tconst nSavedDC = data.read_shift(2, 'i');\n\t\t\t\tstate = states[sidx = (nSavedDC >= 0 ? nSavedDC : sidx + nSavedDC)];\n\t\t\t} break;\n\n\t\t\tcase 0x001E: // 2.3.5.11 META_SAVEDC\n\t\t\t\tstates.push(state);\n\t\t\t\tsidx = states.length - 1;\n\t\t\t\tstate = JSON.parse(JSON.stringify(state));\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0102: // 2.3.5.15 META_SETBKMODE\n\t\t\t\tstate.BkMode = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0103: // 2.3.5.17 META_SETMAPMODE\n\t\t\t\tstate.MapMode = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0106: // 2.3.5.20 META_SETPOLYFILLMODE\n\t\t\t\tstate.PolyFillMode = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0107: // 2.3.5.23 META_SETSTRETCHBLTMODE\n\t\t\t\tstate.StretchMode = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x012E: // 2.3.5.24 META_SETTEXTALIGN\n\t\t\t\tstate.TextAlignmentMode = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0209: // 2.3.5.26 META_SETTEXTCOLOR\n\t\t\t\tstate.TextColor = data.read_shift(4);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x020C: // 2.3.5.30 META_SETWINDOWEXT\n\t\t\t\tstate.Extent = [0, 0];\n\t\t\t\tstate.Extent[1] = data.read_shift(2);\n\t\t\t\tstate.Extent[0] = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\tcase 0x020B: // 2.3.5.31 META_SETWINDOWORG\n\t\t\t\tstate.Origin = [0, 0];\n\t\t\t\tstate.Origin[1] = data.read_shift(2);\n\t\t\t\tstate.Origin[0] = data.read_shift(2);\n\t\t\t\tbreak;\n\n\t\t\t// #endregion\n\n\t\t\tdefault:\n\t\t\t\t//if(!Record) throw `Record: Unrecognized type 0x${rt.toString(16)}`;\n\t\t\t\tconsole.log(Record);\n\t\t}\n\t\tdata.l = end;\n\t}\n\tif(rt !== 0) throw `Record: Last Record Type ${rt} is not EOF type`;\n\treturn out;\n}\n\nexport const image_size_prepped_bytes = (data: PreppedBytes): [number, number] => {\n\t/* 2.3.22 META_HEADER */\n\t// Type (2 bytes) must be 1 or 2\n\tlet h = data.read_shift(2);\n\tif(h != 1 && h != 2) throw `Header: Type ${h} must be 1 or 2`;\n\t// HeaderSize expected to be 9\n\tif((h = data.read_shift(2)) != 9) throw `Header: HeaderSize ${h} must be 9`;\n\t// Version (2 bytes) 1 or 3\n\th = data.read_shift(2);\n\tif(h != 0x0100 && h != 0x0300) throw `Header: Version ${h} must be 0x0100 or 0x0300`;\n\tdata.l = 18;\n\n\tlet rt = 0;\n\n\twhile(data.l < data.length) {\n\t\th = data.read_shift(4);\n\t\tconst end = data.l + h*2 - 4;\n\n\t\trt = data.read_shift(2);\n\t\tif(rt == 0x0000) break; // META_EOF\n\t\tif(rt == 0x020C) {// 2.3.5.30 META_SETWINDOWEXT\n\t\t\tconst extents: [number, number] = [NaN, NaN];\n\t\t\textents[1] = data.read_shift(2);\n\t\t\textents[0] = data.read_shift(2);\n\t\t\treturn extents;\n\t\t}\n\t\tdata.l = end;\n\t}\n\n\treturn [NaN, NaN];\n};","/*! wmf.js (C) 2020-present SheetJS LLC -- https://sheetjs.com */\nvar WMF = require(\"../js/\");\nmodule.exports = WMF;\n"],"sourceRoot":""}