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