work on spo files
[pspp] / spo-notes
1 Exactly one NavRoot is always present
2
3 Exactly one NavHead is present except for .spo files that are (mostly)
4 empty, which have none
5
6 The Nav* strings only appear once per file, as:
7 ffff 0000 xxyy string
8 Sometimes there is zero spacing between these.
9
10 File begins with:
11         (00 | 0[1234] i0)
12         "SPSS Output Document"
13         (i0? | i1 63) ffff 0000
14         "NavHead"     # or any other "Nav*"
15         02 int32[x] int32[y] i24 int32[z] int32[w] int32[v]
16         (i0 | i1 | i2 | i3 | i4)
17         (i0| i1 | i2 | i3)
18         ffff 0000
19         "DspSimpleText"
20         00 (i0 (i0 | i1) 00)? ffff 0000
21         ("IndexedCollection" | "DspString")
22 and then with the IndexedCollection case:
23         00*14 ffff 0000
24 and the DspString case:
25         01 02 28 (00|05) 00 (00|01)
26         often followed by a string
27
28 The first byte might be a version number.  "Save As" or "Save" has the effect:
29     00 -> 00 (tried 1 out of 3)
30     01 -> 04 (tried 3 out of 3)
31     02 -> 04 (tried 1 out of many: deska, regress)
32     03 -> 04 (tried 1 out of many: 3d67bb)
33     04 -> 04 (tried 1 out of many: detailer2)
34
35 Charset numbers come from the list for \fcharset in the RTF
36 specification:
37 http://latex2rtf.sourceforge.net/rtfspec_6.html#rtfspec_10 The charset
38 number appears 4 bytes before the font name string, e.g. here it is
39 0xb2 or 178 (Arabic):
40
41      01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 b2 00 00 00 22 41 72 61 62 69 63 20 54 72 61 6e 73 70 61 72 65 6e 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ............................."Arabic Transparent..............P...............
42
43 and here it is 0xee or 238 (Polish):
44
45      01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 ee 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 ............................."Arial.a.l.......................P...............
46
47 It is usually 0 for "ANSI".
48
49 DspString is the label of the object that is currently selected.
50
51 The currently selected object is always the first in the file
52 regardless of the output hierarchy and order
53
54 The entire rec:NavPivot contents, minus the final 00 byte, appear
55 later in the file to identify the selected object.  However, the
56 initial 02 02*8 can disappear into a "float 0.0" if there's a leading
57 80.
58
59 Each object has a small negative number, e.g. 0xfffffe91 == -390.
60
61 Objects:
62   NavRoot: root output object
63   NavLog: log object
64   NavHead: heading with subobjects
65     NavTreeViewItem: assocated with NavHead somehow
66   NavTitle: title within a heading
67   NavNote: notes table
68   NavPivot: table
69
70 The start of the file might be a version number
71
72 x and y are either 0 or 2-3 byte values, e.g. 0x670b or 0x3b989.
73 z is a 2-3 byte negative value, e.g. 0xffff8997
74 w is a 2-byte value or 0
75 v is a 2-byte negative value or 0
76
77
78
79 rtf:
80
81         "Factor Analysis"
82         01 01
83         table 1
84         00 00 00 f9 00 00 00
85         "\rtf..."
86         00 18 00 00 00 00 00 00 00 de ff ff ff 18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 18 04 00 00 ae 73 01 00 00 00 00 00 00 34 21 00 00 f8 2a 00 00 01 00 07 00 01 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 00 00 01 00
87         "(Continued)"
88
89
90 rtf2:
91
92         "Factor Analysis"
93         01 01
94         table 1
95         00 00 00 da 00 00 00
96         "\rtf..."
97         00 ffff 0000
98
99 rtf3:
100
101         ...
102         00 1f 80 02 00 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 06 02 00 00 28 fd ff ff 02 00 00 00 01 00 00
103
104    1456  01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    03 4c 6f 67-               07 80 00 02 00 00........................(....Log......
105       3  01 00 00 00 01 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    03 4c 6f 67-               07 80 00 02 00 00........................(....Log......
106      13     00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 05 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 07.......................(.....SPSS Log.
107      13     00 00 00 00 00 00 00 03 80 00 00 00 00 00 00 00-00 00 00 07 80 01 02 28 05 00 00 00 08 53 50 53-53 20 4c 6f 67 09.......................(.....SPSS Log.
108      13  01 00 00 00 00 00 00 00 03 80 00 00 00 00 00 00-00 00 00 00 05 80 01 02 28 05 00 01    08 53 50 53-53 20 4c 6f 67 07........................(....SPSS Log.
109 notea.spo/Contents
110
111
112
113 PVPrintManager:
114
115         "PVPrintManager"
116         02 byte[x] 00 i2 (i0|i3) i1 00*7
117         sometimes 0000 ffff
118 where x is between 0a and 2e
119
120
121
122 regress, notea
123 --------------
124
125 ffff 0000 "NavPivot"
126         02 fa 3c 00 00 3b 5a 01 00
127         18 00 00 00 b4 35 ff ff 7f
128         02 00 00 13 28 ff ff
129         02 00 00 00
130         01 00 00 00
131
132         notea:
133         02 00 00 00 00 00 00 00 00
134         18 00 00 00 93 f0 ff ff dc
135         03 00 00 cd ef ff ff
136         02 00 00 00
137         01 00 00
138         missing terminator!
139
140 ffff 0000 "DspSimpleText"
141         00*10
142
143 ffff 0000 "DspString"
144         01 02 28 05 00 01 "Text Output"
145
146 ffff 0000 "NavOleItem"
147         00 01 00 00
148         07 00 00 00
149         01 00 00 00 00 00
150         01 00 00 00 00 00 00 00 00 00 00
151         01 00 00 00 00 00
152         "Regression"
153         01
154
155         notea:
156         00 01 00 00
157         01 00 00 00
158         01 00 00 00 00 00
159         01 00 00 00 00 00 00 00 00 00 00
160         01 00 00 00 00 00
161         00 01 01 f3 ff
162
163 ffff 0000 "PTPivotController"
164         02 67 02 00 00 a1 0d 00 00
165         64 00 00 00
166         64 00 00 00
167         64 00 00 00
168         64 00 00 00
169
170         notea:
171         02 29 20 69 31 38 28 66 38
172         64 00 00 00
173         64 00 00 00
174         64 00 00 00
175         64 00 00 00
176
177 ffff 0000 "PVPivotView"
178         04 00 00 00 00
179
180 ffff 0000 "PMPivotModel"
181         03
182
183 ffff 0000 "NDimensional__DspCell"
184         00 03 00 00 00
185
186 ffff 0000 "IndexedCollection"
187         00
188         05 00 00 00
189         01 00 13 80
190         00
191         0b 00 00 00
192         01 00 13 80
193         00
194         02 00 00 00
195         01 00
196
197 ffff 0000 "DspCell"
198         00 03 80 00*10
199
200 ffff 0000 "DspNumber"
201
202 NavTitle  02 00 00 00 00 00 00 00 00 18 00 00 00 03 .. .. .. 00 04 00 00 .. .. ff ff 02 00 00 00 01 00 00
203
204 80 02 <double>
205 80 01 02 28 05 00 01 <len1> <string>
206 80 01 02 28 05 00 01 ff <len2> <string>
207 80 01 03 28 05 80 02 <double> 
208
209 80 00 03
210 80 00 00 00 00 00 00 00 00 00 00 ..
211 80 01 .. .. .. ..
212
213 DspNumber:
214         01 <decimals> <width> <type>
215
216 NDimensional__DspCell:
217         00 int32[ndims]
218
219 IndexedCollection: 7+(9*ndims) bytes
220         00 0e 00 00 00 01 00
221
222         00 22 00 00 00 01 00
223   11 80 00 08 00 00 00 01 00
224
225         00 5c 00 00 00 01 00
226   13 80 00 5c 00 00 00 01 00
227   13 80 00 05 00 00 00 01 00
228
229         00 01 00 00 00 01 00
230   11 80 00 02 00 00 00 01 00
231   11 80 00 03 00 00 00 01 00
232   11 80 00 03 00 00 00 01 00
233
234            ^^ number of categories
235
236 ----------------------------------------------------------------------
237 ab1.dump
238
239 3 dimensions, 92x92x5:
240     NDimensional__DspCell  00 03 00 00 00
241
242     IndexedCollection  00 5c 00 00 00 01 00 13 80 00 5c 00 00 00 01 00 13 80 00 05 00 00 00 01 00
243
244 The cells are in order last dimension changes most quickly.
245
246 ----------------------------------------------------------------------
247
248 ZMAW_zaj3.dump
249
250 4-dimensions, 1x2x3x3, 18 cells
251
252 16 80 -> next 4th dim
253 11 80 00 03 00 00 00 01 00 -> increment another dim
254
255 ----------------------------------------------------------------------
256
257 rec:PMModelItemInfo 00
258  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2 "Contents"                           07 .. .. .. 55 80 .. 57 80 .. 
259  00 .. .. .. .. .. .. .. 07 .. 74 0e cell F40.2   "Output Created"                   .. .. .. .. 55 80 .. 57 80 ..
260  01 .. .. .. .. .. .. .. 08 .. 74 0e cell F40.2   "Comments"                         .. .. .. .. 55 80 .. 57 80 ..
261  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Input"                            06 .. .. .. 55 80 .. 57 80 ..
262  02 .. .. .. .. .. .. .. 0a .. 74 0e cell F40.2     "Data"                           .. .. .. .. 55 80 .. 57 80 ..
263  03 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Active Dataset"                 .. .. .. .. 55 80 .. 57 80 ..
264  04 .. .. .. .. .. .. .. 0e .. 74 0e cell F40.2     "Filter"                         .. .. .. .. 55 80 .. 57 80 ..
265  05 .. .. .. .. .. .. .. 11 .. 74 0e cell F40.2     "Weight"                         .. .. .. .. 55 80 .. 57 80 ..
266  06 .. .. .. .. .. .. .. 12 .. 74 0e cell F40.2     "Split File"                     .. .. .. .. 55 80 .. 57 80 ..
267  07 .. .. .. .. .. .. .. 13 .. 74 0e cell F40.2     "N of Rows in Working Data File" .. .. .. .. 55 80 .. 57 80 .. 
268  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Missing Value Handling"           02 .. .. .. 55 80 .. 57 80 ..
269  08 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Definition of Missing"          .. .. .. .. 55 80 .. 57 80 ..
270  09 .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Cases Used"                     .. .. .. .. 55 80 .. 57 80 ..
271  0a .. .. .. .. .. .. .. 17 .. 74 0e cell F40.2   "Weight Handling"                  .. .. .. .. 55 80 .. 57 80 ..
272  0b .. .. .. .. .. .. .. 18 .. 74 0e cell F40.2   "Syntax"                           .. .. .. .. 55 80 .. 57 80 ..
273  .. .. .. .. .. .. .. .. .. .. .. .. cell F40.2   "Resources"                        03 .. .. .. 55 80 .. 57 80 ..
274  0c .. .. .. .. .. .. .. 1b .. 74 0e cell F40.2     "Elapsed Time"                   .. .. .. .. 55 80 .. 57 80 ..
275  0d .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Maximum Memory Required"        .. .. .. .. 55 80 .. 57 80 ..
276  0e .. .. .. .. .. .. .. .. .. .. .. cell F40.2     "Processor Time"
277
278 ab1:
279
280 rec:PMModelItemInfo ..
281  .. .. .. .. 01 .. .. .. 91 1a 74 0e cell F40.2 "Statistics"                         05 .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
282  00 .. .. .. .. .. .. .. 98 1a 74 0e cell F40.2 "Pearson Correlation"                .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
283  01 .. .. .. .. .. .. .. 99 1a 74 0e cell F40.2 "Sig. (2-tailed)"                    .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
284  02 .. .. .. .. .. .. .. 96 1a 74 0e cell F40.2 "Sum of Squares and Cross-products"  .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
285  03 .. .. .. .. .. .. .. 97 1a 74 0e cell F40.2 "Covariance"                         .. .. .. .. ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
286  04 .. .. .. .. .. .. .. 94 1a 74 0e cell F40.2 "N"                                  .. .. .. .. .. .. .. .. .. ..
287  05 .. .. .. 01 .. ff 7f 57 19 02 .. ff 7f 5b 19 02 .. ff 7f 5f 19 02 .. ff 7f 63 19 02 .. ff 7f 67 19 02 .. .. 05 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. ff 7f 4f 19 02 80 ..
288  ff 7f 51 19 02 80 .. ff 7f 53 19 02 80 ..
289  .. .. .. .. 01 .. .. .. 90 1a 74 0e
290
291 rec:PMModelItemInfo .. ..
292  .. .. .. 01 .. .. .. ff ff ff ff cell F40.2       "score"      01 .. .. .. 86 80 .. 88 80 .. ..
293  .. .. .. .. .. .. .. f4 0e 74 0e cell F40.2         "Valid"    09 .. .. .. 86 80 .. 88 80 .. ..
294  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "17..."  .. .. .. .. 86 80 .. 88 80 .. 01
295  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "22..."  .. .. .. .. 86 80 .. 88 80 .. 02
296  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "26..."  .. .. .. .. 86 80 .. 88 80 .. 03
297  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "29..."  .. .. .. .. 86 80 .. 88 80 .. 04
298  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "33..."  .. .. .. .. 86 80 .. 88 80 .. 05
299  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "37..."  .. .. .. .. 86 80 .. 88 80 .. 06
300  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "40..."  .. .. .. .. 86 80 .. 88 80 .. 07
301  .. .. .. .. .. .. .. ff ff ff ff cell F40.2 xxx19     "48..."  .. .. .. .. 86 80 .. 88 80 .. 08
302  .. .. .. .. .. .. .. f2 0e 74 0e cell F40.2         "Total"    .. .. .. .. .. .. .. .. .. .. 09
303  .. .. .. 01 .. 90 .. 94 .. 98 .. 9c .. a0 .. a4 .. a8 .. ac .. b0 .. .. 09 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. 04 .. .. .. 05 .. .. .. 06 .. .. .. 07 .. .. .. 08 .. ..
304  .. 84 80 .. 86 80 .. 88 80 .. .. .. .. .. 01 .. .. .. eb 0e 74 0e cell F40.2       "Statistics"
305  04 .. .. .. 86 80 .. 88 80 .. .. .. .. .. .. .. .. .. dc 0e 74 0e cell F40.2         "Frequency"
306  .. .. .. .. 86 80 .. 88 80 .. 01 .. .. .. .. .. .. .. e6 0e 74 0e cell F40.2         "Percent"
307  .. .. .. .. 86 80 .. 88 80 .. 02 .. .. .. .. .. .. .. f5 0e 74 0e cell F40.2         "Valid Percent"
308  .. .. .. .. 86 80 .. 88 80 .. 03 .. .. .. .. .. .. .. da 0e 74 0e cell F40.2         "Cumulative Percent"
309  .. .. .. .. .. .. .. .. .. .. 04 .. .. .. 01 .. b9 .. bd .. c1 .. c5 .. .. 04 .. .. .. .. .. .. .. .. .. 01 .. .. .. 02 .. .. .. 03 .. .. .. .. .. .. .. .. 01 .. .. 11 .. .. .. .. .. .. .. .. .. 4b .. .. .. .. .. .. .. .. .. .. ..
310
311 Output_201B:
312
313 rec:PMModelItemInfo       00
314 00 00 00 00 01 00 00 00 00 00 00 00 cell F40.2 "Variables" 5a 00 00 00 64 85 00 66 85 00
315 00 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10149"    00 00 00 00 64 85 00 66 85 00
316 01 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10150"    00 00 00 00 64 85 00 66 85 00
317 02 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10154"    00 00 00 00 64 85 00 66 85 00
318 03 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10168"    00 00 00 00 64 85 00 66 85 00
319 04 00 00 00 00 00 00 00 ff ff ff ff cell F40.2 "i10171"    00 00 00 00 64 85 00 66 85 00
320 05 00 00 00 00 00 00 00 ff ff ff ff
321 cell F40.2 "i10183"
322  00 00 00 00 64 85 00 66 85 00 06 00 00 00 00 00 00 00 ff ff ff ff
323 cell F40.2 "i10184"
324  00 00 00 00 64 85 00 66 85 00 07 00 00 00 00 00 00 00 ff ff ff ff
325 cell F40.2 "i10212"
326  00 00 00 00 64 85 00 66 85 00 08 00 00 00 00 00 00 00 ff ff ff ff
327 cell F40.2 "i10220"
328  00 00 00 00 64 85 00 66 85 00 09 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
329 cell F40.2 "i10222"
330  00 00 00 00 64 85 00 66 85 00 0a 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
331 cell F40.2 "i10226"
332  00 00 00 00 64 85 00 66 85 00 0b 00 00 00 00 00 00 00 ff ff ff ff
333 cell F40.2 "i10228"
334  00 00 00 00 64 85 00 66 85 00 0c 00 00 00 00 00 00 00 ff ff ff ff
335 cell F40.2 "i10229"
336  00 00 00 00 64 85 00 66 85 00 0d 00 00 00 00 00 00 00 ff ff ff ff ....d..f..............
337 cell F40.2 "i10230"
338  00 00 00 00 64 85 00 66 85 00 0e 00 00 00 00 00 00 00 ff ff ff ff
339 cell F40.2 "i10234"
340  00 00 00 00 64 85 00 66 85 00 0f 00 00 00 00 00 00 00 ff ff ff ff
341 cell F40.2 "i10244"
342  00 00 00 00 64 85 00 66 85 00 10 00 00 00 00 00 00 00 ff ff ff ff
343 cell F40.2 "i10247"
344  00 00 00 00 64 85 00 66 85 00 11 00 00 00 00 00 00 00 ff ff ff ff
345 cell F40.2 "i10250"
346  00 00 00 00 64 85 00 66 85 00 12 00 00 00 00 00 00 00 ff ff ff ff
347 cell F40.2 "i10265"
348  00 00 00 00 64 85 00 66 85 00 13 00 00 00 00 00 00 00 ff ff ff ff
349 cell F40.2 "i10266"
350  00 00 00 00 64 85 00 66 85 00 14 00 00 00 00 00 00 00 ff ff ff ff
351 cell F40.2 "i10269"
352  00 00 00 00 64 85 00 66 85 00 15 00 00 00 00 00 00 00 ff ff ff ff
353 cell F40.2 "i10270"
354  00 00 00 00 64 85 00 66 85 00 16 00 00 00 00 00 00 00 ff ff ff ff
355 cell F40.2 "i10272"
356  00 00 00 00 64 85 00 66 85 00 17 00 00 00 00 00 00 00 ff ff ff ff
357 cell F40.2 "i10286"
358  00 00 00 00 64 85 00 66 85 00 18 00 00 00 00 00 00 00 ff ff ff ff
359
360
361
362 ff is a way to say that there's a 4-byte number instead of 1-byte?
363
364
365 01 01 ed ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 bc 02 00 00 00 00 00 00 00 00 00 22 41 72 69 61 6c 00 61 00 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
366 07 80 00 02 00 00 00 0a 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
367 01 01 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 01 00 00 00 00 00 00 00 00 00 22 43 6f 75 72 69 65 72 20 4e 65 77 00 72 00 20 00 4e 00 65 00 77 00 00 00 00 00 00 00 00 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00
368 07 80 00 00 00 00 00 0f 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
369 00
370
371
372  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. 78 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
373  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. ef ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
374  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. bc 02 .. .. 01 .. .. .. .. .. .. 12
375  .. .. .. .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f2 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
376  80 .. 80 .. .. .. a9 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. ab 80 .. 01 .. .. .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22
377
378
379
380 record type 02
381 ==============
382
383 02 int16*4 int32*4
384
385
386
387 rec:NavLog
388
389 02 .. .. .. .. .. .. .. ..
390 18 .. .. .. .. .. .. .. b3 02 .. .. 30 f8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogA" 07 80 .. 02 .. .. .. 0f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
391 18 .. .. .. 0e f8 ff ff b3 02 .. .. 3e f0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogB" 07 80 .. 02 .. .. .. 13 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
392 18 .. .. .. 1c f0 ff ff 5f 02 .. .. 4c e8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogC" 07 80 .. 02 .. .. .. 17 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
393 18 .. .. .. 2a e8 ff ff 5f 02 .. .. 5a e0 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogD" 07 80 .. 02 .. .. .. 1b .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 0e float 0.......
394 18 .. .. .. 38 e0 ff ff 5f 02 .. .. 68 d8 ff ff 01 .. .. .. 01 .. .. cell F40.2 "LogE" 07 80 .. 02 .. .. .. 1f .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. 01 01 f5 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. .. .. .. .. 22 41 72 69 61 6c .. .. .. .. .. .. .. .. .. .. .. .. .. .. rtf .. 02 .. 02 .. .. ..
395
396
397 NavTreeViewItem:
398
399 last bit is the number of children plus one, e.g. here it has 0x12+1
400 children.  It's actually the total number of nodes including the root
401 Output node.
402
403 rec:NavTreeViewItem       .. .. .. .. .. 02 .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 18 .. .. .. .. .. .. .. de ff ff ff 18 .. .. .. .. .. .. .. 28 .. .. .. 28 .. .. .. cb 02 .. .. f0 86 .. .. .. .. .. .. .. f8 2a .. .. 34 21 .. .. 01 .. 0f .. 02 .. f6 04 .. .. f6 04 .. .. f6 04 .. .. f6 04 .. .. .. .. f0 .. .. .. 7c 02 01 .. ...............................................(...(.................*..4!..............................|...
404 "(Continued)"
405  01 01 .. .. ..
406 rtf
407  01 01 .. .. ..
408 rtf
409  .. 13 ..
410
411
412 Node depth:
413
414 The "04 00 00 00 04 00 00" is the number of nodes above the node, in
415 this case 4, three Headings and the Output node.  The first 04 is
416 reliable, the second one is sometimes 01.
417
418     00 01
419     float 0.000000
420      18 00 00 00
421     -46782  5f 02 00 00
422     -48782  04 00 00 00 04 00 00
423     cell F40.2 "LogZ"
424      07 80 00 02 00 00 00 7b 00 01 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 01 01 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90
425     font
426     rtf
427
428 The node numbering is insane: in decimal each node's number decreases
429 (these numbers are negative) by 2000 then by 34 alternately, except
430 that if a node is collapsed it *increases* by 2000 then decreases by
431 2000.  Below (test15.spo), LogI and LogN are collapsed:
432
433     5:rec:NavLog                02 00 00 00 00 00 00 00 00 18 00 00 00
434     6:-83394 (-83394)  5f 02 00 00
435     7:-85394 (-2000)  04 00 00 00 04 00 00 00
436     12:"LogAC"
437     18:-34 (+85360)  18 00 00 00 00 00 00 00 28 00 00 00 28 00 00 00 cb 02 00 00 92 4d 01 00 00 00 00 00 00 f8 2a 00 00 34 21 00 00 01 00 0f 00 02 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 f6 04 00 00 00 00 f0 00 00 00 7c 02 01 00 ........(...(........M........*..4!..............................|...
438     31:-2000 (-1966)  01 00 00 00 01 00 00
439     32:cell F40.2 "LogA"
440     39:-2034 (-34)  b3 02 00 00
441     40:-4034 (-2000)  01 00 00 00 01 00 00
442     41:cell F40.2 "LogB"
443     48:-4068 (-34)  5f 02 00 00
444     49:-6068 (-2000)  01 00 00 00 01 00 00
445     50:cell F40.2 "LogC"
446     57:-6102 (-34)  5f 02 00 00
447     58:-8102 (-2000)  01 00 00 00 01 00 00
448     59:cell F40.2 "LogD"
449     66:-8136 (-34)  5f 02 00 00
450     67:-10136 (-2000)  01 00 00 00 01 00 00
451     68:cell F40.2 "LogE"
452     75:-10170 (-34)  5f 02 00 00
453     76:-12170 (-2000)  01 00 00 00 01 00 00
454     77:cell F40.2 "LogF"
455     88:-12204 (-34)  5f 02 00 00
456     89:-14204 (-2000)  02 00 00 00 02 00 00
457     90:cell F40.2 "LogG"
458     97:-14238 (-34)  5f 02 00 00
459     98:-16238 (-2000)  02 00 00 00 02 00 00
460     99:cell F40.2 "LogH"
461     106:-16272 (-34)  5f 02 00 00
462     107:-18272 (-2000)  02 00 00 00 02 00 00
463     108:cell F40.2 "LogI"
464     115:-16272 (+2000)  5f 02 00 00
465     116:-18272 (-2000)  02 00 00 00 02 00 00
466     117:cell F40.2 "LogJ"
467     124:-18306 (-34)  5f 02 00 00
468     125:-20306 (-2000)  02 00 00 00 02 00 00
469     126:cell F40.2 "LogK"
470     133:-20340 (-34)  5f 02 00 00
471     134:-22340 (-2000)  02 00 00 00 02 00 00
472     135:cell F40.2 "LogL"
473     142:-22374 (-34)  5f 02 00 00
474     143:-24374 (-2000)  02 00 00 00 02 00 00
475     144:cell F40.2 "LogM"
476     151:-24408 (-34)  5f 02 00 00
477     152:-26408 (-2000)  02 00 00 00 02 00 00
478     153:cell F40.2 "LogN"
479     160:-24408 (+2000)  5f 02 00 00
480     161:-26408 (-2000)  02 00 00 00 02 00 00
481     162:cell F40.2 "LogO"
482     169:-26442 (-34)  5f 02 00 00
483     170:-28442 (-2000)  02 00 00 00 02 00 00
484     171:cell F40.2 "LogP"
485     178:-28476 (-34)  5f 02 00 00
486     179:-30476 (-2000)  02 00 00 00 02 00 00
487     180:cell F40.2 "LogQ"
488     187:-30510 (-34)  5f 02 00 00
489     188:-32510 (-2000)  02 00 00 00 02 00 00
490     189:cell F40.2 "LogR"
491     196:-32544 (-34)  5f 02 00 00
492     197:-34544 (-2000)  02 00 00 00 02 00 00
493     198:cell F40.2 "LogS"
494     205:-34578 (-34)  5f 02 00 00
495     206:-36578 (-2000)  02 00 00 00 02 00 00
496     207:cell F40.2 "LogT"
497     214:-36612 (-34)  5f 02 00 00
498     215:-38612 (-2000)  02 00 00 00 02 00 00
499     216:cell F40.2 "LogU"
500     223:-38646 (-34)  5f 02 00 00
501     224:-40646 (-2000)  02 00 00 00 01 00 00
502     225:cell F40.2 "LogV"
503     236:-40680 (-34)  5f 02 00 00
504     237:-42680 (-2000)  03 00 00 00 03 00 00
505     238:cell F40.2 "LogW"
506     245:-42714 (-34)  5f 02 00 00
507     246:-44714 (-2000)  03 00 00 00 03 00 00
508     247:cell F40.2 "LogX"
509     254:-44748 (-34)  5f 02 00 00
510     255:-46748 (-2000)  03 00 00 00 03 00 00
511     256:cell F40.2 "LogY"
512     267:-46782 (-34)  5f 02 00 00
513     268:-48782 (-2000)  04 00 00 00 04 00 00
514     269:cell F40.2 "LogZ"
515     276:-48816 (-34)  5f 02 00 00
516     277:-50816 (-2000)  04 00 00 00 04 00 00
517     278:cell F40.2 "LogAA"
518     285:-50850 (-34)  5f 02 00 00
519     286:-52850 (-2000)  04 00 00 00 04 00 00
520     287:cell F40.2 "LogAB"
521     294:-52884 (-34)  5f 02 00 00
522     295:-54884 (-2000)  04 00 00 00 01 00 00
523     296:cell F40.2 "LogAC"
524     303:-54918 (-34)  5f 02 00 00
525     304:-56918 (-2000)  04 00 00 00 04 00 00
526     305:cell F40.2 "LogAC"
527     312:-56952 (-34)  5f 02 00 00
528     313:-58952 (-2000)  04 00 00 00 04 00 00
529     314:cell F40.2 "LogAC"
530     321:-58986 (-34)  5f 02 00 00
531     322:-60986 (-2000)  04 00 00 00 04 00 00
532     323:cell F40.2 "LogAC"
533     330:-61020 (-34)  5f 02 00 00
534     331:-63020 (-2000)  04 00 00 00 04 00 00
535     332:cell F40.2 "LogAC"
536     339:-63054 (-34)  5f 02 00 00
537     340:-65054 (-2000)  04 00 00 00 04 00 00
538     341:cell F40.2 "LogAC"
539     348:-65088 (-34)  5f 02 00 00
540     349:-67088 (-2000)  04 00 00 00 04 00 00
541     350:cell F40.2 "LogAC"
542     357:-67122 (-34)  5f 02 00 00
543     358:-69122 (-2000)  04 00 00 00 04 00 00
544     359:cell F40.2 "LogAC"
545     366:-69156 (-34)  5f 02 00 00
546     367:-71156 (-2000)  04 00 00 00 04 00 00
547     368:cell F40.2 "LogAC"
548     375:-71190 (-34)  5f 02 00 00
549     376:-73190 (-2000)  04 00 00 00 04 00 00
550     377:cell F40.2 "LogAC"
551     384:-73224 (-34)  5f 02 00 00
552     385:-75224 (-2000)  04 00 00 00 04 00 00
553     386:cell F40.2 "LogAC"
554     393:-75258 (-34)  5f 02 00 00
555     394:-77258 (-2000)  04 00 00 00 04 00 00
556     395:cell F40.2 "LogAC"
557     402:-77292 (-34)  5f 02 00 00
558     403:-79292 (-2000)  04 00 00 00 04 00 00
559     404:cell F40.2 "LogAC"
560     411:-79326 (-34)  5f 02 00 00
561     412:-81326 (-2000)  04 00 00 00 04 00 00
562     413:cell F40.2 "LogAC"
563     420:-81360 (-34)  5f 02 00 00
564     421:-83360 (-2000)  04 00 00 00 04 00 00
565     422:cell F40.2 "LogAC"
566
567
568 ZMAW_zaj3:
569
570 rec:PVTextStyle
571 .. 02 .. 02
572 .. c8 .. LM .. RM .. TM .. BM .. .. .. 01 .. yy yy yy yy ww ww .. .. xx xx xx xx .. .. .. .. zz zz zz zz ii uu ss cc cc cc cc 22 "Arial" FF FF FF .. .. .. a7 80 .. 01 .. .. .. .. .. BB BB BB .. SS .. a9 80 .. 01 .. ..
573 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
574 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. .. .. ..
575 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. 02
576 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 02 .. 03
577 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
578 .. c8 .. 78 .. a0 .. 14 .. 14 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. a7 80 .. 01 .. .. .. .. .. ff ff ff .. .. .. a9 80 .. 01 .. ..
579 .. c8 .. 68 01 68 01 28 .. 28 .. .. .. 01 .. f3 ff ff ff .. .. .. .. .. .. .. .. .. .. .. .. 90 01 .. .. .. .. .. ee 00 00 00 22 "Arial" .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01
580 .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. .. .. 01 .. .. .. .. .. .. .. 01 .. 01 .. .. .. .. .. .. .. 01 ..
581
582 yy: font size, f2ffffff or f3ffffff is normalish, f8ffffff is tiny,
583 f0ffffff is big
584 ww: something to do with font size or stretch. 01 is normal, 02+ gets weird
585 xx: rotation angle
586 zz: 400 is normal weight, 700+ is bold
587 ii: 1+ is italic
588 uu: 1+ is underline
589 ss: 1+ is strikethrough
590 cc: RTF charset number, e.g. 0 for ANSI, 238 for Polish
591 FF: RGB foreground
592 BB: RGB background
593 SS: shade fraction from 0=unshaded to 0xa=opaque
594 LT, RM, TM, BM: margins, 20=1 point
595
596 Some confusion on separation, BB and later seem to correspond to the next area
597
598 Areas:
599 0. title
600 1. layers
601 2. corner
602 3. row heads
603 4. column heads
604 5. data
605 6. caption
606 7. footnotes
607
608  rr gg bb 00 00 00 ss 00 01
609  ff 00 ff 00 00 00 01 00 01 00
610  ff 00 ff 00 00 00 01 00 01 00
611  ff 00 ff 00 00 00 01 00 01 00
612  ff 00 ff 00 00 00 01 00 00 00
613  00 00 00 00 00 00 01 00
614  ff 00 ff 00 00 00 01 00 01 00
615  ff 00 ff 00 00 00 01 00
616
617 rr gg bb: stroke color
618 ss: style, 0=thin, 1=normal, 2=thick, 3=very thick, otherwise weird
619
620 Borders:
621 - horizontal category columns
622 - vertical category columns
623 ...
624 - left inner frame
625 - right inner frame
626 - top inner frame
627 - bottom inner frame
628 - left data area
629 - top data area
630
631
632 ..
633 01 .. ff .. ff .. .. .. .. ..
634 .. .. .. .. .. .. 03 80 ..
635 01 .. ff .. ff .. .. .. .. ..
636 01 .. ff .. ff .. .. .. .. ..
637 01 .. ff .. ff .. .. .. .. ..
638 01 .. ff .. ff .. .. .. .. ..
639
640 ..
641 01 .. .. .. .. .. .. .. .. ..
642 .. .. .. .. .. .. 03 80 ..
643 01 .. .. .. .. .. .. .. .. .. .. ..
644 01 .. .. .. .. .. .. .. .. .. .. ..
645
646 ..
647 01 .. 80 80 80 .. .. .. 01 ..
648 01 .. 80 80 80 .. .. .. 01 ..
649 01 .. 80 80 80 .. .. .. .. ..
650 01 .. 80 80 80 .. .. .. .. ..
651 ba 80 ..
652 01 .. 80 80 80 .. .. .. 01 ..
653 01 .. 80 80 80 .. .. .. 01 ..
654 01 .. 80 80 80 .. .. .. .. ..
655 01 .. 80 80 80 .. .. .. .. ..
656
657 class {00000319-0000-0000-c000-000000000046}: Enhanced Metafile
658    For these, dropping the first 4 bytes of Embedding*/CONTENTS file
659    yields an EMF file that the printemf program can dissect.
660
661 class {62078ae0-e4fe-11cd-838d-0000c0f17248}:
662     harder to pin down what's in these
663
664 view-spo can Edit|copy notes and tables for pasting into other applications
665
666 rigger: contains working graph!
667
668 correspondence:
669  1/01 80 ? "NavRoot"
670  3/03 80 -> "DspSimpleText"
671  5/05 80 -> "DspString" 01 02 28 (00|05) 00 01 b"string"
672  7/07 80 -> "NavTreeViewItem"
673  9/09 80 -> "NavLog"
674 11/0b 80 ?  "NavHead"
675 13/0d 80 ?  "NavTitle"
676 15/0f 80 ???
677 17/11 80 ???
678 19/13 80 ???
679 21/15 80 ???
680 24 18 80 -> "NavNote"
681 29 1d 80 -> "PTPivotController"
682 31 1f 80 -> "PTPivotView"
683 33/21 80 -> "PMPivotModel"
684 35/23 80 -> "NDimensional__DspCell"
685 37/25 80 -> "IndexedCollection"
686 39/27 80 -> "DspCell"
687 41/29 80 ? "DspNumber"
688   /50 80 -> "PMPivotItemTree"
689   /52 80 -> "AbstractTreeBranch"
690   /54 80 -> "PMModelItemInfo"
691
692
693 When the top-level "Output" node is selected for save:
694         04 i0
695         "SPSS Output Document"
696         i1 63
697         ffff 0000 "NavRoot" 02 00*32
698         ffff 0000 "DspSimpleText" 00*10
699         ffff 0000 "DspString" 01 02 28 00 00 01 b"Output"
700         ffff 0000 "NavTreeViewItem" 00 i0 02 00 01 00*9 i1
701 00c0    (i0 | i24) (i24 | i-40) (i0 | i40 | i-40) (i40 | i-34)
702 00d0    (i1048 | some other 3-hex-digit number | i0)
703 00d4    (i0 | some 3 to 4-hex-digit number | i-40)
704 00d8    00*5
705 00dd    (i8500 i11000 | i11000 i8500)
706 00e5    (s1 | s9) (s1 | s7 | s15) (s1 | s2)
707 00eb    i1270*4
708 00fb    s0 i240 s?? s1 b"(Continued)" 01 01 00*3 byte 00*3
709 0116    w"{\rtf... pagetitle}"
710 01fd    01 01 00*3
711 0202    w"{\rtf... page number}"
712 02e9    00 short s2
713
714 (This is a valid spot for the file to contain 00000000 then eof)
715
716 02ee    ffff 0000 "NavLog" 02 i0*2 i24 
717 0307    (i0 | i-40) (i691 | i987) (2-3 digit negative int) i1
718 0317    i0
719 0318    03 80 00*10
720 0324    05 80 01 02 28 05 00 01 b"Log"
721 0333    07 80 00 i2 0a 00 01 00*9 i1 00*2 01 01 (f3|f4) ff ff ff 00*4
722 0357    00*8 90 01 00*9 (22|31)
723 036b    32-bytes of null-padded font name, e.g. "Courier New".
724         Sometimes garbage after the first null.
725 038b    (i80 | i132) 00*8 i1
726 038f    00*8 i1
727 039b    w"{\rtf ... SPSS syntax...}"
728
729 Almost past SPSS syntax (only the } included):
730 0000    '}' 00
731 0002    ffff 0000 "NavHead" 02
732 0010    00*24 i1 i0
733 0030    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
734 0040    28 05 00 01
735 0044    b"Cluster|Crosstabs|..."
736
737 Just past the string:
738 0000    07 80 00 00 00 00 00 0f  00 01 00 00 00 00 00 00
739 0010    00 00 00 01 00 00 00 00  00
740 0019    b"Cluster|Crosstabs|..."
741
742 Just past the string again:
743 0000    00*3
744 0003    ffff 0000 "NavTitle"
745 0011    65 02 00 00 00 00 00 00  00 00 18 00 00 00 byte byte
746 0020    ff ff 00 04 00 00 byte byte
747 0028    ff ff 02 00 00 00 01 00  00 00 03 80 00*10
748 003e    05 80  01 02 28 00 00 01 b"Title"
749 004c    07 80 00 08
750 0050    00 00 00 14 00 01 00*9 01
751 0060    00*5
752 0065    b"Cluster|Crosstabs|..."
753
754 Just past the third string:
755 0000    01 01 ed ff ff ff 00 00  00 00 00 00 00 00 00 00
756 0010    00 00 bc 02 00 00 00 00  00 00 00 00 00 22
757 001e    32-bytes of buggy zero-padded string "Arial"
758 003e    50 00 00 00 00 00 00 00  00 00 00 00 01 00 00 00
759 004e    w"{\rtf...}"
760
761 Almost past the RTF (only } included):
762 0000    '}' 00
763 0002    ffff 0000 "NavNote"
764 0010    02 00 00 00 00 00 00 00 00  18 00 00 00 (i0 | i-40)
765 0020    int int i2 i1
766 0030    03 80 00*10
767 003c    05 80 01 02 28 05 00 01 b"Notes"
768 004a    07 80 00 i7 19 00 01 00 00*2 01 00*5 01 00*5
769 0063    b"Cluster|Crosstabs|..."
770
771 Just past the fourth string:
772 0000    01
773
774 0001    ffff 0000 "PTPivotController"
775 0018    02
776 0019    byte*8    # weird ASCIIish garbage
777 0021    i100*4
778
779 0031    ffff 0000 "PVPivotView"
780 0042    05 00 00 00 00
781
782 0047    ffff 0000 "PMPivotModel"
783 0059    03
784
785 005a    ffff 0000 "NDimensional__DspCell"
786 0075    00 01 00 00 00
787
788 007a    ffff 0000 "IndexedCollection"
789 0091    00 byte 00 00 00 01 00
790
791 0098    ffff 0000 "DspCell"
792 00a6    00
793 00a7    03 80 00*10
794
795 Fork: cell contains number ("as-number"):
796 00b2    ffff 0000 "DspNumber"
797 00c1    01 00 14 16       # 00 14 16 is DATETIME20.0
798 00c5    80 02
799 00c7    double            # seconds since 1582...
800 00cf    b"16-APR-2007 15:20:00"    # or whatever
801 00e4    27
802 00e5    80 00 03 80 00 00 00  00 00 00 00 00 00 00 05
803 00f4    80 01 02 28 05 00 01 01  20
804         # Some files have extra 00 00 here
805         # but we're only considering as-number-nozeros
806 00fd    27 80 00
807 0100    03 80 00*10
808 010e    05 80 01 02 28 05 00 01
809 0114    # Either b"filename" with a length < 255
810         # or ff "filename" with a length >= 255
811
812 as-number-nozeros, after filename:
813 0000    27 80 00
814 0003    03 80 00*10 05
815 0010    80 01 02 28 05 00 01 b"<none> or DataSet1 or whatever"
816
817 as-number-nozeros, after dataset name:
818 0000    27 80 00
819 0003    03 80 00*10 05
820 0010    80 01 02 28 05 00 01 b"<none>"
821
822 # Some files have extra 00*8 here, we skip it:
823 0000    27 80 00
824 0003    03 80 00*5 (00|10) 00*4 05
825 0010    80 01 02 28 05 00 01 b"<none> or DATASET..."
826
827 as-number-nozeros-majority, after dataset name:
828 0000    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"<none>"
829 001e    27 80 00 03 80 00*10 2a 80 01 00 28 05 80 02 100.0 b"100"
830         # Followed by 6 optional zeros
831
832 as-number-nozeros-majority, after optional zeros:
833 0000    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"User-defined missing values..."
834                        ^ sixth 00 may be 10 instead
835
836 as-number-nozeros-majority, after "User-defined missing values...":
837 0000    27 80 00 03 80 00*10 (05|2a) 80 01 02 28 05 00 01 b"Statistics are based on..."
838
839 as-number-nozeros-majority, after "Statistics are based on...":
840 0000    00 00
841 0002    27 80 00 03 80 00*10 05 80 01 02 28 05 00 01 b"syntax fragment"
842                        ^ sixth 00 may be 10 instead
843
844 as-number-nozeros-majority, after syntax fragment:
845 0000    27 80 00 03 80 00*10 2a 80 01 02 0d 15 80 02 double b"0:00:00.02"
846 selecting for the ones that include Processor Time instead of RAM:
847 002a    27 80 00 03 80 00*10 2a 80 01 02 0d 15 80 02 double b"0:00:00.03"
848 0054    01 00 b"Notes" 00*4
849 0060    b"Cluster_Notes"
850
851 processor-time, after previous string:
852 0000    00 01 00 00 00 01 00
853
854 0007    ffff 0000 "PMPivotItemTree" 00
855 001d    ffff 0000 "AbstractTreeBranch" 00
856 0036    ffff 0000 "PMModelItemInfo"
857                  00*9 byte*3 0e 00 03 80 00*10
858 0065    05 80 01 02 28 05 00 01 b"Contents" i7
859         52 80 00
860         54 80 00 00*9 07 00 74 0e 00 03 80 00*10
861 0099    05 80 01 02 28 05 00 01 b"Output Created" i0
862         52 80 00
863         54 80 00 01 00*7 08 00 74 0e 00 03 80 00*10
864 00d3    05 80 01 02 28 05 00 01 b"Comments" i0
865 00e8    52 80 00
866         54 80 00*9 09 00 74 0e 00 03 80 00*10
867         05 80 01 02 28 05 00 01 b"Input" i6
868         52 80 00
869         54 80 00 02 00*7 0a 00 74 0e 00 03 80 00*10
870 0138    05 80 01 02 28 05 00 01 b"Data" i0
871         52 80 00
872         54 80 00 03 00*12 03 80 00*10
873         05 80 01 02 28 05 00 01 b"Active Dataset" i0
874 0183    52 80 00
875         54 80 00 04 00*7 0e 00 74 0e 00 03 80 00*9
876 01a2    05 80 01 02 28 05 00 01 b"Filter" i0
877 01b5    52 80 00
878         54 80 00 05 00*7 11 00 74 0e 00 03 80 00*10
879 01d4    05 80 01 02 28 05 00 01 b"Weight" i0
880 01e7    52 80 00
881         54 80 00 06 00 00
882 01f0    00 00 00 00 00 12 00 74  0e 00 03 80 00 00 00 00
883 0200    00 00 00 00 00 00 05 80  01 02 28 05 00 01 b"Split File"
884 0219    00 00 00 00 52 80 00
885 0220    54 80 00 07 00 00 00 00  00 00 00 13 00 74 0e 00
886 0230    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
887 0240    28 05 00 01 b"N of Rows in Working Data File"
888 0263    00 00 00 00 52  80 00 54 80 00 00 00 00
889 0270    00 00 00 00 00 byte*2 74 0e 00 03 80 00 00 00 00
890 0280    00 00 00 00 00 00 05 80  01 02 28 05 00 01
891 028e    b"Missing Value Handling"
892 02a5    02 00 00  00 52 80 00 54 80 00 08
893 02b0    00 00 00 00 00 00 00 byte*2 74 0e 00 03 80 00 00
894 02c0    00 00 00 00 00 00 00 00  05 80 01 02 28 05 00 01
895 02d0    b"Definition of Missing"
896 02e6    00 00  00 00 52 80 00 54 80 00
897 02f0    09 00 00 00 00 00 00 00  byte*2 74 0e 00 03 80 00
898 0300    00 00 00 00 00 00 00 00  00 05 80 01 02 28 05 00
899 0310    01 b"Cases Used" 00*4
900 0320    52 80 00 54 80 00 0a 00  00 00 00 00 00 00 17 00
901 0330    74 0e 00 03 80 00 00 00  00 00 00 00 00 00 00 05
902 0340    80 01 02 28 05 00 01 b"Weight Handling"
903 0357    00 00 00 00 52 80 00 54 80
904 0360    00 0b 00 00 00 00 00 00  00 18 00 74 0e 00 03 80
905 0370    00 00 00 00 00 00 00 00  00 00 05 80 01 02 28 05
906 0380    00 01 b"Syntax" 00 00 00 00 52 80 00
907 0390    54 80 00 00 00 00 00 00  00 00 00 byte*2 74 0e 00
908 03a0    03 80 00 00 00 00 00 00  00 00 00 00 05 80 01 02
909 03b0    28 05 00 01 b"Resources" 02 00
910 03c0    00 00 52 80 00 54 80 00  0c 00 00 00 00 00 00 00
911 03d0    1b 00 74 0e 00 03 80 00  00 00 00 00 00 00 00 00
912 03e0    00 05 80 01 02 28 05 00  01 b"Elapsed Time"
913 03f6    00 00  00 00 52 80 00 54 80 00
914 0400    0d 00 00 00 00 00 00 00  00 00 00 00 00 03 80 00
915 0410    00 00 00 00 00 00 00 00  00 05 80 01 02 28 05 00
916 0420    01 b"Processor Time"
917 0430    00 00 00 00 00 00 00 00  00 00 0e 00 00 00 01 00
918 0440    58 00 5c 00 64 00 68 00  6c 00 70 00 74 00 78 00
919 0450    80 00 84 00 88 00 8c 00  94 00 98 00 00 0e 00 00
920 0460    00 00 00 00 00 00 00 01  00 00 00 02 00 00 00 03
921 0470    00 00 00 04 00 00 00 05  00 00 00 06 00 00 00 07
922 0480    00 00 00 08 00 00 00 09  00 00 00 0a 00 00 00 0b
923 0490    00 00 00 0c 00 00 00 0d  00 00 00 00 00 00 00 00
924 04a0    01 00 00 11 00 00 00 00  00 04 00 00 00 e1 00 00
925 04b0    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
926 04c0    00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00
927 04d0    00 00 00 00 00 00 00 00  00 00 00 00 00 01 00 00
928 04e0    00 01 00 ff ff 00 00 b"PVViewDimension"
929 04f8    00 51 00 00 00 00 00 00
930 0500    00 00 00 00 0e 00 00 00  00 00 69 00 00 00 54 00
931 0510    00 00 4b 00 00 00 63 00  00 00 4b 00 00 00 4b 00
932 0520    00 00 4b 00 00 00 7d 00  00 00 87 00 00 00 5c 00
933 0530    00 00 72 00 00 00 4b 00  00 00 63 00 00 00 6f 00
934 0540    00 00 00 03 00 00 00 00  00 00 00 00 00 00 00 00
935 0550    00 87 00 00 00 00 03 80  00 00 00 00 00 00 00 00
936 0560    00 00 05 80 01 02 28 05  00 01 b"Notes"
937 0570    00 03 80 00 00 00 00 00  00 00 00 00 00 05 80 01
938 0580    02 28 00 00 01 00 00 00  00 00 00 00 00 00 03 80
939 0590    00 00 00 00 00 00 00 00  00 00 05 80 01 02 28 00
940 05a0    00 01 00
941
942 05a3    ffff 0000 "PTTableLook"
943 05b4    02 02 00 00  00 00 00 00 00 36 00 00
944 05c0    00 12 00 00 00
945
946 05c5    ffff 0000 "PVSeparatorStyle"
947 05db    00 01 00 00 00
948 05e0    00 00 00 00 00 00 00 00  00 00 00 00 a6 80 00 01  |................|
949 05f0    00 00 00 00 00 00 00 00  00 01 00 00 00 00 00 00  |................|
950 0600    00 00 00 01 00 00 00 00  00 00 00 00 00 01 00 00  |................|
951 0610    00 00 00 00 00 00 00
952
953 0607    ffff 0000 "PVCellStyle"
954 0628    00 01 00 00 00 00 00 ff
955
956 0630    ffff 0000 00
957
958 0637    ffff 0000 "PVTextStyle"
959 0646    00 02 00 02 00 c8 00 78 00 a0
960 0650    00 14 00 78 00 00 00 01  00 f3 ff ff ff 00 00 00
961 0660    00 00 00 00 00 00 00 00  00 bc 02 00 00 00 00 00
962 0670    00 00 00 00 22 b"Arial" 00 00 00 00 00
963 0680    00 a9 80 00 01 00 00 00  00 00 ff ff ff 00 00 00
964 0690    ab 80 00 01 00 00 00 c8  00 78 00 a0 00 14 00 14
965 06a0    00 00 00 01 00 f3 ff ff  ff 00 00 00 00 00 00 00
966 06b0    00 00 00 00 00 90 01 00  00 00 00 00 00 00 00 00
967 06c0    22 b"Arial" 00  00 00 00 00 00 a9 80 00
968 06d0    01 00 00 00 00 00 ff ff  ff 00 00 00 ab 80 00 01
969 06e0    00 00 00 c8 00 78 00 a0  00 14 00 14 00 00 00 01
970 06f0    00 f3 ff ff ff 00 00 00  00 00 00 00 00 00 00 00
971 0700    00 90 01 00 00 00 00 00  00 00 00 00 22 b"Arial"
972 0713    00 00 00 00 00  00 a9 80 00 01 00 00 00
973 0720    00 00 ff ff ff 00 00 00  ab 80 00 00 00 00 00 c8
974 0730    00 78 00 a0 00 14 00 14  00 00 00 01 00 f3 ff ff
975 0740    ff 00 00 00 00 00 00 00  00 00 00 00 00 90 01 00
976 0750    00 00 00 00 00 00 00 00  22 b"Arial" 00
977 0760    00 00 00 00 00 a9 80 00  01 00 00 00 00 00 ff ff
978 0770    ff 00 00 00 ab 80 00 01  00 02 00 c8 00 78 00 a0
979 0780    00 14 00 14 00 00 00 01  00 f3 ff ff ff 00 00 00
980 0790    00 00 00 00 00 00 00 00  00 90 01 00 00 00 00 00
981 07a0    00 00 00 00 22 b"Arial" 00 00 00 00 00
982 07b0    00 a9 80 00 01 00 00 00  00 00 ff ff ff 00 00 00
983 07c0    ab 80 00 02 00 03 00 c8  00 78 00 a0 00 14 00 14
984 07d0    00 00 00 01 00 f3 ff ff  ff 00 00 00 00 00 00 00
985 07e0    00 00 00 00 00 90 01 00  00 00 00 00 00 00 00 00
986 07f0    22 b"Arial" 00  00 00 00 00 00 a9 80 00
987 0800    01 00 00 00 00 00 ff ff  ff 00 00 00 ab 80 00 01
988 0810    00 00 00 c8 00 78 00 a0  00 14 00 14 00 00 00 01
989 0820    00 f3 ff ff ff 00 00 00  00 00 00 00 00 00 00 00
990 0830    00 90 01 00 00 00 00 00  00 00 00 00 22 b"Arial"
991 0843    00 00 00 00 00  00 a9 80 00 01 00 00 00
992 0850    00 00 ff ff ff 00 00 00  ab 80 00 01 00 00 00 c8
993 0860    00 68 01 68 01 28 00 28  00 00 00 01 00 f3 ff ff
994 0870    ff 00 00 00 00 00 00 00  00 00 00 00 00 90 01 00
995 0880    00 00 00 00 00 00 00 00  22 b"Arial" 00
996 0890    00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 01
997 08a0    00 01 00 00 00 00 00 00  00 01 00 01 00 00 00 00
998 08b0    00 00 00 01 00 01 00 00  00 00 00 00 00 01 00 00
999 08c0    00 00 00 00 00 00 00 01  00 00 00 00 00 00 00 01
1000 08d0    00 01 00 00 00 00 00 00  00 01 00 b"(cont.)"
1001 08e3    24 00 00 00 48  00 00 00 24 00 00 00 78
1002 08f0    00 00 00 00 00 00 00 00  00 00 00
1003
1004 08fb    ffff 0000 "PVPrintManager" 02
1005 0910    1e 00 02 00 00 00 03 00  00 00 01 00 00 00 00 00
1006 0920    00 00 00 00 00 00 00
1007
1008 0927    ffff 0000 "NavText"
1009 0934    02 00 00 00  00 00 00 00 00 18 00 00
1010 0940    00 byte*2 ff ff byte*2 00  00 byte*2 ff ff 02 00 00
1011 0950    00 01 00 00 00 03 80 00  00 00 00 00 00 00 00 00
1012 0960    00 05 80 01 02 28 05 00  01 b"Active Dataset"
1013 0978    07 80 00 10 00 00 00 be
1014 0980    00 01 00 00 00 00 00 00  00 00 00 01 00 00 00 00
1015 0990    00 b"Cluster etc." 07 43 6c 75 73 74 65  72 01 01 f3 ff ff ff 00
1016 0990    00 0b 46 72 65 71 75 65  6e 63 69 65 73 01 01 f3
1017
1018 Just past "Cluster":
1019 0000    01 01 (f3|f4) ff ff ff 00 00  00 00 00 00 00 00 00 00
1020 0010    00 00 90 01 00 00 00 00  00 00 00 00 00 (22|31)
1021 001e    32-bytes of null-padded font name, e.g. "Courier New".
1022         Sometimes garbage after the first null.
1023 003e    byte 00*11 w"{\rtf... giving filesystem path}"
1024
1025 Almost past RTF (just trailing }):
1026 0000    '}' ffff 0000 "NavPivot" 02 int int i24 int
1027 0020    int int i2 i1
1028 0030    03 80 00*10 05 80 01 02
1029 0040    28 05 00 01 b"Statistics etc."
1030
1031 Just past "Statistics":
1032 0000    07 80 00 0c 00 00 00 c3  00 01 00 00 00 00 00 00
1033 0010    00 00 00 01 00 00 00 00  00 b"Cluster etc."
1034
1035 Just past "Cluster", using boot/Contents as exemplary:
1036 0000    01
1037 0001    1d 80 02 i0*2 i100*4        # 1d 80 corresponds to "PTPivotController"
1038 001c    1f 80 05 00*4               # 1f 80 corresponds to "PTPivotView"
1039 0023    21 80 03                    # 21 80 corresponds to "PMPivotModel"
1040 0026    23 80 00 (02|03) 00 00 00   # 23 80 corresponds to "NDimensional__DspCell"
1041 002d    25 80 00 i100 01 00         # 25 80 corresponds to "IndexedCollection"
1042 0036    25 80 00 i100 01 00
1043 003f    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 100.0 b"100"
1044 0062    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 100.0 b"100"
1045         ...repeats...
1046 0f03    25 80 00 6c 00 00 00 01 00
1047 0f0c    27 80 00 03 80 00*10 2a 80 01 F40.0 80 02 0.0 b"0"
1048         ...repeats...
1049 1cf8    25 80 00 6c 00 00 00 01 00
1050 1d01    27 80 00 03 80 00*10 2a 80 01 F40.8 1
1051
1052 Notes
1053 Output Created          16-JAN-2008 02:45:55
1054 Comments                 
1055 Input   Data    \\Ugly\amead\consulting\center\Dell\Exams\RE\analyses\Blended15\pilotdata-2008-01-15.csv
1056         Active Dataset  raw1
1057         Filter  <none>
1058         Weight  <none>
1059         Split File      <none>
1060         N of Rows in Working Data File  366
1061 Missing Value Handling  Definition of Missing   User-defined missing values are treated as missing.
1062         Cases Used      Statistics are based on all cases with valid data.
1063 Syntax          FREQUENCIES\r  VARIABLES=exam_id exam_name restarts\r  /ORDER=  ANALYSIS .\r
1064 Resources       Elapsed Time    0:00:00.02
1065         Processor Time  0:00:00.03