1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_svx.hxx"
26 #include "svx/EnhancedCustomShapeGeometry.hxx"
27 #include <com/sun/star/drawing/EnhancedCustomShapeGluePointType.hpp>
28 /*
29 static const SvxMSDffVertPair Vert[] =
30 {
31 	{ 0, 0, }
32 };
33 static const sal_uInt16 Segm[] =
34 {
35 	0x4000,
36 	0x8000
37 };
38 static const SvxMSDffCalculationData Calc[] =
39 {
40 	{ 0x0000, 0, 0, 0 }
41 };
42 static const sal_Int32 Default[] =
43 {
44 	0
45 };
46 static const SvxMSDffTextRect TextRect[] =
47 {
48 	{ { 0, 0 }, { 0, 0 } }
49 };
50 static const mso_CustomShape mso =
51 {
52 	(SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
53 	(sal_uInt16*)mso_sptSegm, sizeof( mso_sptSegm ) >> 1,
54 	(SvxMSDffCalculationData*)mso_sptCalc, sizeof( mso_sptCalc ) / sizeof( SvxMSDffCalculationData ),
55 	(sal_Int32*)mso_sptDefault,
56 	(SvxMSDffTextRectangles*)mso_sptTextRect, sizeof( mso_sptTextRect ) / sizeof( SvxMSDffTextRectangles ),
57 	21600, 21600,
58 	0x80000000, 0x80000000,
59 	(SvxMSDffVertPair*)mso_sptVert, sizeof( mso_sptVert ) / sizeof( SvxMSDffVertPair ),
60 	(SvxMSDffHandles*)mso_sptHandles, sizeof( mso_sptHandles ) / sizeof( SvxMSDffHandles )
61 };
62 */
63 
64 static const sal_Int32 mso_sptDefault0[] =
65 {
66 	1, 0
67 };
68 static const sal_Int32 mso_sptDefault1400[] =
69 {
70 	1, 1400
71 };
72 static const sal_Int32 mso_sptDefault1800[] =
73 {
74 	1, 1800
75 };
76 static const sal_Int32 mso_sptDefault2500[] =
77 {
78 	1, 2500
79 };
80 static const sal_Int32 mso_sptDefault2700[] =
81 {
82 	1, 2700
83 };
84 static const sal_Int32 mso_sptDefault3600[] =
85 {
86 	1, 3600
87 };
88 static const sal_Int32 mso_sptDefault3700[] =
89 {
90 	1, 3700
91 };
92 static const sal_Int32 mso_sptDefault5400[] =
93 {
94 	1, 5400
95 };
96 static const sal_Int32 mso_sptDefault7200[] =
97 {
98 	1, 7200
99 };
100 static const sal_Int32 mso_sptDefault8100[] =
101 {
102 	1, 8100
103 };
104 static const sal_Int32 mso_sptDefault9600[] =
105 {
106 	1, 9600
107 };
108 static const sal_Int32 mso_sptDefault10800[] =
109 {
110 	1, 10800
111 };
112 static const sal_Int32 mso_sptDefault12000[] =
113 {
114 	1, 12000
115 };
116 static const sal_Int32 mso_sptDefault13500[] =
117 {
118 	1, 13500
119 };
120 static const sal_Int32 mso_sptDefault16200[] =
121 {
122 	1, 16200
123 };
124 static const sal_Int32 mso_sptDefault16200and5400[] =
125 {
126 	2, 16200, 5400
127 };
128 
129 static const SvxMSDffVertPair mso_sptArcVert[] =
130 {
131 	{ 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }, { 10800, 10800 },
132 	{ 0, 0 }, { 21600, 21600 }, { 3 MSO_I, 1 MSO_I }, { 7 MSO_I, 5 MSO_I }
133 };
134 static const sal_uInt16 mso_sptArcSegm[] =
135 {
136 	0xa504, 0xab00, 0x0001, 0x6001, 0x8000,
137 	0xa504, 0xaa00, 0x8000
138 };
139 static const SvxMSDffCalculationData mso_sptArcCalc[] =
140 {
141 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
142 	{ 0x2000, { 0x400, 10800, 0 } },
143 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
144 	{ 0x2000, { 0x402, 10800, 0 } },
145 	{ 0x4009, { 10800, DFF_Prop_adjust2Value, 0 } },
146 	{ 0x2000, { 0x404, 10800, 0 } },
147 	{ 0x400a, { 10800, DFF_Prop_adjust2Value, 0 } },
148 	{ 0x2000, { 0x406, 10800, 0 } }
149 };
150 static const sal_Int32 mso_sptArcDefault[] =
151 {
152 	2, 270, 0
153 };
154 static const SvxMSDffVertPair mso_sptStandardGluePoints[] =
155 {
156 	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
157 };
158 static const SvxMSDffHandle mso_sptArcHandle[] =
159 {
160 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
161 		10800, 0x100, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff },
162 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
163 		10800, 0x101, 10800, 10800, 10800, 10800, 0x80000000, 0x7fffffff }
164 };
165 static const mso_CustomShape msoArc =
166 {
167 	(SvxMSDffVertPair*)mso_sptArcVert, sizeof( mso_sptArcVert ) / sizeof( SvxMSDffVertPair ),
168 	(sal_uInt16*)mso_sptArcSegm, sizeof( mso_sptArcSegm ) >> 1,
169 	(SvxMSDffCalculationData*)mso_sptArcCalc, sizeof( mso_sptArcCalc ) / sizeof( SvxMSDffCalculationData ),
170 	(sal_Int32*)mso_sptArcDefault,
171 	NULL, 0,
172 	21600, 21600,
173 	0x80000000, 0x80000000,
174 	NULL, 0,
175 	(SvxMSDffHandle*)mso_sptArcHandle, sizeof( mso_sptArcHandle ) / sizeof( SvxMSDffHandle )		// handles
176 };
177 
178 static const SvxMSDffVertPair mso_sptTextSimpleVert[] =
179 {
180 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
181 };
182 static const mso_CustomShape msoTextSimple =
183 {
184 	(SvxMSDffVertPair*)mso_sptTextSimpleVert, sizeof( mso_sptTextSimpleVert ) / sizeof( SvxMSDffVertPair ),
185 	NULL, 0,
186 	NULL, 0,
187 	NULL,
188 	NULL, 0,
189 	21600, 21600,
190 	0x80000000, 0x80000000,
191 	NULL, 0,
192 	NULL, 0		// handles
193 };
194 
195 static const SvxMSDffVertPair mso_sptRectangleVert[] =
196 {
197 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
198 };
199 static const mso_CustomShape msoRectangle =
200 {
201 	(SvxMSDffVertPair*)mso_sptRectangleVert, sizeof( mso_sptRectangleVert ) / sizeof( SvxMSDffVertPair ),
202 	NULL, 0,
203 	NULL, 0,
204 	NULL,
205 	NULL, 0,
206 	21600, 21600,
207 	0x80000000, 0x80000000,
208 	NULL, 0,
209 	NULL, 0		// handles
210 };
211 
212 static const SvxMSDffVertPair mso_sptRoundRectangleVert[] =	// adj value 0 -> 10800
213 {
214 	{ 7 MSO_I, 0 }, { 0, 8 MSO_I },	{ 0, 9 MSO_I }, { 7 MSO_I, 21600 },
215 	{ 10 MSO_I, 21600 }, { 21600, 9 MSO_I }, { 21600, 8 MSO_I }, { 10 MSO_I, 0 }
216 };
217 static const sal_uInt16 mso_sptRoundRectangleSegm[] =
218 {
219 	0x4000, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x6000, 0x8000
220 };
221 static const SvxMSDffCalculationData mso_sptRoundRectangleCalc[] =
222 {
223 	{ 0x000e, { 0, 45, 0 } },
224 	{ 0x6009, { DFF_Prop_adjustValue, 0x400, 0 } },
225 	{ 0x2001, { 0x401, 3163, 7636 } },
226 	{ 0x6000, { DFF_Prop_geoLeft, 0x402, 0 } },
227 	{ 0x6000, { DFF_Prop_geoTop, 0x402, 0 } },
228 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },
229 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x402 } },
230 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
231 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
232 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
233 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } }
234 };
235 static const SvxMSDffTextRectangles mso_sptRoundRectangleTextRect[] =
236 {
237 	{ { 3 MSO_I, 4 MSO_I }, { 5 MSO_I, 6 MSO_I } }
238 };
239 static const SvxMSDffHandle mso_sptRoundRectangleHandle[] =
240 {
241 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
242 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
243 };
244 static const mso_CustomShape msoRoundRectangle =
245 {
246 	(SvxMSDffVertPair*)mso_sptRoundRectangleVert, sizeof( mso_sptRoundRectangleVert ) / sizeof( SvxMSDffVertPair ),
247 	(sal_uInt16*)mso_sptRoundRectangleSegm, sizeof( mso_sptRoundRectangleSegm ) >> 1,
248 	(SvxMSDffCalculationData*)mso_sptRoundRectangleCalc, sizeof( mso_sptRoundRectangleCalc ) / sizeof( SvxMSDffCalculationData ),
249 	(sal_Int32*)mso_sptDefault3600,
250 	(SvxMSDffTextRectangles*)mso_sptRoundRectangleTextRect, sizeof( mso_sptRoundRectangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
251 	21600, 21600,
252 	10800, 10800,
253 	NULL, 0,
254 	(SvxMSDffHandle*)mso_sptRoundRectangleHandle, sizeof( mso_sptRoundRectangleHandle ) / sizeof( SvxMSDffHandle )		// handles
255 };
256 
257 static const SvxMSDffVertPair mso_sptRightTriangleVert[] =
258 {
259 	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
260 };
261 static const SvxMSDffTextRectangles mso_sptRightTriangleTextRect[] =
262 {
263 	{ { 1900, 12700 }, { 12700, 19700 } }
264 };
265 static const SvxMSDffVertPair mso_sptRightTriangleGluePoints[] =
266 {
267 	{ 0, 0 }, { 0, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 10800, 10800 }
268 };
269 static const mso_CustomShape msoRightTriangle =
270 {
271 	(SvxMSDffVertPair*)mso_sptRightTriangleVert, sizeof( mso_sptRightTriangleVert ) / sizeof( SvxMSDffVertPair ),
272 	NULL, 0,
273 	NULL, 0,
274 	NULL,
275 	(SvxMSDffTextRectangles*)mso_sptRightTriangleTextRect, sizeof( mso_sptRightTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
276 	21600, 21600,
277 	0x80000000, 0x80000000,
278 	(SvxMSDffVertPair*)mso_sptRightTriangleGluePoints, sizeof( mso_sptRightTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
279 	NULL, 0		// handles
280 };
281 
282 static const SvxMSDffVertPair mso_sptEllipseVert[] =
283 {
284 	{ 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
285 };
286 static const sal_uInt16 mso_sptEllipseSegm[] =
287 {
288 	0xa203, 0x6000, 0x8000
289 };
290 static const SvxMSDffTextRectangles mso_sptEllipseTextRect[] =
291 {
292 	{ { 3163, 3163 }, { 18437, 18437 } }
293 };
294 static const SvxMSDffVertPair mso_sptEllipseGluePoints[] =
295 {
296 	{ 10800, 0 }, { 3163, 3163 }, { 0, 10800 }, { 3163, 18437 }, { 10800, 21600 }, { 18437, 18437 }, { 21600, 10800 }, { 18437, 3163 }
297 };
298 static const mso_CustomShape msoEllipse =
299 {
300 	(SvxMSDffVertPair*)mso_sptEllipseVert, sizeof( mso_sptEllipseVert ) / sizeof( SvxMSDffVertPair ),
301 	(sal_uInt16*)mso_sptEllipseSegm, sizeof( mso_sptEllipseSegm ) >> 1,
302 	NULL, 0,
303 	NULL,
304 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
305 	21600, 21600,
306 	0x80000000, 0x80000000,
307 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
308 	NULL, 0		// handles
309 };
310 
311 static const SvxMSDffVertPair mso_sptParallelogramVert[] =	// adjustment1 : 0 - 21600
312 {
313 	{ 0 MSO_I, 0 },	{ 21600, 0 }, { 1 MSO_I, 21600 }, { 0, 21600 }
314 };
315 static const sal_uInt16 mso_sptParallelogramSegm[] =
316 {
317 	0x4000,	0x0003,	0x6001,	0x8000
318 };
319 static const SvxMSDffCalculationData mso_sptParallelogramCalc[] =
320 {
321 	{ 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
322 	{ 0x8000, { 0, 21600, DFF_Prop_adjustValue } },
323 	{ 0x2001, { DFF_Prop_adjustValue, 10, 24 } },
324 	{ 0x2000, { 0x0402, 1750, 0 } },
325 	{ 0x8000, { 21600, 0, 0x0403 } },
326 	{ 0x2001, { 0x400, 1, 2 } },
327 	{ 0x4000, { 10800, 0x405, 0 } },
328 	{ 0x2000, { 0x400, 0, 10800 } },
329 	{ 0x6006, { 0x407, 0x40d, 0 } },
330 	{ 0x8000, { 10800, 0, 0x405 } },
331 	{ 0x6006, { 0x407, 0x40c, 21600 } },
332 	{ 0x8000, { 21600, 0, 0x405 } },
333 	{ 0x8001, { 21600, 10800, 0x400 } },
334 	{ 0x8000, { 21600, 0, 0x40c } }
335 };
336 static const SvxMSDffTextRectangles mso_sptParallelogramTextRect[] =
337 {
338 	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
339 };
340 static const SvxMSDffVertPair mso_sptParallelogramGluePoints[] =
341 {
342 	{ 6 MSO_I, 0 }, { 10800, 8 MSO_I }, { 11 MSO_I, 10800 }, { 9 MSO_I, 21600 }, { 10800, 10 MSO_I }, { 5 MSO_I, 10800 }
343 };
344 static const SvxMSDffHandle mso_sptParallelogramHandle[] =
345 {
346 	{	MSDFF_HANDLE_FLAGS_RANGE,
347 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
348 };
349 static const mso_CustomShape msoParallelogram =
350 {
351 	(SvxMSDffVertPair*)mso_sptParallelogramVert, sizeof( mso_sptParallelogramVert ) / sizeof( SvxMSDffVertPair ),
352 	(sal_uInt16*)mso_sptParallelogramSegm, sizeof( mso_sptParallelogramSegm ) >> 1,
353 	(SvxMSDffCalculationData*)mso_sptParallelogramCalc, sizeof( mso_sptParallelogramCalc ) / sizeof( SvxMSDffCalculationData ),
354 	(sal_Int32*)mso_sptDefault5400,
355 	(SvxMSDffTextRectangles*)mso_sptParallelogramTextRect, sizeof( mso_sptParallelogramTextRect ) / sizeof( SvxMSDffTextRectangles ),
356 	21600, 21600,
357 	0x80000000, 0x80000000,
358 	(SvxMSDffVertPair*)mso_sptParallelogramGluePoints, sizeof( mso_sptParallelogramGluePoints ) / sizeof( SvxMSDffVertPair ),
359 	(SvxMSDffHandle*)mso_sptParallelogramHandle, sizeof( mso_sptParallelogramHandle ) / sizeof( SvxMSDffHandle )		// handles
360 };
361 
362 static const SvxMSDffVertPair mso_sptDiamondVert[] =
363 {
364 	{ 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, {	0, 10800 }, { 10800, 0 }
365 };
366 static const SvxMSDffTextRectangles mso_sptDiamondTextRect[] =
367 {
368 	{ { 5400, 5400 }, { 16200, 16200 } }
369 };
370 static const mso_CustomShape msoDiamond =
371 {
372 	(SvxMSDffVertPair*)mso_sptDiamondVert, sizeof( mso_sptDiamondVert ) / sizeof( SvxMSDffVertPair ),
373 	NULL, 0,
374 	NULL, 0,
375 	NULL,
376 	(SvxMSDffTextRectangles*)mso_sptDiamondTextRect, sizeof( mso_sptDiamondTextRect ) / sizeof( SvxMSDffTextRectangles ),
377 	21600, 21600,
378 	0x80000000, 0x80000000,
379 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
380 	NULL, 0		// handles
381 };
382 
383 static const SvxMSDffVertPair mso_sptTrapezoidVert[] =		// adjustment1 : 0 - 10800
384 {
385 	{ 0, 0 }, { 21600, 0 }, {0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
386 };
387 static const sal_uInt16 mso_sptTrapezoidSegm[] =
388 {
389 	0x4000, 0x0003,	0x6001,	0x8000
390 };
391 static const SvxMSDffCalculationData mso_sptTrapezoidCalc[] =
392 {
393 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
394 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
395 	{ 0x2001, { DFF_Prop_adjustValue, 10, 18 } },
396 	{ 0x2000, { 0x0402, 1750, 0 } },
397 	{ 0x8000, { 21600, 0, 0x403 } },
398 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
399 	{ 0x8000, { 21600, 0, 0x405 } }
400 };
401 static const SvxMSDffTextRectangles mso_sptTrapezoidTextRect[] =
402 {
403 	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
404 };
405 static const SvxMSDffVertPair mso_sptTrapezoidGluePoints[] =
406 {
407 	{ 6 MSO_I, 10800 }, { 10800, 21600 }, { 5 MSO_I, 10800 }, { 10800, 0 }
408 };
409 static const SvxMSDffHandle mso_sptTrapezoidHandle[] =
410 {
411 	{	MSDFF_HANDLE_FLAGS_RANGE,
412 		0x100, 1, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
413 };
414 static const mso_CustomShape msoTrapezoid =
415 {
416 	(SvxMSDffVertPair*)mso_sptTrapezoidVert, sizeof( mso_sptTrapezoidVert ) / sizeof( SvxMSDffVertPair ),
417 	(sal_uInt16*)mso_sptTrapezoidSegm, sizeof( mso_sptTrapezoidSegm ) >> 1,
418 	(SvxMSDffCalculationData*)mso_sptTrapezoidCalc, sizeof( mso_sptTrapezoidCalc ) / sizeof( SvxMSDffCalculationData ),
419 	(sal_Int32*)mso_sptDefault5400,
420 	(SvxMSDffTextRectangles*)mso_sptTrapezoidTextRect, sizeof( mso_sptTrapezoidTextRect ) / sizeof( SvxMSDffTextRectangles ),
421 	21600, 21600,
422 	0x80000000, 0x80000000,
423 	(SvxMSDffVertPair*)mso_sptTrapezoidGluePoints, sizeof( mso_sptTrapezoidGluePoints ) / sizeof( SvxMSDffVertPair ),
424 	(SvxMSDffHandle*)mso_sptTrapezoidHandle, sizeof( mso_sptTrapezoidHandle ) / sizeof( SvxMSDffHandle )		// handles
425 };
426 
427 static const SvxMSDffVertPair mso_sptOctagonVert[] =		// adjustment1 : 0 - 10800
428 {
429 	{ 0 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 3 MSO_I },
430 	{ 2 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }, { 0, 1 MSO_I }
431 };
432 static const sal_uInt16 mso_sptOctagonSegm[] =
433 {
434 	0x4000, 0x0007, 0x6001, 0x8000
435 };
436 static const SvxMSDffCalculationData mso_sptOctagonCalc[] =
437 {
438 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
439 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
440 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
441 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
442 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
443 	{ 0x6000, { DFF_Prop_geoLeft, 0x404, 0 } },
444 	{ 0x6000, { DFF_Prop_geoTop, 0x404, 0 } },
445 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
446 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
447 };
448 static const sal_Int32 mso_sptOctagonDefault[] =
449 {
450 	1, 5000
451 };
452 static const SvxMSDffTextRectangles mso_sptOctagonTextRect[] =
453 {
454 	{ { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 8 MSO_I } }
455 };
456 static const SvxMSDffHandle mso_sptOctagonHandle[] =
457 {
458 	{	MSDFF_HANDLE_FLAGS_RANGE,
459 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
460 };
461 static const mso_CustomShape msoOctagon =
462 {
463 	(SvxMSDffVertPair*)mso_sptOctagonVert, sizeof( mso_sptOctagonVert ) / sizeof( SvxMSDffVertPair ),
464 	(sal_uInt16*)mso_sptOctagonSegm, sizeof( mso_sptOctagonSegm ) >> 1,
465 	(SvxMSDffCalculationData*)mso_sptOctagonCalc, sizeof( mso_sptOctagonCalc ) / sizeof( SvxMSDffCalculationData ),
466 	(sal_Int32*)mso_sptOctagonDefault,
467 	(SvxMSDffTextRectangles*)mso_sptOctagonTextRect, sizeof( mso_sptOctagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
468 	21600, 21600,
469 	10800, 10800,
470 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
471 	(SvxMSDffHandle*)mso_sptOctagonHandle, sizeof( mso_sptOctagonHandle ) / sizeof( SvxMSDffHandle )		// handles
472 };
473 
474 static const SvxMSDffVertPair mso_sptIsocelesTriangleVert[] =	// adjustment1 : 0 - 21600
475 {
476 	{ 0 MSO_I, 0 }, { 21600, 21600 }, { 0, 21600 }
477 };
478 static const sal_uInt16 mso_sptIsocelesTriangleSegm[] =
479 {
480 	0x4000, 0x0002, 0x6001, 0x8000
481 };
482 static const SvxMSDffCalculationData mso_sptIsocelesTriangleCalc[] =
483 {
484 	{ 0x4000, { 0, DFF_Prop_adjustValue, 0 } },
485 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
486 	{ 0x2000, { 0x401, 10800, 0 } },
487 	{ 0x2001, { DFF_Prop_adjustValue, 2, 3 } },
488 	{ 0x2000, { 0x403, 7200, 0 } },
489 	{ 0x8000, { 21600, 0, 0x400 } },
490 	{ 0x2001, { 0x405, 1, 2 } },
491 	{ 0x8000, { 21600, 0, 0x406 } }
492 };
493 static const SvxMSDffTextRectangles mso_sptIsocelesTriangleTextRect[] =
494 {
495 	{ { 1 MSO_I, 10800 }, { 2 MSO_I, 18000 } },
496 	{ { 3 MSO_I, 7200 }, { 4 MSO_I, 21600	} }
497 };
498 static const SvxMSDffVertPair mso_sptIsocelesTriangleGluePoints[] =
499 {
500 	{ 0 MSO_I, 0 }, { 1 MSO_I, 10800 }, { 0, 21600 }, { 10800, 21600 }, { 21600, 21600 }, { 7 MSO_I, 10800 }
501 };
502 static const SvxMSDffHandle mso_sptIsocelesTriangleHandle[] =
503 {
504 	{	MSDFF_HANDLE_FLAGS_RANGE,
505 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
506 };
507 static const mso_CustomShape msoIsocelesTriangle =
508 {
509 	(SvxMSDffVertPair*)mso_sptIsocelesTriangleVert, sizeof( mso_sptIsocelesTriangleVert ) / sizeof( SvxMSDffVertPair ),
510 	(sal_uInt16*)mso_sptIsocelesTriangleSegm, sizeof( mso_sptIsocelesTriangleSegm ) >> 1,
511 	(SvxMSDffCalculationData*)mso_sptIsocelesTriangleCalc, sizeof( mso_sptIsocelesTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
512 	(sal_Int32*)mso_sptDefault10800,
513 	(SvxMSDffTextRectangles*)mso_sptIsocelesTriangleTextRect, sizeof( mso_sptIsocelesTriangleTextRect ) / sizeof( SvxMSDffTextRectangles ),
514 	21600, 21600,
515 	0x80000000, 0x80000000,
516 	(SvxMSDffVertPair*)mso_sptIsocelesTriangleGluePoints, sizeof( mso_sptIsocelesTriangleGluePoints ) / sizeof( SvxMSDffVertPair ),
517 	(SvxMSDffHandle*)mso_sptIsocelesTriangleHandle, sizeof( mso_sptIsocelesTriangleHandle ) / sizeof( SvxMSDffHandle )		// handles
518 };
519 
520 static const SvxMSDffVertPair mso_sptHexagonVert[] =				// adjustment1 : 0 - 10800
521 {
522 	{ 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 10800 }, { 1 MSO_I, 21600 },
523 	{ 0 MSO_I, 21600 }, { 0, 10800 }
524 };
525 static const sal_uInt16 mso_sptHexagonSegm[] =
526 {
527 	0x4000, 0x0005, 0x6001, 0x8000
528 };
529 static const SvxMSDffCalculationData mso_sptHexagonCalc[] =
530 {
531 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
532 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
533 	{ 0x2001, { DFF_Prop_adjustValue, 100, 234 } },
534 	{ 0x2000, { 0x402, 1700, 0 } },
535 	{ 0x8000, { 21600, 0, 0x403 } }
536 };
537 static const SvxMSDffTextRectangles mso_sptHexagonTextRect[] =
538 {
539 	{ { 3 MSO_I, 3 MSO_I }, { 4 MSO_I, 4 MSO_I } }
540 };
541 static const SvxMSDffHandle mso_sptHexagonHandle[] =
542 {
543 	{	MSDFF_HANDLE_FLAGS_RANGE,
544 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
545 };
546 static const mso_CustomShape msoHexagon =
547 {
548 	(SvxMSDffVertPair*)mso_sptHexagonVert, sizeof( mso_sptHexagonVert ) / sizeof( SvxMSDffVertPair ),
549 	(sal_uInt16*)mso_sptHexagonSegm, sizeof( mso_sptHexagonSegm ) >> 1,
550 	(SvxMSDffCalculationData*)mso_sptHexagonCalc, sizeof( mso_sptHexagonCalc ) / sizeof( SvxMSDffCalculationData ),
551 	(sal_Int32*)mso_sptDefault5400,
552 	(SvxMSDffTextRectangles*)mso_sptHexagonTextRect, sizeof( mso_sptHexagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
553 	21600, 21600,
554 	0x80000000, 0x80000000,
555 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
556 	(SvxMSDffHandle*)mso_sptHexagonHandle, sizeof( mso_sptHexagonHandle ) / sizeof( SvxMSDffHandle )		// handles
557 };
558 
559 static const SvxMSDffVertPair mso_sptPentagonVert[] =
560 {
561 	{ 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 17370, 21600 },
562 	{ 21600, 8260 }, { 10800, 0 }
563 };
564 static const SvxMSDffTextRectangles mso_sptPentagonTextRect[] =
565 {
566 	{ { 4230, 5080 }, { 17370, 21600 } }
567 };
568 static const SvxMSDffVertPair mso_sptPentagonGluePoints[] =
569 {
570 	{ 10800, 0 }, { 0, 8260 }, { 4230, 21600 }, { 10800, 21600 },
571 	{ 17370, 21600 }, { 21600, 8260 }
572 };
573 static const mso_CustomShape msoPentagon =
574 {
575 	(SvxMSDffVertPair*)mso_sptPentagonVert, sizeof( mso_sptPentagonVert ) / sizeof( SvxMSDffVertPair ),
576 	NULL, 0,
577 	NULL, 0,
578 	NULL,
579 	(SvxMSDffTextRectangles*)mso_sptPentagonTextRect, sizeof( mso_sptPentagonTextRect ) / sizeof( SvxMSDffTextRectangles ),
580 	21600, 21600,
581 	0x80000000, 0x80000000,
582 	(SvxMSDffVertPair*)mso_sptPentagonGluePoints, sizeof( mso_sptPentagonGluePoints ) / sizeof( SvxMSDffVertPair ),
583 	NULL, 0		// handles
584 };
585 
586 static const SvxMSDffVertPair mso_sptPlusVert[] =				// adjustment1 : 0 - 10800
587 {
588 	{ 1 MSO_I, 0 }, { 2 MSO_I, 0 }, { 2 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I },
589 	{ 21600, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 21600 }, { 1 MSO_I, 21600 },
590 	{ 1 MSO_I, 3 MSO_I }, { 0, 3 MSO_I }, { 0, 1 MSO_I }, { 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 0 }
591 };
592 static const SvxMSDffCalculationData mso_sptPlusCalc[] =
593 {
594 	{ 0x2001, { DFF_Prop_adjustValue, 10799, 10800 } },
595     { 0x2000, { 0x400, 0, 0 } },
596     { 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
597     { 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
598 };
599 static const SvxMSDffTextRectangles mso_sptPlusTextRect[] =
600 {
601 	{ { 1 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I } }
602 };
603 static const SvxMSDffHandle mso_sptPlusHandle[] =
604 {
605 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
606 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
607 };
608 static const mso_CustomShape msoPlus =
609 {
610 	(SvxMSDffVertPair*)mso_sptPlusVert, sizeof( mso_sptPlusVert ) / sizeof( SvxMSDffVertPair ),
611 	NULL, 0,
612 	(SvxMSDffCalculationData*)mso_sptPlusCalc, sizeof( mso_sptPlusCalc ) / sizeof( SvxMSDffCalculationData ),
613 	(sal_Int32*)mso_sptDefault5400,
614 	(SvxMSDffTextRectangles*)mso_sptPlusTextRect, sizeof( mso_sptPlusTextRect ) / sizeof( SvxMSDffTextRectangles ),
615 	21600, 21600,
616 	10800, 10800,
617 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
618 	(SvxMSDffHandle*)mso_sptPlusHandle, sizeof( mso_sptPlusHandle ) / sizeof( SvxMSDffHandle )		// handles
619 };
620 
621 static const SvxMSDffVertPair mso_sptCanVert[] =		// adjustment1 : 0 - 10800
622 {
623 	{ 44, 0 },
624 	{ 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },			// ccp
625 	{ 0, 3 MSO_I },										// p
626 	{ 0, 4 MSO_I }, { 20, 21600 }, { 44, 21600 },		// ccp
627 	{ 68, 21600 }, { 88, 4 MSO_I }, { 88, 3 MSO_I },	// ccp
628 	{ 88, 0 MSO_I },									// p
629 	{ 88, 2 MSO_I }, { 68, 0 }, { 44, 0 },				// ccp
630 	{ 44, 0 },											// p
631 	{ 20, 0 }, { 0, 2 MSO_I }, { 0, 0 MSO_I },			// ccp
632 	{ 0, 5 MSO_I }, { 20, 6 MSO_I }, { 44, 6 MSO_I },	// ccp
633 	{ 68, 6 MSO_I },{ 88, 5 MSO_I }, { 88, 0 MSO_I },	// ccp
634 	{ 88, 2 MSO_I },{ 68, 0 }, { 44, 0 }				// ccp
635 };
636 static const sal_uInt16 mso_sptCanSegm[] =
637 {
638 	0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x6001, 0x8000,
639 	0x4000, 0x2004, 0x6001, 0x8000
640 };
641 static const SvxMSDffCalculationData mso_sptCanCalc[] =
642 {
643 	{ 0x2001, { DFF_Prop_adjustValue, 2, 4 } },		// 1/4
644 	{ 0x2001, { 0x0400, 6, 11 } },
645 	{ 0xa000, { 0x0400, 0, 0x0401 } },
646 	{ 0x8000, { 21600, 0, 0x0400 } },
647 	{ 0x6000, { 0x0403, 0x0401, 0 } },
648 	{ 0x6000, { 0x0400, 0x0401, 0 } },
649 	{ 0x2001, { DFF_Prop_adjustValue, 2, 2 } },
650 	{ 0x0000, { 44, 0, 0 } }
651 };
652 static const SvxMSDffTextRectangles mso_sptCanTextRect[] =
653 {
654 	{ { 0, 6 MSO_I }, { 88, 3 MSO_I } }
655 };
656 static const SvxMSDffVertPair mso_sptCanGluePoints[] =
657 {
658 	{ 44, 6 MSO_I }, { 44, 0 }, { 0, 10800 }, { 44, 21600 }, { 88, 10800 }
659 };
660 static const SvxMSDffHandle mso_sptCanHandle[] =
661 {
662 	{	MSDFF_HANDLE_FLAGS_RANGE,
663 		7 + 3, 0x100, 44, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
664 };
665 static const mso_CustomShape msoCan =
666 {
667 	(SvxMSDffVertPair*)mso_sptCanVert, sizeof( mso_sptCanVert ) / sizeof( SvxMSDffVertPair ),
668 	(sal_uInt16*)mso_sptCanSegm, sizeof( mso_sptCanSegm ) >> 1,
669 	(SvxMSDffCalculationData*)mso_sptCanCalc, sizeof( mso_sptCanCalc ) / sizeof( SvxMSDffCalculationData ),
670 	(sal_Int32*)mso_sptDefault5400,
671 	(SvxMSDffTextRectangles*)mso_sptCanTextRect, sizeof( mso_sptCanTextRect ) / sizeof( SvxMSDffTextRectangles ),
672 	88, 21600,
673 	0x80000000, 0x80000000,
674 	(SvxMSDffVertPair*)mso_sptCanGluePoints, sizeof( mso_sptCanGluePoints ) / sizeof( SvxMSDffVertPair ),
675 	(SvxMSDffHandle*)mso_sptCanHandle, sizeof( mso_sptCanHandle ) / sizeof( SvxMSDffHandle )		// handles
676 };
677 
678 static const SvxMSDffVertPair mso_sptArrowVert[] =	// adjustment1: x 0 - 21600
679 {													// adjustment2: y 0 - 10800
680 	{ 0, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
681 	{ 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }
682 };
683 static const sal_uInt16 mso_sptArrowSegm[] =
684 {
685 	0x4000, 0x0006, 0x6001,	0x8000
686 };
687 static const SvxMSDffCalculationData mso_sptArrowCalc[] =
688 {
689 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
690 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
691 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
692 	{ 0x8000, { 21600, 0, 0x401 } },
693 	{ 0x6001, { 0x403, 0x400, 10800 } },
694 	{ 0x6000, { 0x401, 0x404, 0 } },
695 	{ 0x6001, { 0x401, 0x400, 10800 } },
696 	{ 0xa000, { 0x401, 0, 0x406 } }
697 };
698 static const SvxMSDffTextRectangles mso_sptArrowTextRect[] =
699 {
700 	{ { 0, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
701 };
702 static const SvxMSDffHandle mso_sptArrowHandle[] =
703 {
704 	{	MSDFF_HANDLE_FLAGS_RANGE,
705 		0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
706 };
707 static const mso_CustomShape msoArrow =
708 {
709 	(SvxMSDffVertPair*)mso_sptArrowVert, sizeof( mso_sptArrowVert ) / sizeof( SvxMSDffVertPair ),
710 	(sal_uInt16*)mso_sptArrowSegm, sizeof( mso_sptArrowSegm ) >> 1,
711 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
712 	(sal_Int32*)mso_sptDefault16200and5400,
713 	(SvxMSDffTextRectangles*)mso_sptArrowTextRect, sizeof( mso_sptArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
714 	21600, 21600,
715 	0x80000000, 0x80000000,
716 	NULL, 0,
717 	(SvxMSDffHandle*)mso_sptArrowHandle, sizeof( mso_sptArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
718 };
719 
720 static const SvxMSDffVertPair mso_sptLeftArrowVert[] =	// adjustment1: x 0 - 21600
721 {														// adjustment2: y 0 - 10800
722 	{ 21600, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 0, 10800 },
723 	{ 1 MSO_I, 21600 }, { 1 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }
724 };
725 static const sal_uInt16 mso_sptLeftArrowSegm[] =
726 {
727 	0x4000, 0x0006, 0x6001,	0x8000
728 };
729 static const sal_Int32 mso_sptLeftArrowDefault[] =
730 {
731 	2, 5400, 5400
732 };
733 static const SvxMSDffTextRectangles mso_sptLeftArrowTextRect[] =
734 {
735 	{ { 7 MSO_I, 0 MSO_I }, { 21600, 2 MSO_I } }
736 };
737 static const SvxMSDffHandle mso_sptLeftArrowHandle[] =
738 {
739 	{	MSDFF_HANDLE_FLAGS_RANGE,
740 		0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
741 };
742 static const mso_CustomShape msoLeftArrow =
743 {
744 	(SvxMSDffVertPair*)mso_sptLeftArrowVert, sizeof( mso_sptLeftArrowVert ) / sizeof( SvxMSDffVertPair ),
745 	(sal_uInt16*)mso_sptLeftArrowSegm, sizeof( mso_sptLeftArrowSegm ) >> 1,
746 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
747 	(sal_Int32*)mso_sptLeftArrowDefault,
748 	(SvxMSDffTextRectangles*)mso_sptLeftArrowTextRect, sizeof( mso_sptLeftArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
749 	21600, 21600,
750 	0x80000000, 0x80000000,
751 	NULL, 0,
752 	(SvxMSDffHandle*)mso_sptLeftArrowHandle, sizeof( mso_sptLeftArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
753 };
754 
755 static const SvxMSDffVertPair mso_sptDownArrowVert[] =	// adjustment1: x 0 - 21600
756 {														// adjustment2: y 0 - 10800
757 	{ 0 MSO_I, 0 },	{ 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 21600 },
758 	{ 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 }
759 };
760 static const sal_uInt16 mso_sptDownArrowSegm[] =
761 {
762 	0x4000, 0x0006, 0x6001,	0x8000
763 };
764 static const SvxMSDffTextRectangles mso_sptDownArrowTextRect[] =
765 {
766 	{ { 0 MSO_I, 0 }, { 2 MSO_I, 5 MSO_I } }
767 };
768 static const SvxMSDffHandle mso_sptDownArrowHandle[] =
769 {
770 	{	MSDFF_HANDLE_FLAGS_RANGE,
771 		0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
772 };
773 static const mso_CustomShape msoDownArrow =
774 {
775 	(SvxMSDffVertPair*)mso_sptDownArrowVert, sizeof( mso_sptDownArrowVert ) / sizeof( SvxMSDffVertPair ),
776 	(sal_uInt16*)mso_sptDownArrowSegm, sizeof( mso_sptDownArrowSegm ) >> 1,
777 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
778 	(sal_Int32*)mso_sptDefault16200and5400,
779 	(SvxMSDffTextRectangles*)mso_sptDownArrowTextRect, sizeof( mso_sptDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
780 	21600, 21600,
781 	0x80000000, 0x80000000,
782 	NULL, 0,
783 	(SvxMSDffHandle*)mso_sptDownArrowHandle, sizeof( mso_sptDownArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
784 };
785 
786 static const SvxMSDffVertPair mso_sptUpArrowVert[] =	// adjustment1: x 0 - 21600
787 {														// adjustment2: y 0 - 10800
788 	{ 0 MSO_I, 21600 },	{ 0 MSO_I, 1 MSO_I }, { 0, 1 MSO_I }, { 10800, 0 },
789 	{ 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
790 };
791 static const sal_uInt16 mso_sptUpArrowSegm[] =
792 {
793 	0x4000, 0x0006, 0x6001,	0x8000
794 };
795 static const sal_Int32 mso_sptUpArrowDefault[] =
796 {
797 	2, 5400, 5400
798 };
799 static const SvxMSDffTextRectangles mso_sptUpArrowTextRect[] =
800 {
801 	{ { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 21600 } }
802 };
803 static const SvxMSDffHandle mso_sptUpArrowHandle[] =
804 {
805 	{	MSDFF_HANDLE_FLAGS_RANGE,
806 		0x101, 0x100, 10800, 10800, 0, 10800, 0, 21600 }
807 };
808 static const mso_CustomShape msoUpArrow =
809 {
810 	(SvxMSDffVertPair*)mso_sptUpArrowVert, sizeof( mso_sptUpArrowVert ) / sizeof( SvxMSDffVertPair ),
811 	(sal_uInt16*)mso_sptUpArrowSegm, sizeof( mso_sptUpArrowSegm ) >> 1,
812 	(SvxMSDffCalculationData*)mso_sptArrowCalc, sizeof( mso_sptArrowCalc ) / sizeof( SvxMSDffCalculationData ),
813 	(sal_Int32*)mso_sptUpArrowDefault,
814 	(SvxMSDffTextRectangles*)mso_sptUpArrowTextRect, sizeof( mso_sptUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
815 	21600, 21600,
816 	0x80000000, 0x80000000,
817 	NULL, 0,
818 	(SvxMSDffHandle*)mso_sptUpArrowHandle, sizeof( mso_sptUpArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
819 };
820 
821 static const SvxMSDffVertPair mso_sptLeftRightArrowVert[] =	// adjustment1: x 0 - 10800
822 {															// adjustment2: y 0 - 10800
823 	{ 0, 10800 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I },	{ 2 MSO_I, 1 MSO_I },
824 	{ 2 MSO_I, 0 }, { 21600, 10800 }, { 2 MSO_I, 21600 }, { 2 MSO_I, 3 MSO_I },
825 	{ 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 21600 }
826 };
827 static const sal_uInt16 mso_sptLeftRightArrowSegm[] =
828 {
829 	0x4000, 0x0009, 0x6001, 0x8000
830 };
831 static const SvxMSDffCalculationData mso_sptDoubleArrowCalc[] =
832 {
833 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
834 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
835 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
836 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
837 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
838 	{ 0x6001, { DFF_Prop_adjustValue, 0x404, 10800 } },
839 	{ 0x8000, { 21600, 0, 0x405 } },
840 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
841 	{ 0x6001, { DFF_Prop_adjust2Value, 0x407, 10800 } },
842 	{ 0x8000, { 21600, 0, 0x408 } }
843 };
844 static const sal_Int32 mso_sptLeftRightArrowDefault[] =
845 {
846 	2, 4300, 5400
847 };
848 static const SvxMSDffTextRectangles mso_sptLeftRightArrowTextRect[] =
849 {
850 	{ { 5 MSO_I, 1 MSO_I }, { 6 MSO_I, 3 MSO_I } }
851 };
852 static const SvxMSDffHandle mso_sptLeftRightArrowHandle[] =
853 {
854 	{	MSDFF_HANDLE_FLAGS_RANGE,
855 		0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
856 };
857 static const mso_CustomShape msoLeftRightArrow =
858 {
859 	(SvxMSDffVertPair*)mso_sptLeftRightArrowVert, sizeof( mso_sptLeftRightArrowVert ) / sizeof( SvxMSDffVertPair ),
860 	(sal_uInt16*)mso_sptLeftRightArrowSegm, sizeof( mso_sptLeftRightArrowSegm ) >> 1,
861 	(SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
862 	(sal_Int32*)mso_sptLeftRightArrowDefault,
863 	(SvxMSDffTextRectangles*)mso_sptLeftRightArrowTextRect, sizeof( mso_sptLeftRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
864 	21600, 21600,
865 	0x80000000, 0x80000000,
866 	NULL, 0,
867 	(SvxMSDffHandle*)mso_sptLeftRightArrowHandle, sizeof( mso_sptLeftRightArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
868 };
869 
870 static const SvxMSDffVertPair mso_sptUpDownArrowVert[] =	// adjustment1: x 0 - 10800
871 {															// adjustment2: y 0 - 10800
872 	{ 0, 1 MSO_I },	{ 10800, 0 }, { 21600, 1 MSO_I }, { 2 MSO_I, 1 MSO_I },
873 	{ 2 MSO_I, 3 MSO_I }, { 21600, 3 MSO_I }, { 10800, 21600 }, { 0, 3 MSO_I },
874 	{ 0 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
875 };
876 static const sal_uInt16 mso_sptUpDownArrowSegm[] =
877 {
878 	0x4000, 0x0009, 0x6001, 0x8000
879 };
880 static const sal_Int32 mso_sptUpDownArrowDefault[] =
881 {
882 	2, 5400, 4300
883 };
884 static const SvxMSDffTextRectangles mso_sptUpDownArrowTextRect[] =
885 {
886 	{ { 0 MSO_I, 8 MSO_I }, { 2 MSO_I, 9 MSO_I } }
887 };
888 static const SvxMSDffHandle mso_sptUpDownArrowHandle[] =
889 {
890 	{	MSDFF_HANDLE_FLAGS_RANGE,
891 		0x100, 0x101, 10800, 10800, 0, 10800, 0, 10800 }
892 };
893 static const mso_CustomShape msoUpDownArrow =
894 {
895 	(SvxMSDffVertPair*)mso_sptUpDownArrowVert, sizeof( mso_sptUpDownArrowVert ) / sizeof( SvxMSDffVertPair ),
896 	(sal_uInt16*)mso_sptUpDownArrowSegm, sizeof( mso_sptUpDownArrowSegm ) >> 1,
897 	(SvxMSDffCalculationData*)mso_sptDoubleArrowCalc, sizeof( mso_sptDoubleArrowCalc ) / sizeof( SvxMSDffCalculationData ),
898 	(sal_Int32*)mso_sptUpDownArrowDefault,
899 	(SvxMSDffTextRectangles*)mso_sptUpDownArrowTextRect, sizeof( mso_sptUpDownArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
900 	21600, 21600,
901 	0x80000000, 0x80000000,
902 	NULL, 0,
903 	(SvxMSDffHandle*)mso_sptUpDownArrowHandle, sizeof( mso_sptUpDownArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
904 };
905 
906 static const SvxMSDffVertPair mso_sptQuadArrowVert[] =	// adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
907 {														// adjustment3: y 0 - 10800
908 	{ 0, 10800 }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 2 MSO_I, 2 MSO_I },
909 	{ 2 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 10800, 0 }, { 3 MSO_I, 0 MSO_I },
910 	{ 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 1 MSO_I },
911 	{ 21600, 10800 }, { 5 MSO_I, 3 MSO_I }, { 5 MSO_I, 4 MSO_I }, { 4 MSO_I, 4 MSO_I },
912 	{ 4 MSO_I, 5 MSO_I }, { 3 MSO_I, 5 MSO_I }, { 10800, 21600 }, { 1 MSO_I, 5 MSO_I },
913 	{ 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 3 MSO_I }
914 };
915 static const sal_uInt16 mso_sptQuadArrowSegm[] =
916 {
917 	0x4000, 0x0017, 0x6001, 0x8000
918 };
919 static const SvxMSDffCalculationData mso_sptQuadArrowCalc[] =
920 {
921 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
922 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
923 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
924 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
925 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
926 	{ 0x8000, { 21600, 0, DFF_Prop_adjust3Value } }
927 };
928 static const sal_Int32 mso_sptQuadArrowDefault[] =
929 {
930 	3, 6500, 8600, 4300
931 };
932 static const SvxMSDffTextRectangles mso_sptQuadArrowTextRect[] =	// todo
933 {
934 	{ { 0, 0 }, { 21600, 21600 } }
935 };
936 static const SvxMSDffHandle mso_sptQuadArrowHandle[] =
937 {
938 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
939 		0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
940 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
941 		0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
942 };
943 static const mso_CustomShape msoQuadArrow =
944 {
945 	(SvxMSDffVertPair*)mso_sptQuadArrowVert, sizeof( mso_sptQuadArrowVert ) / sizeof( SvxMSDffVertPair ),
946 	(sal_uInt16*)mso_sptQuadArrowSegm, sizeof( mso_sptQuadArrowSegm ) >> 1,
947 	(SvxMSDffCalculationData*)mso_sptQuadArrowCalc, sizeof( mso_sptQuadArrowCalc ) / sizeof( SvxMSDffCalculationData ),
948 	(sal_Int32*)mso_sptQuadArrowDefault,
949 	(SvxMSDffTextRectangles*)mso_sptQuadArrowTextRect, sizeof( mso_sptQuadArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
950 	21600, 21600,
951 	0x80000000, 0x80000000,
952 	NULL, 0,
953 	(SvxMSDffHandle*)mso_sptQuadArrowHandle, sizeof( mso_sptQuadArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
954 };
955 
956 static const SvxMSDffVertPair mso_sptLeftRightUpArrowVert[] =	// adjustment1: x 0 - 10800, adjustment2: x 0 - 10800
957 {																// adjustment3: y 0 - 21600
958 	{ 10800, 0 }, { 3 MSO_I, 2 MSO_I },	{ 4 MSO_I, 2 MSO_I }, { 4 MSO_I, 1 MSO_I },
959 	{ 5 MSO_I, 1 MSO_I }, { 5 MSO_I, 0 MSO_I },	{ 21600, 10800 }, { 5 MSO_I, 3 MSO_I },
960 	{ 5 MSO_I, 4 MSO_I }, { 2 MSO_I, 4 MSO_I },	{ 2 MSO_I, 3 MSO_I }, { 0, 10800 },
961 	{ 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 1 MSO_I },	{ 1 MSO_I, 1 MSO_I }, { 1 MSO_I, 2 MSO_I },
962 	{ 0 MSO_I, 2 MSO_I }
963 };
964 static const sal_uInt16 mso_sptLeftRightUpArrowSegm[] =
965 {
966 	0x4000, 0x0010, 0x6001, 0x8000
967 };
968 static const SvxMSDffCalculationData mso_sptLeftRightUpArrowCalc[] =
969 {
970 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },				// 0
971 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },			// 1
972 	{ 0x6001, { 0x0403, DFF_Prop_adjust3Value, 21600 } },	// 2
973 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },			// 3
974 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },		// 4
975 	{ 0x8000, { 21600, 0, 0x0402 } }						// 5
976 };
977 static const sal_Int32 mso_sptLeftRightUpArrowDefault[] =
978 {
979 	3, 6500, 8600, 6200
980 };
981 static const SvxMSDffTextRectangles mso_sptLeftRightUpArrowTextRect[] =		// todo
982 {
983 	{ { 0, 0 }, { 21600, 21600 } }
984 };
985 static const SvxMSDffHandle mso_sptLeftRightUpArrowHandle[] =
986 {
987 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
988 		0x101, 0x102, 10800, 10800, 0x100, 10800, 0, 0x100 },
989 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
990 		0x100, 0, 10800, 10800, 0x102, 0x101, 0x80000000, 0x7fffffff }
991 };
992 static const mso_CustomShape msoLeftRightUpArrow =
993 {
994 	(SvxMSDffVertPair*)mso_sptLeftRightUpArrowVert, sizeof( mso_sptLeftRightUpArrowVert ) / sizeof( SvxMSDffVertPair ),
995 	(sal_uInt16*)mso_sptLeftRightUpArrowSegm, sizeof( mso_sptLeftRightUpArrowSegm ) >> 1,
996 	(SvxMSDffCalculationData*)mso_sptLeftRightUpArrowCalc, sizeof( mso_sptLeftRightUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
997 	(sal_Int32*)mso_sptLeftRightUpArrowDefault,
998 	(SvxMSDffTextRectangles*)mso_sptLeftRightUpArrowTextRect, sizeof( mso_sptLeftRightUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
999 	21600, 21600,
1000 	0x80000000, 0x80000000,
1001 	NULL, 0,
1002 	(SvxMSDffHandle*)mso_sptLeftRightUpArrowHandle, sizeof( mso_sptLeftRightUpArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
1003 };
1004 
1005 static const SvxMSDffVertPair mso_sptBentArrowVert[] =	// adjustment1 : x 12427 - 21600
1006 {														// adjustment2 : y 0 - 6079
1007 	{ 0, 21600 }, { 0, 12160 }, { 12427, 1 MSO_I }, { 0 MSO_I, 1 MSO_I },
1008 	{ 0 MSO_I, 0 }, { 21600, 6079 }, { 0 MSO_I, 12158 }, { 0 MSO_I, 2 MSO_I },
1009 	{ 12427, 2 MSO_I }, { 4 MSO_I, 12160 }, { 4 MSO_I, 21600 }
1010 };
1011 static const sal_uInt16 mso_sptBentArrowSegm[] =
1012 {
1013 	0x4000, 0x0001, 0xa801, 0x0006, 0xa701, 0x0001, 0x6001, 0x8000
1014 };
1015 static const SvxMSDffCalculationData mso_sptBentArrowCalc[] =
1016 {
1017 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1018 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1019 	{ 0x8000, { 12158, 0, DFF_Prop_adjust2Value } },
1020 	{ 0x8000, { 6079, 0, DFF_Prop_adjust2Value } },
1021 	{ 0x2001, { 0x0403, 2, 1 } }
1022 };
1023 static const sal_Int32 mso_sptBentArrowDefault[] =
1024 {
1025 	2, 15100, 2900
1026 };
1027 static const SvxMSDffTextRectangles mso_sptBentArrowTextRect[] =	// todo
1028 {
1029 	{ { 0, 0 }, { 21600, 21600 } }
1030 };
1031 static const SvxMSDffHandle mso_sptBentArrowHandle[] =
1032 {
1033 	{	MSDFF_HANDLE_FLAGS_RANGE,
1034 		0x100, 0x101, 10800, 10800, 12427, 21600, 0, 6079 }
1035 };
1036 static const mso_CustomShape msoBentArrow =
1037 {
1038 	(SvxMSDffVertPair*)mso_sptBentArrowVert, sizeof( mso_sptBentArrowVert ) / sizeof( SvxMSDffVertPair ),
1039 	(sal_uInt16*)mso_sptBentArrowSegm, sizeof( mso_sptBentArrowSegm ) >> 1,
1040 	(SvxMSDffCalculationData*)mso_sptBentArrowCalc, sizeof( mso_sptBentArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1041 	(sal_Int32*)mso_sptBentArrowDefault,
1042 	(SvxMSDffTextRectangles*)mso_sptBentArrowTextRect, sizeof( mso_sptBentArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1043 	21600, 21600,
1044 	0x80000000, 0x80000000,
1045 	NULL, 0,
1046 	(SvxMSDffHandle*)mso_sptBentArrowHandle, sizeof( mso_sptBentArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
1047 };
1048 
1049 static const SvxMSDffVertPair mso_sptUturnArrowVert[] =
1050 {
1051 	{ 0, 21600 }, { 0, 8550 },											// pp
1052 	{ 0, 3540 }, { 4370, 0 }, { 9270, 0 },								// ccp
1053 	{ 13890, 0 }, { 18570, 3230 }, { 18600, 8300 },						// ccp
1054 	{ 21600, 8300 }, { 15680, 14260 }, { 9700, 8300 }, { 12500, 8300 }, // pppp
1055 	{ 12320, 6380 }, { 10870, 5850 }, { 9320, 5850 },					// ccp
1056 	{ 7770, 5850 }, { 6040, 6410 }, { 6110, 8520 },						// ccp
1057 	{ 6110, 21600 }
1058 };
1059 static const sal_uInt16 mso_sptUturnArrowSegm[] =
1060 {
1061 	0x4000, 0x0001, 0x2002, 0x0004, 0x2002, 0x0001, 0x6000, 0x8000
1062 };
1063 static const SvxMSDffTextRectangles mso_sptUturnArrowTextRect[] =
1064 {
1065 	{ { 0, 8280 }, { 6110, 21600 } }
1066 };
1067 static const mso_CustomShape msoUturnArrow =
1068 {
1069 	(SvxMSDffVertPair*)mso_sptUturnArrowVert, sizeof( mso_sptUturnArrowVert ) / sizeof( SvxMSDffVertPair ),
1070 	(sal_uInt16*)mso_sptUturnArrowSegm, sizeof( mso_sptUturnArrowSegm ) >> 1,
1071 	NULL, 0,
1072 	NULL,
1073 	(SvxMSDffTextRectangles*)mso_sptUturnArrowTextRect, sizeof( mso_sptUturnArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1074 	21600, 21600,
1075 	0x80000000, 0x80000000,
1076 	NULL, 0,
1077 	NULL, 0		// handles
1078 };
1079 
1080 static const SvxMSDffVertPair mso_sptLeftUpArrowVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1081 {															// adjustment3 : y 0 - 21600
1082 	{ 0, 5 MSO_I },	{ 2 MSO_I, 0 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 7 MSO_I, 7 MSO_I },
1083 	{ 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 }, { 21600, 2 MSO_I },
1084 	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I },	{ 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 21600 }
1085 };
1086 static const sal_uInt16 mso_sptLeftUpArrowSegm[] =
1087 {
1088 	0x4000, 0x000b, 0x6001, 0x8000
1089 };
1090 static const SvxMSDffCalculationData mso_sptLeftUpArrowCalc[] =
1091 {
1092 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0
1093 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 1
1094 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },		// 2
1095 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 3
1096 	{ 0x2001, { 0x0403, 1, 2 } },						// 4
1097 	{ 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },	// 5
1098 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },	// 6
1099 	{ 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },	// 7
1100 	{ 0x8000, { 21600, 0, 0x406 } },					// 8
1101 	{ 0xa000, { 0x408, 0, 0x406 } }					// 9
1102 };
1103 static const sal_Int32 mso_sptLeftUpArrowDefault[] =
1104 {
1105 	3, 9340, 18500, 6200
1106 };
1107 static const SvxMSDffTextRectangles mso_sptLeftUpArrowTextRect[] =
1108 {
1109 	{ { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1110 	{ { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1111 };
1112 static const SvxMSDffHandle mso_sptLeftUpArrowHandle[] =
1113 {
1114 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1115 		0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1116 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1117 		0x100, 0, 10800, 10800, 0x102, 3 + 9, 0x80000000, 0x7fffffff }
1118 };
1119 static const mso_CustomShape msoLeftUpArrow =
1120 {
1121 	(SvxMSDffVertPair*)mso_sptLeftUpArrowVert, sizeof( mso_sptLeftUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1122 	(sal_uInt16*)mso_sptLeftUpArrowSegm, sizeof( mso_sptLeftUpArrowSegm ) >> 1,
1123 	(SvxMSDffCalculationData*)mso_sptLeftUpArrowCalc, sizeof( mso_sptLeftUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1124 	(sal_Int32*)mso_sptLeftUpArrowDefault,
1125 	(SvxMSDffTextRectangles*)mso_sptLeftUpArrowTextRect, sizeof( mso_sptLeftUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1126 	21600, 21600,
1127 	0x80000000, 0x80000000,
1128 	NULL, 0,
1129 	(SvxMSDffHandle*)mso_sptLeftUpArrowHandle, sizeof( mso_sptLeftUpArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
1130 };
1131 
1132 static const SvxMSDffVertPair mso_sptBentUpArrowVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : x 0 - 21600
1133 {															// adjustment3 : y 0 - 21600
1134 	{ 0, 8 MSO_I }, { 7 MSO_I, 8 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },
1135 	{ 5 MSO_I, 0 }, { 21600, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 21600 },
1136 	{ 0, 21600 }
1137 };
1138 static const sal_uInt16 mso_sptBentUpArrowSegm[] =
1139 {
1140 	0x4000, 0x0008, 0x6001, 0x8000
1141 };
1142 static const SvxMSDffCalculationData mso_sptBentUpArrowCalc[] =
1143 {
1144 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0
1145 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 1
1146 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },		// 2
1147 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 3
1148 	{ 0x2001, { 0x0403, 1, 2 } },						// 4
1149 	{ 0x6000, { DFF_Prop_adjustValue, 0x0404, 0 } },	// 5
1150 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },	// 6
1151 	{ 0x6000, { DFF_Prop_adjustValue, 0x0406, 0 } },	// 7
1152 	{ 0x6000, { 0x0407, 0x0406, 0 } },					// 8
1153 	{ 0x8000, { 21600, 0, 0x406 } },					// 9
1154 	{ 0xa000, { 0x409, 0, 0x406 } }					// a
1155 };
1156 static const sal_Int32 mso_sptBentUpArrowDefault[] =
1157 {
1158 	3, 9340, 18500, 7200
1159 };
1160 static const SvxMSDffTextRectangles mso_sptBentUpArrowTextRect[] =
1161 {
1162 	{ { 2 MSO_I, 7 MSO_I }, { 1 MSO_I, 1 MSO_I } },
1163 	{ { 7 MSO_I, 2 MSO_I }, { 1 MSO_I, 1 MSO_I } }
1164 };
1165 static const SvxMSDffHandle mso_sptBentUpArrowHandle[] =
1166 {
1167 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1168 		0x101, 0x102, 10800, 10800, 3 + 5, 21600, 0, 0x100 },
1169 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1170 		0x100, 0, 10800, 10800, 0x102, 3 + 10, 0x80000000, 0x7fffffff }
1171 };
1172 static const mso_CustomShape msoBentUpArrow =
1173 {
1174 	(SvxMSDffVertPair*)mso_sptBentUpArrowVert, sizeof( mso_sptBentUpArrowVert ) / sizeof( SvxMSDffVertPair ),
1175 	(sal_uInt16*)mso_sptBentUpArrowSegm, sizeof( mso_sptBentUpArrowSegm ) >> 1,
1176 	(SvxMSDffCalculationData*)mso_sptBentUpArrowCalc, sizeof( mso_sptBentUpArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1177 	(sal_Int32*)mso_sptBentUpArrowDefault,
1178 	(SvxMSDffTextRectangles*)mso_sptBentUpArrowTextRect, sizeof( mso_sptBentUpArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1179 	21600, 21600,
1180 	0x80000000, 0x80000000,
1181 	NULL, 0,
1182 	(SvxMSDffHandle*)mso_sptBentUpArrowHandle, sizeof( mso_sptBentUpArrowHandle ) / sizeof( SvxMSDffHandle )
1183 };
1184 
1185 static const SvxMSDffVertPair mso_sptCurvedRightVert[] =
1186 {
1187 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 0, 7 MSO_I }, { 2 MSO_I, 13 MSO_I },
1188 	{ 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I },
1189 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I },
1190 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 22 MSO_I, 0 }, { 0, 4 MSO_I },
1191 	{ 0, 0 }, { 23 MSO_I, 3 MSO_I }, { 0, 4 MSO_I }, { 26 MSO_I, 17 MSO_I },
1192 	{ 0, 15 MSO_I }, { 23 MSO_I, 1 MSO_I }, { 26 MSO_I, 17 MSO_I }, { 22 MSO_I, 15 MSO_I }
1193 };
1194 static const sal_uInt16 mso_sptCurvedRightSegm[] =
1195 {
1196 	0xa408,
1197 	0x0003,
1198 	0xa508,
1199 	0x6000,
1200 	0x8000,
1201 	0xa404,
1202 	0xa304,
1203 	0xa504,
1204 	0x6000,
1205 	0x8000
1206 };
1207 static const SvxMSDffCalculationData mso_sptCurvedRightCalc[] =
1208 {
1209 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1210 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1211 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1212 	{ 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1213 	{ 0x2001, { 0x403, 1, 2 } },
1214 	{ 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1215 	{ 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1216 	{ 0x2001, { 0x406, 1, 2 } },
1217 	{ 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1218 	{ 0x8000, { 21600, 0, DFF_Prop_adjust3Value } },
1219 	{ 0xa00f, { 0x409, 21600, 0x404 } },
1220 	{ 0x6000, { 0x404, 0x40a, 0 } },
1221 	{ 0x6000, { 0x40b, DFF_Prop_adjust2Value, 21600 } },
1222 	{ 0x6000, { 0x407, 0x40a, 0 } },
1223 	{ 0xa000, { 0x40c, 21600, DFF_Prop_adjustValue } },
1224 	{ 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1225 	{ 0x2001, { 0x40f, 1, 2 } },
1226 	{ 0x6002, { 0x404, 0x407, 0 } },
1227 	{ 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1228 	{ 0x2001, { 0x412, 1, 2 } },
1229 	{ 0xa000, { 0x411, 0, 0x413 } },
1230 	{ 0x0000, { 21600, 0, 0 } },
1231 	{ 0x0000, { 21600, 0, 0 } },
1232 	{ 0x0001, { 21600, 2, 1 } },
1233 	{ 0xa000, { 0x411, 0, 0x404 } },
1234 	{ 0x600f, { 0x418, 0x404, 21600 } },
1235 	{ 0x8000, { 21600, 0, 0x419 } },
1236 	{ 0x2000, { 0x408, 128, 0 } },
1237 	{ 0x2001, { 0x405, 1, 2 } },
1238 	{ 0x2000, { 0x405, 0, 128 } },
1239 	{ 0xe000, { DFF_Prop_adjustValue, 0x411, 0x40c } },
1240 	{ 0x600f, { 0x414, 0x404, 21600 } },
1241 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1242 	{ 0x2001, { 0x420, 1, 2 } },
1243 	{ 0x0001, { 21600, 21600, 1 } },
1244 	{ 0x6001, { 0x409, 0x409, 1 } },
1245 	{ 0xa000, { 0x422, 0, 0x423 } },
1246 	{ 0x200d, { 0x424, 0, 0 } },
1247 	{ 0x2000, { 0x425, 21600, 0 } },
1248 	{ 0x8001, { 21600, 21600, 0x426 } },
1249 	{ 0x2000, { 0x427, 64, 0 } },
1250 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1251 	{ 0x600f, { 0x421, 0x429, 21600 } },
1252 	{ 0x8000, { 21600, 0, 0x42a } },
1253 	{ 0x2000, { 0x42b, 64, 0 } },
1254 	{ 0x2001, { 0x404, 1, 2 } },
1255 	{ 0xa000, { DFF_Prop_adjust2Value, 0, 0x42d } },
1256 	{ 0x0001, { 21600, 2195, 16384 } },
1257 	{ 0x0001, { 21600, 14189, 16384 } }
1258 };
1259 static const sal_Int32 mso_sptCurvedRightDefault[] =
1260 {
1261 	3, 12960, 19440, 14400
1262 };
1263 static const SvxMSDffTextRectangles mso_sptCurvedRightTextRect[] =
1264 {
1265 	{ { 47 MSO_I, 45 MSO_I }, { 48 MSO_I, 46 MSO_I } }
1266 };
1267 static const SvxMSDffVertPair mso_sptCurvedRightGluePoints[] =
1268 {
1269 	{ 0, 17 MSO_I }, { 2 MSO_I, 14 MSO_I }, { 22 MSO_I, 8 MSO_I }, { 2 MSO_I, 12 MSO_I }, { 22 MSO_I, 16 MSO_I }
1270 };
1271 static const SvxMSDffHandle mso_sptCurvedRightHandles[] =
1272 {
1273 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1274 		21600, 0x100, 10800, 10800, 0, 10800, 3 + 40, 3 + 29 },
1275 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1276 		21600, 0x101, 10800, 10800, 0, 10800, 3 + 27, 3 + 21 },
1277 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1278 		0x102, 21600, 10800, 10800, 3 + 44, 3 + 22, 3375, 21600 }
1279 };
1280 static const mso_CustomShape msoCurvedRightArrow =
1281 {
1282 	(SvxMSDffVertPair*)mso_sptCurvedRightVert, sizeof( mso_sptCurvedRightVert ) / sizeof( SvxMSDffVertPair ),
1283 	(sal_uInt16*)mso_sptCurvedRightSegm, sizeof( mso_sptCurvedRightSegm ) >> 1,
1284 	(SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1285 	(sal_Int32*)mso_sptCurvedRightDefault,
1286 	(SvxMSDffTextRectangles*)mso_sptCurvedRightTextRect, sizeof( mso_sptCurvedRightTextRect ) / sizeof( SvxMSDffTextRectangles ),
1287 	21600, 21600,
1288 	0x80000000, 0x80000000,
1289 	(SvxMSDffVertPair*)mso_sptCurvedRightGluePoints, sizeof( mso_sptCurvedRightGluePoints ) / sizeof( SvxMSDffVertPair ),
1290 	(SvxMSDffHandle*)mso_sptCurvedRightHandles, sizeof( mso_sptCurvedRightHandles ) / sizeof( SvxMSDffHandle )
1291 };
1292 
1293 static const SvxMSDffVertPair mso_sptCurvedDownVert[] =
1294 {
1295 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1296 	{ 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 7 MSO_I, 0 }, { 13 MSO_I, 2 MSO_I },
1297 	{ 14 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I },
1298 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 11 MSO_I, 2 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 0 },
1299 	{ 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I },
1300 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 0, 22 MSO_I }, { 4 MSO_I, 0 },
1301 	{ 0, 0 }, { 3 MSO_I, 23 MSO_I }, { 4 MSO_I, 0 }, { 17 MSO_I, 26 MSO_I },
1302 	{ 15 MSO_I, 0 }, { 1 MSO_I, 23 MSO_I }, { 17 MSO_I, 26 MSO_I }, { 15 MSO_I, 22 MSO_I }
1303 };
1304 static const sal_uInt16 mso_sptCurvedDownSegm[] =
1305 {
1306 	0xa608,
1307 	0x0003,
1308 	0xa308,
1309 	0x6000,
1310 	0x8000,
1311 	0xa604,
1312 	0xa504,
1313 	0xa304,
1314 	0x6000,
1315 	0x8000
1316 };
1317 static const SvxMSDffTextRectangles mso_sptCurvedDownTextRect[] =
1318 {
1319 	{ { 45 MSO_I, 47 MSO_I }, { 46 MSO_I, 48 MSO_I } }
1320 };
1321 static const SvxMSDffVertPair mso_sptCurvedDownGluePoints[] =
1322 {
1323 	{ 17 MSO_I, 0 }, { 16 MSO_I, 22 MSO_I }, { 12 MSO_I, 2 MSO_I }, { 8 MSO_I, 22 MSO_I }, { 14 MSO_I, 2 MSO_I }
1324 };
1325 static const SvxMSDffHandle mso_sptCurvedDownHandles[] =
1326 {
1327 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1328 		0x100, 21600, 10800, 10800, 3 + 40, 3 + 29, 0, 10800 },
1329 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1330 		0x101, 21600, 10800, 10800, 3 + 27, 3 + 21, 0, 10800 },
1331 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1332 		21600, 0x102, 10800, 10800, 3375, 21600, 3 + 44, 3 + 22 }
1333 };
1334 
1335 static const mso_CustomShape msoCurvedDownArrow =
1336 {
1337 	(SvxMSDffVertPair*)mso_sptCurvedDownVert, sizeof( mso_sptCurvedDownVert ) / sizeof( SvxMSDffVertPair ),
1338 	(sal_uInt16*)mso_sptCurvedDownSegm, sizeof( mso_sptCurvedDownSegm ) >> 1,
1339 	(SvxMSDffCalculationData*)mso_sptCurvedRightCalc, sizeof( mso_sptCurvedRightCalc ) / sizeof( SvxMSDffCalculationData ),
1340 	(sal_Int32*)mso_sptCurvedRightDefault,
1341 	(SvxMSDffTextRectangles*)mso_sptCurvedDownTextRect, sizeof( mso_sptCurvedDownTextRect ) / sizeof( SvxMSDffTextRectangles ),
1342 	21600, 21600,
1343 	0x80000000, 0x80000000,
1344 	(SvxMSDffVertPair*)mso_sptCurvedDownGluePoints, sizeof( mso_sptCurvedDownGluePoints ) / sizeof( SvxMSDffVertPair ),
1345 	(SvxMSDffHandle*)mso_sptCurvedDownHandles, sizeof( mso_sptCurvedDownHandles ) / sizeof( SvxMSDffHandle )
1346 };
1347 
1348 static const SvxMSDffVertPair mso_sptCurvedUpVert[] =
1349 {
1350 	{ 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1351 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I },
1352 	{ 12 MSO_I, 2 MSO_I }, { 13 MSO_I, 2 MSO_I }, { 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I },
1353 	{ 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 10 MSO_I, 2 MSO_I }, { 16 MSO_I, 24 MSO_I },
1354 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 },
1355 	{ 0, 22 MSO_I }, { 3 MSO_I, 21 MSO_I }, { 0, 0 }, { 4 MSO_I, 21 MSO_I },
1356 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 7 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I },
1357 	{ 14 MSO_I, 22 MSO_I }, { 1 MSO_I, 21 MSO_I }, { 16 MSO_I, 24 MSO_I }, { 14 MSO_I, 0 }
1358 };
1359 static const sal_uInt16 mso_sptCurvedUpSegm[] =
1360 {
1361 	0xa408,
1362 	0x0003,
1363 	0xa508,
1364 	0x6000,
1365 	0x8000,
1366 	0xa404,
1367 	0xa508,
1368 	0xa504,
1369 	0x6000,
1370 	0x8000
1371 };
1372 static const SvxMSDffCalculationData mso_sptCurvedUpCalc[] =
1373 {
1374 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1375 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1376 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1377 	{ 0xa000, { DFF_Prop_adjustValue, 21600, DFF_Prop_adjust2Value } },
1378 	{ 0x2001, { 0x403, 1, 2 } },
1379 	{ 0x6000, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 21600 } },
1380 	{ 0xe000, { 0x405, DFF_Prop_adjust2Value, DFF_Prop_adjustValue } },
1381 	{ 0x2001, { 0x406, 1, 2 } },
1382 	{ 0x4002, { 21600, DFF_Prop_adjustValue, 0 } },
1383 	{ 0xa00f, { DFF_Prop_adjust3Value, 21600, 0x404 } },
1384 	{ 0x6000, { 0x404, 0x409, 0 } },
1385 	{ 0x6000, { 0x40a, DFF_Prop_adjust2Value, 21600 } },
1386 	{ 0x6000, { 0x407, 0x409, 0 } },
1387 	{ 0xa000, { 0x40b, 21600, DFF_Prop_adjustValue } },
1388 	{ 0xa000, { 0x405, 0, DFF_Prop_adjustValue } },
1389 	{ 0x2001, { 0x40e, 1, 2 } },
1390 	{ 0x6002, { 0x404, 0x407, 0 } },
1391 	{ 0x6000, { DFF_Prop_adjustValue, DFF_Prop_adjust2Value, 21600 } },
1392 	{ 0x2001, { 0x411, 1, 2 } },
1393 	{ 0xa000, { 0x410, 0, 0x412 } },
1394 	{ 0x0000, { 21600, 0, 0 } },
1395 	{ 0x0000, { 21600, 0, 0 } },
1396 	{ 0x0000, { 0, 0, 21600 } },
1397 	{ 0xa000, { 0x410, 0, 0x404 } },
1398 	{ 0x600f, { 0x417, 0x404, 21600 } },
1399 	{ 0x2000, { 0x408, 128, 0 } },
1400 	{ 0x2001, { 0x405, 1, 2 } },
1401 	{ 0x2000, { 0x405, 0, 128 } },
1402 	{ 0xe000, { DFF_Prop_adjustValue, 0x410, 0x40b } },
1403 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1404 	{ 0x2001, { 0x41d, 1, 2 } },
1405 	{ 0x0001, { 21600, 21600, 1 } },
1406 	{ 0x6001, { DFF_Prop_adjust3Value, DFF_Prop_adjust3Value, 1 } },
1407 	{ 0xa000, { 0x41f, 0, 0x420 } },
1408 	{ 0x200d, { 0x421, 0, 0 } },
1409 	{ 0x2000, { 0x422, 21600, 0 } },
1410 	{ 0x8001, { 21600, 21600, 0x423 } },
1411 	{ 0x2000, { 0x424, 64, 0 } },
1412 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
1413 	{ 0x600f, { 0x41e, 0x426, 21600 } },
1414 	{ 0x2000, { 0x427, 0, 64 } },
1415 	{ 0x2001, { 0x404, 1, 2 } },
1416 	{ 0xa000, { DFF_Prop_adjust2Value, 0, 0x429 } },
1417 	{ 0x0001, { 21600, 2195, 16384 } },
1418 	{ 0x0001, { 21600, 14189, 16384 } }
1419 };
1420 static const sal_Int32 mso_sptCurvedUpDefault[] =
1421 {
1422 	3, 12960, 19440, 7200
1423 };
1424 static const SvxMSDffTextRectangles mso_sptCurvedUpTextRect[] =
1425 {
1426 	{ { 41 MSO_I, 43 MSO_I }, { 42 MSO_I, 44 MSO_I } }
1427 };
1428 static const SvxMSDffVertPair mso_sptCurvedUpGluePoints[] =
1429 {
1430 	{ 8 MSO_I, 0 }, { 11 MSO_I, 2 MSO_I }, { 15 MSO_I, 0 }, { 16 MSO_I, 21 MSO_I }, { 13 MSO_I, 2 MSO_I }
1431 };
1432 static const SvxMSDffHandle mso_sptCurvedUpHandles[] =
1433 {
1434 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1435 		0x100, 0, 10800, 10800, 3 + 37, 3 + 27, 0, 10800 },
1436 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1437 		0x101, 0, 10800, 10800, 3 + 25, 3 + 20, 0, 10800 },
1438 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1439 		21600, 0x102, 10800, 10800, 3375, 21600, 0, 3 + 40 }
1440 };
1441 static const mso_CustomShape msoCurvedUpArrow =
1442 {
1443 	(SvxMSDffVertPair*)mso_sptCurvedUpVert, sizeof( mso_sptCurvedUpVert ) / sizeof( SvxMSDffVertPair ),
1444 	(sal_uInt16*)mso_sptCurvedUpSegm, sizeof( mso_sptCurvedUpSegm ) >> 1,
1445 	(SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1446 	(sal_Int32*)mso_sptCurvedUpDefault,
1447 	(SvxMSDffTextRectangles*)mso_sptCurvedUpTextRect, sizeof( mso_sptCurvedUpTextRect ) / sizeof( SvxMSDffTextRectangles ),
1448 	21600, 21600,
1449 	0x80000000, 0x80000000,
1450 	(SvxMSDffVertPair*)mso_sptCurvedUpGluePoints, sizeof( mso_sptCurvedUpGluePoints ) / sizeof( SvxMSDffVertPair ),
1451 	(SvxMSDffHandle*)mso_sptCurvedUpHandles, sizeof( mso_sptCurvedUpHandles ) / sizeof( SvxMSDffHandle )
1452 };
1453 
1454 static const SvxMSDffVertPair mso_sptCurvedLeftVert[] =
1455 {
1456 	{ 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1457 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 2 MSO_I, 12 MSO_I },
1458 	{ 2 MSO_I, 13 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 11 MSO_I },
1459 	{ 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 2 MSO_I, 10 MSO_I }, { 24 MSO_I, 16 MSO_I },
1460 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I },
1461 	{ 22 MSO_I, 0 }, { 21 MSO_I, 3 MSO_I }, { 0, 0 }, { 21 MSO_I, 4 MSO_I },
1462 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 21 MSO_I, 7 MSO_I }, { 24 MSO_I, 16 MSO_I },
1463 	{ 22 MSO_I, 14 MSO_I }, { 21 MSO_I, 1 MSO_I }, { 24 MSO_I, 16 MSO_I }, { 0, 14 MSO_I }
1464 };
1465 static const sal_uInt16 mso_sptCurvedLeftSegm[] =
1466 {
1467 	0xa608,
1468 	0x0003,
1469 	0xa308,
1470 	0x6000,
1471 	0x8000,
1472 	0xa604,
1473 	0xa308,
1474 	0x6000,
1475 	0x8000
1476 };
1477 static const SvxMSDffTextRectangles mso_sptCurvedLeftTextRect[] =
1478 {
1479 	{ { 43 MSO_I, 41 MSO_I }, { 44 MSO_I, 42 MSO_I } }
1480 };
1481 static const SvxMSDffVertPair mso_sptCurvedLeftGluePoints[] =
1482 {
1483 	{ 0, 15 MSO_I }, { 2 MSO_I, 11 MSO_I }, { 0, 8 MSO_I }, { 2 MSO_I, 13 MSO_I }, { 21 MSO_I, 16 MSO_I }
1484 };
1485 static const SvxMSDffHandle mso_sptCurvedLeftHandles[] =
1486 {
1487 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1488 		0, 0x100, 10800, 10800, 0, 10800, 3 + 37, 3 + 27 },
1489 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1490 		0, 0x101, 10800, 10800, 0, 10800, 3 + 25, 3 + 20 },
1491 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1492 		0x102, 21600, 10800, 10800, 0, 3 + 40, 3375, 21600 }
1493 };
1494 static const mso_CustomShape msoCurvedLeftArrow =
1495 {
1496 	(SvxMSDffVertPair*)mso_sptCurvedLeftVert, sizeof( mso_sptCurvedLeftVert ) / sizeof( SvxMSDffVertPair ),
1497 	(sal_uInt16*)mso_sptCurvedLeftSegm, sizeof( mso_sptCurvedLeftSegm ) >> 1,
1498 	(SvxMSDffCalculationData*)mso_sptCurvedUpCalc, sizeof( mso_sptCurvedUpCalc ) / sizeof( SvxMSDffCalculationData ),
1499 	(sal_Int32*)mso_sptCurvedUpDefault,
1500 	(SvxMSDffTextRectangles*)mso_sptCurvedLeftTextRect, sizeof( mso_sptCurvedLeftTextRect ) / sizeof( SvxMSDffTextRectangles ),
1501 	21600, 21600,
1502 	0x80000000, 0x80000000,
1503 	(SvxMSDffVertPair*)mso_sptCurvedLeftGluePoints, sizeof( mso_sptCurvedLeftGluePoints ) / sizeof( SvxMSDffVertPair ),
1504 	(SvxMSDffHandle*)mso_sptCurvedLeftHandles, sizeof( mso_sptCurvedLeftHandles ) / sizeof( SvxMSDffHandle )
1505 };
1506 
1507 static const SvxMSDffVertPair mso_sptStripedRightArrowVert[] =	// adjustment1 : x 3375 - 21600
1508 {																// adjustment2 : y 0 - 10800
1509 	{ 3375,	0 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 1 MSO_I, 0 }, { 21600, 10800 },
1510 	{ 1 MSO_I, 21600 },	{ 1 MSO_I, 2 MSO_I }, { 3375, 2 MSO_I }, { 0, 0 MSO_I },
1511 	{ 675, 0 MSO_I }, { 675, 2 MSO_I }, { 0, 2 MSO_I }, { 1350, 0 MSO_I },
1512 	{ 2700, 0 MSO_I }, { 2700, 2 MSO_I }, { 1350, 2 MSO_I }
1513 };
1514 static const sal_uInt16 mso_sptStripedRightArrowSegm[] =
1515 {
1516 	0x4000, 0x0006, 0x6001,	0x8000,
1517 	0x4000, 0x0003, 0x6001, 0x8000,
1518 	0x4000, 0x0003, 0x6001, 0x8000
1519 };
1520 static const SvxMSDffCalculationData mso_sptStripedRightArrowCalc[] =
1521 {
1522 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1523 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1524 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1525 	{ 0x8000, { 21600, 0, 0x401 } },
1526 	{ 0x6001, { 0x403, 0x400, 10800 } },
1527 	{ 0x6000, { 0x401, 0x404, 0 } }
1528 };
1529 static const SvxMSDffTextRectangles mso_sptStripedRightArrowTextRect[] =
1530 {
1531 	{ { 3375, 0 MSO_I }, { 5 MSO_I, 2 MSO_I } }
1532 };
1533 static const SvxMSDffHandle mso_sptStripedRightArrowHandle[] =
1534 {
1535 	{	MSDFF_HANDLE_FLAGS_RANGE,
1536 		0x100, 0x101, 10800, 10800, 3375, 21600, 0, 10800 }
1537 };
1538 static const mso_CustomShape msoStripedRightArrow =
1539 {
1540 	(SvxMSDffVertPair*)mso_sptStripedRightArrowVert, sizeof( mso_sptStripedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1541 	(sal_uInt16*)mso_sptStripedRightArrowSegm, sizeof( mso_sptStripedRightArrowSegm ) >> 1,
1542 	(SvxMSDffCalculationData*)mso_sptStripedRightArrowCalc, sizeof( mso_sptStripedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1543 	(sal_Int32*)mso_sptDefault16200and5400,
1544 	(SvxMSDffTextRectangles*)mso_sptStripedRightArrowTextRect, sizeof( mso_sptStripedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1545 	21600, 21600,
1546 	0x80000000, 0x80000000,
1547 	NULL, 0,
1548 	(SvxMSDffHandle*)mso_sptStripedRightArrowHandle, sizeof( mso_sptStripedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1549 };
1550 
1551 static const SvxMSDffVertPair mso_sptNotchedRightArrowVert[] =	// adjustment1 : x 0 - 21600	(default 16200)
1552 {																// adjustment2 : y 0 - 10800	(default 5400)
1553 	{ 0, 1 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 0 }, { 21600, 10800 },
1554 	{ 0 MSO_I, 21600 }, { 0 MSO_I, 2 MSO_I }, { 0, 2 MSO_I }, { 5 MSO_I, 10800 }, { 0, 1 MSO_I }
1555 };
1556 static const SvxMSDffCalculationData mso_sptNotchedRightArrowCalc[] =
1557 {
1558 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1559 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1560 	{ 0x8000, { 21600, 0, DFF_Prop_adjust2Value } },
1561 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
1562 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
1563 	{ 0x6001, { 0x403, 0x404, 10800 } }
1564 };
1565 static const SvxMSDffTextRectangles mso_sptNotchedRightArrowTextRect[] =	// todo
1566 {
1567 	{ { 0, 0 }, { 21600, 21600 } }
1568 };
1569 static const SvxMSDffHandle mso_sptNotchedRightArrowHandle[] =
1570 {
1571 	{	MSDFF_HANDLE_FLAGS_RANGE,
1572 		0x100, 0x101, 10800, 10800, 0, 21600, 0, 10800 }
1573 };
1574 static const mso_CustomShape msoNotchedRightArrow =
1575 {
1576 	(SvxMSDffVertPair*)mso_sptNotchedRightArrowVert, sizeof( mso_sptNotchedRightArrowVert ) / sizeof( SvxMSDffVertPair ),
1577 	NULL, 0,
1578 	(SvxMSDffCalculationData*)mso_sptNotchedRightArrowCalc, sizeof( mso_sptNotchedRightArrowCalc ) / sizeof( SvxMSDffCalculationData ),
1579 	(sal_Int32*)mso_sptDefault16200and5400,
1580 	(SvxMSDffTextRectangles*)mso_sptNotchedRightArrowTextRect, sizeof( mso_sptNotchedRightArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
1581 	21600, 21600,
1582 	0x80000000, 0x80000000,
1583 	NULL, 0,
1584 	(SvxMSDffHandle*)mso_sptNotchedRightArrowHandle, sizeof( mso_sptNotchedRightArrowHandle ) / sizeof( SvxMSDffHandle )
1585 };
1586 
1587 static const SvxMSDffVertPair mso_sptHomePlateVert[] =	// adjustment1 : x 0 - 21600
1588 {
1589 	{ 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1590 	{ 0, 21600 }
1591 };
1592 static const sal_uInt16 mso_sptHomePlateSegm[] =
1593 {
1594 	0x4000, 0x0004, 0x6001, 0x8000
1595 };
1596 static const SvxMSDffCalculationData mso_sptHomePlateCalc[] =
1597 {
1598 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
1599 };
1600 static const sal_Int32 mso_sptHomePlateDefault[] =
1601 {
1602 	1, 16200
1603 };
1604 static const SvxMSDffTextRectangles mso_sptHomePlateTextRect[] =	// todo
1605 {
1606 	{ { 0, 0 }, { 21600, 21600 } }
1607 };
1608 static const SvxMSDffHandle mso_sptHomePlateHandle[] =
1609 {
1610 	{	MSDFF_HANDLE_FLAGS_RANGE,
1611 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1612 };
1613 static const mso_CustomShape msoHomePlate =
1614 {
1615 	(SvxMSDffVertPair*)mso_sptHomePlateVert, sizeof( mso_sptHomePlateVert ) / sizeof( SvxMSDffVertPair ),
1616 	(sal_uInt16*)mso_sptHomePlateSegm, sizeof( mso_sptHomePlateSegm ) >> 1,
1617 	(SvxMSDffCalculationData*)mso_sptHomePlateCalc, sizeof( mso_sptHomePlateCalc ) / sizeof( SvxMSDffCalculationData ),
1618 	(sal_Int32*)mso_sptHomePlateDefault,
1619 	(SvxMSDffTextRectangles*)mso_sptHomePlateTextRect, sizeof( mso_sptHomePlateTextRect ) / sizeof( SvxMSDffTextRectangles ),
1620 	21600, 21600,
1621 	0x80000000, 0x80000000,
1622 	NULL, 0,
1623 	(SvxMSDffHandle*)mso_sptHomePlateHandle, sizeof( mso_sptHomePlateHandle ) / sizeof( SvxMSDffHandle )
1624 };
1625 
1626 static const SvxMSDffVertPair mso_sptChevronVert[] =	// adjustment1 : x 0 - 21600
1627 {
1628 	{ 0, 0 }, { 0 MSO_I, 0 }, { 21600, 10800 }, { 0 MSO_I, 21600 },
1629 	{ 0, 21600 }, { 1 MSO_I, 10800 }
1630 };
1631 static const sal_uInt16 mso_sptChevronSegm[] =
1632 {
1633 	0x4000, 0x0005, 0x6001, 0x8000
1634 };
1635 static const SvxMSDffCalculationData mso_sptChevronCalc[] =
1636 {
1637 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1638 	{ 0x8000, { 21600, 0, 0x0400 } }
1639 };
1640 static const sal_Int32 mso_sptChevronDefault[] =
1641 {
1642 	1, 16200
1643 };
1644 static const SvxMSDffTextRectangles mso_sptChevronTextRect[] =	// todo
1645 {
1646 	{ { 0, 0 }, { 21600, 21600 } }
1647 };
1648 static const SvxMSDffHandle mso_sptChevronHandle[] =
1649 {
1650 	{	MSDFF_HANDLE_FLAGS_RANGE,
1651 		0x100, 0, 10800, 10800, 0, 21600, 0x80000000, 0x7fffffff }
1652 };
1653 static const mso_CustomShape msoChevron =
1654 {
1655 	(SvxMSDffVertPair*)mso_sptChevronVert, sizeof( mso_sptChevronVert ) / sizeof( SvxMSDffVertPair ),
1656 	(sal_uInt16*)mso_sptChevronSegm, sizeof( mso_sptChevronSegm ) >> 1,
1657 	(SvxMSDffCalculationData*)mso_sptChevronCalc, sizeof( mso_sptChevronCalc ) / sizeof( SvxMSDffCalculationData ),
1658 	(sal_Int32*)mso_sptChevronDefault,
1659 	(SvxMSDffTextRectangles*)mso_sptChevronTextRect, sizeof( mso_sptChevronTextRect ) / sizeof( SvxMSDffTextRectangles ),
1660 	21600, 21600,
1661 	0x80000000, 0x80000000,
1662 	NULL, 0,
1663 	(SvxMSDffHandle*)mso_sptChevronHandle, sizeof( mso_sptChevronHandle ) / sizeof( SvxMSDffHandle )
1664 };
1665 
1666 static const SvxMSDffVertPair mso_sptRightArrowCalloutVert[] =	// adjustment1 : x 0 - 21000
1667 {																// adjustment2 : y 0 - 10800
1668 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
1669 	{ 2 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 2 MSO_I, 4 MSO_I }, { 2 MSO_I, 5 MSO_I },
1670 	{ 0 MSO_I, 5 MSO_I }, { 0 MSO_I, 21600 }, { 0, 21600 }
1671 };
1672 static const sal_uInt16 mso_sptRightArrowCalloutSegm[] =
1673 {
1674 	0x4000, 0x000a, 0x6001,	0x8000
1675 };
1676 static const SvxMSDffCalculationData mso_sptRightArrowCalloutCalc[] =
1677 {
1678 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1679 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1680 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1681 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1682 	{ 0x8000, { 21600, 0, 0x0401 } },
1683 	{ 0x8000, { 21600, 0, 0x0403 } }
1684 };
1685 static const sal_Int32 mso_sptRightArrowCalloutDefault[] =
1686 {
1687 	4, 14400, 5400, 18000, 8100
1688 };
1689 static const SvxMSDffTextRectangles mso_sptRightArrowCalloutTextRect[] =
1690 {
1691 	{ { 0, 0 }, { 0 MSO_I, 21600 } }
1692 };
1693 static const SvxMSDffHandle mso_sptRightArrowCalloutHandle[] =
1694 {
1695 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1696 		0x100, 0, 10800, 10800, 0, 0x102, 0x80000000, 0x7fffffff },
1697 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1698 		0x102, 0x103, 10800, 10800, 0x100, 21600, 0x101, 10800 },
1699 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1700 		1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1701 };
1702 static const mso_CustomShape msoRightArrowCallout =
1703 {
1704 	(SvxMSDffVertPair*)mso_sptRightArrowCalloutVert, sizeof( mso_sptRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1705 	(sal_uInt16*)mso_sptRightArrowCalloutSegm, sizeof( mso_sptRightArrowCalloutSegm ) >> 1,
1706 	(SvxMSDffCalculationData*)mso_sptRightArrowCalloutCalc, sizeof( mso_sptRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1707 	(sal_Int32*)mso_sptRightArrowCalloutDefault,
1708 	(SvxMSDffTextRectangles*)mso_sptRightArrowCalloutTextRect, sizeof( mso_sptRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1709 	21600, 21600,
1710 	0x80000000, 0x80000000,
1711 	NULL, 0,
1712 	(SvxMSDffHandle*)mso_sptRightArrowCalloutHandle, sizeof( mso_sptRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1713 };
1714 
1715 static const SvxMSDffVertPair mso_sptLeftArrowCalloutVert[] =	// adjustment1 : x 0 - 21600, adjustment2 : y 0 - 10800
1716 {																// adjustment3 : x 0 - 21600, adjustment4 : y 0 - 10800
1717 	{ 0 MSO_I, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0 MSO_I, 21600 },
1718 	{ 0 MSO_I, 5 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 2 MSO_I, 4 MSO_I }, { 0, 10800 },
1719 	{ 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1720 };
1721 static const sal_uInt16 mso_sptLeftArrowCalloutSegm[] =
1722 {
1723 	0x4000, 0x000a, 0x6001,	0x8000
1724 };
1725 static const SvxMSDffCalculationData mso_sptLeftArrowCalloutCalc[] =
1726 {
1727 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1728 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1729 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1730 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1731 	{ 0x8000, { 21600, 0, 0x0401 } },
1732 	{ 0x8000, { 21600, 0, 0x0403 } }
1733 };
1734 static const sal_Int32 mso_sptLeftArrowCalloutDefault[] =
1735 {
1736 	4, 7200, 5400, 3600, 8100
1737 };
1738 static const SvxMSDffTextRectangles mso_sptLeftArrowCalloutTextRect[] =
1739 {
1740 	{ { 0 MSO_I, 0 }, { 21600, 21600 } }
1741 };
1742 static const SvxMSDffHandle mso_sptLeftArrowCalloutHandle[] =
1743 {
1744 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1745 		0x100, 0, 10800, 10800, 0x102, 21600, 0x80000000, 0x7fffffff },
1746 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1747 		0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1748 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1749 		0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1750 };
1751 static const mso_CustomShape msoLeftArrowCallout =
1752 {
1753 	(SvxMSDffVertPair*)mso_sptLeftArrowCalloutVert, sizeof( mso_sptLeftArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1754 	(sal_uInt16*)mso_sptLeftArrowCalloutSegm, sizeof( mso_sptLeftArrowCalloutSegm ) >> 1,
1755 	(SvxMSDffCalculationData*)mso_sptLeftArrowCalloutCalc, sizeof( mso_sptLeftArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1756 	(sal_Int32*)mso_sptLeftArrowCalloutDefault,
1757 	(SvxMSDffTextRectangles*)mso_sptLeftArrowCalloutTextRect, sizeof( mso_sptLeftArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1758 	21600, 21600,
1759 	0x80000000, 0x80000000,
1760 	NULL, 0,
1761 	(SvxMSDffHandle*)mso_sptLeftArrowCalloutHandle, sizeof( mso_sptLeftArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1762 };
1763 
1764 static const SvxMSDffVertPair mso_sptUpArrowCalloutVert[] =
1765 {
1766 	{ 21600, 0 MSO_I }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 MSO_I },
1767 	{ 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I }, { 10800, 0 },
1768 	{ 4 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 5 MSO_I, 0 MSO_I }
1769 };
1770 static const sal_uInt16 mso_sptUpArrowCalloutSegm[] =
1771 {
1772 	0x4000, 0x000a, 0x6001,	0x8000
1773 };
1774 static const SvxMSDffCalculationData mso_sptUpArrowCalloutCalc[] =
1775 {
1776 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1777 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1778 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1779 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1780 	{ 0x8000, { 21600, 0, 0x0401 } },
1781 	{ 0x8000, { 21600, 0, 0x0403 } }
1782 };
1783 static const sal_Int32 mso_sptUpArrowCalloutDefault[] =
1784 {
1785 	4, 7200, 5400, 3600, 8100
1786 };
1787 static const SvxMSDffTextRectangles mso_sptUpArrowCalloutTextRect[] =
1788 {
1789 	{ { 0, 0 MSO_I }, { 21600, 21600 } }
1790 };
1791 static const SvxMSDffHandle mso_sptUpArrowCalloutHandle[] =
1792 {
1793 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1794 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 21600 },
1795 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1796 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1797 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1798 		0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1799 };
1800 static const mso_CustomShape msoUpArrowCallout =
1801 {
1802 	(SvxMSDffVertPair*)mso_sptUpArrowCalloutVert, sizeof( mso_sptUpArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1803 	(sal_uInt16*)mso_sptUpArrowCalloutSegm, sizeof( mso_sptUpArrowCalloutSegm ) >> 1,
1804 	(SvxMSDffCalculationData*)mso_sptUpArrowCalloutCalc, sizeof( mso_sptUpArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1805 	(sal_Int32*)mso_sptUpArrowCalloutDefault,
1806 	(SvxMSDffTextRectangles*)mso_sptUpArrowCalloutTextRect, sizeof( mso_sptUpArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1807 	21600, 21600,
1808 	0x80000000, 0x80000000,
1809 	NULL, 0,
1810 	(SvxMSDffHandle*)mso_sptUpArrowCalloutHandle, sizeof( mso_sptUpArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1811 };
1812 
1813 static const SvxMSDffVertPair mso_sptDownArrowCalloutVert[] =
1814 {
1815 	{ 0, 0 MSO_I }, { 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I },
1816 	{ 5 MSO_I, 0 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 4 MSO_I, 2 MSO_I }, { 10800, 21600 },
1817 	{ 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1818 };
1819 static const sal_uInt16 mso_sptDownArrowCalloutSegm[] =
1820 {
1821 	0x4000, 0x000a, 0x6001,	0x8000
1822 };
1823 static const SvxMSDffCalculationData mso_sptDownArrowCalloutCalc[] =
1824 {
1825 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1826 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1827 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1828 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1829 	{ 0x8000, { 21600, 0, 0x0401 } },
1830 	{ 0x8000, { 21600, 0, 0x0403 } }
1831 };
1832 static const sal_Int32 mso_sptDownArrowCalloutDefault[] =
1833 {
1834 	4, 14400, 5400, 18000, 8100
1835 };
1836 static const SvxMSDffTextRectangles mso_sptDownArrowCalloutTextRect[] =
1837 {
1838 	{ { 0, 0 }, { 21600, 0 MSO_I } }
1839 };
1840 static const SvxMSDffHandle mso_sptDownArrowCalloutHandle[] =
1841 {
1842 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1843 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x102 },
1844 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1845 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0x100, 21600 },
1846 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1847 		0x101, 1, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1848 };
1849 static const mso_CustomShape msoDownArrowCallout =
1850 {
1851 	(SvxMSDffVertPair*)mso_sptDownArrowCalloutVert, sizeof( mso_sptDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1852 	(sal_uInt16*)mso_sptDownArrowCalloutSegm, sizeof( mso_sptDownArrowCalloutSegm ) >> 1,
1853 	(SvxMSDffCalculationData*)mso_sptDownArrowCalloutCalc, sizeof( mso_sptDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1854 	(sal_Int32*)mso_sptDownArrowCalloutDefault,
1855 	(SvxMSDffTextRectangles*)mso_sptDownArrowCalloutTextRect, sizeof( mso_sptDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1856 	21600, 21600,
1857 	0x80000000, 0x80000000,
1858 	NULL, 0,
1859 	(SvxMSDffHandle*)mso_sptDownArrowCalloutHandle, sizeof( mso_sptDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1860 };
1861 
1862 static const SvxMSDffVertPair mso_sptLeftRightArrowCalloutVert[] =
1863 {
1864 	{ 0 MSO_I, 0 }, { 4 MSO_I, 0 }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I },
1865 	{ 6 MSO_I, 1 MSO_I }, { 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I },
1866 	{ 4 MSO_I, 7 MSO_I }, { 4 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0 MSO_I, 7 MSO_I },
1867 	{ 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I }, { 0, 10800 }, { 2 MSO_I, 1 MSO_I },
1868 	{ 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1869 };
1870 static const sal_uInt16 mso_sptLeftRightArrowCalloutSegm[] =
1871 {
1872 	0x4000, 0x0011, 0x6001, 0x8000
1873 };
1874 static const SvxMSDffCalculationData mso_sptLeftRightArrowCalloutCalc[] =
1875 {
1876 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1877 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1878 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1879 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1880 	{ 0x8000, { 21600, 0, 0x0400 } },
1881 	{ 0x8000, { 21600, 0, 0x0401 } },
1882 	{ 0x8000, { 21600, 0, 0x0402 } },
1883 	{ 0x8000, { 21600, 0, 0x0403 } }
1884 };
1885 static const sal_Int32 mso_sptLeftRightArrowCalloutDefault[] =
1886 {
1887 	4, 5400, 5500, 2700, 8100
1888 };
1889 static const SvxMSDffTextRectangles mso_sptLeftRightArrowCalloutTextRect[] =
1890 {
1891 	{ { 0 MSO_I, 0 }, { 4 MSO_I, 21600 } }
1892 };
1893 static const SvxMSDffHandle mso_sptLeftRightArrowCalloutHandle[] =
1894 {
1895 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
1896 		0x100, 0, 10800, 10800, 0x102, 10800, 0x80000000, 0x7fffffff },
1897 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1898 		0x102, 0x103, 10800, 10800, 0, 0x100, 0x101, 10800 },
1899 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1900 		0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 0x103 }
1901 };
1902 static const mso_CustomShape msoLeftRightArrowCallout =
1903 {
1904 	(SvxMSDffVertPair*)mso_sptLeftRightArrowCalloutVert, sizeof( mso_sptLeftRightArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1905 	(sal_uInt16*)mso_sptLeftRightArrowCalloutSegm, sizeof( mso_sptLeftRightArrowCalloutSegm ) >> 1,
1906 	(SvxMSDffCalculationData*)mso_sptLeftRightArrowCalloutCalc, sizeof( mso_sptLeftRightArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1907 	(sal_Int32*)mso_sptLeftRightArrowCalloutDefault,
1908 	(SvxMSDffTextRectangles*)mso_sptLeftRightArrowCalloutTextRect, sizeof( mso_sptLeftRightArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1909 	21600, 21600,
1910 	0x80000000, 0x80000000,
1911 	NULL, 0,
1912 	(SvxMSDffHandle*)mso_sptLeftRightArrowCalloutHandle, sizeof( mso_sptLeftRightArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1913 };
1914 
1915 static const SvxMSDffVertPair mso_sptUpDownArrowCalloutVert[] =
1916 {
1917 	{ 0, 0 MSO_I }, { 0, 4 MSO_I }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 6 MSO_I },
1918 	{ 1 MSO_I, 6 MSO_I }, { 10800, 21600 }, { 5 MSO_I, 6 MSO_I }, { 7 MSO_I, 6 MSO_I },
1919 	{ 7 MSO_I, 4 MSO_I }, { 21600, 4 MSO_I }, { 21600, 0 MSO_I }, { 7 MSO_I, 0 MSO_I },
1920 	{ 7 MSO_I, 2 MSO_I }, { 5 MSO_I, 2 MSO_I }, { 10800, 0 }, { 1 MSO_I, 2 MSO_I },
1921 	{ 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 0 MSO_I }
1922 };
1923 static const sal_uInt16 mso_sptUpDownArrowCalloutSegm[] =
1924 {
1925 	0x4000, 0x0011, 0x6001, 0x8000
1926 };
1927 static const SvxMSDffCalculationData mso_sptUpDownArrowCalloutCalc[] =
1928 {
1929 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1930 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1931 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1932 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1933 	{ 0x8000, { 21600, 0, 0x0400 } },
1934 	{ 0x8000, { 21600, 0, 0x0401 } },
1935 	{ 0x8000, { 21600, 0, 0x0402 } },
1936 	{ 0x8000, { 21600, 0, 0x0403 } }
1937 };
1938 static const sal_Int32 mso_sptUpDownArrowCalloutDefault[] =
1939 {
1940 	4, 5400, 5500, 2700, 8100
1941 };
1942 static const SvxMSDffTextRectangles mso_sptUpDownArrowCalloutTextRect[] =
1943 {
1944 	{ { 0, 0 MSO_I }, { 21600, 4 MSO_I } }
1945 };
1946 static const SvxMSDffHandle mso_sptUpDownArrowCalloutHandle[] =
1947 {
1948 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
1949 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 10800 },
1950 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
1951 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 },
1952 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
1953 		0x101, 0, 10800, 10800, 0, 0x103, 0x80000000, 0x7fffffff }
1954 };
1955 static const mso_CustomShape msoUpDownArrowCallout =
1956 {
1957 	(SvxMSDffVertPair*)mso_sptUpDownArrowCalloutVert, sizeof( mso_sptUpDownArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
1958 	(sal_uInt16*)mso_sptUpDownArrowCalloutSegm, sizeof( mso_sptUpDownArrowCalloutSegm ) >> 1,
1959 	(SvxMSDffCalculationData*)mso_sptUpDownArrowCalloutCalc, sizeof( mso_sptUpDownArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
1960 	(sal_Int32*)mso_sptUpDownArrowCalloutDefault,
1961 	(SvxMSDffTextRectangles*)mso_sptUpDownArrowCalloutTextRect, sizeof( mso_sptUpDownArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
1962 	21600, 21600,
1963 	0x80000000, 0x80000000,
1964 	NULL, 0,
1965 	(SvxMSDffHandle*)mso_sptUpDownArrowCalloutHandle, sizeof( mso_sptUpDownArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
1966 };
1967 
1968 static const SvxMSDffVertPair mso_sptQuadArrowCalloutVert[] =
1969 {
1970 	{ 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
1971 	{ 10800, 0 }, { 5 MSO_I, 2 MSO_I }, { 7 MSO_I, 2 MSO_I }, { 7 MSO_I, 0 MSO_I },
1972 	{ 4 MSO_I, 0 MSO_I }, { 4 MSO_I, 3 MSO_I }, { 6 MSO_I, 3 MSO_I }, { 6 MSO_I, 1 MSO_I },
1973 	{ 21600, 10800 }, { 6 MSO_I, 5 MSO_I }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 7 MSO_I },
1974 	{ 4 MSO_I, 4 MSO_I }, { 7 MSO_I, 4 MSO_I }, { 7 MSO_I, 6 MSO_I }, { 5 MSO_I, 6 MSO_I },
1975 	{ 10800, 21600 }, { 1 MSO_I, 6 MSO_I }, { 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 4 MSO_I },
1976 	{ 0 MSO_I, 4 MSO_I }, { 0 MSO_I, 7 MSO_I }, { 2 MSO_I, 7 MSO_I }, { 2 MSO_I, 5 MSO_I },
1977 	{ 0, 10800 }, { 2 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 3 MSO_I }
1978 };
1979 static const sal_uInt16 mso_sptQuadArrowCalloutSegm[] =
1980 {
1981 	0x4000, 0x001f, 0x6001, 0x8000
1982 };
1983 static const SvxMSDffCalculationData mso_sptQuadArrowCalloutCalc[] =
1984 {
1985 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
1986 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
1987 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
1988 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
1989 	{ 0x8000, { 21600, 0, 0x0400 } },
1990 	{ 0x8000, { 21600, 0, 0x0401 } },
1991 	{ 0x8000, { 21600, 0, 0x0402 } },
1992 	{ 0x8000, { 21600, 0, 0x0403 } }
1993 };
1994 static const sal_Int32 mso_sptQuadArrowCalloutDefault[] =
1995 {
1996 	4, 5400, 8100, 2700, 9400
1997 };
1998 static const SvxMSDffTextRectangles mso_sptQuadArrowCalloutTextRect[] =
1999 {
2000 	{ { 0 MSO_I, 0 MSO_I }, { 4 MSO_I, 4 MSO_I } }
2001 };
2002 static const SvxMSDffHandle mso_sptQuadArrowCalloutHandle[] =
2003 {
2004 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2005 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0x102, 0x101 },
2006 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
2007 		0x101, 0, 10800, 10800, 0x100, 10800, 0x80000000, 0x7fffffff },
2008 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
2009 		0x103, 0x102, 10800, 10800, 0x101, 10800, 0, 0x100 }
2010 };
2011 static const mso_CustomShape msoQuadArrowCallout =
2012 {
2013 	(SvxMSDffVertPair*)mso_sptQuadArrowCalloutVert, sizeof( mso_sptQuadArrowCalloutVert ) / sizeof( SvxMSDffVertPair ),
2014 	(sal_uInt16*)mso_sptQuadArrowCalloutSegm, sizeof( mso_sptQuadArrowCalloutSegm ) >> 1,
2015 	(SvxMSDffCalculationData*)mso_sptQuadArrowCalloutCalc, sizeof( mso_sptQuadArrowCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
2016 	(sal_Int32*)mso_sptQuadArrowCalloutDefault,
2017 	(SvxMSDffTextRectangles*)mso_sptQuadArrowCalloutTextRect, sizeof( mso_sptQuadArrowCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
2018 	21600, 21600,
2019 	0x80000000, 0x80000000,
2020 	NULL, 0,
2021 	(SvxMSDffHandle*)mso_sptQuadArrowCalloutHandle, sizeof( mso_sptQuadArrowCalloutHandle ) / sizeof( SvxMSDffHandle )
2022 };
2023 
2024 static const SvxMSDffVertPair mso_sptCircularArrowVert[] =
2025 {
2026 	{ 0x03 MSO_I, 0x03 MSO_I },
2027 	{ 0x14 MSO_I, 0x14 MSO_I },
2028 	{ 0x13 MSO_I, 0x12 MSO_I },
2029 	{ 0x11 MSO_I, 0x10 MSO_I },
2030 	{ 0, 0 }, { 21600, 21600 },
2031 	{ 0x09 MSO_I, 0x08 MSO_I },
2032 	{ 0x0B MSO_I, 0x0A MSO_I },
2033 	{ 0x18 MSO_I, 0x17 MSO_I },
2034 	{ 0x2F MSO_I, 0x2E MSO_I },
2035 	{ 0x1D MSO_I, 0x1C MSO_I }
2036 };
2037 static const sal_uInt16 mso_sptCircularArrowSegm[] =
2038 {
2039 	0xa404, 0xa504, 0x0003, 0x6001, 0x8000
2040 };
2041 static const SvxMSDffCalculationData mso_sptCircularArrowCalc[] =
2042 {
2043 	{ 0x2000, { 0x0147, 0x0000, 0x0000 } },
2044 	{ 0x2000, { 0x0148, 0x0000, 0x0000 } },
2045 	{ 0x2000, { 0x0149, 0x0000, 0x0000 } },
2046 	{ 0x4000, { 0x2A30, 0x0149, 0x0000 } },
2047 	{ 0x4009, { 0x2A30, 0x0147, 0x0000 } },
2048 	{ 0x400A, { 0x2A30, 0x0147, 0x0000 } },
2049 	{ 0x4009, { 0x2A30, 0x0148, 0x0000 } },
2050 	{ 0x400A, { 0x2A30, 0x0148, 0x0000 } },
2051 	{ 0x2000, { 0x0404, 0x2A30, 0x0000 } },
2052 	{ 0x2000, { 0x0405, 0x2A30, 0x0000 } },
2053 	{ 0x2000, { 0x0406, 0x2A30, 0x0000 } },
2054 	{ 0x2000, { 0x0407, 0x2A30, 0x0000 } },
2055 	{ 0x6009, { 0x0403, 0x0147, 0x0000 } },
2056 	{ 0x600A, { 0x0403, 0x0147, 0x0000 } },
2057 	{ 0x6009, { 0x0403, 0x0148, 0x0000 } },
2058 	{ 0x600A, { 0x0403, 0x0148, 0x0000 } },
2059 	{ 0x2000, { 0x040C, 0x2A30, 0x0000 } },
2060 	{ 0x2000, { 0x040D, 0x2A30, 0x0000 } },
2061 	{ 0x2000, { 0x040E, 0x2A30, 0x0000 } },
2062 	{ 0x2000, { 0x040F, 0x2A30, 0x0000 } },
2063 	{ 0x8000, { 0x5460, 0x0000, 0x0403 } },
2064 	{ 0x4009, { 0x34BC, 0x0148, 0x0000 } },
2065 	{ 0x400A, { 0x34BC, 0x0148, 0x0000 } },
2066 	{ 0x2000, { 0x0415, 0x2A30, 0x0000 } },
2067 	{ 0x2000, { 0x0416, 0x2A30, 0x0000 } },
2068 	{ 0x2000, { 0x0149, 0x0000, 0x0A8C } },
2069 	{ 0x6009, { 0x0419, 0x0148, 0x0000 } },
2070 	{ 0x600A, { 0x0419, 0x0148, 0x0000 } },
2071 	{ 0x2000, { 0x041A, 0x2A30, 0x0000 } },
2072 	{ 0x2000, { 0x041B, 0x2A30, 0x0000 } },
2073 	{ 0xA000, { 0x041D, 0x0000, 0x0418 } },
2074 	{ 0xA000, { 0x041D, 0x0000, 0x0418 } },
2075 	{ 0x6001, { 0x041E, 0x041F, 0x0001 } },
2076 	{ 0xA000, { 0x041C, 0x0000, 0x0417 } },
2077 	{ 0xA000, { 0x041C, 0x0000, 0x0417 } },
2078 	{ 0x6001, { 0x0421, 0x0422, 0x0001 } },
2079 	{ 0x6000, { 0x0420, 0x0423, 0x0000 } },
2080 	{ 0x200D, { 0x0424, 0x0000, 0x0000 } },
2081 	{ 0x200E, { 0x0148, 0x002D, 0x0000 } },
2082 	{ 0x6009, { 0x0425, 0x0426, 0x0000 } },
2083 	{ 0x200E, { 0x0148, 0x002D, 0x0000 } },
2084 	{ 0x600A, { 0x0425, 0x0428, 0x0000 } },
2085 	{ 0x000E, { 0x0000, 0x002D, 0x0000 } },
2086 	{ 0x6009, { 0x0427, 0x042A, 0x0000 } },
2087 	{ 0x000E, { 0x0000, 0x002D, 0x0000 } },
2088 	{ 0x6009, { 0x0429, 0x042C, 0x0000 } },
2089 	{ 0x6000, { 0x041C, 0x042B, 0x0000 } },
2090 	{ 0x6000, { 0x041D, 0x042D, 0x0000 } }
2091 };
2092 static const sal_Int32 mso_sptCircularArrowDefault[] =
2093 {
2094 	3, 180, 0, 5500
2095 };
2096 static const SvxMSDffTextRectangles mso_sptCircularArrowTextRect[] =	// todo
2097 {
2098 	{ { 0, 0 }, { 21600, 21600 } }
2099 };
2100 static const SvxMSDffHandle mso_sptCircularArrowHandle[] =
2101 {
2102 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2103 		10800, 0x100, 10800, 10800, 10800, 10800, 0xff4c0000, 0x00b40000 },
2104 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
2105 		0x102, 0x101, 10800, 10800, 0, 10800, 0xff4c0000, 0x00b40000 }
2106 };
2107 static const mso_CustomShape msoCircularArrow =
2108 {
2109 	(SvxMSDffVertPair*)mso_sptCircularArrowVert, sizeof( mso_sptCircularArrowVert ) / sizeof( SvxMSDffVertPair ),
2110 	(sal_uInt16*)mso_sptCircularArrowSegm, sizeof( mso_sptCircularArrowSegm ) >> 1,
2111 	(SvxMSDffCalculationData*)mso_sptCircularArrowCalc, sizeof( mso_sptCircularArrowCalc ) / sizeof( SvxMSDffCalculationData ),
2112 	(sal_Int32*)mso_sptCircularArrowDefault,
2113 	(SvxMSDffTextRectangles*)mso_sptCircularArrowTextRect, sizeof( mso_sptCircularArrowTextRect ) / sizeof( SvxMSDffTextRectangles ),
2114 	21600, 21600,
2115 	0x80000000, 0x80000000,
2116 	NULL, 0,
2117 	(SvxMSDffHandle*)mso_sptCircularArrowHandle, sizeof( mso_sptCircularArrowHandle ) / sizeof( SvxMSDffHandle )		// handles
2118 };
2119 
2120 static const SvxMSDffVertPair mso_sptCubeVert[] =
2121 {
2122 	{ 0, 12 MSO_I }, { 0, 1 MSO_I }, { 2 MSO_I, 0 }, { 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }, { 4 MSO_I, 12 MSO_I },
2123 	{ 0, 1 MSO_I }, { 2 MSO_I, 0 },	{ 11 MSO_I, 0 }, { 4 MSO_I, 1 MSO_I },
2124 	{ 4 MSO_I, 12 MSO_I  }, { 4 MSO_I, 1 MSO_I },	{ 11 MSO_I, 0 }, { 11 MSO_I, 3 MSO_I }
2125 };
2126 static const sal_uInt16 mso_sptCubeSegm[] =
2127 {
2128 	0x4000, 0x0005, 0x6001, 0x8000,
2129 	0x4000, 0x0003, 0x6001, 0x8000,
2130 	0x4000, 0x0003, 0x6001, 0x8000
2131 };
2132 static const SvxMSDffCalculationData mso_sptCubeCalc[] =
2133 {
2134 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2135 	{ 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
2136 	{ 0x6000, { DFF_Prop_geoLeft, 0x400, 0 } },
2137 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
2138 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2139 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x402 } },	// 5
2140 	{ 0x2001, { 0x405, 1, 2 } },					// 6
2141 	{ 0x6000, { 0x402, 0x406, 0 } },				// 7
2142 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },	// 8
2143 	{ 0x2001, { 0x408, 1, 2 } },					// 9
2144 	{ 0x6000, { 0x401, 0x409, 0 } },				// 10
2145 	{ 0x2000, { DFF_Prop_geoRight, 0, 0 } },		// 11
2146 	{ 0x2000, { DFF_Prop_geoBottom, 0, 0 } }		// 12
2147 };
2148 static const SvxMSDffTextRectangles mso_sptCubeTextRect[] =
2149 {
2150 	{ { 0, 1 MSO_I }, { 4 MSO_I, 12 MSO_I } }
2151 };
2152 static const SvxMSDffHandle mso_sptCubeHandle[] =
2153 {
2154 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2155 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
2156 };
2157 static const SvxMSDffVertPair mso_sptCubeGluePoints[] =
2158 {
2159 	{ 7 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I }, { 0, 10 MSO_I }, { 6 MSO_I, 21600 }, { 4 MSO_I, 10 MSO_I }, { 21600, 9 MSO_I }
2160 };
2161 static const mso_CustomShape msoCube =
2162 {
2163 	(SvxMSDffVertPair*)mso_sptCubeVert, sizeof( mso_sptCubeVert ) / sizeof( SvxMSDffVertPair ),
2164 	(sal_uInt16*)mso_sptCubeSegm, sizeof( mso_sptCubeSegm ) >> 1,
2165 	(SvxMSDffCalculationData*)mso_sptCubeCalc, sizeof( mso_sptCubeCalc ) / sizeof( SvxMSDffCalculationData ),
2166 	(sal_Int32*)mso_sptDefault5400,
2167 	(SvxMSDffTextRectangles*)mso_sptCubeTextRect, sizeof( mso_sptCubeTextRect ) / sizeof( SvxMSDffTextRectangles ),
2168 	21600, 21600,
2169 	10800, 10800,
2170 	(SvxMSDffVertPair*)mso_sptCubeGluePoints, sizeof( mso_sptCubeGluePoints ) / sizeof( SvxMSDffVertPair ),
2171 	(SvxMSDffHandle*)mso_sptCubeHandle, sizeof( mso_sptCubeHandle ) / sizeof( SvxMSDffHandle )
2172 };
2173 
2174 static const SvxMSDffVertPair mso_sptBevelVert[] =
2175 {
2176 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2177 	{ 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2178 	{ 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2179 	{ 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2180 	{ 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2181 };
2182 static const sal_uInt16 mso_sptBevelSegm[] =
2183 {
2184 	0x4000, 0x0003, 0x6001, 0x8000,
2185 	0x4000, 0x0003, 0x6001, 0x8000,
2186 	0x4000, 0x0003, 0x6001, 0x8000,
2187 	0x4000, 0x0003, 0x6001, 0x8000,
2188 	0x4000, 0x0003, 0x6001, 0x8000
2189 };
2190 static const SvxMSDffCalculationData mso_sptBevelCalc[] =
2191 {
2192 	{ 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2193 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2194 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2195 };
2196 
2197 static const SvxMSDffTextRectangles mso_sptBevelTextRect[] =
2198 {
2199 	{ { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2200 };
2201 static const SvxMSDffHandle mso_sptBevelHandle[] =
2202 {
2203 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2204 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
2205 };
2206 static const mso_CustomShape msoBevel =
2207 {
2208 	(SvxMSDffVertPair*)mso_sptBevelVert, sizeof( mso_sptBevelVert ) / sizeof( SvxMSDffVertPair ),
2209 	(sal_uInt16*)mso_sptBevelSegm, sizeof( mso_sptBevelSegm ) >> 1,
2210 	(SvxMSDffCalculationData*)mso_sptBevelCalc, sizeof( mso_sptBevelCalc ) / sizeof( SvxMSDffCalculationData ),
2211 	(sal_Int32*)mso_sptDefault2700,
2212 	(SvxMSDffTextRectangles*)mso_sptBevelTextRect, sizeof( mso_sptBevelTextRect ) / sizeof( SvxMSDffTextRectangles ),
2213 	21600, 21600,
2214 	10800, 10800,
2215 	NULL, 0,
2216 	(SvxMSDffHandle*)mso_sptBevelHandle, sizeof( mso_sptBevelHandle ) / sizeof( SvxMSDffHandle )
2217 };
2218 
2219 static const SvxMSDffVertPair mso_sptFoldedCornerVert[] =	// adjustment1 : x 10800 - 21600
2220 {
2221 	{ 0, 0 }, { 21600, 0 }, { 21600, 0 MSO_I }, { 0 MSO_I, 21600 },
2222 	{ 0, 21600 }, { 0 MSO_I, 21600 }, { 3 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I },
2223 	{ 10 MSO_I, 11 MSO_I }, { 21600, 0 MSO_I }
2224 };
2225 static const sal_uInt16 mso_sptFoldedCornerSegm[] =
2226 {
2227 	0x4000, 0x0004, 0x6001, 0x8000,
2228 	0x4000, 0x0001, 0x2001, 0x6001, 0x8000
2229 };
2230 static const SvxMSDffCalculationData mso_sptFoldedCornerCalc[] =
2231 {
2232 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2233 	{ 0x8000, { 21600, 0, 0x400 } },
2234 	{ 0x2001, { 0x0401, 8000, 10800 } },
2235 	{ 0x8000, { 21600, 0, 0x0402 } },
2236 	{ 0x2001, { 0x0401, 1, 2 } },
2237 	{ 0x2001, { 0x0401, 1, 4 } },
2238 	{ 0x2001, { 0x0401, 1, 7 } },
2239 	{ 0x2001, { 0x0401, 1, 16 } },
2240 	{ 0x6000, { 0x0403, 0x405, 0 } },
2241 	{ 0x6000, { 0x0400, 0x406, 0 } },
2242 	{ 0x8000, { 21600, 0, 0x404 } },
2243 	{ 0x6000, { 0x400, 0x407, 0 } }
2244 };
2245 static const sal_Int32 mso_sptFoldedCornerDefault[] =
2246 {
2247 	1, 18900
2248 };
2249 static const SvxMSDffTextRectangles mso_sptFoldedCornerTextRect[] =
2250 {
2251 	{ { 0, 0 }, { 21600, 11 MSO_I } }
2252 };
2253 static const SvxMSDffHandle mso_sptFoldedCornerHandle[] =
2254 {
2255 	{	MSDFF_HANDLE_FLAGS_RANGE,
2256 		0x100, 1, 10800, 10800, 10800, 21600, 0x80000000, 0x7fffffff }
2257 };
2258 static const mso_CustomShape msoFoldedCorner =
2259 {
2260 	(SvxMSDffVertPair*)mso_sptFoldedCornerVert, sizeof( mso_sptFoldedCornerVert ) / sizeof( SvxMSDffVertPair ),
2261 	(sal_uInt16*)mso_sptFoldedCornerSegm, sizeof( mso_sptFoldedCornerSegm ) >> 1,
2262 	(SvxMSDffCalculationData*)mso_sptFoldedCornerCalc, sizeof( mso_sptFoldedCornerCalc ) / sizeof( SvxMSDffCalculationData ),
2263 	(sal_Int32*)mso_sptFoldedCornerDefault,
2264 	(SvxMSDffTextRectangles*)mso_sptFoldedCornerTextRect, sizeof( mso_sptFoldedCornerTextRect ) / sizeof( SvxMSDffTextRectangles ),
2265 	21600, 21600,
2266 	0x80000000, 0x80000000,
2267 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
2268 	(SvxMSDffHandle*)mso_sptFoldedCornerHandle, sizeof( mso_sptFoldedCornerHandle ) / sizeof( SvxMSDffHandle )
2269 };
2270 
2271 static const SvxMSDffVertPair mso_sptActionButtonBlankVert[] =
2272 {
2273 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2274 	{ 0, 0 }, { 21600, 0 }, { 1 MSO_I, 0 MSO_I }, { 0 MSO_I, 0 MSO_I },
2275 	{ 21600, 0 }, { 21600, 21600 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 0 MSO_I },
2276 	{ 21600, 21600 }, { 0, 21600 },	{ 0 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2277 	{ 0, 21600 }, { 0, 0 }, { 0 MSO_I, 0 MSO_I }, { 0 MSO_I, 2 MSO_I }
2278 };
2279 static const sal_uInt16 mso_sptActionButtonBlankSegm[] =
2280 {
2281 	0x4000, 0x0003, 0x6001, 0x8000,
2282 	0x4000, 0x0003, 0x6001, 0x8000,
2283 	0x4000, 0x0003, 0x6001, 0x8000,
2284 	0x4000, 0x0003, 0x6001, 0x8000,
2285 	0x4000, 0x0003, 0x6001, 0x8000
2286 };
2287 static const SvxMSDffCalculationData mso_sptActionButtonBlankCalc[] =
2288 {
2289 	{ 0x2001, { DFF_Prop_adjustValue, 21599, 21600 } },
2290 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
2291 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
2292 };
2293 static const SvxMSDffTextRectangles mso_sptActionButtonBlankTextRect[] =
2294 {
2295 	{ { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 2 MSO_I } }
2296 };
2297 static const SvxMSDffHandle mso_sptButtonHandle[] =
2298 {
2299 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
2300 		0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
2301 };
2302 static const mso_CustomShape msoActionButtonBlank =
2303 {
2304 	(SvxMSDffVertPair*)mso_sptActionButtonBlankVert, sizeof( mso_sptActionButtonBlankVert ) / sizeof( SvxMSDffVertPair ),
2305 	(sal_uInt16*)mso_sptActionButtonBlankSegm, sizeof( mso_sptActionButtonBlankSegm ) >> 1,
2306 	(SvxMSDffCalculationData*)mso_sptActionButtonBlankCalc, sizeof( mso_sptActionButtonBlankCalc ) / sizeof( SvxMSDffCalculationData ),
2307 	(sal_Int32*)mso_sptDefault1400,
2308 	(SvxMSDffTextRectangles*)mso_sptActionButtonBlankTextRect, sizeof( mso_sptActionButtonBlankTextRect ) / sizeof( SvxMSDffTextRectangles ),
2309 	21600, 21600,
2310 	10800, 10800,
2311 	NULL, 0,
2312 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2313 };
2314 
2315 static const SvxMSDffTextRectangles mso_sptActionButtonTextRect[] =
2316 {
2317 	{ { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
2318 };
2319 static const SvxMSDffVertPair mso_sptActionButtonHomeVert[] =
2320 {
2321 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2322 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2323 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2324 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2325 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2326 
2327 	{ 7 MSO_I, 0xa MSO_I }, { 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },
2328 	{ 0x12 MSO_I, 0x14 MSO_I }, { 0x16 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2329 	{ 0x1c MSO_I, 0x1a MSO_I },	{ 0x1c MSO_I, 8 MSO_I }, { 0x1e MSO_I, 8 MSO_I },
2330 
2331 	{ 0xc MSO_I, 0xe MSO_I }, { 0xc MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I },{ 0x12 MSO_I, 0x14 MSO_I },
2332 
2333 	{ 0x20 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x24 MSO_I }, { 0x22 MSO_I, 0x1a MSO_I }, { 0x18 MSO_I, 0x1a MSO_I },
2334 	{ 0x18 MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x20 MSO_I, 0x1a MSO_I }
2335 
2336 };
2337 static const sal_uInt16 mso_sptActionButtonHomeSegm[] =
2338 {
2339 	0x4000, 0x0003, 0x6001, 0x8000,
2340 	0x4000, 0x0003, 0x6001, 0x8000,
2341 	0x4000, 0x0003, 0x6001, 0x8000,
2342 	0x4000, 0x0003, 0x6001, 0x8000,
2343 	0x4000, 0x0003, 0x6001, 0x8000,
2344 	0x4000, 0x000a, 0x6001, 0x8000,
2345 	0x4000, 0x0003, 0x6001, 0x8000,
2346 	0x4000, 0x0007, 0x6001, 0x8000
2347 };
2348 static const SvxMSDffCalculationData mso_sptActionButtonHomeCalc[] =	// adj value 0 - 5400
2349 {
2350 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2351 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2352 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2353 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2354 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2355 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2356 	{ 0x2001, { 0x0405, 1, 10800 } },							// scaling	 6
2357 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2358 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2359 
2360 	{ 0x4001, { -8000, 0x0406, 1 } },	// 9
2361 	{ 0x6000, { 0x0409, 0x0408, 0 } },	// a
2362 	{ 0x4001, { 2960, 0x0406, 1 } },	// b
2363 	{ 0x6000, { 0x040b, 0x0407, 0 } },	// c
2364 	{ 0x4001, { -5000, 0x0406, 1 } },	// d
2365 	{ 0x6000, { 0x040d, 0x0408, 0 } },	// e
2366 	{ 0x4001, { -7000, 0x0406, 1 } },	// f
2367 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2368 	{ 0x4001, { 5000, 0x0406, 1 } },	// 11
2369 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2370 	{ 0x4001, { -2960, 0x0406, 1 } },	// 13
2371 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2372 	{ 0x4001, { 8000, 0x0406, 1 } },	// 15
2373 	{ 0x6000, { 0x0415,0x0407, 0 } },	// 16
2374 	{ 0x4001, { 6100, 0x0406, 1 } },	// 17
2375 	{ 0x6000, { 0x0417,0x0407, 0 } },	// 18
2376 	{ 0x4001, { 8260, 0x0406, 1 } },	// 19
2377 	{ 0x6000, { 0x0419, 0x0408, 0 } },	// 1a
2378 	{ 0x4001, { -6100, 0x0406, 1 } },	// 1b
2379 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
2380 	{ 0x4001, { -8000, 0x0406, 1 } },	// 1d
2381 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2382 	{ 0x4001, { -1060, 0x0406, 1 } },	// 1f
2383 	{ 0x6000, { 0x041f, 0x0407, 0 } },	// 20
2384 	{ 0x4001, { 1060, 0x0406, 1 } },	// 21
2385 	{ 0x6000, { 0x0421, 0x0407, 0 } },	// 22
2386 	{ 0x4001, { 4020, 0x0406, 1 } },	// 23
2387 	{ 0x6000, { 0x0423, 0x0408, 0 } }	// 24
2388 
2389 };
2390 static const mso_CustomShape msoActionButtonHome =
2391 {
2392 	(SvxMSDffVertPair*)mso_sptActionButtonHomeVert, sizeof( mso_sptActionButtonHomeVert ) / sizeof( SvxMSDffVertPair ),
2393 	(sal_uInt16*)mso_sptActionButtonHomeSegm, sizeof( mso_sptActionButtonHomeSegm ) >> 1,
2394 	(SvxMSDffCalculationData*)mso_sptActionButtonHomeCalc, sizeof( mso_sptActionButtonHomeCalc ) / sizeof( SvxMSDffCalculationData ),
2395 	(sal_Int32*)mso_sptDefault1400,
2396 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2397 	21600, 21600,
2398 	10800, 10800,
2399 	NULL, 0,
2400 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2401 };
2402 
2403 static const SvxMSDffVertPair mso_sptActionButtonHelpVert[] =
2404 {
2405 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2406 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2407 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2408 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2409 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I,4 MSO_I },
2410 	{ 7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x3e MSO_I }, { 7 MSO_I, 0xc MSO_I },
2411 	{ 0x12 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x16 MSO_I },								// pp
2412 	{ 0x12 MSO_I, 0x18 MSO_I },	{ 0x1a MSO_I, 8 MSO_I }, { 0x1c MSO_I, 8 MSO_I },		// ccp
2413 	{ 0x1e MSO_I, 8 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x20 MSO_I, 0x24 MSO_I },	// ccp
2414 	{ 0x20 MSO_I, 0x26 MSO_I }, { 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },	// ccp
2415 	{ 0x2c MSO_I, 0x2a MSO_I }, { 0x2e MSO_I, 0x26 MSO_I }, { 0x2e MSO_I, 0x24 MSO_I },	// ccp
2416 	{ 0x30 MSO_I, 0x24 MSO_I }, { 0x30 MSO_I, 0x32 MSO_I }, { 0x34 MSO_I, 0x36 MSO_I },	// ccp
2417 	{ 7 MSO_I, 0x36 MSO_I },															// p
2418 	{ 0x12 MSO_I, 0x36 MSO_I }, { 0x1c MSO_I, 0x32 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },	// ccp
2419 	{ 0x1c MSO_I, 0x38 MSO_I }, { 0x3a MSO_I, 0x3c MSO_I }, { 0x12 MSO_I, 0x3c MSO_I },	// ccp
2420 	{ 7 MSO_I, 0x3c MSO_I }, { 0x34 MSO_I, 8 MSO_I }, { 0x34 MSO_I, 0x16 MSO_I },		// ccp
2421 	{ 0x34 MSO_I, 0x14 MSO_I }
2422 };
2423 static const sal_uInt16 mso_sptActionButtonHelpSegm[] =
2424 {
2425 	0x4000, 0x0003, 0x6001, 0x8000,
2426 	0x4000, 0x0003, 0x6001, 0x8000,
2427 	0x4000, 0x0003, 0x6001, 0x8000,
2428 	0x4000, 0x0003, 0x6001, 0x8000,
2429 	0x4000, 0x0003, 0x6001, 0x8000,
2430 	0x4000, 0xa704, 0x6000, 0x8000,
2431 	0x4000, 0x0001, 0x2004, 0x0001, 0x2004, 0x0001, 0x6001, 0x8000
2432 };
2433 static const SvxMSDffCalculationData mso_sptActionButtonHelpCalc[] =	// adj value 0 - 5400
2434 {
2435 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2436 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2437 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2438 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2439 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2440 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2441 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2442 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2443 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2444 
2445 	{ 0x4001, { -1690, 0x0406, 1 } },	// 9
2446 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2447 	{ 0x4001, { 4600, 0x0406, 1 } },	// b
2448 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2449 	{ 0x4001, { 1690, 0x0406, 1 } },	// d
2450 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2451 	{ 0x4001, { 7980, 0x0406, 1 } },	// f
2452 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2453 	{ 0x4001, { 1270, 0x0406, 1 } },	// 11
2454 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2455 	{ 0x4001, { 4000, 0x0406, 1 } },	// 13
2456 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2457 	{ 0x4001, { 1750, 0x0406, 1 } },	// 15
2458 	{ 0x6000, { 0x0415, 0x0408, 0 } },	// 16
2459 	{ 0x4001, { 800, 0x0406, 1 } },		// 17
2460 	{ 0x6000, { 0x0417, 0x0408, 0 } },	// 18
2461 	{ 0x4001, { 1650, 0x0406, 1 } },	// 19
2462 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2463 	{ 0x4001, { 2340, 0x0406, 1 } },	// 1b
2464 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
2465 	{ 0x4001, { 3640, 0x0406, 1 } },	// 1d
2466 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2467 	{ 0x4001, { 4670, 0x0406, 1 } },	// 1f
2468 	{ 0x6000, { 0x041f, 0x0407, 0 } },	// 20
2469 	{ 0x4001, { -1570, 0x0406, 1 } },	// 21
2470 	{ 0x6000, { 0x0421, 0x0408, 0 } },	// 22
2471 	{ 0x4001, { -3390, 0x0406, 1 } },	// 23
2472 	{ 0x6000, { 0x0423, 0x0408, 0 } },	// 24
2473 	{ 0x4001, { -6050, 0x0406, 1 } },	// 25
2474 	{ 0x6000, { 0x0425, 0x0408, 0 } },	// 26
2475 	{ 0x4001, { 2540, 0x0406, 1 } },	// 27
2476 	{ 0x6000, { 0x0427, 0x0407, 0 } },	// 28
2477 	{ 0x4001, { -8050, 0x0406, 1 } },	// 29
2478 	{ 0x6000, { 0x0429, 0x0408, 0 } },	// 2a
2479 	{ 0x4001, { -2540, 0x0406, 1 } },	// 2b
2480 	{ 0x6000, { 0x042b, 0x0407, 0 } },	// 2c
2481 	{ 0x4001, { -4460, 0x0406, 1 } },	// 2d
2482 	{ 0x6000, { 0x042d, 0x0407, 0 } },	// 2e
2483 	{ 0x4001, { -2330, 0x0406, 1 } },	// 2f
2484 	{ 0x6000, { 0x042f, 0x0407, 0 } },	// 30
2485 	{ 0x4001, { -4700, 0x0406, 1 } },	// 31
2486 	{ 0x6000, { 0x0431, 0x0408, 0 } },	// 32
2487 	{ 0x4001, { -1270, 0x0406, 1 } },	// 33
2488 	{ 0x6000, { 0x0433, 0x0407, 0 } },	// 34
2489 	{ 0x4001, { -5720, 0x0406, 1 } },	// 35
2490 	{ 0x6000, { 0x0435, 0x0408, 0 } },	// 36
2491 	{ 0x4001, { -2540, 0x0406, 1 } },	// 37
2492 	{ 0x6000, { 0x0437, 0x0408, 0 } },	// 38
2493 	{ 0x4001, { 1800, 0x0406, 1 } },	// 39
2494 	{ 0x6000, { 0x0439, 0x0407, 0 } },	// 3a
2495 	{ 0x4001, { -1700, 0x0406, 1 } },	// 3b
2496 	{ 0x6000, { 0x043b, 0x0408, 0 } },	// 3c
2497 	{ 0x4001, { 6290, 0x0406, 1 } },	// 3d
2498 	{ 0x6000, { 0x043d, 0x0408, 0 } }	// 3e
2499 };
2500 static const mso_CustomShape msoActionButtonHelp =
2501 {
2502 	(SvxMSDffVertPair*)mso_sptActionButtonHelpVert, sizeof( mso_sptActionButtonHelpVert ) / sizeof( SvxMSDffVertPair ),
2503 	(sal_uInt16*)mso_sptActionButtonHelpSegm, sizeof( mso_sptActionButtonHelpSegm ) >> 1,
2504 	(SvxMSDffCalculationData*)mso_sptActionButtonHelpCalc, sizeof( mso_sptActionButtonHelpCalc ) / sizeof( SvxMSDffCalculationData ),
2505 	(sal_Int32*)mso_sptDefault1400,
2506 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2507 	21600, 21600,
2508 	10800, 10800,
2509 	NULL, 0,
2510 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2511 };
2512 
2513 static const SvxMSDffVertPair mso_sptActionButtonInformationVert[] =
2514 {
2515 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2516 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2517 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2518 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2519 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2520 	{ 0x7 MSO_I, 0xc MSO_I }, { 0xa MSO_I, 0x8 MSO_I }, { 0x7 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0x7 MSO_I, 0xc MSO_I },
2521 	{ 0x7 MSO_I, 0x14 MSO_I }, { 0x12 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x2a MSO_I }, { 0x7 MSO_I, 0x14 MSO_I },
2522 	{ 0x1a MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x1c MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0x20 MSO_I },
2523 	{ 0x22 MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x24 MSO_I }, { 0x1a MSO_I, 0x20 MSO_I }, { 0x26 MSO_I, 0x20 MSO_I },
2524 	{ 0x26 MSO_I, 0x28 MSO_I }, { 0x1a MSO_I, 0x28 MSO_I }
2525 };
2526 static const sal_uInt16 mso_sptActionButtonInformationSegm[] =
2527 {
2528 	0x4000, 0x0003, 0x6001, 0x8000,
2529 	0x4000, 0x0003, 0x6001, 0x8000,
2530 	0x4000, 0x0003, 0x6001, 0x8000,
2531 	0x4000, 0x0003, 0x6001, 0x8000,
2532 	0x4000, 0x0003, 0x6001, 0x8000,
2533 	0x4000, 0xa704, 0x6000, 0x8000,
2534 	0x4000, 0xa704, 0x6000, 0x8000,
2535 	0x4000, 0x0009, 0x6001, 0x8000
2536 };
2537 static const SvxMSDffCalculationData mso_sptActionButtonInformationCalc[] =	// adj value 0 - 5400
2538 {
2539 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2540 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2541 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2542 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2543 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2544 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2545 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2546 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2547 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2548 
2549 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2550 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2551 	{ 0x4001, { -8050, 0x0406, 1 } },	// b
2552 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2553 	{ 0x4001, { 8050, 0x0406, 1 } },	// d
2554 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2555 	{ 0x4001, { 8050, 0x0406, 1 } },	// f
2556 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2557 
2558 	{ 0x4001, { -2060, 0x0406, 1 } },	// 11
2559 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2560 	{ 0x4001, { -7620, 0x0406, 1 } },	// 13
2561 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2562 	{ 0x4001, { 2060, 0x0406, 1 } },	// 15
2563 	{ 0x6000, { 0x0415, 0x0407, 0 } },	// 16
2564 	{ 0x4001, { -3500, 0x0406, 1 } },	// 17
2565 	{ 0x6000, { 0x0417, 0x0408, 0 } },	// 18
2566 
2567 	{ 0x4001, { -2960, 0x0406, 1 } },	// 19
2568 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2569 	{ 0x4001, { -2960, 0x0406, 1 } },	// 1b
2570 	{ 0x6000, { 0x041b, 0x0408, 0 } },	// 1c
2571 	{ 0x4001, { 1480, 0x0406, 1 } },	// 1d
2572 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2573 	{ 0x4001, { 5080, 0x0406, 1 } },	// 1f
2574 	{ 0x6000, { 0x041f, 0x0408, 0 } },	// 20
2575 	{ 0x4001, { 2960, 0x0406, 1 } },	// 21
2576 	{ 0x6000, { 0x0421, 0x0407, 0 } },	// 22
2577 	{ 0x4001, { 6140, 0x0406, 1 } },	// 23
2578 	{ 0x6000, { 0x0423, 0x0408, 0 } },	// 24
2579 	{ 0x4001, { -1480, 0x0406, 1 } },	// 25
2580 	{ 0x6000, { 0x0425, 0x0407, 0 } },	// 26
2581 	{ 0x4001, { -1920, 0x0406, 1 } },	// 27
2582 	{ 0x6000, { 0x0427, 0x0408, 0 } },	// 28
2583 
2584 	{ 0x4001, { -5560, 0x0406, 1 } },	// 29
2585 	{ 0x6000, { 0x0429, 0x0408, 0 } },	// 2a
2586 
2587 };
2588 static const mso_CustomShape msoActionButtonInformation =
2589 {
2590 	(SvxMSDffVertPair*)mso_sptActionButtonInformationVert, sizeof( mso_sptActionButtonInformationVert ) / sizeof( SvxMSDffVertPair ),
2591 	(sal_uInt16*)mso_sptActionButtonInformationSegm, sizeof( mso_sptActionButtonInformationSegm ) >> 1,
2592 	(SvxMSDffCalculationData*)mso_sptActionButtonInformationCalc, sizeof( mso_sptActionButtonInformationCalc ) / sizeof( SvxMSDffCalculationData ),
2593 	(sal_Int32*)mso_sptDefault1400,
2594 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2595 	21600, 21600,
2596 	10800, 10800,
2597 	NULL, 0,
2598 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2599 };
2600 
2601 static const SvxMSDffVertPair mso_sptActionButtonBackPreviousVert[] =
2602 {
2603 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2604 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2605 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2606 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I,4 MSO_I },
2607 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2608 
2609 	{ 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }
2610 };
2611 static const sal_uInt16 mso_sptActionButtonForwardBackSegm[] =
2612 {
2613 	0x4000, 0x0003, 0x6001, 0x8000,
2614 	0x4000, 0x0003, 0x6001, 0x8000,
2615 	0x4000, 0x0003, 0x6001, 0x8000,
2616 	0x4000, 0x0003, 0x6001, 0x8000,
2617 	0x4000, 0x0003, 0x6001, 0x8000,
2618 	0x4000, 0x0002, 0x6001, 0x8000
2619 };
2620 static const SvxMSDffCalculationData mso_sptActionButtonForwardBackCalc[] =	// adj value 0 - 5400
2621 {
2622 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2623 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2624 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2625 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2626 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2627 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2628 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2629 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2630 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2631 
2632 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2633 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2634 	{ 0x4001, { -8050, 0x0406, 1 } },	// b
2635 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2636 	{ 0x4001, { 8050, 0x0406, 1 } },	// d
2637 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2638 	{ 0x4001, { 8050, 0x0406, 1 } },	// f
2639 	{ 0x6000, { 0x040f, 0x0408, 0 } }	// 10
2640 };
2641 static const mso_CustomShape msoActionButtonBackPrevious =
2642 {
2643 	(SvxMSDffVertPair*)mso_sptActionButtonBackPreviousVert, sizeof( mso_sptActionButtonBackPreviousVert ) / sizeof( SvxMSDffVertPair ),
2644 	(sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2645 	(SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2646 	(sal_Int32*)mso_sptDefault1400,
2647 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2648 	21600, 21600,
2649 	10800, 10800,
2650 	NULL, 0,
2651 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2652 };
2653 
2654 static const SvxMSDffVertPair mso_sptActionButtonForwardNextVert[] =
2655 {
2656 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2657 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2658 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2659 	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2660 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2661 
2662 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 8 MSO_I }, { 0xa MSO_I, 0x10 MSO_I }
2663 };
2664 static const mso_CustomShape msoActionButtonForwardNext =
2665 {
2666 	(SvxMSDffVertPair*)mso_sptActionButtonForwardNextVert, sizeof( mso_sptActionButtonForwardNextVert ) / sizeof( SvxMSDffVertPair ),
2667 	(sal_uInt16*)mso_sptActionButtonForwardBackSegm, sizeof( mso_sptActionButtonForwardBackSegm ) >> 1,
2668 	(SvxMSDffCalculationData*)mso_sptActionButtonForwardBackCalc, sizeof( mso_sptActionButtonForwardBackCalc ) / sizeof( SvxMSDffCalculationData ),
2669 	(sal_Int32*)mso_sptDefault1400,
2670 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2671 	21600, 21600,
2672 	10800, 10800,
2673 	NULL, 0,
2674 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2675 };
2676 
2677 static const SvxMSDffVertPair mso_sptActionButtonBeginningVert[] =
2678 {
2679 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2680 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2681 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2682 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2683 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2684 
2685 	{ 0xa MSO_I, 8 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2686 	{ 0x14 MSO_I, 0xc MSO_I }, { 0x14 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }
2687 };
2688 static const sal_uInt16 mso_sptActionButtonBeginningEndSegm[] =
2689 {
2690 	0x4000, 0x0003, 0x6001, 0x8000,
2691 	0x4000, 0x0003, 0x6001, 0x8000,
2692 	0x4000, 0x0003, 0x6001, 0x8000,
2693 	0x4000, 0x0003, 0x6001, 0x8000,
2694 	0x4000, 0x0003, 0x6001, 0x8000,
2695 
2696 	0x4000, 0x0002, 0x6001, 0x8000,
2697 	0x4000, 0x0003, 0x6001, 0x8000
2698 };
2699 static const SvxMSDffCalculationData mso_sptActionButtonBeginningEndCalc[] =	// adj value 0 - 5400
2700 {
2701 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2702 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2703 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2704 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2705 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2706 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2707 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2708 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2709 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2710 
2711 	{ 0x4001, { -4020, 0x0406, 1 } },	// 9
2712 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2713 	{ 0x4001, { -8050, 0x0406, 1 } },	// b
2714 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2715 	{ 0x4001, { 8050, 0x0406, 1 } },	// d
2716 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2717 	{ 0x4001, { 8050, 0x0406, 1 } },	// f
2718 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2719 
2720 	{ 0x4001, { -8050, 0x0406, 1 } },	// 11
2721 	{ 0x6000, { 0x0411, 0x0407, 0 } },	// 12
2722 	{ 0x4001, { -6140, 0x0406, 1 } },	// 13
2723 	{ 0x6000, { 0x0413, 0x0407, 0 } },	// 14
2724 
2725 
2726 	{ 0x4001, { 4020, 0x0406, 1 } },	// 15
2727 	{ 0x6000, { 0x0415, 0x0407, 0 } },	// 16
2728 	{ 0x4001, { 6140, 0x0406, 1 } },	// 17
2729 	{ 0x6000, { 0x0417, 0x0407, 0 } }	// 18
2730 };
2731 static const mso_CustomShape msoActionButtonBeginning =
2732 {
2733 	(SvxMSDffVertPair*)mso_sptActionButtonBeginningVert, sizeof( mso_sptActionButtonBeginningVert ) / sizeof( SvxMSDffVertPair ),
2734 	(sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2735 	(SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2736 	(sal_Int32*)mso_sptDefault1400,
2737 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2738 	21600, 21600,
2739 	10800, 10800,
2740 	NULL, 0,
2741 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2742 };
2743 
2744 static const SvxMSDffVertPair mso_sptActionButtonEndVert[] =
2745 {
2746 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2747 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2748 	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2749 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2750 	{ 0, 21600 }, { 0, 0 },	{ 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2751 
2752 	{ 0x16 MSO_I, 8 MSO_I }, { 0x12 MSO_I, 0x10 MSO_I }, { 0x12 MSO_I, 0xc MSO_I },
2753 
2754 	{ 0x18 MSO_I, 0xc MSO_I }, { 0x18 MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0x10 MSO_I }, { 0xe MSO_I, 0xc MSO_I }
2755 };
2756 static const mso_CustomShape msoActionButtonEnd =
2757 {
2758 	(SvxMSDffVertPair*)mso_sptActionButtonEndVert, sizeof( mso_sptActionButtonEndVert ) / sizeof( SvxMSDffVertPair ),
2759 	(sal_uInt16*)mso_sptActionButtonBeginningEndSegm, sizeof( mso_sptActionButtonBeginningEndSegm ) >> 1,
2760 	(SvxMSDffCalculationData*)mso_sptActionButtonBeginningEndCalc, sizeof( mso_sptActionButtonBeginningEndCalc ) / sizeof( SvxMSDffCalculationData ),
2761 	(sal_Int32*)mso_sptDefault1400,
2762 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2763 	21600, 21600,
2764 	10800, 10800,
2765 	NULL, 0,
2766 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2767 };
2768 
2769 static const SvxMSDffVertPair mso_sptActionButtonReturnVert[] =
2770 {
2771 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2772 	{ 0, 0 }, { 21600, 0 },	{ 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2773 	{ 21600, 0 }, { 21600,	21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2774 	{ 21600, 21600 }, { 0, 21600 },	{ 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2775 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2776 
2777 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I },	{ 0xe MSO_I, 0x10 MSO_I },							// ppp
2778 	{ 0xe MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 0x16 MSO_I },						// ccp
2779 	{ 7 MSO_I, 0x16 MSO_I },																				// p
2780 	{ 0x1a MSO_I, 0x16 MSO_I }, { 0x1c MSO_I, 0x12 MSO_I }, { 0x1c MSO_I, 0x10 MSO_I },						// ccp
2781 	{ 0x1c MSO_I, 0xc MSO_I }, { 7 MSO_I, 0xc MSO_I }, { 0x1e MSO_I, 0x20 MSO_I }, { 0x22 MSO_I, 0xc MSO_I },// pppp
2782 	{ 0x24 MSO_I, 0xc MSO_I }, { 0x24 MSO_I, 0x10 MSO_I },													// pp
2783 	{ 0x24 MSO_I, 0x26 MSO_I },	{ 0x28 MSO_I, 0x2a MSO_I }, { 7 MSO_I, 0x2a MSO_I },						// ccp
2784 	{ 0x18 MSO_I, 0x2a MSO_I },																				// p
2785 	{ 0x2c MSO_I, 0x2a MSO_I }, { 0xa MSO_I, 0x26 MSO_I }, { 0xa MSO_I,	0x10 MSO_I }						// ccp
2786 };
2787 static const sal_uInt16 mso_sptActionButtonReturnSegm[] =
2788 {
2789 	0x4000, 0x0003, 0x6001, 0x8000,
2790 	0x4000, 0x0003, 0x6001, 0x8000,
2791 	0x4000, 0x0003, 0x6001, 0x8000,
2792 	0x4000, 0x0003, 0x6001, 0x8000,
2793 	0x4000, 0x0003, 0x6001, 0x8000,
2794 	0x4000, 0x0002, 0x2001, 0x0001, 0x2001, 0x0006,0x2001, 0x0001, 0x2001, 0x6001, 0x8000
2795 };
2796 static const SvxMSDffCalculationData mso_sptActionButtonReturnCalc[] =	// adj value 0 - 5400
2797 {
2798 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2799 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2800 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2801 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2802 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2803 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2804 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2805 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2806 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2807 
2808 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2809 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2810 	{ 0x4001, { -3800, 0x0406, 1 } },	// b
2811 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2812 	{ 0x4001, { -4020, 0x0406, 1 } },	// d
2813 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2814 	{ 0x4001, { 2330, 0x0406, 1 } },	// f
2815 	{ 0x6000, { 0x040f, 0x0408, 0 } },	// 10
2816 	{ 0x4001, { 3390, 0x0406, 1 } },	// 11
2817 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
2818 	{ 0x4001, { -3100, 0x0406, 1 } },	// 13
2819 	{ 0x6000, { 0x0413, 0x0407, 0 } },	// 14
2820 	{ 0x4001, { 4230, 0x0406, 1 } },	// 15
2821 	{ 0x6000, { 0x0415, 0x0408, 0 } },	// 16
2822 	{ 0x4001, { -1910, 0x0406, 1 } },	// 17
2823 	{ 0x6000, { 0x0417, 0x0407, 0 } },	// 18
2824 	{ 0x4001, { 1190, 0x0406, 1 } },	// 19
2825 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2826 	{ 0x4001, { 2110, 0x0406, 1 } },	// 1b
2827 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
2828 	{ 0x4001, { 4030, 0x0406, 1 } },	// 1d
2829 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
2830 	{ 0x4001, { -7830, 0x0406, 1 } },	// 1f
2831 	{ 0x6000, { 0x041f, 0x0408, 0 } },	// 20
2832 	{ 0x4001, { 8250, 0x0406, 1 } },	// 21
2833 	{ 0x6000, { 0x0421, 0x0407, 0 } },	// 22
2834 	{ 0x4001, { 6140, 0x0406, 1 } },	// 23
2835 	{ 0x6000, { 0x0423, 0x0407, 0 } },	// 24
2836 	{ 0x4001, { 5510, 0x0406, 1 } },	// 25
2837 	{ 0x6000, { 0x0425, 0x0408, 0 } },	// 26
2838 	{ 0x4001, { 3180, 0x0406, 1 } },	// 27
2839 	{ 0x6000, { 0x0427, 0x0407, 0 } },	// 28
2840 	{ 0x4001, { 8450, 0x0406, 1 } },	// 29
2841 	{ 0x6000, { 0x0429, 0x0408, 0 } },	// 2a
2842 	{ 0x4001, { -5090, 0x0406, 1 } },	// 2b
2843 	{ 0x6000, { 0x042b, 0x0407, 0 } }	// 2c
2844 };
2845 static const mso_CustomShape msoActionButtonReturn =
2846 {
2847 	(SvxMSDffVertPair*)mso_sptActionButtonReturnVert, sizeof( mso_sptActionButtonReturnVert ) / sizeof( SvxMSDffVertPair ),
2848 	(sal_uInt16*)mso_sptActionButtonReturnSegm, sizeof( mso_sptActionButtonReturnSegm ) >> 1,
2849 	(SvxMSDffCalculationData*)mso_sptActionButtonReturnCalc, sizeof( mso_sptActionButtonReturnCalc ) / sizeof( SvxMSDffCalculationData ),
2850 	(sal_Int32*)mso_sptDefault1400,
2851 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2852 	21600, 21600,
2853 	10800, 10800,
2854 	NULL, 0,
2855 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2856 };
2857 
2858 static const SvxMSDffVertPair mso_sptActionButtonDocumentVert[] =
2859 {
2860 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2861 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2862 	{ 21600, 0 }, { 21600, 21600 }, { 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2863 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2864 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2865 
2866 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2867 	{ 0xa MSO_I, 0x14 MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0xe MSO_I, 0x12 MSO_I }
2868 };
2869 static const sal_uInt16 mso_sptActionButtonDocumentSegm[] =
2870 {
2871 	0x4000, 0x0003, 0x6001, 0x8000,
2872 	0x4000, 0x0003, 0x6001, 0x8000,
2873 	0x4000, 0x0003, 0x6001, 0x8000,
2874 	0x4000, 0x0003, 0x6001, 0x8000,
2875 	0x4000, 0x0003, 0x6001, 0x8000,
2876 
2877 	0x4000, 0x0004, 0x6001, 0x8000,
2878 	0x4000, 0x0002, 0x6001, 0x8000
2879 };
2880 static const SvxMSDffCalculationData mso_sptActionButtonDocumentCalc[] =	// adj value 0 - 5400
2881 {
2882 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2883 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2884 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2885 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2886 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2887 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2888 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2889 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2890 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2891 
2892 	{ 0x4001, { -6350, 0x0406, 1 } },	// 9
2893 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2894 	{ 0x4001, { -7830, 0x0406, 1 } },	// b
2895 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2896 	{ 0x4001, { 1690, 0x0406, 1 } },	// d
2897 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2898 	{ 0x4001, { 6350, 0x0406, 1 } },	// f
2899 	{ 0x6000, { 0x040f, 0x0407, 0 } },	// 10
2900 	{ 0x4001, { -3810, 0x0406, 1 } },	// 11
2901 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
2902 	{ 0x4001, { 7830, 0x0406, 1 } },	// 13
2903     { 0x6000, { 0x0413, 0x0408, 0 } }	// 14
2904 };
2905 static const mso_CustomShape msoActionButtonDocument =
2906 {
2907 	(SvxMSDffVertPair*)mso_sptActionButtonDocumentVert, sizeof( mso_sptActionButtonDocumentVert ) / sizeof( SvxMSDffVertPair ),
2908 	(sal_uInt16*)mso_sptActionButtonDocumentSegm, sizeof( mso_sptActionButtonDocumentSegm ) >> 1,
2909 	(SvxMSDffCalculationData*)mso_sptActionButtonDocumentCalc, sizeof( mso_sptActionButtonDocumentCalc ) / sizeof( SvxMSDffCalculationData ),
2910 	(sal_Int32*)mso_sptDefault1400,
2911 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2912 	21600, 21600,
2913 	10800, 10800,
2914 	NULL, 0,
2915 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2916 };
2917 
2918 static const SvxMSDffVertPair mso_sptActionButtonSoundVert[] =
2919 {
2920 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2921 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2922 	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2923 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
2924 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
2925 
2926 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x10 MSO_I, 0x14 MSO_I },
2927 	{ 0xe MSO_I, 0x16 MSO_I }, { 0xa MSO_I, 0x16 MSO_I }, { 0x18 MSO_I, 8 MSO_I }, { 0x1a MSO_I, 8 MSO_I },
2928 
2929 	{ 0x18 MSO_I, 0xc MSO_I }, { 0x1a MSO_I, 0x1c MSO_I },
2930 
2931 	{ 0x18 MSO_I, 0x16 MSO_I }, { 0x1a MSO_I, 0x1e MSO_I }
2932 };
2933 static const sal_uInt16 mso_sptActionButtonSoundSegm[] =
2934 {
2935 	0x4000, 0x0003, 0x6001, 0x8000,
2936 	0x4000, 0x0003, 0x6001, 0x8000,
2937 	0x4000, 0x0003, 0x6001, 0x8000,
2938 	0x4000, 0x0003, 0x6001, 0x8000,
2939 	0x4000, 0x0003, 0x6001, 0x8000,
2940 
2941 	0x4000, 0x0005, 0x6001, 0x8000,
2942 	0x4000, 0x0001, 0x8000,
2943 	0x4000, 0x0001, 0x8000,
2944 	0x4000, 0x0001, 0x8000
2945 };
2946 static const SvxMSDffCalculationData mso_sptActionButtonSoundCalc[] =	// adj value 0 - 5400
2947 {
2948 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
2949 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
2950 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
2951 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
2952 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
2953 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
2954 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
2955 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
2956 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
2957 
2958 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
2959 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
2960 	{ 0x4001, { -2750, 0x0406, 1 } },	// b
2961 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
2962 	{ 0x4001, { -2960, 0x0406, 1 } },	// d
2963 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
2964 	{ 0x4001, { 2120, 0x0406, 1 } },	// f
2965 	{ 0x6000, { 0x040f, 0x0407, 0 } },	// 10
2966 	{ 0x4001, { -8050, 0x0406, 1 } },	// 11
2967 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
2968 	{ 0x4001, { 8050, 0x0406, 1 } },	// 13
2969 	{ 0x6000, { 0x0413, 0x0408, 0 } },	// 14
2970 	{ 0x4001, { 2750, 0x0406, 1 } },	// 15
2971 	{ 0x6000, { 0x0415, 0x0408, 0 } },	// 16
2972 	{ 0x4001, { 4020, 0x0406, 1 } },	// 17
2973 	{ 0x6000, { 0x0417, 0x0407, 0 } },	// 18
2974 	{ 0x4001, { 8050, 0x0406, 1 } },	// 19
2975 	{ 0x6000, { 0x0419, 0x0407, 0 } },	// 1a
2976 	{ 0x4001, { -5930, 0x0406, 1 } },	// 1b
2977 	{ 0x6000, { 0x041b, 0x0408, 0 } },	// 1c
2978 	{ 0x4001, { 5930, 0x0406, 1 } },	// 1d
2979 	{ 0x6000, { 0x041d, 0x0408, 0 } }	// 1e
2980 };
2981 static const mso_CustomShape msoActionButtonSound =
2982 {
2983 	(SvxMSDffVertPair*)mso_sptActionButtonSoundVert, sizeof( mso_sptActionButtonSoundVert ) / sizeof( SvxMSDffVertPair ),
2984 	(sal_uInt16*)mso_sptActionButtonSoundSegm, sizeof( mso_sptActionButtonSoundSegm ) >> 1,
2985 	(SvxMSDffCalculationData*)mso_sptActionButtonSoundCalc, sizeof( mso_sptActionButtonSoundCalc ) / sizeof( SvxMSDffCalculationData ),
2986 	(sal_Int32*)mso_sptDefault1400,
2987 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
2988 	21600, 21600,
2989 	10800, 10800,
2990 	NULL, 0,
2991 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
2992 };
2993 
2994 static const SvxMSDffVertPair mso_sptActionButtonMovieVert[] =
2995 {
2996 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
2997 	{ 0, 0 }, { 21600, 0 }, { 3 MSO_I, 2 MSO_I }, { 1 MSO_I, 2 MSO_I },
2998 	{ 21600, 0 }, { 21600, 21600 },	{ 3 MSO_I, 4 MSO_I }, { 3 MSO_I, 2 MSO_I },
2999 	{ 21600, 21600 }, { 0, 21600 }, { 1 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
3000 	{ 0, 21600 }, { 0, 0 }, { 1 MSO_I, 2 MSO_I }, { 1 MSO_I, 4 MSO_I },
3001 
3002 	{ 0xa MSO_I, 0xc MSO_I }, { 0xe MSO_I, 0xc MSO_I }, { 0x10 MSO_I, 0x12 MSO_I }, { 0x14 MSO_I, 0x12 MSO_I },
3003 	{ 0x16 MSO_I, 0x18 MSO_I }, { 0x16 MSO_I, 0x1a MSO_I }, { 0x1c MSO_I, 0x1a MSO_I }, { 0x1e MSO_I, 0x18 MSO_I },
3004 	{ 0x20 MSO_I, 0x18 MSO_I }, { 0x20 MSO_I, 0x22 MSO_I }, { 0x1e MSO_I, 0x22 MSO_I }, { 0x1c MSO_I, 0x24 MSO_I },
3005 	{ 0x16 MSO_I, 0x24 MSO_I }, { 0x16 MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x26 MSO_I }, { 0x2a MSO_I, 0x28 MSO_I },
3006 	{ 0x10 MSO_I, 0x28 MSO_I },	{ 0xe MSO_I, 0x2c MSO_I }, { 0xa MSO_I, 0x2c MSO_I }
3007 };
3008 static const sal_uInt16 mso_sptActionButtonMovieSegm[] =
3009 {
3010 	0x4000, 0x0003, 0x6001, 0x8000,
3011 	0x4000, 0x0003, 0x6001, 0x8000,
3012 	0x4000, 0x0003, 0x6001, 0x8000,
3013 	0x4000, 0x0003, 0x6001, 0x8000,
3014 	0x4000, 0x0003, 0x6001, 0x8000,
3015 	0x4000, 0x0012, 0x6001, 0x8000
3016 };
3017 static const SvxMSDffCalculationData mso_sptActionButtonMovieCalc[] =	// adj value 0 - 5400
3018 {
3019 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3020 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3021 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3022 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3023 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3024 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },
3025 	{ 0x2001, { 0x0405, 1, 10800 } },			// scaling	 6
3026 	{ 0x2001, { DFF_Prop_geoRight, 1, 2 } },	// lr center 7
3027 	{ 0x2001, { DFF_Prop_geoBottom, 1, 2 } },	// ul center 8
3028 
3029 	{ 0x4001, { -8050, 0x0406, 1 } },	// 9
3030 	{ 0x6000, { 0x0409, 0x0407, 0 } },	// a
3031 	{ 0x4001, { -4020, 0x0406, 1 } },	// b
3032 	{ 0x6000, { 0x040b, 0x0408, 0 } },	// c
3033 	{ 0x4001, { -7000, 0x0406, 1 } },	// d
3034 	{ 0x6000, { 0x040d, 0x0407, 0 } },	// e
3035 	{ 0x4001, { -6560, 0x0406, 1 } },	// f
3036 	{ 0x6000, { 0x040f, 0x0407, 0 } },	// 10
3037 	{ 0x4001, { -3600, 0x0406, 1 } },	// 11
3038 	{ 0x6000, { 0x0411, 0x0408, 0 } },	// 12
3039 	{ 0x4001, { 4020, 0x0406, 1 } },	// 13
3040 	{ 0x6000, { 0x0413, 0x0407, 0 } },	// 14
3041 	{ 0x4001, { 4660, 0x0406, 1 } },	// 15
3042 	{ 0x6000, { 0x0415, 0x0407, 0 } },	// 16
3043 	{ 0x4001, { -2960, 0x0406, 1 } },	// 17
3044 	{ 0x6000, { 0x0417, 0x0408, 0 } },	// 18
3045 	{ 0x4001, { -2330, 0x0406, 1 } },	// 19
3046 	{ 0x6000, { 0x0419, 0x0408, 0 } },	// 1a
3047 	{ 0x4001, { 6780, 0x0406, 1 } },	// 1b
3048 	{ 0x6000, { 0x041b, 0x0407, 0 } },	// 1c
3049 	{ 0x4001, { 7200, 0x0406, 1 } },	// 1d
3050 	{ 0x6000, { 0x041d, 0x0407, 0 } },	// 1e
3051 	{ 0x4001, { 8050, 0x0406, 1 } },	// 1f
3052 	{ 0x6000, { 0x041f, 0x0407, 0 } },	// 20
3053 	{ 0x4001, { 2960, 0x0406, 1 } },	// 21
3054 	{ 0x6000, { 0x0421, 0x0408, 0 } },	// 22
3055 	{ 0x4001, { 2330, 0x0406, 1 } },	// 23
3056 	{ 0x6000, { 0x0423, 0x0408, 0 } },	// 24
3057 	{ 0x4001, { 3800, 0x0406, 1 } },	// 25
3058 	{ 0x6000, { 0x0425, 0x0408, 0 } },	// 26
3059 	{ 0x4001, { -1060, 0x0406, 1 } },	// 27
3060 	{ 0x6000, { 0x0427, 0x0408, 0 } },	// 28
3061 	{ 0x4001, { -6350, 0x0406, 1 } },	// 29
3062 	{ 0x6000, { 0x0429, 0x0407, 0 } },	// 2a
3063 	{ 0x4001, { -640, 0x0406, 1 } },	// 2b
3064 	{ 0x6000, { 0x042b, 0x0408, 0 } }	// 2c
3065 };
3066 static const mso_CustomShape msoActionButtonMovie =
3067 {
3068 	(SvxMSDffVertPair*)mso_sptActionButtonMovieVert, sizeof( mso_sptActionButtonMovieVert ) / sizeof( SvxMSDffVertPair ),
3069 	(sal_uInt16*)mso_sptActionButtonMovieSegm, sizeof( mso_sptActionButtonMovieSegm ) >> 1,
3070 	(SvxMSDffCalculationData*)mso_sptActionButtonMovieCalc, sizeof( mso_sptActionButtonMovieCalc ) / sizeof( SvxMSDffCalculationData ),
3071 	(sal_Int32*)mso_sptDefault1400,
3072 	(SvxMSDffTextRectangles*)mso_sptActionButtonTextRect, sizeof( mso_sptActionButtonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3073 	21600, 21600,
3074 	10800, 10800,
3075 	NULL, 0,
3076 	(SvxMSDffHandle*)mso_sptButtonHandle, sizeof( mso_sptButtonHandle ) / sizeof( SvxMSDffHandle )
3077 };
3078 
3079 static const SvxMSDffVertPair mso_sptSmileyFaceVert[] =	// adj value 15510 - 17520
3080 {
3081 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3082 	{ 7305,	7515 }, { 1165, 1165 }, { 0, 360 },
3083 	{ 14295, 7515 }, { 1165, 1165 }, { 0, 360 },
3084 	{ 4870, 1 MSO_I }, { 8680, 2 MSO_I }, { 12920, 2 MSO_I }, { 16730, 1 MSO_I }
3085 };
3086 static const sal_uInt16 mso_sptSmileyFaceSegm[] =
3087 {
3088 	0xa203, 0x6000, 0x8000,
3089 	0xa203, 0x6000, 0x8000,
3090 	0xa203, 0x6000, 0x8000,
3091 	0x4000, 0x2001, 0xaa00, 0x8000
3092 };
3093 static const SvxMSDffCalculationData mso_sptSmileyFaceCalc[] =
3094 {
3095 	{ 0x2000, { DFF_Prop_adjustValue, 0, 15510 } },
3096 	{ 0x8000, { 17520, 0, 0x400 } },
3097 	{ 0x4000, { 15510, 0x400, 0 } }
3098 };
3099 
3100 static const SvxMSDffTextRectangles mso_sptSmileyFaceTextRect[] =
3101 {
3102 	{ { 0, 1 MSO_I }, { 4 MSO_I, 21600 } }
3103 };
3104 static const sal_Int32 mso_sptSmileyFaceDefault[] =
3105 {
3106 	1, 17520
3107 };
3108 static const SvxMSDffHandle mso_sptSmileyHandle[] =
3109 {
3110 	{	MSDFF_HANDLE_FLAGS_RANGE,
3111 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 15510, 17520 }
3112 };
3113 static const mso_CustomShape msoSmileyFace =
3114 {
3115 	(SvxMSDffVertPair*)mso_sptSmileyFaceVert, sizeof( mso_sptSmileyFaceVert ) / sizeof( SvxMSDffVertPair ),
3116 	(sal_uInt16*)mso_sptSmileyFaceSegm, sizeof( mso_sptSmileyFaceSegm ) >> 1,
3117 	(SvxMSDffCalculationData*)mso_sptSmileyFaceCalc, sizeof( mso_sptSmileyFaceCalc ) / sizeof( SvxMSDffCalculationData ),
3118 	(sal_Int32*)mso_sptSmileyFaceDefault,
3119 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3120 	21600, 21600,
3121 	0x80000000, 0x80000000,
3122 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3123 	(SvxMSDffHandle*)mso_sptSmileyHandle, sizeof( mso_sptSmileyHandle ) / sizeof( SvxMSDffHandle )		// handles
3124 };
3125 
3126 static const SvxMSDffVertPair mso_sptDonutVert[] =	// adj value 0 - 10800
3127 {
3128 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
3129 	{ 10800, 10800 }, { 1 MSO_I, 1 MSO_I }, { 0, 360 }
3130 };
3131 static const sal_uInt16 mso_sptDonutSegm[] =
3132 {
3133 	0xa203, 0x6000, 0xa203, 0x8000
3134 };
3135 static const SvxMSDffCalculationData mso_sptDonutCalc[] =
3136 {
3137 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3138 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3139 };
3140 static const SvxMSDffHandle mso_sptDonutHandle[] =
3141 {
3142 	{	MSDFF_HANDLE_FLAGS_RANGE,
3143 		0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3144 };
3145 static const mso_CustomShape msoDonut =
3146 {
3147 	(SvxMSDffVertPair*)mso_sptDonutVert, sizeof( mso_sptDonutVert ) / sizeof( SvxMSDffVertPair ),
3148 	(sal_uInt16*)mso_sptDonutSegm, sizeof( mso_sptDonutSegm ) >> 1,
3149 	(SvxMSDffCalculationData*)mso_sptDonutCalc, sizeof( mso_sptDonutCalc ) / sizeof( SvxMSDffCalculationData ),
3150 	(sal_Int32*)mso_sptDefault5400,
3151 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3152 	21600, 21600,
3153 	0x80000000, 0x80000000,
3154 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3155 	(SvxMSDffHandle*)mso_sptDonutHandle, sizeof( mso_sptDonutHandle ) / sizeof( SvxMSDffHandle )		// handles
3156 };
3157 
3158 static const SvxMSDffVertPair mso_sptNoSmokingVert[] =	// adj value 0 - 7200
3159 {
3160 	{ 10800, 10800 },  { 10800,	10800 }, { 0, 360 },
3161 	{ 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3162 	{ 9 MSO_I, 0xa MSO_I }, { 0xb MSO_I, 0xc MSO_I }, { 0 MSO_I, 0 MSO_I }, { 1 MSO_I, 1 MSO_I },
3163 	{ 0xd MSO_I, 0xe MSO_I }, { 0xf MSO_I, 0x10 MSO_I }
3164 };
3165 static const sal_uInt16 mso_sptNoSmokingSegm[] =
3166 {
3167 	0xa203, 0x6000, 0xa404, 0x6000, 0xa404, 0x6000, 0x8000
3168 };
3169 static const SvxMSDffCalculationData mso_sptNoSmokingCalc[] =
3170 {
3171 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },			// 0
3172 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },		// 1
3173 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },		// 2
3174 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },			// 3
3175 	{ 0xa080, { 0x403, 0, 0x402 } },					// 4
3176 	{ 0x8000, { 10800, 0, 0x403 } },					// 5 x1
3177 	{ 0x4000, { 10800, 0x403, 0 } },					// 6 x2
3178 	{ 0x8000, { 10800, 0, 0x404 } },					// 7 y1
3179 	{ 0x4000, { 10800, 0x404, 0 } },					// 8 y2
3180 	{ 0x6081, { 0x405, 0x407, 45 } },					// 9
3181 	{ 0x6082, { 0x405, 0x407, 45 } },					// a
3182 	{ 0x6081, { 0x405, 0x408, 45 } },					// b
3183 	{ 0x6082, { 0x405, 0x408, 45 } },					// c
3184 	{ 0x6081, { 0x406, 0x408, 45 } },					// d
3185 	{ 0x6082, { 0x406, 0x408, 45 } },					// e
3186 	{ 0x6081, { 0x406, 0x407, 45 } },					// f
3187 	{ 0x6082, { 0x406, 0x407, 45 } }					// 10
3188 };
3189 static const SvxMSDffHandle mso_sptNoSmokingHandle[] =
3190 {
3191 	{	MSDFF_HANDLE_FLAGS_RANGE,
3192 		0x100, 10800, 10800, 10800, 0, 7200, 0x80000000, 0x7fffffff }
3193 };
3194 static const mso_CustomShape msoNoSmoking =
3195 {
3196 	(SvxMSDffVertPair*)mso_sptNoSmokingVert, sizeof( mso_sptNoSmokingVert ) / sizeof( SvxMSDffVertPair ),
3197 	(sal_uInt16*)mso_sptNoSmokingSegm, sizeof( mso_sptNoSmokingSegm ) >> 1,
3198 	(SvxMSDffCalculationData*)mso_sptNoSmokingCalc, sizeof( mso_sptNoSmokingCalc ) / sizeof( SvxMSDffCalculationData ),
3199 	(sal_Int32*)mso_sptDefault2700,
3200 	(SvxMSDffTextRectangles*)mso_sptEllipseTextRect, sizeof( mso_sptEllipseTextRect ) / sizeof( SvxMSDffTextRectangles ),
3201 	21600, 21600,
3202 	0x80000000, 0x80000000,
3203 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
3204 	(SvxMSDffHandle*)mso_sptNoSmokingHandle, sizeof( mso_sptNoSmokingHandle ) / sizeof( SvxMSDffHandle )		// handles
3205 };
3206 
3207 static const SvxMSDffVertPair mso_sptBlockArcVert[] =	// adj value 0 (degrees)
3208 {														// adj value 1:	0 -> 10800;
3209 	{ 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I },
3210 	{ 5 MSO_I, 5 MSO_I }, { 6 MSO_I, 6 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
3211 };
3212 static const sal_uInt16 mso_sptBlockArcSegm[] =
3213 {
3214 	0xA404, 0xa504, 0x6001, 0x8000
3215 };
3216 static const sal_Int32 mso_sptBlockArcDefault[] =
3217 {
3218 	2, 180, 5400
3219 };
3220 static const SvxMSDffCalculationData mso_sptBlockArcCalc[] =
3221 {
3222 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
3223 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
3224 	{ 0x2000, { 0x400, 10800, 0 } },
3225 	{ 0x2000, { 0x401, 10800, 0 } },
3226 	{ 0x8000, { 21600, 0, 0x402 } },
3227 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
3228 	{ 0x4000, { 10800, DFF_Prop_adjust2Value, 0 } },
3229 	{ 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },
3230 	{ 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } }
3231 };
3232 static const SvxMSDffHandle mso_sptBlockArcHandle[] =
3233 {
3234 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
3235 		0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3236 };
3237 static const mso_CustomShape msoBlockArc =
3238 {
3239 	(SvxMSDffVertPair*)mso_sptBlockArcVert, sizeof( mso_sptBlockArcVert ) / sizeof( SvxMSDffVertPair ),
3240 	(sal_uInt16*)mso_sptBlockArcSegm, sizeof( mso_sptBlockArcSegm ) >> 1,
3241 	(SvxMSDffCalculationData*)mso_sptBlockArcCalc, sizeof( mso_sptBlockArcCalc ) / sizeof( SvxMSDffCalculationData ),
3242 	(sal_Int32*)mso_sptBlockArcDefault,
3243 	NULL, 0,
3244 	21600, 21600,
3245 	0x80000000, 0x80000000,
3246 	NULL, 0,
3247 	(SvxMSDffHandle*)mso_sptBlockArcHandle, sizeof( mso_sptBlockArcHandle ) / sizeof( SvxMSDffHandle )		// handles
3248 };
3249 
3250 // aware : control points are always part of the bounding box
3251 static const SvxMSDffVertPair mso_sptHeartVert[] =
3252 {
3253 	{ 10800, 21599 }, { 321, 6886 }, { 70, 6036 },		// ppp
3254 	{ -9, 5766 }, { -1,	5474 }, { 2, 5192 },			// ccp
3255 	{ 6, 4918 }, { 43, 4641 }, { 101, 4370 },			// ccp
3256 	{ 159, 4103 }, { 245, 3837 }, { 353, 3582 },		// ccp
3257 	{ 460, 3326 }, { 591, 3077 }, { 741, 2839 },		// ccp
3258 	{ 892, 2598 }, { 1066, 2369 }, { 1253, 2155 },		// ccp
3259 	{ 1443,	1938 }, { 1651,	1732 }, { 1874,	1543 },		// ccp
3260 	{ 2097,	1351 }, { 2337, 1174 }, { 2587, 1014 },		// ccp
3261 	{ 2839,	854 }, { 3106, 708 }, { 3380, 584 },		// ccp
3262 	{ 3656,	459 }, { 3945, 350 }, { 4237, 264 },		// ccp
3263 	{ 4533,	176 }, { 4838, 108 }, { 5144, 66 },			// ccp
3264 	{ 5454,	22 }, { 5771, 1 }, { 6086, 3 },				// ccp
3265 	{ 6407,	7 }, { 6731, 35 }, { 7048, 89 },			// ccp
3266 	{ 7374,	144 }, { 7700, 226 }, { 8015, 335 },		// ccp
3267 	{ 8344,	447 }, { 8667, 590 }, { 8972, 756 },		// ccp
3268 	{ 9297,	932 }, { 9613, 1135 }, { 9907, 1363 },		// ccp
3269 	{ 10224, 1609 }, { 10504, 1900 }, { 10802, 2169 },	// ccp
3270 	{ 11697, 1363 },									// p
3271 	{ 11971, 1116 }, { 12304, 934 }, { 12630, 756 },	// ccp
3272 	{ 12935, 590 }, { 13528, 450 }, { 13589, 335 },		// ccp
3273 	{ 13901, 226 }, { 14227, 144 }, { 14556, 89 },		// ccp
3274 	{ 14872, 35 }, { 15195, 7 }, { 15517, 3 },			// ccp
3275 	{ 15830, 0 }, { 16147, 22 }, { 16458, 66 },			// ccp
3276 	{ 16764, 109 }, { 17068, 177 }, { 17365, 264 },		// ccp
3277 	{ 17658, 349 }, { 17946, 458 }, { 18222, 584 },		// ccp
3278 	{ 18496, 708 }, { 18762, 854 }, { 19015, 1014 },	// ccp
3279 	{ 19264, 1172 }, { 19504, 1349 }, { 19730, 1543 },	// ccp
3280 	{ 19950, 1731 }, { 20158, 1937 }, { 20350, 2155 },	// ccp
3281 	{ 20536, 2369 }, { 20710, 2598 }, { 20861, 2839 },	// ccp
3282 	{ 21010, 3074 }, { 21143, 3323 }, { 21251, 3582 },	// ccp
3283 	{ 21357, 3835 }, { 21443, 4099 }, { 21502, 4370 },	// ccp
3284 	{ 21561, 4639 }, { 21595, 4916 }, { 21600, 5192 },	// ccp
3285 	{ 21606, 5474 }, { 21584, 5760 }, { 21532, 6036 },	// ccp
3286 	{ 21478, 6326 }, { 21366, 6603 }, { 21282, 6887 },	// ccp
3287 	{ 10802, 21602 }									// p
3288 };
3289 static const sal_uInt16 mso_sptHeartSegm[] =
3290 {
3291 	0x4000, 0x0002, 0x2010, 0x0001, 0x2010, 0x0001, 0x6001, 0x8000
3292 };
3293 static const SvxMSDffTextRectangles mso_sptHeartTextRect[] =
3294 {
3295 	{ { 5080, 2540 }, { 16520, 13550 } }
3296 };
3297 static const SvxMSDffVertPair mso_sptHeartGluePoints[] =
3298 {
3299 	{ 10800, 2180 }, { 3090, 10800 }, { 10800, 21600 }, { 18490, 10800 }
3300 };
3301 static const mso_CustomShape msoHeart =
3302 {
3303 	(SvxMSDffVertPair*)mso_sptHeartVert, sizeof( mso_sptHeartVert ) / sizeof( SvxMSDffVertPair ),
3304 	(sal_uInt16*)mso_sptHeartSegm, sizeof( mso_sptHeartSegm ) >> 1,
3305 	NULL, 0,
3306 	NULL,
3307 	(SvxMSDffTextRectangles*)mso_sptHeartTextRect, sizeof( mso_sptHeartTextRect ) / sizeof( SvxMSDffTextRectangles ),
3308 	21615, 21602,
3309 	0x80000000, 0x80000000,
3310 	(SvxMSDffVertPair*)mso_sptHeartGluePoints, sizeof( mso_sptHeartGluePoints ) / sizeof( SvxMSDffVertPair ),
3311 	NULL, 0		// handles
3312 };
3313 
3314 static const SvxMSDffVertPair mso_sptLightningBoldVert[] =
3315 {
3316 	{ 8458,	0 }, { 0, 3923 }, { 7564, 8416 }, { 4993, 9720 },
3317 	{ 12197, 13904 }, { 9987, 14934 }, { 21600, 21600 }, { 14768, 12911 },
3318 	{ 16558, 12016 }, { 11030, 6840 }, { 12831, 6120 }, { 8458, 0 }
3319 };
3320 static const SvxMSDffTextRectangles mso_sptLightningBoldTextRect[] =
3321 {
3322 	{ { 8680, 7410 }, { 13970, 14190 } }
3323 };
3324 static const SvxMSDffVertPair mso_sptLightningBoldGluePoints[] =
3325 {
3326 	{ 8458, 0 }, { 0, 3923 }, { 4993, 9720 }, { 9987, 14934 }, { 21600, 21600 },
3327 	{ 16558, 12016 }, { 12831, 6120 }
3328 };
3329 static const mso_CustomShape msoLightningBold =
3330 {
3331 	(SvxMSDffVertPair*)mso_sptLightningBoldVert, sizeof( mso_sptLightningBoldVert ) / sizeof( SvxMSDffVertPair ),
3332 	NULL, 0,
3333 	NULL, 0,
3334 	NULL,
3335 	(SvxMSDffTextRectangles*)mso_sptLightningBoldTextRect, sizeof( mso_sptLightningBoldTextRect ) / sizeof( SvxMSDffTextRectangles ),
3336 	21600, 21600,
3337 	0x80000000, 0x80000000,
3338 	(SvxMSDffVertPair*)mso_sptLightningBoldGluePoints, sizeof( mso_sptLightningBoldGluePoints ) / sizeof( SvxMSDffVertPair ),
3339 	NULL, 0		// handles
3340 };
3341 
3342 static const SvxMSDffVertPair mso_sptSunVert[] =	// adj value 2700 -> 10125
3343 {
3344 	{ 0, 10800 },				{ 4 MSO_I, 8 MSO_I },		{ 4 MSO_I, 9 MSO_I },
3345 	{ 0x0a MSO_I, 0x0b MSO_I },	{ 0x0c MSO_I, 0x0d MSO_I }, { 0x0e MSO_I, 0x0f MSO_I },
3346 	{ 0x10 MSO_I, 0x11 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0x14 MSO_I, 0x15 MSO_I },
3347 	{ 0x16 MSO_I, 0x17 MSO_I }, { 0x18 MSO_I, 0x19 MSO_I }, { 0x1a MSO_I, 0x1b MSO_I },
3348 	{ 0x1c MSO_I, 0x1d MSO_I }, { 0x1e MSO_I, 0x1f MSO_I }, { 0x20 MSO_I, 0x21 MSO_I },
3349 	{ 0x22 MSO_I, 0x23 MSO_I }, { 0x24 MSO_I, 0x25 MSO_I }, { 0x26 MSO_I, 0x27 MSO_I },
3350 	{ 0x28 MSO_I, 0x29 MSO_I }, { 0x2a MSO_I, 0x2b MSO_I }, { 0x2c MSO_I, 0x2d MSO_I },
3351 	{ 0x2e MSO_I, 0x2f MSO_I }, { 0x30 MSO_I, 0x31 MSO_I }, { 0x32 MSO_I, 0x33 MSO_I },
3352 	{ 10800, 10800 }, { 0x36 MSO_I, 0x36 MSO_I },	{ 0, 360 }
3353 };
3354 static const sal_uInt16 mso_sptSunSegm[] =
3355 {
3356 	0x4000, 0x0002, 0x6001, 0x8000,
3357 	0x4000, 0x0002, 0x6001, 0x8000,
3358 	0x4000, 0x0002, 0x6001, 0x8000,
3359 	0x4000, 0x0002, 0x6001, 0x8000,
3360 	0x4000, 0x0002, 0x6001, 0x8000,
3361 	0x4000, 0x0002, 0x6001, 0x8000,
3362 	0x4000, 0x0002, 0x6001, 0x8000,
3363 	0x4000, 0x0002, 0x6001, 0x8000,
3364 	0xa203, 0x6000, 0x8000
3365 };
3366 static const SvxMSDffCalculationData mso_sptSunCalc[] =
3367 {
3368 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3369 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3370 	{ 0x2000, { DFF_Prop_adjustValue, 0, 2700 } },
3371 	{ 0x2001, { 0x402, 5080, 7425 } },
3372 	{ 0x2000, { 0x403, 2540, 0 } },
3373 	{ 0x8000, { 10125, 0, DFF_Prop_adjustValue } },
3374 	{ 0x2001, { 0x405, 2120, 7425 } },
3375 	{ 0x2000, { 0x406, 210, 0 } },
3376 	{ 0x4000, { 10800, 0x407, 0 } },	// y1 (0x8)
3377 	{ 0x8000, { 10800, 0, 0x407 } },	// y2 (0x9)
3378 	{ 0x0081, { 0, 10800, 45 } },		// 0xa
3379 	{ 0x0082, { 0, 10800, 45 } },		// 0xb
3380 	{ 0x6081, { 0x404, 0x408, 45 } },	// 0xc
3381 	{ 0x6082, { 0x404, 0x408, 45 } },	// 0xd
3382 	{ 0x6081, { 0x404, 0x409, 45 } },	// 0xe
3383 	{ 0x6082, { 0x404, 0x409, 45 } },	// 0xf
3384 	{ 0x0081, { 0, 10800, 90 } },		// 0x10
3385 	{ 0x0082, { 0, 10800, 90 } },		// 0x11
3386 	{ 0x6081, { 0x404, 0x408, 90 } },	// 0x12
3387 	{ 0x6082, { 0x404, 0x408, 90 } },	// 0x13
3388 	{ 0x6081, { 0x404, 0x409, 90 } },	// 0x14
3389 	{ 0x6082, { 0x404, 0x409, 90 } },	// 0x15
3390 	{ 0x0081, { 0, 10800, 135 } },		// 0x16
3391 	{ 0x0082, { 0, 10800, 135 } },		// 0x17
3392 	{ 0x6081, { 0x404, 0x408, 135 } },	// 0x18
3393 	{ 0x6082, { 0x404, 0x408, 135 } },	// 0x19
3394 	{ 0x6081, { 0x404, 0x409, 135 } },	// 0x1a
3395 	{ 0x6082, { 0x404, 0x409, 135 } },	// 0x1b
3396 	{ 0x0081, { 0, 10800, 180 } },		// 0x1c
3397 	{ 0x0082, { 0, 10800, 180 } },		// 0x1d
3398 	{ 0x6081, { 0x404, 0x408, 180 } },	// 0x1e
3399 	{ 0x6082, { 0x404, 0x408, 180 } },	// 0x1f
3400 	{ 0x6081, { 0x404, 0x409, 180 } },	// 0x20
3401 	{ 0x6082, { 0x404, 0x409, 180 } },	// 0x21
3402 	{ 0x0081, { 0, 10800, 225 } },		// 0x22
3403 	{ 0x0082, { 0, 10800, 225 } },		// 0x23
3404 	{ 0x6081, { 0x404, 0x408, 225 } },	// 0x24
3405 	{ 0x6082, { 0x404, 0x408, 225 } },	// 0x25
3406 	{ 0x6081, { 0x404, 0x409, 225 } },	// 0x26
3407 	{ 0x6082, { 0x404, 0x409, 225 } },	// 0x27
3408 	{ 0x0081, { 0, 10800, 270 } },		// 0x28
3409 	{ 0x0082, { 0, 10800, 270 } },		// 0x29
3410 	{ 0x6081, { 0x404, 0x408, 270 } },	// 0x2a
3411 	{ 0x6082, { 0x404, 0x408, 270 } },	// 0x2b
3412 	{ 0x6081, { 0x404, 0x409, 270 } },	// 0x2c
3413 	{ 0x6082, { 0x404, 0x409, 270 } },	// 0x2d
3414 	{ 0x0081, { 0, 10800, 315 } },		// 0x2e
3415 	{ 0x0082, { 0, 10800, 315 } },		// 0x2f
3416 	{ 0x6081, { 0x404, 0x408, 315 } },	// 0x30
3417 	{ 0x6082, { 0x404, 0x408, 315 } },	// 0x31
3418 	{ 0x6081, { 0x404, 0x409, 315 } },	// 0x32
3419 	{ 0x6082, { 0x404, 0x409, 315 } },	// 0x33
3420 	{ 0x2081, { DFF_Prop_adjustValue, 10800, 45 } },	// 0x34	( textbox )
3421 	{ 0x2081, { DFF_Prop_adjustValue, 10800, 225 } },	// 0x35
3422 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } }
3423 };
3424 static const SvxMSDffTextRectangles mso_sptSunTextRect[] =
3425 {
3426 	{ { 0x34 MSO_I, 0x34 MSO_I }, { 0x35 MSO_I, 0x35 MSO_I } }
3427 };
3428 static const SvxMSDffHandle mso_sptSunHandle[] =
3429 {
3430 	{	MSDFF_HANDLE_FLAGS_RANGE,
3431 		0x100, 10800, 10800, 10800, 2700, 10125, 0x80000000, 0x7fffffff }
3432 };
3433 static const mso_CustomShape msoSun =
3434 {
3435 	(SvxMSDffVertPair*)mso_sptSunVert, sizeof( mso_sptSunVert ) / sizeof( SvxMSDffVertPair ),
3436 	(sal_uInt16*)mso_sptSunSegm, sizeof( mso_sptSunSegm ) >> 1,
3437 	(SvxMSDffCalculationData*)mso_sptSunCalc, sizeof( mso_sptSunCalc ) / sizeof( SvxMSDffCalculationData ),
3438 	(sal_Int32*)mso_sptDefault5400,
3439 	(SvxMSDffTextRectangles*)mso_sptSunTextRect, sizeof( mso_sptSunTextRect ) / sizeof( SvxMSDffTextRectangles ),
3440 	21600, 21600,
3441 	0x80000000, 0x80000000,
3442 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3443 	(SvxMSDffHandle*)mso_sptSunHandle, sizeof( mso_sptSunHandle ) / sizeof( SvxMSDffHandle )		// handles
3444 };
3445 
3446 static const SvxMSDffVertPair mso_sptMoonVert[] =	// adj value 0 -> 18900
3447 {
3448 	{ 21600, 0 },
3449 	{ 3 MSO_I, 4 MSO_I },	{ 0 MSO_I, 5080 },		{ 0 MSO_I, 10800 },	// ccp
3450 	{ 0 MSO_I, 16520 },		{ 3 MSO_I, 5 MSO_I },	{ 21600, 21600 },	// ccp
3451 	{ 9740, 21600 },		{ 0, 16730 },			{ 0, 10800 },		// ccp
3452 	{ 0, 4870 },			{ 9740, 0 },			{ 21600, 0	}		// ccp
3453 };
3454 static const sal_uInt16 mso_sptMoonSegm[] =
3455 {
3456 	0x4000, 0x2004, 0x6000, 0x8000
3457 };
3458 static const SvxMSDffCalculationData mso_sptMoonCalc[] =
3459 {
3460 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3461 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3462 	{ 0x2001, { 0x401, 1, 2 } },
3463 	{ 0x6000, { 0x402, DFF_Prop_adjustValue, 0 } },
3464 	{ 0x2001, { DFF_Prop_adjustValue, 1794, 10000 } },
3465 	{ 0x8000, { 21600, 0, 0x0404 } },
3466 	{ 0x2001, { DFF_Prop_adjustValue, 400, 18900 } },
3467 	{ 0x8081, { 0, 10800, 0x406 } },
3468 	{ 0x8082, { 0, 10800, 0x406 } },
3469 	{ 0x6000, { 0x407, 0x407, 0 } },
3470 	{ 0x8000, { 21600, 0, 0x408 } }
3471 };
3472 static const SvxMSDffTextRectangles mso_sptMoonTextRect[] =
3473 {
3474 	{ { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 0xa MSO_I } }
3475 };
3476 static const SvxMSDffVertPair mso_sptMoonGluePoints[] =
3477 {
3478 	{ 21600, 0 }, { 0, 10800 }, { 21600, 21600 }, { 0 MSO_I, 10800 }
3479 };
3480 static const SvxMSDffHandle mso_sptMoonHandle[] =
3481 {
3482 	{	MSDFF_HANDLE_FLAGS_RANGE,
3483 		0x100, 10800, 10800, 10800, 0, 18900, 0x80000000, 0x7fffffff }
3484 };
3485 static const mso_CustomShape msoMoon =
3486 {
3487 	(SvxMSDffVertPair*)mso_sptMoonVert, sizeof( mso_sptMoonVert ) / sizeof( SvxMSDffVertPair ),
3488 	(sal_uInt16*)mso_sptMoonSegm, sizeof( mso_sptMoonSegm ) >> 1,
3489 	(SvxMSDffCalculationData*)mso_sptMoonCalc, sizeof( mso_sptMoonCalc ) / sizeof( SvxMSDffCalculationData ),
3490 	(sal_Int32*)mso_sptDefault10800,
3491 	(SvxMSDffTextRectangles*)mso_sptMoonTextRect, sizeof( mso_sptMoonTextRect ) / sizeof( SvxMSDffTextRectangles ),
3492 	21600, 21600,
3493 	0x80000000, 0x80000000,
3494 	(SvxMSDffVertPair*)mso_sptMoonGluePoints, sizeof( mso_sptMoonGluePoints ) / sizeof( SvxMSDffVertPair ),
3495 	(SvxMSDffHandle*)mso_sptMoonHandle, sizeof( mso_sptMoonHandle ) / sizeof( SvxMSDffHandle )		// handles
3496 };
3497 
3498 static const SvxMSDffVertPair mso_sptBracketPairVert[] =	// adj value 0 -> 10800
3499 {
3500 	{ 0 MSO_I, 0 },		{ 0, 1 MSO_I },		// left top alignment
3501 	{ 0, 2 MSO_I },		{ 0 MSO_I, 21600 },	// left  bottom "
3502 	{ 3 MSO_I, 21600 },	{ 21600, 2 MSO_I },	// right bottom	"
3503 	{ 21600, 1 MSO_I },	{ 3 MSO_I, 0 }		// right top	"
3504 };
3505 static const sal_uInt16 mso_sptBracketPairSegm[] =
3506 {
3507 	0x4000, 0xa701, 0x0001, 0xa801, 0x8000,
3508 	0x4000, 0xa701, 0x0001, 0xa801, 0x8000
3509 };
3510 static const SvxMSDffCalculationData mso_sptBracketPairCalc[] =
3511 {
3512 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3513 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3514 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3515 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3516 	{ 0x2082, { DFF_Prop_adjustValue, 0, 45 } },
3517 	{ 0x2000, { 0x404, 0, 10800 } },
3518 	{ 0x8000, { 0, 0, DFF_Prop_adjustValue } },
3519 	{ 0xa000, { 0x406, 0, 0x405 } },
3520 	{ 0xa000, { DFF_Prop_geoLeft, 0, 0x407 } },
3521 	{ 0xa000, { DFF_Prop_geoTop, 0, 0x407 } },
3522 	{ 0x6000, { DFF_Prop_geoRight, 0x407, 0 } },
3523 	{ 0x6000, { DFF_Prop_geoBottom, 0x407, 0 } },
3524 	{ 0xa000, { DFF_Prop_geoLeft, 0, 0x405 } },
3525 	{ 0xa000, { DFF_Prop_geoTop, 0, 0x405 } },
3526 	{ 0x6000, { DFF_Prop_geoRight, 0x405, 0 } },
3527 	{ 0x6000, { DFF_Prop_geoBottom, 0x405, 0 } }
3528 };
3529 static const SvxMSDffTextRectangles mso_sptBracketPairTextRect[] =
3530 {
3531 	{ { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 0xb MSO_I } }
3532 };
3533 static const SvxMSDffHandle mso_sptBracketPairHandle[] =
3534 {
3535 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3536 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3537 };
3538 static const mso_CustomShape msoBracketPair =
3539 {
3540 	(SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3541 	(sal_uInt16*)mso_sptBracketPairSegm, sizeof( mso_sptBracketPairSegm ) >> 1,
3542 	(SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3543 	(sal_Int32*)mso_sptDefault3700,
3544 	(SvxMSDffTextRectangles*)mso_sptBracketPairTextRect, sizeof( mso_sptBracketPairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3545 	21600, 21600,
3546 	10800, 0x80000000,
3547 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3548 	(SvxMSDffHandle*)mso_sptBracketPairHandle, sizeof( mso_sptBracketPairHandle ) / sizeof( SvxMSDffHandle )		// handles
3549 };
3550 
3551 static const sal_uInt16 mso_sptPlaqueSegm[] =
3552 {
3553 	0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
3554 };
3555 static const SvxMSDffTextRectangles mso_sptPlaqueTextRect[] =
3556 {
3557 	{ { 0xc MSO_I, 0xd MSO_I }, { 0xe MSO_I, 0xf MSO_I } }
3558 };
3559 static const SvxMSDffHandle mso_sptPlaqueHandle[] =
3560 {
3561 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3562 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3563 };
3564 static const mso_CustomShape msoPlaque =
3565 {
3566 	(SvxMSDffVertPair*)mso_sptBracketPairVert, sizeof( mso_sptBracketPairVert ) / sizeof( SvxMSDffVertPair ),
3567 	(sal_uInt16*)mso_sptPlaqueSegm, sizeof( mso_sptPlaqueSegm ) >> 1,
3568 	(SvxMSDffCalculationData*)mso_sptBracketPairCalc, sizeof( mso_sptBracketPairCalc ) / sizeof( SvxMSDffCalculationData ),
3569 	(sal_Int32*)mso_sptDefault3600,
3570 	(SvxMSDffTextRectangles*)mso_sptPlaqueTextRect, sizeof( mso_sptPlaqueTextRect ) / sizeof( SvxMSDffTextRectangles ),
3571 	21600, 21600,
3572 	10800, 10800,
3573 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3574 	(SvxMSDffHandle*)mso_sptPlaqueHandle, sizeof( mso_sptPlaqueHandle ) / sizeof( SvxMSDffHandle )		// handles
3575 };
3576 
3577 static const SvxMSDffVertPair mso_sptBracePairVert[] =	// adj value 0 -> 5400
3578 {
3579 	{ 4 MSO_I, 0 },	{ 0 MSO_I, 1 MSO_I }, { 0 MSO_I, 6 MSO_I }, { 0 ,10800 },			// left bracket
3580 	{ 0 MSO_I, 7 MSO_I }, { 0 MSO_I, 2 MSO_I },	{ 4 MSO_I, 21600 },
3581 	{ 8 MSO_I, 21600 },	{ 3 MSO_I, 2 MSO_I }, { 3 MSO_I, 7 MSO_I }, { 21600, 10800 },	// right bracket
3582 	{ 3 MSO_I, 6 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 8 MSO_I, 0 }
3583 };
3584 static const sal_uInt16 mso_sptBracePairSegm[] =
3585 {
3586 	0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000,
3587 	0x4000, 0xa701, 0x0001, 0xa801, 0xa701, 0x0001, 0xa801, 0x8000
3588 };
3589 static const SvxMSDffCalculationData mso_sptBracePairCalc[] =
3590 {
3591 	{ 0x6000, { DFF_Prop_geoLeft, DFF_Prop_adjustValue, 0 } },
3592 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3593 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3594 	{ 0xa000, { DFF_Prop_geoRight, 0, DFF_Prop_adjustValue } },
3595 	{ 0x2001, { 0x400, 2, 1 } },									//  4
3596 	{ 0x2001, { DFF_Prop_adjustValue, 2, 1 } },						//  5
3597 	{ 0x8000, { 10800, 0, DFF_Prop_adjustValue } },					//  6
3598 	{ 0x8000, { 21600, 0, 0x406 } },								//  7
3599 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x405 } },					//  8
3600 	{ 0x2001, { DFF_Prop_adjustValue, 1, 3 } },						//  9
3601 	{ 0x6000, { 0x409, DFF_Prop_adjustValue, 0 } },					// xa
3602 	{ 0x6000, { DFF_Prop_geoLeft, 0x40a, 0 } },						// xb
3603 	{ 0x6000, { DFF_Prop_geoTop, 0x409, 0 } },						// xc
3604 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x40a } },					// xd
3605 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } }					// xe
3606 };
3607 static const SvxMSDffTextRectangles mso_sptBracePairTextRect[] =
3608 {
3609 	{ { 0xb MSO_I, 0xc MSO_I }, { 0xd MSO_I, 0xe MSO_I } }
3610 };
3611 static const SvxMSDffHandle mso_sptBracePairHandle[] =
3612 {
3613 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_SWITCHED,
3614 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
3615 };
3616 static const mso_CustomShape msoBracePair =
3617 {
3618 	(SvxMSDffVertPair*)mso_sptBracePairVert, sizeof( mso_sptBracePairVert ) / sizeof( SvxMSDffVertPair ),
3619 	(sal_uInt16*)mso_sptBracePairSegm, sizeof( mso_sptBracePairSegm ) >> 1,
3620 	(SvxMSDffCalculationData*)mso_sptBracePairCalc, sizeof( mso_sptBracePairCalc ) / sizeof( SvxMSDffCalculationData ),
3621 	(sal_Int32*)mso_sptDefault1800,
3622 	(SvxMSDffTextRectangles*)mso_sptBracePairTextRect, sizeof( mso_sptBracePairTextRect ) / sizeof( SvxMSDffTextRectangles ),
3623 	21600, 21600,
3624 	10800, 0x80000000,
3625 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
3626 	(SvxMSDffHandle*)mso_sptBracePairHandle, sizeof( mso_sptBracePairHandle ) / sizeof( SvxMSDffHandle )		// handles
3627 };
3628 
3629 static const SvxMSDffCalculationData mso_sptBracketCalc[] =
3630 {
3631 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3632 	{ 0x6000, { DFF_Prop_geoTop, DFF_Prop_adjustValue, 0 } },
3633 	{ 0xa000, { DFF_Prop_geoBottom, 0, DFF_Prop_adjustValue } },
3634 	{ 0x6000, { DFF_Prop_geoTop, 0x400, 0 } },
3635 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } }
3636 };
3637 static const sal_uInt16 mso_sptBracketSegm[] =
3638 {
3639 	0x4000, 0x2001, 0x0001, 0x2001, 0x8000
3640 };
3641 static const SvxMSDffVertPair mso_sptLeftBracketVert[] =	// adj value 0 -> 10800
3642 {
3643 	{ 21600, 0 }, { 10800,	0 }, { 0, 3 MSO_I }, { 0, 1 MSO_I },
3644 	{ 0, 2 MSO_I }, { 0, 4 MSO_I }, { 10800, 21600 }, { 21600, 21600 }
3645 };
3646 static const SvxMSDffTextRectangles mso_sptLeftBracketTextRect[] =
3647 {
3648 	{ { 6350, 3 MSO_I }, { 21600, 4 MSO_I } }
3649 };
3650 static const SvxMSDffVertPair mso_sptLeftBracketGluePoints[] =
3651 {
3652 	{ 21600, 0 }, { 0, 10800 }, { 21600, 21600 }
3653 };
3654 static const SvxMSDffHandle mso_sptLeftBracketHandle[] =
3655 {
3656 	{	MSDFF_HANDLE_FLAGS_RANGE,
3657 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3658 };
3659 static const mso_CustomShape msoLeftBracket =
3660 {
3661 	(SvxMSDffVertPair*)mso_sptLeftBracketVert, sizeof( mso_sptLeftBracketVert ) / sizeof( SvxMSDffVertPair ),
3662 	(sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3663 	(SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3664 	(sal_Int32*)mso_sptDefault1800,
3665 	(SvxMSDffTextRectangles*)mso_sptLeftBracketTextRect, sizeof( mso_sptLeftBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3666 	21600, 21600,
3667 	0x80000000, 0x80000000,
3668 	(SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3669 	(SvxMSDffHandle*)mso_sptLeftBracketHandle, sizeof( mso_sptLeftBracketHandle ) / sizeof( SvxMSDffHandle )		// handles
3670 };
3671 static const SvxMSDffVertPair mso_sptRightBracketVert[] =	// adj value 0 -> 10800
3672 {
3673 	{ 0, 0 }, { 10800, 0 }, { 21600, 3 MSO_I }, { 21600, 1 MSO_I },
3674 	{ 21600, 2 MSO_I }, { 21600, 4 MSO_I }, { 10800, 21600 }, { 0, 21600 }
3675 };
3676 static const SvxMSDffTextRectangles mso_sptRightBracketTextRect[] =
3677 {
3678 	{ { 0, 3 MSO_I }, { 15150, 4 MSO_I } }
3679 };
3680 static const SvxMSDffVertPair mso_sptRightBracketGluePoints[] =
3681 {
3682 	{ 0, 0 }, { 0, 21600 }, { 21600, 10800 }
3683 };
3684 static const SvxMSDffHandle mso_sptRightBracketHandle[] =
3685 {
3686 	{	MSDFF_HANDLE_FLAGS_RANGE,
3687 		1, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
3688 };
3689 static const mso_CustomShape msoRightBracket =
3690 {
3691 	(SvxMSDffVertPair*)mso_sptRightBracketVert, sizeof( mso_sptRightBracketVert ) / sizeof( SvxMSDffVertPair ),
3692 	(sal_uInt16*)mso_sptBracketSegm, sizeof( mso_sptBracketSegm ) >> 1,
3693 	(SvxMSDffCalculationData*)mso_sptBracketCalc, sizeof( mso_sptBracketCalc ) / sizeof( SvxMSDffCalculationData ),
3694 	(sal_Int32*)mso_sptDefault1800,
3695 	(SvxMSDffTextRectangles*)mso_sptRightBracketTextRect, sizeof( mso_sptRightBracketTextRect ) / sizeof( SvxMSDffTextRectangles ),
3696 	21600, 21600,
3697 	0x80000000, 0x80000000,
3698 	(SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3699 	(SvxMSDffHandle*)mso_sptRightBracketHandle, sizeof( mso_sptRightBracketHandle ) / sizeof( SvxMSDffHandle )		// handles
3700 };
3701 
3702 static const SvxMSDffCalculationData mso_sptBraceCalc[] =
3703 {
3704 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
3705 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
3706 	{ 0xa000, { 0x404, 0, DFF_Prop_adjustValue } },
3707 	{ 0xa000, { 0x404, 0, 0x400 } },
3708 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
3709 	{ 0x6000, { 0x404, 0x400, 0 } },
3710 	{ 0x6000, { 0x404, DFF_Prop_adjustValue, 0 } },
3711 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
3712 	{ 0x8000, { 21600, 0, 0x400 } },
3713 	{ 0x2001, { DFF_Prop_adjustValue, 10000, 31953 } },
3714 	{ 0x8000, { 21600, 0, 0x409 } }
3715 };
3716 static const sal_uInt16 mso_sptBraceSegm[] =
3717 {
3718 	0x4000, 0x2001, 0x0001, 0x2002, 0x0001, 0x2001, 0x8000
3719 };
3720 static const sal_Int32 mso_sptBraceDefault[] =
3721 {
3722 	2, 1800, 10800
3723 };
3724 static const SvxMSDffVertPair mso_sptLeftBraceVert[] =
3725 {
3726 	{ 21600, 0 },												// p
3727 	{ 16200, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },		// ccp
3728 	{ 10800, 2 MSO_I },											// p
3729 	{ 10800, 3 MSO_I }, { 5400, 4 MSO_I }, { 0, 4 MSO_I },		// ccp
3730 	{ 5400, 4 MSO_I }, 	{ 10800, 5 MSO_I }, { 10800, 6 MSO_I },	// ccp
3731 	{ 10800, 7 MSO_I },											// p
3732 	{ 10800, 8 MSO_I }, { 16200, 21600 }, { 21600, 21600 }		// ccp
3733 };
3734 static const SvxMSDffTextRectangles mso_sptLeftBraceTextRect[] =
3735 {
3736 	{ { 13800, 9 MSO_I }, { 21600, 10 MSO_I } }
3737 };
3738 static const SvxMSDffHandle mso_sptLeftBraceHandle[] =
3739 {
3740 	{	MSDFF_HANDLE_FLAGS_RANGE,
3741 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3742 	{	MSDFF_HANDLE_FLAGS_RANGE,
3743 		0, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3744 };
3745 static const mso_CustomShape msoLeftBrace =		// adj value0 0 -> 5400
3746 {												// adj value1 0 -> 21600
3747 	(SvxMSDffVertPair*)mso_sptLeftBraceVert, sizeof( mso_sptLeftBraceVert ) / sizeof( SvxMSDffVertPair ),
3748 	(sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3749 	(SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3750 	(sal_Int32*)mso_sptBraceDefault,
3751 	(SvxMSDffTextRectangles*)mso_sptLeftBraceTextRect, sizeof( mso_sptLeftBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3752 	21600, 21600,
3753 	0x80000000, 0x80000000,
3754 	(SvxMSDffVertPair*)mso_sptLeftBracketGluePoints, sizeof( mso_sptLeftBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3755 	(SvxMSDffHandle*)mso_sptLeftBraceHandle, sizeof( mso_sptLeftBraceHandle ) / sizeof( SvxMSDffHandle )		// handles
3756 };
3757 static const SvxMSDffVertPair mso_sptRightBraceVert[] =
3758 {
3759 	{ 0, 0 },													// p
3760 	{ 5400, 0 }, { 10800, 0 MSO_I }, { 10800, 1 MSO_I },		// ccp
3761 	{ 10800, 2 MSO_I },											// p
3762 	{ 10800, 3 MSO_I },	{ 16200, 4 MSO_I }, { 21600, 4 MSO_I },	// ccp
3763 	{ 16200, 4 MSO_I },	{ 10800, 5 MSO_I },	{ 10800, 6 MSO_I },	// ccp
3764 	{ 10800, 7 MSO_I },											// p
3765 	{ 10800, 8 MSO_I }, { 5400,	21600 }, { 0, 21600	}			// ccp
3766 };
3767 static const SvxMSDffTextRectangles mso_sptRightBraceTextRect[] =
3768 {
3769 	{ { 0, 9 MSO_I }, { 7800, 10 MSO_I } }
3770 };
3771 static const SvxMSDffHandle mso_sptRightBraceHandle[] =
3772 {
3773 	{	MSDFF_HANDLE_FLAGS_RANGE,
3774 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 },
3775 	{	MSDFF_HANDLE_FLAGS_RANGE,
3776 		1, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
3777 };
3778 static const mso_CustomShape msoRightBrace =		// adj value0 0 -> 5400
3779 {												// adj value1 0 -> 21600
3780 	(SvxMSDffVertPair*)mso_sptRightBraceVert, sizeof( mso_sptRightBraceVert ) / sizeof( SvxMSDffVertPair ),
3781 	(sal_uInt16*)mso_sptBraceSegm, sizeof( mso_sptBraceSegm ) >> 1,
3782 	(SvxMSDffCalculationData*)mso_sptBraceCalc, sizeof( mso_sptBraceCalc ) / sizeof( SvxMSDffCalculationData ),
3783 	(sal_Int32*)mso_sptBraceDefault,
3784 	(SvxMSDffTextRectangles*)mso_sptRightBraceTextRect, sizeof( mso_sptRightBraceTextRect ) / sizeof( SvxMSDffTextRectangles ),
3785 	21600, 21600,
3786 	0x80000000, 0x80000000,
3787 	(SvxMSDffVertPair*)mso_sptRightBracketGluePoints, sizeof( mso_sptRightBracketGluePoints ) / sizeof( SvxMSDffVertPair ),
3788 	(SvxMSDffHandle*)mso_sptRightBraceHandle, sizeof( mso_sptRightBraceHandle ) / sizeof( SvxMSDffHandle )		// handles
3789 };
3790 
3791 static const SvxMSDffVertPair mso_sptIrregularSeal1Vert[] =
3792 {
3793 	{ 10901, 5905 }, { 8458, 2399 }, { 7417, 6425 }, { 476, 2399 },
3794 	{ 4732, 7722 }, { 106, 8718 }, { 3828, 11880 }, { 243, 14689 },
3795 	{ 5772, 14041 }, { 4868, 17719 }, { 7819, 15730 }, { 8590, 21600 },
3796 	{ 10637, 15038 }, { 13349, 19840 }, { 14125, 14561 }, { 18248, 18195 },
3797 	{ 16938, 13044 }, { 21600, 13393 }, { 17710, 10579 }, { 21198, 8242 },
3798 	{ 16806, 7417 }, { 18482, 4560 }, { 14257, 5429 }, { 14623, 106 }, { 10901, 5905 }
3799 };
3800 static const SvxMSDffTextRectangles mso_sptIrregularSeal1TextRect[] =
3801 {
3802 	{ { 4680, 6570 }, { 16140, 13280 } }
3803 };
3804 static const SvxMSDffVertPair mso_sptIrregularSeal1GluePoints[] =
3805 {
3806 	{ 14623, 106 }, { 106, 8718 }, { 8590, 21600 }, { 21600, 13393 }
3807 };
3808 static const mso_CustomShape msoIrregularSeal1 =
3809 {
3810 	(SvxMSDffVertPair*)mso_sptIrregularSeal1Vert, sizeof( mso_sptIrregularSeal1Vert ) / sizeof( SvxMSDffVertPair ),
3811 	NULL, 0,
3812 	NULL, 0,
3813 	NULL,
3814 	(SvxMSDffTextRectangles*)mso_sptIrregularSeal1TextRect, sizeof( mso_sptIrregularSeal1TextRect ) / sizeof( SvxMSDffTextRectangles ),
3815 	21600, 21600,
3816 	0x80000000, 0x80000000,
3817 	(SvxMSDffVertPair*)mso_sptIrregularSeal1GluePoints, sizeof( mso_sptIrregularSeal1GluePoints ) / sizeof( SvxMSDffVertPair ),
3818 	NULL, 0		// handles
3819 };
3820 
3821 static const SvxMSDffVertPair mso_sptIrregularSeal2Vert[] =
3822 {
3823 	{ 11464, 4340 }, { 9722, 1887 }, { 8548, 6383 }, { 4503, 3626 },
3824 	{ 5373, 7816 }, { 1174, 8270 }, { 3934, 11592 }, { 0, 12875 },
3825 	{ 3329, 15372 }, { 1283, 17824 }, { 4804, 18239 }, { 4918, 21600 },
3826 	{ 7525, 18125 }, { 8698, 19712 }, { 9871, 17371 }, { 11614, 18844 },
3827 	{ 12178, 15937 }, { 14943, 17371 }, { 14640, 14348 }, { 18878, 15632 },
3828 	{ 16382, 12311 }, { 18270, 11292 }, { 16986, 9404 }, { 21600, 6646 },
3829 	{ 16382, 6533 }, { 18005, 3172 }, { 14524, 5778 }, { 14789, 0 },
3830 	{ 11464, 4340 }
3831 };
3832 static const SvxMSDffTextRectangles mso_sptIrregularSeal2TextRect[] =
3833 {
3834 	{ { 5400, 6570 }, { 14160, 15290 } }
3835 };
3836 static const SvxMSDffVertPair mso_sptIrregularSeal2GluePoints[] =
3837 {
3838 	{ 9722, 1887 }, { 0, 12875 }, { 11614, 18844 }, { 21600, 6646 }
3839 };
3840 static const mso_CustomShape msoIrregularSeal2 =
3841 {
3842 	(SvxMSDffVertPair*)mso_sptIrregularSeal2Vert, sizeof( mso_sptIrregularSeal2Vert ) / sizeof( SvxMSDffVertPair ),
3843 	NULL, 0,
3844 	NULL, 0,
3845 	NULL,
3846 	(SvxMSDffTextRectangles*)mso_sptIrregularSeal2TextRect, sizeof( mso_sptIrregularSeal2TextRect ) / sizeof( SvxMSDffTextRectangles ),
3847 	21600, 21600,
3848 	0x80000000, 0x80000000,
3849 	(SvxMSDffVertPair*)mso_sptIrregularSeal2GluePoints, sizeof( mso_sptIrregularSeal2GluePoints ) / sizeof( SvxMSDffVertPair ),
3850 	NULL, 0		// handles
3851 };
3852 
3853 static const SvxMSDffVertPair mso_sptSeal4Vert[] =		// adjustment1 : 0 - 10800
3854 {
3855 	{ 0, 10800 }, { 4 MSO_I, 4 MSO_I }, { 10800, 0 }, { 3 MSO_I, 4 MSO_I },
3856 	{ 21600, 10800 }, { 3 MSO_I, 3 MSO_I }, { 10800, 21600 }, { 4 MSO_I, 3 MSO_I },
3857 	{ 0, 10800 }
3858 };
3859 static const SvxMSDffCalculationData mso_sptSeal4Calc[] =
3860 {
3861 	{ 0x0000, { 7600, 0, 0 } },
3862 	{ 0x6001, { 0x400, DFF_Prop_adjustValue, 10800 } },
3863 	{ 0xa000, { 0x400, 0, 0x401 } },
3864 	{ 0x4000, { 10800, 0x402, 0 } },
3865 	{ 0x8000, { 10800, 0, 0x402 } }
3866 };
3867 static const SvxMSDffTextRectangles mso_sptSeal4TextRect[] =
3868 {
3869 	{ { 4 MSO_I, 4 MSO_I }, { 3 MSO_I, 3 MSO_I } }
3870 };
3871 static const SvxMSDffHandle mso_sptSealHandle[] =
3872 {
3873 	{	MSDFF_HANDLE_FLAGS_RANGE,
3874 		0x100, 10800, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
3875 };
3876 static const mso_CustomShape msoSeal4 =
3877 {
3878 	(SvxMSDffVertPair*)mso_sptSeal4Vert, sizeof( mso_sptSeal4Vert ) / sizeof( SvxMSDffVertPair ),
3879 	NULL, 0,
3880 	(SvxMSDffCalculationData*)mso_sptSeal4Calc, sizeof( mso_sptSeal4Calc ) / sizeof( SvxMSDffCalculationData ),
3881 	(sal_Int32*)mso_sptDefault8100,
3882 	(SvxMSDffTextRectangles*)mso_sptSeal4TextRect, sizeof( mso_sptSeal4TextRect ) / sizeof( SvxMSDffTextRectangles ),
3883 	21600, 21600,
3884 	0x80000000, 0x80000000,
3885 	NULL, 0,
3886 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
3887 };
3888 
3889 static const SvxMSDffVertPair mso_sptStarVert[] =
3890 {
3891 	{ 10797, 0 }, { 8278, 8256 }, { 0, 8256 }, { 6722, 13405 },
3892 	{ 4198, 21600 }, { 10797, 16580 }, { 17401, 21600 }, { 14878, 13405 },
3893 	{ 21600, 8256 }, { 13321, 8256 }, { 10797, 0 }
3894 };
3895 static const SvxMSDffTextRectangles mso_sptStarTextRect[] =
3896 {
3897 	{ { 6722, 8256 }, { 14878, 15460 } }
3898 };
3899 static const mso_CustomShape msoStar =
3900 {
3901 	(SvxMSDffVertPair*)mso_sptStarVert, sizeof( mso_sptStarVert ) / sizeof( SvxMSDffVertPair ),
3902 	NULL, 0,
3903 	NULL, 0,
3904 	NULL,
3905 	(SvxMSDffTextRectangles*)mso_sptStarTextRect, sizeof( mso_sptStarTextRect ) / sizeof( SvxMSDffTextRectangles ),
3906 	21600, 21600,
3907 	0x80000000, 0x80000000,
3908 	NULL, 0,
3909 	NULL, 0		// handles
3910 };
3911 
3912 static const SvxMSDffCalculationData mso_sptSeal24Calc[] =
3913 {
3914 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0x00
3915 	{ 0x2081, { 0x400, 10800, 315 } },				// 0x01	( textframe )
3916 	{ 0x2082, { 0x400, 10800, 315 } },				// 0x02
3917 	{ 0x2081, { 0x400, 10800, 135 } },				// 0x03
3918 	{ 0x2082, { 0x400, 10800, 135 } },				// 0x04
3919 	{ 0x0081, { 0,	 10800, 0 } },
3920 	{ 0x0082, { 0,	 10800, 0 } },
3921 	{ 0x2081, { 0x400, 10800, 7 } },
3922 	{ 0x2082, { 0x400, 10800, 7 } },
3923 	{ 0x0081, { 0,	 10800, 15 } },
3924 	{ 0x0082, { 0,	 10800, 15 } },
3925 	{ 0x2081, { 0x400, 10800, 22 } },
3926 	{ 0x2082, { 0x400, 10800, 22 } },
3927 	{ 0x0081, { 0,	 10800, 30 } },
3928 	{ 0x0082, { 0,	 10800, 30 } },
3929 	{ 0x2081, { 0x400, 10800, 37 } },
3930 	{ 0x2082, { 0x400, 10800, 37 } },
3931 	{ 0x0081, { 0,	 10800, 45 } },
3932 	{ 0x0082, { 0,	 10800, 45 } },
3933 	{ 0x2081, { 0x400, 10800, 52 } },
3934 	{ 0x2082, { 0x400, 10800, 52 } },
3935 	{ 0x0081, { 0,	 10800, 60 } },
3936 	{ 0x0082, { 0,	 10800, 60 } },
3937 	{ 0x2081, { 0x400, 10800, 67 } },
3938 	{ 0x2082, { 0x400, 10800, 67 } },
3939 	{ 0x0081, { 0,	 10800, 75 } },
3940 	{ 0x0082, { 0,	 10800, 75 } },
3941 	{ 0x2081, { 0x400, 10800, 82 } },
3942 	{ 0x2082, { 0x400, 10800, 82 } },
3943 	{ 0x0081, { 0,	 10800, 90 } },
3944 	{ 0x0082, { 0,	 10800, 90 } },
3945 	{ 0x2081, { 0x400, 10800, 97 } },
3946 	{ 0x2082, { 0x400, 10800, 97 } },
3947 	{ 0x0081, { 0,	 10800, 105 } },
3948 	{ 0x0082, { 0,	 10800, 105 } },
3949 	{ 0x2081, { 0x400, 10800, 112 } },
3950 	{ 0x2082, { 0x400, 10800, 112 } },
3951 	{ 0x0081, { 0,	 10800, 120 } },
3952 	{ 0x0082, { 0,	 10800, 120 } },
3953 	{ 0x2081, { 0x400, 10800, 127 } },
3954 	{ 0x2082, { 0x400, 10800, 127 } },
3955 	{ 0x0081, { 0,	 10800, 135 } },
3956 	{ 0x0082, { 0,	 10800, 135 } },
3957 	{ 0x2081, { 0x400, 10800, 142 } },
3958 	{ 0x2082, { 0x400, 10800, 142 } },
3959 	{ 0x0081, { 0,	 10800, 150 } },
3960 	{ 0x0082, { 0,	 10800, 150 } },
3961 	{ 0x2081, { 0x400, 10800, 157 } },
3962 	{ 0x2082, { 0x400, 10800, 157 } },
3963 	{ 0x0081, { 0,	 10800, 165 } },
3964 	{ 0x0082, { 0,	 10800, 165 } },
3965 	{ 0x2081, { 0x400, 10800, 172 } },
3966 	{ 0x2082, { 0x400, 10800, 172 } },
3967 	{ 0x0081, { 0,	 10800, 180 } },
3968 	{ 0x0082, { 0,	 10800, 180 } },
3969 	{ 0x2081, { 0x400, 10800, 187 } },
3970 	{ 0x2082, { 0x400, 10800, 187 } },
3971 	{ 0x0081, { 0,	 10800, 195 } },
3972 	{ 0x0082, { 0,	 10800, 195 } },
3973 	{ 0x2081, { 0x400, 10800, 202 } },
3974 	{ 0x2082, { 0x400, 10800, 202 } },
3975 	{ 0x0081, { 0,	 10800, 210 } },
3976 	{ 0x0082, { 0,	 10800, 210 } },
3977 	{ 0x2081, { 0x400, 10800, 217 } },
3978 	{ 0x2082, { 0x400, 10800, 217 } },
3979 	{ 0x0081, { 0,	 10800, 225 } },
3980 	{ 0x0082, { 0,	 10800, 225 } },
3981 	{ 0x2081, { 0x400, 10800, 232 } },
3982 	{ 0x2082, { 0x400, 10800, 232 } },
3983 	{ 0x0081, { 0,	 10800, 240 } },
3984 	{ 0x0082, { 0,	 10800, 240 } },
3985 	{ 0x2081, { 0x400, 10800, 247 } },
3986 	{ 0x2082, { 0x400, 10800, 247 } },
3987 	{ 0x0081, { 0,	 10800, 255 } },
3988 	{ 0x0082, { 0,	 10800, 255 } },
3989 	{ 0x2081, { 0x400, 10800, 262 } },
3990 	{ 0x2082, { 0x400, 10800, 262 } },
3991 	{ 0x0081, { 0,	 10800, 270 } },
3992 	{ 0x0082, { 0,	 10800, 270 } },
3993 	{ 0x2081, { 0x400, 10800, 277 } },
3994 	{ 0x2082, { 0x400, 10800, 277 } },
3995 	{ 0x0081, { 0,	 10800, 285 } },
3996 	{ 0x0082, { 0,	 10800, 285 } },
3997 	{ 0x2081, { 0x400, 10800, 292 } },
3998 	{ 0x2082, { 0x400, 10800, 292 } },
3999 	{ 0x0081, { 0,	 10800, 300 } },
4000 	{ 0x0082, { 0,	 10800, 300 } },
4001 	{ 0x2081, { 0x400, 10800, 307 } },
4002 	{ 0x2082, { 0x400, 10800, 307 } },
4003 	{ 0x0081, { 0,	 10800, 315 } },
4004 	{ 0x0082, { 0,	 10800, 315 } },
4005 	{ 0x2081, { 0x400, 10800, 322 } },
4006 	{ 0x2082, { 0x400, 10800, 322 } },
4007 	{ 0x0081, { 0,	 10800, 330 } },
4008 	{ 0x0082, { 0,	 10800, 330 } },
4009 	{ 0x2081, { 0x400, 10800, 337 } },
4010 	{ 0x2082, { 0x400, 10800, 337 } },
4011 	{ 0x0081, { 0,	 10800, 345 } },
4012 	{ 0x0082, { 0,	 10800, 345 } },
4013 	{ 0x2081, { 0x400, 10800, 352 } },
4014 	{ 0x2082, { 0x400, 10800, 352 } }
4015 };
4016 static const SvxMSDffVertPair mso_sptSeal8Vert[] =	// adj value 0 -> 10800
4017 {
4018 	{ 5 MSO_I, 6 MSO_I }, { 11 MSO_I, 12 MSO_I }, { 17 MSO_I, 18 MSO_I }, { 23 MSO_I, 24 MSO_I },
4019 	{ 29 MSO_I, 30 MSO_I }, { 35 MSO_I, 36 MSO_I }, { 41 MSO_I, 42 MSO_I }, { 47 MSO_I, 48 MSO_I },
4020 	{ 53 MSO_I, 54 MSO_I }, { 59 MSO_I, 60 MSO_I }, { 65 MSO_I, 66 MSO_I }, { 71 MSO_I, 72 MSO_I },
4021 	{ 77 MSO_I, 78 MSO_I }, { 83 MSO_I, 84 MSO_I }, { 89 MSO_I, 90 MSO_I }, { 95 MSO_I, 96 MSO_I },
4022 	{ 5 MSO_I, 6 MSO_I }
4023 };
4024 static const SvxMSDffTextRectangles mso_sptSealTextRect[] =
4025 {
4026 	{ { 1 MSO_I, 2 MSO_I }, { 3 MSO_I, 4 MSO_I } }
4027 };
4028 static const mso_CustomShape msoSeal8 =
4029 {
4030 	(SvxMSDffVertPair*)mso_sptSeal8Vert, sizeof( mso_sptSeal8Vert ) / sizeof( SvxMSDffVertPair ),
4031 	NULL, 0,
4032 	(SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4033 	(sal_Int32*)mso_sptDefault2500,
4034 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4035 	21600, 21600,
4036 	0x80000000, 0x80000000,
4037 	NULL, 0,
4038 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
4039 };
4040 static const SvxMSDffVertPair mso_sptSeal16Vert[] =	// adj value 0 -> 10800
4041 {
4042 	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4043 	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4044 	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4045 	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4046 	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4047 	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4048 	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4049 	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4050 	{ 0x05 MSO_I, 0x06 MSO_I }
4051 };
4052 static const SvxMSDffCalculationData mso_sptSeal16Calc[] =
4053 {
4054 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0x00
4055 	{ 0x2081, { 0x400, 10800, 315 } },				// 0x01	( textframe )
4056 	{ 0x2082, { 0x400, 10800, 315 } },				// 0x02
4057 	{ 0x2081, { 0x400, 10800, 135 } },				// 0x03
4058 	{ 0x2082, { 0x400, 10800, 135 } },				// 0x04
4059 	{ 0x0081, { 0,	 10800, 0 } },
4060 	{ 0x0082, { 0,	 10800, 0 } },
4061 	{ 0x2081, { 0x400, 10800, 11 } },
4062 	{ 0x2082, { 0x400, 10800, 11 } },
4063 	{ 0x0081, { 0,	 10800, 22 } },
4064 	{ 0x0082, { 0,	 10800, 22 } },
4065 	{ 0x2081, { 0x400, 10800, 33 } },
4066 	{ 0x2082, { 0x400, 10800, 33 } },
4067 	{ 0x0081, { 0,	 10800, 45 } },
4068 	{ 0x0082, { 0,	 10800, 45 } },
4069 	{ 0x2081, { 0x400, 10800, 56 } },
4070 	{ 0x2082, { 0x400, 10800, 56 } },
4071 	{ 0x0081, { 0,	 10800, 67 } },
4072 	{ 0x0082, { 0,	 10800, 67 } },
4073 	{ 0x2081, { 0x400, 10800, 78 } },
4074 	{ 0x2082, { 0x400, 10800, 78 } },
4075 	{ 0x0081, { 0,	 10800, 90 } },
4076 	{ 0x0082, { 0,	 10800, 90 } },
4077 	{ 0x2081, { 0x400, 10800, 101 } },
4078 	{ 0x2082, { 0x400, 10800, 101 } },
4079 	{ 0x0081, { 0,	 10800, 112 } },
4080 	{ 0x0082, { 0,	 10800, 112 } },
4081 	{ 0x2081, { 0x400, 10800, 123 } },
4082 	{ 0x2082, { 0x400, 10800, 123 } },
4083 	{ 0x0081, { 0,	 10800, 135 } },
4084 	{ 0x0082, { 0,	 10800, 135 } },
4085 	{ 0x2081, { 0x400, 10800, 146 } },
4086 	{ 0x2082, { 0x400, 10800, 146 } },
4087 	{ 0x0081, { 0,	 10800, 157 } },
4088 	{ 0x0082, { 0,	 10800, 157 } },
4089 	{ 0x2081, { 0x400, 10800, 168 } },
4090 	{ 0x2082, { 0x400, 10800, 168 } },
4091 	{ 0x0081, { 0,	 10800, 180 } },
4092 	{ 0x0082, { 0,	 10800, 180 } },
4093 	{ 0x2081, { 0x400, 10800, 191 } },
4094 	{ 0x2082, { 0x400, 10800, 191 } },
4095 	{ 0x0081, { 0,	 10800, 202 } },
4096 	{ 0x0082, { 0,	 10800, 202 } },
4097 	{ 0x2081, { 0x400, 10800, 213 } },
4098 	{ 0x2082, { 0x400, 10800, 213 } },
4099 	{ 0x0081, { 0,	 10800, 225 } },
4100 	{ 0x0082, { 0,	 10800, 225 } },
4101 	{ 0x2081, { 0x400, 10800, 236 } },
4102 	{ 0x2082, { 0x400, 10800, 236 } },
4103 	{ 0x0081, { 0,	 10800, 247 } },
4104 	{ 0x0082, { 0,	 10800, 247 } },
4105 	{ 0x2081, { 0x400, 10800, 258 } },
4106 	{ 0x2082, { 0x400, 10800, 258 } },
4107 	{ 0x0081, { 0,	 10800, 270 } },
4108 	{ 0x0082, { 0,	 10800, 270 } },
4109 	{ 0x2081, { 0x400, 10800, 281 } },
4110 	{ 0x2082, { 0x400, 10800, 281 } },
4111 	{ 0x0081, { 0,	 10800, 292 } },
4112 	{ 0x0082, { 0,	 10800, 292 } },
4113 	{ 0x2081, { 0x400, 10800, 303 } },
4114 	{ 0x2082, { 0x400, 10800, 303 } },
4115 	{ 0x0081, { 0,	 10800, 315 } },
4116 	{ 0x0082, { 0,	 10800, 315 } },
4117 	{ 0x2081, { 0x400, 10800, 326 } },
4118 	{ 0x2082, { 0x400, 10800, 326 } },
4119 	{ 0x0081, { 0,	 10800, 337 } },
4120 	{ 0x0082, { 0,	 10800, 337 } },
4121 	{ 0x2081, { 0x400, 10800, 348 } },
4122 	{ 0x2082, { 0x400, 10800, 348 } }
4123 };
4124 static const mso_CustomShape msoSeal16 =
4125 {
4126 	(SvxMSDffVertPair*)mso_sptSeal16Vert, sizeof( mso_sptSeal16Vert ) / sizeof( SvxMSDffVertPair ),
4127 	NULL, 0,
4128 	(SvxMSDffCalculationData*)mso_sptSeal16Calc, sizeof( mso_sptSeal16Calc ) / sizeof( SvxMSDffCalculationData ),
4129 	(sal_Int32*)mso_sptDefault2500,
4130 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4131 	21600, 21600,
4132 	0x80000000, 0x80000000,
4133 	NULL, 0,
4134 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
4135 };
4136 static const SvxMSDffVertPair mso_sptSeal24Vert[] =
4137 {
4138 	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4139 	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4140 	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4141 	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4142 	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4143 	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4144 	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4145 	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4146 	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4147 	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4148 	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4149 	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4150 	{ 0x05 MSO_I, 0x06 MSO_I }
4151 };
4152 static const mso_CustomShape msoSeal24 =
4153 {
4154 	(SvxMSDffVertPair*)mso_sptSeal24Vert, sizeof( mso_sptSeal24Vert ) / sizeof( SvxMSDffVertPair ),
4155 	NULL, 0,
4156 	(SvxMSDffCalculationData*)mso_sptSeal24Calc, sizeof( mso_sptSeal24Calc ) / sizeof( SvxMSDffCalculationData ),
4157 	(sal_Int32*)mso_sptDefault2500,
4158 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4159 	21600, 21600,
4160 	0x80000000, 0x80000000,
4161 	NULL, 0,
4162 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )		// handles
4163 };
4164 static const SvxMSDffCalculationData mso_sptSeal32Calc[] =
4165 {
4166 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 0x00
4167 	{ 0x2081, { 0x400, 10800, 315 } },				// 0x01	( textframe )
4168 	{ 0x2082, { 0x400, 10800, 315 } },				// 0x02
4169 	{ 0x2081, { 0x400, 10800, 135 } },				// 0x03
4170 	{ 0x2082, { 0x400, 10800, 135 } },				// 0x04
4171 	{ 0x0081, { 0,	 10800, 0 } },
4172 	{ 0x0082, { 0,	 10800, 0 } },
4173 	{ 0x2081, { 0x400, 10800, 5 } },
4174 	{ 0x2082, { 0x400, 10800, 5 } },
4175 	{ 0x0081, { 0,	 10800, 11 } },
4176 	{ 0x0082, { 0,	 10800, 11 } },
4177 	{ 0x2081, { 0x400, 10800, 16 } },
4178 	{ 0x2082, { 0x400, 10800, 16 } },
4179 	{ 0x0081, { 0,	 10800, 22 } },
4180 	{ 0x0082, { 0,	 10800, 22 } },
4181 	{ 0x2081, { 0x400, 10800, 28 } },
4182 	{ 0x2082, { 0x400, 10800, 28 } },
4183 	{ 0x0081, { 0,	 10800, 33 } },
4184 	{ 0x0082, { 0,	 10800, 33 } },
4185 	{ 0x2081, { 0x400, 10800, 39 } },
4186 	{ 0x2082, { 0x400, 10800, 39 } },
4187 	{ 0x0081, { 0,	 10800, 45 } },
4188 	{ 0x0082, { 0,	 10800, 45 } },
4189 	{ 0x2081, { 0x400, 10800, 50 } },
4190 	{ 0x2082, { 0x400, 10800, 50 } },
4191 	{ 0x0081, { 0,	 10800, 56 } },
4192 	{ 0x0082, { 0,	 10800, 56 } },
4193 	{ 0x2081, { 0x400, 10800, 61 } },
4194 	{ 0x2082, { 0x400, 10800, 61 } },
4195 	{ 0x0081, { 0,	 10800, 67 } },
4196 	{ 0x0082, { 0,	 10800, 67 } },
4197 	{ 0x2081, { 0x400, 10800, 73 } },
4198 	{ 0x2082, { 0x400, 10800, 73 } },
4199 	{ 0x0081, { 0,	 10800, 78 } },
4200 	{ 0x0082, { 0,	 10800, 78 } },
4201 	{ 0x2081, { 0x400, 10800, 84 } },
4202 	{ 0x2082, { 0x400, 10800, 84 } },
4203 	{ 0x0081, { 0,	 10800, 90 } },
4204 	{ 0x0082, { 0,	 10800, 90 } },
4205 	{ 0x2081, { 0x400, 10800, 95 } },
4206 	{ 0x2082, { 0x400, 10800, 95 } },
4207 	{ 0x0081, { 0,	 10800, 101 } },
4208 	{ 0x0082, { 0,	 10800, 101 } },
4209 	{ 0x2081, { 0x400, 10800, 106 } },
4210 	{ 0x2082, { 0x400, 10800, 106 } },
4211 	{ 0x0081, { 0,	 10800, 112 } },
4212 	{ 0x0082, { 0,	 10800, 112 } },
4213 	{ 0x2081, { 0x400, 10800, 118 } },
4214 	{ 0x2082, { 0x400, 10800, 118 } },
4215 	{ 0x0081, { 0,	 10800, 123 } },
4216 	{ 0x0082, { 0,	 10800, 123 } },
4217 	{ 0x2081, { 0x400, 10800, 129 } },
4218 	{ 0x2082, { 0x400, 10800, 129 } },
4219 	{ 0x0081, { 0,	 10800, 135 } },
4220 	{ 0x0082, { 0,	 10800, 135 } },
4221 	{ 0x2081, { 0x400, 10800, 140 } },
4222 	{ 0x2082, { 0x400, 10800, 140 } },
4223 	{ 0x0081, { 0,	 10800, 146 } },
4224 	{ 0x0082, { 0,	 10800, 146 } },
4225 	{ 0x2081, { 0x400, 10800, 151 } },
4226 	{ 0x2082, { 0x400, 10800, 151 } },
4227 	{ 0x0081, { 0,	 10800, 157 } },
4228 	{ 0x0082, { 0,	 10800, 157 } },
4229 	{ 0x2081, { 0x400, 10800, 163 } },
4230 	{ 0x2082, { 0x400, 10800, 163 } },
4231 	{ 0x0081, { 0,	 10800, 168 } },
4232 	{ 0x0082, { 0,	 10800, 168 } },
4233 	{ 0x2081, { 0x400, 10800, 174 } },
4234 	{ 0x2082, { 0x400, 10800, 174 } },
4235 	{ 0x0081, { 0,	 10800, 180 } },
4236 	{ 0x0082, { 0,	 10800, 180 } },
4237 	{ 0x2081, { 0x400, 10800, 185 } },
4238 	{ 0x2082, { 0x400, 10800, 185 } },
4239 	{ 0x0081, { 0,	 10800, 191 } },
4240 	{ 0x0082, { 0,	 10800, 191 } },
4241 	{ 0x2081, { 0x400, 10800, 196 } },
4242 	{ 0x2082, { 0x400, 10800, 196 } },
4243 	{ 0x0081, { 0,	 10800, 202 } },
4244 	{ 0x0082, { 0,	 10800, 202 } },
4245 	{ 0x2081, { 0x400, 10800, 208 } },
4246 	{ 0x2082, { 0x400, 10800, 208 } },
4247 	{ 0x0081, { 0,	 10800, 213 } },
4248 	{ 0x0082, { 0,	 10800, 213 } },
4249 	{ 0x2081, { 0x400, 10800, 219 } },
4250 	{ 0x2082, { 0x400, 10800, 219 } },
4251 	{ 0x0081, { 0,	 10800, 225 } },
4252 	{ 0x0082, { 0,	 10800, 225 } },
4253 	{ 0x2081, { 0x400, 10800, 230 } },
4254 	{ 0x2082, { 0x400, 10800, 230 } },
4255 	{ 0x0081, { 0,	 10800, 236 } },
4256 	{ 0x0082, { 0,	 10800, 236 } },
4257 	{ 0x2081, { 0x400, 10800, 241 } },
4258 	{ 0x2082, { 0x400, 10800, 241 } },
4259 	{ 0x0081, { 0,	 10800, 247 } },
4260 	{ 0x0082, { 0,	 10800, 247 } },
4261 	{ 0x2081, { 0x400, 10800, 253 } },
4262 	{ 0x2082, { 0x400, 10800, 253 } },
4263 	{ 0x0081, { 0,	 10800, 258 } },
4264 	{ 0x0082, { 0,	 10800, 258 } },
4265 	{ 0x2081, { 0x400, 10800, 264 } },
4266 	{ 0x2082, { 0x400, 10800, 264 } },
4267 	{ 0x0081, { 0,	 10800, 270 } },
4268 	{ 0x0082, { 0,	 10800, 270 } },
4269 	{ 0x2081, { 0x400, 10800, 275 } },
4270 	{ 0x2082, { 0x400, 10800, 275 } },
4271 	{ 0x0081, { 0,	 10800, 281 } },
4272 	{ 0x0082, { 0,	 10800, 281 } },
4273 	{ 0x2081, { 0x400, 10800, 286 } },
4274 	{ 0x2082, { 0x400, 10800, 286 } },
4275 	{ 0x0081, { 0,	 10800, 292 } },
4276 	{ 0x0082, { 0,	 10800, 292 } },
4277 	{ 0x2081, { 0x400, 10800, 298 } },
4278 	{ 0x2082, { 0x400, 10800, 298 } },
4279 	{ 0x0081, { 0,	 10800, 303 } },
4280 	{ 0x0082, { 0,	 10800, 303 } },
4281 	{ 0x2081, { 0x400, 10800, 309 } },
4282 	{ 0x2082, { 0x400, 10800, 309 } },
4283 	{ 0x0081, { 0,	 10800, 315 } },
4284 	{ 0x0082, { 0,	 10800, 315 } },
4285 	{ 0x2081, { 0x400, 10800, 320 } },
4286 	{ 0x2082, { 0x400, 10800, 320 } },
4287 	{ 0x0081, { 0,	 10800, 326 } },
4288 	{ 0x0082, { 0,	 10800, 326 } },
4289 	{ 0x2081, { 0x400, 10800, 331 } },
4290 	{ 0x2082, { 0x400, 10800, 331 } },
4291 	{ 0x0081, { 0,	 10800, 337 } },
4292 	{ 0x0082, { 0,	 10800, 337 } },
4293 	{ 0x2081, { 0x400, 10800, 343 } },
4294 	{ 0x2082, { 0x400, 10800, 343 } },
4295 	{ 0x0081, { 0,	 10800, 348 } },
4296 	{ 0x0082, { 0,	 10800, 348 } },
4297 	{ 0x2081, { 0x400, 10800, 354 } },
4298 	{ 0x2082, { 0x400, 10800, 354 } }
4299 };
4300 static const SvxMSDffVertPair mso_sptSeal32Vert[] =
4301 {
4302 	{ 0x05 MSO_I, 0x06 MSO_I }, { 0x07 MSO_I, 0x08 MSO_I }, { 0x09 MSO_I, 0x0a MSO_I }, { 0x0b MSO_I, 0x0c MSO_I },
4303 	{ 0x0d MSO_I, 0x0e MSO_I }, { 0x0f MSO_I, 0x10 MSO_I }, { 0x11 MSO_I, 0x12 MSO_I }, { 0x13 MSO_I, 0x14 MSO_I },
4304 	{ 0x15 MSO_I, 0x16 MSO_I }, { 0x17 MSO_I, 0x18 MSO_I }, { 0x19 MSO_I, 0x1a MSO_I }, { 0x1b MSO_I, 0x1c MSO_I },
4305 	{ 0x1d MSO_I, 0x1e MSO_I }, { 0x1f MSO_I, 0x20 MSO_I }, { 0x21 MSO_I, 0x22 MSO_I }, { 0x23 MSO_I, 0x24 MSO_I },
4306 	{ 0x25 MSO_I, 0x26 MSO_I }, { 0x27 MSO_I, 0x28 MSO_I }, { 0x29 MSO_I, 0x2a MSO_I }, { 0x2b MSO_I, 0x2c MSO_I },
4307 	{ 0x2d MSO_I, 0x2e MSO_I }, { 0x2f MSO_I, 0x30 MSO_I }, { 0x31 MSO_I, 0x32 MSO_I }, { 0x33 MSO_I, 0x34 MSO_I },
4308 	{ 0x35 MSO_I, 0x36 MSO_I }, { 0x37 MSO_I, 0x38 MSO_I }, { 0x39 MSO_I, 0x3a MSO_I }, { 0x3b MSO_I, 0x3c MSO_I },
4309 	{ 0x3d MSO_I, 0x3e MSO_I }, { 0x3f MSO_I, 0x40 MSO_I }, { 0x41 MSO_I, 0x42 MSO_I }, { 0x43 MSO_I, 0x44 MSO_I },
4310 	{ 0x45 MSO_I, 0x46 MSO_I }, { 0x47 MSO_I, 0x48 MSO_I }, { 0x49 MSO_I, 0x4a MSO_I }, { 0x4b MSO_I, 0x4c MSO_I },
4311 	{ 0x4d MSO_I, 0x4e MSO_I }, { 0x4f MSO_I, 0x50 MSO_I }, { 0x51 MSO_I, 0x52 MSO_I }, { 0x53 MSO_I, 0x54 MSO_I },
4312 	{ 0x55 MSO_I, 0x56 MSO_I }, { 0x57 MSO_I, 0x58 MSO_I }, { 0x59 MSO_I, 0x5a MSO_I }, { 0x5b MSO_I, 0x5c MSO_I },
4313 	{ 0x5d MSO_I, 0x5e MSO_I }, { 0x5f MSO_I, 0x60 MSO_I }, { 0x61 MSO_I, 0x62 MSO_I }, { 0x63 MSO_I, 0x64 MSO_I },
4314 	{ 0x65 MSO_I, 0x66 MSO_I }, { 0x67 MSO_I, 0x68 MSO_I }, { 0x69 MSO_I, 0x6a MSO_I }, { 0x6b MSO_I, 0x6c MSO_I },
4315 	{ 0x6d MSO_I, 0x6e MSO_I }, { 0x6f MSO_I, 0x70 MSO_I }, { 0x71 MSO_I, 0x72 MSO_I }, { 0x73 MSO_I, 0x74 MSO_I },
4316 	{ 0x75 MSO_I, 0x76 MSO_I }, { 0x77 MSO_I, 0x78 MSO_I }, { 0x79 MSO_I, 0x7a MSO_I }, { 0x7b MSO_I, 0x7c MSO_I },
4317 	{ 0x7d MSO_I, 0x7e MSO_I }, { 0x7f MSO_I, 0x80 MSO_I }, { 0x81 MSO_I, 0x82 MSO_I }, { 0x83 MSO_I, 0x84 MSO_I },
4318 	{ 0x05 MSO_I, 0x06 MSO_I }
4319 };
4320 static const mso_CustomShape msoSeal32 =
4321 {
4322 	(SvxMSDffVertPair*)mso_sptSeal32Vert, sizeof( mso_sptSeal32Vert ) / sizeof( SvxMSDffVertPair ),
4323 	NULL, 0,
4324 	(SvxMSDffCalculationData*)mso_sptSeal32Calc, sizeof( mso_sptSeal32Calc ) / sizeof( SvxMSDffCalculationData ),
4325 	(sal_Int32*)mso_sptDefault2500,
4326 	(SvxMSDffTextRectangles*)mso_sptSealTextRect, sizeof( mso_sptSealTextRect ) / sizeof( SvxMSDffTextRectangles ),
4327 	21600, 21600,
4328 	0x80000000, 0x80000000,
4329 	NULL, 0,
4330 	(SvxMSDffHandle*)mso_sptSealHandle, sizeof( mso_sptSealHandle ) / sizeof( SvxMSDffHandle )
4331 };
4332 
4333 static const SvxMSDffVertPair mso_sptRibbon2Vert[] =	// adjustment1 : x 2700	 - 8100		def 5400
4334 {														// adjustment2 : y 14400 - 21600	def 18900
4335 	{ 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },										// pp
4336 	{ 12 MSO_I, 14 MSO_I }, { 15 MSO_I, 21600 }, { 16 MSO_I, 21600 },					// ccp
4337 	{ 0, 21600 }, { 2750, 7 MSO_I }, { 0, 2 MSO_I }, { 0 MSO_I, 2 MSO_I },				// pppp
4338 	{ 0 MSO_I, 4 MSO_I },																// p
4339 	{ 0 MSO_I, 5 MSO_I }, { 10 MSO_I, 0 }, { 11 MSO_I, 0 },								// ccp
4340 	{ 17 MSO_I, 0 },																	// p
4341 	{ 18 MSO_I, 0 }, { 19 MSO_I, 5 MSO_I }, { 19 MSO_I, 4 MSO_I },						// ccp
4342 	{ 19 MSO_I, 2 MSO_I }, { 21600, 2 MSO_I }, { 18850, 7 MSO_I }, { 21600, 21600 },	// pppp
4343 	{ 20 MSO_I, 21600 },																// p
4344 	{ 21 MSO_I, 21600 }, { 22 MSO_I, 14 MSO_I }, { 22 MSO_I, 13 MSO_I },				// ccp
4345 	{ 22 MSO_I, 1 MSO_I }, { 12 MSO_I, 1 MSO_I }, { 12 MSO_I, 13 MSO_I },				// ppp
4346 	{ 12 MSO_I, 23 MSO_I }, { 15 MSO_I, 24 MSO_I }, { 16 MSO_I, 24 MSO_I },				// ccp
4347 	{ 11 MSO_I, 24 MSO_I },																// p
4348 	{ 10 MSO_I, 24 MSO_I }, { 0 MSO_I, 26 MSO_I }, { 0 MSO_I, 25 MSO_I },				// ccp
4349 	{ 0 MSO_I, 27 MSO_I }, { 10 MSO_I, 1 MSO_I }, { 11 MSO_I, 1 MSO_I },				// ccp
4350 
4351 	{ 22 MSO_I, 1 MSO_I }, { 22 MSO_I, 13 MSO_I },										// pp
4352 	{ 22 MSO_I, 23 MSO_I }, { 21 MSO_I, 24 MSO_I }, { 20 MSO_I, 24 MSO_I },				// ccp
4353 	{ 17 MSO_I, 24 MSO_I },																// p
4354 	{ 18 MSO_I, 24 MSO_I }, { 19 MSO_I, 26 MSO_I }, { 19 MSO_I, 25 MSO_I },				// ccp
4355 	{ 19 MSO_I, 27 MSO_I }, { 18 MSO_I, 1 MSO_I }, { 17 MSO_I, 1 MSO_I },				// ccp
4356 
4357 	{ 0 MSO_I, 25 MSO_I }, { 0 MSO_I, 2 MSO_I },										// pp
4358 
4359 	{ 19 MSO_I, 25 MSO_I }, { 19 MSO_I, 2 MSO_I }										// pp
4360 };
4361 static const sal_uInt16 mso_sptRibbon2Segm[] =
4362 {
4363 	0x4000, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x2001, 0x0005, 0x2001, 0x0001, 0x6001, 0x8000,
4364 	0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4365 	0x4000, 0x0001, 0x2001, 0x0001, 0x2002, 0x6001, 0x8000,
4366 	0x4000, 0x0001, 0x8000,
4367 	0x4000, 0x0001, 0x8000
4368 };
4369 static const SvxMSDffCalculationData mso_sptRibbon2Calc[] =
4370 {
4371 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },				// 00
4372 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },			// 01
4373 	{ 0x8000, { 21600, 0, 0x401 } },						// 02
4374 	{ 0x2001, { 0x402, 1, 2 } },							// 03
4375 	{ 0x2001, { 0x403, 1, 2 } },							// 04
4376 	{ 0x2001, { 0x404, 1, 2 } },							// 05
4377 	{ 0x2001, { 0x401, 1, 2 } },							// 06
4378 	{ 0x8000, { 21600, 0, 0x406 } },						// 07
4379 	{ 0x0000, { 420, 0, 0 } },								// 08
4380 	{ 0x2001, { 0x408, 2, 1 } },							// 09
4381 	{ 0x6000, { 0x400, 0x408, 0 } },						// 10
4382 	{ 0x6000, { 0x400, 0x409, 0 } },						// 11
4383 	{ 0x2000, { 0x400, 2700, 0 } },							// 12
4384 	{ 0x8000, { 21600, 0, 0x404 } },						// 13
4385 	{ 0x8000, { 21600, 0, 0x405 } },						// 14
4386 	{ 0xa000, { 0x40c, 0, 0x408 } },						// 15
4387 	{ 0xa000, { 0x40c, 0, 0x409 } },						// 16
4388 
4389 	{ 0x8000, { 21600, 0, 0x40b } },						// 17
4390 	{ 0x8000, { 21600, 0, 0x40a } },						// 18
4391 	{ 0x8000, { 21600, 0, 0x400 } },						// 19
4392 	{ 0x8000, { 21600, 0, 0x410 } },						// 20
4393 	{ 0x8000, { 21600, 0, 0x40f } },						// 21
4394 	{ 0x8000, { 21600, 0, 0x40c } },						// 22
4395 
4396 	{ 0xa000, { 0x40d, 0, 0x405 } },						// 23
4397 	{ 0x6000, { 0x401, 0x403, 0 } },						// 24
4398 	{ 0x6000, { 0x401, 0x404, 0 } },						// 25
4399 	{ 0x6000, { 0x419, 0x405, 0 } },						// 26
4400 	{ 0xa000, { 0x419, 0, 0x405 } }							// 27
4401 };
4402 static const sal_Int32 mso_sptRibbon2Default[] =
4403 {
4404 	2, 5400, 18900
4405 };
4406 static const SvxMSDffTextRectangles mso_sptRibbon2TextRect[] =
4407 {
4408 	{ { 0 MSO_I, 0 }, { 19 MSO_I, 1 MSO_I } }
4409 };
4410 static const SvxMSDffHandle mso_sptRibbon2Handle[] =
4411 {
4412 	{	MSDFF_HANDLE_FLAGS_RANGE,
4413 		0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4414 	{	MSDFF_HANDLE_FLAGS_RANGE,
4415 		10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
4416 };
4417 static const mso_CustomShape msoRibbon2 =
4418 {
4419 	(SvxMSDffVertPair*)mso_sptRibbon2Vert, sizeof( mso_sptRibbon2Vert ) / sizeof( SvxMSDffVertPair ),
4420 	(sal_uInt16*)mso_sptRibbon2Segm, sizeof( mso_sptRibbon2Segm ) >> 1,
4421 	(SvxMSDffCalculationData*)mso_sptRibbon2Calc, sizeof( mso_sptRibbon2Calc ) / sizeof( SvxMSDffCalculationData ),
4422 	(sal_Int32*)mso_sptRibbon2Default,
4423 	(SvxMSDffTextRectangles*)mso_sptRibbon2TextRect, sizeof( mso_sptRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ),
4424 	21600, 21600,
4425 	0x80000000, 0x80000000,
4426 	NULL, 0,
4427 	(SvxMSDffHandle*)mso_sptRibbon2Handle, sizeof( mso_sptRibbon2Handle ) / sizeof( SvxMSDffHandle )
4428 };
4429 
4430 static const SvxMSDffVertPair mso_sptRibbonVert[] =
4431 {
4432 	{ 0, 0 }, { 3 MSO_I, 0 },
4433 	{ 4 MSO_I, 11 MSO_I }, { 4 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I }, { 5 MSO_I, 11 MSO_I },
4434 	{ 6 MSO_I, 0 }, { 21600, 0 }, { 18 MSO_I, 14 MSO_I }, { 21600, 15 MSO_I }, { 9 MSO_I, 15 MSO_I }, { 9 MSO_I, 16 MSO_I }, { 8 MSO_I, 21600 }, { 1 MSO_I, 21600 },
4435 	{ 0 MSO_I, 16 MSO_I }, { 0 MSO_I, 15 MSO_I }, { 0, 15 MSO_I }, { 2700, 14 MSO_I },
4436 
4437 	{ 4 MSO_I, 11 MSO_I },
4438 	{ 3 MSO_I, 12 MSO_I }, { 1 MSO_I, 12 MSO_I },
4439 	{ 0 MSO_I, 13 MSO_I }, { 1 MSO_I, 10 MSO_I }, { 4 MSO_I, 10 MSO_I },
4440 	{ 5 MSO_I, 11 MSO_I },
4441 	{ 6 MSO_I, 12 MSO_I }, { 8 MSO_I, 12 MSO_I },
4442 	{ 9 MSO_I, 13 MSO_I }, { 8 MSO_I, 10 MSO_I }, { 5 MSO_I, 10 MSO_I },
4443 	{ 0 MSO_I, 13 MSO_I },
4444 	{ 0 MSO_I, 15 MSO_I },
4445 	{ 9 MSO_I, 13 MSO_I },
4446 	{ 9 MSO_I, 15 MSO_I }
4447 };
4448 static const sal_uInt16 mso_sptRibbonSegm[] =
4449 {
4450 	0x4000, 0x0001, 0xa701, 0x0003, 0xa801, 0x0005, 0xa801, 0x0001, 0xa701, 0x0003, 0x6000, 0x8000,
4451 	0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4452 	0x4000, 0xaa00, 0xa801, 0x0001, 0xa702, 0x0001, 0x8000,
4453 	0x4000, 0xaa00, 0x0001, 0x8000,
4454 	0x4000, 0xaa00, 0x0001, 0x8000
4455 };
4456 static const SvxMSDffCalculationData mso_sptRibbonCalc[] =
4457 {
4458 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },				// 00
4459 	{ 0x2000, { 0x400, 675, 0 } },							// 01
4460 	{ 0x2000, { 0x401, 675, 0 } },							// 02
4461 	{ 0x2000, { 0x402, 675, 0 } },							// 03
4462 	{ 0x2000, { 0x403, 675, 0 } },							// 04
4463 	{ 0x8000, { 21600, 0, 0x404 } },						// 05
4464 	{ 0x8000, { 21600, 0, 0x403 } },						// 06
4465 	{ 0x8000, { 21600, 0, 0x402 } },						// 07
4466 	{ 0x8000, { 21600, 0, 0x401 } },						// 08
4467 	{ 0x8000, { 21600, 0, 0x400 } },						// 09
4468 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },			// 10
4469 	{ 0x2001, { 0x40a, 1, 4 } },							// 11
4470 	{ 0x2001, { 0x40b, 2, 1 } },							// 12
4471 	{ 0x2001, { 0x40b, 3, 1 } },							// 13
4472 	{ 0x8000, { 10800, 0, 0x40c } },						// 14
4473 	{ 0x8000, { 21600, 0, 0x40a } },						// 15
4474 	{ 0x8000, { 21600, 0, 0x40b } },						// 16
4475 	{ 0x0001, { 21600, 1, 2 } },							// 17
4476 	{ 0x0000, { 21600, 0, 2700 } },							// 18
4477 	{ 0x2000, { 0x411, 0, 2700 } }							// 19
4478 };
4479 static const sal_Int32 mso_sptRibbonDefault[] =
4480 {
4481 	2, 5400, 2700
4482 };
4483 static const SvxMSDffTextRectangles mso_sptRibbonTextRect[] =
4484 {
4485 	{ { 0 MSO_I, 10 MSO_I }, { 9 MSO_I, 21600 } }
4486 };
4487 static const SvxMSDffVertPair mso_sptRibbonGluePoints[] =
4488 {
4489 	{ 17 MSO_I, 10 MSO_I }, { 2700, 14 MSO_I }, { 17 MSO_I, 21600 }, { 18 MSO_I, 14 MSO_I }
4490 };
4491 static const SvxMSDffHandle mso_sptRibbonHandle[] =
4492 {
4493 	{	MSDFF_HANDLE_FLAGS_RANGE,
4494 		0x100, 0, 10800, 10800, 2700, 8100, 0x80000000, 0x7fffffff },
4495 	{	MSDFF_HANDLE_FLAGS_RANGE,
4496 		10800, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
4497 };
4498 static const mso_CustomShape msoRibbon =
4499 {
4500 	(SvxMSDffVertPair*)mso_sptRibbonVert, sizeof( mso_sptRibbonVert ) / sizeof( SvxMSDffVertPair ),
4501 	(sal_uInt16*)mso_sptRibbonSegm, sizeof( mso_sptRibbonSegm ) >> 1,
4502 	(SvxMSDffCalculationData*)mso_sptRibbonCalc, sizeof( mso_sptRibbonCalc ) / sizeof( SvxMSDffCalculationData ),
4503 	(sal_Int32*)mso_sptRibbonDefault,
4504 	(SvxMSDffTextRectangles*)mso_sptRibbonTextRect, sizeof( mso_sptRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ),
4505 	21600, 21600,
4506 	0x80000000, 0x80000000,
4507 	(SvxMSDffVertPair*)mso_sptRibbonGluePoints, sizeof( mso_sptRibbonGluePoints ) / sizeof( SvxMSDffVertPair ),
4508 	(SvxMSDffHandle*)mso_sptRibbonHandle, sizeof( mso_sptRibbonHandle ) / sizeof( SvxMSDffHandle )
4509 };
4510 //msosptEllipseRibbon
4511 //svg path = ar@9@38@8@37,0@27@0@26@9@13@8@4@0@25@22@25@9@38@8@37@22@26@3@27l@7@40@3,wa@9@35@8@10@3,0@21@33@9@36@8@1@21@31@20@31@9@35@8@10@20@33,,l@5@40xewr@9@36@8@1@20@31@0@32nfl@20@33ear@9@36@8@1@21@31@22@32nfl@21@33em@0@26nfl@0@32em@22@26nfl@22@32e
4512 //odp path = A ?f9 ?f38 ?f8 ?f37 0 ?f27 ?f0 ?f26 ?f9 ?f13 ?f8 ?f4 ?f0 ?f25 ?f22 ?f25 ?f9 ?f38 ?f8 ?f37 ?f22 ?f26 ?f3 ?f27 L ?f7 ?f40 ?f3 0 W ?f9 ?f35 ?f8 ?f10 ?f3 0 ?f21 ?f33 ?f9 ?f36 ?f8 ?f1 ?f21 ?f31 ?f20 ?f31 ?f9 ?f35 ?f8 ?f10 ?f20 ?f33 0 0 L ?f5 ?f40 Z N W ?f9 ?f36 ?f8 ?f1 ?f20 ?f31 ?f0 ?f32 F L ?f20 ?f33 N A ?f9 ?f36 ?f8 ?f1 ?f21 ?f31 ?f22 ?f32 F L ?f21 ?f33 N M ?f0 ?f26 F L ?f0 ?f32 N M ?f22 ?f26 F L ?f22 ?f32 N
4513 static const SvxMSDffVertPair mso_sptEllipseRibbonVert[] =
4514 {
4515 	{ 9 MSO_I , 38 MSO_I },
4516 	{ 8 MSO_I , 37 MSO_I },
4517 	{ 0 , 27 MSO_I },
4518 	{ 0 MSO_I , 26 MSO_I },
4519 	{ 9 MSO_I , 13 MSO_I },
4520 	{ 8 MSO_I , 4 MSO_I },
4521 	{ 0 MSO_I , 25 MSO_I },
4522 	{ 22 MSO_I , 25 MSO_I },
4523 	{ 9 MSO_I , 38 MSO_I },
4524 	{ 8 MSO_I , 37 MSO_I },
4525 	{ 22 MSO_I , 26 MSO_I },
4526 	{ 3 MSO_I , 27 MSO_I },
4527 	{ 7 MSO_I , 40 MSO_I },
4528 	{ 3 MSO_I , 0 },
4529 	{ 9 MSO_I , 35 MSO_I },
4530 	{ 8 MSO_I , 10 MSO_I },
4531 	{ 3 MSO_I , 0 },
4532 	{ 21 MSO_I , 33 MSO_I },
4533 	{ 9 MSO_I , 36 MSO_I },
4534 	{ 8 MSO_I , 1 MSO_I },
4535 	{ 21 MSO_I , 31 MSO_I },
4536 	{ 20 MSO_I , 31 MSO_I },
4537 	{ 9 MSO_I , 35 MSO_I },
4538 	{ 8 MSO_I , 10 MSO_I },
4539 	{ 20 MSO_I , 33 MSO_I },
4540 	{ 0 , 0 },
4541 	{ 5 MSO_I , 40 MSO_I },
4542 	{ 9 MSO_I , 36 MSO_I },
4543 	{ 8 MSO_I , 1 MSO_I },
4544 	{ 20 MSO_I , 31 MSO_I },
4545 	{ 0 MSO_I , 32 MSO_I },
4546 	{ 20 MSO_I , 33 MSO_I },
4547 	{ 9 MSO_I , 36 MSO_I },
4548 	{ 8 MSO_I , 1 MSO_I },
4549 	{ 21 MSO_I , 31 MSO_I },
4550 	{ 22 MSO_I , 32 MSO_I },
4551 	{ 21 MSO_I , 33 MSO_I },
4552 	{ 0 MSO_I , 26 MSO_I },
4553 	{ 0 MSO_I , 32 MSO_I },
4554 	{ 22 MSO_I , 26 MSO_I },
4555 	{ 22 MSO_I , 32 MSO_I }
4556 };
4557 
4558 static const sal_uInt16 mso_sptEllipseRibbonSegm[] =
4559 {
4560 	0xa30c /*ar*/,0x0002/*l*/,0xa50c/*wa*/,0x0001/*l*/,
4561 	0x6001/*x*/, 0x8000/*e*/,0xa504/*wr*/,0xaa00/*nf*/,
4562 	0x0001/*l*/, 0x8000/*e*/,0xa304/*ar*/,0xaa00/*nf*/,
4563 	0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4564 	0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4565 	0x0001/*l*/, 0x8000/*e*/
4566 };
4567 
4568 static const SvxMSDffCalculationData mso_sptEllipseRibbonCalc[] =
4569 {
4570 	{ 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, //val #0
4571 	{ 0x2000 , { DFF_Prop_adjust2Value , 0 , 0 } }, //val #1
4572 	{ 0x2000 , { DFF_Prop_adjust3Value , 0 , 0 } }, //val #2
4573 	{ 0x2000 , { DFF_Prop_geoRight , 0 , 0 } }, //val width
4574 	{ 0x2000 , { DFF_Prop_geoBottom , 0 , 0 } }, //val height
4575 	{ 0x2001 , { DFF_Prop_geoRight , 1 , 8 } }, //prod width 1 8
4576 	{ 0x2001 , { DFF_Prop_geoRight , 1 , 2 } }, //prod width 1 2
4577 	{ 0x2001 , { DFF_Prop_geoRight , 7 , 8 } }, //prod width 7 8
4578 	{ 0x2001 , { DFF_Prop_geoRight , 3 , 2 } }, //prod width 3 2
4579 	{ 0x8000 , { 0 , 0 , 0x406 } }, //sum 0 0 @6
4580 	{ 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust3Value } }, //sum height 0 #2
4581 	{ 0x2001 , { 0x40a , 30573 , 4096 } }, //prod @10 30573 4096
4582 	{ 0x2001 , { 0x40b , 2 , 1 } }, //prod @11 2 1
4583 	{ 0xa000 , { DFF_Prop_geoBottom , 0 , 0x40c } }, //sum height 0 @12
4584 	{ 0x6000 , { 0x40b , DFF_Prop_adjust3Value , 0 } }, //sum @11 #2 0
4585 	{ 0xe000 , { 0x40b , DFF_Prop_geoBottom , DFF_Prop_adjust2Value } }, //sum @11 height #1
4586 	{ 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust2Value } }, //sum height 0 #1
4587 	{ 0x2001 , { 0x410 , 1 , 2 } }, //prod @16 1 2
4588 	{ 0x6000 , { 0x40b , 0x411 , 0 } }, //sum @11 @17 0
4589 	{ 0xe000 , { 0x40e , DFF_Prop_adjust2Value , DFF_Prop_geoBottom } }, //sum @14 #1 height
4590 	{ 0x6000 , { DFF_Prop_adjustValue , 0x405 , 0 } }, //sum #0 @5 0
4591 	{ 0xa000 , { DFF_Prop_geoRight , 0 , 0x414 } }, //sum width 0 @20
4592 	{ 0xa000 , { DFF_Prop_geoRight , 0 , DFF_Prop_adjustValue } }, //sum width 0 #0
4593 	{ 0xa000 , { 0x406 , 0 , DFF_Prop_adjustValue } }, //sum @6 0 #0
4594 	{ 0xe00f , { 0x417 , DFF_Prop_geoRight , 0x40b } }, //ellipse @23 width @11
4595 	{ 0xe000 , { 0x418 , DFF_Prop_geoBottom , 0x40b } }, //sum @24 height @11
4596 	{ 0xe000 , { 0x419 , 0x40b , 0x413 } }, //sum @25 @11 @19
4597 	{ 0xe000 , { DFF_Prop_adjust3Value , 0x40b , 0x413 } }, //sum #2 @11 @19
4598 	{ 0x2001 , { 0x40b , 2391 , 32768 } }, //prod @11 2391 32768
4599 	{ 0xa000 , { 0x406 , 0 , 0x414 } }, //sum @6 0 @20
4600 	{ 0xe00f , { 0x41d , DFF_Prop_geoRight , 0x40b } }, //ellipse @29 width @11
4601 	{ 0xe000 , { DFF_Prop_adjust2Value , 0x41e , 0x40b } }, //sum #1 @30 @11
4602 	{ 0xe000 , { 0x419 , DFF_Prop_adjust2Value , DFF_Prop_geoBottom } }, //sum @25 #1 height
4603 	{ 0xe000 , { DFF_Prop_geoBottom , 0x41e , 0x40e } }, //sum height @30 @14
4604 	{ 0x6000 , { 0x40b , 0x40e , 0 } }, //sum @11 @14 0
4605 	{ 0xa000 , { DFF_Prop_geoBottom , 0 , 0x422 } }, //sum height 0 @34
4606 	{ 0xe000 , { 0x423 , 0x413 , 0x40b } }, //sum @35 @19 @11
4607 	{ 0xe000 , { 0x40a , 0x40f , 0x40b } }, //sum @10 @15 @11
4608 	{ 0xe000 , { 0x423 , 0x40f , 0x40b } }, //sum @35 @15 @11
4609 	{ 0xe000 , { 0x41c , 0x40e , 0x412 } }, //sum @28 @14 @18
4610 	{ 0xa000 , { DFF_Prop_geoBottom , 0 , 0x427 } }, //sum height 0 @39
4611 	{ 0xa000 , { 0x413 , 0 , 0x412 } }, //sum @19 0 @18
4612 	{ 0x2001 , { 0x429 , 2 , 3 } }, //prod @41 2 3
4613 	{ 0xa000 , { DFF_Prop_adjust2Value , 0 , 0x42a } }, //sum #1 0 @42
4614 	{ 0xa000 , { DFF_Prop_adjust3Value , 0 , 0x42a } }, //sum #2 0 @42
4615 	{ 0x2004 , { 0x42c , 20925 , 0 } }, //min @44 20925
4616 	{ 0x2001 , { DFF_Prop_geoRight , 3 , 8 } }, //prod width 3 8
4617 	{ 0x2000 , { 0x42e , 0 , 4 } }, //sum @46 0 4
4618 };
4619 
4620 static const SvxMSDffTextRectangles mso_sptEllipseRibbonTextRect[] =
4621 {//@0,@1,@22,@25
4622 	{ { 0 MSO_I, 1 MSO_I }, { 22 MSO_I, 25 MSO_I } }
4623 };
4624 
4625 static const sal_Int32 mso_sptEllipseRibbonDefault[] =
4626 {
4627 	3,5400,5400,18900
4628 };
4629 
4630 static const SvxMSDffHandle mso_sptEllipseRibbonHandle[] =
4631 {
4632 //position="#0,bottomRight" xrange="@5,@47
4633 //position="center,#1" yrange="@10,@43
4634 //position="topLeft,#2" yrange="@27,@45
4635 	{   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL| MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
4636 		0x100, 21600, 0, 0, 0x8/*5+3*/, 0x32/*47+3*/, 0x80000000, 0x7fffffff },
4637 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
4638 		10800, 0x101, 0, 0, 0x80000000, 0x7fffffff,0xd/*10+3*/, 0x2e /*43+3*/ },
4639 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
4640 		0, 0x102, 0, 0, 0x80000000, 0x7fffffff,0x1e/*27+3*/, 0x30 /*45+3*/ }
4641 };
4642 
4643 static const mso_CustomShape msosptEllipseRibbon =
4644 {
4645 	(SvxMSDffVertPair*)mso_sptEllipseRibbonVert, sizeof( mso_sptEllipseRibbonVert ) / sizeof( SvxMSDffVertPair ),
4646 	(sal_uInt16*)mso_sptEllipseRibbonSegm, sizeof( mso_sptEllipseRibbonSegm ) >> 1,
4647 	(SvxMSDffCalculationData*)mso_sptEllipseRibbonCalc, sizeof( mso_sptEllipseRibbonCalc ) / sizeof( SvxMSDffCalculationData ),
4648 	(sal_Int32*)mso_sptEllipseRibbonDefault,
4649 	(SvxMSDffTextRectangles*)mso_sptEllipseRibbonTextRect, sizeof( mso_sptEllipseRibbonTextRect ) / sizeof( SvxMSDffTextRectangles ),
4650 	21600, 21600,
4651 	0x80000000, 0x80000000,
4652 	NULL, 0,
4653 	(SvxMSDffHandle*)mso_sptEllipseRibbonHandle, sizeof( mso_sptEllipseRibbonHandle ) / sizeof( SvxMSDffHandle )
4654 };
4655 
4656 //msosptEllipseRibbon2
4657 //svg path = wr@9@34@8@35,0@24@0@23@9,0@8@11@0@22@19@22@9@34@8@35@19@23@3@24l@7@36@3@4at@9@31@8@32@3@4@18@30@9@1@8@33@18@28@17@28@9@31@8@32@17@30,0@4l@5@36xear@9@1@8@33@17@28@0@29nfl@17@30ewr@9@1@8@33@18@28@19@29nfl@18@30em@0@23nfl@0@29em@19@23nfl@19@29e
4658 static const SvxMSDffVertPair mso_sptEllipseRibbon2Vert[] =
4659 {
4660 	{ 9 MSO_I , 34 MSO_I },
4661 	{ 8 MSO_I , 35 MSO_I },
4662 	{ 0 , 24 MSO_I },
4663 	{ 0 MSO_I , 23 MSO_I },
4664 	{ 9 MSO_I , 0 },
4665 	{ 8 MSO_I , 11 MSO_I },
4666 	{ 0 MSO_I , 22 MSO_I },
4667 	{ 19 MSO_I , 22 MSO_I },
4668 	{ 9 MSO_I , 34 MSO_I },
4669 	{ 8 MSO_I , 35 MSO_I },
4670 	{ 19 MSO_I , 23 MSO_I },
4671 	{ 3 MSO_I , 24 MSO_I },
4672 	{ 7 MSO_I , 36 MSO_I },
4673 	{ 3 MSO_I , 4 MSO_I },
4674 	{ 9 MSO_I , 31 MSO_I },
4675 	{ 8 MSO_I , 32 MSO_I },
4676 	{ 3 MSO_I , 4 MSO_I },
4677 	{ 18 MSO_I , 30 MSO_I },
4678 	{ 9 MSO_I , 1 MSO_I },
4679 	{ 8 MSO_I , 33 MSO_I },
4680 	{ 18 MSO_I , 28 MSO_I },
4681 	{ 17 MSO_I , 28 MSO_I },
4682 	{ 9 MSO_I , 31 MSO_I },
4683 	{ 8 MSO_I , 32 MSO_I },
4684 	{ 17 MSO_I , 30 MSO_I },
4685 	{ 0 , 4l MSO_I },
4686 	{ 5 MSO_I , 36 MSO_I },
4687 	{ 9 MSO_I , 1 MSO_I },
4688 	{ 8 MSO_I , 33 MSO_I },
4689 	{ 17 MSO_I , 28 MSO_I },
4690 	{ 0 MSO_I , 29 MSO_I },
4691 	{ 17 MSO_I , 30 MSO_I },
4692 	{ 9 MSO_I , 1 MSO_I },
4693 	{ 8 MSO_I , 33 MSO_I },
4694 	{ 18 MSO_I , 28 MSO_I },
4695 	{ 19 MSO_I , 29 MSO_I },
4696 	{ 18 MSO_I , 30 MSO_I },
4697 	{ 0 MSO_I , 23 MSO_I },
4698 	{ 0 MSO_I , 29 MSO_I },
4699 	{ 19 MSO_I , 23 MSO_I },
4700 	{ 19 MSO_I , 29 MSO_I }
4701 };
4702 static const sal_uInt16 mso_sptEllipseRibbon2Segm[] =
4703 {
4704 	0xa50c/*wr*/,0x0002/*l*/,0xa30c/*at*/,0x0001/*l*/,
4705 	0x6001/*x*/, 0x8000/*e*/,0xa304/*ar*/,0xaa00/*nf*/,
4706 	0x0001/*l*/, 0x8000/*e*/,0xa504/*wr*/,0xaa00/*nf*/,
4707 	0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4708 	0x0001/*l*/, 0x8000/*e*/,0x4000/*m*/,0xaa00/*nf*/,
4709 	0x0001/*l*/, 0x8000/*e*/
4710 };
4711 
4712 static const SvxMSDffCalculationData mso_sptEllipseRibbon2Calc[] =
4713 {
4714 	{ 0x2000 , { DFF_Prop_adjustValue , 0 , 0 } }, //val #0
4715 	{ 0x2000 , { DFF_Prop_adjust2Value , 0 , 0 } }, //val #1
4716 	{ 0x2000 , { DFF_Prop_adjust3Value , 0 , 0 } }, //val #2
4717 	{ 0x2000 , { DFF_Prop_geoRight , 0 , 0 } }, //val width
4718 	{ 0x2000 , { DFF_Prop_geoBottom , 0 , 0 } }, //val height
4719 	{ 0x2001 , { DFF_Prop_geoRight , 1 , 8 } }, //prod width 1 8
4720 	{ 0x2001 , { DFF_Prop_geoRight , 1 , 2 } }, //prod width 1 2
4721 	{ 0x2001 , { DFF_Prop_geoRight , 7 , 8 } }, //prod width 7 8
4722 	{ 0x2001 , { DFF_Prop_geoRight , 3 , 2 } }, //prod width 3 2
4723 	{ 0x8000 , { 0 , 0 , 0x406 } }, //sum 0 0 @6
4724 	{ 0x2001 , { DFF_Prop_adjust3Value , 30573 , 4096 } }, //prod #2 30573 4096
4725 	{ 0x2001 , { 0x40a , 2 , 1 } }, //prod @10 2 1
4726 	{ 0xe000 , { 0x40a , DFF_Prop_geoBottom , DFF_Prop_adjust3Value } }, //sum @10 height #2
4727 	{ 0x6000 , { 0x40a , DFF_Prop_adjust2Value , 0 } }, //sum @10 #1 0
4728 	{ 0x2001 , { DFF_Prop_adjust2Value , 1 , 2 } }, //prod #1 1 2
4729 	{ 0x6000 , { 0x40a , 0x40e , 0 } }, //sum @10 @14 0
4730 	{ 0xa000 , { 0x40c , 0 , DFF_Prop_adjust2Value } }, //sum @12 0 #1
4731 	{ 0x6000 , { DFF_Prop_adjustValue , 0x405 , 0 } }, //sum #0 @5 0
4732 	{ 0xa000 , { DFF_Prop_geoRight , 0 , 0x411 } }, //sum width 0 @17
4733 	{ 0xa000 , { DFF_Prop_geoRight , 0 , DFF_Prop_adjustValue } }, //sum width 0 #0
4734 	{ 0xa000 , { 0x406 , 0 , DFF_Prop_adjustValue } }, //sum @6 0 #0
4735 	{ 0xe00f , { 0x414 , DFF_Prop_geoRight , 0x40a } }, //ellipse @20 width @10
4736 	{ 0xa000 , { 0x40a , 0 , 0x415 } }, //sum @10 0 @21
4737 	{ 0xe000 , { 0x416 , 0x410 , 0x40a } }, //sum @22 @16 @10
4738 	{ 0xe000 , { DFF_Prop_adjust3Value , 0x410 , 0x40a } }, //sum #2 @16 @10
4739 	{ 0x2001 , { 0x40a , 2391 , 32768 } }, //prod @10 2391 32768
4740 	{ 0xa000 , { 0x406 , 0 , 0x411 } }, //sum @6 0 @17
4741 	{ 0xe00f , { 0x41a , DFF_Prop_geoRight , 0x40a } }, //ellipse @26 width @10
4742 	{ 0xe000 , { 0x40a , DFF_Prop_adjust2Value , 0x41b } }, //sum @10 #1 @27
4743 	{ 0x6000 , { 0x416 , DFF_Prop_adjust2Value , 0 } }, //sum @22 #1 0
4744 	{ 0xa000 , { 0x40c , 0 , 0x41b } }, //sum @12 0 @27
4745 	{ 0xa000 , { DFF_Prop_geoBottom , 0 , DFF_Prop_adjust3Value } }, //sum height 0 #2
4746 	{ 0x6000 , { 0x40a , 0x40c , 0 } }, //sum @10 @12 0
4747 	{ 0xe000 , { 0x420 , 0x40a , 0x410 } }, //sum @32 @10 @16
4748 	{ 0xe000 , { 0x41f , 0x40a , 0x40d } }, //sum @31 @10 @13
4749 	{ 0xe000 , { 0x420 , 0x40a , 0x40d } }, //sum @32 @10 @13
4750 	{ 0xe000 , { 0x419 , 0x40c , 0x40f } }, //sum @25 @12 @15
4751 	{ 0xa000 , { 0x410 , 0 , 0x40f } }, //sum @16 0 @15
4752 	{ 0x2001 , { 0x425 , 2 , 3 } }, //prod @37 2 3
4753 	{ 0x6000 , { 0x401 , 0x426 , 0 } }, //sum @1 @38 0
4754 	{ 0x6000 , { DFF_Prop_adjust3Value , 0x426 , 0 } }, //sum #2 @38 0
4755 	{ 0x2005 , { 0x428 , 675 , 0 } }, //max @40 675
4756 	{ 0x2001 , { DFF_Prop_geoRight , 3 , 8 } }, //prod width 3 8
4757 	{ 0x2000 , { 0x42a , 0 , 4 } } //sum @42 0 4
4758 };
4759 
4760 static const SvxMSDffTextRectangles mso_sptEllipseRibbon2TextRect[] =
4761 {//@0,@22,@19,@1
4762 	{ { 0 MSO_I, 22 MSO_I }, { 19 MSO_I, 1 MSO_I } }
4763 };
4764 
4765 static const sal_Int32 mso_sptEllipseRibbon2Default[] =
4766 {
4767 	3,5400,16200,2700
4768 };
4769 
4770 static const SvxMSDffHandle mso_sptEllipseRibbon2Handle[] =
4771 {
4772 //position="#0,topLeft" xrange="@5,@43
4773 //position="center,#1" yrange="@39,@31
4774 //position="topLeft,#2" yrange="@41,@24
4775 	{   MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL| MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL,
4776 		0x100, 0, 0, 0, 0x8/*5+3*/, 0x2e/*43+3*/, 0x80000000, 0x7fffffff },
4777 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
4778 		10800, 0x101, 0, 0, 0x80000000, 0x7fffffff,0x2a/*39+3*/, 0x22 /*31+3*/ },
4779 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL,
4780 		0, 0x102, 0, 0, 0x80000000, 0x7fffffff,0x2c/*41+3*/, 0x1b /*24+3*/ }
4781 };
4782 
4783 static const mso_CustomShape msosptEllipseRibbon2 =
4784 {
4785 	(SvxMSDffVertPair*)mso_sptEllipseRibbon2Vert, sizeof( mso_sptEllipseRibbon2Vert ) / sizeof( SvxMSDffVertPair ),
4786 	(sal_uInt16*)mso_sptEllipseRibbon2Segm, sizeof( mso_sptEllipseRibbon2Segm ) >> 1,
4787 	(SvxMSDffCalculationData*)mso_sptEllipseRibbon2Calc, sizeof( mso_sptEllipseRibbon2Calc ) / sizeof( SvxMSDffCalculationData ),
4788 	(sal_Int32*)mso_sptEllipseRibbon2Default,
4789 	(SvxMSDffTextRectangles*)mso_sptEllipseRibbon2TextRect, sizeof( mso_sptEllipseRibbon2TextRect ) / sizeof( SvxMSDffTextRectangles ),
4790 	21600, 21600,
4791 	0x80000000, 0x80000000,
4792 	NULL, 0,
4793 	(SvxMSDffHandle*)mso_sptEllipseRibbon2Handle, sizeof( mso_sptEllipseRibbon2Handle ) / sizeof( SvxMSDffHandle )
4794 };
4795 // End
4796 static const SvxMSDffVertPair mso_sptVerticalScrollVert[] =	// adjustment1 : 0 - 5400
4797 {
4798 	{ 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I }, { 0 MSO_I, 12 MSO_I },
4799 	{ 0 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 }, { 2 MSO_I, 0 }, { 21600, 1 MSO_I },
4800 	{ 2 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 11 MSO_I }, { 5 MSO_I, 21600 },
4801 
4802 	{ 6 MSO_I, 1 MSO_I }, { 4 MSO_I, 0 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 4 MSO_I, 1 MSO_I },
4803 
4804 	{ 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I }, { 1 MSO_I, 12 MSO_I },
4805 	{ 9 MSO_I, 10 MSO_I }, { 1 MSO_I, 11 MSO_I },
4806 
4807 	{ 4 MSO_I, 0 }, { 6 MSO_I, 1 MSO_I },
4808 
4809 	{ 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
4810 
4811 	{ 4 MSO_I, 0 MSO_I },
4812 	{ 2 MSO_I, 0 MSO_I }
4813 };
4814 static const sal_uInt16 mso_sptVerticalScrollSegm[] =
4815 {
4816 	0x4000, 0xa702,	0x0002,	0xa801, 0x0001, 0xa702, 0x0002, 0xa801, 0x6001, 0x8000,
4817 	0x4000, 0xa801, 0xa702, 0x6000, 0x8000,
4818 	0x4000, 0xa803, 0xa702, 0x6001, 0x8000,
4819 	0x4000, 0xa701, 0x8000,
4820 	0x4000, 0x0001, 0x8000,
4821 	0x4000, 0x0001, 0x8000
4822 };
4823 static const SvxMSDffCalculationData mso_sptScrollCalc[] =
4824 {
4825 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
4826 	{ 0x2001, { 0x400, 1, 2 } },
4827 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x401 } },
4828 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x400 } },
4829 	{ 0x6000, { 0x400, 0x401, 0 } },
4830 	{ 0xa000, { DFF_Prop_geoRight, 0, 0x404 } },
4831 	{ 0x2001, { 0x400, 2, 1 } },
4832 	{ 0x2001, { 0x401, 1, 2 } },
4833 	{ 0x6000, { 0x400, 0x407, 0 } },
4834 	{ 0x6000, { 0x401, 0x407, 0 } },
4835 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x409 } },
4836 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x401 } },
4837 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x400 } },
4838 	{ 0xa000, { DFF_Prop_geoBottom, 0, 0x404 } }
4839 };
4840 static const SvxMSDffTextRectangles mso_sptScrollTextRect[] =
4841 {
4842 	{ { 0 MSO_I, 0 MSO_I }, { 3 MSO_I, 12 MSO_I } }
4843 };
4844 static const SvxMSDffHandle mso_sptVerticalScrollHandle[] =
4845 {
4846 	{	MSDFF_HANDLE_FLAGS_RANGE,
4847 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 5400 }
4848 };
4849 static const mso_CustomShape msoVerticalScroll =
4850 {
4851 	(SvxMSDffVertPair*)mso_sptVerticalScrollVert, sizeof( mso_sptVerticalScrollVert ) / sizeof( SvxMSDffVertPair ),
4852 	(sal_uInt16*)mso_sptVerticalScrollSegm, sizeof( mso_sptVerticalScrollSegm ) >> 1,
4853 	(SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4854 	(sal_Int32*)mso_sptDefault2700,
4855 	(SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4856 	21600, 21600,
4857 	11000, 10800,
4858 	NULL, 0,
4859 	(SvxMSDffHandle*)mso_sptVerticalScrollHandle, sizeof( mso_sptVerticalScrollHandle ) / sizeof( SvxMSDffHandle )
4860 };
4861 static const SvxMSDffVertPair mso_sptHorizontalScrollVert[] =	// adjustment1 : 0 - 5400
4862 {
4863 	{ 0, 4 MSO_I }, { 1 MSO_I, 0 MSO_I }, { 3 MSO_I, 0 MSO_I }, { 3 MSO_I, 1 MSO_I },
4864 	{ 2 MSO_I, 0 }, { 21600, 1 MSO_I }, { 21600, 13 MSO_I }, { 2 MSO_I, 12 MSO_I },
4865 	{ 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I }, { 1 MSO_I, 21600 }, { 0, 11 MSO_I },
4866 
4867 	{ 1 MSO_I, 4 MSO_I }, { 9 MSO_I, 8 MSO_I }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 6 MSO_I },
4868 
4869 	{ 2 MSO_I, 1 MSO_I }, { 3 MSO_I, 9 MSO_I }, { 3 MSO_I, 1 MSO_I }, { 2 MSO_I, 0 },
4870 	{ 21600, 1 MSO_I }, { 2 MSO_I, 0 MSO_I },
4871 
4872 	{ 1 MSO_I, 6 MSO_I },
4873 	{ 0, 4 MSO_I },
4874 
4875 	{ 2 MSO_I, 0 MSO_I },
4876 	{ 3 MSO_I, 0 MSO_I },
4877 
4878 	{ 0 MSO_I, 4 MSO_I },
4879 	{ 0 MSO_I, 11 MSO_I }
4880 };
4881 static const sal_uInt16 mso_sptHorizontalScrollSegm[] =
4882 {
4883 	0x4000, 0xa801, 0x0002, 0xa802, 0x0001, 0xa801, 0x0002, 0xa802, 0x6001, 0x8000,
4884 	0x4000, 0xa803, 0x6000, 0x8000,
4885 	0x4000, 0xa803, 0xa702, 0x6000, 0x8000,
4886 	0x4000, 0xa701, 0x8000,
4887 	0x4000, 0x0001, 0x8000,
4888 	0x4000, 0x0001, 0x8000
4889 };
4890 static const SvxMSDffHandle mso_sptHorizontalScrollHandle[] =
4891 {
4892 	{	MSDFF_HANDLE_FLAGS_RANGE,
4893 		0x100, 0, 10800, 10800, 0, 5400, 0x80000000, 0x7fffffff }
4894 };
4895 static const mso_CustomShape msoHorizontalScroll =
4896 {
4897 	(SvxMSDffVertPair*)mso_sptHorizontalScrollVert, sizeof( mso_sptHorizontalScrollVert ) / sizeof( SvxMSDffVertPair ),
4898 	(sal_uInt16*)mso_sptHorizontalScrollSegm, sizeof( mso_sptHorizontalScrollSegm ) >> 1,
4899 	(SvxMSDffCalculationData*)mso_sptScrollCalc, sizeof( mso_sptScrollCalc ) / sizeof( SvxMSDffCalculationData ),
4900 	(sal_Int32*)mso_sptDefault2700,
4901 	(SvxMSDffTextRectangles*)mso_sptScrollTextRect, sizeof( mso_sptScrollTextRect ) / sizeof( SvxMSDffTextRectangles ),
4902 	21600, 21600,
4903 	10800, 11000,
4904 	NULL, 0,
4905 	(SvxMSDffHandle*)mso_sptHorizontalScrollHandle, sizeof( mso_sptHorizontalScrollHandle ) / sizeof( SvxMSDffHandle )
4906 };
4907 
4908 static const SvxMSDffVertPair mso_sptFlowChartProcessVert[] =
4909 {
4910 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 0 }
4911 };
4912 static const mso_CustomShape msoFlowChartProcess =
4913 {
4914 	(SvxMSDffVertPair*)mso_sptFlowChartProcessVert, sizeof( mso_sptFlowChartProcessVert ) / sizeof( SvxMSDffVertPair ),
4915 	NULL, 0,
4916 	NULL, 0,
4917 	NULL,
4918 	NULL, 0,
4919 	21600, 21600,
4920 	0x80000000, 0x80000000,
4921 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4922 	NULL, 0		// handles
4923 };
4924 
4925 static const SvxMSDffVertPair mso_sptFlowChartAlternateProcessVert[] =
4926 {
4927 	{ 0, 2 MSO_I }, { 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 21600, 2 MSO_I },
4928 	{ 21600, 3 MSO_I }, { 1 MSO_I, 21600 }, { 0 MSO_I, 21600 }, { 0, 3 MSO_I }
4929 };
4930 static const sal_uInt16 mso_sptFlowChartAlternateProcessSegm[] =
4931 {
4932 	0x4000, 0xa801, 0x0001, 0xa701, 0x0001, 0xa801, 0x0001, 0xa701, 0x6000, 0x8000
4933 };
4934 static const SvxMSDffCalculationData mso_sptFlowChartAlternateProcessCalc[] =
4935 {
4936 	{ 0x2000, { DFF_Prop_geoLeft, 2540, 0 } },
4937 	{ 0x2000, { DFF_Prop_geoRight, 0, 2540 } },
4938 	{ 0x2000, { DFF_Prop_geoTop, 2540, 0 } },
4939 	{ 0x2000, { DFF_Prop_geoBottom, 0, 2540 } },
4940 	{ 0x2000, { DFF_Prop_geoLeft, 800, 0 } },
4941 	{ 0x2000, { DFF_Prop_geoRight, 0, 800 } },
4942 	{ 0x2000, { DFF_Prop_geoTop, 800, 0 } },
4943 	{ 0x2000, { DFF_Prop_geoBottom,0, 800 } }
4944 };
4945 static const SvxMSDffTextRectangles mso_sptFlowChartAlternateProcessTextRect[] =
4946 {
4947 	{ { 4 MSO_I, 6 MSO_I }, { 5 MSO_I, 7 MSO_I } }
4948 };
4949 static const mso_CustomShape msoFlowChartAlternateProcess =
4950 {
4951 	(SvxMSDffVertPair*)mso_sptFlowChartAlternateProcessVert, sizeof( mso_sptFlowChartAlternateProcessVert ) / sizeof( SvxMSDffVertPair ),
4952 	(sal_uInt16*)mso_sptFlowChartAlternateProcessSegm, sizeof( mso_sptFlowChartAlternateProcessSegm ) >> 1,
4953 	(SvxMSDffCalculationData*)mso_sptFlowChartAlternateProcessCalc, sizeof( mso_sptFlowChartAlternateProcessCalc ) / sizeof( SvxMSDffCalculationData ),
4954 	NULL,
4955 	(SvxMSDffTextRectangles*)mso_sptFlowChartAlternateProcessTextRect, sizeof( mso_sptFlowChartAlternateProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
4956 	21600, 21600,
4957 	0x80000000, 0x80000000,
4958 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4959 	NULL, 0		// handles
4960 };
4961 
4962 static const SvxMSDffVertPair mso_sptFlowChartDecisionVert[] =
4963 {
4964 	{ 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 }, { 0, 10800 }
4965 };
4966 static const SvxMSDffTextRectangles mso_sptFlowChartDecisionTextRect[] =
4967 {
4968 	{ { 5400, 5400 }, { 16200, 16200 } }
4969 };
4970 static const mso_CustomShape msoFlowChartDecision =
4971 {
4972 	(SvxMSDffVertPair*)mso_sptFlowChartDecisionVert, sizeof( mso_sptFlowChartDecisionVert ) / sizeof( SvxMSDffVertPair ),
4973 	NULL, 0,
4974 	NULL, 0,
4975 	NULL,
4976 	(SvxMSDffTextRectangles*)mso_sptFlowChartDecisionTextRect, sizeof( mso_sptFlowChartDecisionTextRect ) / sizeof( SvxMSDffTextRectangles ),
4977 	21600, 21600,
4978 	0x80000000, 0x80000000,
4979 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
4980 	NULL, 0		// handles
4981 };
4982 
4983 static const SvxMSDffVertPair mso_sptFlowChartInputOutputVert[] =
4984 {
4985 	{ 4230, 0 }, { 21600, 0 }, { 17370, 21600 }, { 0, 21600 }, { 4230, 0 }
4986 };
4987 static const SvxMSDffTextRectangles mso_sptFlowChartInputOutputTextRect[] =
4988 {
4989 	{ { 4230, 0 }, { 17370, 21600 } }
4990 };
4991 static const SvxMSDffVertPair mso_sptFlowChartInputOutputGluePoints[] =
4992 {
4993 	{ 12960, 0 }, { 10800, 0 }, { 2160, 10800 }, { 8600, 21600 }, { 10800, 21600 }, { 19400, 10800 }
4994 };
4995 static const mso_CustomShape msoFlowChartInputOutput =
4996 {
4997 	(SvxMSDffVertPair*)mso_sptFlowChartInputOutputVert, sizeof( mso_sptFlowChartInputOutputVert ) / sizeof( SvxMSDffVertPair ),
4998 	NULL, 0,
4999 	NULL, 0,
5000 	NULL,
5001 	(SvxMSDffTextRectangles*)mso_sptFlowChartInputOutputTextRect, sizeof( mso_sptFlowChartInputOutputTextRect ) / sizeof( SvxMSDffTextRectangles ),
5002 	21600, 21600,
5003 	0x80000000, 0x80000000,
5004 	(SvxMSDffVertPair*)mso_sptFlowChartInputOutputGluePoints, sizeof( mso_sptFlowChartInputOutputGluePoints ) / sizeof( SvxMSDffVertPair ),
5005 	NULL, 0		// handles
5006 };
5007 
5008 static const SvxMSDffVertPair mso_sptFlowChartPredefinedProcessVert[] =
5009 {
5010 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5011 
5012 	{ 2540, 0 }, { 2540, 21600 },
5013 
5014 	{ 21600 - 2540, 0 }, { 21600 - 2540, 21600 }
5015 };
5016 static const sal_uInt16 mso_sptFlowChartPredefinedProcessSegm[] =
5017 {
5018 	0x4000, 0x0003, 0x6000, 0x8000,
5019 	0x4000, 0x0001, 0x8000,
5020 	0x4000, 0x0001, 0x8000
5021 };
5022 static const SvxMSDffTextRectangles mso_sptFlowChartPredefinedProcessTextRect[] =
5023 {
5024 	{ { 2540, 0 }, { 21600 - 2540, 21600 } }
5025 };
5026 static const mso_CustomShape msoFlowChartPredefinedProcess =
5027 {
5028 	(SvxMSDffVertPair*)mso_sptFlowChartPredefinedProcessVert, sizeof( mso_sptFlowChartPredefinedProcessVert ) / sizeof( SvxMSDffVertPair ),
5029 	(sal_uInt16*)mso_sptFlowChartPredefinedProcessSegm, sizeof( mso_sptFlowChartPredefinedProcessSegm ) >> 1,
5030 	NULL, 0,
5031 	NULL,
5032 	(SvxMSDffTextRectangles*)mso_sptFlowChartPredefinedProcessTextRect, sizeof( mso_sptFlowChartPredefinedProcessTextRect ) / sizeof( SvxMSDffTextRectangles ),
5033 	21600, 21600,
5034 	0x80000000, 0x80000000,
5035 	NULL, 0,
5036 	NULL, 0		// handles
5037 };
5038 
5039 static const SvxMSDffVertPair mso_sptFlowChartInternalStorageVert[] =
5040 {
5041 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5042 
5043 	{ 4230, 0 }, { 4230, 21600 },
5044 
5045 	{ 0, 4230 }, { 21600, 4230 }
5046 };
5047 static const sal_uInt16 mso_sptFlowChartInternalStorageSegm[] =
5048 {
5049 	0x4000, 0x0003, 0x6000, 0x8000,
5050 	0x4000, 0x0001, 0x8000,
5051 	0x4000, 0x0001, 0x8000
5052 };
5053 static const SvxMSDffTextRectangles mso_sptFlowChartInternalStorageTextRect[] =
5054 {
5055 	{ { 4230, 4230 }, { 21600, 21600 } }
5056 };
5057 static const mso_CustomShape msoFlowChartInternalStorage =
5058 {
5059 	(SvxMSDffVertPair*)mso_sptFlowChartInternalStorageVert, sizeof( mso_sptFlowChartInternalStorageVert ) / sizeof( SvxMSDffVertPair ),
5060 	(sal_uInt16*)mso_sptFlowChartInternalStorageSegm, sizeof( mso_sptFlowChartInternalStorageSegm ) >> 1,
5061 	NULL, 0,
5062 	NULL,
5063 	(SvxMSDffTextRectangles*)mso_sptFlowChartInternalStorageTextRect, sizeof( mso_sptFlowChartInternalStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
5064 	21600, 21600,
5065 	0x80000000, 0x80000000,
5066 	NULL, 0,
5067 	NULL, 0		// handles
5068 };
5069 
5070 static const SvxMSDffVertPair mso_sptFlowChartDocumentVert[] =
5071 {
5072 	{ 0, 0 }, { 21600, 0 }, { 21600, 17360 },
5073 	{ 13050, 17220 }, {	13340, 20770 }, { 5620, 21600 },	// ccp
5074 	{ 2860, 21100 }, { 1850, 20700 }, { 0,	20120 }			// ccp
5075 };
5076 static const sal_uInt16 mso_sptFlowChartDocumentSegm[] =
5077 {
5078 	0x4000, 0x0002, 0x2002, 0x6000, 0x8000
5079 };
5080 static const SvxMSDffTextRectangles mso_sptFlowChartDocumentTextRect[] =
5081 {
5082 	{ { 0, 0 }, { 21600, 17360 } }
5083 };
5084 static const SvxMSDffVertPair mso_sptFlowChartDocumentGluePoints[] =
5085 {
5086 	{ 10800, 0 }, { 0, 10800 }, { 10800, 20320 }, { 21600, 10800 }
5087 };
5088 static const mso_CustomShape msoFlowChartDocument =
5089 {
5090 	(SvxMSDffVertPair*)mso_sptFlowChartDocumentVert, sizeof( mso_sptFlowChartDocumentVert ) / sizeof( SvxMSDffVertPair ),
5091 	(sal_uInt16*)mso_sptFlowChartDocumentSegm, sizeof( mso_sptFlowChartDocumentSegm ) >> 1,
5092 	NULL, 0,
5093 	NULL,
5094 	(SvxMSDffTextRectangles*)mso_sptFlowChartDocumentTextRect, sizeof( mso_sptFlowChartDocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
5095 	21600, 21600,
5096 	0x80000000, 0x80000000,
5097 	(SvxMSDffVertPair*)mso_sptFlowChartDocumentGluePoints, sizeof( mso_sptFlowChartDocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
5098 	NULL, 0		// handles
5099 };
5100 
5101 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentVert[] =
5102 {
5103 	{ 0, 3600 }, { 1500, 3600 }, { 1500, 1800 }, { 3000, 1800 },
5104 	{ 3000, 0 }, { 21600, 0 }, { 21600, 14409 }, { 21600 - 1500, 14409 },
5105 	{ 21600 - 1500, 14409 + 1800 }, { 21600 - 3000, 14409 + 1800 }, { 21600 - 3000, 14409 + 3600 },
5106 	{ 11610, 14293 + 3600 }, { 11472, 17239 + 3600 }, { 4833, 17928 + 3600 },						// ccp
5107 	{ 2450, 17513 + 3600 }, { 1591, 17181 + 3600 }, { 0, 16700 + 3600 },							// ccp
5108 
5109 	{ 1500, 3600 }, { 21600 - 3000, 3600 }, { 21600 - 3000, 14409 + 1800 },
5110 
5111 	{ 3000, 1800 }, { 21600 - 1500, 1800 }, { 21600 - 1500, 14409 }
5112 };
5113 static const sal_uInt16 mso_sptFlowChartMultidocumentSegm[] =
5114 {
5115 	0x4000, 0x000a, 0x2002, 0x6000, 0x8000,
5116 	0x4000, 0xaa00, 0x0002, 0x8000,			// NO FILL
5117 	0x4000, 0xaa00, 0x0002, 0x8000			// NO FILL
5118 };
5119 static const SvxMSDffTextRectangles mso_sptFlowChartMultidocumentTextRect[] =
5120 {
5121 	{ { 0, 3600 }, { 21600 - 3000, 14409 + 3600 } }
5122 };
5123 static const SvxMSDffVertPair mso_sptFlowChartMultidocumentGluePoints[] =
5124 {
5125 	{ 10800, 0 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
5126 };
5127 static const mso_CustomShape msoFlowChartMultidocument =
5128 {
5129 	(SvxMSDffVertPair*)mso_sptFlowChartMultidocumentVert, sizeof( mso_sptFlowChartMultidocumentVert ) / sizeof( SvxMSDffVertPair ),
5130 	(sal_uInt16*)mso_sptFlowChartMultidocumentSegm, sizeof( mso_sptFlowChartMultidocumentSegm ) >> 1,
5131 	NULL, 0,
5132 	NULL,
5133 	(SvxMSDffTextRectangles*)mso_sptFlowChartMultidocumentTextRect, sizeof( mso_sptFlowChartMultidocumentTextRect ) / sizeof( SvxMSDffTextRectangles ),
5134 	21600, 21600,
5135 	0x80000000, 0x80000000,
5136 	(SvxMSDffVertPair*)mso_sptFlowChartMultidocumentGluePoints, sizeof( mso_sptFlowChartMultidocumentGluePoints ) / sizeof( SvxMSDffVertPair ),
5137 	NULL, 0		// handles
5138 };
5139 
5140 static const SvxMSDffVertPair mso_sptFlowChartTerminatorVert[] =
5141 {
5142 	{ 3470, 21600 }, { 0, 10800 }, { 3470, 0 }, { 18130, 0 },
5143 	{ 21600, 10800 }, { 18130, 21600 }
5144 };
5145 static const sal_uInt16 mso_sptFlowChartTerminatorSegm[] =
5146 {
5147 	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5148 };
5149 static const SvxMSDffTextRectangles mso_sptFlowChartTerminatorTextRect[] =
5150 {
5151 	{ { 1060, 3180 }, { 20540, 18420 } }
5152 };
5153 static const mso_CustomShape msoFlowChartTerminator =
5154 {
5155 	(SvxMSDffVertPair*)mso_sptFlowChartTerminatorVert, sizeof( mso_sptFlowChartTerminatorVert ) / sizeof( SvxMSDffVertPair ),
5156 	(sal_uInt16*)mso_sptFlowChartTerminatorSegm, sizeof( mso_sptFlowChartTerminatorSegm ) >> 1,
5157 	NULL, 0,
5158 	NULL,
5159 	(SvxMSDffTextRectangles*)mso_sptFlowChartTerminatorTextRect, sizeof( mso_sptFlowChartTerminatorTextRect ) / sizeof( SvxMSDffTextRectangles ),
5160 	21600, 21600,
5161 	0x80000000, 0x80000000,
5162 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5163 	NULL, 0		// handles
5164 };
5165 
5166 static const SvxMSDffVertPair mso_sptFlowChartPreparationVert[] =
5167 {
5168 	{ 4350, 0 }, { 17250, 0 }, { 21600, 10800 }, { 17250, 21600 },
5169 	{ 4350, 21600 }, { 0, 10800 }, { 4350, 0 }
5170 };
5171 static const SvxMSDffTextRectangles mso_sptFlowChartPreparationTextRect[] =
5172 {
5173 	{ { 4350, 0 }, { 17250, 21600 } }
5174 };
5175 static const mso_CustomShape msoFlowChartPreparation =
5176 {
5177 	(SvxMSDffVertPair*)mso_sptFlowChartPreparationVert, sizeof( mso_sptFlowChartPreparationVert ) / sizeof( SvxMSDffVertPair ),
5178 	NULL, 0,
5179 	NULL, 0,
5180 	NULL,
5181 	(SvxMSDffTextRectangles*)mso_sptFlowChartPreparationTextRect, sizeof( mso_sptFlowChartPreparationTextRect ) / sizeof( SvxMSDffTextRectangles ),
5182 	21600, 21600,
5183 	0x80000000, 0x80000000,
5184 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5185 	NULL, 0		// handles
5186 };
5187 
5188 static const SvxMSDffVertPair mso_sptFlowChartManualInputVert[] =
5189 {
5190 	{ 0, 4300 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0, 4300 }
5191 };
5192 static const SvxMSDffTextRectangles mso_sptFlowChartManualInputTextRect[] =
5193 {
5194 	{ { 0, 4300 }, { 21600, 21600 } }
5195 };
5196 static const SvxMSDffVertPair mso_sptFlowChartManualInputGluePoints[] =
5197 {
5198 	{ 10800, 2150 }, { 0, 10800 }, { 10800, 19890 }, { 21600, 10800 }
5199 };
5200 static const mso_CustomShape msoFlowChartManualInput =
5201 {
5202 	(SvxMSDffVertPair*)mso_sptFlowChartManualInputVert, sizeof( mso_sptFlowChartManualInputVert ) / sizeof( SvxMSDffVertPair ),
5203 	NULL, 0,
5204 	NULL, 0,
5205 	NULL,
5206 	(SvxMSDffTextRectangles*)mso_sptFlowChartManualInputTextRect, sizeof( mso_sptFlowChartManualInputTextRect ) / sizeof( SvxMSDffTextRectangles ),
5207 	21600, 21600,
5208 	0x80000000, 0x80000000,
5209 	(SvxMSDffVertPair*)mso_sptFlowChartManualInputGluePoints, sizeof( mso_sptFlowChartManualInputGluePoints ) / sizeof( SvxMSDffVertPair ),
5210 	NULL, 0		// handles
5211 };
5212 
5213 static const SvxMSDffVertPair mso_sptFlowChartManualOperationVert[] =
5214 {
5215 	{ 0, 0 }, { 21600, 0 }, { 17250, 21600 }, { 4350, 21600 }, { 0, 0 }
5216 };
5217 static const SvxMSDffTextRectangles mso_sptFlowChartManualOperationTextRect[] =
5218 {
5219 	{ { 4350, 0 }, { 17250, 21600 } }
5220 };
5221 static const SvxMSDffVertPair mso_sptFlowChartManualOperationGluePoints[] =
5222 {
5223 	{ 10800, 0 }, { 2160, 10800 }, { 10800, 21600 }, { 19440, 10800 }
5224 };
5225 static const mso_CustomShape msoFlowChartManualOperation =
5226 {
5227 	(SvxMSDffVertPair*)mso_sptFlowChartManualOperationVert, sizeof( mso_sptFlowChartManualOperationVert ) / sizeof( SvxMSDffVertPair ),
5228 	NULL, 0,
5229 	NULL, 0,
5230 	NULL,
5231 	(SvxMSDffTextRectangles*)mso_sptFlowChartManualOperationTextRect, sizeof( mso_sptFlowChartManualOperationTextRect ) / sizeof( SvxMSDffTextRectangles ),
5232 	21600, 21600,
5233 	0x80000000, 0x80000000,
5234 	(SvxMSDffVertPair*)mso_sptFlowChartManualOperationGluePoints, sizeof( mso_sptFlowChartManualOperationGluePoints ) / sizeof( SvxMSDffVertPair ),
5235 	NULL, 0		// handles
5236 };
5237 
5238 static const SvxMSDffVertPair mso_sptFlowChartConnectorVert[] =
5239 {
5240 	{ 10800, 10800 }, { 10800, 10800 },  { 0, 360 }
5241 };
5242 static const sal_uInt16 mso_sptFlowChartConnectorSegm[] =
5243 {
5244 	0xa203, 0x6000, 0x8000
5245 };
5246 static const SvxMSDffTextRectangles mso_sptFlowChartConnectorTextRect[] =
5247 {
5248 	{ { 3180, 3180 }, { 18420, 18420 } }
5249 };
5250 static const mso_CustomShape msoFlowChartConnector =
5251 {
5252 	(SvxMSDffVertPair*)mso_sptFlowChartConnectorVert, sizeof( mso_sptFlowChartConnectorVert ) / sizeof( SvxMSDffVertPair ),
5253 	(sal_uInt16*)mso_sptFlowChartConnectorSegm, sizeof( mso_sptFlowChartConnectorSegm ) >> 1,
5254 	NULL, 0,
5255 	NULL,
5256 	(SvxMSDffTextRectangles*)mso_sptFlowChartConnectorTextRect, sizeof( mso_sptFlowChartConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
5257 	21600, 21600,
5258 	0x80000000, 0x80000000,
5259 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5260 	NULL, 0		// handles
5261 };
5262 
5263 static const SvxMSDffVertPair mso_sptFlowChartOffpageConnectorVert[] =
5264 {
5265 	{ 0, 0 }, { 21600, 0 }, { 21600, 17150 }, { 10800, 21600 },
5266 	{ 0, 17150 }, { 0, 0 }
5267 };
5268 static const SvxMSDffTextRectangles mso_sptFlowChartOffpageConnectorTextRect[] =
5269 {
5270 	{ { 0, 0 }, { 21600, 17150 } }
5271 };
5272 static const mso_CustomShape msoFlowChartOffpageConnector =
5273 {
5274 	(SvxMSDffVertPair*)mso_sptFlowChartOffpageConnectorVert, sizeof( mso_sptFlowChartOffpageConnectorVert ) / sizeof( SvxMSDffVertPair ),
5275 	NULL, 0,
5276 	NULL, 0,
5277 	NULL,
5278 	(SvxMSDffTextRectangles*)mso_sptFlowChartOffpageConnectorTextRect, sizeof( mso_sptFlowChartOffpageConnectorTextRect ) / sizeof( SvxMSDffTextRectangles ),
5279 	21600, 21600,
5280 	0x80000000, 0x80000000,
5281 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5282 	NULL, 0		// handles
5283 };
5284 
5285 static const SvxMSDffVertPair mso_sptFlowChartPunchedCardVert[] =
5286 {
5287 	{ 4300, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 },
5288 	{ 0, 4300 }, { 4300, 0 }
5289 };
5290 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedCardTextRect[] =
5291 {
5292 	{ { 0, 4300 }, { 21600, 21600 } }
5293 };
5294 static const mso_CustomShape msoFlowChartPunchedCard =
5295 {
5296 	(SvxMSDffVertPair*)mso_sptFlowChartPunchedCardVert, sizeof( mso_sptFlowChartPunchedCardVert ) / sizeof( SvxMSDffVertPair ),
5297 	NULL, 0,
5298 	NULL, 0,
5299 	NULL,
5300 	(SvxMSDffTextRectangles*)mso_sptFlowChartPunchedCardTextRect, sizeof( mso_sptFlowChartPunchedCardTextRect ) / sizeof( SvxMSDffTextRectangles ),
5301 	21600, 21600,
5302 	0x80000000, 0x80000000,
5303 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5304 	NULL, 0		// handles
5305 };
5306 
5307 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeVert[] =
5308 {
5309 	{ 0, 2230 },											// p
5310 	{ 820, 3990 }, { 3410, 3980 }, { 5370, 4360 },			// ccp
5311 	{ 7430, 4030 },	{ 10110, 3890 }, { 10690, 2270 },		// ccp
5312 	{ 11440, 300 }, { 14200, 160 }, { 16150, 0 },			// ccp
5313 	{ 18670, 170 }, {  20690, 390 }, { 21600, 2230 },		// ccp
5314 	{ 21600, 19420 },										// p
5315 	{ 20640, 17510 }, { 18320, 17490 }, { 16140, 17240 },	// ccp
5316 	{ 14710, 17370 }, {	11310, 17510 }, { 10770, 19430 },	// ccp
5317 	{ 10150, 21150 }, { 7380, 21290 }, { 5290, 21600 },		// ccp
5318 	{ 3220, 21250 }, { 610, 21130 }, { 0, 19420	}			// ccp
5319 };
5320 static const sal_uInt16 mso_sptFlowChartPunchedTapeSegm[] =
5321 {
5322 	0x4000, 0x2004, 0x0001, 0x2004, 0x6000, 0x8000
5323 };
5324 static const SvxMSDffTextRectangles mso_sptFlowChartPunchedTapeTextRect[] =
5325 {
5326 	{ { 0, 4360 }, { 21600, 17240 } }
5327 };
5328 static const SvxMSDffVertPair mso_sptFlowChartPunchedTapeGluePoints[] =
5329 {
5330 	{ 10800, 2020 }, { 0, 10800 }, { 10800, 19320 }, { 21600, 10800 }
5331 };
5332 static const mso_CustomShape msoFlowChartPunchedTape =
5333 {
5334 	(SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeVert, sizeof( mso_sptFlowChartPunchedTapeVert ) / sizeof( SvxMSDffVertPair ),
5335 	(sal_uInt16*)mso_sptFlowChartPunchedTapeSegm, sizeof( mso_sptFlowChartPunchedTapeSegm ) >> 1,
5336 	NULL, 0,
5337 	NULL,
5338 	(SvxMSDffTextRectangles*)mso_sptFlowChartPunchedTapeTextRect, sizeof( mso_sptFlowChartPunchedTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5339 	21600, 21600,
5340 	0x80000000, 0x80000000,
5341 	(SvxMSDffVertPair*)mso_sptFlowChartPunchedTapeGluePoints, sizeof( mso_sptFlowChartPunchedTapeGluePoints ) / sizeof( SvxMSDffVertPair ),
5342 	NULL, 0		// handles
5343 };
5344 
5345 static const SvxMSDffVertPair mso_sptFlowChartSummingJunctionVert[] =
5346 {
5347 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5348 
5349 	{ 3100, 3100 },
5350 	{ 18500, 18500 },
5351 
5352 	{ 3100, 18500 },
5353 	{ 18500, 3100 }
5354 };
5355 static const sal_uInt16 mso_sptFlowChartSummingJunctionSegm[] =
5356 {
5357 	0xa203, 0x6000, 0x8000,
5358 	0x4000, 0x0001, 0x8000,
5359 	0x4000, 0x0001, 0x8000
5360 };
5361 static const SvxMSDffTextRectangles mso_sptFlowChartSummingJunctionTextRect[] =
5362 {
5363 	{ { 3100, 3100 }, { 18500, 18500 } }
5364 };
5365 static const mso_CustomShape msoFlowChartSummingJunction =
5366 {
5367 	(SvxMSDffVertPair*)mso_sptFlowChartSummingJunctionVert, sizeof( mso_sptFlowChartSummingJunctionVert ) / sizeof( SvxMSDffVertPair ),
5368 	(sal_uInt16*)mso_sptFlowChartSummingJunctionSegm, sizeof( mso_sptFlowChartSummingJunctionSegm ) >> 1,
5369 	NULL, 0,
5370 	NULL,
5371 	(SvxMSDffTextRectangles*)mso_sptFlowChartSummingJunctionTextRect, sizeof( mso_sptFlowChartSummingJunctionTextRect ) / sizeof( SvxMSDffTextRectangles ),
5372 	21600, 21600,
5373 	0x80000000, 0x80000000,
5374 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5375 	NULL, 0		// handles
5376 };
5377 
5378 static const SvxMSDffVertPair mso_sptFlowChartOrVert[] =
5379 {
5380 	{ 10800, 10800 }, { 10800, 10800 }, { 0, 360 },
5381 
5382 	{ 0, 10800 }, { 21600, 10800 },
5383 
5384 	{ 10800, 0 }, { 10800, 21600 }
5385 };
5386 static const sal_uInt16 mso_sptFlowChartOrSegm[] =
5387 {
5388 	0xa203, 0x6000, 0x8000,
5389 	0x4000, 0x0001, 0x8000,
5390 	0x4000, 0x0001, 0x8000
5391 };
5392 static const SvxMSDffTextRectangles mso_sptFlowChartOrTextRect[] =
5393 {
5394 	{ { 3100, 3100 }, { 18500, 18500 } }
5395 };
5396 static const mso_CustomShape msoFlowChartOr =
5397 {
5398 	(SvxMSDffVertPair*)mso_sptFlowChartOrVert, sizeof( mso_sptFlowChartOrVert ) / sizeof( SvxMSDffVertPair ),
5399 	(sal_uInt16*)mso_sptFlowChartOrSegm, sizeof( mso_sptFlowChartOrSegm ) >> 1,
5400 	NULL, 0,
5401 	NULL,
5402 	(SvxMSDffTextRectangles*)mso_sptFlowChartOrTextRect, sizeof( mso_sptFlowChartOrTextRect ) / sizeof( SvxMSDffTextRectangles ),
5403 	21600, 21600,
5404 	0x80000000, 0x80000000,
5405 	(SvxMSDffVertPair*)mso_sptEllipseGluePoints, sizeof( mso_sptEllipseGluePoints ) / sizeof( SvxMSDffVertPair ),
5406 	NULL, 0		// handles
5407 };
5408 
5409 static const SvxMSDffVertPair mso_sptFlowChartCollateVert[] =
5410 {
5411 	{ 0, 0 }, { 21600, 21600 }, { 0, 21600 }, { 21600, 0 }, { 0, 0 }
5412 };
5413 static const SvxMSDffTextRectangles mso_sptFlowChartCollateTextRect[] =
5414 {
5415 	{ { 5400, 5400 }, { 16200, 16200 } }
5416 };
5417 static const SvxMSDffVertPair mso_sptFlowChartCollateGluePoints[] =
5418 {
5419 	{ 10800, 0 }, { 10800, 10800 }, { 10800, 21600 }
5420 };
5421 static const mso_CustomShape msoFlowChartCollate =
5422 {
5423 	(SvxMSDffVertPair*)mso_sptFlowChartCollateVert, sizeof( mso_sptFlowChartCollateVert ) / sizeof( SvxMSDffVertPair ),
5424 	NULL, 0,
5425 	NULL, 0,
5426 	NULL,
5427 	(SvxMSDffTextRectangles*)mso_sptFlowChartCollateTextRect, sizeof( mso_sptFlowChartCollateTextRect ) / sizeof( SvxMSDffTextRectangles ),
5428 	21600, 21600,
5429 	0x80000000, 0x80000000,
5430 	(SvxMSDffVertPair*)mso_sptFlowChartCollateGluePoints, sizeof( mso_sptFlowChartCollateGluePoints ) / sizeof( SvxMSDffVertPair ),
5431 	NULL, 0		// handles
5432 };
5433 
5434 static const SvxMSDffVertPair mso_sptFlowChartSortVert[] =
5435 {
5436 	{ 0, 10800 }, { 10800, 0 }, { 21600, 10800 }, { 10800, 21600 },
5437 
5438 	{ 0, 10800 }, { 21600, 10800 }
5439 };
5440 static const sal_uInt16 mso_sptFlowChartSortSegm[] =
5441 {
5442 	0x4000, 0x0003, 0x6000, 0x8000,
5443 	0x4000, 0x0001, 0x8000
5444 };
5445 static const SvxMSDffTextRectangles mso_sptFlowChartSortTextRect[] =
5446 {
5447 	{ { 5400, 5400 }, { 16200, 16200 } }
5448 };
5449 static const mso_CustomShape msoFlowChartSort =
5450 {
5451 	(SvxMSDffVertPair*)mso_sptFlowChartSortVert, sizeof( mso_sptFlowChartSortVert ) / sizeof( SvxMSDffVertPair ),
5452 	(sal_uInt16*)mso_sptFlowChartSortSegm, sizeof( mso_sptFlowChartSortSegm ) >> 1,
5453 	NULL, 0,
5454 	NULL,
5455 	(SvxMSDffTextRectangles*)mso_sptFlowChartSortTextRect, sizeof( mso_sptFlowChartSortTextRect ) / sizeof( SvxMSDffTextRectangles ),
5456 	21600, 21600,
5457 	0x80000000, 0x80000000,
5458 	NULL, 0,
5459 	NULL, 0		// handles
5460 };
5461 
5462 static const SvxMSDffVertPair mso_sptFlowChartExtractVert[] =
5463 {
5464 	{ 10800, 0 }, { 21600, 21600 }, { 0, 21600 }, { 10800, 0 }
5465 };
5466 static const SvxMSDffTextRectangles mso_sptFlowChartExtractTextRect[] =
5467 {
5468 	{ { 5400, 10800 }, { 16200, 21600 } }
5469 };
5470 static const SvxMSDffVertPair mso_sptFlowChartExtractGluePoints[] =
5471 {
5472 	{ 10800, 0 }, { 5400, 10800 }, { 10800, 21600 }, { 16200, 10800 }
5473 };
5474 static const mso_CustomShape msoFlowChartExtract =
5475 {
5476 	(SvxMSDffVertPair*)mso_sptFlowChartExtractVert, sizeof( mso_sptFlowChartExtractVert ) / sizeof( SvxMSDffVertPair ),
5477 	NULL, 0,
5478 	NULL, 0,
5479 	NULL,
5480 	(SvxMSDffTextRectangles*)mso_sptFlowChartExtractTextRect, sizeof( mso_sptFlowChartExtractTextRect ) / sizeof( SvxMSDffTextRectangles ),
5481 	21600, 21600,
5482 	0x80000000, 0x80000000,
5483 	(SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5484 	NULL, 0		// handles
5485 };
5486 
5487 static const SvxMSDffVertPair mso_sptFlowChartMergeVert[] =
5488 {
5489 	{ 0, 0 }, { 21600, 0 }, { 10800, 21600 }, { 0, 0 }
5490 };
5491 static const SvxMSDffTextRectangles mso_sptFlowChartMergeTextRect[] =
5492 {
5493 	{ { 5400, 0 }, { 16200, 10800 } }
5494 };
5495 static const mso_CustomShape msoFlowChartMerge =
5496 {
5497 	(SvxMSDffVertPair*)mso_sptFlowChartMergeVert, sizeof( mso_sptFlowChartMergeVert ) / sizeof( SvxMSDffVertPair ),
5498 	NULL, 0,
5499 	NULL, 0,
5500 	NULL,
5501 	(SvxMSDffTextRectangles*)mso_sptFlowChartMergeTextRect, sizeof( mso_sptFlowChartMergeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5502 	21600, 21600,
5503 	0x80000000, 0x80000000,
5504 	(SvxMSDffVertPair*)mso_sptFlowChartExtractGluePoints, sizeof( mso_sptFlowChartExtractGluePoints ) / sizeof( SvxMSDffVertPair ),
5505 	NULL, 0		// handles
5506 };
5507 
5508 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageVert[] =
5509 {
5510 	{ 3600, 21600 }, { 0, 10800 }, { 3600, 0 }, { 21600, 0 },
5511 	{ 18000, 10800 }, { 21600, 21600 }
5512 };
5513 static const sal_uInt16 mso_sptFlowChartOnlineStorageSegm[] =
5514 {
5515 	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000
5516 };
5517 static const SvxMSDffTextRectangles mso_sptFlowChartOnlineStorageTextRect[] =
5518 {
5519 	{ { 3600, 0 }, { 18000, 21600 } }
5520 };
5521 static const SvxMSDffVertPair mso_sptFlowChartOnlineStorageGluePoints[] =
5522 {
5523 	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 18000, 10800 }
5524 };
5525 static const mso_CustomShape msoFlowChartOnlineStorage =
5526 {
5527 	(SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageVert, sizeof( mso_sptFlowChartOnlineStorageVert ) / sizeof( SvxMSDffVertPair ),
5528 	(sal_uInt16*)mso_sptFlowChartOnlineStorageSegm, sizeof( mso_sptFlowChartOnlineStorageSegm ) >> 1,
5529 	NULL, 0,
5530 	NULL,
5531 	(SvxMSDffTextRectangles*)mso_sptFlowChartOnlineStorageTextRect, sizeof( mso_sptFlowChartOnlineStorageTextRect ) / sizeof( SvxMSDffTextRectangles ),
5532 	21600, 21600,
5533 	0x80000000, 0x80000000,
5534 	(SvxMSDffVertPair*)mso_sptFlowChartOnlineStorageGluePoints, sizeof( mso_sptFlowChartOnlineStorageGluePoints ) / sizeof( SvxMSDffVertPair ),
5535 	NULL, 0		// handles
5536 };
5537 
5538 static const SvxMSDffVertPair mso_sptFlowChartDelayVert[] =
5539 {
5540 	{ 10800, 0 }, {	21600, 10800 }, { 10800, 21600 }, {	0, 21600 },
5541 	{ 0, 0 }
5542 };
5543 static const sal_uInt16 mso_sptFlowChartDelaySegm[] =
5544 {
5545 	0x4000, 0xa702, 0x0002, 0x6000, 0x8000
5546 };
5547 static const SvxMSDffTextRectangles mso_sptFlowChartDelayTextRect[] =
5548 {
5549 	{ { 0, 3100 }, { 18500, 18500 } }
5550 };
5551 static const mso_CustomShape msoFlowChartDelay =
5552 {
5553 	(SvxMSDffVertPair*)mso_sptFlowChartDelayVert, sizeof( mso_sptFlowChartDelayVert ) / sizeof( SvxMSDffVertPair ),
5554 	(sal_uInt16*)mso_sptFlowChartDelaySegm, sizeof( mso_sptFlowChartDelaySegm ) >> 1,
5555 	NULL, 0,
5556 	NULL,
5557 	(SvxMSDffTextRectangles*)mso_sptFlowChartDelayTextRect, sizeof( mso_sptFlowChartDelayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5558 	21600, 21600,
5559 	0x80000000, 0x80000000,
5560 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5561 	NULL, 0		// handles
5562 };
5563 
5564 static const SvxMSDffVertPair mso_sptFlowChartMagneticTapeVert[] =
5565 {
5566 	{ 20980, 18150 }, {	20980, 21600 }, { 10670, 21600 },
5567 	{ 4770, 21540 }, { 0, 16720 }, { 0, 10800 },			// ccp
5568 	{ 0, 4840 }, { 4840, 0 }, { 10800, 0 },					// ccp
5569 	{ 16740, 0 }, { 21600, 4840 }, { 21600, 10800 },		// ccp
5570 	{ 21600, 13520 }, {	20550, 16160 }, { 18670, 18170 }	// ccp
5571 };
5572 static const sal_uInt16 mso_sptFlowChartMagneticTapeSegm[] =
5573 {
5574 	0x4000, 0x0002, 0x2004, 0x6000, 0x8000
5575 };
5576 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticTapeTextRect[] =
5577 {
5578 	{ { 3100, 3100 }, { 18500, 18500 } }
5579 };
5580 static const mso_CustomShape msoFlowChartMagneticTape =
5581 {
5582 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticTapeVert, sizeof( mso_sptFlowChartMagneticTapeVert ) / sizeof( SvxMSDffVertPair ),
5583 	(sal_uInt16*)mso_sptFlowChartMagneticTapeSegm, sizeof( mso_sptFlowChartMagneticTapeSegm ) >> 1,
5584 	NULL, 0,
5585 	NULL,
5586 	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticTapeTextRect, sizeof( mso_sptFlowChartMagneticTapeTextRect ) / sizeof( SvxMSDffTextRectangles ),
5587 	21600, 21600,
5588 	0x80000000, 0x80000000,
5589 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5590 	NULL, 0		// handles
5591 };
5592 
5593 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskVert[] =
5594 {
5595 	{ 0, 3400 }, { 10800, 0 }, { 21600, 3400 }, { 21600, 18200 },
5596 	{ 10800, 21600 }, { 0, 18200 },
5597 
5598 	{ 0, 3400 }, { 10800, 6800 }, { 21600, 3400 }
5599 };
5600 static const sal_uInt16 mso_sptFlowChartMagneticDiskSegm[] =
5601 {
5602 	0x4000, 0xa802, 0x0001, 0xa802, 0x6000, 0x8000,
5603 	0x4000, 0xa802, 0x8000
5604 };
5605 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDiskTextRect[] =
5606 {
5607 	{ { 0, 6800 }, { 21600, 18200 } }
5608 };
5609 static const SvxMSDffVertPair mso_sptFlowChartMagneticDiskGluePoints[] =
5610 {
5611 	{ 10800, 6800 }, { 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 21600, 10800 }
5612 };
5613 static const mso_CustomShape msoFlowChartMagneticDisk =
5614 {
5615 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskVert, sizeof( mso_sptFlowChartMagneticDiskVert ) / sizeof( SvxMSDffVertPair ),
5616 	(sal_uInt16*)mso_sptFlowChartMagneticDiskSegm, sizeof( mso_sptFlowChartMagneticDiskSegm ) >> 1,
5617 	NULL, 0,
5618 	NULL,
5619 	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDiskTextRect, sizeof( mso_sptFlowChartMagneticDiskTextRect ) / sizeof( SvxMSDffTextRectangles ),
5620 	21600, 21600,
5621 	0x80000000, 0x80000000,
5622 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDiskGluePoints, sizeof( mso_sptFlowChartMagneticDiskGluePoints ) / sizeof( SvxMSDffVertPair ),
5623 	NULL, 0		// handles
5624 };
5625 
5626 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumVert[] =
5627 {
5628 	{ 18200, 0 }, { 21600, 10800 }, { 18200, 21600 }, { 3400, 21600 },
5629 	{ 0, 10800 }, { 3400, 0 },
5630 
5631 	{ 18200, 0 }, { 14800, 10800 }, { 18200, 21600 }
5632 };
5633 static const sal_uInt16 mso_sptFlowChartMagneticDrumSegm[] =
5634 {
5635 	0x4000, 0xa702, 0x0001, 0xa702, 0x6000, 0x8000,
5636 	0x4000, 0xa702, 0x8000
5637 };
5638 static const SvxMSDffTextRectangles mso_sptFlowChartMagneticDrumTextRect[] =
5639 {
5640 	{ { 3400, 0 }, { 14800, 21600 } }
5641 };
5642 static const SvxMSDffVertPair mso_sptFlowChartMagneticDrumGluePoints[] =
5643 {
5644 	{ 10800, 0 }, { 0, 10800 }, { 10800, 21600 }, { 14800, 10800 }, { 21600, 10800 }
5645 };
5646 static const mso_CustomShape msoFlowChartMagneticDrum =
5647 {
5648 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumVert, sizeof( mso_sptFlowChartMagneticDrumVert ) / sizeof( SvxMSDffVertPair ),
5649 	(sal_uInt16*)mso_sptFlowChartMagneticDrumSegm, sizeof( mso_sptFlowChartMagneticDrumSegm ) >> 1,
5650 	NULL, 0,
5651 	NULL,
5652 	(SvxMSDffTextRectangles*)mso_sptFlowChartMagneticDrumTextRect, sizeof( mso_sptFlowChartMagneticDrumTextRect ) / sizeof( SvxMSDffTextRectangles ),
5653 	21600, 21600,
5654 	0x80000000, 0x80000000,
5655 	(SvxMSDffVertPair*)mso_sptFlowChartMagneticDrumGluePoints, sizeof( mso_sptFlowChartMagneticDrumGluePoints ) / sizeof( SvxMSDffVertPair ),
5656 	NULL, 0		// handles
5657 };
5658 
5659 static const SvxMSDffVertPair mso_sptFlowChartDisplayVert[] =
5660 {
5661 	{ 3600, 0 }, { 17800, 0 }, { 21600, 10800 }, { 17800, 21600 },
5662 	{ 3600, 21600 }, { 0, 10800 }
5663 };
5664 static const sal_uInt16 mso_sptFlowChartDisplaySegm[] =
5665 {
5666 	0x4000, 0x0001, 0xa702, 0x0002, 0x6000, 0x8000
5667 };
5668 static const SvxMSDffTextRectangles mso_sptFlowChartDisplayTextRect[] =
5669 {
5670 	{ { 3600, 0 }, { 17800, 21600 } }
5671 };
5672 static const mso_CustomShape msoFlowChartDisplay =
5673 {
5674 	(SvxMSDffVertPair*)mso_sptFlowChartDisplayVert, sizeof( mso_sptFlowChartDisplayVert ) / sizeof( SvxMSDffVertPair ),
5675 	(sal_uInt16*)mso_sptFlowChartDisplaySegm, sizeof( mso_sptFlowChartDisplaySegm ) >> 1,
5676 	NULL, 0,
5677 	NULL,
5678 	(SvxMSDffTextRectangles*)mso_sptFlowChartDisplayTextRect, sizeof( mso_sptFlowChartDisplayTextRect ) / sizeof( SvxMSDffTextRectangles ),
5679 	21600, 21600,
5680 	0x80000000, 0x80000000,
5681 	(SvxMSDffVertPair*)mso_sptStandardGluePoints, sizeof( mso_sptStandardGluePoints ) / sizeof( SvxMSDffVertPair ),
5682 	NULL, 0		// handles
5683 };
5684 
5685 static const SvxMSDffVertPair mso_sptWedgeRectCalloutVert[] =
5686 {
5687 	{ 0, 0 },
5688 	{ 0, 3590 }, { 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5689 	{ 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5690 	{ 0, 21600 },
5691 	{ 3590, 21600 }, { 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5692 	{ 12630, 21600 }, { 8 MSO_I, 9 MSO_I }, { 18010, 21600 },
5693 	{ 21600, 21600 },
5694 	{ 21600, 18010 }, { 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5695 	{ 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5696 	{ 21600, 0 },
5697 	{ 18010, 0 }, { 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5698 	{ 8970, 0 }, { 16 MSO_I, 17 MSO_I }, { 3590, 0 },
5699 	{ 0, 0 }
5700 };
5701 static const SvxMSDffCalculationData mso_sptWedgeRectCalloutCalc[] =
5702 {
5703 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },		//0x400
5704 	{ 0x2000, { DFF_Prop_adjust2Value, 0,10800 } },
5705 	{ 0x6006, { 0x412, DFF_Prop_adjustValue, 0 } },		//0x402
5706 	{ 0x6006, { 0x412, DFF_Prop_adjust2Value, 6280 } },
5707 	{ 0x6006, { 0x417, DFF_Prop_adjustValue, 0 } },		//0x404
5708 	{ 0x6006, { 0x417, DFF_Prop_adjust2Value, 15320 } },
5709 	{ 0x6006, { 0x41a, DFF_Prop_adjustValue, 6280 } },	//0x406
5710 	{ 0x6006, { 0x41a, DFF_Prop_adjust2Value, 21600 } },
5711 	{ 0x6006, { 0x41d, DFF_Prop_adjustValue, 15320 } },	//0x408
5712 	{ 0x6006, { 0x41d, DFF_Prop_adjust2Value, 21600 } },
5713 	{ 0x6006, { 0x420, DFF_Prop_adjustValue, 21600 } },	//0x40a
5714 	{ 0x6006, { 0x420, DFF_Prop_adjust2Value, 15320 } },
5715 	{ 0x6006, { 0x422, DFF_Prop_adjustValue, 21600 } },	//0x40c
5716 	{ 0x6006, { 0x422, DFF_Prop_adjust2Value, 6280 } },
5717 	{ 0x6006, { 0x424, DFF_Prop_adjustValue, 15320 } },	//0x40e
5718 	{ 0x6006, { 0x424, DFF_Prop_adjust2Value, 0 } },
5719 	{ 0x6006, { 0x426, DFF_Prop_adjustValue, 6280 } },	//0x410
5720 	{ 0x6006, { 0x426, DFF_Prop_adjust2Value, 0 } },
5721 	{ 0xa006, { DFF_Prop_adjustValue, -1, 0x413 } },	//0x412
5722 	{ 0xa006, { 0x401, -1, 0x416 } },
5723 	{ 0x2003, { 0x400, 0, 0 } },						//0x414
5724 	{ 0x2003, { 0x401, 0, 0 } },
5725 	{ 0xa000, { 0x414, 0, 0x415 } },					//0x416
5726 	{ 0xa006, { DFF_Prop_adjustValue, -1, 0x418 } },
5727 	{ 0x6006, { 0x401, 0x416, -1 } },					//0x418
5728 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 21600 } },
5729 	{ 0x6006, { 0x419, 0x41b, -1 } },					//0x41a
5730 	{ 0xa006, { 0x400, -1, 0x41c } },
5731 	{ 0xa000, { 0x415, 0, 0x414 } },					//0x41c
5732 	{ 0x6006, { 0x419, 0x41e, -1 } },
5733 	{ 0x6006, { 0x400, 0x41c, -1 } },					//0x41e
5734 	{ 0x2000, { DFF_Prop_adjustValue, 0, 21600 } },
5735 	{ 0x6006, { 0x41f, 0x421, -1 } },					//0x420
5736 	{ 0x6006, { 0x401, 0x416, -1 } },
5737 	{ 0x6006, { 0x41f, 0x423, -1 } },					//0x422
5738 	{ 0xa006, { 0x401, -1, 0x416 } },
5739 	{ 0xa006, { DFF_Prop_adjust2Value, -1, 0x425 } },	//0x424
5740 	{ 0x6006, { 0x400, 0x41c, -1 } },
5741 	{ 0xa006, { DFF_Prop_adjust2Value, -1, 0x427 } },	//0x426
5742 	{ 0xa006, { 0x400, -1, 0x41c } },
5743 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },			//0x428
5744 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } }
5745 };
5746 static const sal_Int32 mso_sptWedgeRectCalloutDefault[] =
5747 {
5748 	2, 1400, 25920
5749 };
5750 static const SvxMSDffTextRectangles mso_sptWedgeRectCalloutTextRect[] =
5751 {
5752 	{ { 0, 0 }, { 21600, 21600 } }
5753 };
5754 static const SvxMSDffVertPair mso_sptWedgeRectCalloutGluePoints[] =
5755 {
5756 	{ 10800, 0 }, { 0, 10800 },  { 10800, 21600 }, { 21600, 10800 }, { 40 MSO_I, 41 MSO_I }
5757 };
5758 static const SvxMSDffHandle mso_sptCalloutHandle[] =
5759 {
5760 	{
5761 		0,
5762 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff
5763 	}
5764 };
5765 static const mso_CustomShape msoWedgeRectCallout =
5766 {
5767 	(SvxMSDffVertPair*)mso_sptWedgeRectCalloutVert, sizeof( mso_sptWedgeRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5768 	NULL, 0,
5769 	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5770 	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
5771 	(SvxMSDffTextRectangles*)mso_sptWedgeRectCalloutTextRect, sizeof( mso_sptWedgeRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5772 	21600, 21600,
5773 	0x80000000, 0x80000000,
5774 	(SvxMSDffVertPair*)mso_sptWedgeRectCalloutGluePoints, sizeof( mso_sptWedgeRectCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5775 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5776 };
5777 static const SvxMSDffVertPair mso_sptWedgeRRectCalloutVert[] =
5778 {
5779 	{ 3590, 0 },
5780 	{ 0, 3590 },
5781 	{ 2 MSO_I, 3 MSO_I }, { 0, 8970 },
5782 	{ 0, 12630 },{ 4 MSO_I, 5 MSO_I }, { 0, 18010 },
5783 	{ 3590, 21600 },
5784 	{ 6 MSO_I, 7 MSO_I }, { 8970, 21600 },
5785 	{ 12630, 21600 }, { 8 MSO_I, 9 MSO_I },	{ 18010, 21600 },
5786 	{ 21600, 18010 },
5787 	{ 10 MSO_I, 11 MSO_I }, { 21600, 12630 },
5788 	{ 21600, 8970 }, { 12 MSO_I, 13 MSO_I }, { 21600, 3590 },
5789 	{ 18010, 0 },
5790 	{ 14 MSO_I, 15 MSO_I }, { 12630, 0 },
5791 	{ 8970, 0 }, { 16 MSO_I, 17 MSO_I }
5792 };
5793 static const sal_uInt16 mso_sptWedgeRRectCalloutSegm[] =
5794 {
5795 	0x4000, 0xa701, 0x0005, 0xa801, 0x0005, 0xa701, 0x0005, 0xa801, 0x0004, 0x6001, 0x8000
5796 };
5797 static const SvxMSDffTextRectangles mso_sptWedgeRRectCalloutTextRect[] =
5798 {
5799 	{ { 800, 800 }, { 20800, 20800 } }
5800 };
5801 static const mso_CustomShape msoWedgeRRectCallout =
5802 {
5803 	(SvxMSDffVertPair*)mso_sptWedgeRRectCalloutVert, sizeof( mso_sptWedgeRRectCalloutVert ) / sizeof( SvxMSDffVertPair ),
5804 	(sal_uInt16*)mso_sptWedgeRRectCalloutSegm, sizeof( mso_sptWedgeRRectCalloutSegm ) >> 1,
5805 	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5806 	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
5807 	(SvxMSDffTextRectangles*)mso_sptWedgeRRectCalloutTextRect, sizeof( mso_sptWedgeRRectCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5808 	21600, 21600,
5809 	0x80000000, 0x80000000,
5810 	NULL, 0,
5811 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5812 };
5813 static const SvxMSDffVertPair mso_sptBalloonVert[] =
5814 {
5815 	{ 3590, 0 },
5816 	{ 0, 3590 },
5817 	{ 0, 14460 },
5818 	{ 3590, 18050 },
5819 	{ 40 MSO_I, 21600 }, { 5420, 18050 },
5820 	{ 18010, 18050 },
5821 	{ 21600, 14460 },
5822 	{ 21600, 3590 },
5823 	{ 18010, 0 }
5824 };
5825 static const sal_uInt16 mso_sptBalloonSegm[] =
5826 {
5827 	0x4000, 0xa701, 0x0001, 0xa801, 0x0003, 0xa701, 0x0001, 0xa801, 0x6001, 0x8000
5828 };
5829 static const SvxMSDffHandle mso_sptBalloonHandle[] =
5830 {
5831 	{
5832 		MSDFF_HANDLE_FLAGS_RANGE,
5833 		0x100, 1, 10800, 10800, 0, 8990, 0x80000000, 0x7fffffff
5834 	}
5835 };
5836 static const SvxMSDffTextRectangles mso_sptBalloonTextRect[] =
5837 {
5838 	{ { 800, 800 }, { 20800, 17250 } }
5839 };
5840 static const mso_CustomShape msoBalloon =
5841 {
5842 	(SvxMSDffVertPair*)mso_sptBalloonVert, sizeof( mso_sptBalloonVert ) / sizeof( SvxMSDffVertPair ),
5843 	(sal_uInt16*)mso_sptBalloonSegm, sizeof( mso_sptBalloonSegm ) >> 1,
5844 	(SvxMSDffCalculationData*)mso_sptWedgeRectCalloutCalc, sizeof( mso_sptWedgeRectCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5845 	(sal_Int32*)mso_sptWedgeRectCalloutDefault,
5846 	(SvxMSDffTextRectangles*)mso_sptBalloonTextRect, sizeof( mso_sptBalloonTextRect ) / sizeof( SvxMSDffTextRectangles ),
5847 	21600, 21600,
5848 	0x80000000, 0x80000000,
5849 	NULL, 0,
5850 	(SvxMSDffHandle*)mso_sptBalloonHandle, sizeof( mso_sptBalloonHandle ) / sizeof( SvxMSDffHandle )		// handles
5851 };
5852 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutVert[] =
5853 {
5854 	{ 0, 0 }, { 21600, 21600 }, { 0x16 MSO_I, 0x17 MSO_I }, { 0x12 MSO_I, 0x13 MSO_I }, { 0xe MSO_I, 0xf MSO_I }
5855 };
5856 static const sal_uInt16 mso_sptWedgeEllipseCalloutSegm[] =
5857 {
5858 	0xa504, 0x0001, 0x6001, 0x8000
5859 };
5860 static const SvxMSDffCalculationData mso_sptWedgeEllipseCalloutCalc[] =
5861 {
5862 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },		// 00 rad x
5863 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },	// 01 rad y
5864 	{ 0x6001, { 0x400, 0x400, 1 } },					// 02 rad x^2
5865 	{ 0x6001, { 0x401, 0x401, 1 } },					// 03 rad y^2
5866 	{ 0x6000, { 0x402, 0x403, 0 } },					// 04
5867 	{ 0x200d, { 0x404, 0, 0 } },						// 05
5868 	{ 0x2000, { 0x405, 0, 10800 } },					// 06 > 0 ? spur needs to be drawn : 10800
5869 	{ 0x6008, { 0x400, 0x401, 0 } },					// 07 atan2 -> angle
5870 	{ 0x2000, { 0x407, 0, 10 } },						// 08
5871 	{ 0x2000, { 0x407, 10, 0 } },						// 09
5872 	{ 0x400a, { 10800, 0x407, 0 } },					// 0a
5873 	{ 0x4009, { 10800, 0x407, 0 } },					// 0b
5874 	{ 0x2000, { 0x40a, 10800, 0 } },					// 0c
5875 	{ 0x2000, { 0x40b, 10800, 0 } },					// 0d
5876 	{ 0xe006, { 0x406, DFF_Prop_adjustValue, 0x40c } },	// 0e
5877 	{ 0xe006, { 0x406, DFF_Prop_adjust2Value, 0x40d } },// 0f
5878 	{ 0x400a, { 10800, 0x408, 0 } },					// 10
5879 	{ 0x4009, { 10800, 0x408, 0 } },					// 11
5880 	{ 0x2000, { 0x410, 10800, 0 } },					// 12
5881 	{ 0x2000, { 0x411, 10800, 0 } },					// 13
5882 	{ 0x400a, { 10800, 0x409, 0 } },					// 14
5883 	{ 0x4009, { 10800, 0x409, 0 } },					// 15
5884 	{ 0x2000, { 0x414, 10800, 0 } },					// 16
5885 	{ 0x2000, { 0x415, 10800, 0 } }					    // 17
5886 };
5887 static const sal_Int32 mso_sptWedgeEllipseCalloutDefault[] =
5888 {
5889 	2, 1350, 25920
5890 };
5891 static const SvxMSDffVertPair mso_sptWedgeEllipseCalloutGluePoints[] =
5892 {
5893 	{ 10800, 0 }, { 3160, 3160 }, { 0, 10800 }, { 3160, 18440 }, { 10800, 21600 }, { 18440, 18440 }, { 21600, 10800 }, { 18440, 3160 }, { 0xe MSO_I, 0xf MSO_I }
5894 };
5895 static const SvxMSDffTextRectangles mso_sptWedgeEllipseCalloutTextRect[] =
5896 {
5897 	{ { 3200, 3200 }, { 18400, 18400 } }
5898 };
5899 static const mso_CustomShape msoWedgeEllipseCallout =
5900 {
5901 	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutVert, sizeof( mso_sptWedgeEllipseCalloutVert ) / sizeof( SvxMSDffVertPair ),
5902 	(sal_uInt16*)mso_sptWedgeEllipseCalloutSegm, sizeof( mso_sptWedgeEllipseCalloutSegm ) >> 1,
5903 	(SvxMSDffCalculationData*)mso_sptWedgeEllipseCalloutCalc, sizeof( mso_sptWedgeEllipseCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
5904 	(sal_Int32*)mso_sptWedgeEllipseCalloutDefault,
5905 	(SvxMSDffTextRectangles*)mso_sptWedgeEllipseCalloutTextRect, sizeof( mso_sptWedgeEllipseCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
5906 	21600, 21600,
5907 	0x80000000, 0x80000000,
5908 	(SvxMSDffVertPair*)mso_sptWedgeEllipseCalloutGluePoints, sizeof( mso_sptWedgeEllipseCalloutGluePoints ) / sizeof( SvxMSDffVertPair ),
5909 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
5910 };
5911 
5912 static const SvxMSDffVertPair mso_sptCloudCalloutVert[] =
5913 {
5914 	{ 1930,7160 },										// p
5915 	{ 1530,4490	}, { 3400,1970 }, { 5270,1970 },		// ccp
5916 	{ 5860,1950	}, { 6470,2210 }, { 6970,2600 },		// ccp
5917 	{ 7450,1390	}, { 8340,650 }, { 9340,650	},			// ccp
5918 	{ 10004,690	}, { 10710,1050	}, { 11210,1700	},		// ccp
5919 	{ 11570,630	}, { 12330,0 }, { 13150,0 },			// ccp
5920 	{ 13840,0 }, { 14470,460 }, { 14870,1160 },			// ccp
5921 	{ 15330,440 }, { 16020,0 }, { 16740,0 },			// ccp
5922 	{ 17910,0 }, { 18900,1130 }, { 19110,2710 },		// ccp
5923 	{ 20240,3150 }, { 21060,4580 }, { 21060,6220 },		// ccp
5924 	{ 21060,6720 }, { 21000,7200 }, { 20830,7660 },		// ccp
5925 	{ 21310,8460 }, { 21600,9450 }, { 21600,10460 },	// ccp
5926 	{ 21600,12750 }, { 20310,14680 }, { 18650,15010	},	// ccp
5927 	{ 18650,17200 }, { 17370,18920 }, { 15770,18920 },	// ccp
5928 	{ 15220,18920 }, { 14700,18710 }, { 14240,18310	},	// ccp
5929 	{ 13820,20240 }, { 12490,21600 }, { 11000,21600 },	// ccp
5930 	{ 9890,21600 }, { 8840,20790 }, { 8210,19510 },		// ccp
5931 	{ 7620,20000 }, { 7930,20290 }, { 6240,20290 },		// ccp
5932 	{ 4850,20290 }, { 3570,19280 }, { 2900,17640 },		// ccp
5933 	{ 1300,17600 }, { 480,16300 }, { 480,14660 },		// ccp
5934 	{ 480,13900	}, { 690,13210 }, { 1070,12640 },		// ccp
5935 	{ 380,12160	}, { 0,11210 }, { 0,10120 },			// ccp
5936 	{ 0,8590 },	{ 840,7330 }, { 1930,7160 },			// ccp
5937 
5938 	{ 1930, 7160 }, { 1950, 7410 }, { 2040, 7690 }, { 2090, 7920 },			// pccp
5939 	{ 6970, 2600 }, { 7200, 2790 }, { 7480, 3050 }, { 7670, 3310 },			// pccp
5940 	{ 11210, 1700 }, { 11130, 1910 }, { 11080, 2160 }, { 11030, 2400 },		// pccp
5941 	{ 14870, 1160 }, { 14720, 1400 }, { 14640, 1720 }, { 14540, 2010 },		// pccp
5942 	{ 19110, 2710 }, { 19130, 2890 }, { 19230, 3290 }, { 19190, 3380 },		// pccp
5943 	{ 20830, 7660 }, { 20660, 8170 }, { 20430, 8620 }, { 20110, 8990 },		// pccp
5944 	{ 18660, 15010 }, { 18740, 14200 }, { 18280, 12200 }, { 17000, 11450 },	// pccp
5945 	{ 14240, 18310 }, { 14320, 17980 }, { 14350, 17680 }, { 14370, 17360 },	// pccp
5946 	{ 8220, 19510 }, { 8060, 19250 }, { 7960, 18950 }, { 7860, 18640 },		// pccp
5947 	{ 2900, 17640 }, { 3090, 17600 }, { 3280, 17540 }, { 3460, 17450 },		// pccp
5948 	{ 1070, 12640 }, { 1400, 12900 }, { 1780, 13130 }, { 2330, 13040 },		// pccp
5949 
5950 	{ 0x11 MSO_I, 0x12 MSO_I }, { 1800, 1800 }, { 0, 360 },					// circ1
5951 	{ 0x13 MSO_I, 0x14 MSO_I }, { 1200, 1200 }, { 0, 360 },					// circ2
5952 	{ 0xd MSO_I, 0xe MSO_I }, { 700, 700 }, { 0, 360 }						// circ3
5953 };
5954 static const sal_uInt16 mso_sptCloudCalloutSegm[] =
5955 {
5956 	0x4000, 0x2016, 0x6001, 0x8000,
5957 	0x4000, 0x2001, 0xaa00, 0x8000,
5958 	0x4000, 0x2001, 0xaa00, 0x8000,
5959 	0x4000, 0x2001, 0xaa00, 0x8000,
5960 	0x4000, 0x2001, 0xaa00, 0x8000,
5961 	0x4000, 0x2001, 0xaa00, 0x8000,
5962 	0x4000, 0x2001, 0xaa00, 0x8000,
5963 	0x4000, 0x2001, 0xaa00, 0x8000,
5964 	0x4000, 0x2001, 0xaa00, 0x8000,
5965 	0x4000, 0x2001, 0xaa00, 0x8000,
5966 	0x4000, 0x2001, 0xaa00, 0x8000,
5967 	0x4000, 0x2001, 0xaa00, 0x8000,
5968 	0xa203, 0x6001, 0x8000,
5969 	0xa203, 0x6001, 0x8000,
5970 	0xa203, 0x6001, 0x8000
5971 };
5972 static const SvxMSDffCalculationData mso_sptCloudCalloutCalc[] =
5973 {
5974 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
5975 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 10800 } },
5976 	{ 0x6008, { 0x400, 0x401, 0 } },
5977 	{ 0x400a, { 10800, 0x402, 0 } },					// 3
5978 	{ 0x4009, { 10800, 0x402, 0 } },					// 4
5979 	{ 0x2000, { 0x403, 10800, 0 } },					// 5
5980 	{ 0x2000, { 0x404, 10800, 0 } },					// 6
5981 	{ 0xa000, { DFF_Prop_adjustValue, 0, 0x405 } },		// 7
5982 	{ 0xa000, { DFF_Prop_adjust2Value,0, 0x406 } },		// 8
5983 	{ 0x2001, { 0x407, 1, 3 } },						// 9
5984 	{ 0x2001, { 0x408, 1, 3 } },						// 0xa
5985 	{ 0x2001, { 0x407, 2, 3 } },						// 0xb
5986 	{ 0x2001, { 0x408, 2, 3 } },						// 0xc
5987 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },			// 0xd
5988 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },		// 0xe
5989 	{ 0x2001, { 0x403, 1, 10800 / 900 } },				// 0xf	taking half x distance of the radius from the first bobble
5990 	{ 0x2001, { 0x404, 1, 10800 / 900 } },				// 0x10
5991 	{ 0xe000, { 0x409, 0x405, 0x40f } },				// 0x11
5992 	{ 0xe000, { 0x40a, 0x406, 0x410 } },				// 0x12
5993 	{ 0x6000, { 0x40b, 0x405, 0 } },					// 0x13
5994 	{ 0x6000, { 0x40c, 0x406, 0 } }						// 0x14
5995 };
5996 static const sal_Int32 mso_sptCloudCalloutDefault[] =
5997 {
5998 	2, 1350, 25920
5999 };
6000 static const SvxMSDffTextRectangles mso_sptCloudCalloutTextRect[] =
6001 {
6002 	{ { 3000, 3320 }, { 17110, 17330 } }
6003 };
6004 static const mso_CustomShape msoCloudCallout =
6005 {
6006 	(SvxMSDffVertPair*)mso_sptCloudCalloutVert, sizeof( mso_sptCloudCalloutVert ) / sizeof( SvxMSDffVertPair ),
6007 	(sal_uInt16*)mso_sptCloudCalloutSegm, sizeof( mso_sptCloudCalloutSegm ) >> 1,
6008 	(SvxMSDffCalculationData*)mso_sptCloudCalloutCalc, sizeof( mso_sptCloudCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
6009 	(sal_Int32*)mso_sptCloudCalloutDefault,
6010 	(SvxMSDffTextRectangles*)mso_sptCloudCalloutTextRect, sizeof( mso_sptCloudCalloutTextRect ) / sizeof( SvxMSDffTextRectangles ),
6011 	21600, 21600,
6012 	0x80000000, 0x80000000,
6013 	NULL, 0,
6014 	(SvxMSDffHandle*)mso_sptCalloutHandle, sizeof( mso_sptCalloutHandle ) / sizeof( SvxMSDffHandle )		// handles
6015 };
6016 
6017 static const SvxMSDffVertPair mso_sptWaveVert[] =	// adjustment1 : 0 - 4460
6018 {													// adjustment2 : 8640 - 12960
6019 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
6020 	{ 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
6021 };
6022 static const SvxMSDffCalculationData mso_sptWaveCalc[] =
6023 {
6024 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	//400 (vert.adj)
6025 	{ 0x8000, { 21600, 0, 0x400 } },			//401
6026 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
6027 	{ 0x2000, { 0x402, 0, 10800 } },			//403 -2160 -> 2160 (horz.adj)
6028 	{ 0x2001, { 0x403, 2, 1 } },				//404 -4320 -> 4320 (horz.adj)
6029 	{ 0x2003, { 0x404, 0, 0 } },				//405 abs( 0x404 )	(horz.adj)
6030 	{ 0x8000, { 4320, 0, 0x405 } },				//406
6031 	{ 0xa006, { 0x403, 0, 0x405 } },			//407
6032 	{ 0x4001, { 15800, 0x400, 4460 } },			//408 0 -> 15800	(vert.adj)
6033 	{ 0xa000, { 0x400, 0, 0x408 } },			//409
6034 	{ 0x6000, { 0x400, 0x408, 0 } },			//40a
6035 	{ 0x8000, { 21600, 0, 0x404 } },			//40b
6036 	{ 0x6006, { 0x403, 0x40b, 21600 } },		//40c
6037 	{ 0xa000, { 0x40c, 0, 0x407 } },			//40d width between p0 and p1
6038 	{ 0x2001, { 0x405, 1, 2 } },				//40e
6039 	{ 0xa000, { 0x407, 7200, 0x40e } },			//40f
6040 	{ 0x6000, { 0x40c, 0x40e, 7200 } },			//410
6041 	{ 0x2001, { 0x40d, 1, 2 } },				//411 1/2 width
6042 	{ 0x6000, { 0x407, 0x411, 0 } },			//412 top center glue xpos
6043 	{ 0x8000, { 21600, 0, 0x412 } },			//413 bottom center glue xpos
6044 	{ 0x2001, { 0x405, 1, 2 } },				//414 left glue x pos
6045 	{ 0x8000, { 21600, 0, 0x414 } },			//415 right glue x pos
6046 	{ 0x2001, { 0x400, 2, 1 } },				//416 y1 (textbox)
6047 	{ 0x8000, { 21600, 0, 0x416 } },			//417 y2 (textbox)
6048 
6049 	{ 0x8000, { 21600, 0, 0x407 } },			//418 p2
6050 
6051 	{ 0x8000, { 21600, 0, 0x40f } },			//419 c
6052 	{ 0x6000, { 0x401, 0x408, 0 } },			//41a
6053 
6054 	{ 0x8000, { 21600, 0, 0x410 } },			//41b c
6055 	{ 0xa000, { 0x401, 0, 0x408 } },			//41c
6056 
6057 	{ 0x8000, { 21600, 0, 0x40c } } 			//41d p3
6058 };
6059 static const SvxMSDffVertPair mso_sptWaveGluePoints[] =
6060 {
6061 	{ 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
6062 };
6063 static const sal_uInt16 mso_sptWaveSegm[] =
6064 {
6065 	0x4000, 0x2001, 0x0001, 0x2001, 0x6000, 0x8000
6066 };
6067 static const SvxMSDffHandle mso_sptWaveHandle[] =
6068 {
6069 	{	MSDFF_HANDLE_FLAGS_RANGE,
6070 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4460 },
6071 	{	MSDFF_HANDLE_FLAGS_RANGE,
6072 		0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
6073 };
6074 static const sal_Int32 mso_sptWaveDefault[] =
6075 {
6076 	2, 1400, 10800
6077 };
6078 static const SvxMSDffTextRectangles mso_sptWaveTextRect[] =
6079 {
6080 	{ { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
6081 };
6082 static const mso_CustomShape msoWave =
6083 {
6084 	(SvxMSDffVertPair*)mso_sptWaveVert, sizeof( mso_sptWaveVert ) / sizeof( SvxMSDffVertPair ),
6085 	(sal_uInt16*)mso_sptWaveSegm, sizeof( mso_sptWaveSegm ) >> 1,
6086 	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
6087 	(sal_Int32*)mso_sptWaveDefault,
6088 	(SvxMSDffTextRectangles*)mso_sptWaveTextRect, sizeof( mso_sptWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
6089 	21600, 21600,
6090 	0x80000000, 0x80000000,
6091 	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
6092 	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
6093 };
6094 
6095 static const SvxMSDffVertPair mso_sptDoubleWaveVert[] =	// adjustment1 : 0 - 2230
6096 {														// adjustment2 : 8640 - 12960
6097 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
6098 	{ 24 MSO_I, 1 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 29 MSO_I, 1 MSO_I }
6099 };
6100 static const SvxMSDffCalculationData mso_sptDoubleWaveCalc[] =
6101 {
6102 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	//400 (vert.adj)
6103 	{ 0x8000, { 21600, 0, 0x400 } },			//401
6104 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },//402 (horz.adj)
6105 	{ 0x2000, { 0x402, 0, 10800 } },			//403 -2160 -> 2160 (horz.adj)
6106 	{ 0x2001, { 0x403, 2, 1 } },				//404 -4320 -> 4320 (horz.adj)
6107 	{ 0x2003, { 0x404, 0, 0 } },				//405 abs( 0x404 )	(horz.adj)
6108 	{ 0x8000, { 4320, 0, 0x405 } },				//406 -> not used
6109 	{ 0xa006, { 0x403, 0, 0x405 } },			//407
6110 	{ 0x4001, { 7900, 0x400, 2230 } },			//408 0 -> 7900	(vert.adj)
6111 	{ 0xa000, { 0x400, 0, 0x408 } },			//409
6112 	{ 0x6000, { 0x400, 0x408, 0 } },			//40a
6113 	{ 0x8000, { 21600, 0, 0x404 } },			//40b
6114 	{ 0x6006, { 0x403, 0x40b, 21600 } },		//40c
6115 	{ 0xa000, { 0x40c, 0, 0x407 } },			//40d width between p0 and p1
6116 	{ 0x2001, { 0x405, 1, 2 } },				//40e
6117 	{ 0xa000, { 0x407, 3600, 0x40e } },			//40f
6118 	{ 0x6000, { 0x40c, 0x40e, 3600 } },			//410
6119 	{ 0x2001, { 0x40d, 1, 2 } },				//411 1/2 width
6120 	{ 0x6000, { 0x407, 0x411, 0 } },			//412 top center glue xpos
6121 	{ 0x8000, { 21600, 0, 0x412 } },			//413 bottom center glue xpos
6122 	{ 0x2001, { 0x405, 1, 2 } },				//414 left glue x pos
6123 	{ 0x8000, { 21600, 0, 0x414 } },			//415 right glue x pos
6124 	{ 0x2001, { 0x400, 2, 1 } },				//416 y1 (textbox)
6125 	{ 0x8000, { 21600, 0, 0x416 } },			//417 y2 (textbox)
6126 
6127 	{ 0x8000, { 21600, 0, 0x407 } },			//418 p2
6128 
6129 	{ 0x8000, { 21600, 0, 0x40f } },			//419 c
6130 	{ 0x6000, { 0x401, 0x408, 0 } },			//41a
6131 
6132 	{ 0x8000, { 21600, 0, 0x410 } },			//41b c
6133 	{ 0xa000, { 0x401, 0, 0x408 } },			//41c
6134 
6135 	{ 0x8000, { 21600, 0, 0x40c } }, 			//41d p3
6136 	{ 0xa000, { 0x412, 0, 0x40e } },			//41e
6137 	{ 0x6000, { 0x412, 0x40e, 0 } },			//41f
6138 	{ 0xa000, { 0x413, 0, 0x40e } },			//420
6139 	{ 0x6000, { 0x413, 0x40e, 0 } }				//421
6140 };
6141 static const SvxMSDffVertPair mso_sptDoubleWaveGluePoints[] =
6142 {
6143 	{ 0x12 MSO_I, 0 MSO_I }, { 0x14 MSO_I, 10800 }, { 0x13 MSO_I, 1 MSO_I }, { 0x15 MSO_I, 10800 }
6144 };
6145 static const sal_uInt16 mso_sptDoubleWaveSegm[] =
6146 {
6147 	0x4000, 0x2002, 0x0001, 0x2002, 0x6000, 0x8000
6148 };
6149 static const SvxMSDffHandle mso_sptDoubleWaveHandle[] =
6150 {
6151 	{	MSDFF_HANDLE_FLAGS_RANGE,
6152 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 2230 },
6153 	{	MSDFF_HANDLE_FLAGS_RANGE,
6154 		0x101, 21600, 10800, 10800, 8640, 12960, 0x80000000, 0x7fffffff }
6155 };
6156 static const sal_Int32 mso_sptDoubleWaveDefault[] =
6157 {
6158 	2, 1400, 10800
6159 };
6160 static const SvxMSDffTextRectangles mso_sptDoubleWaveTextRect[] =
6161 {
6162 	{ { 5 MSO_I, 22 MSO_I }, { 11 MSO_I, 23 MSO_I } }
6163 };
6164 static const mso_CustomShape msoDoubleWave =
6165 {
6166 	(SvxMSDffVertPair*)mso_sptDoubleWaveVert, sizeof( mso_sptDoubleWaveVert ) / sizeof( SvxMSDffVertPair ),
6167 	(sal_uInt16*)mso_sptDoubleWaveSegm, sizeof( mso_sptDoubleWaveSegm ) >> 1,
6168 	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
6169 	(sal_Int32*)mso_sptDoubleWaveDefault,
6170 	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
6171 	21600, 21600,
6172 	0x80000000, 0x80000000,
6173 	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
6174 	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
6175 };
6176 
6177 // for each shapetype a bit of 1 is indicating that the shape is NOT filled by default
6178 static const sal_uInt16 mso_DefaultFillingTable[] =
6179 {
6180 	0x0000, 0x0018, 0x01ff, 0x0000, 0x0c00, 0x01e0, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0600, 0x0000, 0x0000, 0x0000, 0x0000
6181 };
6182 sal_Bool IsCustomShapeFilledByDefault( MSO_SPT eSpType )
6183 {
6184 	sal_Bool bIsFilledByDefault = sal_True;
6185 	sal_uInt32 i = (sal_uInt32)eSpType;
6186 	if ( i < 0x100 )
6187 		bIsFilledByDefault = ( mso_DefaultFillingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
6188 	return bIsFilledByDefault;
6189 }
6190 sal_Int16 GetCustomShapeConnectionTypeDefault( MSO_SPT eSpType )
6191 {
6192 	sal_Int16 nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::SEGMENTS;
6193 	const mso_CustomShape* pDefCustomShape = GetCustomShapeContent( eSpType );
6194 	if ( pDefCustomShape && pDefCustomShape->nGluePoints )
6195 		nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::CUSTOM;
6196 	else
6197 	{
6198 		switch( eSpType )
6199 		{
6200 			case mso_sptRectangle :
6201 			case mso_sptRoundRectangle :
6202 			case mso_sptPictureFrame :
6203 			case mso_sptFlowChartProcess :
6204 			case mso_sptFlowChartPredefinedProcess :
6205 			case mso_sptFlowChartInternalStorage :
6206 			case mso_sptTextPlainText :
6207 			case mso_sptTextBox :
6208 			case mso_sptVerticalScroll :
6209 			case mso_sptHorizontalScroll :
6210 				nGluePointType = com::sun::star::drawing::EnhancedCustomShapeGluePointType::RECT;
6211 			default: break;
6212 		}
6213 	}
6214 	return nGluePointType;
6215 }
6216 
6217 // for each shapetype a bit of 1 is indicating that the shape is NOT stroked by default
6218 // #i28269#
6219 static const sal_uInt16 mso_DefaultStrokingTable[] =
6220 {
6221 	0x0000, 0x0000, 0x0000, 0x0000,
6222 	0x0800, 0x0000, 0x0000, 0x0000, // #i28269# Added shape 75 (mso_sptPictureFrame)
6223 	0x0000, 0x0000, 0x0000, 0x0000,
6224 	0x0000, 0x0000, 0x0000, 0x0000
6225 };
6226 // #i28269#
6227 sal_Bool IsCustomShapeStrokedByDefault( MSO_SPT eSpType )
6228 {
6229 	sal_Bool bIsStrokedByDefault = sal_True;
6230 	sal_uInt32 i = (sal_uInt32)eSpType;
6231 	if ( i < 0x100 )
6232 		bIsStrokedByDefault = ( mso_DefaultStrokingTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) == 0;
6233 	return bIsStrokedByDefault;
6234 }
6235 
6236 static const sal_uInt16 msoSortFilledObjectsToBackTable[] =
6237 {
6238 	0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0010, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
6239 };
6240 sal_Bool SortFilledObjectsToBackByDefault( MSO_SPT eSpType )
6241 {
6242 	sal_Bool bSortFilledObjectsToBackByDefault = sal_True;
6243 	sal_uInt32 i = (sal_uInt32)eSpType;
6244 	if ( i < 0x100 )
6245 		bSortFilledObjectsToBackByDefault = ( msoSortFilledObjectsToBackTable[ i >> 4 ] & ( 1 << ( i & 0xf ) ) ) != 0;
6246 	return bSortFilledObjectsToBackByDefault;
6247 }
6248 
6249 static const SvxMSDffVertPair mso_sptFontWorkVert[] =
6250 {
6251 	{ 0, 0 }, { 21600, 0 }, { 0, 21600 }, { 21600, 21600 }
6252 };
6253 static const sal_uInt16 mso_sptFontWorkSegm[] =
6254 {
6255 	0x4000, 0x0001, 0x8000,
6256 	0x4000, 0x0001, 0x8000
6257 };
6258 static const SvxMSDffTextRectangles mso_sptFontWorkTextRect[] =
6259 {
6260 	{ { 0, 0 }, { 21600, 21600 } }
6261 };
6262 static const mso_CustomShape msoFontWork =
6263 {
6264 	(SvxMSDffVertPair*)mso_sptFontWorkVert, sizeof( mso_sptFontWorkVert ) / sizeof( SvxMSDffVertPair ),
6265 	(sal_uInt16*)mso_sptFontWorkSegm, sizeof( mso_sptFontWorkSegm ) >> 1,
6266 	NULL, 0,
6267 	NULL,
6268 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6269 	21600, 21600,
6270 	0x80000000, 0x80000000,
6271 	NULL, 0,
6272 	NULL, 0	// Handles
6273 };
6274 
6275 static const SvxMSDffVertPair mso_sptTextPlainTextVert[] =
6276 {
6277 	{ 3 MSO_I, 0 }, { 5 MSO_I, 0 }, { 6 MSO_I, 21600 }, { 7 MSO_I, 21600 }
6278 };
6279 static const SvxMSDffCalculationData mso_sptTextPlainTextCalc[] =	// adjustment1 : 6629 - 14971
6280 {
6281 	{ 0x2000, { DFF_Prop_adjustValue, 0, 10800 } },
6282 	{ 0x2001, { 0x400, 2, 1 } },
6283 	{ 0x2003, { 0x401, 0, 0 } },
6284 	{ 0xa006, { 0x401, 0, 0x402 } },		// x1(3)
6285 	{ 0x8000, { 21600, 0, 0x402 } },
6286 	{ 0x6006, { 0x401, 0x404, 21600 } },	// x2(5)
6287 	{ 0x6006, { 0x401, 0x402, 0 } },		// x2
6288 	{ 0xa006, { 0x401, 21600, 0x404 } }		// x3(7)
6289 };
6290 static const sal_uInt16 mso_sptTextPlainTextSegm[] =
6291 {
6292 	0x4000, 0x0001, 0x8000,
6293 	0x4000, 0x0001, 0x8000
6294 };
6295 static const SvxMSDffHandle mso_sptTextPlainTextHandle[] =
6296 {
6297 	{	MSDFF_HANDLE_FLAGS_RANGE,
6298 		0x100, 21600, 10800, 10800, 6629, 14971, 0x80000000, 0x7fffffff }
6299 };
6300 static const mso_CustomShape msoTextPlainText =
6301 {
6302 	(SvxMSDffVertPair*)mso_sptTextPlainTextVert, sizeof( mso_sptTextPlainTextVert ) / sizeof( SvxMSDffVertPair ),
6303 	(sal_uInt16*)mso_sptTextPlainTextSegm, sizeof( mso_sptTextPlainTextSegm ) >> 1,
6304 	(SvxMSDffCalculationData*)mso_sptTextPlainTextCalc, sizeof( mso_sptTextPlainTextCalc ) / sizeof( SvxMSDffCalculationData ),
6305 	(sal_Int32*)mso_sptDefault10800,
6306 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6307 	21600, 21600,
6308 	0x80000000, 0x80000000,
6309 	NULL, 0,
6310 	(SvxMSDffHandle*)mso_sptTextPlainTextHandle, sizeof( mso_sptTextPlainTextHandle ) / sizeof( SvxMSDffHandle )
6311 };
6312 
6313 static const SvxMSDffVertPair mso_sptTextStopVert[] =
6314 {
6315 	{ 0, 0 MSO_I }, { 7200, 0 }, { 14400, 0 }, { 21600, 0 MSO_I },
6316 	{ 0, 1 MSO_I }, { 7200, 21600 }, { 14400, 21600 }, { 21600, 1 MSO_I }
6317 };
6318 static const SvxMSDffCalculationData mso_sptTextStopCalc[] =	// adjustment1 : 3080 - 10800
6319 {
6320 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6321 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6322 };
6323 static const sal_uInt16 mso_sptTextStopSegm[] =
6324 {
6325 	0x4000, 0x0003, 0x8000,
6326 	0x4000, 0x0003, 0x8000
6327 };
6328 static const sal_Int32 mso_sptTextStopDefault[] =
6329 {
6330 	1, 2700
6331 };
6332 static const SvxMSDffHandle mso_sptTextStopHandle[] =
6333 {
6334 	{	MSDFF_HANDLE_FLAGS_RANGE,
6335 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 3080, 10800 }
6336 };
6337 static const mso_CustomShape msoTextStop =
6338 {
6339 	(SvxMSDffVertPair*)mso_sptTextStopVert, sizeof( mso_sptTextStopVert ) / sizeof( SvxMSDffVertPair ),
6340 	(sal_uInt16*)mso_sptTextStopSegm, sizeof( mso_sptTextStopSegm ) >> 1,
6341 	(SvxMSDffCalculationData*)mso_sptTextStopCalc, sizeof( mso_sptTextStopCalc ) / sizeof( SvxMSDffCalculationData ),
6342 	(sal_Int32*)mso_sptTextStopDefault,
6343 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6344 	21600, 21600,
6345 	0x80000000, 0x80000000,
6346 	NULL, 0,
6347 	(SvxMSDffHandle*)mso_sptTextStopHandle, sizeof( mso_sptTextStopHandle ) / sizeof( SvxMSDffHandle )
6348 };
6349 
6350 static const SvxMSDffVertPair mso_sptTextTriangleVert[] =
6351 {
6352 	{ 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 21600 }
6353 };
6354 static const SvxMSDffCalculationData mso_sptTextTriangleCalc[] =	// adjustment1 : 6629 - 14971
6355 {
6356 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
6357 };
6358 static const sal_uInt16 mso_sptTextTriangleSegm[] =
6359 {
6360 	0x4000, 0x0002, 0x8000,
6361 	0x4000, 0x0001, 0x8000
6362 };
6363 static const SvxMSDffHandle mso_sptTextTriangleHandle[] =
6364 {
6365 	{	MSDFF_HANDLE_FLAGS_RANGE,
6366 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 21600 }
6367 };
6368 static const mso_CustomShape msoTextTriangle =
6369 {
6370 	(SvxMSDffVertPair*)mso_sptTextTriangleVert, sizeof( mso_sptTextTriangleVert ) / sizeof( SvxMSDffVertPair ),
6371 	(sal_uInt16*)mso_sptTextTriangleSegm, sizeof( mso_sptTextTriangleSegm ) >> 1,
6372 	(SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6373 	(sal_Int32*)mso_sptDefault10800,
6374 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6375 	21600, 21600,
6376 	0x80000000, 0x80000000,
6377 	NULL, 0,
6378 	(SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6379 };
6380 static const SvxMSDffVertPair mso_sptTextTriangleInvertedVert[] =
6381 {
6382 	{ 0, 0 }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6383 };
6384 static const sal_uInt16 mso_sptTextTriangleInvertedSegm[] =
6385 {
6386 	0x4000, 0x0001, 0x8000,
6387 	0x4000, 0x0002, 0x8000
6388 };
6389 static const mso_CustomShape msoTextTriangleInverted =
6390 {
6391 	(SvxMSDffVertPair*)mso_sptTextTriangleInvertedVert, sizeof( mso_sptTextTriangleInvertedVert ) / sizeof( SvxMSDffVertPair ),
6392 	(sal_uInt16*)mso_sptTextTriangleInvertedSegm, sizeof( mso_sptTextTriangleInvertedSegm ) >> 1,
6393 	(SvxMSDffCalculationData*)mso_sptTextTriangleCalc, sizeof( mso_sptTextTriangleCalc ) / sizeof( SvxMSDffCalculationData ),
6394 	(sal_Int32*)mso_sptDefault10800,
6395 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6396 	21600, 21600,
6397 	0x80000000, 0x80000000,
6398 	NULL, 0,
6399 	(SvxMSDffHandle*)mso_sptTextTriangleHandle, sizeof( mso_sptTextTriangleHandle ) / sizeof( SvxMSDffHandle )
6400 };
6401 
6402 static const SvxMSDffVertPair mso_sptTextChevronVert[] =
6403 {
6404 	{ 0, 0 MSO_I }, { 10800, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 10800, 1 MSO_I }, { 21600, 21600 }
6405 };
6406 static const SvxMSDffCalculationData mso_sptTextChevronCalc[] =	// adjustment1 : 6629 - 14971
6407 {
6408 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6409 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6410 };
6411 static const sal_uInt16 mso_sptTextChevronSegm[] =
6412 {
6413 	0x4000, 0x0002, 0x8000,
6414 	0x4000, 0x0002, 0x8000
6415 };
6416 static const SvxMSDffHandle mso_sptTextChevronHandle[] =
6417 {
6418 	{	MSDFF_HANDLE_FLAGS_RANGE,
6419 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6420 };
6421 static const mso_CustomShape msoTextChevron =
6422 {
6423 	(SvxMSDffVertPair*)mso_sptTextChevronVert, sizeof( mso_sptTextChevronVert ) / sizeof( SvxMSDffVertPair ),
6424 	(sal_uInt16*)mso_sptTextChevronSegm, sizeof( mso_sptTextChevronSegm ) >> 1,
6425 	(SvxMSDffCalculationData*)mso_sptTextChevronCalc, sizeof( mso_sptTextChevronCalc ) / sizeof( SvxMSDffCalculationData ),
6426 	(sal_Int32*)mso_sptDefault5400,
6427 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6428 	21600, 21600,
6429 	0x80000000, 0x80000000,
6430 	NULL, 0,
6431 	(SvxMSDffHandle*)mso_sptTextChevronHandle, sizeof( mso_sptTextChevronHandle ) / sizeof( SvxMSDffHandle )
6432 };
6433 
6434 static const SvxMSDffVertPair mso_sptTextChevronInvertedVert[] =
6435 {
6436 	{ 0, 0 }, { 10800, 1 MSO_I }, { 21600, 0 }, { 0, 0 MSO_I }, { 10800, 21600 }, { 21600, 0 MSO_I }
6437 };
6438 static const SvxMSDffCalculationData mso_sptTextChevronInvertedCalc[] =	// adjustment1 : 6629 - 14971
6439 {
6440 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6441 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6442 };
6443 static const sal_uInt16 mso_sptTextChevronInvertedSegm[] =
6444 {
6445 	0x4000, 0x0002, 0x8000,
6446 	0x4000, 0x0002, 0x8000
6447 };
6448 static const SvxMSDffHandle mso_sptTextChevronInvertedHandle[] =
6449 {
6450 	{	MSDFF_HANDLE_FLAGS_RANGE,
6451 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6452 };
6453 static const mso_CustomShape msoTextChevronInverted =
6454 {
6455 	(SvxMSDffVertPair*)mso_sptTextChevronInvertedVert, sizeof( mso_sptTextChevronInvertedVert ) / sizeof( SvxMSDffVertPair ),
6456 	(sal_uInt16*)mso_sptTextChevronInvertedSegm, sizeof( mso_sptTextChevronInvertedSegm ) >> 1,
6457 	(SvxMSDffCalculationData*)mso_sptTextChevronInvertedCalc, sizeof( mso_sptTextChevronInvertedCalc ) / sizeof( SvxMSDffCalculationData ),
6458 	(sal_Int32*)mso_sptDefault16200,
6459 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6460 	21600, 21600,
6461 	0x80000000, 0x80000000,
6462 	NULL, 0,
6463 	(SvxMSDffHandle*)mso_sptTextChevronInvertedHandle, sizeof( mso_sptTextChevronInvertedHandle ) / sizeof( SvxMSDffHandle )
6464 };
6465 
6466 static const SvxMSDffVertPair mso_sptTextRingOutsideVert[] =
6467 {
6468 	{ 10800, 0 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 },
6469 	{ 10800, 1 MSO_I }, { 10800, 0 MSO_I }, { 180, 359 }
6470 };
6471 static const SvxMSDffCalculationData mso_sptTextRingOutsideCalc[] =	// adjustment1 : 6629 - 14971
6472 {
6473 	{ 0x2001, { DFF_Prop_adjustValue, 1, 2 } },
6474 	{ 0x8000, { 21600, 0, 0x400 } }
6475 };
6476 static const sal_uInt16 mso_sptTextRingOutsideSegm[] =
6477 {
6478 	0xA203, 0x8000,
6479 	0xA203, 0x8000
6480 };
6481 static const SvxMSDffHandle mso_sptTextRingOutsideHandle[] =
6482 {
6483 	{	MSDFF_HANDLE_FLAGS_RANGE,
6484 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 10800, 21600 }
6485 };
6486 static const mso_CustomShape msoTextRingOutside =
6487 {
6488 	(SvxMSDffVertPair*)mso_sptTextRingOutsideVert, sizeof( mso_sptTextRingOutsideVert ) / sizeof( SvxMSDffVertPair ),
6489 	(sal_uInt16*)mso_sptTextRingOutsideSegm, sizeof( mso_sptTextRingOutsideSegm ) >> 1,
6490 	(SvxMSDffCalculationData*)mso_sptTextRingOutsideCalc, sizeof( mso_sptTextRingOutsideCalc ) / sizeof( SvxMSDffCalculationData ),
6491 	(sal_Int32*)mso_sptDefault16200,
6492 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6493 	21600, 21600,
6494 	0x80000000, 0x80000000,
6495 	NULL, 0,
6496 	(SvxMSDffHandle*)mso_sptTextRingOutsideHandle, sizeof( mso_sptTextRingOutsideHandle ) / sizeof( SvxMSDffHandle )
6497 };
6498 
6499 static const SvxMSDffVertPair mso_sptTextFadeRightVert[] =
6500 {
6501 	{ 0, 0 }, { 21600, 0 MSO_I }, { 0, 21600 }, { 21600, 1 MSO_I }
6502 };
6503 static const SvxMSDffCalculationData mso_sptTextFadeCalc[] =
6504 {
6505 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6506 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } }
6507 };
6508 static const sal_uInt16 mso_sptTextFadeSegm[] =
6509 {
6510 	0x4000, 0x0001, 0x8000,
6511 	0x4000, 0x0001, 0x8000
6512 };
6513 static const SvxMSDffHandle mso_sptTextFadeRightHandle[] =
6514 {
6515 	{	MSDFF_HANDLE_FLAGS_RANGE,
6516 		21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6517 };
6518 static const mso_CustomShape msoTextFadeRight =
6519 {
6520 	(SvxMSDffVertPair*)mso_sptTextFadeRightVert, sizeof( mso_sptTextFadeRightVert ) / sizeof( SvxMSDffVertPair ),
6521 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6522 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6523 	(sal_Int32*)mso_sptDefault7200,
6524 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6525 	21600, 21600,
6526 	0x80000000, 0x80000000,
6527 	NULL, 0,
6528 	(SvxMSDffHandle*)mso_sptTextFadeRightHandle, sizeof( mso_sptTextFadeRightHandle ) / sizeof( SvxMSDffHandle )
6529 };
6530 
6531 static const SvxMSDffVertPair mso_sptTextFadeLeftVert[] =
6532 {
6533 	{ 0, 0 MSO_I }, { 21600, 0 }, { 0, 1 MSO_I }, { 21600, 21600 }
6534 };
6535 static const SvxMSDffHandle mso_sptTextFadeLeftHandle[] =
6536 {
6537 	{	MSDFF_HANDLE_FLAGS_RANGE,
6538 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10800 }
6539 };
6540 static const mso_CustomShape msoTextFadeLeft =
6541 {
6542 	(SvxMSDffVertPair*)mso_sptTextFadeLeftVert, sizeof( mso_sptTextFadeLeftVert ) / sizeof( SvxMSDffVertPair ),
6543 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6544 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6545 	(sal_Int32*)mso_sptDefault7200,
6546 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6547 	21600, 21600,
6548 	0x80000000, 0x80000000,
6549 	NULL, 0,
6550 	(SvxMSDffHandle*)mso_sptTextFadeLeftHandle, sizeof( mso_sptTextFadeLeftHandle ) / sizeof( SvxMSDffHandle )
6551 };
6552 
6553 static const SvxMSDffVertPair mso_sptTextFadeUpVert[] =
6554 {
6555 	{ 0 MSO_I, 0 }, { 1 MSO_I, 0 }, { 0, 21600 }, { 21600, 21600 }
6556 };
6557 static const SvxMSDffHandle mso_sptTextFadeUpHandle[] =
6558 {
6559 	{	MSDFF_HANDLE_FLAGS_RANGE,
6560 		0x100, 0, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6561 };
6562 static const mso_CustomShape msoTextFadeUp =
6563 {
6564 	(SvxMSDffVertPair*)mso_sptTextFadeUpVert, sizeof( mso_sptTextFadeUpVert ) / sizeof( SvxMSDffVertPair ),
6565 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6566 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6567 	(sal_Int32*)mso_sptDefault7200,
6568 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6569 	21600, 21600,
6570 	0x80000000, 0x80000000,
6571 	NULL, 0,
6572 	(SvxMSDffHandle*)mso_sptTextFadeUpHandle, sizeof( mso_sptTextFadeUpHandle ) / sizeof( SvxMSDffHandle )
6573 };
6574 
6575 static const SvxMSDffVertPair mso_sptTextFadeDownVert[] =
6576 {
6577 	{ 0, 0 }, { 21600, 0 }, { 0 MSO_I, 21600 }, { 1 MSO_I, 21600 }
6578 };
6579 static const SvxMSDffHandle mso_sptTextFadeDownHandle[] =
6580 {
6581 	{	MSDFF_HANDLE_FLAGS_RANGE,
6582 		0x100, 21600, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6583 };
6584 static const mso_CustomShape msoTextFadeDown =
6585 {
6586 	(SvxMSDffVertPair*)mso_sptTextFadeDownVert, sizeof( mso_sptTextFadeDownVert ) / sizeof( SvxMSDffVertPair ),
6587 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6588 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6589 	(sal_Int32*)mso_sptDefault7200,
6590 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6591 	21600, 21600,
6592 	0x80000000, 0x80000000,
6593 	NULL, 0,
6594 	(SvxMSDffHandle*)mso_sptTextFadeDownHandle, sizeof( mso_sptTextFadeDownHandle ) / sizeof( SvxMSDffHandle )
6595 };
6596 
6597 static const SvxMSDffVertPair mso_sptTextSlantUpVert[] =
6598 {
6599 	{ 0, 0 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 1 MSO_I }
6600 };
6601 static const SvxMSDffHandle mso_sptTextSlantUpHandle[] =
6602 {
6603 	{	MSDFF_HANDLE_FLAGS_RANGE,
6604 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 15400 }
6605 };
6606 static const mso_CustomShape msoTextSlantUp =
6607 {
6608 	(SvxMSDffVertPair*)mso_sptTextSlantUpVert, sizeof( mso_sptTextSlantUpVert ) / sizeof( SvxMSDffVertPair ),
6609 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6610 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6611 	(sal_Int32*)mso_sptDefault12000,
6612 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6613 	21600, 21600,
6614 	0x80000000, 0x80000000,
6615 	NULL, 0,
6616 	(SvxMSDffHandle*)mso_sptTextSlantUpHandle, sizeof( mso_sptTextSlantUpHandle ) / sizeof( SvxMSDffHandle )
6617 };
6618 
6619 static const SvxMSDffVertPair mso_sptTextSlantDownVert[] =
6620 {
6621 	{ 0, 0 }, { 21600, 1 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6622 };
6623 static const SvxMSDffHandle mso_sptTextSlantDownHandle[] =
6624 {
6625 	{	MSDFF_HANDLE_FLAGS_RANGE,
6626 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6627 };
6628 static const mso_CustomShape msoTextSlantDown =
6629 {
6630 	(SvxMSDffVertPair*)mso_sptTextSlantDownVert, sizeof( mso_sptTextSlantDownVert ) / sizeof( SvxMSDffVertPair ),
6631 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6632 	(SvxMSDffCalculationData*)mso_sptTextFadeCalc, sizeof( mso_sptTextFadeCalc ) / sizeof( SvxMSDffCalculationData ),
6633 	(sal_Int32*)mso_sptDefault12000,
6634 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6635 	21600, 21600,
6636 	0x80000000, 0x80000000,
6637 	NULL, 0,
6638 	(SvxMSDffHandle*)mso_sptTextSlantDownHandle, sizeof( mso_sptTextSlantDownHandle ) / sizeof( SvxMSDffHandle )
6639 };
6640 
6641 static const SvxMSDffVertPair mso_sptTextCascadeUpVert[] =
6642 {
6643 	{ 0, 2 MSO_I }, { 21600, 0 }, { 0, 21600 }, { 21600, 0 MSO_I }
6644 };
6645 static const SvxMSDffCalculationData mso_sptTextCascadeCalc[] =
6646 {
6647 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
6648 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },
6649 	{ 0x2001, { 0x401, 1, 4 } }
6650 };
6651 static const SvxMSDffHandle mso_sptTextCascadeUpHandle[] =
6652 {
6653 	{	MSDFF_HANDLE_FLAGS_RANGE,
6654 		21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6655 };
6656 static const mso_CustomShape msoTextCascadeUp =
6657 {
6658 	(SvxMSDffVertPair*)mso_sptTextCascadeUpVert, sizeof( mso_sptTextCascadeUpVert ) / sizeof( SvxMSDffVertPair ),
6659 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6660 	(SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6661 	(sal_Int32*)mso_sptDefault9600,
6662 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6663 	21600, 21600,
6664 	0x80000000, 0x80000000,
6665 	NULL, 0,
6666 	(SvxMSDffHandle*)mso_sptTextCascadeUpHandle, sizeof( mso_sptTextCascadeUpHandle ) / sizeof( SvxMSDffHandle )
6667 };
6668 
6669 static const SvxMSDffVertPair mso_sptTextCascadeDownVert[] =
6670 {
6671 	{ 0, 0 }, { 21600, 2 MSO_I }, { 0, 0 MSO_I }, { 21600, 21600 }
6672 };
6673 static const SvxMSDffHandle mso_sptTextCascadeDownHandle[] =
6674 {
6675 	{	MSDFF_HANDLE_FLAGS_RANGE,
6676 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 6200, 21600 }
6677 };
6678 static const mso_CustomShape msoTextCascadeDown =
6679 {
6680 	(SvxMSDffVertPair*)mso_sptTextCascadeDownVert, sizeof( mso_sptTextCascadeDownVert ) / sizeof( SvxMSDffVertPair ),
6681 	(sal_uInt16*)mso_sptTextFadeSegm, sizeof( mso_sptTextFadeSegm ) >> 1,
6682 	(SvxMSDffCalculationData*)mso_sptTextCascadeCalc, sizeof( mso_sptTextCascadeCalc ) / sizeof( SvxMSDffCalculationData ),
6683 	(sal_Int32*)mso_sptDefault9600,
6684 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6685 	21600, 21600,
6686 	0x80000000, 0x80000000,
6687 	NULL, 0,
6688 	(SvxMSDffHandle*)mso_sptTextCascadeDownHandle, sizeof( mso_sptTextCascadeDownHandle ) / sizeof( SvxMSDffHandle )
6689 };
6690 
6691 static const SvxMSDffVertPair mso_sptTextArchUpCurveVert[] =
6692 {
6693 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I }
6694 };
6695 static const SvxMSDffCalculationData mso_sptTextArchCurveCalc[] =
6696 {
6697 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6698 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6699 	{ 0x2000, { 0x400, 10800, 0 } },
6700 	{ 0x2000, { 0x401, 10800, 0 } },
6701 	{ 0x8000, { 21600, 0, 0x402 } }
6702 };
6703 static const sal_uInt16 mso_sptTextArchUpCurveSegm[] =
6704 {
6705 	0xA504, 0x8000		// clockw�se arc
6706 };
6707 static const SvxMSDffHandle mso_sptTextArchUpCurveHandle[] =
6708 {
6709 	{	MSDFF_HANDLE_FLAGS_POLAR,
6710 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6711 };
6712 static const sal_Int32 mso_sptTextArchUpCurveDefault[] =
6713 {
6714 	1, 180
6715 };
6716 static const mso_CustomShape msoTextArchUpCurve =
6717 {
6718 	(SvxMSDffVertPair*)mso_sptTextArchUpCurveVert, sizeof( mso_sptTextArchUpCurveVert ) / sizeof( SvxMSDffVertPair ),
6719 	(sal_uInt16*)mso_sptTextArchUpCurveSegm, sizeof( mso_sptTextArchUpCurveSegm ) >> 1,
6720 	(SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6721 	(sal_Int32*)mso_sptTextArchUpCurveDefault,
6722 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6723 	21600, 21600,
6724 	0x80000000, 0x80000000,
6725 	NULL, 0,
6726 	(SvxMSDffHandle*)mso_sptTextArchUpCurveHandle, sizeof( mso_sptTextArchUpCurveHandle ) / sizeof( SvxMSDffHandle )
6727 };
6728 
6729 static const SvxMSDffVertPair mso_sptTextArchDownCurveVert[] =
6730 {
6731 	{ 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6732 };
6733 static const sal_uInt16 mso_sptTextArchDownCurveSegm[] =
6734 {
6735 	0xA304, 0x8000		// counter clockwise arc to
6736 };
6737 static const SvxMSDffHandle mso_sptTextArchDownCurveHandle[] =
6738 {
6739 	{	MSDFF_HANDLE_FLAGS_POLAR,
6740 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6741 };
6742 static const sal_Int32 mso_sptTextArchDownCurveDefault[] =
6743 {
6744 	1, 0
6745 };
6746 static const mso_CustomShape msoTextArchDownCurve =
6747 {
6748 	(SvxMSDffVertPair*)mso_sptTextArchDownCurveVert, sizeof( mso_sptTextArchDownCurveVert ) / sizeof( SvxMSDffVertPair ),
6749 	(sal_uInt16*)mso_sptTextArchDownCurveSegm, sizeof( mso_sptTextArchDownCurveSegm ) >> 1,
6750 	(SvxMSDffCalculationData*)mso_sptTextArchCurveCalc, sizeof( mso_sptTextArchCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6751 	(sal_Int32*)mso_sptTextArchDownCurveDefault,
6752 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6753 	21600, 21600,
6754 	0x80000000, 0x80000000,
6755 	NULL, 0,
6756 	(SvxMSDffHandle*)mso_sptTextArchDownCurveHandle, sizeof( mso_sptTextArchDownCurveHandle ) / sizeof( SvxMSDffHandle )
6757 };
6758 
6759 static const SvxMSDffVertPair mso_sptTextCircleCurveVert[] =
6760 {
6761 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I }
6762 };
6763 static const SvxMSDffCalculationData mso_sptTextCircleCurveCalc[] =
6764 {
6765 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6766 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6767 	{ 0x2000, { 0x400, 10800, 0 } },
6768 	{ 0x2000, { 0x401, 10800, 0 } },
6769 	{ 0x8000, { 21600, 0, 0x403 } }
6770 };
6771 static const sal_uInt16 mso_sptTextCircleCurveSegm[] =
6772 {
6773 	0xA504, 0x8000		// clockwise arc to
6774 };
6775 static const SvxMSDffHandle mso_sptTextCircleCurveHandle[] =
6776 {
6777 	{	MSDFF_HANDLE_FLAGS_POLAR,
6778 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6779 };
6780 static const sal_Int32 mso_sptTextCircleCurveDefault[] =
6781 {
6782 	1, -179
6783 };
6784 static const mso_CustomShape msoTextCircleCurve =
6785 {
6786 	(SvxMSDffVertPair*)mso_sptTextCircleCurveVert, sizeof( mso_sptTextCircleCurveVert ) / sizeof( SvxMSDffVertPair ),
6787 	(sal_uInt16*)mso_sptTextCircleCurveSegm, sizeof( mso_sptTextCircleCurveSegm ) >> 1,
6788 	(SvxMSDffCalculationData*)mso_sptTextCircleCurveCalc, sizeof( mso_sptTextCircleCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6789 	(sal_Int32*)mso_sptTextCircleCurveDefault,
6790 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6791 	21600, 21600,
6792 	0x80000000, 0x80000000,
6793 	NULL, 0,
6794 	(SvxMSDffHandle*)mso_sptTextCircleCurveHandle, sizeof( mso_sptTextCircleCurveHandle ) / sizeof( SvxMSDffHandle )
6795 };
6796 
6797 static const SvxMSDffVertPair mso_sptTextButtonCurveVert[] =
6798 {
6799 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6800 	{ 0, 10800 }, { 21600, 10800 },
6801 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6802 };
6803 static const SvxMSDffCalculationData mso_sptTextButtonCurveCalc[] =
6804 {
6805 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6806 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6807 	{ 0x2000, { 0x400, 10800, 0 } },
6808 	{ 0x2000, { 0x401, 10800, 0 } },
6809 	{ 0x8000, { 21600, 0, 0x402 } },
6810 	{ 0x8000, { 21600, 0, 0x403 } }
6811 };
6812 static const sal_uInt16 mso_sptTextButtonCurveSegm[] =
6813 {
6814 	0xA504, 0x8000,		// clockwise arc
6815 	0x4000, 0x0001, 0x8000,
6816 	0xA304, 0x8000		// counter clockwise
6817 };
6818 static const SvxMSDffHandle mso_sptTextButtonCurveHandle[] =
6819 {
6820 	{	MSDFF_HANDLE_FLAGS_POLAR,
6821 		10800, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6822 };
6823 static const sal_Int32 mso_sptTextButtonCurveDefault[] =
6824 {
6825 	1, 180
6826 };
6827 static const mso_CustomShape msoTextButtonCurve =
6828 {
6829 	(SvxMSDffVertPair*)mso_sptTextButtonCurveVert, sizeof( mso_sptTextButtonCurveVert ) / sizeof( SvxMSDffVertPair ),
6830 	(sal_uInt16*)mso_sptTextButtonCurveSegm, sizeof( mso_sptTextButtonCurveSegm ) >> 1,
6831 	(SvxMSDffCalculationData*)mso_sptTextButtonCurveCalc, sizeof( mso_sptTextButtonCurveCalc ) / sizeof( SvxMSDffCalculationData ),
6832 	(sal_Int32*)mso_sptTextButtonCurveDefault,
6833 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6834 	21600, 21600,
6835 	0x80000000, 0x80000000,
6836 	NULL, 0,
6837 	(SvxMSDffHandle*)mso_sptTextButtonCurveHandle, sizeof( mso_sptTextButtonCurveHandle ) / sizeof( SvxMSDffHandle )
6838 };
6839 
6840 static const SvxMSDffVertPair mso_sptTextArchUpPourVert[] =
6841 {
6842 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6843 	{ 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 0xa MSO_I, 9 MSO_I }
6844 };
6845 static const SvxMSDffCalculationData mso_sptTextArchPourCalc[] =
6846 {
6847 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6848 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6849 	{ 0x2000, { 0x400, 10800, 0 } },
6850 	{ 0x2000, { 0x401, 10800, 0 } },
6851 	{ 0x8000, { 21600, 0, 0x402 } },
6852 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6853 	{ 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },	// 6
6854 	{ 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6855 	{ 0x2000, { 0x406, 10800, 0 } },				// 8
6856 	{ 0x2000, { 0x407, 10800, 0 } },
6857 	{ 0x8000, { 21600, 0, 0x408 } },				// 10
6858 	{ 0x8000, { 21600, 0, 0x405 } }
6859 };
6860 static const sal_uInt16 mso_sptTextArchUpPourSegm[] =
6861 {
6862 	0xA504, 0x8000,	0xA504, 0x8000
6863 };
6864 static const SvxMSDffHandle mso_sptTextArchPourHandle[] =
6865 {
6866 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6867 		0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6868 };
6869 static const sal_Int32 mso_sptTextArchUpPourDefault[] =
6870 {
6871 	2, 180, 5400
6872 };
6873 static const mso_CustomShape msoTextArchUpPour =
6874 {
6875 	(SvxMSDffVertPair*)mso_sptTextArchUpPourVert, sizeof( mso_sptTextArchUpPourVert ) / sizeof( SvxMSDffVertPair ),
6876 	(sal_uInt16*)mso_sptTextArchUpPourSegm, sizeof( mso_sptTextArchUpPourSegm ) >> 1,
6877 	(SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6878 	(sal_Int32*)mso_sptTextArchUpPourDefault,
6879 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6880 	21600, 21600,
6881 	0x80000000, 0x80000000,
6882 	NULL, 0,
6883 	(SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6884 };
6885 
6886 static const SvxMSDffVertPair mso_sptTextArchDownPourVert[] =
6887 {
6888 	{ 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 0xa MSO_I, 9 MSO_I }, { 8 MSO_I, 9 MSO_I },
6889 	{ 0, 0 }, { 21600, 21600 }, { 4 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }
6890 };
6891 static const sal_uInt16 mso_sptTextArchDownPourSegm[] =
6892 {
6893 	0xA304, 0x8000,	0xA304, 0x8000
6894 };
6895 static const sal_Int32 mso_sptTextArchDownPourDefault[] =
6896 {
6897 	2, 0, 5400
6898 };
6899 static const mso_CustomShape msoTextArchDownPour =
6900 {
6901 	(SvxMSDffVertPair*)mso_sptTextArchDownPourVert, sizeof( mso_sptTextArchDownPourVert ) / sizeof( SvxMSDffVertPair ),
6902 	(sal_uInt16*)mso_sptTextArchDownPourSegm, sizeof( mso_sptTextArchDownPourSegm ) >> 1,
6903 	(SvxMSDffCalculationData*)mso_sptTextArchPourCalc, sizeof( mso_sptTextArchPourCalc ) / sizeof( SvxMSDffCalculationData ),
6904 	(sal_Int32*)mso_sptTextArchDownPourDefault,
6905 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6906 	21600, 21600,
6907 	0x80000000, 0x80000000,
6908 	NULL, 0,
6909 	(SvxMSDffHandle*)mso_sptTextArchPourHandle, sizeof( mso_sptTextArchPourHandle ) / sizeof( SvxMSDffHandle )
6910 };
6911 
6912 static const SvxMSDffVertPair mso_sptTextCirclePourVert[] =
6913 {
6914 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 4 MSO_I },
6915 	{ 5 MSO_I, 5 MSO_I }, { 11 MSO_I, 11 MSO_I }, { 8 MSO_I, 9 MSO_I }, { 8 MSO_I, 0xa MSO_I }
6916 };
6917 static const SvxMSDffCalculationData mso_sptTextCirclePourCalc[] =
6918 {
6919 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },
6920 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },
6921 	{ 0x2000, { 0x400, 10800, 0 } },
6922 	{ 0x2000, { 0x401, 10800, 0 } },
6923 	{ 0x8000, { 21600, 0, 0x403 } },
6924 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },
6925 	{ 0x600a, { 0x405, DFF_Prop_adjustValue, 0 } },	// 6
6926 	{ 0x6009, { 0x405, DFF_Prop_adjustValue, 0 } },
6927 	{ 0x2000, { 0x406, 10800, 0 } },				// 8
6928 	{ 0x2000, { 0x407, 10800, 0 } },
6929 	{ 0x8000, { 21600, 0, 0x409 } },				// 10
6930 	{ 0x8000, { 21600, 0, 0x405 } },
6931 	{ 0x000, { 21600, 0, 0 } }
6932 };
6933 static const sal_uInt16 mso_sptTextCirclePourSegm[] =
6934 {
6935 	0xA504, 0x8000, 0xA504, 0x8000
6936 };
6937 static const SvxMSDffHandle mso_sptTextCirclePourHandle[] =
6938 {
6939 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
6940 		0x101, 0x100, 10800, 10800, 0, 10800, 0x80000000, 0x7fffffff }
6941 };
6942 static const sal_Int32 mso_sptTextCirclePourDefault[] =
6943 {
6944 	2,  -179, 5400
6945 };
6946 static const mso_CustomShape msoTextCirclePour =
6947 {
6948 	(SvxMSDffVertPair*)mso_sptTextCirclePourVert, sizeof( mso_sptTextCirclePourVert ) / sizeof( SvxMSDffVertPair ),
6949 	(sal_uInt16*)mso_sptTextCirclePourSegm, sizeof( mso_sptTextCirclePourSegm ) >> 1,
6950 	(SvxMSDffCalculationData*)mso_sptTextCirclePourCalc, sizeof( mso_sptTextCirclePourCalc ) / sizeof( SvxMSDffCalculationData ),
6951 	(sal_Int32*)mso_sptTextCirclePourDefault,
6952 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
6953 	21600, 21600,
6954 	0x80000000, 0x80000000,
6955 	NULL, 0,
6956 	(SvxMSDffHandle*)mso_sptTextCirclePourHandle, sizeof( mso_sptTextCirclePourHandle ) / sizeof( SvxMSDffHandle )
6957 };
6958 
6959 static const SvxMSDffVertPair mso_sptTextButtonPourVert[] =
6960 {
6961 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 3 MSO_I },
6962 	{ 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 11 MSO_I }, { 12 MSO_I, 11 MSO_I },
6963 	{ 0x16 MSO_I, 16 MSO_I }, { 0x15 MSO_I, 16 MSO_I },
6964 	{ 0x16 MSO_I, 15 MSO_I }, { 0x15 MSO_I, 15 MSO_I },
6965 	{ 6 MSO_I, 6 MSO_I }, { 7 MSO_I, 7 MSO_I }, { 10 MSO_I, 13 MSO_I }, { 12 MSO_I, 13 MSO_I },
6966 	{ 0, 0 }, { 21600, 21600 }, { 2 MSO_I, 5 MSO_I }, { 4 MSO_I, 5 MSO_I }
6967 };
6968 static const SvxMSDffCalculationData mso_sptTextButtonPourCalc[] =
6969 {
6970 	{ 0x400a, { 10800, DFF_Prop_adjustValue, 0 } },					// 0x00
6971 	{ 0x4009, { 10800, DFF_Prop_adjustValue, 0 } },					// 0x01
6972 	{ 0x2000, { 0x400, 10800, 0 } },								// 0x02
6973 	{ 0x2000, { 0x401, 10800, 0 } },								// 0x03
6974 	{ 0x8000, { 21600, 0, 0x402 } },								// 0x04
6975 	{ 0x8000, { 21600, 0, 0x403 } },								// 0x05
6976 
6977 	{ 0x8000, { 10800, 0, DFF_Prop_adjust2Value } },				// 0x06
6978 	{ 0x8000, { 21600, 0, 0x406 } },								// 0x07
6979 
6980 	{ 0x600a, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } },	// 0x08
6981 	{ 0x6009, { DFF_Prop_adjust2Value, DFF_Prop_adjustValue, 0 } },	// 0x09
6982 	{ 0x2000, { 0x408, 10800, 0 } },	// 0x0a
6983 	{ 0x2000, { 0x409, 10800, 0 } },	// 0x0b
6984 	{ 0x8000, { 21600, 0, 0x40a } },	// 0x0c
6985 	{ 0x8000, { 21600, 0, 0x40b } },	// 0x0d
6986 	{ 0x2001, { 0x406, 1, 2 } },		// 0x0e
6987 	{ 0x4000, { 10800, 0x40e, 0 } },	// 0x0f
6988 	{ 0x8000, { 10800, 0, 0x40e } },	// 0x10
6989 	{ 0x6001, { 0x40e, 0x40e, 1 } },	// 0x11
6990 	{ 0x6001, { DFF_Prop_adjust2Value, DFF_Prop_adjust2Value, 1 } },	// 0x12
6991 	{ 0xA000, { 0x412, 0, 0x411 } },	// 0x13
6992 	{ 0x200d, { 0x413, 0, 0 } },		// 0x14
6993 	{ 0x4000, { 10800, 0x414, 0 } },	// 0x15
6994 	{ 0x8000, { 10800, 0, 0x414 } }		// 0x16
6995 };
6996 static const sal_uInt16 mso_sptTextButtonPourSegm[] =
6997 {
6998 	0xA504, 0x8000,		// clockwise arc
6999 	0xA504, 0x8000,		// clockwise arc
7000 	0x4000, 0x0001, 0x8000,
7001 	0x4000, 0x0001, 0x8000,
7002 	0xA304, 0x8000,		// counter clockwise
7003 	0xA304, 0x8000		// counter clockwise
7004 };
7005 static const SvxMSDffHandle mso_sptTextButtonPourHandle[] =
7006 {
7007 	{	MSDFF_HANDLE_FLAGS_POLAR | MSDFF_HANDLE_FLAGS_RADIUS_RANGE,
7008 		0x101, 0x100, 10800, 10800, 4320, 10800, 0x80000000, 0x7fffffff }
7009 };
7010 static const sal_Int32 mso_sptTextButtonPourDefault[] =
7011 {
7012 	2, 180, 5400
7013 };
7014 static const mso_CustomShape msoTextButtonPour =
7015 {
7016 	(SvxMSDffVertPair*)mso_sptTextButtonPourVert, sizeof( mso_sptTextButtonPourVert ) / sizeof( SvxMSDffVertPair ),
7017 	(sal_uInt16*)mso_sptTextButtonPourSegm, sizeof( mso_sptTextButtonPourSegm ) >> 1,
7018 	(SvxMSDffCalculationData*)mso_sptTextButtonPourCalc, sizeof( mso_sptTextButtonPourCalc ) / sizeof( SvxMSDffCalculationData ),
7019 	(sal_Int32*)mso_sptTextButtonPourDefault,
7020 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7021 	21600, 21600,
7022 	0x80000000, 0x80000000,
7023 	NULL, 0,
7024 	(SvxMSDffHandle*)mso_sptTextButtonPourHandle, sizeof( mso_sptTextButtonPourHandle ) / sizeof( SvxMSDffHandle )
7025 };
7026 
7027 static const SvxMSDffVertPair mso_sptTextCurveUpVert[] =
7028 {
7029 	{ 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
7030 	{ 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
7031 };
7032 static const SvxMSDffCalculationData mso_sptTextCurveUpCalc[] =
7033 {
7034 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7035 	{ 0x4001, { 14250, 0x400, 12170 } },		// 401
7036 	{ 0x4001, { 12800, 0x400, 12170 } },		// 402
7037 	{ 0x4001, { 6380, 0x400, 12170 } },			// 403
7038 	{ 0x8000, { 21600, 0, 0x403 } }				// 404
7039 };
7040 static const sal_uInt16 mso_sptTextCurveUpSegm[] =
7041 {
7042 	0x4000, 0x2001, 0x8000,
7043 	0x4000, 0x2002, 0x8000
7044 };
7045 static const SvxMSDffHandle mso_sptTextCurveUpHandle[] =
7046 {
7047 	{	MSDFF_HANDLE_FLAGS_RANGE,
7048 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
7049 };
7050 static const sal_Int32 mso_sptTextCurveUpDefault[] =
7051 {
7052 	1, 9900
7053 };
7054 static const mso_CustomShape msoTextCurveUp =
7055 {
7056 	(SvxMSDffVertPair*)mso_sptTextCurveUpVert, sizeof( mso_sptTextCurveUpVert ) / sizeof( SvxMSDffVertPair ),
7057 	(sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
7058 	(SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
7059 	(sal_Int32*)mso_sptTextCurveUpDefault,
7060 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7061 	21600, 21600,
7062 	0x80000000, 0x80000000,
7063 	NULL, 0,
7064 	(SvxMSDffHandle*)mso_sptTextCurveUpHandle, sizeof( mso_sptTextCurveUpHandle ) / sizeof( SvxMSDffHandle )
7065 };
7066 
7067 static const SvxMSDffVertPair mso_sptTextCurveDownVert[] =
7068 {
7069 //	{ 0, 0 MSO_I }, { 4900, 1 MSO_I /*12170->0 14250 ->0*/ }, { 11640, 2 MSO_I /*12170->0 12800 ->0*/ }, { 21600, 0 },
7070 	{ 0, 0 }, { 9960, 2 MSO_I }, { 16700, 1 MSO_I }, { 21600, 0 MSO_I },
7071 
7072 //	{ 0, 4 MSO_I /*12170->0 17220 ->21600*/ }, { 3700, 21600 }, { 8500, 21600 }, { 10100, 21600 }, { 14110, 21600 }, { 15910, 21600 }, { 21600, 4 MSO_I /*12170->0 17220 ->21600*/ }
7073 	{ 0, 4 MSO_I }, { 5690, 21600 }, { 7490, 21600 }, { 11500, 21600 }, { 13100, 21600 }, { 17900, 21600 }, { 21600, 4 MSO_I }
7074 };
7075 static const SvxMSDffHandle mso_sptTextCurveDownHandle[] =
7076 {
7077 	{	MSDFF_HANDLE_FLAGS_RANGE,
7078 		21600, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 12170 }
7079 };
7080 static const mso_CustomShape msoTextCurveDown =
7081 {
7082 	(SvxMSDffVertPair*)mso_sptTextCurveDownVert, sizeof( mso_sptTextCurveDownVert ) / sizeof( SvxMSDffVertPair ),
7083 	(sal_uInt16*)mso_sptTextCurveUpSegm, sizeof( mso_sptTextCurveUpSegm ) >> 1,
7084 	(SvxMSDffCalculationData*)mso_sptTextCurveUpCalc, sizeof( mso_sptTextCurveUpCalc ) / sizeof( SvxMSDffCalculationData ),
7085 	(sal_Int32*)mso_sptTextCurveUpDefault,
7086 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7087 	21600, 21600,
7088 	0x80000000, 0x80000000,
7089 	NULL, 0,
7090 	(SvxMSDffHandle*)mso_sptTextCurveDownHandle, sizeof( mso_sptTextCurveDownHandle ) / sizeof( SvxMSDffHandle )
7091 };
7092 
7093 static const SvxMSDffVertPair mso_sptTextCanUpVert[] =
7094 {
7095 	{ 0, 1 MSO_I }, { 900, 0 }, { 7100, 0 }, { 10800, 0 }, { 14500, 0 }, { 20700, 0 }, { 21600, 1 MSO_I },
7096 	{ 0, 21600 }, { 900, 4 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 4 MSO_I }, { 21600, 21600 }
7097 };
7098 static const SvxMSDffCalculationData mso_sptTextCanUpCalc[] =
7099 {
7100 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 400
7101 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 401
7102 	{ 0x2000, { DFF_Prop_adjustValue, 0, 14400 } }, // 402
7103 	{ 0x4001, { 5470, 0x402, 7200 } },				// 403
7104 	{ 0x4000, { 16130, 0x403, 0 } }					// 404
7105 };
7106 static const sal_uInt16 mso_sptTextCanUpSegm[] =
7107 {
7108 	0x4000, 0x2002, 0x8000,
7109 	0x4000, 0x2002, 0x8000
7110 };
7111 static const SvxMSDffHandle mso_sptTextCanUpHandle[] =
7112 {
7113 	{	MSDFF_HANDLE_FLAGS_RANGE,
7114 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 14400, 21600 }
7115 };
7116 static const sal_Int32 mso_sptTextCanUpDefault[] =
7117 {
7118 	1, 18500
7119 };
7120 static const mso_CustomShape msoTextCanUp =
7121 {
7122 	(SvxMSDffVertPair*)mso_sptTextCanUpVert, sizeof( mso_sptTextCanUpVert ) / sizeof( SvxMSDffVertPair ),
7123 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
7124 	(SvxMSDffCalculationData*)mso_sptTextCanUpCalc, sizeof( mso_sptTextCanUpCalc ) / sizeof( SvxMSDffCalculationData ),
7125 	(sal_Int32*)mso_sptTextCanUpDefault,
7126 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7127 	21600, 21600,
7128 	0x80000000, 0x80000000,
7129 	NULL, 0,
7130 	(SvxMSDffHandle*)mso_sptTextCanUpHandle, sizeof( mso_sptTextCanUpHandle ) / sizeof( SvxMSDffHandle )
7131 };
7132 
7133 static const SvxMSDffVertPair mso_sptTextCanDownVert[] =
7134 {
7135 	{ 0, 0 }, { 900, 2 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 20700, 2 MSO_I }, { 21600, 0 },
7136 	{ 0, 1 MSO_I }, { 900, 21600 }, { 7100, 21600 }, { 10800, 21600 }, { 14500, 21600 }, { 20700, 21600 }, { 21600, 1 MSO_I }
7137 };
7138 static const SvxMSDffCalculationData mso_sptTextCanDownCalc[] =
7139 {
7140 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },		// 400
7141 	{ 0x8000, { 21600, 0, DFF_Prop_adjustValue } },	// 401
7142 	{ 0x4001, { 5470, 0x400, 7200 } }				// 402
7143 };
7144 static const SvxMSDffHandle mso_sptTextCanDownHandle[] =
7145 {
7146 	{	MSDFF_HANDLE_FLAGS_RANGE,
7147 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 7200 }
7148 };
7149 static const sal_Int32 mso_sptTextCanDownDefault[] =
7150 {
7151 	1, 3100
7152 };
7153 static const mso_CustomShape msoTextCanDown =
7154 {
7155 	(SvxMSDffVertPair*)mso_sptTextCanDownVert, sizeof( mso_sptTextCanDownVert ) / sizeof( SvxMSDffVertPair ),
7156 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
7157 	(SvxMSDffCalculationData*)mso_sptTextCanDownCalc, sizeof( mso_sptTextCanDownCalc ) / sizeof( SvxMSDffCalculationData ),
7158 	(sal_Int32*)mso_sptTextCanDownDefault,
7159 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7160 	21600, 21600,
7161 	0x80000000, 0x80000000,
7162 	NULL, 0,
7163 	(SvxMSDffHandle*)mso_sptTextCanDownHandle, sizeof( mso_sptTextCanDownHandle ) / sizeof( SvxMSDffHandle )
7164 };
7165 
7166 static const SvxMSDffVertPair mso_sptTextInflateVert[] =
7167 {
7168 	{ 0, 0 MSO_I }, { 4100, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 17500, 1 MSO_I }, { 21600, 0 MSO_I },
7169 	{ 0, 2 MSO_I }, { 4100, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 17500, 3 MSO_I }, { 21600, 2 MSO_I }
7170 };
7171 static const SvxMSDffCalculationData mso_sptTextInflateCalc[] =
7172 {
7173 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7174 	{ 0x4001, { 1530, 0x400, 4650 } },			// 401
7175 	{ 0x8000, { 21600, 0, 0x400 } },			// 402
7176 	{ 0x8000, { 21600, 0, 0x401 } }				// 403
7177 };
7178 static const SvxMSDffHandle mso_sptTextInflateHandle[] =
7179 {
7180 	{	MSDFF_HANDLE_FLAGS_RANGE,
7181 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 4650 }
7182 };
7183 static const sal_Int32 mso_sptTextInflateDefault[] =
7184 {
7185 	1, 2950
7186 };
7187 static const mso_CustomShape msoTextInflate =
7188 {
7189 	(SvxMSDffVertPair*)mso_sptTextInflateVert, sizeof( mso_sptTextInflateVert ) / sizeof( SvxMSDffVertPair ),
7190 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
7191 	(SvxMSDffCalculationData*)mso_sptTextInflateCalc, sizeof( mso_sptTextInflateCalc ) / sizeof( SvxMSDffCalculationData ),
7192 	(sal_Int32*)mso_sptTextInflateDefault,
7193 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7194 	21600, 21600,
7195 	0x80000000, 0x80000000,
7196 	NULL, 0,
7197 	(SvxMSDffHandle*)mso_sptTextInflateHandle, sizeof( mso_sptTextInflateHandle ) / sizeof( SvxMSDffHandle )
7198 };
7199 
7200 static const SvxMSDffVertPair mso_sptTextDeflateVert[] =
7201 {
7202 	{ 0, 0 }, { 3500, 1 MSO_I }, { 7100, 0 MSO_I }, { 10800, 0 MSO_I }, { 14500, 0 MSO_I }, { 18100, 1 MSO_I }, { 21600, 0 },
7203 	{ 0, 21600 }, { 3500, 3 MSO_I }, { 7100, 2 MSO_I }, { 10800, 2 MSO_I }, { 14500, 2 MSO_I }, { 18100, 3 MSO_I }, { 21600, 21600 }
7204 };
7205 static const SvxMSDffCalculationData mso_sptTextDeflateCalc[] =
7206 {
7207 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7208 	{ 0x2001, { 0x400, 5320, 7100 } },			// 401
7209 	{ 0x8000, { 21600, 0, 0x400 } },			// 402
7210 	{ 0x8000, { 21600, 0, 0x401 } }				// 403
7211 };
7212 static const SvxMSDffHandle mso_sptTextDeflateHandle[] =
7213 {
7214 	{	MSDFF_HANDLE_FLAGS_RANGE,
7215 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 8100 }
7216 };
7217 static const mso_CustomShape msoTextDeflate =
7218 {
7219 	(SvxMSDffVertPair*)mso_sptTextDeflateVert, sizeof( mso_sptTextDeflateVert ) / sizeof( SvxMSDffVertPair ),
7220 	(sal_uInt16*)mso_sptTextCanUpSegm, sizeof( mso_sptTextCanUpSegm ) >> 1,
7221 	(SvxMSDffCalculationData*)mso_sptTextDeflateCalc, sizeof( mso_sptTextDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
7222 	(sal_Int32*)mso_sptDefault8100,
7223 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7224 	21600, 21600,
7225 	0x80000000, 0x80000000,
7226 	NULL, 0,
7227 	(SvxMSDffHandle*)mso_sptTextDeflateHandle, sizeof( mso_sptTextDeflateHandle ) / sizeof( SvxMSDffHandle )
7228 };
7229 
7230 static const SvxMSDffVertPair mso_sptTextInflateBottomVert[] =
7231 {
7232 	{ 0, 0 }, { 21600, 0 },
7233 	{ 0, 0 MSO_I }, { 3500, 3 MSO_I }, { 7300, 21600 }, { 10800, 21600 }, { 14300, 21600 }, { 18100, 3 MSO_I }, { 21600, 0 MSO_I }
7234 };
7235 static const SvxMSDffCalculationData mso_sptTextInflateBottomCalc[] =
7236 {
7237 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7238 	{ 0x2000, { 0x400, 0, 11150 } },			// 401 0->10450
7239 	{ 0x2001, { 0x401, 3900, 10450 } },			// 402
7240 	{ 0x2000, { 0x402, 17700, 0 } }				// 403
7241 };
7242 static const sal_uInt16 mso_sptTextInflateBottomSegm[] =
7243 {
7244 	0x4000, 0x0001, 0x8000,
7245 	0x4000, 0x2002, 0x8000
7246 };
7247 static const SvxMSDffHandle mso_sptTextInflateBottomHandle[] =
7248 {
7249 	{	MSDFF_HANDLE_FLAGS_RANGE,
7250 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 11150, 21600 }
7251 };
7252 static const sal_Int32 mso_sptTextInflateBottomDefault[] =
7253 {
7254 	1, 14700
7255 };
7256 static const mso_CustomShape msoTextInflateBottom =
7257 {
7258 	(SvxMSDffVertPair*)mso_sptTextInflateBottomVert, sizeof( mso_sptTextInflateBottomVert ) / sizeof( SvxMSDffVertPair ),
7259 	(sal_uInt16*)mso_sptTextInflateBottomSegm, sizeof( mso_sptTextInflateBottomSegm ) >> 1,
7260 	(SvxMSDffCalculationData*)mso_sptTextInflateBottomCalc, sizeof( mso_sptTextInflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
7261 	(sal_Int32*)mso_sptTextInflateBottomDefault,
7262 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7263 	21600, 21600,
7264 	0x80000000, 0x80000000,
7265 	NULL, 0,
7266 	(SvxMSDffHandle*)mso_sptTextInflateBottomHandle, sizeof( mso_sptTextInflateBottomHandle ) / sizeof( SvxMSDffHandle )
7267 };
7268 
7269 static const SvxMSDffVertPair mso_sptTextDeflateBottomVert[] =
7270 {
7271 	{ 0, 0 }, { 21600, 0 },
7272 	{ 0, 21600 }, { 2900, 3 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 3 MSO_I }, { 21600, 21600 }
7273 };
7274 static const SvxMSDffCalculationData mso_sptTextDeflateBottomCalc[] =
7275 {
7276 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7277 	{ 0x2000, { 0x400, 0, 1350 } },				// 401 0->20250
7278 	{ 0x2001, { 0x401, 12070, 20250 } },		// 402
7279 	{ 0x2000, { 0x402, 9530, 0 } }				// 403
7280 };
7281 static const sal_uInt16 mso_sptTextDeflateBottomSegm[] =
7282 {
7283 	0x4000, 0x0001, 0x8000,
7284 	0x4000, 0x2002, 0x8000
7285 };
7286 static const SvxMSDffHandle mso_sptTextDeflateBottomHandle[] =
7287 {
7288 	{	MSDFF_HANDLE_FLAGS_RANGE,
7289 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1350, 21600 }
7290 };
7291 static const sal_Int32 mso_sptTextDeflateBottomDefault[] =
7292 {
7293 	1, 11500
7294 };
7295 static const mso_CustomShape msoTextDeflateBottom =
7296 {
7297 	(SvxMSDffVertPair*)mso_sptTextDeflateBottomVert, sizeof( mso_sptTextDeflateBottomVert ) / sizeof( SvxMSDffVertPair ),
7298 	(sal_uInt16*)mso_sptTextDeflateBottomSegm, sizeof( mso_sptTextDeflateBottomSegm ) >> 1,
7299 	(SvxMSDffCalculationData*)mso_sptTextDeflateBottomCalc, sizeof( mso_sptTextDeflateBottomCalc ) / sizeof( SvxMSDffCalculationData ),
7300 	(sal_Int32*)mso_sptTextDeflateBottomDefault,
7301 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7302 	21600, 21600,
7303 	0x80000000, 0x80000000,
7304 	NULL, 0,
7305 	(SvxMSDffHandle*)mso_sptTextDeflateBottomHandle, sizeof( mso_sptTextDeflateBottomHandle ) / sizeof( SvxMSDffHandle )
7306 };
7307 
7308 static const SvxMSDffVertPair mso_sptTextInflateTopVert[] =
7309 {
7310 	{ 0, 0 MSO_I }, { 3500, 1 MSO_I }, { 7300, 0 }, { 10800, 0 }, { 14300, 0 }, { 18100, 1 MSO_I }, { 21600, 0 MSO_I },
7311 	{ 0, 21600 }, { 21600, 21600 }
7312 };
7313 static const SvxMSDffCalculationData mso_sptTextInflateTopCalc[] =
7314 {
7315 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7316 	{ 0x2001, { 0x400, 3900, 10450 } }			// 401
7317 };
7318 static const sal_uInt16 mso_sptTextInflateTopSegm[] =
7319 {
7320 	0x4000, 0x2002, 0x8000,
7321 	0x4000, 0x0001, 0x8000
7322 };
7323 static const SvxMSDffHandle mso_sptTextInflateTopHandle[] =
7324 {
7325 	{	MSDFF_HANDLE_FLAGS_RANGE,
7326 		0, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 10450 }
7327 };
7328 static const sal_Int32 mso_sptTextInflateTopDefault[] =
7329 {
7330 	1, 6900
7331 };
7332 static const mso_CustomShape msoTextInflateTop =
7333 {
7334 	(SvxMSDffVertPair*)mso_sptTextInflateTopVert, sizeof( mso_sptTextInflateTopVert ) / sizeof( SvxMSDffVertPair ),
7335 	(sal_uInt16*)mso_sptTextInflateTopSegm, sizeof( mso_sptTextInflateTopSegm ) >> 1,
7336 	(SvxMSDffCalculationData*)mso_sptTextInflateTopCalc, sizeof( mso_sptTextInflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7337 	(sal_Int32*)mso_sptTextInflateTopDefault,
7338 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7339 	21600, 21600,
7340 	0x80000000, 0x80000000,
7341 	NULL, 0,
7342 	(SvxMSDffHandle*)mso_sptTextInflateTopHandle, sizeof( mso_sptTextInflateTopHandle ) / sizeof( SvxMSDffHandle )
7343 };
7344 
7345 static const SvxMSDffVertPair mso_sptTextDeflateTopVert[] =
7346 {
7347 	{ 0, 0 }, { 2900, 1 MSO_I }, { 7200, 0 MSO_I }, { 10800, 0 MSO_I }, { 14400, 0 MSO_I }, { 18700, 1 MSO_I }, { 21600, 0 },
7348 	{ 0, 21600 }, { 21600, 21600 }
7349 };
7350 static const SvxMSDffCalculationData mso_sptTextDeflateTopCalc[] =
7351 {
7352 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7353 	{ 0x2001, { 0x400, 12070, 20250 } }         // 402
7354 };
7355 static const sal_uInt16 mso_sptTextDeflateTopSegm[] =
7356 {
7357 	0x4000, 0x2002, 0x8000,
7358 	0x4000, 0x0001, 0x8000
7359 };
7360 static const SvxMSDffHandle mso_sptTextDeflateTopHandle[] =
7361 {
7362 	{	MSDFF_HANDLE_FLAGS_RANGE,
7363 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 0, 20250 }
7364 };
7365 static const sal_Int32 mso_sptTextDeflateTopDefault[] =
7366 {
7367 	1, 10100
7368 };
7369 static const mso_CustomShape msoTextDeflateTop =
7370 {
7371 	(SvxMSDffVertPair*)mso_sptTextDeflateTopVert, sizeof( mso_sptTextDeflateTopVert ) / sizeof( SvxMSDffVertPair ),
7372 	(sal_uInt16*)mso_sptTextDeflateTopSegm, sizeof( mso_sptTextDeflateTopSegm ) >> 1,
7373 	(SvxMSDffCalculationData*)mso_sptTextDeflateTopCalc, sizeof( mso_sptTextDeflateTopCalc ) / sizeof( SvxMSDffCalculationData ),
7374 	(sal_Int32*)mso_sptTextDeflateTopDefault,
7375 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7376 	21600, 21600,
7377 	0x80000000, 0x80000000,
7378 	NULL, 0,
7379 	(SvxMSDffHandle*)mso_sptTextDeflateTopHandle, sizeof( mso_sptTextDeflateTopHandle ) / sizeof( SvxMSDffHandle )
7380 };
7381 
7382 static const SvxMSDffVertPair mso_sptTextDeflateInflateVert[] =
7383 {
7384 	{ 0, 0 }, { 21600, 0 },
7385 	{ 0, 10100 }, { 3300, 3 MSO_I }, { 7100, 5 MSO_I }, { 10800, 5 MSO_I }, { 14500, 5 MSO_I }, { 18300, 3 MSO_I }, { 21600, 10100 },
7386 	{ 0, 11500 }, { 3300, 4 MSO_I }, { 7100, 6 MSO_I }, { 10800, 6 MSO_I }, { 14500, 6 MSO_I }, { 18300, 4 MSO_I }, { 21600, 11500 },
7387 	{ 0, 21600 }, { 21600, 21600 }
7388 };
7389 static const SvxMSDffCalculationData mso_sptTextDeflateInflateCalc[] =
7390 {
7391 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },	// 400
7392 	{ 0x8000, { 10800, 0, 0x400 } },			// 401
7393 	{ 0x2001, { 0x401, 5770, 9500 } },			// 402
7394 	{ 0x8000, { 10100, 0, 0x402 } },			// 403
7395 	{ 0x8000, { 11500, 0, 0x402 } },			// 404
7396 	{ 0x2000, { 0x400, 0, 700 } },				// 405
7397 	{ 0x2000, { 0x400, 700, 0 }	}  		    	// 406
7398 };
7399 static const sal_uInt16 mso_sptTextDeflateInflateSegm[] =
7400 {
7401 	0x4000, 0x0001, 0x8000,
7402 	0x4000, 0x2002, 0x8000,
7403 	0x4000, 0x2002, 0x8000,
7404 	0x4000, 0x0001, 0x8000
7405 };
7406 static const SvxMSDffHandle mso_sptTextDeflateInflateHandle[] =
7407 {
7408 	{	MSDFF_HANDLE_FLAGS_RANGE,
7409 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 1300, 20300 }
7410 };
7411 static const sal_Int32 mso_sptTextDeflateInflateDefault[] =
7412 {
7413 	1, 6500
7414 };
7415 static const mso_CustomShape msoTextDeflateInflate =
7416 {
7417 	(SvxMSDffVertPair*)mso_sptTextDeflateInflateVert, sizeof( mso_sptTextDeflateInflateVert ) / sizeof( SvxMSDffVertPair ),
7418 	(sal_uInt16*)mso_sptTextDeflateInflateSegm, sizeof( mso_sptTextDeflateInflateSegm ) >> 1,
7419 	(SvxMSDffCalculationData*)mso_sptTextDeflateInflateCalc, sizeof( mso_sptTextDeflateInflateCalc ) / sizeof( SvxMSDffCalculationData ),
7420 	(sal_Int32*)mso_sptTextDeflateInflateDefault,
7421 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7422 	21600, 21600,
7423 	0x80000000, 0x80000000,
7424 	NULL, 0,
7425 	(SvxMSDffHandle*)mso_sptTextDeflateInflateHandle, sizeof( mso_sptTextDeflateInflateHandle ) / sizeof( SvxMSDffHandle )
7426 };
7427 
7428 static const SvxMSDffVertPair mso_sptTextDeflateInflateDeflateVert[] =
7429 {
7430 	{ 0, 0 }, { 21600, 0 },
7431 	{ 0, 6600 }, { 3600, 3 MSO_I }, { 7250, 4 MSO_I }, { 10800, 4 MSO_I }, { 14350, 4 MSO_I }, { 18000, 3 MSO_I }, { 21600, 6600 },
7432 	{ 0, 7500 }, { 3600, 5 MSO_I }, { 7250, 6 MSO_I }, { 10800, 6 MSO_I }, { 14350, 6 MSO_I }, { 18000, 5 MSO_I }, { 21600, 7500 },
7433 	{ 0, 14100 }, { 3600, 9 MSO_I }, { 7250, 10 MSO_I }, { 10800, 10 MSO_I }, { 14350, 10 MSO_I }, { 18000, 9 MSO_I }, { 21600, 14100 },
7434 	{ 0, 15000 }, { 3600, 7 MSO_I }, { 7250, 8 MSO_I }, { 10800, 8 MSO_I }, { 14350, 8 MSO_I }, { 18000, 7 MSO_I }, { 21600, 15000 },
7435 	{ 0, 21600 }, { 21600, 21600 }
7436 };
7437 static const SvxMSDffCalculationData mso_sptTextDeflateInflateDeflateCalc[] =
7438 {
7439 	{ 0x2000, { DFF_Prop_adjustValue, 0, 850 } },		// 400
7440 	{ 0x2001, { 0x400, 6120, 8700 } },
7441 	{ 0x2000, { 0x401, 0, 4280 } },
7442 	{ 0x4000, { 6600, 0x402, 0 } },
7443 	{ 0x2000, { DFF_Prop_adjustValue, 0, 450 } },		// 404
7444 	{ 0x2000, { 0x403, 900, 0 } },						// 405
7445 	{ 0x2000, { 0x404, 900, 0 } },						// 406
7446 	{ 0x8000, { 21600, 0, 0x403 } },					// 407
7447 	{ 0x8000, { 21600, 0, 0x404 } },					// 408
7448 	{ 0x8000, { 21600, 0, 0x405 } },					// 409
7449 	{ 0x8000, { 21600, 0, 0x406 } }						// 410
7450 };
7451 static const sal_uInt16 mso_sptTextDeflateInflateDeflateSegm[] =
7452 {
7453 	0x4000, 0x0001, 0x8000,
7454 	0x4000, 0x2002, 0x8000,
7455 	0x4000, 0x2002, 0x8000,
7456 	0x4000, 0x2002, 0x8000,
7457 	0x4000, 0x2002, 0x8000,
7458 	0x4000, 0x0001, 0x8000
7459 };
7460 static const SvxMSDffHandle mso_sptTextDeflateInflateDeflateHandle[] =
7461 {
7462 	{	MSDFF_HANDLE_FLAGS_RANGE,
7463 		10800, 0x100, 10800, 10800, 0x80000000, 0x7fffffff, 850, 9550 }
7464 };
7465 static const sal_Int32 mso_sptTextDeflateInflateDeflateDefault[] =
7466 {
7467 	1, 6050
7468 };
7469 static const mso_CustomShape msoTextDeflateInflateDeflate =
7470 {
7471 	(SvxMSDffVertPair*)mso_sptTextDeflateInflateDeflateVert, sizeof( mso_sptTextDeflateInflateDeflateVert ) / sizeof( SvxMSDffVertPair ),
7472 	(sal_uInt16*)mso_sptTextDeflateInflateDeflateSegm, sizeof( mso_sptTextDeflateInflateDeflateSegm ) >> 1,
7473 	(SvxMSDffCalculationData*)mso_sptTextDeflateInflateDeflateCalc, sizeof( mso_sptTextDeflateInflateDeflateCalc ) / sizeof( SvxMSDffCalculationData ),
7474 	(sal_Int32*)mso_sptTextDeflateInflateDeflateDefault,
7475 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7476 	21600, 21600,
7477 	0x80000000, 0x80000000,
7478 	NULL, 0,
7479 	(SvxMSDffHandle*)mso_sptTextDeflateInflateDeflateHandle, sizeof( mso_sptTextDeflateInflateDeflateHandle ) / sizeof( SvxMSDffHandle )
7480 };
7481 
7482 static const SvxMSDffVertPair mso_sptTextWave1Vert[] =	// adjustment1 : 0 - 4459
7483 {													// adjustment2 : 8640 - 12960
7484 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7485 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7486 };
7487 static const sal_uInt16 mso_sptTextWave1Segm[] =
7488 {
7489 	0x4000, 0x2001, 0x8000,
7490 	0x4000, 0x2001, 0x8000
7491 };
7492 static const mso_CustomShape msoTextWave1 =
7493 {
7494 	(SvxMSDffVertPair*)mso_sptTextWave1Vert, sizeof( mso_sptTextWave1Vert ) / sizeof( SvxMSDffVertPair ),
7495 	(sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7496 	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7497 	(sal_Int32*)mso_sptWaveDefault,
7498 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7499 	21600, 21600,
7500 	0x80000000, 0x80000000,
7501 	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7502 	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7503 };
7504 
7505 static const SvxMSDffVertPair mso_sptTextWave2Vert[] =	// adjustment1 : 0 - 4459
7506 {													// adjustment2 : 8640 - 12960
7507 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7508 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7509 };
7510 static const mso_CustomShape msoTextWave2 =
7511 {
7512 	(SvxMSDffVertPair*)mso_sptTextWave2Vert, sizeof( mso_sptTextWave2Vert ) / sizeof( SvxMSDffVertPair ),
7513 	(sal_uInt16*)mso_sptTextWave1Segm, sizeof( mso_sptTextWave1Segm ) >> 1,
7514 	(SvxMSDffCalculationData*)mso_sptWaveCalc, sizeof( mso_sptWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7515 	(sal_Int32*)mso_sptWaveDefault,
7516 	(SvxMSDffTextRectangles*)mso_sptFontWorkTextRect, sizeof( mso_sptFontWorkTextRect ) / sizeof( SvxMSDffTextRectangles ),
7517 	21600, 21600,
7518 	0x80000000, 0x80000000,
7519 	(SvxMSDffVertPair*)mso_sptWaveGluePoints, sizeof( mso_sptWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7520 	(SvxMSDffHandle*)mso_sptWaveHandle, sizeof( mso_sptWaveHandle ) / sizeof( SvxMSDffHandle )
7521 };
7522 
7523 static const SvxMSDffVertPair mso_sptTextWave3Vert[] =	// adjustment1 : 0 - 2230
7524 {														// adjustment2 : 8640 - 12960
7525 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 9 MSO_I }, { 0x1e MSO_I, 10 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 9 MSO_I }, { 16 MSO_I, 10 MSO_I }, { 12 MSO_I, 0 MSO_I },
7526 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 28 MSO_I }, { 0x20 MSO_I, 26 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 28 MSO_I }, { 25 MSO_I, 26 MSO_I }, { 24 MSO_I, 1 MSO_I }
7527 };
7528 static const sal_uInt16 mso_sptTextWave3Segm[] =
7529 {
7530 	0x4000, 0x2002, 0x8000,
7531 	0x4000, 0x2002, 0x8000
7532 };
7533 static const mso_CustomShape msoTextWave3 =
7534 {
7535 	(SvxMSDffVertPair*)mso_sptTextWave3Vert, sizeof( mso_sptTextWave3Vert ) / sizeof( SvxMSDffVertPair ),
7536 	(sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7537 	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7538 	(sal_Int32*)mso_sptDoubleWaveDefault,
7539 	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7540 	21600, 21600,
7541 	0x80000000, 0x80000000,
7542 	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7543 	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7544 };
7545 
7546 static const SvxMSDffVertPair mso_sptTextWave4Vert[] =	// adjustment1 : 0 - 2230
7547 {														// adjustment2 : 8640 - 12960
7548 	{ 7 MSO_I, 0 MSO_I }, { 15 MSO_I, 10 MSO_I }, { 0x1e MSO_I, 9 MSO_I }, { 0x12 MSO_I, 0 MSO_I }, { 0x1f MSO_I, 10 MSO_I }, { 16 MSO_I, 9 MSO_I }, { 12 MSO_I, 0 MSO_I },
7549 	{ 29 MSO_I, 1 MSO_I }, { 27 MSO_I, 26 MSO_I }, { 0x20 MSO_I, 28 MSO_I }, { 0x13 MSO_I, 1 MSO_I }, { 0x21 MSO_I, 26 MSO_I }, { 25 MSO_I, 28 MSO_I }, { 24 MSO_I, 1 MSO_I }
7550 };
7551 static const mso_CustomShape msoTextWave4 =
7552 {
7553 	(SvxMSDffVertPair*)mso_sptTextWave4Vert, sizeof( mso_sptTextWave4Vert ) / sizeof( SvxMSDffVertPair ),
7554 	(sal_uInt16*)mso_sptTextWave3Segm, sizeof( mso_sptTextWave3Segm ) >> 1,
7555 	(SvxMSDffCalculationData*)mso_sptDoubleWaveCalc, sizeof( mso_sptDoubleWaveCalc ) / sizeof( SvxMSDffCalculationData ),
7556 	(sal_Int32*)mso_sptDoubleWaveDefault,
7557 	(SvxMSDffTextRectangles*)mso_sptDoubleWaveTextRect, sizeof( mso_sptDoubleWaveTextRect ) / sizeof( SvxMSDffTextRectangles ),
7558 	21600, 21600,
7559 	0x80000000, 0x80000000,
7560 	(SvxMSDffVertPair*)mso_sptDoubleWaveGluePoints, sizeof( mso_sptDoubleWaveGluePoints ) / sizeof( SvxMSDffVertPair ),
7561 	(SvxMSDffHandle*)mso_sptDoubleWaveHandle, sizeof( mso_sptDoubleWaveHandle ) / sizeof( SvxMSDffHandle )
7562 };
7563 
7564 static const sal_Int32 mso_sptCalloutDefault1[] =
7565 {
7566 	4, -1800, 24500, -1800, 4000
7567 };
7568 static const sal_Int32 mso_sptCalloutDefault2[] =
7569 {
7570 	4, -8300, 24500, -1800, 4000
7571 };
7572 static const sal_Int32 mso_sptCalloutDefault3[] =
7573 {
7574 	6, -10000, 24500, -3600, 4000, -1800, 4000
7575 };
7576 static const sal_Int32 mso_sptCalloutDefault4[] =
7577 {
7578 	8, 23400, 24500, 25200, 21600, 25200, 4000, 23400, 4000
7579 };
7580 static const SvxMSDffVertPair mso_sptCalloutVert1[] =
7581 {
7582 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }
7583 };
7584 static const SvxMSDffHandle mso_sptCalloutHandle1[] =
7585 {
7586 	{	0,
7587 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7588 	{	0,
7589 		0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7590 };
7591 static const sal_uInt16 mso_sptCalloutSegm1a[] =
7592 {
7593 	0x4000, 0x0003, 0x6000, 0x8000,
7594 	0x4000, 0x0001, 0x8000
7595 };
7596 static const sal_uInt16 mso_sptCalloutSegm1b[] =
7597 {
7598 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7599 	0x4000, 0x0001, 0x8000
7600 };
7601 static const SvxMSDffVertPair mso_sptCallout1Vert[] =
7602 {
7603 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 0 }, { 2 MSO_I, 21600 }
7604 };
7605 static const sal_uInt16 mso_sptCallout1Segm1a[] =
7606 {
7607 	0x4000, 0x0003, 0x6000, 0x8000,
7608 	0x4000, 0x0001, 0x8000,
7609 	0x4000, 0x0001, 0x8000
7610 };
7611 static const sal_uInt16 mso_sptCallout1Segm1b[] =
7612 {
7613 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7614 	0x4000, 0x0001, 0x8000,
7615 	0x4000, 0x0001, 0x8000
7616 };
7617 static const SvxMSDffVertPair mso_sptCallout2Verta[] =
7618 {
7619 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }
7620 };
7621 static const SvxMSDffVertPair mso_sptCallout2Vertb[] =
7622 {
7623 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 0 MSO_I, 1 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 4 MSO_I, 0 }, { 4 MSO_I, 21600 }
7624 };
7625 static const SvxMSDffHandle mso_sptCalloutHandle2[] =
7626 {
7627 	{	0,
7628 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7629 	{	0,
7630 		0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7631 	{	0,
7632 		0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7633 };
7634 static const sal_uInt16 mso_sptCallout2Segm1a[] =
7635 {
7636 	0x4000, 0x0003, 0x6000, 0x8000,
7637 	0x4000, 0x0001, 0x8000,
7638 	0x4000, 0x0001, 0x8000,
7639 	0x4000, 0x0001, 0x8000
7640 };
7641 static const sal_uInt16 mso_sptCallout2Segm1b[] =
7642 {
7643 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7644 	0x4000, 0x0001, 0x8000,
7645 	0x4000, 0x0001, 0x8000,
7646 	0x4000, 0x0001, 0x8000
7647 };
7648 static const sal_uInt16 mso_sptCallout2Segm1c[] =
7649 {
7650 	0x4000, 0x0003, 0x6000, 0x8000,
7651 	0x4000, 0x0001, 0x8000,
7652 	0x4000, 0x0001, 0x8000,
7653 	0x4000, 0x0001, 0x8000,
7654 	0x4000, 0x0001, 0x8000
7655 };
7656 static const sal_uInt16 mso_sptCallout2Segm1d[] =
7657 {
7658 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7659 	0x4000, 0x0001, 0x8000,
7660 	0x4000, 0x0001, 0x8000,
7661 	0x4000, 0x0001, 0x8000,
7662 	0x4000, 0x0001, 0x8000
7663 };
7664 static const SvxMSDffVertPair mso_sptCallout3Verta[] =
7665 {
7666 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }
7667 };
7668 static const SvxMSDffVertPair mso_sptCallout3Vertb[] =
7669 {
7670 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }, { 0, 21600 }, { 6 MSO_I, 7 MSO_I }, { 4 MSO_I, 5 MSO_I }, { 2 MSO_I, 3 MSO_I }, { 0 MSO_I, 1 MSO_I }, { 6 MSO_I, 0 }, { 6 MSO_I, 21600 }
7671 };
7672 static const SvxMSDffHandle mso_sptCalloutHandle3[] =
7673 {
7674 	{	0,
7675 		0x100, 0x101, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7676 	{	0,
7677 		0x102, 0x103, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7678 	{	0,
7679 		0x104, 0x105, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff },
7680 	{	0,
7681 		0x106, 0x107, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7682 };
7683 static const sal_uInt16 mso_sptCallout3Segm1a[] =
7684 {
7685 	0x4000, 0x0003, 0x6000, 0x8000,
7686 	0x4000, 0xaa00, 0x0003, 0x8000			// NO_FILL
7687 };
7688 static const sal_uInt16 mso_sptCallout3Segm1b[] =
7689 {
7690 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7691 	0x4000, 0xaa00, 0x0003, 0x8000			// NO FILL
7692 };
7693 static const sal_uInt16 mso_sptCallout3Segm1c[] =
7694 {
7695 	0x4000, 0x0003, 0x6000, 0x8000,
7696 	0x4000, 0xaa00, 0x0003, 0x8000,			// NO FILL
7697 	0x4000, 0x0001, 0x8000
7698 };
7699 static const sal_uInt16 mso_sptCallout3Segm1d[] =
7700 {
7701 	0x4000, 0xab00, 0x0003, 0x6000, 0x8000,	// NO STROKE
7702 	0x4000, 0xaa00, 0x0003, 0x8000,			// NO FILL
7703 	0x4000, 0x0001, 0x8000
7704 };
7705 
7706 static const SvxMSDffCalculationData mso_sptCalloutCalc[] =
7707 {
7708 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7709 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7710 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
7711 	{ 0x2000, { DFF_Prop_adjust4Value, 0, 0 } },
7712 	{ 0x2000, { DFF_Prop_adjust5Value, 0, 0 } },
7713 	{ 0x2000, { DFF_Prop_adjust6Value, 0, 0 } },
7714 	{ 0x2000, { DFF_Prop_adjust7Value, 0, 0 } },
7715 	{ 0x2000, { DFF_Prop_adjust8Value, 0, 0 } }
7716 };
7717 
7718 static const mso_CustomShape msoCallout90 =
7719 {
7720 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7721 	(sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7722 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7723 	(sal_Int32*)mso_sptCalloutDefault1,
7724 	NULL, 0,
7725 	21600, 21600,
7726 	0x80000000, 0x80000000,
7727 	NULL, 0,
7728 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7729 };
7730 static const mso_CustomShape msoCallout1 =
7731 {
7732 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7733 	(sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7734 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7735 	(sal_Int32*)mso_sptCalloutDefault2,
7736 	NULL, 0,
7737 	21600, 21600,
7738 	0x80000000, 0x80000000,
7739 	NULL, 0,
7740 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7741 };
7742 static const mso_CustomShape msoCallout2 =
7743 {
7744 	(SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7745 	(sal_uInt16*)mso_sptCallout2Segm1b, sizeof( mso_sptCallout2Segm1b ) >> 1,
7746 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7747 	(sal_Int32*)mso_sptCalloutDefault3,
7748 	NULL, 0,
7749 	21600, 21600,
7750 	0x80000000, 0x80000000,
7751 	NULL, 0,
7752 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7753 };
7754 static const mso_CustomShape msoCallout3 =
7755 {
7756 	(SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7757 	(sal_uInt16*)mso_sptCallout3Segm1b, sizeof( mso_sptCallout3Segm1b ) >> 1,
7758 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7759 	(sal_Int32*)mso_sptCalloutDefault4,
7760 	NULL, 0,
7761 	21600, 21600,
7762 	0x80000000, 0x80000000,
7763 	NULL, 0,
7764 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7765 };
7766 static const mso_CustomShape msoAccentCallout90 =
7767 {
7768 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7769 	(sal_uInt16*)mso_sptCalloutSegm1b, sizeof( mso_sptCalloutSegm1b ) >> 1,
7770 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7771 	(sal_Int32*)mso_sptCalloutDefault1,
7772 	NULL, 0,
7773 	21600, 21600,
7774 	0x80000000, 0x80000000,
7775 	NULL, 0,
7776 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7777 };
7778 static const mso_CustomShape msoAccentCallout1 =
7779 {
7780 	(SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7781 	(sal_uInt16*)mso_sptCallout1Segm1b, sizeof( mso_sptCallout1Segm1b ) >> 1,
7782 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7783 	(sal_Int32*)mso_sptCalloutDefault2,
7784 	NULL, 0,
7785 	21600, 21600,
7786 	0x80000000, 0x80000000,
7787 	NULL, 0,
7788 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7789 };
7790 static const mso_CustomShape msoAccentCallout2 =
7791 {
7792 	(SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7793 	(sal_uInt16*)mso_sptCallout2Segm1d, sizeof( mso_sptCallout2Segm1d ) >> 1,
7794 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7795 	(sal_Int32*)mso_sptCalloutDefault3,
7796 	NULL, 0,
7797 	21600, 21600,
7798 	0x80000000, 0x80000000,
7799 	NULL, 0,
7800 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7801 };
7802 static const mso_CustomShape msoAccentCallout3 =
7803 {
7804 	(SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7805 	(sal_uInt16*)mso_sptCallout3Segm1d, sizeof( mso_sptCallout3Segm1d ) >> 1,
7806 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7807 	(sal_Int32*)mso_sptCalloutDefault4,
7808 	NULL, 0,
7809 	21600, 21600,
7810 	0x80000000, 0x80000000,
7811 	NULL, 0,
7812 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7813 };
7814 static const mso_CustomShape msoBorderCallout90 =
7815 {
7816 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7817 	(sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7818 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7819 	(sal_Int32*)mso_sptCalloutDefault1,
7820 	NULL, 0,
7821 	21600, 21600,
7822 	0x80000000, 0x80000000,
7823 	NULL, 0,
7824 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7825 };
7826 static const mso_CustomShape msoBorderCallout1 =
7827 {
7828 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7829 	(sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7830 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7831 	(sal_Int32*)mso_sptCalloutDefault2,
7832 	NULL, 0,
7833 	21600, 21600,
7834 	0x80000000, 0x80000000,
7835 	NULL, 0,
7836 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7837 };
7838 static const mso_CustomShape msoBorderCallout2 =
7839 {
7840 	(SvxMSDffVertPair*)mso_sptCallout2Verta, sizeof( mso_sptCallout2Verta ) / sizeof( SvxMSDffVertPair ),
7841 	(sal_uInt16*)mso_sptCallout2Segm1a, sizeof( mso_sptCallout2Segm1a ) >> 1,
7842 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7843 	(sal_Int32*)mso_sptCalloutDefault3,
7844 	NULL, 0,
7845 	21600, 21600,
7846 	0x80000000, 0x80000000,
7847 	NULL, 0,
7848 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7849 };
7850 static const mso_CustomShape msoBorderCallout3 =
7851 {
7852 	(SvxMSDffVertPair*)mso_sptCallout3Verta, sizeof( mso_sptCallout3Verta ) / sizeof( SvxMSDffVertPair ),
7853 	(sal_uInt16*)mso_sptCallout3Segm1a, sizeof( mso_sptCallout3Segm1a ) >> 1,
7854 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7855 	(sal_Int32*)mso_sptCalloutDefault4,
7856 	NULL, 0,
7857 	21600, 21600,
7858 	0x80000000, 0x80000000,
7859 	NULL, 0,
7860 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7861 };
7862 static const mso_CustomShape msoAccentBorderCallout90 =
7863 {
7864 	(SvxMSDffVertPair*)mso_sptCalloutVert1, sizeof( mso_sptCalloutVert1 ) / sizeof( SvxMSDffVertPair ),
7865 	(sal_uInt16*)mso_sptCalloutSegm1a, sizeof( mso_sptCalloutSegm1a ) >> 1,
7866 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7867 	(sal_Int32*)mso_sptCalloutDefault1,
7868 	NULL, 0,
7869 	21600, 21600,
7870 	0x80000000, 0x80000000,
7871 	NULL, 0,
7872 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7873 };
7874 static const mso_CustomShape msoAccentBorderCallout1 =
7875 {
7876 	(SvxMSDffVertPair*)mso_sptCallout1Vert, sizeof( mso_sptCallout1Vert ) / sizeof( SvxMSDffVertPair ),
7877 	(sal_uInt16*)mso_sptCallout1Segm1a, sizeof( mso_sptCallout1Segm1a ) >> 1,
7878 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7879 	(sal_Int32*)mso_sptCalloutDefault2,
7880 	NULL, 0,
7881 	21600, 21600,
7882 	0x80000000, 0x80000000,
7883 	NULL, 0,
7884 	(SvxMSDffHandle*)mso_sptCalloutHandle1, sizeof( mso_sptCalloutHandle1 ) / sizeof( SvxMSDffHandle )
7885 };
7886 static const mso_CustomShape msoAccentBorderCallout2 =
7887 {
7888 	(SvxMSDffVertPair*)mso_sptCallout2Vertb, sizeof( mso_sptCallout2Vertb ) / sizeof( SvxMSDffVertPair ),
7889 	(sal_uInt16*)mso_sptCallout2Segm1c, sizeof( mso_sptCallout2Segm1c ) >> 1,
7890 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7891 	(sal_Int32*)mso_sptCalloutDefault3,
7892 	NULL, 0,
7893 	21600, 21600,
7894 	0x80000000, 0x80000000,
7895 	NULL, 0,
7896 	(SvxMSDffHandle*)mso_sptCalloutHandle2, sizeof( mso_sptCalloutHandle2 ) / sizeof( SvxMSDffHandle )
7897 };
7898 static const mso_CustomShape msoAccentBorderCallout3 =
7899 {
7900 	(SvxMSDffVertPair*)mso_sptCallout3Vertb, sizeof( mso_sptCallout3Vertb ) / sizeof( SvxMSDffVertPair ),
7901 	(sal_uInt16*)mso_sptCallout3Segm1c, sizeof( mso_sptCallout3Segm1c ) >> 1,
7902 	(SvxMSDffCalculationData*)mso_sptCalloutCalc, sizeof( mso_sptCalloutCalc ) / sizeof( SvxMSDffCalculationData ),
7903 	(sal_Int32*)mso_sptCalloutDefault4,
7904 	NULL, 0,
7905 	21600, 21600,
7906 	0x80000000, 0x80000000,
7907 	NULL, 0,
7908 	(SvxMSDffHandle*)mso_sptCalloutHandle3, sizeof( mso_sptCalloutHandle3 ) / sizeof( SvxMSDffHandle )
7909 };
7910 
7911 static const SvxMSDffVertPair mso_sptStraightConnector1Vert[] =
7912 {
7913 	{ 0, 0 }, { 21600, 21600 }
7914 };
7915 static const sal_uInt16 mso_sptStraightConnector1Segm[] =
7916 {
7917 	0x4000, 0x0001, 0x8000
7918 };
7919 static const mso_CustomShape msoStraightConnector1 =
7920 {
7921 	(SvxMSDffVertPair*)mso_sptStraightConnector1Vert, sizeof( mso_sptStraightConnector1Vert ) / sizeof( SvxMSDffVertPair ),
7922 	(sal_uInt16*)mso_sptStraightConnector1Segm, sizeof( mso_sptStraightConnector1Segm ) >> 1,
7923 	(SvxMSDffCalculationData*)NULL, 0,
7924 	(sal_Int32*)NULL,
7925 	NULL, 0,
7926 	21600, 21600,
7927 	0x80000000, 0x80000000,
7928 	NULL, 0,
7929 	(SvxMSDffHandle*)NULL, 0
7930 };
7931 
7932 static const SvxMSDffVertPair mso_sptBentConnector2Vert[] =
7933 {
7934 	{ 0, 0 }, { 21600, 0 }, { 21600, 21600 }
7935 };
7936 static const sal_uInt16 mso_sptBentConnector2Segm[] =
7937 {
7938 	0x4000, 0x0002, 0x8000
7939 };
7940 static const mso_CustomShape msoBentConnector2 =
7941 {
7942 	(SvxMSDffVertPair*)mso_sptBentConnector2Vert, sizeof( mso_sptBentConnector2Vert ) / sizeof( SvxMSDffVertPair ),
7943 	(sal_uInt16*)mso_sptBentConnector2Segm, sizeof( mso_sptBentConnector2Segm ) >> 1,
7944 	(SvxMSDffCalculationData*)NULL, 0,
7945 	(sal_Int32*)NULL,
7946 	NULL, 0,
7947 	21600, 21600,
7948 	0x80000000, 0x80000000,
7949 	NULL, 0,
7950 	(SvxMSDffHandle*)NULL, 0
7951 };
7952 
7953 static const SvxMSDffVertPair mso_sptBentConnector3Vert[] =
7954 {
7955 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 21600 }, { 21600, 21600 }
7956 };
7957 static const sal_uInt16 mso_sptBentConnector3Segm[] =
7958 {
7959 	0x4000, 0x0003, 0x8000
7960 };
7961 static const SvxMSDffCalculationData mso_sptBentConnector3Calc[] =
7962 {
7963 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } }
7964 };
7965 static const sal_Int32 mso_sptBentConnector3Default[] =
7966 {
7967 	1, 10800
7968 };
7969 static const SvxMSDffHandle mso_sptBentConnector3Handle[] =
7970 {
7971 	{	MSDFF_HANDLE_FLAGS_RANGE,
7972 		0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
7973 };
7974 static const mso_CustomShape msoBentConnector3 =
7975 {
7976 	(SvxMSDffVertPair*)mso_sptBentConnector3Vert, sizeof( mso_sptBentConnector3Vert ) / sizeof( SvxMSDffVertPair ),
7977 	(sal_uInt16*)mso_sptBentConnector3Segm, sizeof( mso_sptBentConnector3Segm ) >> 1,
7978 	(SvxMSDffCalculationData*)mso_sptBentConnector3Calc, sizeof( mso_sptBentConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
7979 	(sal_Int32*)mso_sptBentConnector3Default,
7980 	NULL, 0,
7981 	21600, 21600,
7982 	0x80000000, 0x80000000,
7983 	NULL, 0,
7984 	(SvxMSDffHandle*)mso_sptBentConnector3Handle, sizeof( mso_sptBentConnector3Handle ) / sizeof( SvxMSDffHandle )
7985 };
7986 
7987 static const SvxMSDffVertPair mso_sptBentConnector4Vert[] =
7988 {
7989 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 1 MSO_I }, { 21600, 1 MSO_I }, { 21600, 21600 }
7990 };
7991 static const sal_uInt16 mso_sptBentConnector4Segm[] =
7992 {
7993 	0x4000, 0x0004, 0x8000
7994 };
7995 static const SvxMSDffCalculationData mso_sptBentConnector4Calc[] =
7996 {
7997 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
7998 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
7999 	{ 0x2000, { 0x400, 21600, 0 } },
8000 	{ 0x2001, { 0x402, 1, 2 } },
8001 	{ 0x2001, { 0x401, 1, 2 } }
8002 };
8003 static const sal_Int32 mso_sptBentConnector4Default[] =
8004 {
8005 	2, 10800, 10800
8006 };
8007 static const SvxMSDffHandle mso_sptBentConnector4Handle[] =
8008 {
8009 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
8010 		0x100, 4 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 4 + 3, 4 + 3 },
8011 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
8012 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
8013 };
8014 static const mso_CustomShape msoBentConnector4 =
8015 {
8016 	(SvxMSDffVertPair*)mso_sptBentConnector4Vert, sizeof( mso_sptBentConnector4Vert ) / sizeof( SvxMSDffVertPair ),
8017 	(sal_uInt16*)mso_sptBentConnector4Segm, sizeof( mso_sptBentConnector4Segm ) >> 1,
8018 	(SvxMSDffCalculationData*)mso_sptBentConnector4Calc, sizeof( mso_sptBentConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
8019 	(sal_Int32*)mso_sptBentConnector4Default,
8020 	NULL, 0,
8021 	21600, 21600,
8022 	0x80000000, 0x80000000,
8023 	NULL, 0,
8024 	(SvxMSDffHandle*)mso_sptBentConnector4Handle, sizeof( mso_sptBentConnector4Handle ) / sizeof( SvxMSDffHandle )
8025 };
8026 
8027 static const SvxMSDffVertPair mso_sptBentConnector5Vert[] =
8028 {
8029 	{ 0, 0 }, { 0 MSO_I, 0 }, { 0 MSO_I, 4 MSO_I }, { 1 MSO_I, 4 MSO_I }, { 1 MSO_I, 21600 }, { 21600, 21600 }
8030 };
8031 static const sal_uInt16 mso_sptBentConnector5Segm[] =
8032 {
8033 	0x4000, 0x0005, 0x8000
8034 };
8035 static const SvxMSDffCalculationData mso_sptBentConnector5Calc[] =
8036 {
8037 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8038 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
8039 	{ 0x6000, { 0x400, 0x401, 0 } },
8040 	{ 0x2001, { 0x402, 1, 2 } },
8041 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8042 	{ 0x2001, { 0x404, 1, 2 } },
8043 	{ 0x4000, { 21600, 0x404, 0 } },
8044 	{ 0x2001, { 0x406, 1, 2 } }
8045 };
8046 static const sal_Int32 mso_sptBentConnector5Default[] =
8047 {
8048 	3, 10800, 10800, 10800
8049 };
8050 static const SvxMSDffHandle mso_sptBentConnector5Handle[] =
8051 {
8052 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
8053 		0x100, 5 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 5 + 3, 5 + 3 },
8054 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
8055 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
8056 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
8057 		0x102, 7 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 7 + 3, 7 + 3 }
8058 };
8059 static const mso_CustomShape msoBentConnector5 =
8060 {
8061 	(SvxMSDffVertPair*)mso_sptBentConnector5Vert, sizeof( mso_sptBentConnector5Vert ) / sizeof( SvxMSDffVertPair ),
8062 	(sal_uInt16*)mso_sptBentConnector5Segm, sizeof( mso_sptBentConnector5Segm ) >> 1,
8063 	(SvxMSDffCalculationData*)mso_sptBentConnector5Calc, sizeof( mso_sptBentConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
8064 	(sal_Int32*)mso_sptBentConnector5Default,
8065 	NULL, 0,
8066 	21600, 21600,
8067 	0x80000000, 0x80000000,
8068 	NULL, 0,
8069 	(SvxMSDffHandle*)mso_sptBentConnector5Handle, sizeof( mso_sptBentConnector5Handle ) / sizeof( SvxMSDffHandle )
8070 };
8071 
8072 static const SvxMSDffVertPair mso_sptCurvedConnector2Vert[] =
8073 {
8074 	{ 0, 0 }, { 10800, 0 }, { 21600, 10800 }, { 21600, 21600 }
8075 };
8076 static const sal_uInt16 mso_sptCurvedConnector2Segm[] =
8077 {
8078 	0x4000, 0x2001, 0x8000
8079 };
8080 static const mso_CustomShape msoCurvedConnector2 =
8081 {
8082 	(SvxMSDffVertPair*)mso_sptCurvedConnector2Vert, sizeof( mso_sptCurvedConnector2Vert ) / sizeof( SvxMSDffVertPair ),
8083 	(sal_uInt16*)mso_sptCurvedConnector2Segm, sizeof( mso_sptCurvedConnector2Segm ) >> 1,
8084 	(SvxMSDffCalculationData*)NULL, 0,
8085 	(sal_Int32*)NULL,
8086 	NULL, 0,
8087 	21600, 21600,
8088 	0x80000000, 0x80000000,
8089 	NULL, 0,
8090 	(SvxMSDffHandle*)NULL, 0
8091 };
8092 
8093 static const SvxMSDffVertPair mso_sptCurvedConnector3Vert[] =
8094 {
8095 	{ 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 5400 }, { 0 MSO_I, 10800 }, { 0 MSO_I, 16200 }, { 3 MSO_I, 21600 }, { 21600, 21600 }
8096 };
8097 static const sal_uInt16 mso_sptCurvedConnector3Segm[] =
8098 {
8099 	0x4000, 0x2002, 0x8000
8100 };
8101 static const SvxMSDffCalculationData mso_sptCurvedConnector3Calc[] =
8102 {
8103 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8104 	{ 0x2001, { 0x400, 1, 2 } },
8105 	{ 0x2000, { 0x400, 21600, 0 } },
8106 	{ 0x2001, { 0x402, 1, 2 } }
8107 };
8108 static const sal_Int32 mso_sptCurvedConnector3Default[] =
8109 {
8110 	1, 10800
8111 };
8112 static const SvxMSDffHandle mso_sptCurvedConnector3Handle[] =
8113 {
8114 	{	MSDFF_HANDLE_FLAGS_RANGE,
8115 		0x100, 10800, 10800, 10800, 0x80000000, 0x7fffffff, 0x80000000, 0x7fffffff }
8116 };
8117 static const mso_CustomShape msoCurvedConnector3 =
8118 {
8119 	(SvxMSDffVertPair*)mso_sptCurvedConnector3Vert, sizeof( mso_sptCurvedConnector3Vert ) / sizeof( SvxMSDffVertPair ),
8120 	(sal_uInt16*)mso_sptCurvedConnector3Segm, sizeof( mso_sptCurvedConnector3Segm ) >> 1,
8121 	(SvxMSDffCalculationData*)mso_sptCurvedConnector3Calc, sizeof( mso_sptCurvedConnector3Calc ) / sizeof( SvxMSDffCalculationData ),
8122 	(sal_Int32*)mso_sptCurvedConnector3Default,
8123 	NULL, 0,
8124 	21600, 21600,
8125 	0x80000000, 0x80000000,
8126 	NULL, 0,
8127 	(SvxMSDffHandle*)mso_sptCurvedConnector3Handle, sizeof( mso_sptCurvedConnector3Handle ) / sizeof( SvxMSDffHandle )
8128 };
8129 
8130 static const SvxMSDffVertPair mso_sptCurvedConnector4Vert[] =
8131 {
8132 	{ 0, 0 }, { 1 MSO_I, 0 }, { 0 MSO_I, 10 MSO_I }, { 0 MSO_I, 9 MSO_I },
8133 	{ 0 MSO_I, 12 MSO_I }, { 5 MSO_I, 8 MSO_I }, { 3 MSO_I, 8 MSO_I },
8134 	{ 7 MSO_I, 8 MSO_I }, { 21600, 14 MSO_I }, { 21600, 21600 }
8135 
8136 };
8137 static const sal_uInt16 mso_sptCurvedConnector4Segm[] =
8138 {
8139 	0x4000, 0x2003, 0x8000
8140 };
8141 static const SvxMSDffCalculationData mso_sptCurvedConnector4Calc[] =
8142 {
8143 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8144 	{ 0x2001, { 0x400, 1, 2 } },
8145 	{ 0x4000, { 21600, 0x400, 0 } },
8146 	{ 0x2001, { 0x402, 1, 2 } },
8147 	{ 0x6000, { 0x400, 0x403, 0 } },
8148 	{ 0x2001, { 0x404, 1, 2 } },
8149 	{ 0x2000, { 0x403, 21600, 0 } },
8150 	{ 0x2001, { 0x406, 1, 2 } },
8151 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8152 	{ 0x2001, { DFF_Prop_adjust2Value, 1, 2 } },
8153 	{ 0x2001, { DFF_Prop_adjust2Value, 1, 4 } },
8154 	{ 0x6000, { 0x408, 0x409, 0 } },
8155 	{ 0x2001, { 0x40b, 1, 2 } },
8156 	{ 0x2000, { 0x408, 21600, 0 } },
8157 	{ 0x2001, { 0x40d, 1, 2 } }
8158 };
8159 static const sal_Int32 mso_sptCurvedConnector4Default[] =
8160 {
8161 	2, 10800, 10800
8162 };
8163 static const SvxMSDffHandle mso_sptCurvedConnector4Handle[] =
8164 {
8165 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
8166 		0x100, 9 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 9 + 3, 9 + 3 },
8167 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
8168 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff }
8169 };
8170 static const mso_CustomShape msoCurvedConnector4 =
8171 {
8172 	(SvxMSDffVertPair*)mso_sptCurvedConnector4Vert, sizeof( mso_sptCurvedConnector4Vert ) / sizeof( SvxMSDffVertPair ),
8173 	(sal_uInt16*)mso_sptCurvedConnector4Segm, sizeof( mso_sptCurvedConnector4Segm ) >> 1,
8174 	(SvxMSDffCalculationData*)mso_sptCurvedConnector4Calc, sizeof( mso_sptCurvedConnector4Calc ) / sizeof( SvxMSDffCalculationData ),
8175 	(sal_Int32*)mso_sptCurvedConnector4Default,
8176 	NULL, 0,
8177 	21600, 21600,
8178 	0x80000000, 0x80000000,
8179 	NULL, 0,
8180 	(SvxMSDffHandle*)mso_sptCurvedConnector4Handle, sizeof( mso_sptCurvedConnector4Handle ) / sizeof( SvxMSDffHandle )
8181 };
8182 
8183 static const SvxMSDffVertPair mso_sptCurvedConnector5Vert[] =
8184 {
8185 	{ 0, 0 },
8186 	{ 21 MSO_I, 0 }, { 0 MSO_I, 12 MSO_I }, { 0 MSO_I, 11 MSO_I },
8187 	{ 0 MSO_I, 14 MSO_I }, { 6 MSO_I, 4 MSO_I }, { 3 MSO_I, 4 MSO_I },
8188 	{ 8 MSO_I, 4 MSO_I }, { 1 MSO_I, 18 MSO_I }, { 1 MSO_I, 16 MSO_I },
8189 	{ 1 MSO_I, 20 MSO_I }, { 10 MSO_I, 21600 }, { 21600, 21600 }
8190 };
8191 static const sal_uInt16 mso_sptCurvedConnector5Segm[] =
8192 {
8193 	0x4000, 0x2004, 0x8000
8194 };
8195 static const SvxMSDffCalculationData mso_sptCurvedConnector5Calc[] =
8196 {
8197 	{ 0x2000, { DFF_Prop_adjustValue, 0, 0 } },
8198 	{ 0x2000, { DFF_Prop_adjust3Value, 0, 0 } },
8199 	{ 0x6000, { 0x400, 0x401, 0 } },
8200 	{ 0x2001, { 0x402, 1, 2 } },
8201 	{ 0x2000, { DFF_Prop_adjust2Value, 0, 0 } },
8202 	{ 0x6000, { 0x400, 0x403, 0 } },
8203 	{ 0x2001, { 0x405, 1, 2 } },
8204 	{ 0x6000, { 0x401, 0x403, 0 } },
8205 	{ 0x2001, { 0x407, 1, 2 } },
8206 	{ 0x2000, { 0x401, 21600, 0 } },
8207 	{ 0x2001, { 0x409, 1, 2 } },
8208 	{ 0x2001, { 0x404, 1, 2 } },
8209 	{ 0x2001, { 0x40b, 1, 2 } },
8210 	{ 0x6000, { 0x404, 0x40b, 0 } },
8211 	{ 0x2001, { 0x40d, 1, 2 } },
8212 	{ 0x2000, { 0x404, 21600, 0 } },
8213 	{ 0x2001, { 0x40f, 1, 2 } },
8214 	{ 0x6000, { 0x404, 0x410, 0 } },
8215 	{ 0x2001, { 0x411, 1, 2 } },
8216 	{ 0x2000, { 0x410, 21600, 0 } },
8217 	{ 0x2001, { 0x413, 1, 2 } },
8218 	{ 0x2001, { 0x400, 1, 2 } }
8219 };
8220 static const sal_Int32 mso_sptCurvedConnector5Default[] =
8221 {
8222 	3, 10800, 10800, 10800
8223 };
8224 static const SvxMSDffHandle mso_sptCurvedConnector5Handle[] =
8225 {
8226 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
8227 		0x100, 11 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 11 + 3, 11 + 3 },
8228 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_X_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_X_MAX_IS_SPECIAL,
8229 		3 + 3, 0x101, 10800, 10800, 3 + 3, 3 + 3, 0x80000000, 0x7fffffff },
8230 	{	MSDFF_HANDLE_FLAGS_RANGE | MSDFF_HANDLE_FLAGS_RANGE_Y_MIN_IS_SPECIAL | MSDFF_HANDLE_FLAGS_RANGE_Y_MAX_IS_SPECIAL,
8231 		0x102, 16 + 3, 10800, 10800, 0x80000000, 0x7fffffff, 16 + 3, 16 + 3 }
8232 };
8233 static const mso_CustomShape msoCurvedConnector5 =
8234 {
8235 	(SvxMSDffVertPair*)mso_sptCurvedConnector5Vert, sizeof( mso_sptCurvedConnector5Vert ) / sizeof( SvxMSDffVertPair ),
8236 	(sal_uInt16*)mso_sptCurvedConnector5Segm, sizeof( mso_sptCurvedConnector5Segm ) >> 1,
8237 	(SvxMSDffCalculationData*)mso_sptCurvedConnector5Calc, sizeof( mso_sptCurvedConnector5Calc ) / sizeof( SvxMSDffCalculationData ),
8238 	(sal_Int32*)mso_sptCurvedConnector5Default,
8239 	NULL, 0,
8240 	21600, 21600,
8241 	0x80000000, 0x80000000,
8242 	NULL, 0,
8243 	(SvxMSDffHandle*)mso_sptCurvedConnector5Handle, sizeof( mso_sptCurvedConnector5Handle ) / sizeof( SvxMSDffHandle )
8244 };
8245 
8246 const mso_CustomShape* GetCustomShapeContent( MSO_SPT eSpType )
8247 {
8248 	const mso_CustomShape* pCustomShape = NULL;
8249 	switch( eSpType )
8250 	{
8251 		case mso_sptArc :						pCustomShape = &msoArc; break;
8252 		case mso_sptRectangle :					pCustomShape = &msoRectangle; break;
8253 		case mso_sptParallelogram :				pCustomShape = &msoParallelogram; break;
8254 		case mso_sptTrapezoid :					pCustomShape = &msoTrapezoid; break;
8255 		case mso_sptDiamond :					pCustomShape = &msoDiamond; break;
8256 		case mso_sptRoundRectangle :			pCustomShape = &msoRoundRectangle; break;
8257 		case mso_sptOctagon :					pCustomShape = &msoOctagon; break;
8258 		case mso_sptIsocelesTriangle :			pCustomShape = &msoIsocelesTriangle; break;
8259 		case mso_sptRightTriangle :				pCustomShape = &msoRightTriangle; break;
8260 		case mso_sptEllipse :					pCustomShape = &msoEllipse; break;
8261 		case mso_sptHexagon :					pCustomShape = &msoHexagon; break;
8262 		case mso_sptPlus :						pCustomShape = &msoPlus; break;
8263 		case mso_sptPentagon :					pCustomShape = &msoPentagon; break;
8264 		case mso_sptCan :						pCustomShape = &msoCan; break;
8265 		case mso_sptCube :						pCustomShape = &msoCube; break;
8266 		case mso_sptBalloon :					pCustomShape = &msoBalloon; break;
8267 		case mso_sptActionButtonBlank :			pCustomShape = &msoActionButtonBlank; break;
8268 		case mso_sptActionButtonHome :			pCustomShape = &msoActionButtonHome; break;
8269 		case mso_sptActionButtonHelp :			pCustomShape = &msoActionButtonHelp; break;
8270 		case mso_sptActionButtonInformation :	pCustomShape = &msoActionButtonInformation; break;
8271 		case mso_sptActionButtonBackPrevious :	pCustomShape = &msoActionButtonBackPrevious; break;
8272 		case mso_sptActionButtonForwardNext :	pCustomShape = &msoActionButtonForwardNext; break;
8273 		case mso_sptActionButtonBeginning :		pCustomShape = &msoActionButtonBeginning; break;
8274 		case mso_sptActionButtonEnd :			pCustomShape = &msoActionButtonEnd; break;
8275 		case mso_sptActionButtonReturn :		pCustomShape = &msoActionButtonReturn;	break;
8276 		case mso_sptActionButtonDocument :		pCustomShape = &msoActionButtonDocument; break;
8277 		case mso_sptActionButtonSound :			pCustomShape = &msoActionButtonSound; break;
8278 		case mso_sptActionButtonMovie :			pCustomShape = &msoActionButtonMovie; break;
8279 		case mso_sptBevel :						pCustomShape = &msoBevel; break;
8280 		case mso_sptFoldedCorner :				pCustomShape = &msoFoldedCorner; break;
8281 		case mso_sptSmileyFace :				pCustomShape = &msoSmileyFace;	break;
8282 		case mso_sptDonut :						pCustomShape = &msoDonut; break;
8283 		case mso_sptNoSmoking :					pCustomShape = &msoNoSmoking; break;
8284 		case mso_sptBlockArc :					pCustomShape = &msoBlockArc; break;
8285 		case mso_sptHeart :						pCustomShape = &msoHeart; break;
8286 		case mso_sptLightningBolt :				pCustomShape = &msoLightningBold; break;
8287 		case mso_sptSun	:						pCustomShape = &msoSun; break;
8288 		case mso_sptMoon :						pCustomShape = &msoMoon; break;
8289 		case mso_sptBracketPair :				pCustomShape = &msoBracketPair; break;
8290 		case mso_sptBracePair :					pCustomShape = &msoBracePair; break;
8291 		case mso_sptPlaque :					pCustomShape = &msoPlaque; break;
8292 		case mso_sptLeftBracket :				pCustomShape = &msoLeftBracket; break;
8293 		case mso_sptRightBracket :				pCustomShape = &msoRightBracket; break;
8294 		case mso_sptLeftBrace :					pCustomShape = &msoLeftBrace; break;
8295 		case mso_sptRightBrace :				pCustomShape = &msoRightBrace; break;
8296 		case mso_sptArrow :						pCustomShape = &msoArrow; break;
8297 		case mso_sptUpArrow :					pCustomShape = &msoUpArrow; break;
8298 		case mso_sptDownArrow :					pCustomShape = &msoDownArrow; break;
8299 		case mso_sptLeftArrow :					pCustomShape = &msoLeftArrow; break;
8300 		case mso_sptLeftRightArrow :			pCustomShape = &msoLeftRightArrow; break;
8301 		case mso_sptUpDownArrow :				pCustomShape = &msoUpDownArrow; break;
8302 		case mso_sptQuadArrow :					pCustomShape = &msoQuadArrow; break;
8303 		case mso_sptLeftRightUpArrow :			pCustomShape = &msoLeftRightUpArrow; break;
8304 		case mso_sptBentArrow :					pCustomShape = &msoBentArrow; break;
8305 		case mso_sptUturnArrow :				pCustomShape = &msoUturnArrow; break;
8306 		case mso_sptLeftUpArrow :				pCustomShape = &msoLeftUpArrow; break;
8307 		case mso_sptBentUpArrow :				pCustomShape = &msoBentUpArrow; break;
8308 		case mso_sptCurvedRightArrow :			pCustomShape = &msoCurvedRightArrow; break;
8309 		case mso_sptCurvedLeftArrow :			pCustomShape = &msoCurvedLeftArrow; break;
8310 		case mso_sptCurvedUpArrow :				pCustomShape = &msoCurvedUpArrow; break;
8311 		case mso_sptCurvedDownArrow :			pCustomShape = &msoCurvedDownArrow; break;
8312 		case mso_sptStripedRightArrow :			pCustomShape = &msoStripedRightArrow; break;
8313 		case mso_sptNotchedRightArrow :			pCustomShape = &msoNotchedRightArrow; break;
8314 		case mso_sptHomePlate :					pCustomShape = &msoHomePlate; break;
8315 		case mso_sptChevron :					pCustomShape = &msoChevron; break;
8316 		case mso_sptRightArrowCallout :			pCustomShape = &msoRightArrowCallout; break;
8317 		case mso_sptLeftArrowCallout :			pCustomShape = &msoLeftArrowCallout; break;
8318 		case mso_sptUpArrowCallout :			pCustomShape = &msoUpArrowCallout; break;
8319 		case mso_sptDownArrowCallout :			pCustomShape = &msoDownArrowCallout; break;
8320 		case mso_sptLeftRightArrowCallout :		pCustomShape = &msoLeftRightArrowCallout; break;
8321 		case mso_sptUpDownArrowCallout :		pCustomShape = &msoUpDownArrowCallout; break;
8322 		case mso_sptQuadArrowCallout :			pCustomShape = &msoQuadArrowCallout; break;
8323 		case mso_sptCircularArrow :				pCustomShape = &msoCircularArrow; break;
8324 		case mso_sptIrregularSeal1 :			pCustomShape = &msoIrregularSeal1; break;
8325 		case mso_sptIrregularSeal2 :			pCustomShape = &msoIrregularSeal2; break;
8326 		case mso_sptSeal4 :						pCustomShape = &msoSeal4; break;
8327 		case mso_sptStar :						pCustomShape = &msoStar; break;
8328 		case mso_sptSeal8 :						pCustomShape = &msoSeal8; break;
8329 		case mso_sptSeal :
8330 		case mso_sptSeal16 :					pCustomShape = &msoSeal16; break;
8331 		case mso_sptSeal24 :					pCustomShape = &msoSeal24; break;
8332 		case mso_sptSeal32 :					pCustomShape = &msoSeal32; break;
8333 		case mso_sptRibbon2 :					pCustomShape = &msoRibbon2; break;
8334 		case mso_sptRibbon :					pCustomShape = &msoRibbon; break;
8335 		case mso_sptEllipseRibbon2 :			pCustomShape = &msosptEllipseRibbon2; break;	// SJ: TODO
8336 		case mso_sptEllipseRibbon :				pCustomShape = &msosptEllipseRibbon; break;	// SJ: TODO
8337 		case mso_sptVerticalScroll :			pCustomShape = &msoVerticalScroll;	break;
8338 		case mso_sptHorizontalScroll :			pCustomShape = &msoHorizontalScroll; break;
8339 		case mso_sptFlowChartProcess :			pCustomShape = &msoFlowChartProcess; break;
8340 		case mso_sptFlowChartAlternateProcess :	pCustomShape = &msoFlowChartAlternateProcess; break;
8341 		case mso_sptFlowChartDecision :			pCustomShape = &msoFlowChartDecision; break;
8342 		case mso_sptFlowChartInputOutput :		pCustomShape = &msoFlowChartInputOutput; break;
8343 		case mso_sptFlowChartPredefinedProcess :pCustomShape = &msoFlowChartPredefinedProcess; break;
8344 		case mso_sptFlowChartInternalStorage :	pCustomShape = &msoFlowChartInternalStorage; break;
8345 		case mso_sptFlowChartDocument :			pCustomShape = &msoFlowChartDocument; break;
8346 		case mso_sptFlowChartMultidocument :	pCustomShape = &msoFlowChartMultidocument; break;
8347 		case mso_sptFlowChartTerminator :		pCustomShape = &msoFlowChartTerminator; break;
8348 		case mso_sptFlowChartPreparation :		pCustomShape = &msoFlowChartPreparation; break;
8349 		case mso_sptFlowChartManualInput :		pCustomShape = &msoFlowChartManualInput; break;
8350 		case mso_sptFlowChartManualOperation :	pCustomShape = &msoFlowChartManualOperation; break;
8351 		case mso_sptFlowChartConnector :		pCustomShape = &msoFlowChartConnector; break;
8352 		case mso_sptFlowChartOffpageConnector : pCustomShape = &msoFlowChartOffpageConnector; break;
8353 		case mso_sptFlowChartPunchedCard :		pCustomShape = &msoFlowChartPunchedCard; break;
8354 		case mso_sptFlowChartPunchedTape :		pCustomShape = &msoFlowChartPunchedTape; break;
8355 		case mso_sptFlowChartSummingJunction :	pCustomShape = &msoFlowChartSummingJunction; break;
8356 		case mso_sptFlowChartOr :				pCustomShape = &msoFlowChartOr; break;
8357 		case mso_sptFlowChartCollate :			pCustomShape = &msoFlowChartCollate; break;
8358 		case mso_sptFlowChartSort :				pCustomShape = &msoFlowChartSort; break;
8359 		case mso_sptFlowChartExtract :			pCustomShape = &msoFlowChartExtract; break;
8360 		case mso_sptFlowChartMerge :			pCustomShape = &msoFlowChartMerge; break;
8361 		case mso_sptFlowChartOnlineStorage :	pCustomShape = &msoFlowChartOnlineStorage; break;
8362 		case mso_sptFlowChartDelay :			pCustomShape = &msoFlowChartDelay; break;
8363 		case mso_sptFlowChartMagneticTape :		pCustomShape = &msoFlowChartMagneticTape; break;
8364 		case mso_sptFlowChartMagneticDisk :		pCustomShape = &msoFlowChartMagneticDisk; break;
8365 		case mso_sptFlowChartMagneticDrum :		pCustomShape = &msoFlowChartMagneticDrum; break;
8366 		case mso_sptFlowChartDisplay :			pCustomShape = &msoFlowChartDisplay; break;
8367 		case mso_sptWedgeRectCallout :			pCustomShape = &msoWedgeRectCallout; break;
8368 		case mso_sptWedgeRRectCallout :			pCustomShape = &msoWedgeRRectCallout; break;
8369 		case mso_sptWedgeEllipseCallout :		pCustomShape = &msoWedgeEllipseCallout; break;
8370 		case mso_sptCloudCallout :				pCustomShape = &msoCloudCallout; break;
8371 		case mso_sptWave :						pCustomShape = &msoWave; break;
8372 		case mso_sptDoubleWave :				pCustomShape = &msoDoubleWave; break;
8373 
8374 		// callout
8375 		case mso_sptCallout1 :					pCustomShape = &msoCallout1; break;
8376 		case mso_sptCallout2 :					pCustomShape = &msoCallout2; break;
8377 		case mso_sptCallout3 :					pCustomShape = &msoCallout3; break;
8378 		case mso_sptAccentCallout1 :			pCustomShape = &msoAccentCallout1; break;
8379 		case mso_sptAccentCallout2 :			pCustomShape = &msoAccentCallout2; break;
8380 		case mso_sptAccentCallout3 :			pCustomShape = &msoAccentCallout3; break;
8381 		case mso_sptBorderCallout1 :			pCustomShape = &msoBorderCallout1; break;
8382 		case mso_sptBorderCallout2 :			pCustomShape = &msoBorderCallout2; break;
8383 		case mso_sptBorderCallout3 :			pCustomShape = &msoBorderCallout3; break;
8384 		case mso_sptAccentBorderCallout1 :		pCustomShape = &msoAccentBorderCallout1; break;
8385 		case mso_sptAccentBorderCallout2 :		pCustomShape = &msoAccentBorderCallout2; break;
8386 		case mso_sptAccentBorderCallout3 :		pCustomShape = &msoAccentBorderCallout3; break;
8387 		case mso_sptCallout90 :					pCustomShape = &msoCallout90; break;
8388 		case mso_sptAccentCallout90 :			pCustomShape = &msoAccentCallout90; break;
8389 		case mso_sptBorderCallout90 :			pCustomShape = &msoBorderCallout90; break;
8390 		case mso_sptAccentBorderCallout90 :		pCustomShape = &msoAccentBorderCallout90; break;
8391 
8392 		// connectors
8393 		case mso_sptStraightConnector1 :		pCustomShape = &msoStraightConnector1; break;
8394 		case mso_sptBentConnector2 :			pCustomShape = &msoBentConnector2; break;
8395 		case mso_sptBentConnector3 :			pCustomShape = &msoBentConnector3; break;
8396 		case mso_sptBentConnector4 :			pCustomShape = &msoBentConnector4; break;
8397 		case mso_sptBentConnector5 :			pCustomShape = &msoBentConnector5; break;
8398 		case mso_sptCurvedConnector2 :			pCustomShape = &msoCurvedConnector2; break;
8399 		case mso_sptCurvedConnector3 :			pCustomShape = &msoCurvedConnector3; break;
8400 		case mso_sptCurvedConnector4 :			pCustomShape = &msoCurvedConnector4; break;
8401 		case mso_sptCurvedConnector5 :			pCustomShape = &msoCurvedConnector5; break;
8402 
8403 		// Dont know, simply mapping to TextSimple
8404 		case mso_sptTextOnRing :
8405 		case mso_sptTextOnCurve :
8406 		case mso_sptTextRing :
8407 		case mso_sptTextWave :
8408 		case mso_sptTextCurve :
8409 		case mso_sptTextHexagon :
8410 		case mso_sptTextOctagon :
8411 		case mso_sptTextBox	:					pCustomShape = &msoTextSimple; break;
8412 
8413 		// FontWork
8414 		case mso_sptTextSimple :
8415 		case mso_sptTextPlainText :				pCustomShape = &msoTextPlainText; break;
8416 		case mso_sptTextStop :					pCustomShape = &msoTextStop; break;
8417 		case mso_sptTextTriangle :				pCustomShape = &msoTextTriangle; break;
8418 		case mso_sptTextTriangleInverted :		pCustomShape = &msoTextTriangleInverted; break;
8419 		case mso_sptTextChevron :				pCustomShape = &msoTextChevron; break;
8420 		case mso_sptTextChevronInverted :		pCustomShape = &msoTextChevronInverted; break;
8421 		case mso_sptTextRingInside :			pCustomShape = &msoTextRingOutside; break;	// SJ: TODO->the orientation of the ellipse needs to be changed
8422 		case mso_sptTextRingOutside :			pCustomShape = &msoTextRingOutside; break;
8423 		case mso_sptTextFadeRight :				pCustomShape = &msoTextFadeRight; break;
8424 		case mso_sptTextFadeLeft :				pCustomShape = &msoTextFadeLeft; break;
8425 		case mso_sptTextFadeUp :				pCustomShape = &msoTextFadeUp; break;
8426 		case mso_sptTextFadeDown :				pCustomShape = &msoTextFadeDown; break;
8427 		case mso_sptTextSlantUp :				pCustomShape = &msoTextSlantUp; break;
8428 		case mso_sptTextSlantDown :				pCustomShape = &msoTextSlantDown; break;
8429 		case mso_sptTextCascadeUp :				pCustomShape = &msoTextCascadeUp; break;
8430 		case mso_sptTextCascadeDown :			pCustomShape = &msoTextCascadeDown; break;
8431 		case mso_sptTextArchUpCurve :			pCustomShape = &msoTextArchUpCurve; break;
8432 		case mso_sptTextArchDownCurve :			pCustomShape = &msoTextArchDownCurve; break;
8433 		case mso_sptTextCircleCurve :			pCustomShape = &msoTextCircleCurve; break;
8434 		case mso_sptTextButtonCurve :			pCustomShape = &msoTextButtonCurve; break;
8435 		case mso_sptTextArchUpPour :			pCustomShape = &msoTextArchUpPour; break;
8436 		case mso_sptTextArchDownPour :			pCustomShape = &msoTextArchDownPour; break;
8437 		case mso_sptTextCirclePour :			pCustomShape = &msoTextCirclePour; break;
8438 		case mso_sptTextButtonPour :			pCustomShape = &msoTextButtonPour; break;
8439 		case mso_sptTextCurveUp :				pCustomShape = &msoTextCurveUp; break;
8440 		case mso_sptTextCurveDown :				pCustomShape = &msoTextCurveDown; break;
8441 		case mso_sptTextCanUp :					pCustomShape = &msoTextCanUp; break;
8442 		case mso_sptTextCanDown :				pCustomShape = &msoTextCanDown; break;
8443 		case mso_sptTextInflate :				pCustomShape = &msoTextInflate; break;
8444 		case mso_sptTextDeflate :				pCustomShape = &msoTextDeflate; break;
8445 		case mso_sptTextInflateBottom :			pCustomShape = &msoTextInflateBottom; break;
8446 		case mso_sptTextDeflateBottom :			pCustomShape = &msoTextDeflateBottom; break;
8447 		case mso_sptTextInflateTop :			pCustomShape = &msoTextInflateTop; break;
8448 		case mso_sptTextDeflateTop :			pCustomShape = &msoTextDeflateTop; break;
8449 		case mso_sptTextDeflateInflate :		pCustomShape = &msoTextDeflateInflate; break;
8450 		case mso_sptTextDeflateInflateDeflate :	pCustomShape = &msoTextDeflateInflateDeflate; break;
8451 		case mso_sptTextWave1 :					pCustomShape = &msoTextWave1; break;
8452 		case mso_sptTextWave2 :					pCustomShape = &msoTextWave2; break;
8453 		case mso_sptTextWave3 :					pCustomShape = &msoTextWave3; break;
8454 		case mso_sptTextWave4 :					pCustomShape = &msoTextWave4; break;
8455 		default :
8456 		break;
8457 	}
8458 	return pCustomShape;
8459 }
8460