quickspeadsheet 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1121 @@
1
+ var M = {};
2
+ M.G = {
3
+ concat: function(E, r) {
4
+ for (var e = 0; e < r.cmds.length; e++) E.cmds.push(r.cmds[e]);
5
+ for (var e = 0; e < r.crds.length; e++) E.crds.push(r.crds[e]);
6
+ },
7
+ getBB: function(E) {
8
+ for (var r = 1e99, e = 1e99, a = -r, T = -e, R = 0; R < E.length; R += 2) {
9
+ var s = E[R], A = E[R + 1];
10
+ s < r ? r = s : s > a && (a = s), A < e ? e = A : A > T && (T = A);
11
+ }
12
+ return [r, e, a, T];
13
+ },
14
+ rectToPath: function(E) {
15
+ return { cmds: ["M", "L", "L", "L", "Z"], crds: [E[0], E[1], E[2], E[1], E[2], E[3], E[0], E[3]] };
16
+ },
17
+ // a inside b
18
+ insideBox: function(E, r) {
19
+ return r[0] <= E[0] && r[1] <= E[1] && E[2] <= r[2] && E[3] <= r[3];
20
+ },
21
+ isBox: function(E, r) {
22
+ var e = function(n, C) {
23
+ for (var h = 0; h < 8; h += 2) {
24
+ for (var O = !0, P = 0; P < 8; P++) if (Math.abs(C[P] - n[P + h & 7]) >= 2) {
25
+ O = !1;
26
+ break;
27
+ }
28
+ if (O) return !0;
29
+ }
30
+ return !1;
31
+ };
32
+ if (E.cmds.length > 10) return !1;
33
+ var a = E.cmds.join(""), T = E.crds, R = !1;
34
+ if (a == "MLLLZ" && T.length == 8 || a == "MLLLLZ" && T.length == 10) {
35
+ T.length == 10 && (T = T.slice(0, 8));
36
+ var s = r[0], A = r[1], S = r[2], v = r[3];
37
+ R || (R = e(T, [s, A, S, A, S, v, s, v])), R || (R = e(T, [s, v, S, v, S, A, s, A]));
38
+ }
39
+ return R;
40
+ },
41
+ boxArea: function(E) {
42
+ var r = E[2] - E[0], e = E[3] - E[1];
43
+ return r * e;
44
+ },
45
+ newPath: function(E) {
46
+ E.pth = { cmds: [], crds: [] };
47
+ },
48
+ moveTo: function(E, r, e) {
49
+ var a = M.M.multPoint(E.ctm, [r, e]);
50
+ E.pth.cmds.push("M"), E.pth.crds.push(a[0], a[1]), E.cpos = a;
51
+ },
52
+ lineTo: function(E, r, e) {
53
+ var a = M.M.multPoint(E.ctm, [r, e]);
54
+ E.cpos[0] == a[0] && E.cpos[1] == a[1] || (E.pth.cmds.push("L"), E.pth.crds.push(a[0], a[1]), E.cpos = a);
55
+ },
56
+ curveTo: function(E, r, e, a, T, R, s) {
57
+ var A;
58
+ A = M.M.multPoint(E.ctm, [r, e]), r = A[0], e = A[1], A = M.M.multPoint(E.ctm, [a, T]), a = A[0], T = A[1], A = M.M.multPoint(E.ctm, [R, s]), R = A[0], s = A[1], E.cpos = A, E.pth.cmds.push("C"), E.pth.crds.push(r, e, a, T, R, s);
59
+ },
60
+ closePath: function(E) {
61
+ E.pth.cmds.push("Z");
62
+ },
63
+ arc: function(E, r, g, a, T, R, s) {
64
+ if (s) for (; R > T; ) R -= 2 * Math.PI;
65
+ else for (; R < T; ) R += 2 * Math.PI;
66
+ var A = (R - T) / 4, S = Math.cos(A / 2), v = -Math.sin(A / 2), n = (4 - S) / 3, C = v == 0 ? v : (1 - S) * (3 - S) / (3 * v), h = n, O = -C, P = S, t = -v, c = [n, C], d = [h, O], D = [P, t], I = { cmds: [E.pth.cmds.length == 0 ? "M" : "L", "C", "C", "C", "C"], crds: [S, v, n, C, h, O, P, t] }, x = [1, 0, 0, 1, 0, 0];
67
+ M.M.rotate(x, -A);
68
+ for (var l = 0; l < 3; l++)
69
+ c = M.M.multPoint(x, c), d = M.M.multPoint(x, d), D = M.M.multPoint(x, D), I.crds.push(c[0], c[1], d[0], d[1], D[0], D[1]);
70
+ var z = [a, 0, 0, a, r, g];
71
+ M.M.rotate(x, -T + A / 2), M.M.concat(x, z), M.M.multArray(x, I.crds), M.M.multArray(E.ctm, I.crds), M.G.concat(E.pth, I);
72
+ var g = I.crds.pop();
73
+ r = I.crds.pop(), E.cpos = [r, g];
74
+ },
75
+ toPoly: function(E) {
76
+ if (E.cmds[0] != "M" || E.cmds[E.cmds.length - 1] != "Z") return null;
77
+ for (var r = 1; r < E.cmds.length - 1; r++) if (E.cmds[r] != "L") return null;
78
+ var e = [], a = E.crds.length;
79
+ E.crds[0] == E.crds[a - 2] && E.crds[1] == E.crds[a - 1] && (a -= 2);
80
+ for (var r = 0; r < a; r += 2) e.push([E.crds[r], E.crds[r + 1]]);
81
+ return M.G.polyArea(E.crds) < 0 && e.reverse(), e;
82
+ },
83
+ fromPoly: function(E) {
84
+ for (var r = { cmds: [], crds: [] }, e = 0; e < E.length; e++)
85
+ r.crds.push(E[e][0], E[e][1]), r.cmds.push(e == 0 ? "M" : "L");
86
+ return r.cmds.push("Z"), r;
87
+ },
88
+ polyArea: function(E) {
89
+ if (E.length < 6) return 0;
90
+ for (var r = E.length - 2, e = (E[0] - E[r]) * (E[r + 1] + E[1]), a = 0; a < r; a += 2)
91
+ e += (E[a + 2] - E[a]) * (E[a + 1] + E[a + 3]);
92
+ return -e * 0.5;
93
+ },
94
+ polyClip: function(E, r) {
95
+ var e, a, T, R, s = function(n) {
96
+ return (a[0] - e[0]) * (n[1] - e[1]) > (a[1] - e[1]) * (n[0] - e[0]);
97
+ }, A = function() {
98
+ var n = [e[0] - a[0], e[1] - a[1]], C = [T[0] - R[0], T[1] - R[1]], h = e[0] * a[1] - e[1] * a[0], O = T[0] * R[1] - T[1] * R[0], P = 1 / (n[0] * C[1] - n[1] * C[0]);
99
+ return [(h * C[0] - O * n[0]) * P, (h * C[1] - O * n[1]) * P];
100
+ }, S = E;
101
+ e = r[r.length - 1];
102
+ for (j in r) {
103
+ var a = r[j], v = S;
104
+ S = [], T = v[v.length - 1];
105
+ for (i in v) {
106
+ var R = v[i];
107
+ s(R) ? (s(T) || S.push(A()), S.push(R)) : s(T) && S.push(A()), T = R;
108
+ }
109
+ e = a;
110
+ }
111
+ return S;
112
+ }
113
+ };
114
+ M.M = {
115
+ getScale: function(E) {
116
+ return Math.sqrt(Math.abs(E[0] * E[3] - E[1] * E[2]));
117
+ },
118
+ translate: function(E, r, e) {
119
+ M.M.concat(E, [1, 0, 0, 1, r, e]);
120
+ },
121
+ rotate: function(E, r) {
122
+ M.M.concat(E, [Math.cos(r), -Math.sin(r), Math.sin(r), Math.cos(r), 0, 0]);
123
+ },
124
+ scale: function(E, r, e) {
125
+ M.M.concat(E, [r, 0, 0, e, 0, 0]);
126
+ },
127
+ concat: function(E, r) {
128
+ var e = E[0], a = E[1], T = E[2], R = E[3], s = E[4], A = E[5];
129
+ E[0] = e * r[0] + a * r[2], E[1] = e * r[1] + a * r[3], E[2] = T * r[0] + R * r[2], E[3] = T * r[1] + R * r[3], E[4] = s * r[0] + A * r[2] + r[4], E[5] = s * r[1] + A * r[3] + r[5];
130
+ },
131
+ invert: function(E) {
132
+ var r = E[0], e = E[1], a = E[2], T = E[3], R = E[4], s = E[5], A = r * T - e * a;
133
+ E[0] = T / A, E[1] = -e / A, E[2] = -a / A, E[3] = r / A, E[4] = (a * s - T * R) / A, E[5] = (e * R - r * s) / A;
134
+ },
135
+ multPoint: function(E, r) {
136
+ var e = r[0], a = r[1];
137
+ return [e * E[0] + a * E[2] + E[4], e * E[1] + a * E[3] + E[5]];
138
+ },
139
+ multArray: function(E, r) {
140
+ for (var e = 0; e < r.length; e += 2) {
141
+ var a = r[e], T = r[e + 1];
142
+ r[e] = a * E[0] + T * E[2] + E[4], r[e + 1] = a * E[1] + T * E[3] + E[5];
143
+ }
144
+ }
145
+ };
146
+ M.C = {
147
+ srgbGamma: function(E) {
148
+ return E < 31308e-7 ? 12.92 * E : 1.055 * Math.pow(E, 1 / 2.4) - 0.055;
149
+ },
150
+ cmykToRgb: function(E) {
151
+ var r = E[0], e = E[1], a = E[2], T = E[3], R = 255 + r * (-4.387332384609988 * r + 54.48615194189176 * e + 18.82290502165302 * a + 212.25662451639585 * T + -285.2331026137004) + e * (1.7149763477362134 * e - 5.6096736904047315 * a + -17.873870861415444 * T - 5.497006427196366) + a * (-2.5217340131683033 * a - 21.248923337353073 * T + 17.5119270841813) + T * (-21.86122147463605 * T - 189.48180835922747), s = 255 + r * (8.841041422036149 * r + 60.118027045597366 * e + 6.871425592049007 * a + 31.159100130055922 * T + -79.2970844816548) + e * (-15.310361306967817 * e + 17.575251261109482 * a + 131.35250912493976 * T - 190.9453302588951) + a * (4.444339102852739 * a + 9.8632861493405 * T - 24.86741582555878) + T * (-20.737325471181034 * T - 187.80453709719578), A = 255 + r * (0.8842522430003296 * r + 8.078677503112928 * e + 30.89978309703729 * a - 0.23883238689178934 * T + -14.183576799673286) + e * (10.49593273432072 * e + 63.02378494754052 * a + 50.606957656360734 * T - 112.23884253719248) + a * (0.03296041114873217 * a + 115.60384449646641 * T + -193.58209356861505) + T * (-22.33816807309886 * T - 180.12613974708367);
152
+ return [Math.max(0, Math.min(1, R / 255)), Math.max(0, Math.min(1, s / 255)), Math.max(0, Math.min(1, A / 255))];
153
+ },
154
+ labToRgb: function(E) {
155
+ for (var r = 903.3, e = 8856e-6, a = E[0], T = E[1], R = E[2], s = (a + 16) / 116, A = s * s * s, S = s - R / 200, v = S * S * S, n = T / 500 + s, C = n * n * n, h = v > e ? v : (116 * S - 16) / r, O = A > e ? A : (116 * s - 16) / r, P = C > e ? C : (116 * n - 16) / r, t = P * 96.72, c = O * 100, d = h * 81.427, D = [t / 100, c / 100, d / 100], I = [3.1338561, -1.6168667, -0.4906146, -0.9787684, 1.9161415, 0.033454, 0.0719453, -0.2289914, 1.4052427], x = [
156
+ I[0] * D[0] + I[1] * D[1] + I[2] * D[2],
157
+ I[3] * D[0] + I[4] * D[1] + I[5] * D[2],
158
+ I[6] * D[0] + I[7] * D[1] + I[8] * D[2]
159
+ ], l = 0; l < 3; l++) x[l] = Math.max(0, Math.min(1, M.C.srgbGamma(x[l])));
160
+ return x;
161
+ }
162
+ };
163
+ M.getState = function(E) {
164
+ return {
165
+ font: M.getFont(),
166
+ dd: { flat: 1 },
167
+ // device-dependent
168
+ space: "/DeviceGray",
169
+ // fill
170
+ ca: 1,
171
+ colr: [0, 0, 0],
172
+ sspace: "/DeviceGray",
173
+ // stroke
174
+ CA: 1,
175
+ COLR: [0, 0, 0],
176
+ bmode: "/Normal",
177
+ SA: !1,
178
+ OPM: 0,
179
+ AIS: !1,
180
+ OP: !1,
181
+ op: !1,
182
+ SMask: "/None",
183
+ lwidth: 1,
184
+ lcap: 0,
185
+ ljoin: 0,
186
+ mlimit: 10,
187
+ SM: 0.1,
188
+ doff: 0,
189
+ dash: [],
190
+ ctm: [1, 0, 0, 1, 0, 0],
191
+ cpos: [0, 0],
192
+ pth: { cmds: [], crds: [] },
193
+ cpth: E ? M.G.rectToPath(E) : null
194
+ // clipping path
195
+ };
196
+ };
197
+ M.getFont = function() {
198
+ return {
199
+ Tc: 0,
200
+ // character spacing
201
+ Tw: 0,
202
+ // word spacing
203
+ Th: 100,
204
+ // horizontal scale
205
+ Tl: 0,
206
+ // leading
207
+ Tf: "Helvetica-Bold",
208
+ Tfs: 1,
209
+ // font size
210
+ Tmode: 0,
211
+ // rendering mode
212
+ Trise: 0,
213
+ // rise
214
+ Tk: 0,
215
+ // knockout
216
+ Tal: 0,
217
+ // align, 0: left, 1: right, 2: center
218
+ Tun: 0,
219
+ // 0: no, 1: underline
220
+ Tm: [1, 0, 0, 1, 0, 0],
221
+ Tlm: [1, 0, 0, 1, 0, 0],
222
+ Trm: [1, 0, 0, 1, 0, 0]
223
+ };
224
+ };
225
+ function X(E, r) {
226
+ this.canvas = document.createElement("canvas"), this.ctx = this.canvas.getContext("2d"), this.bb = null, this.currPage = 0, this.needPage = E, this.scale = r;
227
+ }
228
+ X.prototype.StartPage = function(E, r, e, a) {
229
+ if (this.currPage == this.needPage) {
230
+ var T = E, R = r, s = e, A = a;
231
+ if (s < T) {
232
+ var S = T;
233
+ T = s, s = S;
234
+ }
235
+ if (A < R) {
236
+ var v = R;
237
+ R = A, A = v;
238
+ }
239
+ var n = Math.max(1, s - T), C = Math.max(1, A - R);
240
+ this.bb = [T, R, s, A];
241
+ var h = this.scale, O = this.canvas, P = this.ctx;
242
+ O.width = Math.round(n * h), O.height = Math.round(C * h), P.setTransform(1, 0, 0, 1, 0, 0), P.translate(0, C * h), P.scale(h, -h);
243
+ }
244
+ };
245
+ X.prototype.Fill = function(E, r) {
246
+ if (this.currPage == this.needPage) {
247
+ var e = this.ctx;
248
+ e.beginPath(), this._setStyle(E, e), this._draw(E.pth, e), e.fill();
249
+ }
250
+ };
251
+ X.prototype.Stroke = function(E) {
252
+ if (this.currPage == this.needPage) {
253
+ var r = this.ctx;
254
+ r.beginPath(), this._setStyle(E, r), this._draw(E.pth, r), r.stroke();
255
+ }
256
+ };
257
+ X.prototype.PutText = function(E, r, e) {
258
+ if (this.currPage == this.needPage) {
259
+ this._scale(E.ctm);
260
+ var a = this.ctx;
261
+ this._setStyle(E, a), a.save();
262
+ var T = [1, 0, 0, -1, 0, 0];
263
+ this._concat(T, E.font.Tm), this._concat(T, E.ctm), a.transform(T[0], T[1], T[2], T[3], T[4], T[5]), a.fillText(r, 0, 0), a.restore();
264
+ }
265
+ };
266
+ X.prototype.PutImage = function(E, r, e, a, T) {
267
+ if (this.currPage == this.needPage) {
268
+ var R = this.ctx;
269
+ if (r.length == e * a * 4) {
270
+ if (r = r.slice(0), T && T.length == e * a * 4) for (var s = 0; s < r.length; s += 4) r[s + 3] = T[s + 1];
271
+ var A = document.createElement("canvas"), S = A.getContext("2d");
272
+ A.width = e, A.height = a;
273
+ for (var v = S.createImageData(e, a), n = 0; n < r.length; n++) v.data[n] = r[n];
274
+ S.putImageData(v, 0, 0), R.save();
275
+ var C = [1, 0, 0, 1, 0, 0];
276
+ this._concat(C, [1 / e, 0, 0, -1 / a, 0, 1]), this._concat(C, E.ctm), R.transform(C[0], C[1], C[2], C[3], C[4], C[5]), R.drawImage(A, 0, 0), R.restore();
277
+ }
278
+ }
279
+ };
280
+ X.prototype.ShowPage = function() {
281
+ this.currPage++;
282
+ };
283
+ X.prototype.Done = function() {
284
+ };
285
+ X.prototype._setStyle = function(E, r) {
286
+ var e = this._scale(E.ctm);
287
+ r.fillStyle = this._getFill(E.colr, E.ca, r), r.strokeStyle = this._getFill(E.COLR, E.CA, r), r.lineCap = ["butt", "round", "square"][E.lcap], r.lineJoin = ["miter", "round", "bevel"][E.ljoin], r.lineWidth = E.lwidth * e;
288
+ for (var a = E.dash.slice(0), T = 0; T < a.length; T++) a[T] = a[T] * e;
289
+ r.setLineDash(a), r.miterLimit = E.mlimit * e;
290
+ var R = E.font.Tf, s = R.toLowerCase(), A = s.indexOf("bold") != -1 ? "bold " : "", S = s.indexOf("italic") != -1 || s.indexOf("oblique") != -1 ? "italic " : "";
291
+ r.font = A + S + E.font.Tfs + 'px "' + R + '"';
292
+ };
293
+ X.prototype._getFill = function(E, r, e) {
294
+ if (E.typ == null) return this._colr(E, r);
295
+ var a = E, T = a.crds, R = a.mat, s = this._scale(R), A;
296
+ if (a.typ == "lin") {
297
+ var S = this._multPoint(R, T.slice(0, 2)), v = this._multPoint(R, T.slice(2));
298
+ A = e.createLinearGradient(S[0], S[1], v[0], v[1]);
299
+ } else if (a.typ == "rad") {
300
+ var n = this._multPoint(R, T.slice(0, 2)), C = this._multPoint(R, T.slice(3));
301
+ A = e.createRadialGradient(n[0], n[1], T[2] * s, C[0], C[1], T[5] * s);
302
+ } else
303
+ return this._colr(E, r);
304
+ for (var h = 0; h < a.grad.length; h++) A.addColorStop(a.grad[h][0], this._colr(a.grad[h][1], r));
305
+ return A;
306
+ };
307
+ X.prototype._colr = function(E, r) {
308
+ return "rgba(" + Math.round(E[0] * 255) + "," + Math.round(E[1] * 255) + "," + Math.round(E[2] * 255) + "," + r + ")";
309
+ };
310
+ X.prototype._scale = function(E) {
311
+ return Math.sqrt(Math.abs(E[0] * E[3] - E[1] * E[2]));
312
+ };
313
+ X.prototype._concat = function(E, r) {
314
+ var e = E[0], a = E[1], T = E[2], R = E[3], s = E[4], A = E[5];
315
+ E[0] = e * r[0] + a * r[2], E[1] = e * r[1] + a * r[3], E[2] = T * r[0] + R * r[2], E[3] = T * r[1] + R * r[3], E[4] = s * r[0] + A * r[2] + r[4], E[5] = s * r[1] + A * r[3] + r[5];
316
+ };
317
+ X.prototype._multPoint = function(E, r) {
318
+ var e = r[0], a = r[1];
319
+ return [e * E[0] + a * E[2] + E[4], e * E[1] + a * E[3] + E[5]];
320
+ };
321
+ X.prototype._draw = function(E, r) {
322
+ for (var e = 0, a = E.crds, T = 0; T < E.cmds.length; T++) {
323
+ var R = E.cmds[T];
324
+ R == "M" ? (r.moveTo(a[e], a[e + 1]), e += 2) : R == "L" ? (r.lineTo(a[e], a[e + 1]), e += 2) : R == "C" ? (r.bezierCurveTo(a[e], a[e + 1], a[e + 2], a[e + 3], a[e + 4], a[e + 5]), e += 6) : R == "Q" ? (r.quadraticCurveTo(a[e], a[e + 1], a[e + 2], a[e + 3]), e += 4) : R == "Z" && r.closePath();
325
+ }
326
+ };
327
+ function L() {
328
+ }
329
+ L.Parse = function(E, r) {
330
+ E = new Uint8Array(E);
331
+ for (var e = 0, a = { fill: !1, strk: !1, bb: [0, 0, 1, 1], wbb: [0, 0, 1, 1], fnt: { nam: "Arial", hgh: 25, und: !1, orn: 0 }, tclr: [0, 0, 0], talg: 0 }, T, R = [], s = [], A = L.B.readShort, S = L.B.readUshort, v = L.B.readInt, n = L.B.readUint, C = L.B.readFloat; ; ) {
332
+ var h = n(E, e);
333
+ e += 4;
334
+ var O = L.K[h], P = n(E, e);
335
+ e += 4;
336
+ var t = e, c = null, d = 0;
337
+ if (O == "EOF")
338
+ break;
339
+ if (O == "HEADER")
340
+ a.bb = L._readBox(E, t), t += 16, r.StartPage(a.bb[0], a.bb[1], a.bb[2], a.bb[3]), T = M.getState(a.bb);
341
+ else if (O == "SAVEDC") s.push(JSON.stringify(T), JSON.stringify(a));
342
+ else if (O == "RESTOREDC") {
343
+ var D = v(E, t);
344
+ for (t += 4; D < -1; )
345
+ s.pop(), s.pop();
346
+ a = JSON.parse(s.pop()), T = JSON.parse(s.pop());
347
+ } else if (O == "SELECTCLIPPATH")
348
+ T.cpth = JSON.parse(JSON.stringify(T.pth));
349
+ else if (["SETMAPMODE", "SETPOLYFILLMODE", "SETBKMODE", "SETICMMODE", "SETROP2", "EXTSELECTCLIPRGN"].indexOf(O) == -1) {
350
+ if (O == "SETMITERLIMIT") T.mlimit = n(E, t);
351
+ else if (O == "SETTEXTCOLOR") a.tclr = [E[t] / 255, E[t + 1] / 255, E[t + 2] / 255];
352
+ else if (O == "SETTEXTALIGN") a.talg = n(E, t);
353
+ else if (O == "SETVIEWPORTEXTEX" || O == "SETVIEWPORTORGEX") {
354
+ a.vbb == null && (a.vbb = []);
355
+ var I = O == "SETVIEWPORTORGEX" ? 0 : 2;
356
+ a.vbb[I] = v(E, t), t += 4, a.vbb[I + 1] = v(E, t), t += 4, O == "SETVIEWPORTEXTEX" && L._updateCtm(a, T);
357
+ } else if (O == "SETWINDOWEXTEX" || O == "SETWINDOWORGEX") {
358
+ var I = O == "SETWINDOWORGEX" ? 0 : 2;
359
+ a.wbb[I] = v(E, t), t += 4, a.wbb[I + 1] = v(E, t), t += 4, O == "SETWINDOWEXTEX" && L._updateCtm(a, T);
360
+ } else if (O == "COMMENT")
361
+ n(E, t), t += 4;
362
+ else if (O == "SELECTOBJECT") {
363
+ var x = n(E, t);
364
+ if (t += 4, x == 2147483648)
365
+ a.fill = !0, T.colr = [1, 1, 1];
366
+ else if (x == 2147483653)
367
+ a.fill = !1;
368
+ else if (x == 2147483655)
369
+ a.strk = !0, a.lwidth = 1, T.COLR = [0, 0, 0];
370
+ else if (x == 2147483656)
371
+ a.strk = !1;
372
+ else if (x != 2147483661) {
373
+ if (x != 2147483662) {
374
+ var l = R[x];
375
+ if (l.t == "b") {
376
+ if (a.fill = l.stl != 1, l.stl != 0) {
377
+ if (l.stl != 1) throw l.stl + " e";
378
+ }
379
+ T.colr = l.clr;
380
+ } else if (l.t == "p")
381
+ a.strk = l.stl != 5, T.lwidth = l.wid, T.COLR = l.clr;
382
+ else if (l.t == "f")
383
+ a.fnt = l, T.font.Tf = l.nam, T.font.Tfs = Math.abs(l.hgh), T.font.Tun = l.und;
384
+ else throw "e";
385
+ }
386
+ }
387
+ } else if (O == "DELETEOBJECT") {
388
+ var x = n(E, t);
389
+ if (t += 4, R[x] != null) R[x] = null;
390
+ else throw "e";
391
+ } else if (O == "CREATEBRUSHINDIRECT")
392
+ d = n(E, t), t += 4, c = { t: "b" }, c.stl = n(E, t), t += 4, c.clr = [E[t] / 255, E[t + 1] / 255, E[t + 2] / 255], t += 4, c.htc = n(E, t), t += 4;
393
+ else if (O == "CREATEPEN" || O == "EXTCREATEPEN")
394
+ d = n(E, t), t += 4, c = { t: "p" }, O == "EXTCREATEPEN" ? (t += 16, c.stl = n(E, t), t += 4, c.wid = n(E, t), t += 4, t += 4) : (c.stl = n(E, t), t += 4, c.wid = n(E, t), t += 4, t += 4), c.clr = [E[t] / 255, E[t + 1] / 255, E[t + 2] / 255], t += 4;
395
+ else if (O == "EXTCREATEFONTINDIRECTW") {
396
+ d = n(E, t), t += 4, c = { t: "f", nam: "" }, c.hgh = v(E, t), t += 4, t += 4 * 2, c.orn = v(E, t) / 10, t += 4;
397
+ var z = n(E, t);
398
+ for (t += 4, c.und = E[t + 1], c.stk = E[t + 2], t += 4 * 2; S(E, t) != 0; )
399
+ c.nam += String.fromCharCode(S(E, t)), t += 2;
400
+ z > 500 && (c.nam += "-Bold");
401
+ } else if (O == "EXTTEXTOUTW") {
402
+ t += 16;
403
+ var g = n(E, t);
404
+ t += 4, C(E, t), t += 4, C(E, t), t += 4;
405
+ var t0 = v(E, t);
406
+ t += 4;
407
+ var e0 = v(E, t);
408
+ t += 4, T.font.Tm = [1, 0, 0, -1, 0, 0], M.M.rotate(T.font.Tm, a.fnt.orn * Math.PI / 180), M.M.translate(T.font.Tm, t0, e0);
409
+ var p = a.talg;
410
+ if ((p & 6) == 6) T.font.Tal = 2;
411
+ else if (!(p & 7)) T.font.Tal = 0;
412
+ else throw p + " e";
413
+ if ((p & 24) != 24) if (!(p & 24)) M.M.translate(T.font.Tm, 0, T.font.Tfs);
414
+ else throw "e";
415
+ var a0 = n(E, t);
416
+ t += 4;
417
+ var T0 = n(E, t);
418
+ t += 4, n(E, t), t += 4, t += 16, n(E, t), t += 4, T0 += e - 8;
419
+ for (var k = "", U = 0; U < a0; U++) {
420
+ var $ = S(E, T0 + U * 2);
421
+ k += String.fromCharCode($);
422
+ }
423
+ var m = T.colr;
424
+ T.colr = a.tclr, r.PutText(T, k, k.length * T.font.Tfs * 0.5), T.colr = m;
425
+ } else if (O == "BEGINPATH")
426
+ M.G.newPath(T);
427
+ else if (O != "ENDPATH") {
428
+ if (O == "CLOSEFIGURE") M.G.closePath(T);
429
+ else if (O == "MOVETOEX")
430
+ M.G.moveTo(T, v(E, t), v(E, t + 4));
431
+ else if (O == "LINETO") {
432
+ if (T.pth.cmds.length == 0) {
433
+ var Q = T.ctm.slice(0);
434
+ M.M.invert(Q);
435
+ var i0 = M.M.multPoint(Q, T.cpos);
436
+ M.G.moveTo(T, i0[0], i0[1]);
437
+ }
438
+ M.G.lineTo(T, v(E, t), v(E, t + 4));
439
+ } else if (O == "POLYGON" || O == "POLYGON16" || O == "POLYLINE" || O == "POLYLINE16" || O == "POLYLINETO" || O == "POLYLINETO16") {
440
+ t += 16;
441
+ var Z = O.startsWith("POLYGON"), y = O.indexOf("TO") != -1, J = n(E, t);
442
+ t += 4, y || M.G.newPath(T), t = L._drawPoly(E, t, J, T, O.endsWith("16") ? 2 : 4, Z, y), y || L._draw(r, T, a, Z);
443
+ } else if (O == "POLYPOLYGON16") {
444
+ t += 16;
445
+ var Z = O.startsWith("POLYPOLYGON"), y = O.indexOf("TO") != -1, b = n(E, t);
446
+ t += 4, t += 4;
447
+ var R0 = t;
448
+ t += b * 4, y || M.G.newPath(T);
449
+ for (var U = 0; U < b; U++) {
450
+ var s0 = S(E, R0 + U * 4);
451
+ t = L._drawPoly(E, t, s0, T, O.endsWith("16") ? 2 : 4, Z, y);
452
+ }
453
+ y || L._draw(r, T, a, Z);
454
+ } else if (O == "POLYBEZIER" || O == "POLYBEZIER16" || O == "POLYBEZIERTO" || O == "POLYBEZIERTO16") {
455
+ t += 16;
456
+ var n0 = O.endsWith("16"), w = n0 ? A : v, Y = n0 ? 2 : 4, J = n(E, t);
457
+ for (t += 4, O.indexOf("TO") == -1 && (M.G.moveTo(T, w(E, t), w(E, t + Y)), t += 2 * Y, J--); J > 0; )
458
+ M.G.curveTo(T, w(E, t), w(E, t + Y), w(E, t + 2 * Y), w(E, t + 3 * Y), w(E, t + 4 * Y), w(E, t + 5 * Y)), t += 6 * Y, J -= 3;
459
+ } else if (O == "RECTANGLE" || O == "ELLIPSE") {
460
+ M.G.newPath(T);
461
+ var F = L._readBox(E, t);
462
+ if (O == "RECTANGLE")
463
+ M.G.moveTo(T, F[0], F[1]), M.G.lineTo(T, F[2], F[1]), M.G.lineTo(T, F[2], F[3]), M.G.lineTo(T, F[0], F[3]);
464
+ else {
465
+ var G = (F[0] + F[2]) / 2, B = (F[1] + F[3]) / 2;
466
+ M.G.arc(T, G, B, (F[2] - F[0]) / 2, 0, 2 * Math.PI, !1);
467
+ }
468
+ M.G.closePath(T), L._draw(r, T, a, !0);
469
+ } else if (O == "FILLPATH") r.Fill(T, !1);
470
+ else if (O == "STROKEPATH") r.Stroke(T);
471
+ else if (O == "STROKEANDFILLPATH")
472
+ r.Fill(T, !1), r.Stroke(T);
473
+ else if (O == "SETWORLDTRANSFORM" || O == "MODIFYWORLDTRANSFORM") {
474
+ for (var f = [], U = 0; U < 6; U++) f.push(C(E, t + U * 4));
475
+ if (t += 24, O == "SETWORLDTRANSFORM") T.ctm = f;
476
+ else {
477
+ var g = n(E, t);
478
+ if (t += 4, g == 2) {
479
+ var M0 = T.ctm;
480
+ T.ctm = f, M.M.concat(T.ctm, M0);
481
+ } else throw "e";
482
+ }
483
+ } else if (O == "SETSTRETCHBLTMODE")
484
+ n(E, t), t += 4;
485
+ else if (O == "STRETCHDIBITS") {
486
+ var F = L._readBox(E, t);
487
+ t += 16;
488
+ var E0 = v(E, t);
489
+ t += 4;
490
+ var q = v(E, t);
491
+ t += 4, v(E, t), t += 4, v(E, t), t += 4;
492
+ var O0 = v(E, t);
493
+ t += 4;
494
+ var r0 = v(E, t);
495
+ t += 4;
496
+ var N = n(E, t) + e - 8;
497
+ t += 4, n(E, t), t += 4;
498
+ var A0 = n(E, t) + e - 8;
499
+ t += 4, n(E, t), t += 4;
500
+ var L0 = n(E, t);
501
+ if (t += 4, L0 != 0) throw "e";
502
+ n(E, t), t += 4;
503
+ var x0 = v(E, t);
504
+ t += 4;
505
+ var P0 = v(E, t);
506
+ t += 4, n(E, N), N += 4;
507
+ var o = n(E, N);
508
+ N += 4;
509
+ var H = n(E, N);
510
+ if (N += 4, o != O0 || H != r0) throw "e";
511
+ var _0 = S(E, N);
512
+ N += 2;
513
+ var V = S(E, N);
514
+ if (N += 2, V != 8 && V != 24 && V != 32) throw V + " e";
515
+ var c0 = n(E, N);
516
+ if (N += 4, c0 != 0) throw c0 + " e";
517
+ n(E, N), N += 4, n(E, N), N += 4, n(E, N), N += 4, n(E, N), N += 4, n(E, N), N += 4;
518
+ var v0 = Math.floor((o * _0 * V + 31 & -32) / 8), u = new Uint8Array(o * H * 4);
519
+ if (V == 8)
520
+ for (var B = 0; B < H; B++)
521
+ for (var G = 0; G < o; G++) {
522
+ var W = B * o + G << 2, x = E[A0 + (H - 1 - B) * v0 + G] << 2;
523
+ u[W] = E[N + x + 2], u[W + 1] = E[N + x + 1], u[W + 2] = E[N + x + 0], u[W + 3] = 255;
524
+ }
525
+ if (V == 24)
526
+ for (var B = 0; B < H; B++)
527
+ for (var G = 0; G < o; G++) {
528
+ var W = B * o + G << 2, K = A0 + (H - 1 - B) * v0 + G * 3;
529
+ u[W] = E[K + 2], u[W + 1] = E[K + 1], u[W + 2] = E[K + 0], u[W + 3] = 255;
530
+ }
531
+ if (V == 32)
532
+ for (var B = 0; B < H; B++)
533
+ for (var G = 0; G < o; G++) {
534
+ var W = B * o + G << 2, K = A0 + (H - 1 - B) * v0 + G * 4;
535
+ u[W] = E[K + 2], u[W + 1] = E[K + 1], u[W + 2] = E[K + 0], u[W + 3] = E[K + 3];
536
+ }
537
+ var S0 = T.ctm.slice(0);
538
+ T.ctm = [1, 0, 0, 1, 0, 0], M.M.scale(T.ctm, x0, -P0), M.M.translate(T.ctm, E0, q + P0), M.M.concat(T.ctm, S0), r.PutImage(T, u, o, H), T.ctm = S0;
539
+ }
540
+ }
541
+ }
542
+ c != null && (R[d] = c), e += P - 8;
543
+ }
544
+ r.ShowPage(), r.Done();
545
+ };
546
+ L._readBox = function(E, r) {
547
+ for (var e = [], a = 0; a < 4; a++) e[a] = L.B.readInt(E, r + a * 4);
548
+ return e;
549
+ };
550
+ L._updateCtm = function(E, r) {
551
+ var e = [1, 0, 0, 1, 0, 0], a = E.wbb;
552
+ E.bb;
553
+ var T = E.vbb && E.vbb.length == 4 ? E.vbb : E.bb;
554
+ M.M.translate(e, -a[0], -a[1]), M.M.scale(e, 1 / a[2], 1 / a[3]), M.M.scale(e, T[2], T[3]), r.ctm = e;
555
+ };
556
+ L._draw = function(E, r, e, a) {
557
+ e.fill && a && E.Fill(r, !1), e.strk && r.lwidth != 0 && E.Stroke(r);
558
+ };
559
+ L._drawPoly = function(E, r, e, a, T, R, s) {
560
+ for (var A = T == 2 ? L.B.readShort : L.B.readInt, S = 0; S < e; S++) {
561
+ var v = A(E, r);
562
+ r += T;
563
+ var n = A(E, r);
564
+ r += T, S == 0 && !s ? M.G.moveTo(a, v, n) : M.G.lineTo(a, v, n);
565
+ }
566
+ return R && M.G.closePath(a), r;
567
+ };
568
+ L.B = {
569
+ uint8: new Uint8Array(4),
570
+ readShort: function(E, r) {
571
+ var e = L.B.uint8;
572
+ return e[0] = E[r], e[1] = E[r + 1], L.B.int16[0];
573
+ },
574
+ readUshort: function(E, r) {
575
+ var e = L.B.uint8;
576
+ return e[0] = E[r], e[1] = E[r + 1], L.B.uint16[0];
577
+ },
578
+ readInt: function(E, r) {
579
+ var e = L.B.uint8;
580
+ return e[0] = E[r], e[1] = E[r + 1], e[2] = E[r + 2], e[3] = E[r + 3], L.B.int32[0];
581
+ },
582
+ readUint: function(E, r) {
583
+ var e = L.B.uint8;
584
+ return e[0] = E[r], e[1] = E[r + 1], e[2] = E[r + 2], e[3] = E[r + 3], L.B.uint32[0];
585
+ },
586
+ readFloat: function(E, r) {
587
+ var e = L.B.uint8;
588
+ return e[0] = E[r], e[1] = E[r + 1], e[2] = E[r + 2], e[3] = E[r + 3], L.B.flot32[0];
589
+ },
590
+ readASCII: function(E, r, e) {
591
+ for (var a = "", T = 0; T < e; T++) a += String.fromCharCode(E[r + T]);
592
+ return a;
593
+ }
594
+ };
595
+ L.B.int16 = new Int16Array(L.B.uint8.buffer);
596
+ L.B.uint16 = new Uint16Array(L.B.uint8.buffer);
597
+ L.B.int32 = new Int32Array(L.B.uint8.buffer);
598
+ L.B.uint32 = new Uint32Array(L.B.uint8.buffer);
599
+ L.B.flot32 = new Float32Array(L.B.uint8.buffer);
600
+ L.C = {
601
+ EMR_HEADER: 1,
602
+ EMR_POLYBEZIER: 2,
603
+ EMR_POLYGON: 3,
604
+ EMR_POLYLINE: 4,
605
+ EMR_POLYBEZIERTO: 5,
606
+ EMR_POLYLINETO: 6,
607
+ EMR_POLYPOLYLINE: 7,
608
+ EMR_POLYPOLYGON: 8,
609
+ EMR_SETWINDOWEXTEX: 9,
610
+ EMR_SETWINDOWORGEX: 10,
611
+ EMR_SETVIEWPORTEXTEX: 11,
612
+ EMR_SETVIEWPORTORGEX: 12,
613
+ EMR_SETBRUSHORGEX: 13,
614
+ EMR_EOF: 14,
615
+ EMR_SETPIXELV: 15,
616
+ EMR_SETMAPPERFLAGS: 16,
617
+ EMR_SETMAPMODE: 17,
618
+ EMR_SETBKMODE: 18,
619
+ EMR_SETPOLYFILLMODE: 19,
620
+ EMR_SETROP2: 20,
621
+ EMR_SETSTRETCHBLTMODE: 21,
622
+ EMR_SETTEXTALIGN: 22,
623
+ EMR_SETCOLORADJUSTMENT: 23,
624
+ EMR_SETTEXTCOLOR: 24,
625
+ EMR_SETBKCOLOR: 25,
626
+ EMR_OFFSETCLIPRGN: 26,
627
+ EMR_MOVETOEX: 27,
628
+ EMR_SETMETARGN: 28,
629
+ EMR_EXCLUDECLIPRECT: 29,
630
+ EMR_INTERSECTCLIPRECT: 30,
631
+ EMR_SCALEVIEWPORTEXTEX: 31,
632
+ EMR_SCALEWINDOWEXTEX: 32,
633
+ EMR_SAVEDC: 33,
634
+ EMR_RESTOREDC: 34,
635
+ EMR_SETWORLDTRANSFORM: 35,
636
+ EMR_MODIFYWORLDTRANSFORM: 36,
637
+ EMR_SELECTOBJECT: 37,
638
+ EMR_CREATEPEN: 38,
639
+ EMR_CREATEBRUSHINDIRECT: 39,
640
+ EMR_DELETEOBJECT: 40,
641
+ EMR_ANGLEARC: 41,
642
+ EMR_ELLIPSE: 42,
643
+ EMR_RECTANGLE: 43,
644
+ EMR_ROUNDRECT: 44,
645
+ EMR_ARC: 45,
646
+ EMR_CHORD: 46,
647
+ EMR_PIE: 47,
648
+ EMR_SELECTPALETTE: 48,
649
+ EMR_CREATEPALETTE: 49,
650
+ EMR_SETPALETTEENTRIES: 50,
651
+ EMR_RESIZEPALETTE: 51,
652
+ EMR_REALIZEPALETTE: 52,
653
+ EMR_EXTFLOODFILL: 53,
654
+ EMR_LINETO: 54,
655
+ EMR_ARCTO: 55,
656
+ EMR_POLYDRAW: 56,
657
+ EMR_SETARCDIRECTION: 57,
658
+ EMR_SETMITERLIMIT: 58,
659
+ EMR_BEGINPATH: 59,
660
+ EMR_ENDPATH: 60,
661
+ EMR_CLOSEFIGURE: 61,
662
+ EMR_FILLPATH: 62,
663
+ EMR_STROKEANDFILLPATH: 63,
664
+ EMR_STROKEPATH: 64,
665
+ EMR_FLATTENPATH: 65,
666
+ EMR_WIDENPATH: 66,
667
+ EMR_SELECTCLIPPATH: 67,
668
+ EMR_ABORTPATH: 68,
669
+ EMR_COMMENT: 70,
670
+ EMR_FILLRGN: 71,
671
+ EMR_FRAMERGN: 72,
672
+ EMR_INVERTRGN: 73,
673
+ EMR_PAINTRGN: 74,
674
+ EMR_EXTSELECTCLIPRGN: 75,
675
+ EMR_BITBLT: 76,
676
+ EMR_STRETCHBLT: 77,
677
+ EMR_MASKBLT: 78,
678
+ EMR_PLGBLT: 79,
679
+ EMR_SETDIBITSTODEVICE: 80,
680
+ EMR_STRETCHDIBITS: 81,
681
+ EMR_EXTCREATEFONTINDIRECTW: 82,
682
+ EMR_EXTTEXTOUTA: 83,
683
+ EMR_EXTTEXTOUTW: 84,
684
+ EMR_POLYBEZIER16: 85,
685
+ EMR_POLYGON16: 86,
686
+ EMR_POLYLINE16: 87,
687
+ EMR_POLYBEZIERTO16: 88,
688
+ EMR_POLYLINETO16: 89,
689
+ EMR_POLYPOLYLINE16: 90,
690
+ EMR_POLYPOLYGON16: 91,
691
+ EMR_POLYDRAW16: 92,
692
+ EMR_CREATEMONOBRUSH: 93,
693
+ EMR_CREATEDIBPATTERNBRUSHPT: 94,
694
+ EMR_EXTCREATEPEN: 95,
695
+ EMR_POLYTEXTOUTA: 96,
696
+ EMR_POLYTEXTOUTW: 97,
697
+ EMR_SETICMMODE: 98,
698
+ EMR_CREATECOLORSPACE: 99,
699
+ EMR_SETCOLORSPACE: 100,
700
+ EMR_DELETECOLORSPACE: 101,
701
+ EMR_GLSRECORD: 102,
702
+ EMR_GLSBOUNDEDRECORD: 103,
703
+ EMR_PIXELFORMAT: 104,
704
+ EMR_DRAWESCAPE: 105,
705
+ EMR_EXTESCAPE: 106,
706
+ EMR_SMALLTEXTOUT: 108,
707
+ EMR_FORCEUFIMAPPING: 109,
708
+ EMR_NAMEDESCAPE: 110,
709
+ EMR_COLORCORRECTPALETTE: 111,
710
+ EMR_SETICMPROFILEA: 112,
711
+ EMR_SETICMPROFILEW: 113,
712
+ EMR_ALPHABLEND: 114,
713
+ EMR_SETLAYOUT: 115,
714
+ EMR_TRANSPARENTBLT: 116,
715
+ EMR_GRADIENTFILL: 118,
716
+ EMR_SETLINKEDUFIS: 119,
717
+ EMR_SETTEXTJUSTIFICATION: 120,
718
+ EMR_COLORMATCHTOTARGETW: 121,
719
+ EMR_CREATECOLORSPACEW: 122
720
+ };
721
+ L.K = [];
722
+ (function() {
723
+ var E, r, e;
724
+ E = L.C, r = L.K, e = 4;
725
+ for (var a in E) r[E[a]] = a.slice(e);
726
+ })();
727
+ function _() {
728
+ }
729
+ _.Parse = function(E, r) {
730
+ E = new Uint8Array(E);
731
+ var e = 0, a = { fill: !1, strk: !1, bb: [0, 0, 1, 1], lbb: [0, 0, 1, 1], scl: 1, fnt: { nam: "Arial", hgh: 25, und: !1, orn: 0, chrst: 0 }, tclr: [0, 0, 0], talg: 0 }, T = _.B.readShort, R = _.B.readUshort, s = _.B.readUint, A = s(E, 0);
732
+ if (A == 2596720087) {
733
+ e = 6;
734
+ var S = T(E, e + 8);
735
+ a.scl = 120 / S;
736
+ for (var v = 0; v < 4; v++)
737
+ a.bb[v] = Math.round(T(E, e) * a.scl), e += 2;
738
+ e += 2, e += 6;
739
+ }
740
+ r.StartPage(a.bb[0], a.bb[1], a.bb[2], a.bb[3]);
741
+ var n = M.getState(a.bb);
742
+ R(E, e), e += 2, R(E, e), e += 2, R(E, e), e += 2, s(E, e), e += 4, R(E, e), e += 2, s(E, e), e += 4, R(E, e), e += 2;
743
+ for (var C = []; ; ) {
744
+ var h = s(E, e) << 1;
745
+ e += 4;
746
+ var O = R(E, e);
747
+ e += 2;
748
+ var P = _.K[O], t = e, c = null;
749
+ if (P == "EOF") break;
750
+ if (P == "ESCAPE") {
751
+ var d = R(E, e);
752
+ t += 2;
753
+ var D = _.K2[d];
754
+ console.log(P, D);
755
+ } else if (!(P == "SETMAPMODE" || P == "SETPOLYFILLMODE" || P == "SETBKMODE")) {
756
+ if (P == "SELECTOBJECT") {
757
+ var I = R(E, t);
758
+ t += 2;
759
+ var x = C[I];
760
+ if (x.t == "br") {
761
+ if (a.fill = x.stl != 1, x.stl != 0) {
762
+ if (x.stl != 1) throw x.stl + " e";
763
+ }
764
+ n.colr = x.clr;
765
+ } else if (x.t == "pn") {
766
+ var l = x.stl & 7;
767
+ if (a.strk = l != 5, l == 0 || l == 6) n.lwidth = x.px;
768
+ else if (l != 5) throw l + " e";
769
+ x.stl & 4096 ? n.ljoin = 2 : x.stl & 8192 ? n.ljoin = 0 : n.ljoin = 1, n.COLR = x.clr;
770
+ } else if (x.t == "fn")
771
+ a.fnt = x, n.font.Tf = x.nam, n.font.Tfs = Math.abs(x.hgh), n.font.Tun = x.und;
772
+ else throw "e";
773
+ } else if (P == "DELETEOBJECT") {
774
+ var I = R(E, t);
775
+ t += 2, C[I] = null;
776
+ } else if (P == "SETWINDOWORG" || P == "SETWINDOWEXT") {
777
+ var z = P == "SETWINDOWORG" ? 0 : 2;
778
+ a.lbb[z + 1] = T(E, t), t += 2, a.lbb[z] = T(E, t), t += 2, _._updateCtm(a, n);
779
+ } else if (P == "CREATEBRUSHINDIRECT")
780
+ c = { t: "br" }, c.stl = R(E, t), t += 2, c.clr = [E[t] / 255, E[t + 1] / 255, E[t + 2] / 255], t += 4, c.htc = R(E, t), t += 2;
781
+ else if (P == "CREATEPENINDIRECT")
782
+ c = { t: "pn" }, c.stl = R(E, t), t += 2, c.px = T(E, t), t += 2, c.py = T(E, t), t += 2, c.clr = [E[t] / 255, E[t + 1] / 255, E[t + 2] / 255], t += 4;
783
+ else if (P == "CREATEFONTINDIRECT") {
784
+ c = { t: "fn", nam: "" }, c.hgh = T(E, t), t += 2, t += 2 * 2, c.orn = T(E, t) / 10, t += 2;
785
+ var g = T(E, t);
786
+ for (t += 2, c.und = E[t + 1], t += 2, c.stk = E[t], c.chrst = E[e + 1], t += 2, t += 4; E[t] != 0; )
787
+ c.nam += String.fromCharCode(E[t]), t++;
788
+ g > 500 && (c.nam += "-Bold");
789
+ } else if (P == "CREATEPALETTE")
790
+ c = { t: "pl" };
791
+ else if (P == "SETTEXTCOLOR") a.tclr = [E[t] / 255, E[t + 1] / 255, E[t + 2] / 255];
792
+ else if (P == "SETTEXTALIGN") a.talg = R(E, t);
793
+ else if (P == "MOVETO")
794
+ M.G.moveTo(n, T(E, t + 2), T(E, t));
795
+ else if (P == "LINETO") {
796
+ if (n.pth.cmds.length == 0) {
797
+ var t0 = n.ctm.slice(0);
798
+ M.M.invert(t0);
799
+ var e0 = M.M.multPoint(t0, n.cpos);
800
+ M.G.moveTo(n, e0[0], e0[1]);
801
+ }
802
+ M.G.lineTo(n, T(E, t + 2), T(E, t));
803
+ var p = a.fill;
804
+ a.fill = !1, _._draw(r, n, a), a.fill = p;
805
+ } else if (P == "POLYPOLYGON") {
806
+ var a0 = R(E, t);
807
+ t += 2;
808
+ var T0 = t;
809
+ t += a0 * 2;
810
+ for (var v = 0; v < a0; v++) {
811
+ var k = R(E, T0 + v * 2);
812
+ t = _._drawPoly(E, t, k, n, !0);
813
+ }
814
+ _._draw(r, n, a);
815
+ } else if (P == "POLYGON" || P == "POLYLINE") {
816
+ var k = R(E, t);
817
+ t += 2, t = _._drawPoly(E, t, k, n, P == "POLYGON");
818
+ var p = a.fill;
819
+ a.fill = p && P == "POLYGON", _._draw(r, n, a), a.fill = p;
820
+ } else if (P == "RECTANGLE" || P == "ELLIPSE") {
821
+ var U = T(E, t);
822
+ t += 2;
823
+ var $ = T(E, t);
824
+ t += 2;
825
+ var m = T(E, t);
826
+ t += 2;
827
+ var Q = T(E, t);
828
+ if (t += 2, P == "RECTANGLE")
829
+ M.G.moveTo(n, Q, m), M.G.lineTo(n, $, m), M.G.lineTo(n, $, U), M.G.lineTo(n, Q, U);
830
+ else {
831
+ var i0 = (Q + $) / 2, Z = (m + U) / 2;
832
+ M.G.arc(n, i0, Z, (U - m) / 2, 0, 2 * Math.PI, !1);
833
+ }
834
+ M.G.closePath(n);
835
+ var p = a.fill;
836
+ a.fill = !0, _._draw(r, n, a), a.fill = p;
837
+ } else if (P == "STRETCHDIB") {
838
+ s(E, t), t += 4, R(E, t), t += 2;
839
+ var y = T(E, t);
840
+ t += 2;
841
+ var J = T(E, t);
842
+ t += 2, T(E, t), t += 2, T(E, t), t += 2;
843
+ var b = T(E, t);
844
+ t += 2;
845
+ var R0 = T(E, t);
846
+ t += 2;
847
+ var s0 = T(E, t);
848
+ t += 2;
849
+ var n0 = T(E, t);
850
+ t += 2;
851
+ var w = _._loadDIB(E, t), Y = n.ctm.slice(0);
852
+ n.ctm = [1, 0, 0, 1, 0, 0], M.M.scale(n.ctm, R0, -b), M.M.translate(n.ctm, n0, s0 + b), M.M.concat(n.ctm, Y), r.PutImage(n, w, J, y), n.ctm = Y;
853
+ } else if (P == "EXTTEXTOUT") {
854
+ var F = T(E, t);
855
+ t += 2;
856
+ var G = T(E, t);
857
+ t += 2, n.font.Tm = [1, 0, 0, -1, 0, 0], M.M.rotate(n.font.Tm, a.fnt.orn * Math.PI / 180), M.M.translate(n.font.Tm, G, F);
858
+ var B = a.talg;
859
+ if ((B & 6) == 6) n.font.Tal = 2;
860
+ else if (!(B & 7)) n.font.Tal = 0;
861
+ else throw B + " e";
862
+ if ((B & 24) != 24) if (!(B & 24)) M.M.translate(n.font.Tm, 0, n.font.Tfs);
863
+ else throw "e";
864
+ var f = R(E, t);
865
+ t += 2;
866
+ var M0 = R(E, t);
867
+ t += 2, M0 & 4 && (t += 8);
868
+ for (var E0 = "", v = 0; v < f; v++) {
869
+ var q = E[t + v];
870
+ q > 127 && (v++, q = q << 8 | E[t + v]), E0 += String.fromCharCode(q);
871
+ }
872
+ var O0 = n.colr;
873
+ n.colr = a.tclr, r.PutText(n, E0, E0.length * n.font.Tfs * 0.5), n.colr = O0;
874
+ }
875
+ }
876
+ if (c != null) {
877
+ for (var r0 = 0; C[r0] != null; ) r0++;
878
+ C[r0] = c;
879
+ }
880
+ e += h - 6;
881
+ }
882
+ r.ShowPage(), r.Done();
883
+ };
884
+ _._loadDIB = function(E, r) {
885
+ _.B.readShort;
886
+ var e = _.B.readUshort, a = _.B.readUint, T = a(E, r);
887
+ r += 4;
888
+ var R, s, A;
889
+ if (T == 12) throw "e";
890
+ R = a(E, r), r += 4, s = a(E, r), r += 4;
891
+ var S = e(E, r);
892
+ if (r += 2, S != 1) throw "e";
893
+ var v = e(E, r);
894
+ if (r += 2, v != 1 && v != 24 && v != 32) throw v + " e";
895
+ var n = a(E, r);
896
+ if (r += 4, n != 0) throw "e";
897
+ a(E, r), r += 4, a(E, r), r += 4, a(E, r), r += 4, A = a(E, r), r += 4, a(E, r), r += 4;
898
+ var C = R * s, h = new Uint8Array(C * 4), O = Math.floor((R * S * v + 31 & -32) / 8);
899
+ if (v == 1)
900
+ for (var P = 0; P < s; P++)
901
+ for (var t = r + A * 4 + (s - 1 - P) * O, c = 0; c < R; c++) {
902
+ var d = P * R + c << 2, D = E[t + (c >>> 3)] >>> 7 - (c & 7) & 1;
903
+ h[d] = E[r + D * 4 + 2], h[d + 1] = E[r + D * 4 + 1], h[d + 2] = E[r + D * 4 + 0], h[d + 3] = 255;
904
+ }
905
+ if (v == 24)
906
+ for (var P = 0; P < s; P++)
907
+ for (var c = 0; c < R; c++) {
908
+ var d = P * R + c << 2, I = r + (s - 1 - P) * O + c * 3;
909
+ h[d] = E[I + 2], h[d + 1] = E[I + 1], h[d + 2] = E[I + 0], h[d + 3] = 255;
910
+ }
911
+ if (v == 32)
912
+ for (var P = 0; P < s; P++)
913
+ for (var c = 0; c < R; c++) {
914
+ var d = P * R + c << 2, I = r + (s - 1 - P) * O + c * 4;
915
+ h[d] = E[I + 2], h[d + 1] = E[I + 1], h[d + 2] = E[I + 0], h[d + 3] = E[I + 3];
916
+ }
917
+ return h;
918
+ };
919
+ _._updateCtm = function(E, r) {
920
+ var e = [1, 0, 0, 1, 0, 0], a = E.lbb, T = E.bb;
921
+ M.M.translate(e, -a[0], -a[1]), M.M.scale(e, 1 / a[2], 1 / a[3]), M.M.scale(e, T[2] - T[0], T[3] - T[1]), M.M.translate(e, T[0], T[1]), r.ctm = e;
922
+ };
923
+ _._draw = function(E, r, e) {
924
+ e.fill && E.Fill(r, !1), e.strk && r.lwidth != 0 && E.Stroke(r, !1), M.G.newPath(r);
925
+ };
926
+ _._drawPoly = function(E, r, e, a, T) {
927
+ for (var R = _.B.readShort, s = 0; s < e; s++) {
928
+ var A = R(E, r);
929
+ r += 2;
930
+ var S = R(E, r);
931
+ r += 2, s == 0 ? M.G.moveTo(a, A, S) : M.G.lineTo(a, A, S);
932
+ }
933
+ return T && M.G.closePath(a), r;
934
+ };
935
+ _.B = {
936
+ uint8: new Uint8Array(4),
937
+ readShort: function(E, r) {
938
+ var e = _.B.uint8;
939
+ return e[0] = E[r], e[1] = E[r + 1], _.B.int16[0];
940
+ },
941
+ readUshort: function(E, r) {
942
+ var e = _.B.uint8;
943
+ return e[0] = E[r], e[1] = E[r + 1], _.B.uint16[0];
944
+ },
945
+ readUint: function(E, r) {
946
+ var e = _.B.uint8;
947
+ return e[0] = E[r], e[1] = E[r + 1], e[2] = E[r + 2], e[3] = E[r + 3], _.B.uint32[0];
948
+ },
949
+ //readUint : function(buff,p) { return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]); },
950
+ readASCII: function(E, r, e) {
951
+ for (var a = "", T = 0; T < e; T++) a += String.fromCharCode(E[r + T]);
952
+ return a;
953
+ }
954
+ };
955
+ _.B.int16 = new Int16Array(_.B.uint8.buffer);
956
+ _.B.uint16 = new Uint16Array(_.B.uint8.buffer);
957
+ _.B.uint32 = new Uint32Array(_.B.uint8.buffer);
958
+ _.C = {
959
+ META_EOF: 0,
960
+ META_REALIZEPALETTE: 53,
961
+ META_SETPALENTRIES: 55,
962
+ META_SETBKMODE: 258,
963
+ META_SETMAPMODE: 259,
964
+ META_SETROP2: 260,
965
+ META_SETRELABS: 261,
966
+ META_SETPOLYFILLMODE: 262,
967
+ META_SETSTRETCHBLTMODE: 263,
968
+ META_SETTEXTCHAREXTRA: 264,
969
+ META_RESTOREDC: 295,
970
+ META_RESIZEPALETTE: 313,
971
+ META_DIBCREATEPATTERNBRUSH: 322,
972
+ META_SETLAYOUT: 329,
973
+ META_SETBKCOLOR: 513,
974
+ META_SETTEXTCOLOR: 521,
975
+ META_OFFSETVIEWPORTORG: 529,
976
+ META_LINETO: 531,
977
+ META_MOVETO: 532,
978
+ META_OFFSETCLIPRGN: 544,
979
+ META_FILLREGION: 552,
980
+ META_SETMAPPERFLAGS: 561,
981
+ META_SELECTPALETTE: 564,
982
+ META_POLYGON: 804,
983
+ META_POLYLINE: 805,
984
+ META_SETTEXTJUSTIFICATION: 522,
985
+ META_SETWINDOWORG: 523,
986
+ META_SETWINDOWEXT: 524,
987
+ META_SETVIEWPORTORG: 525,
988
+ META_SETVIEWPORTEXT: 526,
989
+ META_OFFSETWINDOWORG: 527,
990
+ META_SCALEWINDOWEXT: 1040,
991
+ META_SCALEVIEWPORTEXT: 1042,
992
+ META_EXCLUDECLIPRECT: 1045,
993
+ META_INTERSECTCLIPRECT: 1046,
994
+ META_ELLIPSE: 1048,
995
+ META_FLOODFILL: 1049,
996
+ META_FRAMEREGION: 1065,
997
+ META_ANIMATEPALETTE: 1078,
998
+ META_TEXTOUT: 1313,
999
+ META_POLYPOLYGON: 1336,
1000
+ META_EXTFLOODFILL: 1352,
1001
+ META_RECTANGLE: 1051,
1002
+ META_SETPIXEL: 1055,
1003
+ META_ROUNDRECT: 1564,
1004
+ META_PATBLT: 1565,
1005
+ META_SAVEDC: 30,
1006
+ META_PIE: 2074,
1007
+ META_STRETCHBLT: 2851,
1008
+ META_ESCAPE: 1574,
1009
+ META_INVERTREGION: 298,
1010
+ META_PAINTREGION: 299,
1011
+ META_SELECTCLIPREGION: 300,
1012
+ META_SELECTOBJECT: 301,
1013
+ META_SETTEXTALIGN: 302,
1014
+ META_ARC: 2071,
1015
+ META_CHORD: 2096,
1016
+ META_BITBLT: 2338,
1017
+ META_EXTTEXTOUT: 2610,
1018
+ META_SETDIBTODEV: 3379,
1019
+ META_DIBBITBLT: 2368,
1020
+ META_DIBSTRETCHBLT: 2881,
1021
+ META_STRETCHDIB: 3907,
1022
+ META_DELETEOBJECT: 496,
1023
+ META_CREATEPALETTE: 247,
1024
+ META_CREATEPATTERNBRUSH: 505,
1025
+ META_CREATEPENINDIRECT: 762,
1026
+ META_CREATEFONTINDIRECT: 763,
1027
+ META_CREATEBRUSHINDIRECT: 764,
1028
+ META_CREATEREGION: 1791
1029
+ };
1030
+ _.C2 = {
1031
+ NEWFRAME: 1,
1032
+ ABORTDOC: 2,
1033
+ NEXTBAND: 3,
1034
+ SETCOLORTABLE: 4,
1035
+ GETCOLORTABLE: 5,
1036
+ FLUSHOUT: 6,
1037
+ DRAFTMODE: 7,
1038
+ QUERYESCSUPPORT: 8,
1039
+ SETABORTPROC: 9,
1040
+ STARTDOC: 10,
1041
+ ENDDOC: 11,
1042
+ GETPHYSPAGESIZE: 12,
1043
+ GETPRINTINGOFFSET: 13,
1044
+ GETSCALINGFACTOR: 14,
1045
+ META_ESCAPE_ENHANCED_METAFILE: 15,
1046
+ SETPENWIDTH: 16,
1047
+ SETCOPYCOUNT: 17,
1048
+ SETPAPERSOURCE: 18,
1049
+ PASSTHROUGH: 19,
1050
+ GETTECHNOLOGY: 20,
1051
+ SETLINECAP: 21,
1052
+ SETLINEJOIN: 22,
1053
+ SETMITERLIMIT: 23,
1054
+ BANDINFO: 24,
1055
+ DRAWPATTERNRECT: 25,
1056
+ GETVECTORPENSIZE: 26,
1057
+ GETVECTORBRUSHSIZE: 27,
1058
+ ENABLEDUPLEX: 28,
1059
+ GETSETPAPERBINS: 29,
1060
+ GETSETPRINTORIENT: 30,
1061
+ ENUMPAPERBINS: 31,
1062
+ SETDIBSCALING: 32,
1063
+ EPSPRINTING: 33,
1064
+ ENUMPAPERMETRICS: 34,
1065
+ GETSETPAPERMETRICS: 35,
1066
+ POSTSCRIPT_DATA: 37,
1067
+ POSTSCRIPT_IGNORE: 38,
1068
+ GETDEVICEUNITS: 42,
1069
+ GETEXTENDEDTEXTMETRICS: 256,
1070
+ GETPAIRKERNTABLE: 258,
1071
+ EXTTEXTOUT: 512,
1072
+ GETFACENAME: 513,
1073
+ DOWNLOADFACE: 514,
1074
+ METAFILE_DRIVER: 2049,
1075
+ QUERYDIBSUPPORT: 3073,
1076
+ BEGIN_PATH: 4096,
1077
+ CLIP_TO_PATH: 4097,
1078
+ END_PATH: 4098,
1079
+ OPEN_CHANNEL: 4110,
1080
+ DOWNLOADHEADER: 4111,
1081
+ CLOSE_CHANNEL: 4112,
1082
+ POSTSCRIPT_PASSTHROUGH: 4115,
1083
+ ENCAPSULATED_POSTSCRIPT: 4116,
1084
+ POSTSCRIPT_IDENTIFY: 4117,
1085
+ POSTSCRIPT_INJECTION: 4118,
1086
+ CHECKJPEGFORMAT: 4119,
1087
+ CHECKPNGFORMAT: 4120,
1088
+ GET_PS_FEATURESETTING: 4121,
1089
+ MXDC_ESCAPE: 4122,
1090
+ SPCLPASSTHROUGH2: 4568
1091
+ };
1092
+ _.K = [];
1093
+ _.K2 = [];
1094
+ (function() {
1095
+ var E, r, e;
1096
+ E = _.C, r = _.K, e = 5;
1097
+ for (var a in E) r[E[a]] = a.slice(e);
1098
+ E = _.C2, r = _.K2, e = 0;
1099
+ for (var a in E) r[E[a]] = a.slice(e);
1100
+ })();
1101
+ function h0(E) {
1102
+ const r = document.createElement("canvas");
1103
+ r.width = E.width, r.height = E.height;
1104
+ const e = r.getContext("2d");
1105
+ return e ? (e.translate(0, r.height), e.scale(1, -1), e.drawImage(E, 0, 0), r) : E;
1106
+ }
1107
+ function C0(E, r, e) {
1108
+ if (typeof document > "u") return null;
1109
+ const a = e && e.scale != null ? e.scale : 2, T = e && e.page != null ? e.page : 0;
1110
+ try {
1111
+ const R = new X(T, a);
1112
+ r === "wmf" ? _.Parse(E, R) : L.Parse(E, R);
1113
+ let s = R.canvas;
1114
+ return r === "emf" && (s = h0(s)), s.toDataURL("image/png");
1115
+ } catch {
1116
+ return null;
1117
+ }
1118
+ }
1119
+ export {
1120
+ C0 as renderUdocMetafileToPngDataUrl
1121
+ };