Skip to main content

ooxml_pml/
generated.rs

1// Generated from ECMA-376 RELAX NG schema.
2// Do not edit manually.
3
4use serde::{Deserialize, Serialize};
5
6/// XML namespace URIs used in this schema.
7pub mod ns {
8    /// Namespace prefix: o
9    pub const O: &str = "urn:schemas-microsoft-com:office:office";
10    /// Namespace prefix: s
11    pub const S: &str = "http://schemas.openxmlformats.org/officeDocument/2006/sharedTypes";
12    /// Namespace prefix: v
13    pub const V: &str = "urn:schemas-microsoft-com:vml";
14    /// Namespace prefix: w10
15    pub const W10: &str = "urn:schemas-microsoft-com:office:word";
16    /// Namespace prefix: x
17    pub const X: &str = "urn:schemas-microsoft-com:office:excel";
18    /// Namespace prefix: a
19    pub const A: &str = "http://schemas.openxmlformats.org/drawingml/2006/main";
20    /// Namespace prefix: p
21    pub const P: &str = "http://schemas.openxmlformats.org/presentationml/2006/main";
22    /// Namespace prefix: r
23    pub const R: &str = "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
24}
25
26pub type Language = String;
27
28pub type HexColorRgb = Vec<u8>;
29
30pub type Panose = Vec<u8>;
31
32#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
33pub enum CalendarType {
34    #[serde(rename = "gregorian")]
35    Gregorian,
36    #[serde(rename = "gregorianUs")]
37    GregorianUs,
38    #[serde(rename = "gregorianMeFrench")]
39    GregorianMeFrench,
40    #[serde(rename = "gregorianArabic")]
41    GregorianArabic,
42    #[serde(rename = "hijri")]
43    Hijri,
44    #[serde(rename = "hebrew")]
45    Hebrew,
46    #[serde(rename = "taiwan")]
47    Taiwan,
48    #[serde(rename = "japan")]
49    Japan,
50    #[serde(rename = "thai")]
51    Thai,
52    #[serde(rename = "korea")]
53    Korea,
54    #[serde(rename = "saka")]
55    Saka,
56    #[serde(rename = "gregorianXlitEnglish")]
57    GregorianXlitEnglish,
58    #[serde(rename = "gregorianXlitFrench")]
59    GregorianXlitFrench,
60    #[serde(rename = "none")]
61    None,
62}
63
64impl std::fmt::Display for CalendarType {
65    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
66        match self {
67            Self::Gregorian => write!(f, "gregorian"),
68            Self::GregorianUs => write!(f, "gregorianUs"),
69            Self::GregorianMeFrench => write!(f, "gregorianMeFrench"),
70            Self::GregorianArabic => write!(f, "gregorianArabic"),
71            Self::Hijri => write!(f, "hijri"),
72            Self::Hebrew => write!(f, "hebrew"),
73            Self::Taiwan => write!(f, "taiwan"),
74            Self::Japan => write!(f, "japan"),
75            Self::Thai => write!(f, "thai"),
76            Self::Korea => write!(f, "korea"),
77            Self::Saka => write!(f, "saka"),
78            Self::GregorianXlitEnglish => write!(f, "gregorianXlitEnglish"),
79            Self::GregorianXlitFrench => write!(f, "gregorianXlitFrench"),
80            Self::None => write!(f, "none"),
81        }
82    }
83}
84
85impl std::str::FromStr for CalendarType {
86    type Err = String;
87
88    fn from_str(s: &str) -> Result<Self, Self::Err> {
89        match s {
90            "gregorian" => Ok(Self::Gregorian),
91            "gregorianUs" => Ok(Self::GregorianUs),
92            "gregorianMeFrench" => Ok(Self::GregorianMeFrench),
93            "gregorianArabic" => Ok(Self::GregorianArabic),
94            "hijri" => Ok(Self::Hijri),
95            "hebrew" => Ok(Self::Hebrew),
96            "taiwan" => Ok(Self::Taiwan),
97            "japan" => Ok(Self::Japan),
98            "thai" => Ok(Self::Thai),
99            "korea" => Ok(Self::Korea),
100            "saka" => Ok(Self::Saka),
101            "gregorianXlitEnglish" => Ok(Self::GregorianXlitEnglish),
102            "gregorianXlitFrench" => Ok(Self::GregorianXlitFrench),
103            "none" => Ok(Self::None),
104            _ => Err(format!("unknown CalendarType value: {}", s)),
105        }
106    }
107}
108
109#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
110pub enum STAlgClass {
111    #[serde(rename = "hash")]
112    Hash,
113    #[serde(rename = "custom")]
114    Custom,
115}
116
117impl std::fmt::Display for STAlgClass {
118    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
119        match self {
120            Self::Hash => write!(f, "hash"),
121            Self::Custom => write!(f, "custom"),
122        }
123    }
124}
125
126impl std::str::FromStr for STAlgClass {
127    type Err = String;
128
129    fn from_str(s: &str) -> Result<Self, Self::Err> {
130        match s {
131            "hash" => Ok(Self::Hash),
132            "custom" => Ok(Self::Custom),
133            _ => Err(format!("unknown STAlgClass value: {}", s)),
134        }
135    }
136}
137
138#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
139pub enum STCryptProv {
140    #[serde(rename = "rsaAES")]
141    RsaAES,
142    #[serde(rename = "rsaFull")]
143    RsaFull,
144    #[serde(rename = "custom")]
145    Custom,
146}
147
148impl std::fmt::Display for STCryptProv {
149    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
150        match self {
151            Self::RsaAES => write!(f, "rsaAES"),
152            Self::RsaFull => write!(f, "rsaFull"),
153            Self::Custom => write!(f, "custom"),
154        }
155    }
156}
157
158impl std::str::FromStr for STCryptProv {
159    type Err = String;
160
161    fn from_str(s: &str) -> Result<Self, Self::Err> {
162        match s {
163            "rsaAES" => Ok(Self::RsaAES),
164            "rsaFull" => Ok(Self::RsaFull),
165            "custom" => Ok(Self::Custom),
166            _ => Err(format!("unknown STCryptProv value: {}", s)),
167        }
168    }
169}
170
171#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
172pub enum STAlgType {
173    #[serde(rename = "typeAny")]
174    TypeAny,
175    #[serde(rename = "custom")]
176    Custom,
177}
178
179impl std::fmt::Display for STAlgType {
180    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
181        match self {
182            Self::TypeAny => write!(f, "typeAny"),
183            Self::Custom => write!(f, "custom"),
184        }
185    }
186}
187
188impl std::str::FromStr for STAlgType {
189    type Err = String;
190
191    fn from_str(s: &str) -> Result<Self, Self::Err> {
192        match s {
193            "typeAny" => Ok(Self::TypeAny),
194            "custom" => Ok(Self::Custom),
195            _ => Err(format!("unknown STAlgType value: {}", s)),
196        }
197    }
198}
199
200pub type STColorType = String;
201
202pub type Guid = String;
203
204pub type OnOff = String;
205
206#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
207pub enum STOnOff1 {
208    #[serde(rename = "on")]
209    On,
210    #[serde(rename = "off")]
211    Off,
212}
213
214impl std::fmt::Display for STOnOff1 {
215    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
216        match self {
217            Self::On => write!(f, "on"),
218            Self::Off => write!(f, "off"),
219        }
220    }
221}
222
223impl std::str::FromStr for STOnOff1 {
224    type Err = String;
225
226    fn from_str(s: &str) -> Result<Self, Self::Err> {
227        match s {
228            "on" => Ok(Self::On),
229            "off" => Ok(Self::Off),
230            _ => Err(format!("unknown STOnOff1 value: {}", s)),
231        }
232    }
233}
234
235pub type STString = String;
236
237pub type STXmlName = String;
238
239#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
240pub enum TrueFalse {
241    #[serde(rename = "t")]
242    T,
243    #[serde(rename = "f")]
244    F,
245    #[serde(rename = "true")]
246    True,
247    #[serde(rename = "false")]
248    False,
249}
250
251impl std::fmt::Display for TrueFalse {
252    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
253        match self {
254            Self::T => write!(f, "t"),
255            Self::F => write!(f, "f"),
256            Self::True => write!(f, "true"),
257            Self::False => write!(f, "false"),
258        }
259    }
260}
261
262impl std::str::FromStr for TrueFalse {
263    type Err = String;
264
265    fn from_str(s: &str) -> Result<Self, Self::Err> {
266        match s {
267            "t" => Ok(Self::T),
268            "f" => Ok(Self::F),
269            "true" => Ok(Self::True),
270            "false" => Ok(Self::False),
271            _ => Err(format!("unknown TrueFalse value: {}", s)),
272        }
273    }
274}
275
276#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
277pub enum STTrueFalseBlank {
278    #[serde(rename = "t")]
279    T,
280    #[serde(rename = "f")]
281    F,
282    #[serde(rename = "true")]
283    True,
284    #[serde(rename = "false")]
285    False,
286    #[serde(rename = "")]
287    Empty,
288}
289
290impl std::fmt::Display for STTrueFalseBlank {
291    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
292        match self {
293            Self::T => write!(f, "t"),
294            Self::F => write!(f, "f"),
295            Self::True => write!(f, "true"),
296            Self::False => write!(f, "false"),
297            Self::Empty => write!(f, ""),
298        }
299    }
300}
301
302impl std::str::FromStr for STTrueFalseBlank {
303    type Err = String;
304
305    fn from_str(s: &str) -> Result<Self, Self::Err> {
306        match s {
307            "t" => Ok(Self::T),
308            "f" => Ok(Self::F),
309            "true" => Ok(Self::True),
310            "false" => Ok(Self::False),
311            "" => Ok(Self::Empty),
312            "True" => Ok(Self::True),
313            "False" => Ok(Self::False),
314            _ => Err(format!("unknown STTrueFalseBlank value: {}", s)),
315        }
316    }
317}
318
319pub type STUnsignedDecimalNumber = u64;
320
321pub type STTwipsMeasure = String;
322
323#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
324pub enum STVerticalAlignRun {
325    #[serde(rename = "baseline")]
326    Baseline,
327    #[serde(rename = "superscript")]
328    Superscript,
329    #[serde(rename = "subscript")]
330    Subscript,
331}
332
333impl std::fmt::Display for STVerticalAlignRun {
334    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
335        match self {
336            Self::Baseline => write!(f, "baseline"),
337            Self::Superscript => write!(f, "superscript"),
338            Self::Subscript => write!(f, "subscript"),
339        }
340    }
341}
342
343impl std::str::FromStr for STVerticalAlignRun {
344    type Err = String;
345
346    fn from_str(s: &str) -> Result<Self, Self::Err> {
347        match s {
348            "baseline" => Ok(Self::Baseline),
349            "superscript" => Ok(Self::Superscript),
350            "subscript" => Ok(Self::Subscript),
351            _ => Err(format!("unknown STVerticalAlignRun value: {}", s)),
352        }
353    }
354}
355
356pub type XmlString = String;
357
358#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
359pub enum STXAlign {
360    #[serde(rename = "left")]
361    Left,
362    #[serde(rename = "center")]
363    Center,
364    #[serde(rename = "right")]
365    Right,
366    #[serde(rename = "inside")]
367    Inside,
368    #[serde(rename = "outside")]
369    Outside,
370}
371
372impl std::fmt::Display for STXAlign {
373    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
374        match self {
375            Self::Left => write!(f, "left"),
376            Self::Center => write!(f, "center"),
377            Self::Right => write!(f, "right"),
378            Self::Inside => write!(f, "inside"),
379            Self::Outside => write!(f, "outside"),
380        }
381    }
382}
383
384impl std::str::FromStr for STXAlign {
385    type Err = String;
386
387    fn from_str(s: &str) -> Result<Self, Self::Err> {
388        match s {
389            "left" => Ok(Self::Left),
390            "center" => Ok(Self::Center),
391            "right" => Ok(Self::Right),
392            "inside" => Ok(Self::Inside),
393            "outside" => Ok(Self::Outside),
394            _ => Err(format!("unknown STXAlign value: {}", s)),
395        }
396    }
397}
398
399#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
400pub enum STYAlign {
401    #[serde(rename = "inline")]
402    Inline,
403    #[serde(rename = "top")]
404    Top,
405    #[serde(rename = "center")]
406    Center,
407    #[serde(rename = "bottom")]
408    Bottom,
409    #[serde(rename = "inside")]
410    Inside,
411    #[serde(rename = "outside")]
412    Outside,
413}
414
415impl std::fmt::Display for STYAlign {
416    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
417        match self {
418            Self::Inline => write!(f, "inline"),
419            Self::Top => write!(f, "top"),
420            Self::Center => write!(f, "center"),
421            Self::Bottom => write!(f, "bottom"),
422            Self::Inside => write!(f, "inside"),
423            Self::Outside => write!(f, "outside"),
424        }
425    }
426}
427
428impl std::str::FromStr for STYAlign {
429    type Err = String;
430
431    fn from_str(s: &str) -> Result<Self, Self::Err> {
432        match s {
433            "inline" => Ok(Self::Inline),
434            "top" => Ok(Self::Top),
435            "center" => Ok(Self::Center),
436            "bottom" => Ok(Self::Bottom),
437            "inside" => Ok(Self::Inside),
438            "outside" => Ok(Self::Outside),
439            _ => Err(format!("unknown STYAlign value: {}", s)),
440        }
441    }
442}
443
444#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
445pub enum STConformanceClass {
446    #[serde(rename = "strict")]
447    Strict,
448    #[serde(rename = "transitional")]
449    Transitional,
450}
451
452impl std::fmt::Display for STConformanceClass {
453    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
454        match self {
455            Self::Strict => write!(f, "strict"),
456            Self::Transitional => write!(f, "transitional"),
457        }
458    }
459}
460
461impl std::str::FromStr for STConformanceClass {
462    type Err = String;
463
464    fn from_str(s: &str) -> Result<Self, Self::Err> {
465        match s {
466            "strict" => Ok(Self::Strict),
467            "transitional" => Ok(Self::Transitional),
468            _ => Err(format!("unknown STConformanceClass value: {}", s)),
469        }
470    }
471}
472
473pub type STUniversalMeasure = String;
474
475pub type STPositiveUniversalMeasure = String;
476
477pub type STPercentage = String;
478
479pub type STFixedPercentage = String;
480
481pub type STPositivePercentage = String;
482
483pub type STPositiveFixedPercentage = String;
484
485#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
486pub enum STTransitionSideDirectionType {
487    #[serde(rename = "l")]
488    L,
489    #[serde(rename = "u")]
490    U,
491    #[serde(rename = "r")]
492    R,
493    #[serde(rename = "d")]
494    D,
495}
496
497impl std::fmt::Display for STTransitionSideDirectionType {
498    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
499        match self {
500            Self::L => write!(f, "l"),
501            Self::U => write!(f, "u"),
502            Self::R => write!(f, "r"),
503            Self::D => write!(f, "d"),
504        }
505    }
506}
507
508impl std::str::FromStr for STTransitionSideDirectionType {
509    type Err = String;
510
511    fn from_str(s: &str) -> Result<Self, Self::Err> {
512        match s {
513            "l" => Ok(Self::L),
514            "u" => Ok(Self::U),
515            "r" => Ok(Self::R),
516            "d" => Ok(Self::D),
517            _ => Err(format!(
518                "unknown STTransitionSideDirectionType value: {}",
519                s
520            )),
521        }
522    }
523}
524
525#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
526pub enum STTransitionCornerDirectionType {
527    #[serde(rename = "lu")]
528    Lu,
529    #[serde(rename = "ru")]
530    Ru,
531    #[serde(rename = "ld")]
532    Ld,
533    #[serde(rename = "rd")]
534    Rd,
535}
536
537impl std::fmt::Display for STTransitionCornerDirectionType {
538    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
539        match self {
540            Self::Lu => write!(f, "lu"),
541            Self::Ru => write!(f, "ru"),
542            Self::Ld => write!(f, "ld"),
543            Self::Rd => write!(f, "rd"),
544        }
545    }
546}
547
548impl std::str::FromStr for STTransitionCornerDirectionType {
549    type Err = String;
550
551    fn from_str(s: &str) -> Result<Self, Self::Err> {
552        match s {
553            "lu" => Ok(Self::Lu),
554            "ru" => Ok(Self::Ru),
555            "ld" => Ok(Self::Ld),
556            "rd" => Ok(Self::Rd),
557            _ => Err(format!(
558                "unknown STTransitionCornerDirectionType value: {}",
559                s
560            )),
561        }
562    }
563}
564
565#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
566pub enum STTransitionInOutDirectionType {
567    #[serde(rename = "out")]
568    Out,
569    #[serde(rename = "in")]
570    In,
571}
572
573impl std::fmt::Display for STTransitionInOutDirectionType {
574    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
575        match self {
576            Self::Out => write!(f, "out"),
577            Self::In => write!(f, "in"),
578        }
579    }
580}
581
582impl std::str::FromStr for STTransitionInOutDirectionType {
583    type Err = String;
584
585    fn from_str(s: &str) -> Result<Self, Self::Err> {
586        match s {
587            "out" => Ok(Self::Out),
588            "in" => Ok(Self::In),
589            _ => Err(format!(
590                "unknown STTransitionInOutDirectionType value: {}",
591                s
592            )),
593        }
594    }
595}
596
597pub type STTransitionEightDirectionType = String;
598
599#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
600pub enum STTransitionSpeed {
601    #[serde(rename = "slow")]
602    Slow,
603    #[serde(rename = "med")]
604    Med,
605    #[serde(rename = "fast")]
606    Fast,
607}
608
609impl std::fmt::Display for STTransitionSpeed {
610    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
611        match self {
612            Self::Slow => write!(f, "slow"),
613            Self::Med => write!(f, "med"),
614            Self::Fast => write!(f, "fast"),
615        }
616    }
617}
618
619impl std::str::FromStr for STTransitionSpeed {
620    type Err = String;
621
622    fn from_str(s: &str) -> Result<Self, Self::Err> {
623        match s {
624            "slow" => Ok(Self::Slow),
625            "med" => Ok(Self::Med),
626            "fast" => Ok(Self::Fast),
627            _ => Err(format!("unknown STTransitionSpeed value: {}", s)),
628        }
629    }
630}
631
632pub type STTLTime = String;
633
634pub type STTLTimeNodeID = u32;
635
636#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
637pub enum STIterateType {
638    #[serde(rename = "el")]
639    El,
640    #[serde(rename = "wd")]
641    Wd,
642    #[serde(rename = "lt")]
643    Lt,
644}
645
646impl std::fmt::Display for STIterateType {
647    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
648        match self {
649            Self::El => write!(f, "el"),
650            Self::Wd => write!(f, "wd"),
651            Self::Lt => write!(f, "lt"),
652        }
653    }
654}
655
656impl std::str::FromStr for STIterateType {
657    type Err = String;
658
659    fn from_str(s: &str) -> Result<Self, Self::Err> {
660        match s {
661            "el" => Ok(Self::El),
662            "wd" => Ok(Self::Wd),
663            "lt" => Ok(Self::Lt),
664            _ => Err(format!("unknown STIterateType value: {}", s)),
665        }
666    }
667}
668
669#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
670pub enum STTLChartSubelementType {
671    #[serde(rename = "gridLegend")]
672    GridLegend,
673    #[serde(rename = "series")]
674    Series,
675    #[serde(rename = "category")]
676    Category,
677    #[serde(rename = "ptInSeries")]
678    PtInSeries,
679    #[serde(rename = "ptInCategory")]
680    PtInCategory,
681}
682
683impl std::fmt::Display for STTLChartSubelementType {
684    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
685        match self {
686            Self::GridLegend => write!(f, "gridLegend"),
687            Self::Series => write!(f, "series"),
688            Self::Category => write!(f, "category"),
689            Self::PtInSeries => write!(f, "ptInSeries"),
690            Self::PtInCategory => write!(f, "ptInCategory"),
691        }
692    }
693}
694
695impl std::str::FromStr for STTLChartSubelementType {
696    type Err = String;
697
698    fn from_str(s: &str) -> Result<Self, Self::Err> {
699        match s {
700            "gridLegend" => Ok(Self::GridLegend),
701            "series" => Ok(Self::Series),
702            "category" => Ok(Self::Category),
703            "ptInSeries" => Ok(Self::PtInSeries),
704            "ptInCategory" => Ok(Self::PtInCategory),
705            _ => Err(format!("unknown STTLChartSubelementType value: {}", s)),
706        }
707    }
708}
709
710#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
711pub enum STTLTriggerRuntimeNode {
712    #[serde(rename = "first")]
713    First,
714    #[serde(rename = "last")]
715    Last,
716    #[serde(rename = "all")]
717    All,
718}
719
720impl std::fmt::Display for STTLTriggerRuntimeNode {
721    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
722        match self {
723            Self::First => write!(f, "first"),
724            Self::Last => write!(f, "last"),
725            Self::All => write!(f, "all"),
726        }
727    }
728}
729
730impl std::str::FromStr for STTLTriggerRuntimeNode {
731    type Err = String;
732
733    fn from_str(s: &str) -> Result<Self, Self::Err> {
734        match s {
735            "first" => Ok(Self::First),
736            "last" => Ok(Self::Last),
737            "all" => Ok(Self::All),
738            _ => Err(format!("unknown STTLTriggerRuntimeNode value: {}", s)),
739        }
740    }
741}
742
743#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
744pub enum STTLTriggerEvent {
745    #[serde(rename = "onBegin")]
746    OnBegin,
747    #[serde(rename = "onEnd")]
748    OnEnd,
749    #[serde(rename = "begin")]
750    Begin,
751    #[serde(rename = "end")]
752    End,
753    #[serde(rename = "onClick")]
754    OnClick,
755    #[serde(rename = "onDblClick")]
756    OnDblClick,
757    #[serde(rename = "onMouseOver")]
758    OnMouseOver,
759    #[serde(rename = "onMouseOut")]
760    OnMouseOut,
761    #[serde(rename = "onNext")]
762    OnNext,
763    #[serde(rename = "onPrev")]
764    OnPrev,
765    #[serde(rename = "onStopAudio")]
766    OnStopAudio,
767}
768
769impl std::fmt::Display for STTLTriggerEvent {
770    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
771        match self {
772            Self::OnBegin => write!(f, "onBegin"),
773            Self::OnEnd => write!(f, "onEnd"),
774            Self::Begin => write!(f, "begin"),
775            Self::End => write!(f, "end"),
776            Self::OnClick => write!(f, "onClick"),
777            Self::OnDblClick => write!(f, "onDblClick"),
778            Self::OnMouseOver => write!(f, "onMouseOver"),
779            Self::OnMouseOut => write!(f, "onMouseOut"),
780            Self::OnNext => write!(f, "onNext"),
781            Self::OnPrev => write!(f, "onPrev"),
782            Self::OnStopAudio => write!(f, "onStopAudio"),
783        }
784    }
785}
786
787impl std::str::FromStr for STTLTriggerEvent {
788    type Err = String;
789
790    fn from_str(s: &str) -> Result<Self, Self::Err> {
791        match s {
792            "onBegin" => Ok(Self::OnBegin),
793            "onEnd" => Ok(Self::OnEnd),
794            "begin" => Ok(Self::Begin),
795            "end" => Ok(Self::End),
796            "onClick" => Ok(Self::OnClick),
797            "onDblClick" => Ok(Self::OnDblClick),
798            "onMouseOver" => Ok(Self::OnMouseOver),
799            "onMouseOut" => Ok(Self::OnMouseOut),
800            "onNext" => Ok(Self::OnNext),
801            "onPrev" => Ok(Self::OnPrev),
802            "onStopAudio" => Ok(Self::OnStopAudio),
803            _ => Err(format!("unknown STTLTriggerEvent value: {}", s)),
804        }
805    }
806}
807
808#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
809pub enum STTLTimeNodePresetClassType {
810    #[serde(rename = "entr")]
811    Entr,
812    #[serde(rename = "exit")]
813    Exit,
814    #[serde(rename = "emph")]
815    Emph,
816    #[serde(rename = "path")]
817    Path,
818    #[serde(rename = "verb")]
819    Verb,
820    #[serde(rename = "mediacall")]
821    Mediacall,
822}
823
824impl std::fmt::Display for STTLTimeNodePresetClassType {
825    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
826        match self {
827            Self::Entr => write!(f, "entr"),
828            Self::Exit => write!(f, "exit"),
829            Self::Emph => write!(f, "emph"),
830            Self::Path => write!(f, "path"),
831            Self::Verb => write!(f, "verb"),
832            Self::Mediacall => write!(f, "mediacall"),
833        }
834    }
835}
836
837impl std::str::FromStr for STTLTimeNodePresetClassType {
838    type Err = String;
839
840    fn from_str(s: &str) -> Result<Self, Self::Err> {
841        match s {
842            "entr" => Ok(Self::Entr),
843            "exit" => Ok(Self::Exit),
844            "emph" => Ok(Self::Emph),
845            "path" => Ok(Self::Path),
846            "verb" => Ok(Self::Verb),
847            "mediacall" => Ok(Self::Mediacall),
848            _ => Err(format!("unknown STTLTimeNodePresetClassType value: {}", s)),
849        }
850    }
851}
852
853#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
854pub enum STTLTimeNodeRestartType {
855    #[serde(rename = "always")]
856    Always,
857    #[serde(rename = "whenNotActive")]
858    WhenNotActive,
859    #[serde(rename = "never")]
860    Never,
861}
862
863impl std::fmt::Display for STTLTimeNodeRestartType {
864    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
865        match self {
866            Self::Always => write!(f, "always"),
867            Self::WhenNotActive => write!(f, "whenNotActive"),
868            Self::Never => write!(f, "never"),
869        }
870    }
871}
872
873impl std::str::FromStr for STTLTimeNodeRestartType {
874    type Err = String;
875
876    fn from_str(s: &str) -> Result<Self, Self::Err> {
877        match s {
878            "always" => Ok(Self::Always),
879            "whenNotActive" => Ok(Self::WhenNotActive),
880            "never" => Ok(Self::Never),
881            _ => Err(format!("unknown STTLTimeNodeRestartType value: {}", s)),
882        }
883    }
884}
885
886#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
887pub enum STTLTimeNodeFillType {
888    #[serde(rename = "remove")]
889    Remove,
890    #[serde(rename = "freeze")]
891    Freeze,
892    #[serde(rename = "hold")]
893    Hold,
894    #[serde(rename = "transition")]
895    Transition,
896}
897
898impl std::fmt::Display for STTLTimeNodeFillType {
899    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
900        match self {
901            Self::Remove => write!(f, "remove"),
902            Self::Freeze => write!(f, "freeze"),
903            Self::Hold => write!(f, "hold"),
904            Self::Transition => write!(f, "transition"),
905        }
906    }
907}
908
909impl std::str::FromStr for STTLTimeNodeFillType {
910    type Err = String;
911
912    fn from_str(s: &str) -> Result<Self, Self::Err> {
913        match s {
914            "remove" => Ok(Self::Remove),
915            "freeze" => Ok(Self::Freeze),
916            "hold" => Ok(Self::Hold),
917            "transition" => Ok(Self::Transition),
918            _ => Err(format!("unknown STTLTimeNodeFillType value: {}", s)),
919        }
920    }
921}
922
923#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
924pub enum STTLTimeNodeSyncType {
925    #[serde(rename = "canSlip")]
926    CanSlip,
927    #[serde(rename = "locked")]
928    Locked,
929}
930
931impl std::fmt::Display for STTLTimeNodeSyncType {
932    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
933        match self {
934            Self::CanSlip => write!(f, "canSlip"),
935            Self::Locked => write!(f, "locked"),
936        }
937    }
938}
939
940impl std::str::FromStr for STTLTimeNodeSyncType {
941    type Err = String;
942
943    fn from_str(s: &str) -> Result<Self, Self::Err> {
944        match s {
945            "canSlip" => Ok(Self::CanSlip),
946            "locked" => Ok(Self::Locked),
947            _ => Err(format!("unknown STTLTimeNodeSyncType value: {}", s)),
948        }
949    }
950}
951
952#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
953pub enum STTLTimeNodeMasterRelation {
954    #[serde(rename = "sameClick")]
955    SameClick,
956    #[serde(rename = "lastClick")]
957    LastClick,
958    #[serde(rename = "nextClick")]
959    NextClick,
960}
961
962impl std::fmt::Display for STTLTimeNodeMasterRelation {
963    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
964        match self {
965            Self::SameClick => write!(f, "sameClick"),
966            Self::LastClick => write!(f, "lastClick"),
967            Self::NextClick => write!(f, "nextClick"),
968        }
969    }
970}
971
972impl std::str::FromStr for STTLTimeNodeMasterRelation {
973    type Err = String;
974
975    fn from_str(s: &str) -> Result<Self, Self::Err> {
976        match s {
977            "sameClick" => Ok(Self::SameClick),
978            "lastClick" => Ok(Self::LastClick),
979            "nextClick" => Ok(Self::NextClick),
980            _ => Err(format!("unknown STTLTimeNodeMasterRelation value: {}", s)),
981        }
982    }
983}
984
985#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
986pub enum STTLTimeNodeType {
987    #[serde(rename = "clickEffect")]
988    ClickEffect,
989    #[serde(rename = "withEffect")]
990    WithEffect,
991    #[serde(rename = "afterEffect")]
992    AfterEffect,
993    #[serde(rename = "mainSeq")]
994    MainSeq,
995    #[serde(rename = "interactiveSeq")]
996    InteractiveSeq,
997    #[serde(rename = "clickPar")]
998    ClickPar,
999    #[serde(rename = "withGroup")]
1000    WithGroup,
1001    #[serde(rename = "afterGroup")]
1002    AfterGroup,
1003    #[serde(rename = "tmRoot")]
1004    TmRoot,
1005}
1006
1007impl std::fmt::Display for STTLTimeNodeType {
1008    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1009        match self {
1010            Self::ClickEffect => write!(f, "clickEffect"),
1011            Self::WithEffect => write!(f, "withEffect"),
1012            Self::AfterEffect => write!(f, "afterEffect"),
1013            Self::MainSeq => write!(f, "mainSeq"),
1014            Self::InteractiveSeq => write!(f, "interactiveSeq"),
1015            Self::ClickPar => write!(f, "clickPar"),
1016            Self::WithGroup => write!(f, "withGroup"),
1017            Self::AfterGroup => write!(f, "afterGroup"),
1018            Self::TmRoot => write!(f, "tmRoot"),
1019        }
1020    }
1021}
1022
1023impl std::str::FromStr for STTLTimeNodeType {
1024    type Err = String;
1025
1026    fn from_str(s: &str) -> Result<Self, Self::Err> {
1027        match s {
1028            "clickEffect" => Ok(Self::ClickEffect),
1029            "withEffect" => Ok(Self::WithEffect),
1030            "afterEffect" => Ok(Self::AfterEffect),
1031            "mainSeq" => Ok(Self::MainSeq),
1032            "interactiveSeq" => Ok(Self::InteractiveSeq),
1033            "clickPar" => Ok(Self::ClickPar),
1034            "withGroup" => Ok(Self::WithGroup),
1035            "afterGroup" => Ok(Self::AfterGroup),
1036            "tmRoot" => Ok(Self::TmRoot),
1037            _ => Err(format!("unknown STTLTimeNodeType value: {}", s)),
1038        }
1039    }
1040}
1041
1042#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1043pub enum STTLNextActionType {
1044    #[serde(rename = "none")]
1045    None,
1046    #[serde(rename = "seek")]
1047    Seek,
1048}
1049
1050impl std::fmt::Display for STTLNextActionType {
1051    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1052        match self {
1053            Self::None => write!(f, "none"),
1054            Self::Seek => write!(f, "seek"),
1055        }
1056    }
1057}
1058
1059impl std::str::FromStr for STTLNextActionType {
1060    type Err = String;
1061
1062    fn from_str(s: &str) -> Result<Self, Self::Err> {
1063        match s {
1064            "none" => Ok(Self::None),
1065            "seek" => Ok(Self::Seek),
1066            _ => Err(format!("unknown STTLNextActionType value: {}", s)),
1067        }
1068    }
1069}
1070
1071#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1072pub enum STTLPreviousActionType {
1073    #[serde(rename = "none")]
1074    None,
1075    #[serde(rename = "skipTimed")]
1076    SkipTimed,
1077}
1078
1079impl std::fmt::Display for STTLPreviousActionType {
1080    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1081        match self {
1082            Self::None => write!(f, "none"),
1083            Self::SkipTimed => write!(f, "skipTimed"),
1084        }
1085    }
1086}
1087
1088impl std::str::FromStr for STTLPreviousActionType {
1089    type Err = String;
1090
1091    fn from_str(s: &str) -> Result<Self, Self::Err> {
1092        match s {
1093            "none" => Ok(Self::None),
1094            "skipTimed" => Ok(Self::SkipTimed),
1095            _ => Err(format!("unknown STTLPreviousActionType value: {}", s)),
1096        }
1097    }
1098}
1099
1100#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1101pub enum STTLBehaviorAdditiveType {
1102    #[serde(rename = "base")]
1103    Base,
1104    #[serde(rename = "sum")]
1105    Sum,
1106    #[serde(rename = "repl")]
1107    Repl,
1108    #[serde(rename = "mult")]
1109    Mult,
1110    #[serde(rename = "none")]
1111    None,
1112}
1113
1114impl std::fmt::Display for STTLBehaviorAdditiveType {
1115    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1116        match self {
1117            Self::Base => write!(f, "base"),
1118            Self::Sum => write!(f, "sum"),
1119            Self::Repl => write!(f, "repl"),
1120            Self::Mult => write!(f, "mult"),
1121            Self::None => write!(f, "none"),
1122        }
1123    }
1124}
1125
1126impl std::str::FromStr for STTLBehaviorAdditiveType {
1127    type Err = String;
1128
1129    fn from_str(s: &str) -> Result<Self, Self::Err> {
1130        match s {
1131            "base" => Ok(Self::Base),
1132            "sum" => Ok(Self::Sum),
1133            "repl" => Ok(Self::Repl),
1134            "mult" => Ok(Self::Mult),
1135            "none" => Ok(Self::None),
1136            _ => Err(format!("unknown STTLBehaviorAdditiveType value: {}", s)),
1137        }
1138    }
1139}
1140
1141#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1142pub enum STTLBehaviorAccumulateType {
1143    #[serde(rename = "none")]
1144    None,
1145    #[serde(rename = "always")]
1146    Always,
1147}
1148
1149impl std::fmt::Display for STTLBehaviorAccumulateType {
1150    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1151        match self {
1152            Self::None => write!(f, "none"),
1153            Self::Always => write!(f, "always"),
1154        }
1155    }
1156}
1157
1158impl std::str::FromStr for STTLBehaviorAccumulateType {
1159    type Err = String;
1160
1161    fn from_str(s: &str) -> Result<Self, Self::Err> {
1162        match s {
1163            "none" => Ok(Self::None),
1164            "always" => Ok(Self::Always),
1165            _ => Err(format!("unknown STTLBehaviorAccumulateType value: {}", s)),
1166        }
1167    }
1168}
1169
1170#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1171pub enum STTLBehaviorTransformType {
1172    #[serde(rename = "pt")]
1173    Pt,
1174    #[serde(rename = "img")]
1175    Img,
1176}
1177
1178impl std::fmt::Display for STTLBehaviorTransformType {
1179    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1180        match self {
1181            Self::Pt => write!(f, "pt"),
1182            Self::Img => write!(f, "img"),
1183        }
1184    }
1185}
1186
1187impl std::str::FromStr for STTLBehaviorTransformType {
1188    type Err = String;
1189
1190    fn from_str(s: &str) -> Result<Self, Self::Err> {
1191        match s {
1192            "pt" => Ok(Self::Pt),
1193            "img" => Ok(Self::Img),
1194            _ => Err(format!("unknown STTLBehaviorTransformType value: {}", s)),
1195        }
1196    }
1197}
1198
1199#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1200pub enum STTLBehaviorOverrideType {
1201    #[serde(rename = "normal")]
1202    Normal,
1203    #[serde(rename = "childStyle")]
1204    ChildStyle,
1205}
1206
1207impl std::fmt::Display for STTLBehaviorOverrideType {
1208    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1209        match self {
1210            Self::Normal => write!(f, "normal"),
1211            Self::ChildStyle => write!(f, "childStyle"),
1212        }
1213    }
1214}
1215
1216impl std::str::FromStr for STTLBehaviorOverrideType {
1217    type Err = String;
1218
1219    fn from_str(s: &str) -> Result<Self, Self::Err> {
1220        match s {
1221            "normal" => Ok(Self::Normal),
1222            "childStyle" => Ok(Self::ChildStyle),
1223            _ => Err(format!("unknown STTLBehaviorOverrideType value: {}", s)),
1224        }
1225    }
1226}
1227
1228pub type STTLTimeAnimateValueTime = String;
1229
1230#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1231pub enum STTLAnimateBehaviorCalcMode {
1232    #[serde(rename = "discrete")]
1233    Discrete,
1234    #[serde(rename = "lin")]
1235    Lin,
1236    #[serde(rename = "fmla")]
1237    Fmla,
1238}
1239
1240impl std::fmt::Display for STTLAnimateBehaviorCalcMode {
1241    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1242        match self {
1243            Self::Discrete => write!(f, "discrete"),
1244            Self::Lin => write!(f, "lin"),
1245            Self::Fmla => write!(f, "fmla"),
1246        }
1247    }
1248}
1249
1250impl std::str::FromStr for STTLAnimateBehaviorCalcMode {
1251    type Err = String;
1252
1253    fn from_str(s: &str) -> Result<Self, Self::Err> {
1254        match s {
1255            "discrete" => Ok(Self::Discrete),
1256            "lin" => Ok(Self::Lin),
1257            "fmla" => Ok(Self::Fmla),
1258            _ => Err(format!("unknown STTLAnimateBehaviorCalcMode value: {}", s)),
1259        }
1260    }
1261}
1262
1263#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1264pub enum STTLAnimateBehaviorValueType {
1265    #[serde(rename = "str")]
1266    Str,
1267    #[serde(rename = "num")]
1268    Num,
1269    #[serde(rename = "clr")]
1270    Clr,
1271}
1272
1273impl std::fmt::Display for STTLAnimateBehaviorValueType {
1274    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1275        match self {
1276            Self::Str => write!(f, "str"),
1277            Self::Num => write!(f, "num"),
1278            Self::Clr => write!(f, "clr"),
1279        }
1280    }
1281}
1282
1283impl std::str::FromStr for STTLAnimateBehaviorValueType {
1284    type Err = String;
1285
1286    fn from_str(s: &str) -> Result<Self, Self::Err> {
1287        match s {
1288            "str" => Ok(Self::Str),
1289            "num" => Ok(Self::Num),
1290            "clr" => Ok(Self::Clr),
1291            _ => Err(format!("unknown STTLAnimateBehaviorValueType value: {}", s)),
1292        }
1293    }
1294}
1295
1296#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1297pub enum STTLAnimateColorSpace {
1298    #[serde(rename = "rgb")]
1299    Rgb,
1300    #[serde(rename = "hsl")]
1301    Hsl,
1302}
1303
1304impl std::fmt::Display for STTLAnimateColorSpace {
1305    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1306        match self {
1307            Self::Rgb => write!(f, "rgb"),
1308            Self::Hsl => write!(f, "hsl"),
1309        }
1310    }
1311}
1312
1313impl std::str::FromStr for STTLAnimateColorSpace {
1314    type Err = String;
1315
1316    fn from_str(s: &str) -> Result<Self, Self::Err> {
1317        match s {
1318            "rgb" => Ok(Self::Rgb),
1319            "hsl" => Ok(Self::Hsl),
1320            _ => Err(format!("unknown STTLAnimateColorSpace value: {}", s)),
1321        }
1322    }
1323}
1324
1325#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1326pub enum STTLAnimateColorDirection {
1327    #[serde(rename = "cw")]
1328    Cw,
1329    #[serde(rename = "ccw")]
1330    Ccw,
1331}
1332
1333impl std::fmt::Display for STTLAnimateColorDirection {
1334    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1335        match self {
1336            Self::Cw => write!(f, "cw"),
1337            Self::Ccw => write!(f, "ccw"),
1338        }
1339    }
1340}
1341
1342impl std::str::FromStr for STTLAnimateColorDirection {
1343    type Err = String;
1344
1345    fn from_str(s: &str) -> Result<Self, Self::Err> {
1346        match s {
1347            "cw" => Ok(Self::Cw),
1348            "ccw" => Ok(Self::Ccw),
1349            _ => Err(format!("unknown STTLAnimateColorDirection value: {}", s)),
1350        }
1351    }
1352}
1353
1354#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1355pub enum STTLAnimateEffectTransition {
1356    #[serde(rename = "in")]
1357    In,
1358    #[serde(rename = "out")]
1359    Out,
1360    #[serde(rename = "none")]
1361    None,
1362}
1363
1364impl std::fmt::Display for STTLAnimateEffectTransition {
1365    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1366        match self {
1367            Self::In => write!(f, "in"),
1368            Self::Out => write!(f, "out"),
1369            Self::None => write!(f, "none"),
1370        }
1371    }
1372}
1373
1374impl std::str::FromStr for STTLAnimateEffectTransition {
1375    type Err = String;
1376
1377    fn from_str(s: &str) -> Result<Self, Self::Err> {
1378        match s {
1379            "in" => Ok(Self::In),
1380            "out" => Ok(Self::Out),
1381            "none" => Ok(Self::None),
1382            _ => Err(format!("unknown STTLAnimateEffectTransition value: {}", s)),
1383        }
1384    }
1385}
1386
1387#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1388pub enum STTLAnimateMotionBehaviorOrigin {
1389    #[serde(rename = "parent")]
1390    Parent,
1391    #[serde(rename = "layout")]
1392    Layout,
1393}
1394
1395impl std::fmt::Display for STTLAnimateMotionBehaviorOrigin {
1396    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1397        match self {
1398            Self::Parent => write!(f, "parent"),
1399            Self::Layout => write!(f, "layout"),
1400        }
1401    }
1402}
1403
1404impl std::str::FromStr for STTLAnimateMotionBehaviorOrigin {
1405    type Err = String;
1406
1407    fn from_str(s: &str) -> Result<Self, Self::Err> {
1408        match s {
1409            "parent" => Ok(Self::Parent),
1410            "layout" => Ok(Self::Layout),
1411            _ => Err(format!(
1412                "unknown STTLAnimateMotionBehaviorOrigin value: {}",
1413                s
1414            )),
1415        }
1416    }
1417}
1418
1419#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1420pub enum STTLAnimateMotionPathEditMode {
1421    #[serde(rename = "relative")]
1422    Relative,
1423    #[serde(rename = "fixed")]
1424    Fixed,
1425}
1426
1427impl std::fmt::Display for STTLAnimateMotionPathEditMode {
1428    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1429        match self {
1430            Self::Relative => write!(f, "relative"),
1431            Self::Fixed => write!(f, "fixed"),
1432        }
1433    }
1434}
1435
1436impl std::str::FromStr for STTLAnimateMotionPathEditMode {
1437    type Err = String;
1438
1439    fn from_str(s: &str) -> Result<Self, Self::Err> {
1440        match s {
1441            "relative" => Ok(Self::Relative),
1442            "fixed" => Ok(Self::Fixed),
1443            _ => Err(format!(
1444                "unknown STTLAnimateMotionPathEditMode value: {}",
1445                s
1446            )),
1447        }
1448    }
1449}
1450
1451#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1452pub enum STTLCommandType {
1453    #[serde(rename = "evt")]
1454    Evt,
1455    #[serde(rename = "call")]
1456    Call,
1457    #[serde(rename = "verb")]
1458    Verb,
1459}
1460
1461impl std::fmt::Display for STTLCommandType {
1462    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1463        match self {
1464            Self::Evt => write!(f, "evt"),
1465            Self::Call => write!(f, "call"),
1466            Self::Verb => write!(f, "verb"),
1467        }
1468    }
1469}
1470
1471impl std::str::FromStr for STTLCommandType {
1472    type Err = String;
1473
1474    fn from_str(s: &str) -> Result<Self, Self::Err> {
1475        match s {
1476            "evt" => Ok(Self::Evt),
1477            "call" => Ok(Self::Call),
1478            "verb" => Ok(Self::Verb),
1479            _ => Err(format!("unknown STTLCommandType value: {}", s)),
1480        }
1481    }
1482}
1483
1484#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1485pub enum STTLParaBuildType {
1486    #[serde(rename = "allAtOnce")]
1487    AllAtOnce,
1488    #[serde(rename = "p")]
1489    P,
1490    #[serde(rename = "cust")]
1491    Cust,
1492    #[serde(rename = "whole")]
1493    Whole,
1494}
1495
1496impl std::fmt::Display for STTLParaBuildType {
1497    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1498        match self {
1499            Self::AllAtOnce => write!(f, "allAtOnce"),
1500            Self::P => write!(f, "p"),
1501            Self::Cust => write!(f, "cust"),
1502            Self::Whole => write!(f, "whole"),
1503        }
1504    }
1505}
1506
1507impl std::str::FromStr for STTLParaBuildType {
1508    type Err = String;
1509
1510    fn from_str(s: &str) -> Result<Self, Self::Err> {
1511        match s {
1512            "allAtOnce" => Ok(Self::AllAtOnce),
1513            "p" => Ok(Self::P),
1514            "cust" => Ok(Self::Cust),
1515            "whole" => Ok(Self::Whole),
1516            _ => Err(format!("unknown STTLParaBuildType value: {}", s)),
1517        }
1518    }
1519}
1520
1521#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1522pub enum STTLDiagramBuildType {
1523    #[serde(rename = "whole")]
1524    Whole,
1525    #[serde(rename = "depthByNode")]
1526    DepthByNode,
1527    #[serde(rename = "depthByBranch")]
1528    DepthByBranch,
1529    #[serde(rename = "breadthByNode")]
1530    BreadthByNode,
1531    #[serde(rename = "breadthByLvl")]
1532    BreadthByLvl,
1533    #[serde(rename = "cw")]
1534    Cw,
1535    #[serde(rename = "cwIn")]
1536    CwIn,
1537    #[serde(rename = "cwOut")]
1538    CwOut,
1539    #[serde(rename = "ccw")]
1540    Ccw,
1541    #[serde(rename = "ccwIn")]
1542    CcwIn,
1543    #[serde(rename = "ccwOut")]
1544    CcwOut,
1545    #[serde(rename = "inByRing")]
1546    InByRing,
1547    #[serde(rename = "outByRing")]
1548    OutByRing,
1549    #[serde(rename = "up")]
1550    Up,
1551    #[serde(rename = "down")]
1552    Down,
1553    #[serde(rename = "allAtOnce")]
1554    AllAtOnce,
1555    #[serde(rename = "cust")]
1556    Cust,
1557}
1558
1559impl std::fmt::Display for STTLDiagramBuildType {
1560    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1561        match self {
1562            Self::Whole => write!(f, "whole"),
1563            Self::DepthByNode => write!(f, "depthByNode"),
1564            Self::DepthByBranch => write!(f, "depthByBranch"),
1565            Self::BreadthByNode => write!(f, "breadthByNode"),
1566            Self::BreadthByLvl => write!(f, "breadthByLvl"),
1567            Self::Cw => write!(f, "cw"),
1568            Self::CwIn => write!(f, "cwIn"),
1569            Self::CwOut => write!(f, "cwOut"),
1570            Self::Ccw => write!(f, "ccw"),
1571            Self::CcwIn => write!(f, "ccwIn"),
1572            Self::CcwOut => write!(f, "ccwOut"),
1573            Self::InByRing => write!(f, "inByRing"),
1574            Self::OutByRing => write!(f, "outByRing"),
1575            Self::Up => write!(f, "up"),
1576            Self::Down => write!(f, "down"),
1577            Self::AllAtOnce => write!(f, "allAtOnce"),
1578            Self::Cust => write!(f, "cust"),
1579        }
1580    }
1581}
1582
1583impl std::str::FromStr for STTLDiagramBuildType {
1584    type Err = String;
1585
1586    fn from_str(s: &str) -> Result<Self, Self::Err> {
1587        match s {
1588            "whole" => Ok(Self::Whole),
1589            "depthByNode" => Ok(Self::DepthByNode),
1590            "depthByBranch" => Ok(Self::DepthByBranch),
1591            "breadthByNode" => Ok(Self::BreadthByNode),
1592            "breadthByLvl" => Ok(Self::BreadthByLvl),
1593            "cw" => Ok(Self::Cw),
1594            "cwIn" => Ok(Self::CwIn),
1595            "cwOut" => Ok(Self::CwOut),
1596            "ccw" => Ok(Self::Ccw),
1597            "ccwIn" => Ok(Self::CcwIn),
1598            "ccwOut" => Ok(Self::CcwOut),
1599            "inByRing" => Ok(Self::InByRing),
1600            "outByRing" => Ok(Self::OutByRing),
1601            "up" => Ok(Self::Up),
1602            "down" => Ok(Self::Down),
1603            "allAtOnce" => Ok(Self::AllAtOnce),
1604            "cust" => Ok(Self::Cust),
1605            _ => Err(format!("unknown STTLDiagramBuildType value: {}", s)),
1606        }
1607    }
1608}
1609
1610#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1611pub enum STTLOleChartBuildType {
1612    #[serde(rename = "allAtOnce")]
1613    AllAtOnce,
1614    #[serde(rename = "series")]
1615    Series,
1616    #[serde(rename = "category")]
1617    Category,
1618    #[serde(rename = "seriesEl")]
1619    SeriesEl,
1620    #[serde(rename = "categoryEl")]
1621    CategoryEl,
1622}
1623
1624impl std::fmt::Display for STTLOleChartBuildType {
1625    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1626        match self {
1627            Self::AllAtOnce => write!(f, "allAtOnce"),
1628            Self::Series => write!(f, "series"),
1629            Self::Category => write!(f, "category"),
1630            Self::SeriesEl => write!(f, "seriesEl"),
1631            Self::CategoryEl => write!(f, "categoryEl"),
1632        }
1633    }
1634}
1635
1636impl std::str::FromStr for STTLOleChartBuildType {
1637    type Err = String;
1638
1639    fn from_str(s: &str) -> Result<Self, Self::Err> {
1640        match s {
1641            "allAtOnce" => Ok(Self::AllAtOnce),
1642            "series" => Ok(Self::Series),
1643            "category" => Ok(Self::Category),
1644            "seriesEl" => Ok(Self::SeriesEl),
1645            "categoryEl" => Ok(Self::CategoryEl),
1646            _ => Err(format!("unknown STTLOleChartBuildType value: {}", s)),
1647        }
1648    }
1649}
1650
1651pub type STName = String;
1652
1653#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1654pub enum STDirection {
1655    #[serde(rename = "horz")]
1656    Horz,
1657    #[serde(rename = "vert")]
1658    Vert,
1659}
1660
1661impl std::fmt::Display for STDirection {
1662    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1663        match self {
1664            Self::Horz => write!(f, "horz"),
1665            Self::Vert => write!(f, "vert"),
1666        }
1667    }
1668}
1669
1670impl std::str::FromStr for STDirection {
1671    type Err = String;
1672
1673    fn from_str(s: &str) -> Result<Self, Self::Err> {
1674        match s {
1675            "horz" => Ok(Self::Horz),
1676            "vert" => Ok(Self::Vert),
1677            _ => Err(format!("unknown STDirection value: {}", s)),
1678        }
1679    }
1680}
1681
1682pub type STIndex = u32;
1683
1684#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1685pub enum STOleObjectFollowColorScheme {
1686    #[serde(rename = "none")]
1687    None,
1688    #[serde(rename = "full")]
1689    Full,
1690    #[serde(rename = "textAndBackground")]
1691    TextAndBackground,
1692}
1693
1694impl std::fmt::Display for STOleObjectFollowColorScheme {
1695    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1696        match self {
1697            Self::None => write!(f, "none"),
1698            Self::Full => write!(f, "full"),
1699            Self::TextAndBackground => write!(f, "textAndBackground"),
1700        }
1701    }
1702}
1703
1704impl std::str::FromStr for STOleObjectFollowColorScheme {
1705    type Err = String;
1706
1707    fn from_str(s: &str) -> Result<Self, Self::Err> {
1708        match s {
1709            "none" => Ok(Self::None),
1710            "full" => Ok(Self::Full),
1711            "textAndBackground" => Ok(Self::TextAndBackground),
1712            _ => Err(format!("unknown STOleObjectFollowColorScheme value: {}", s)),
1713        }
1714    }
1715}
1716
1717pub type STSlideId = u32;
1718
1719pub type STSlideMasterId = u32;
1720
1721#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1722pub enum STPhotoAlbumLayout {
1723    #[serde(rename = "fitToSlide")]
1724    FitToSlide,
1725    #[serde(rename = "1pic")]
1726    _1pic,
1727    #[serde(rename = "2pic")]
1728    _2pic,
1729    #[serde(rename = "4pic")]
1730    _4pic,
1731    #[serde(rename = "1picTitle")]
1732    _1picTitle,
1733    #[serde(rename = "2picTitle")]
1734    _2picTitle,
1735    #[serde(rename = "4picTitle")]
1736    _4picTitle,
1737}
1738
1739impl std::fmt::Display for STPhotoAlbumLayout {
1740    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1741        match self {
1742            Self::FitToSlide => write!(f, "fitToSlide"),
1743            Self::_1pic => write!(f, "1pic"),
1744            Self::_2pic => write!(f, "2pic"),
1745            Self::_4pic => write!(f, "4pic"),
1746            Self::_1picTitle => write!(f, "1picTitle"),
1747            Self::_2picTitle => write!(f, "2picTitle"),
1748            Self::_4picTitle => write!(f, "4picTitle"),
1749        }
1750    }
1751}
1752
1753impl std::str::FromStr for STPhotoAlbumLayout {
1754    type Err = String;
1755
1756    fn from_str(s: &str) -> Result<Self, Self::Err> {
1757        match s {
1758            "fitToSlide" => Ok(Self::FitToSlide),
1759            "1pic" => Ok(Self::_1pic),
1760            "2pic" => Ok(Self::_2pic),
1761            "4pic" => Ok(Self::_4pic),
1762            "1picTitle" => Ok(Self::_1picTitle),
1763            "2picTitle" => Ok(Self::_2picTitle),
1764            "4picTitle" => Ok(Self::_4picTitle),
1765            _ => Err(format!("unknown STPhotoAlbumLayout value: {}", s)),
1766        }
1767    }
1768}
1769
1770#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1771pub enum STPhotoAlbumFrameShape {
1772    #[serde(rename = "frameStyle1")]
1773    FrameStyle1,
1774    #[serde(rename = "frameStyle2")]
1775    FrameStyle2,
1776    #[serde(rename = "frameStyle3")]
1777    FrameStyle3,
1778    #[serde(rename = "frameStyle4")]
1779    FrameStyle4,
1780    #[serde(rename = "frameStyle5")]
1781    FrameStyle5,
1782    #[serde(rename = "frameStyle6")]
1783    FrameStyle6,
1784    #[serde(rename = "frameStyle7")]
1785    FrameStyle7,
1786}
1787
1788impl std::fmt::Display for STPhotoAlbumFrameShape {
1789    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1790        match self {
1791            Self::FrameStyle1 => write!(f, "frameStyle1"),
1792            Self::FrameStyle2 => write!(f, "frameStyle2"),
1793            Self::FrameStyle3 => write!(f, "frameStyle3"),
1794            Self::FrameStyle4 => write!(f, "frameStyle4"),
1795            Self::FrameStyle5 => write!(f, "frameStyle5"),
1796            Self::FrameStyle6 => write!(f, "frameStyle6"),
1797            Self::FrameStyle7 => write!(f, "frameStyle7"),
1798        }
1799    }
1800}
1801
1802impl std::str::FromStr for STPhotoAlbumFrameShape {
1803    type Err = String;
1804
1805    fn from_str(s: &str) -> Result<Self, Self::Err> {
1806        match s {
1807            "frameStyle1" => Ok(Self::FrameStyle1),
1808            "frameStyle2" => Ok(Self::FrameStyle2),
1809            "frameStyle3" => Ok(Self::FrameStyle3),
1810            "frameStyle4" => Ok(Self::FrameStyle4),
1811            "frameStyle5" => Ok(Self::FrameStyle5),
1812            "frameStyle6" => Ok(Self::FrameStyle6),
1813            "frameStyle7" => Ok(Self::FrameStyle7),
1814            _ => Err(format!("unknown STPhotoAlbumFrameShape value: {}", s)),
1815        }
1816    }
1817}
1818
1819pub type STSlideSizeCoordinate = i32;
1820
1821#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1822pub enum STSlideSizeType {
1823    #[serde(rename = "screen4x3")]
1824    Screen4x3,
1825    #[serde(rename = "letter")]
1826    Letter,
1827    #[serde(rename = "A4")]
1828    A4,
1829    #[serde(rename = "35mm")]
1830    _35mm,
1831    #[serde(rename = "overhead")]
1832    Overhead,
1833    #[serde(rename = "banner")]
1834    Banner,
1835    #[serde(rename = "custom")]
1836    Custom,
1837    #[serde(rename = "ledger")]
1838    Ledger,
1839    #[serde(rename = "A3")]
1840    A3,
1841    #[serde(rename = "B4ISO")]
1842    B4ISO,
1843    #[serde(rename = "B5ISO")]
1844    B5ISO,
1845    #[serde(rename = "B4JIS")]
1846    B4JIS,
1847    #[serde(rename = "B5JIS")]
1848    B5JIS,
1849    #[serde(rename = "hagakiCard")]
1850    HagakiCard,
1851    #[serde(rename = "screen16x9")]
1852    Screen16x9,
1853    #[serde(rename = "screen16x10")]
1854    Screen16x10,
1855}
1856
1857impl std::fmt::Display for STSlideSizeType {
1858    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1859        match self {
1860            Self::Screen4x3 => write!(f, "screen4x3"),
1861            Self::Letter => write!(f, "letter"),
1862            Self::A4 => write!(f, "A4"),
1863            Self::_35mm => write!(f, "35mm"),
1864            Self::Overhead => write!(f, "overhead"),
1865            Self::Banner => write!(f, "banner"),
1866            Self::Custom => write!(f, "custom"),
1867            Self::Ledger => write!(f, "ledger"),
1868            Self::A3 => write!(f, "A3"),
1869            Self::B4ISO => write!(f, "B4ISO"),
1870            Self::B5ISO => write!(f, "B5ISO"),
1871            Self::B4JIS => write!(f, "B4JIS"),
1872            Self::B5JIS => write!(f, "B5JIS"),
1873            Self::HagakiCard => write!(f, "hagakiCard"),
1874            Self::Screen16x9 => write!(f, "screen16x9"),
1875            Self::Screen16x10 => write!(f, "screen16x10"),
1876        }
1877    }
1878}
1879
1880impl std::str::FromStr for STSlideSizeType {
1881    type Err = String;
1882
1883    fn from_str(s: &str) -> Result<Self, Self::Err> {
1884        match s {
1885            "screen4x3" => Ok(Self::Screen4x3),
1886            "letter" => Ok(Self::Letter),
1887            "A4" => Ok(Self::A4),
1888            "35mm" => Ok(Self::_35mm),
1889            "overhead" => Ok(Self::Overhead),
1890            "banner" => Ok(Self::Banner),
1891            "custom" => Ok(Self::Custom),
1892            "ledger" => Ok(Self::Ledger),
1893            "A3" => Ok(Self::A3),
1894            "B4ISO" => Ok(Self::B4ISO),
1895            "B5ISO" => Ok(Self::B5ISO),
1896            "B4JIS" => Ok(Self::B4JIS),
1897            "B5JIS" => Ok(Self::B5JIS),
1898            "hagakiCard" => Ok(Self::HagakiCard),
1899            "screen16x9" => Ok(Self::Screen16x9),
1900            "screen16x10" => Ok(Self::Screen16x10),
1901            _ => Err(format!("unknown STSlideSizeType value: {}", s)),
1902        }
1903    }
1904}
1905
1906pub type STBookmarkIdSeed = u32;
1907
1908#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1909pub enum STWebColorType {
1910    #[serde(rename = "none")]
1911    None,
1912    #[serde(rename = "browser")]
1913    Browser,
1914    #[serde(rename = "presentationText")]
1915    PresentationText,
1916    #[serde(rename = "presentationAccent")]
1917    PresentationAccent,
1918    #[serde(rename = "whiteTextOnBlack")]
1919    WhiteTextOnBlack,
1920    #[serde(rename = "blackTextOnWhite")]
1921    BlackTextOnWhite,
1922}
1923
1924impl std::fmt::Display for STWebColorType {
1925    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1926        match self {
1927            Self::None => write!(f, "none"),
1928            Self::Browser => write!(f, "browser"),
1929            Self::PresentationText => write!(f, "presentationText"),
1930            Self::PresentationAccent => write!(f, "presentationAccent"),
1931            Self::WhiteTextOnBlack => write!(f, "whiteTextOnBlack"),
1932            Self::BlackTextOnWhite => write!(f, "blackTextOnWhite"),
1933        }
1934    }
1935}
1936
1937impl std::str::FromStr for STWebColorType {
1938    type Err = String;
1939
1940    fn from_str(s: &str) -> Result<Self, Self::Err> {
1941        match s {
1942            "none" => Ok(Self::None),
1943            "browser" => Ok(Self::Browser),
1944            "presentationText" => Ok(Self::PresentationText),
1945            "presentationAccent" => Ok(Self::PresentationAccent),
1946            "whiteTextOnBlack" => Ok(Self::WhiteTextOnBlack),
1947            "blackTextOnWhite" => Ok(Self::BlackTextOnWhite),
1948            _ => Err(format!("unknown STWebColorType value: {}", s)),
1949        }
1950    }
1951}
1952
1953#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
1954pub enum STWebScreenSize {
1955    #[serde(rename = "544x376")]
1956    _544x376,
1957    #[serde(rename = "640x480")]
1958    _640x480,
1959    #[serde(rename = "720x512")]
1960    _720x512,
1961    #[serde(rename = "800x600")]
1962    _800x600,
1963    #[serde(rename = "1024x768")]
1964    _1024x768,
1965    #[serde(rename = "1152x882")]
1966    _1152x882,
1967    #[serde(rename = "1152x900")]
1968    _1152x900,
1969    #[serde(rename = "1280x1024")]
1970    _1280x1024,
1971    #[serde(rename = "1600x1200")]
1972    _1600x1200,
1973    #[serde(rename = "1800x1400")]
1974    _1800x1400,
1975    #[serde(rename = "1920x1200")]
1976    _1920x1200,
1977}
1978
1979impl std::fmt::Display for STWebScreenSize {
1980    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1981        match self {
1982            Self::_544x376 => write!(f, "544x376"),
1983            Self::_640x480 => write!(f, "640x480"),
1984            Self::_720x512 => write!(f, "720x512"),
1985            Self::_800x600 => write!(f, "800x600"),
1986            Self::_1024x768 => write!(f, "1024x768"),
1987            Self::_1152x882 => write!(f, "1152x882"),
1988            Self::_1152x900 => write!(f, "1152x900"),
1989            Self::_1280x1024 => write!(f, "1280x1024"),
1990            Self::_1600x1200 => write!(f, "1600x1200"),
1991            Self::_1800x1400 => write!(f, "1800x1400"),
1992            Self::_1920x1200 => write!(f, "1920x1200"),
1993        }
1994    }
1995}
1996
1997impl std::str::FromStr for STWebScreenSize {
1998    type Err = String;
1999
2000    fn from_str(s: &str) -> Result<Self, Self::Err> {
2001        match s {
2002            "544x376" => Ok(Self::_544x376),
2003            "640x480" => Ok(Self::_640x480),
2004            "720x512" => Ok(Self::_720x512),
2005            "800x600" => Ok(Self::_800x600),
2006            "1024x768" => Ok(Self::_1024x768),
2007            "1152x882" => Ok(Self::_1152x882),
2008            "1152x900" => Ok(Self::_1152x900),
2009            "1280x1024" => Ok(Self::_1280x1024),
2010            "1600x1200" => Ok(Self::_1600x1200),
2011            "1800x1400" => Ok(Self::_1800x1400),
2012            "1920x1200" => Ok(Self::_1920x1200),
2013            _ => Err(format!("unknown STWebScreenSize value: {}", s)),
2014        }
2015    }
2016}
2017
2018pub type STWebEncoding = String;
2019
2020#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2021pub enum STPrintWhat {
2022    #[serde(rename = "slides")]
2023    Slides,
2024    #[serde(rename = "handouts1")]
2025    Handouts1,
2026    #[serde(rename = "handouts2")]
2027    Handouts2,
2028    #[serde(rename = "handouts3")]
2029    Handouts3,
2030    #[serde(rename = "handouts4")]
2031    Handouts4,
2032    #[serde(rename = "handouts6")]
2033    Handouts6,
2034    #[serde(rename = "handouts9")]
2035    Handouts9,
2036    #[serde(rename = "notes")]
2037    Notes,
2038    #[serde(rename = "outline")]
2039    Outline,
2040}
2041
2042impl std::fmt::Display for STPrintWhat {
2043    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2044        match self {
2045            Self::Slides => write!(f, "slides"),
2046            Self::Handouts1 => write!(f, "handouts1"),
2047            Self::Handouts2 => write!(f, "handouts2"),
2048            Self::Handouts3 => write!(f, "handouts3"),
2049            Self::Handouts4 => write!(f, "handouts4"),
2050            Self::Handouts6 => write!(f, "handouts6"),
2051            Self::Handouts9 => write!(f, "handouts9"),
2052            Self::Notes => write!(f, "notes"),
2053            Self::Outline => write!(f, "outline"),
2054        }
2055    }
2056}
2057
2058impl std::str::FromStr for STPrintWhat {
2059    type Err = String;
2060
2061    fn from_str(s: &str) -> Result<Self, Self::Err> {
2062        match s {
2063            "slides" => Ok(Self::Slides),
2064            "handouts1" => Ok(Self::Handouts1),
2065            "handouts2" => Ok(Self::Handouts2),
2066            "handouts3" => Ok(Self::Handouts3),
2067            "handouts4" => Ok(Self::Handouts4),
2068            "handouts6" => Ok(Self::Handouts6),
2069            "handouts9" => Ok(Self::Handouts9),
2070            "notes" => Ok(Self::Notes),
2071            "outline" => Ok(Self::Outline),
2072            _ => Err(format!("unknown STPrintWhat value: {}", s)),
2073        }
2074    }
2075}
2076
2077#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2078pub enum STPrintColorMode {
2079    #[serde(rename = "bw")]
2080    Bw,
2081    #[serde(rename = "gray")]
2082    Gray,
2083    #[serde(rename = "clr")]
2084    Clr,
2085}
2086
2087impl std::fmt::Display for STPrintColorMode {
2088    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2089        match self {
2090            Self::Bw => write!(f, "bw"),
2091            Self::Gray => write!(f, "gray"),
2092            Self::Clr => write!(f, "clr"),
2093        }
2094    }
2095}
2096
2097impl std::str::FromStr for STPrintColorMode {
2098    type Err = String;
2099
2100    fn from_str(s: &str) -> Result<Self, Self::Err> {
2101        match s {
2102            "bw" => Ok(Self::Bw),
2103            "gray" => Ok(Self::Gray),
2104            "clr" => Ok(Self::Clr),
2105            _ => Err(format!("unknown STPrintColorMode value: {}", s)),
2106        }
2107    }
2108}
2109
2110#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2111pub enum STPlaceholderType {
2112    #[serde(rename = "title")]
2113    Title,
2114    #[serde(rename = "body")]
2115    Body,
2116    #[serde(rename = "ctrTitle")]
2117    CtrTitle,
2118    #[serde(rename = "subTitle")]
2119    SubTitle,
2120    #[serde(rename = "dt")]
2121    Dt,
2122    #[serde(rename = "sldNum")]
2123    SldNum,
2124    #[serde(rename = "ftr")]
2125    Ftr,
2126    #[serde(rename = "hdr")]
2127    Hdr,
2128    #[serde(rename = "obj")]
2129    Obj,
2130    #[serde(rename = "chart")]
2131    Chart,
2132    #[serde(rename = "tbl")]
2133    Tbl,
2134    #[serde(rename = "clipArt")]
2135    ClipArt,
2136    #[serde(rename = "dgm")]
2137    Dgm,
2138    #[serde(rename = "media")]
2139    Media,
2140    #[serde(rename = "sldImg")]
2141    SldImg,
2142    #[serde(rename = "pic")]
2143    Pic,
2144}
2145
2146impl std::fmt::Display for STPlaceholderType {
2147    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2148        match self {
2149            Self::Title => write!(f, "title"),
2150            Self::Body => write!(f, "body"),
2151            Self::CtrTitle => write!(f, "ctrTitle"),
2152            Self::SubTitle => write!(f, "subTitle"),
2153            Self::Dt => write!(f, "dt"),
2154            Self::SldNum => write!(f, "sldNum"),
2155            Self::Ftr => write!(f, "ftr"),
2156            Self::Hdr => write!(f, "hdr"),
2157            Self::Obj => write!(f, "obj"),
2158            Self::Chart => write!(f, "chart"),
2159            Self::Tbl => write!(f, "tbl"),
2160            Self::ClipArt => write!(f, "clipArt"),
2161            Self::Dgm => write!(f, "dgm"),
2162            Self::Media => write!(f, "media"),
2163            Self::SldImg => write!(f, "sldImg"),
2164            Self::Pic => write!(f, "pic"),
2165        }
2166    }
2167}
2168
2169impl std::str::FromStr for STPlaceholderType {
2170    type Err = String;
2171
2172    fn from_str(s: &str) -> Result<Self, Self::Err> {
2173        match s {
2174            "title" => Ok(Self::Title),
2175            "body" => Ok(Self::Body),
2176            "ctrTitle" => Ok(Self::CtrTitle),
2177            "subTitle" => Ok(Self::SubTitle),
2178            "dt" => Ok(Self::Dt),
2179            "sldNum" => Ok(Self::SldNum),
2180            "ftr" => Ok(Self::Ftr),
2181            "hdr" => Ok(Self::Hdr),
2182            "obj" => Ok(Self::Obj),
2183            "chart" => Ok(Self::Chart),
2184            "tbl" => Ok(Self::Tbl),
2185            "clipArt" => Ok(Self::ClipArt),
2186            "dgm" => Ok(Self::Dgm),
2187            "media" => Ok(Self::Media),
2188            "sldImg" => Ok(Self::SldImg),
2189            "pic" => Ok(Self::Pic),
2190            _ => Err(format!("unknown STPlaceholderType value: {}", s)),
2191        }
2192    }
2193}
2194
2195#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2196pub enum STPlaceholderSize {
2197    #[serde(rename = "full")]
2198    Full,
2199    #[serde(rename = "half")]
2200    Half,
2201    #[serde(rename = "quarter")]
2202    Quarter,
2203}
2204
2205impl std::fmt::Display for STPlaceholderSize {
2206    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2207        match self {
2208            Self::Full => write!(f, "full"),
2209            Self::Half => write!(f, "half"),
2210            Self::Quarter => write!(f, "quarter"),
2211        }
2212    }
2213}
2214
2215impl std::str::FromStr for STPlaceholderSize {
2216    type Err = String;
2217
2218    fn from_str(s: &str) -> Result<Self, Self::Err> {
2219        match s {
2220            "full" => Ok(Self::Full),
2221            "half" => Ok(Self::Half),
2222            "quarter" => Ok(Self::Quarter),
2223            _ => Err(format!("unknown STPlaceholderSize value: {}", s)),
2224        }
2225    }
2226}
2227
2228#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2229pub enum STSlideLayoutType {
2230    #[serde(rename = "title")]
2231    Title,
2232    #[serde(rename = "tx")]
2233    Tx,
2234    #[serde(rename = "twoColTx")]
2235    TwoColTx,
2236    #[serde(rename = "tbl")]
2237    Tbl,
2238    #[serde(rename = "txAndChart")]
2239    TxAndChart,
2240    #[serde(rename = "chartAndTx")]
2241    ChartAndTx,
2242    #[serde(rename = "dgm")]
2243    Dgm,
2244    #[serde(rename = "chart")]
2245    Chart,
2246    #[serde(rename = "txAndClipArt")]
2247    TxAndClipArt,
2248    #[serde(rename = "clipArtAndTx")]
2249    ClipArtAndTx,
2250    #[serde(rename = "titleOnly")]
2251    TitleOnly,
2252    #[serde(rename = "blank")]
2253    Blank,
2254    #[serde(rename = "txAndObj")]
2255    TxAndObj,
2256    #[serde(rename = "objAndTx")]
2257    ObjAndTx,
2258    #[serde(rename = "objOnly")]
2259    ObjOnly,
2260    #[serde(rename = "obj")]
2261    Obj,
2262    #[serde(rename = "txAndMedia")]
2263    TxAndMedia,
2264    #[serde(rename = "mediaAndTx")]
2265    MediaAndTx,
2266    #[serde(rename = "objOverTx")]
2267    ObjOverTx,
2268    #[serde(rename = "txOverObj")]
2269    TxOverObj,
2270    #[serde(rename = "txAndTwoObj")]
2271    TxAndTwoObj,
2272    #[serde(rename = "twoObjAndTx")]
2273    TwoObjAndTx,
2274    #[serde(rename = "twoObjOverTx")]
2275    TwoObjOverTx,
2276    #[serde(rename = "fourObj")]
2277    FourObj,
2278    #[serde(rename = "vertTx")]
2279    VertTx,
2280    #[serde(rename = "clipArtAndVertTx")]
2281    ClipArtAndVertTx,
2282    #[serde(rename = "vertTitleAndTx")]
2283    VertTitleAndTx,
2284    #[serde(rename = "vertTitleAndTxOverChart")]
2285    VertTitleAndTxOverChart,
2286    #[serde(rename = "twoObj")]
2287    TwoObj,
2288    #[serde(rename = "objAndTwoObj")]
2289    ObjAndTwoObj,
2290    #[serde(rename = "twoObjAndObj")]
2291    TwoObjAndObj,
2292    #[serde(rename = "cust")]
2293    Cust,
2294    #[serde(rename = "secHead")]
2295    SecHead,
2296    #[serde(rename = "twoTxTwoObj")]
2297    TwoTxTwoObj,
2298    #[serde(rename = "objTx")]
2299    ObjTx,
2300    #[serde(rename = "picTx")]
2301    PicTx,
2302}
2303
2304impl std::fmt::Display for STSlideLayoutType {
2305    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2306        match self {
2307            Self::Title => write!(f, "title"),
2308            Self::Tx => write!(f, "tx"),
2309            Self::TwoColTx => write!(f, "twoColTx"),
2310            Self::Tbl => write!(f, "tbl"),
2311            Self::TxAndChart => write!(f, "txAndChart"),
2312            Self::ChartAndTx => write!(f, "chartAndTx"),
2313            Self::Dgm => write!(f, "dgm"),
2314            Self::Chart => write!(f, "chart"),
2315            Self::TxAndClipArt => write!(f, "txAndClipArt"),
2316            Self::ClipArtAndTx => write!(f, "clipArtAndTx"),
2317            Self::TitleOnly => write!(f, "titleOnly"),
2318            Self::Blank => write!(f, "blank"),
2319            Self::TxAndObj => write!(f, "txAndObj"),
2320            Self::ObjAndTx => write!(f, "objAndTx"),
2321            Self::ObjOnly => write!(f, "objOnly"),
2322            Self::Obj => write!(f, "obj"),
2323            Self::TxAndMedia => write!(f, "txAndMedia"),
2324            Self::MediaAndTx => write!(f, "mediaAndTx"),
2325            Self::ObjOverTx => write!(f, "objOverTx"),
2326            Self::TxOverObj => write!(f, "txOverObj"),
2327            Self::TxAndTwoObj => write!(f, "txAndTwoObj"),
2328            Self::TwoObjAndTx => write!(f, "twoObjAndTx"),
2329            Self::TwoObjOverTx => write!(f, "twoObjOverTx"),
2330            Self::FourObj => write!(f, "fourObj"),
2331            Self::VertTx => write!(f, "vertTx"),
2332            Self::ClipArtAndVertTx => write!(f, "clipArtAndVertTx"),
2333            Self::VertTitleAndTx => write!(f, "vertTitleAndTx"),
2334            Self::VertTitleAndTxOverChart => write!(f, "vertTitleAndTxOverChart"),
2335            Self::TwoObj => write!(f, "twoObj"),
2336            Self::ObjAndTwoObj => write!(f, "objAndTwoObj"),
2337            Self::TwoObjAndObj => write!(f, "twoObjAndObj"),
2338            Self::Cust => write!(f, "cust"),
2339            Self::SecHead => write!(f, "secHead"),
2340            Self::TwoTxTwoObj => write!(f, "twoTxTwoObj"),
2341            Self::ObjTx => write!(f, "objTx"),
2342            Self::PicTx => write!(f, "picTx"),
2343        }
2344    }
2345}
2346
2347impl std::str::FromStr for STSlideLayoutType {
2348    type Err = String;
2349
2350    fn from_str(s: &str) -> Result<Self, Self::Err> {
2351        match s {
2352            "title" => Ok(Self::Title),
2353            "tx" => Ok(Self::Tx),
2354            "twoColTx" => Ok(Self::TwoColTx),
2355            "tbl" => Ok(Self::Tbl),
2356            "txAndChart" => Ok(Self::TxAndChart),
2357            "chartAndTx" => Ok(Self::ChartAndTx),
2358            "dgm" => Ok(Self::Dgm),
2359            "chart" => Ok(Self::Chart),
2360            "txAndClipArt" => Ok(Self::TxAndClipArt),
2361            "clipArtAndTx" => Ok(Self::ClipArtAndTx),
2362            "titleOnly" => Ok(Self::TitleOnly),
2363            "blank" => Ok(Self::Blank),
2364            "txAndObj" => Ok(Self::TxAndObj),
2365            "objAndTx" => Ok(Self::ObjAndTx),
2366            "objOnly" => Ok(Self::ObjOnly),
2367            "obj" => Ok(Self::Obj),
2368            "txAndMedia" => Ok(Self::TxAndMedia),
2369            "mediaAndTx" => Ok(Self::MediaAndTx),
2370            "objOverTx" => Ok(Self::ObjOverTx),
2371            "txOverObj" => Ok(Self::TxOverObj),
2372            "txAndTwoObj" => Ok(Self::TxAndTwoObj),
2373            "twoObjAndTx" => Ok(Self::TwoObjAndTx),
2374            "twoObjOverTx" => Ok(Self::TwoObjOverTx),
2375            "fourObj" => Ok(Self::FourObj),
2376            "vertTx" => Ok(Self::VertTx),
2377            "clipArtAndVertTx" => Ok(Self::ClipArtAndVertTx),
2378            "vertTitleAndTx" => Ok(Self::VertTitleAndTx),
2379            "vertTitleAndTxOverChart" => Ok(Self::VertTitleAndTxOverChart),
2380            "twoObj" => Ok(Self::TwoObj),
2381            "objAndTwoObj" => Ok(Self::ObjAndTwoObj),
2382            "twoObjAndObj" => Ok(Self::TwoObjAndObj),
2383            "cust" => Ok(Self::Cust),
2384            "secHead" => Ok(Self::SecHead),
2385            "twoTxTwoObj" => Ok(Self::TwoTxTwoObj),
2386            "objTx" => Ok(Self::ObjTx),
2387            "picTx" => Ok(Self::PicTx),
2388            _ => Err(format!("unknown STSlideLayoutType value: {}", s)),
2389        }
2390    }
2391}
2392
2393pub type STSlideLayoutId = u32;
2394
2395#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2396pub enum STSplitterBarState {
2397    #[serde(rename = "minimized")]
2398    Minimized,
2399    #[serde(rename = "restored")]
2400    Restored,
2401    #[serde(rename = "maximized")]
2402    Maximized,
2403}
2404
2405impl std::fmt::Display for STSplitterBarState {
2406    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2407        match self {
2408            Self::Minimized => write!(f, "minimized"),
2409            Self::Restored => write!(f, "restored"),
2410            Self::Maximized => write!(f, "maximized"),
2411        }
2412    }
2413}
2414
2415impl std::str::FromStr for STSplitterBarState {
2416    type Err = String;
2417
2418    fn from_str(s: &str) -> Result<Self, Self::Err> {
2419        match s {
2420            "minimized" => Ok(Self::Minimized),
2421            "restored" => Ok(Self::Restored),
2422            "maximized" => Ok(Self::Maximized),
2423            _ => Err(format!("unknown STSplitterBarState value: {}", s)),
2424        }
2425    }
2426}
2427
2428#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
2429pub enum STViewType {
2430    #[serde(rename = "sldView")]
2431    SldView,
2432    #[serde(rename = "sldMasterView")]
2433    SldMasterView,
2434    #[serde(rename = "notesView")]
2435    NotesView,
2436    #[serde(rename = "handoutView")]
2437    HandoutView,
2438    #[serde(rename = "notesMasterView")]
2439    NotesMasterView,
2440    #[serde(rename = "outlineView")]
2441    OutlineView,
2442    #[serde(rename = "sldSorterView")]
2443    SldSorterView,
2444    #[serde(rename = "sldThumbnailView")]
2445    SldThumbnailView,
2446}
2447
2448impl std::fmt::Display for STViewType {
2449    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2450        match self {
2451            Self::SldView => write!(f, "sldView"),
2452            Self::SldMasterView => write!(f, "sldMasterView"),
2453            Self::NotesView => write!(f, "notesView"),
2454            Self::HandoutView => write!(f, "handoutView"),
2455            Self::NotesMasterView => write!(f, "notesMasterView"),
2456            Self::OutlineView => write!(f, "outlineView"),
2457            Self::SldSorterView => write!(f, "sldSorterView"),
2458            Self::SldThumbnailView => write!(f, "sldThumbnailView"),
2459        }
2460    }
2461}
2462
2463impl std::str::FromStr for STViewType {
2464    type Err = String;
2465
2466    fn from_str(s: &str) -> Result<Self, Self::Err> {
2467        match s {
2468            "sldView" => Ok(Self::SldView),
2469            "sldMasterView" => Ok(Self::SldMasterView),
2470            "notesView" => Ok(Self::NotesView),
2471            "handoutView" => Ok(Self::HandoutView),
2472            "notesMasterView" => Ok(Self::NotesMasterView),
2473            "outlineView" => Ok(Self::OutlineView),
2474            "sldSorterView" => Ok(Self::SldSorterView),
2475            "sldThumbnailView" => Ok(Self::SldThumbnailView),
2476            _ => Err(format!("unknown STViewType value: {}", s)),
2477        }
2478    }
2479}
2480
2481#[derive(Debug, Clone, Serialize, Deserialize)]
2482pub enum EGSlideListChoice {
2483    #[serde(rename = "sldAll")]
2484    SldAll(Box<CTEmpty>),
2485    #[serde(rename = "sldRg")]
2486    SldRg(Box<CTIndexRange>),
2487    #[serde(rename = "custShow")]
2488    CustShow(Box<CTCustomShowId>),
2489}
2490
2491#[derive(Debug, Clone, Serialize, Deserialize)]
2492pub enum EGShowType {
2493    #[serde(rename = "present")]
2494    Present(Box<CTEmpty>),
2495    #[serde(rename = "browse")]
2496    Browse(Box<CTShowInfoBrowse>),
2497    #[serde(rename = "kiosk")]
2498    Kiosk(Box<CTShowInfoKiosk>),
2499}
2500
2501#[derive(Debug, Clone, Serialize, Deserialize)]
2502pub enum EGBackground {
2503    #[serde(rename = "bgPr")]
2504    BgPr(Box<CTBackgroundProperties>),
2505    #[serde(rename = "bgRef")]
2506    BgRef(Box<ooxml_dml::types::CTStyleMatrixReference>),
2507}
2508
2509#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2510pub struct CTSideDirectionTransition {
2511    #[serde(rename = "@dir")]
2512    #[serde(default, skip_serializing_if = "Option::is_none")]
2513    pub dir: Option<STTransitionSideDirectionType>,
2514    /// Unknown attributes captured for roundtrip fidelity.
2515    #[cfg(feature = "extra-attrs")]
2516    #[serde(skip)]
2517    #[cfg(feature = "extra-attrs")]
2518    #[serde(default)]
2519    #[cfg(feature = "extra-attrs")]
2520    pub extra_attrs: std::collections::HashMap<String, String>,
2521}
2522
2523#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2524pub struct CTCornerDirectionTransition {
2525    #[serde(rename = "@dir")]
2526    #[serde(default, skip_serializing_if = "Option::is_none")]
2527    pub dir: Option<STTransitionCornerDirectionType>,
2528    /// Unknown attributes captured for roundtrip fidelity.
2529    #[cfg(feature = "extra-attrs")]
2530    #[serde(skip)]
2531    #[cfg(feature = "extra-attrs")]
2532    #[serde(default)]
2533    #[cfg(feature = "extra-attrs")]
2534    pub extra_attrs: std::collections::HashMap<String, String>,
2535}
2536
2537#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2538pub struct CTEightDirectionTransition {
2539    #[serde(rename = "@dir")]
2540    #[serde(default, skip_serializing_if = "Option::is_none")]
2541    pub dir: Option<STTransitionEightDirectionType>,
2542    /// Unknown attributes captured for roundtrip fidelity.
2543    #[cfg(feature = "extra-attrs")]
2544    #[serde(skip)]
2545    #[cfg(feature = "extra-attrs")]
2546    #[serde(default)]
2547    #[cfg(feature = "extra-attrs")]
2548    pub extra_attrs: std::collections::HashMap<String, String>,
2549}
2550
2551#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2552pub struct CTOrientationTransition {
2553    #[serde(rename = "@dir")]
2554    #[serde(default, skip_serializing_if = "Option::is_none")]
2555    pub dir: Option<STDirection>,
2556    /// Unknown attributes captured for roundtrip fidelity.
2557    #[cfg(feature = "extra-attrs")]
2558    #[serde(skip)]
2559    #[cfg(feature = "extra-attrs")]
2560    #[serde(default)]
2561    #[cfg(feature = "extra-attrs")]
2562    pub extra_attrs: std::collections::HashMap<String, String>,
2563}
2564
2565#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2566pub struct CTInOutTransition {
2567    #[serde(rename = "@dir")]
2568    #[serde(default, skip_serializing_if = "Option::is_none")]
2569    pub dir: Option<STTransitionInOutDirectionType>,
2570    /// Unknown attributes captured for roundtrip fidelity.
2571    #[cfg(feature = "extra-attrs")]
2572    #[serde(skip)]
2573    #[cfg(feature = "extra-attrs")]
2574    #[serde(default)]
2575    #[cfg(feature = "extra-attrs")]
2576    pub extra_attrs: std::collections::HashMap<String, String>,
2577}
2578
2579#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2580pub struct CTOptionalBlackTransition {
2581    #[serde(rename = "@thruBlk")]
2582    #[serde(
2583        default,
2584        skip_serializing_if = "Option::is_none",
2585        with = "ooxml_xml::ooxml_bool"
2586    )]
2587    pub thru_blk: Option<bool>,
2588    /// Unknown attributes captured for roundtrip fidelity.
2589    #[cfg(feature = "extra-attrs")]
2590    #[serde(skip)]
2591    #[cfg(feature = "extra-attrs")]
2592    #[serde(default)]
2593    #[cfg(feature = "extra-attrs")]
2594    pub extra_attrs: std::collections::HashMap<String, String>,
2595}
2596
2597#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2598pub struct CTSplitTransition {
2599    #[serde(rename = "@orient")]
2600    #[serde(default, skip_serializing_if = "Option::is_none")]
2601    pub orient: Option<STDirection>,
2602    #[serde(rename = "@dir")]
2603    #[serde(default, skip_serializing_if = "Option::is_none")]
2604    pub dir: Option<STTransitionInOutDirectionType>,
2605    /// Unknown attributes captured for roundtrip fidelity.
2606    #[cfg(feature = "extra-attrs")]
2607    #[serde(skip)]
2608    #[cfg(feature = "extra-attrs")]
2609    #[serde(default)]
2610    #[cfg(feature = "extra-attrs")]
2611    pub extra_attrs: std::collections::HashMap<String, String>,
2612}
2613
2614#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2615pub struct CTWheelTransition {
2616    #[serde(rename = "@spokes")]
2617    #[serde(default, skip_serializing_if = "Option::is_none")]
2618    pub spokes: Option<u32>,
2619    /// Unknown attributes captured for roundtrip fidelity.
2620    #[cfg(feature = "extra-attrs")]
2621    #[serde(skip)]
2622    #[cfg(feature = "extra-attrs")]
2623    #[serde(default)]
2624    #[cfg(feature = "extra-attrs")]
2625    pub extra_attrs: std::collections::HashMap<String, String>,
2626}
2627
2628#[derive(Debug, Clone, Serialize, Deserialize)]
2629pub struct CTTransitionStartSoundAction {
2630    #[serde(rename = "@loop")]
2631    #[serde(
2632        default,
2633        skip_serializing_if = "Option::is_none",
2634        with = "ooxml_xml::ooxml_bool"
2635    )]
2636    pub r#loop: Option<bool>,
2637    #[serde(rename = "snd")]
2638    pub snd: Box<ooxml_dml::types::CTEmbeddedWAVAudioFile>,
2639    /// Unknown attributes captured for roundtrip fidelity.
2640    #[cfg(feature = "extra-attrs")]
2641    #[serde(skip)]
2642    #[cfg(feature = "extra-attrs")]
2643    #[serde(default)]
2644    #[cfg(feature = "extra-attrs")]
2645    pub extra_attrs: std::collections::HashMap<String, String>,
2646    /// Unknown child elements captured for roundtrip fidelity.
2647    #[cfg(feature = "extra-children")]
2648    #[serde(skip)]
2649    #[cfg(feature = "extra-children")]
2650    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2651}
2652
2653#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2654pub struct CTTransitionSoundAction {
2655    #[serde(rename = "stSnd")]
2656    #[serde(default, skip_serializing_if = "Option::is_none")]
2657    pub st_snd: Option<Box<CTTransitionStartSoundAction>>,
2658    #[serde(rename = "endSnd")]
2659    #[serde(default, skip_serializing_if = "Option::is_none")]
2660    pub end_snd: Option<Box<CTEmpty>>,
2661    /// Unknown child elements captured for roundtrip fidelity.
2662    #[cfg(feature = "extra-children")]
2663    #[serde(skip)]
2664    #[cfg(feature = "extra-children")]
2665    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2666}
2667
2668#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2669pub struct SlideTransition {
2670    #[cfg(feature = "pml-transitions")]
2671    #[serde(rename = "@spd")]
2672    #[serde(default, skip_serializing_if = "Option::is_none")]
2673    pub spd: Option<STTransitionSpeed>,
2674    #[cfg(feature = "pml-transitions")]
2675    #[serde(rename = "@advClick")]
2676    #[serde(
2677        default,
2678        skip_serializing_if = "Option::is_none",
2679        with = "ooxml_xml::ooxml_bool"
2680    )]
2681    pub adv_click: Option<bool>,
2682    #[cfg(feature = "pml-transitions")]
2683    #[serde(rename = "@advTm")]
2684    #[serde(default, skip_serializing_if = "Option::is_none")]
2685    pub adv_tm: Option<u32>,
2686    #[cfg(feature = "pml-transitions")]
2687    #[serde(rename = "blinds")]
2688    #[serde(default, skip_serializing_if = "Option::is_none")]
2689    pub blinds: Option<Box<CTOrientationTransition>>,
2690    #[cfg(feature = "pml-transitions")]
2691    #[serde(rename = "checker")]
2692    #[serde(default, skip_serializing_if = "Option::is_none")]
2693    pub checker: Option<Box<CTOrientationTransition>>,
2694    #[cfg(feature = "pml-transitions")]
2695    #[serde(rename = "circle")]
2696    #[serde(default, skip_serializing_if = "Option::is_none")]
2697    pub circle: Option<Box<CTEmpty>>,
2698    #[cfg(feature = "pml-transitions")]
2699    #[serde(rename = "dissolve")]
2700    #[serde(default, skip_serializing_if = "Option::is_none")]
2701    pub dissolve: Option<Box<CTEmpty>>,
2702    #[cfg(feature = "pml-transitions")]
2703    #[serde(rename = "comb")]
2704    #[serde(default, skip_serializing_if = "Option::is_none")]
2705    pub comb: Option<Box<CTOrientationTransition>>,
2706    #[cfg(feature = "pml-transitions")]
2707    #[serde(rename = "cover")]
2708    #[serde(default, skip_serializing_if = "Option::is_none")]
2709    pub cover: Option<Box<CTEightDirectionTransition>>,
2710    #[cfg(feature = "pml-transitions")]
2711    #[serde(rename = "cut")]
2712    #[serde(default, skip_serializing_if = "Option::is_none")]
2713    pub cut: Option<Box<CTOptionalBlackTransition>>,
2714    #[cfg(feature = "pml-transitions")]
2715    #[serde(rename = "diamond")]
2716    #[serde(default, skip_serializing_if = "Option::is_none")]
2717    pub diamond: Option<Box<CTEmpty>>,
2718    #[cfg(feature = "pml-transitions")]
2719    #[serde(rename = "fade")]
2720    #[serde(default, skip_serializing_if = "Option::is_none")]
2721    pub fade: Option<Box<CTOptionalBlackTransition>>,
2722    #[cfg(feature = "pml-transitions")]
2723    #[serde(rename = "newsflash")]
2724    #[serde(default, skip_serializing_if = "Option::is_none")]
2725    pub newsflash: Option<Box<CTEmpty>>,
2726    #[cfg(feature = "pml-transitions")]
2727    #[serde(rename = "plus")]
2728    #[serde(default, skip_serializing_if = "Option::is_none")]
2729    pub plus: Option<Box<CTEmpty>>,
2730    #[cfg(feature = "pml-transitions")]
2731    #[serde(rename = "pull")]
2732    #[serde(default, skip_serializing_if = "Option::is_none")]
2733    pub pull: Option<Box<CTEightDirectionTransition>>,
2734    #[cfg(feature = "pml-transitions")]
2735    #[serde(rename = "push")]
2736    #[serde(default, skip_serializing_if = "Option::is_none")]
2737    pub push: Option<Box<CTSideDirectionTransition>>,
2738    #[cfg(feature = "pml-transitions")]
2739    #[serde(rename = "random")]
2740    #[serde(default, skip_serializing_if = "Option::is_none")]
2741    pub random: Option<Box<CTEmpty>>,
2742    #[cfg(feature = "pml-transitions")]
2743    #[serde(rename = "randomBar")]
2744    #[serde(default, skip_serializing_if = "Option::is_none")]
2745    pub random_bar: Option<Box<CTOrientationTransition>>,
2746    #[cfg(feature = "pml-transitions")]
2747    #[serde(rename = "split")]
2748    #[serde(default, skip_serializing_if = "Option::is_none")]
2749    pub split: Option<Box<CTSplitTransition>>,
2750    #[cfg(feature = "pml-transitions")]
2751    #[serde(rename = "strips")]
2752    #[serde(default, skip_serializing_if = "Option::is_none")]
2753    pub strips: Option<Box<CTCornerDirectionTransition>>,
2754    #[cfg(feature = "pml-transitions")]
2755    #[serde(rename = "wedge")]
2756    #[serde(default, skip_serializing_if = "Option::is_none")]
2757    pub wedge: Option<Box<CTEmpty>>,
2758    #[cfg(feature = "pml-transitions")]
2759    #[serde(rename = "wheel")]
2760    #[serde(default, skip_serializing_if = "Option::is_none")]
2761    pub wheel: Option<Box<CTWheelTransition>>,
2762    #[cfg(feature = "pml-transitions")]
2763    #[serde(rename = "wipe")]
2764    #[serde(default, skip_serializing_if = "Option::is_none")]
2765    pub wipe: Option<Box<CTSideDirectionTransition>>,
2766    #[cfg(feature = "pml-transitions")]
2767    #[serde(rename = "zoom")]
2768    #[serde(default, skip_serializing_if = "Option::is_none")]
2769    pub zoom: Option<Box<CTInOutTransition>>,
2770    #[cfg(feature = "pml-transitions")]
2771    #[serde(rename = "sndAc")]
2772    #[serde(default, skip_serializing_if = "Option::is_none")]
2773    pub snd_ac: Option<Box<CTTransitionSoundAction>>,
2774    #[cfg(feature = "pml-extensions")]
2775    #[serde(rename = "extLst")]
2776    #[serde(default, skip_serializing_if = "Option::is_none")]
2777    pub ext_lst: Option<Box<CTExtensionListModify>>,
2778    /// Unknown attributes captured for roundtrip fidelity.
2779    #[cfg(feature = "extra-attrs")]
2780    #[serde(skip)]
2781    #[cfg(feature = "extra-attrs")]
2782    #[serde(default)]
2783    #[cfg(feature = "extra-attrs")]
2784    pub extra_attrs: std::collections::HashMap<String, String>,
2785    /// Unknown child elements captured for roundtrip fidelity.
2786    #[cfg(feature = "extra-children")]
2787    #[serde(skip)]
2788    #[cfg(feature = "extra-children")]
2789    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2790}
2791
2792#[derive(Debug, Clone, Serialize, Deserialize)]
2793pub struct CTTLIterateIntervalTime {
2794    #[serde(rename = "@val")]
2795    pub value: STTLTime,
2796    /// Unknown attributes captured for roundtrip fidelity.
2797    #[cfg(feature = "extra-attrs")]
2798    #[serde(skip)]
2799    #[cfg(feature = "extra-attrs")]
2800    #[serde(default)]
2801    #[cfg(feature = "extra-attrs")]
2802    pub extra_attrs: std::collections::HashMap<String, String>,
2803}
2804
2805#[derive(Debug, Clone, Serialize, Deserialize)]
2806pub struct CTTLIterateIntervalPercentage {
2807    #[serde(rename = "@val")]
2808    pub value: ooxml_dml::types::STPositivePercentage,
2809    /// Unknown attributes captured for roundtrip fidelity.
2810    #[cfg(feature = "extra-attrs")]
2811    #[serde(skip)]
2812    #[cfg(feature = "extra-attrs")]
2813    #[serde(default)]
2814    #[cfg(feature = "extra-attrs")]
2815    pub extra_attrs: std::collections::HashMap<String, String>,
2816}
2817
2818#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2819pub struct CTTLIterateData {
2820    #[serde(rename = "@type")]
2821    #[serde(default, skip_serializing_if = "Option::is_none")]
2822    pub r#type: Option<STIterateType>,
2823    #[serde(rename = "@backwards")]
2824    #[serde(
2825        default,
2826        skip_serializing_if = "Option::is_none",
2827        with = "ooxml_xml::ooxml_bool"
2828    )]
2829    pub backwards: Option<bool>,
2830    #[serde(rename = "tmAbs")]
2831    #[serde(default, skip_serializing_if = "Option::is_none")]
2832    pub tm_abs: Option<Box<CTTLIterateIntervalTime>>,
2833    #[serde(rename = "tmPct")]
2834    #[serde(default, skip_serializing_if = "Option::is_none")]
2835    pub tm_pct: Option<Box<CTTLIterateIntervalPercentage>>,
2836    /// Unknown attributes captured for roundtrip fidelity.
2837    #[cfg(feature = "extra-attrs")]
2838    #[serde(skip)]
2839    #[cfg(feature = "extra-attrs")]
2840    #[serde(default)]
2841    #[cfg(feature = "extra-attrs")]
2842    pub extra_attrs: std::collections::HashMap<String, String>,
2843    /// Unknown child elements captured for roundtrip fidelity.
2844    #[cfg(feature = "extra-children")]
2845    #[serde(skip)]
2846    #[cfg(feature = "extra-children")]
2847    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2848}
2849
2850#[derive(Debug, Clone, Serialize, Deserialize)]
2851pub struct CTTLSubShapeId {
2852    #[serde(rename = "@spid")]
2853    pub spid: ooxml_dml::types::STShapeID,
2854    /// Unknown attributes captured for roundtrip fidelity.
2855    #[cfg(feature = "extra-attrs")]
2856    #[serde(skip)]
2857    #[cfg(feature = "extra-attrs")]
2858    #[serde(default)]
2859    #[cfg(feature = "extra-attrs")]
2860    pub extra_attrs: std::collections::HashMap<String, String>,
2861}
2862
2863#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2864pub struct CTTLTextTargetElement {
2865    #[serde(rename = "charRg")]
2866    #[serde(default, skip_serializing_if = "Option::is_none")]
2867    pub char_rg: Option<Box<CTIndexRange>>,
2868    #[serde(rename = "pRg")]
2869    #[serde(default, skip_serializing_if = "Option::is_none")]
2870    pub p_rg: Option<Box<CTIndexRange>>,
2871    /// Unknown child elements captured for roundtrip fidelity.
2872    #[cfg(feature = "extra-children")]
2873    #[serde(skip)]
2874    #[cfg(feature = "extra-children")]
2875    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2876}
2877
2878#[derive(Debug, Clone, Serialize, Deserialize)]
2879pub struct CTTLOleChartTargetElement {
2880    #[serde(rename = "@type")]
2881    pub r#type: STTLChartSubelementType,
2882    #[serde(rename = "@lvl")]
2883    #[serde(default, skip_serializing_if = "Option::is_none")]
2884    pub lvl: Option<u32>,
2885    /// Unknown attributes captured for roundtrip fidelity.
2886    #[cfg(feature = "extra-attrs")]
2887    #[serde(skip)]
2888    #[cfg(feature = "extra-attrs")]
2889    #[serde(default)]
2890    #[cfg(feature = "extra-attrs")]
2891    pub extra_attrs: std::collections::HashMap<String, String>,
2892}
2893
2894#[derive(Debug, Clone, Serialize, Deserialize)]
2895pub struct CTTLShapeTargetElement {
2896    #[serde(rename = "@spid")]
2897    pub spid: ooxml_dml::types::STDrawingElementId,
2898    #[serde(rename = "bg")]
2899    #[serde(default, skip_serializing_if = "Option::is_none")]
2900    pub bg: Option<Box<CTEmpty>>,
2901    #[serde(rename = "subSp")]
2902    #[serde(default, skip_serializing_if = "Option::is_none")]
2903    pub sub_sp: Option<Box<CTTLSubShapeId>>,
2904    #[serde(rename = "oleChartEl")]
2905    #[serde(default, skip_serializing_if = "Option::is_none")]
2906    pub ole_chart_el: Option<Box<CTTLOleChartTargetElement>>,
2907    #[serde(rename = "txEl")]
2908    #[serde(default, skip_serializing_if = "Option::is_none")]
2909    pub tx_el: Option<Box<CTTLTextTargetElement>>,
2910    #[serde(rename = "graphicEl")]
2911    #[serde(default, skip_serializing_if = "Option::is_none")]
2912    pub graphic_el: Option<Box<ooxml_dml::types::CTAnimationElementChoice>>,
2913    /// Unknown attributes captured for roundtrip fidelity.
2914    #[cfg(feature = "extra-attrs")]
2915    #[serde(skip)]
2916    #[cfg(feature = "extra-attrs")]
2917    #[serde(default)]
2918    #[cfg(feature = "extra-attrs")]
2919    pub extra_attrs: std::collections::HashMap<String, String>,
2920    /// Unknown child elements captured for roundtrip fidelity.
2921    #[cfg(feature = "extra-children")]
2922    #[serde(skip)]
2923    #[cfg(feature = "extra-children")]
2924    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2925}
2926
2927#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2928pub struct CTTLTimeTargetElement {
2929    #[serde(rename = "sldTgt")]
2930    #[serde(default, skip_serializing_if = "Option::is_none")]
2931    pub sld_tgt: Option<Box<CTEmpty>>,
2932    #[serde(rename = "sndTgt")]
2933    #[serde(default, skip_serializing_if = "Option::is_none")]
2934    pub snd_tgt: Option<Box<ooxml_dml::types::CTEmbeddedWAVAudioFile>>,
2935    #[serde(rename = "spTgt")]
2936    #[serde(default, skip_serializing_if = "Option::is_none")]
2937    pub sp_tgt: Option<Box<CTTLShapeTargetElement>>,
2938    #[serde(rename = "inkTgt")]
2939    #[serde(default, skip_serializing_if = "Option::is_none")]
2940    pub ink_tgt: Option<Box<CTTLSubShapeId>>,
2941    /// Unknown child elements captured for roundtrip fidelity.
2942    #[cfg(feature = "extra-children")]
2943    #[serde(skip)]
2944    #[cfg(feature = "extra-children")]
2945    pub extra_children: Vec<ooxml_xml::PositionedNode>,
2946}
2947
2948#[derive(Debug, Clone, Serialize, Deserialize)]
2949pub struct CTTLTriggerTimeNodeID {
2950    #[serde(rename = "@val")]
2951    pub value: STTLTimeNodeID,
2952    /// Unknown attributes captured for roundtrip fidelity.
2953    #[cfg(feature = "extra-attrs")]
2954    #[serde(skip)]
2955    #[cfg(feature = "extra-attrs")]
2956    #[serde(default)]
2957    #[cfg(feature = "extra-attrs")]
2958    pub extra_attrs: std::collections::HashMap<String, String>,
2959}
2960
2961#[derive(Debug, Clone, Serialize, Deserialize)]
2962pub struct CTTLTriggerRuntimeNode {
2963    #[serde(rename = "@val")]
2964    pub value: STTLTriggerRuntimeNode,
2965    /// Unknown attributes captured for roundtrip fidelity.
2966    #[cfg(feature = "extra-attrs")]
2967    #[serde(skip)]
2968    #[cfg(feature = "extra-attrs")]
2969    #[serde(default)]
2970    #[cfg(feature = "extra-attrs")]
2971    pub extra_attrs: std::collections::HashMap<String, String>,
2972}
2973
2974#[derive(Debug, Clone, Default, Serialize, Deserialize)]
2975pub struct CTTLTimeCondition {
2976    #[serde(rename = "@evt")]
2977    #[serde(default, skip_serializing_if = "Option::is_none")]
2978    pub evt: Option<STTLTriggerEvent>,
2979    #[serde(rename = "@delay")]
2980    #[serde(default, skip_serializing_if = "Option::is_none")]
2981    pub delay: Option<STTLTime>,
2982    #[serde(rename = "tgtEl")]
2983    #[serde(default, skip_serializing_if = "Option::is_none")]
2984    pub tgt_el: Option<Box<CTTLTimeTargetElement>>,
2985    #[serde(rename = "tn")]
2986    #[serde(default, skip_serializing_if = "Option::is_none")]
2987    pub tn: Option<Box<CTTLTriggerTimeNodeID>>,
2988    #[serde(rename = "rtn")]
2989    #[serde(default, skip_serializing_if = "Option::is_none")]
2990    pub rtn: Option<Box<CTTLTriggerRuntimeNode>>,
2991    /// Unknown attributes captured for roundtrip fidelity.
2992    #[cfg(feature = "extra-attrs")]
2993    #[serde(skip)]
2994    #[cfg(feature = "extra-attrs")]
2995    #[serde(default)]
2996    #[cfg(feature = "extra-attrs")]
2997    pub extra_attrs: std::collections::HashMap<String, String>,
2998    /// Unknown child elements captured for roundtrip fidelity.
2999    #[cfg(feature = "extra-children")]
3000    #[serde(skip)]
3001    #[cfg(feature = "extra-children")]
3002    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3003}
3004
3005#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3006pub struct CTTLTimeConditionList {
3007    #[serde(rename = "cond")]
3008    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3009    pub cond: Vec<CTTLTimeCondition>,
3010    /// Unknown child elements captured for roundtrip fidelity.
3011    #[cfg(feature = "extra-children")]
3012    #[serde(skip)]
3013    #[cfg(feature = "extra-children")]
3014    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3015}
3016
3017#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3018pub struct CTTimeNodeList {
3019    #[serde(rename = "par")]
3020    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3021    pub par: Vec<TLTimeNodeParallelElement>,
3022    #[serde(rename = "seq")]
3023    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3024    pub seq: Vec<CTTLTimeNodeSequence>,
3025    #[serde(rename = "excl")]
3026    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3027    pub excl: Vec<TLTimeNodeExclusiveElement>,
3028    #[serde(rename = "anim")]
3029    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3030    pub anim: Vec<CTTLAnimateBehavior>,
3031    #[serde(rename = "animClr")]
3032    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3033    pub anim_clr: Vec<CTTLAnimateColorBehavior>,
3034    #[serde(rename = "animEffect")]
3035    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3036    pub anim_effect: Vec<CTTLAnimateEffectBehavior>,
3037    #[serde(rename = "animMotion")]
3038    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3039    pub anim_motion: Vec<CTTLAnimateMotionBehavior>,
3040    #[serde(rename = "animRot")]
3041    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3042    pub anim_rot: Vec<CTTLAnimateRotationBehavior>,
3043    #[serde(rename = "animScale")]
3044    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3045    pub anim_scale: Vec<CTTLAnimateScaleBehavior>,
3046    #[serde(rename = "cmd")]
3047    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3048    pub cmd: Vec<CTTLCommandBehavior>,
3049    #[serde(rename = "set")]
3050    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3051    pub set: Vec<CTTLSetBehavior>,
3052    #[serde(rename = "audio")]
3053    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3054    pub audio: Vec<CTTLMediaNodeAudio>,
3055    #[serde(rename = "video")]
3056    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3057    pub video: Vec<CTTLMediaNodeVideo>,
3058    /// Unknown child elements captured for roundtrip fidelity.
3059    #[cfg(feature = "extra-children")]
3060    #[serde(skip)]
3061    #[cfg(feature = "extra-children")]
3062    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3063}
3064
3065#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3066pub struct CTTLCommonTimeNodeData {
3067    #[serde(rename = "@id")]
3068    #[serde(default, skip_serializing_if = "Option::is_none")]
3069    pub id: Option<STTLTimeNodeID>,
3070    #[serde(rename = "@presetID")]
3071    #[serde(default, skip_serializing_if = "Option::is_none")]
3072    pub preset_i_d: Option<i32>,
3073    #[serde(rename = "@presetClass")]
3074    #[serde(default, skip_serializing_if = "Option::is_none")]
3075    pub preset_class: Option<STTLTimeNodePresetClassType>,
3076    #[serde(rename = "@presetSubtype")]
3077    #[serde(default, skip_serializing_if = "Option::is_none")]
3078    pub preset_subtype: Option<i32>,
3079    #[serde(rename = "@dur")]
3080    #[serde(default, skip_serializing_if = "Option::is_none")]
3081    pub dur: Option<STTLTime>,
3082    #[serde(rename = "@repeatCount")]
3083    #[serde(default, skip_serializing_if = "Option::is_none")]
3084    pub repeat_count: Option<STTLTime>,
3085    #[serde(rename = "@repeatDur")]
3086    #[serde(default, skip_serializing_if = "Option::is_none")]
3087    pub repeat_dur: Option<STTLTime>,
3088    #[serde(rename = "@spd")]
3089    #[serde(default, skip_serializing_if = "Option::is_none")]
3090    pub spd: Option<ooxml_dml::types::STPercentage>,
3091    #[serde(rename = "@accel")]
3092    #[serde(default, skip_serializing_if = "Option::is_none")]
3093    pub accel: Option<ooxml_dml::types::STPositiveFixedPercentage>,
3094    #[serde(rename = "@decel")]
3095    #[serde(default, skip_serializing_if = "Option::is_none")]
3096    pub decel: Option<ooxml_dml::types::STPositiveFixedPercentage>,
3097    #[serde(rename = "@autoRev")]
3098    #[serde(
3099        default,
3100        skip_serializing_if = "Option::is_none",
3101        with = "ooxml_xml::ooxml_bool"
3102    )]
3103    pub auto_rev: Option<bool>,
3104    #[serde(rename = "@restart")]
3105    #[serde(default, skip_serializing_if = "Option::is_none")]
3106    pub restart: Option<STTLTimeNodeRestartType>,
3107    #[serde(rename = "@fill")]
3108    #[serde(default, skip_serializing_if = "Option::is_none")]
3109    pub fill: Option<STTLTimeNodeFillType>,
3110    #[serde(rename = "@syncBehavior")]
3111    #[serde(default, skip_serializing_if = "Option::is_none")]
3112    pub sync_behavior: Option<STTLTimeNodeSyncType>,
3113    #[serde(rename = "@tmFilter")]
3114    #[serde(default, skip_serializing_if = "Option::is_none")]
3115    pub tm_filter: Option<String>,
3116    #[serde(rename = "@evtFilter")]
3117    #[serde(default, skip_serializing_if = "Option::is_none")]
3118    pub evt_filter: Option<String>,
3119    #[serde(rename = "@display")]
3120    #[serde(
3121        default,
3122        skip_serializing_if = "Option::is_none",
3123        with = "ooxml_xml::ooxml_bool"
3124    )]
3125    pub display: Option<bool>,
3126    #[serde(rename = "@masterRel")]
3127    #[serde(default, skip_serializing_if = "Option::is_none")]
3128    pub master_rel: Option<STTLTimeNodeMasterRelation>,
3129    #[serde(rename = "@bldLvl")]
3130    #[serde(default, skip_serializing_if = "Option::is_none")]
3131    pub bld_lvl: Option<i32>,
3132    #[serde(rename = "@grpId")]
3133    #[serde(default, skip_serializing_if = "Option::is_none")]
3134    pub grp_id: Option<u32>,
3135    #[serde(rename = "@afterEffect")]
3136    #[serde(
3137        default,
3138        skip_serializing_if = "Option::is_none",
3139        with = "ooxml_xml::ooxml_bool"
3140    )]
3141    pub after_effect: Option<bool>,
3142    #[serde(rename = "@nodeType")]
3143    #[serde(default, skip_serializing_if = "Option::is_none")]
3144    pub node_type: Option<STTLTimeNodeType>,
3145    #[serde(rename = "@nodePh")]
3146    #[serde(
3147        default,
3148        skip_serializing_if = "Option::is_none",
3149        with = "ooxml_xml::ooxml_bool"
3150    )]
3151    pub node_ph: Option<bool>,
3152    #[serde(rename = "stCondLst")]
3153    #[serde(default, skip_serializing_if = "Option::is_none")]
3154    pub st_cond_lst: Option<Box<CTTLTimeConditionList>>,
3155    #[serde(rename = "endCondLst")]
3156    #[serde(default, skip_serializing_if = "Option::is_none")]
3157    pub end_cond_lst: Option<Box<CTTLTimeConditionList>>,
3158    #[serde(rename = "endSync")]
3159    #[serde(default, skip_serializing_if = "Option::is_none")]
3160    pub end_sync: Option<Box<CTTLTimeCondition>>,
3161    #[serde(rename = "iterate")]
3162    #[serde(default, skip_serializing_if = "Option::is_none")]
3163    pub iterate: Option<Box<CTTLIterateData>>,
3164    #[serde(rename = "childTnLst")]
3165    #[serde(default, skip_serializing_if = "Option::is_none")]
3166    pub child_tn_lst: Option<Box<CTTimeNodeList>>,
3167    #[serde(rename = "subTnLst")]
3168    #[serde(default, skip_serializing_if = "Option::is_none")]
3169    pub sub_tn_lst: Option<Box<CTTimeNodeList>>,
3170    /// Unknown attributes captured for roundtrip fidelity.
3171    #[cfg(feature = "extra-attrs")]
3172    #[serde(skip)]
3173    #[cfg(feature = "extra-attrs")]
3174    #[serde(default)]
3175    #[cfg(feature = "extra-attrs")]
3176    pub extra_attrs: std::collections::HashMap<String, String>,
3177    /// Unknown child elements captured for roundtrip fidelity.
3178    #[cfg(feature = "extra-children")]
3179    #[serde(skip)]
3180    #[cfg(feature = "extra-children")]
3181    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3182}
3183
3184pub type TLTimeNodeParallelElement = Box<CTTLCommonTimeNodeData>;
3185
3186#[derive(Debug, Clone, Serialize, Deserialize)]
3187pub struct CTTLTimeNodeSequence {
3188    #[serde(rename = "@concurrent")]
3189    #[serde(
3190        default,
3191        skip_serializing_if = "Option::is_none",
3192        with = "ooxml_xml::ooxml_bool"
3193    )]
3194    pub concurrent: Option<bool>,
3195    #[serde(rename = "@prevAc")]
3196    #[serde(default, skip_serializing_if = "Option::is_none")]
3197    pub prev_ac: Option<STTLPreviousActionType>,
3198    #[serde(rename = "@nextAc")]
3199    #[serde(default, skip_serializing_if = "Option::is_none")]
3200    pub next_ac: Option<STTLNextActionType>,
3201    #[serde(rename = "cTn")]
3202    pub c_tn: Box<CTTLCommonTimeNodeData>,
3203    #[serde(rename = "prevCondLst")]
3204    #[serde(default, skip_serializing_if = "Option::is_none")]
3205    pub prev_cond_lst: Option<Box<CTTLTimeConditionList>>,
3206    #[serde(rename = "nextCondLst")]
3207    #[serde(default, skip_serializing_if = "Option::is_none")]
3208    pub next_cond_lst: Option<Box<CTTLTimeConditionList>>,
3209    /// Unknown attributes captured for roundtrip fidelity.
3210    #[cfg(feature = "extra-attrs")]
3211    #[serde(skip)]
3212    #[cfg(feature = "extra-attrs")]
3213    #[serde(default)]
3214    #[cfg(feature = "extra-attrs")]
3215    pub extra_attrs: std::collections::HashMap<String, String>,
3216    /// Unknown child elements captured for roundtrip fidelity.
3217    #[cfg(feature = "extra-children")]
3218    #[serde(skip)]
3219    #[cfg(feature = "extra-children")]
3220    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3221}
3222
3223pub type TLTimeNodeExclusiveElement = Box<CTTLCommonTimeNodeData>;
3224
3225#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3226pub struct CTTLBehaviorAttributeNameList {
3227    #[serde(rename = "attrName")]
3228    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3229    pub attr_name: Vec<String>,
3230    /// Unknown child elements captured for roundtrip fidelity.
3231    #[cfg(feature = "extra-children")]
3232    #[serde(skip)]
3233    #[cfg(feature = "extra-children")]
3234    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3235}
3236
3237#[derive(Debug, Clone, Serialize, Deserialize)]
3238pub struct CTTLCommonBehaviorData {
3239    #[serde(rename = "@additive")]
3240    #[serde(default, skip_serializing_if = "Option::is_none")]
3241    pub additive: Option<STTLBehaviorAdditiveType>,
3242    #[serde(rename = "@accumulate")]
3243    #[serde(default, skip_serializing_if = "Option::is_none")]
3244    pub accumulate: Option<STTLBehaviorAccumulateType>,
3245    #[serde(rename = "@xfrmType")]
3246    #[serde(default, skip_serializing_if = "Option::is_none")]
3247    pub xfrm_type: Option<STTLBehaviorTransformType>,
3248    #[serde(rename = "@from")]
3249    #[serde(default, skip_serializing_if = "Option::is_none")]
3250    pub from: Option<String>,
3251    #[serde(rename = "@to")]
3252    #[serde(default, skip_serializing_if = "Option::is_none")]
3253    pub to: Option<String>,
3254    #[serde(rename = "@by")]
3255    #[serde(default, skip_serializing_if = "Option::is_none")]
3256    pub by: Option<String>,
3257    #[serde(rename = "@rctx")]
3258    #[serde(default, skip_serializing_if = "Option::is_none")]
3259    pub rctx: Option<String>,
3260    #[serde(rename = "@override")]
3261    #[serde(default, skip_serializing_if = "Option::is_none")]
3262    pub r#override: Option<STTLBehaviorOverrideType>,
3263    #[serde(rename = "cTn")]
3264    pub c_tn: Box<CTTLCommonTimeNodeData>,
3265    #[serde(rename = "tgtEl")]
3266    pub tgt_el: Box<CTTLTimeTargetElement>,
3267    #[serde(rename = "attrNameLst")]
3268    #[serde(default, skip_serializing_if = "Option::is_none")]
3269    pub attr_name_lst: Option<Box<CTTLBehaviorAttributeNameList>>,
3270    /// Unknown attributes captured for roundtrip fidelity.
3271    #[cfg(feature = "extra-attrs")]
3272    #[serde(skip)]
3273    #[cfg(feature = "extra-attrs")]
3274    #[serde(default)]
3275    #[cfg(feature = "extra-attrs")]
3276    pub extra_attrs: std::collections::HashMap<String, String>,
3277    /// Unknown child elements captured for roundtrip fidelity.
3278    #[cfg(feature = "extra-children")]
3279    #[serde(skip)]
3280    #[cfg(feature = "extra-children")]
3281    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3282}
3283
3284#[derive(Debug, Clone, Serialize, Deserialize)]
3285pub struct CTTLAnimVariantBooleanVal {
3286    #[serde(rename = "@val")]
3287    #[serde(with = "ooxml_xml::ooxml_bool_required")]
3288    pub value: bool,
3289    /// Unknown attributes captured for roundtrip fidelity.
3290    #[cfg(feature = "extra-attrs")]
3291    #[serde(skip)]
3292    #[cfg(feature = "extra-attrs")]
3293    #[serde(default)]
3294    #[cfg(feature = "extra-attrs")]
3295    pub extra_attrs: std::collections::HashMap<String, String>,
3296}
3297
3298#[derive(Debug, Clone, Serialize, Deserialize)]
3299pub struct CTTLAnimVariantIntegerVal {
3300    #[serde(rename = "@val")]
3301    pub value: i32,
3302    /// Unknown attributes captured for roundtrip fidelity.
3303    #[cfg(feature = "extra-attrs")]
3304    #[serde(skip)]
3305    #[cfg(feature = "extra-attrs")]
3306    #[serde(default)]
3307    #[cfg(feature = "extra-attrs")]
3308    pub extra_attrs: std::collections::HashMap<String, String>,
3309}
3310
3311#[derive(Debug, Clone, Serialize, Deserialize)]
3312pub struct CTTLAnimVariantFloatVal {
3313    #[serde(rename = "@val")]
3314    pub value: f32,
3315    /// Unknown attributes captured for roundtrip fidelity.
3316    #[cfg(feature = "extra-attrs")]
3317    #[serde(skip)]
3318    #[cfg(feature = "extra-attrs")]
3319    #[serde(default)]
3320    #[cfg(feature = "extra-attrs")]
3321    pub extra_attrs: std::collections::HashMap<String, String>,
3322}
3323
3324#[derive(Debug, Clone, Serialize, Deserialize)]
3325pub struct CTTLAnimVariantStringVal {
3326    #[serde(rename = "@val")]
3327    pub value: String,
3328    /// Unknown attributes captured for roundtrip fidelity.
3329    #[cfg(feature = "extra-attrs")]
3330    #[serde(skip)]
3331    #[cfg(feature = "extra-attrs")]
3332    #[serde(default)]
3333    #[cfg(feature = "extra-attrs")]
3334    pub extra_attrs: std::collections::HashMap<String, String>,
3335}
3336
3337#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3338pub struct CTTLAnimVariant {
3339    #[serde(rename = "boolVal")]
3340    #[serde(default, skip_serializing_if = "Option::is_none")]
3341    pub bool_val: Option<Box<CTTLAnimVariantBooleanVal>>,
3342    #[serde(rename = "intVal")]
3343    #[serde(default, skip_serializing_if = "Option::is_none")]
3344    pub int_val: Option<Box<CTTLAnimVariantIntegerVal>>,
3345    #[serde(rename = "fltVal")]
3346    #[serde(default, skip_serializing_if = "Option::is_none")]
3347    pub flt_val: Option<Box<CTTLAnimVariantFloatVal>>,
3348    #[serde(rename = "strVal")]
3349    #[serde(default, skip_serializing_if = "Option::is_none")]
3350    pub str_val: Option<Box<CTTLAnimVariantStringVal>>,
3351    #[serde(rename = "clrVal")]
3352    #[serde(default, skip_serializing_if = "Option::is_none")]
3353    pub clr_val: Option<Box<ooxml_dml::types::CTColor>>,
3354    /// Unknown child elements captured for roundtrip fidelity.
3355    #[cfg(feature = "extra-children")]
3356    #[serde(skip)]
3357    #[cfg(feature = "extra-children")]
3358    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3359}
3360
3361#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3362pub struct CTTLTimeAnimateValue {
3363    #[serde(rename = "@tm")]
3364    #[serde(default, skip_serializing_if = "Option::is_none")]
3365    pub tm: Option<STTLTimeAnimateValueTime>,
3366    #[serde(rename = "@fmla")]
3367    #[serde(default, skip_serializing_if = "Option::is_none")]
3368    pub fmla: Option<String>,
3369    #[serde(rename = "val")]
3370    #[serde(default, skip_serializing_if = "Option::is_none")]
3371    pub value: Option<Box<CTTLAnimVariant>>,
3372    /// Unknown attributes captured for roundtrip fidelity.
3373    #[cfg(feature = "extra-attrs")]
3374    #[serde(skip)]
3375    #[cfg(feature = "extra-attrs")]
3376    #[serde(default)]
3377    #[cfg(feature = "extra-attrs")]
3378    pub extra_attrs: std::collections::HashMap<String, String>,
3379    /// Unknown child elements captured for roundtrip fidelity.
3380    #[cfg(feature = "extra-children")]
3381    #[serde(skip)]
3382    #[cfg(feature = "extra-children")]
3383    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3384}
3385
3386#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3387pub struct CTTLTimeAnimateValueList {
3388    #[serde(rename = "tav")]
3389    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3390    pub tav: Vec<CTTLTimeAnimateValue>,
3391    /// Unknown child elements captured for roundtrip fidelity.
3392    #[cfg(feature = "extra-children")]
3393    #[serde(skip)]
3394    #[cfg(feature = "extra-children")]
3395    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3396}
3397
3398#[derive(Debug, Clone, Serialize, Deserialize)]
3399pub struct CTTLAnimateBehavior {
3400    #[serde(rename = "@by")]
3401    #[serde(default, skip_serializing_if = "Option::is_none")]
3402    pub by: Option<String>,
3403    #[serde(rename = "@from")]
3404    #[serde(default, skip_serializing_if = "Option::is_none")]
3405    pub from: Option<String>,
3406    #[serde(rename = "@to")]
3407    #[serde(default, skip_serializing_if = "Option::is_none")]
3408    pub to: Option<String>,
3409    #[serde(rename = "@calcmode")]
3410    #[serde(default, skip_serializing_if = "Option::is_none")]
3411    pub calcmode: Option<STTLAnimateBehaviorCalcMode>,
3412    #[serde(rename = "@valueType")]
3413    #[serde(default, skip_serializing_if = "Option::is_none")]
3414    pub value_type: Option<STTLAnimateBehaviorValueType>,
3415    #[serde(rename = "cBhvr")]
3416    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3417    #[serde(rename = "tavLst")]
3418    #[serde(default, skip_serializing_if = "Option::is_none")]
3419    pub tav_lst: Option<Box<CTTLTimeAnimateValueList>>,
3420    /// Unknown attributes captured for roundtrip fidelity.
3421    #[cfg(feature = "extra-attrs")]
3422    #[serde(skip)]
3423    #[cfg(feature = "extra-attrs")]
3424    #[serde(default)]
3425    #[cfg(feature = "extra-attrs")]
3426    pub extra_attrs: std::collections::HashMap<String, String>,
3427    /// Unknown child elements captured for roundtrip fidelity.
3428    #[cfg(feature = "extra-children")]
3429    #[serde(skip)]
3430    #[cfg(feature = "extra-children")]
3431    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3432}
3433
3434#[derive(Debug, Clone, Serialize, Deserialize)]
3435pub struct CTTLByRgbColorTransform {
3436    #[serde(rename = "@r")]
3437    pub reference: ooxml_dml::types::STFixedPercentage,
3438    #[serde(rename = "@g")]
3439    pub g: ooxml_dml::types::STFixedPercentage,
3440    #[serde(rename = "@b")]
3441    pub b: ooxml_dml::types::STFixedPercentage,
3442    /// Unknown attributes captured for roundtrip fidelity.
3443    #[cfg(feature = "extra-attrs")]
3444    #[serde(skip)]
3445    #[cfg(feature = "extra-attrs")]
3446    #[serde(default)]
3447    #[cfg(feature = "extra-attrs")]
3448    pub extra_attrs: std::collections::HashMap<String, String>,
3449}
3450
3451#[derive(Debug, Clone, Serialize, Deserialize)]
3452pub struct CTTLByHslColorTransform {
3453    #[serde(rename = "@h")]
3454    pub height: ooxml_dml::types::STAngle,
3455    #[serde(rename = "@s")]
3456    pub s: ooxml_dml::types::STFixedPercentage,
3457    #[serde(rename = "@l")]
3458    pub l: ooxml_dml::types::STFixedPercentage,
3459    /// Unknown attributes captured for roundtrip fidelity.
3460    #[cfg(feature = "extra-attrs")]
3461    #[serde(skip)]
3462    #[cfg(feature = "extra-attrs")]
3463    #[serde(default)]
3464    #[cfg(feature = "extra-attrs")]
3465    pub extra_attrs: std::collections::HashMap<String, String>,
3466}
3467
3468#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3469pub struct CTTLByAnimateColorTransform {
3470    #[serde(rename = "rgb")]
3471    #[serde(default, skip_serializing_if = "Option::is_none")]
3472    pub rgb: Option<Box<CTTLByRgbColorTransform>>,
3473    #[serde(rename = "hsl")]
3474    #[serde(default, skip_serializing_if = "Option::is_none")]
3475    pub hsl: Option<Box<CTTLByHslColorTransform>>,
3476    /// Unknown child elements captured for roundtrip fidelity.
3477    #[cfg(feature = "extra-children")]
3478    #[serde(skip)]
3479    #[cfg(feature = "extra-children")]
3480    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3481}
3482
3483#[derive(Debug, Clone, Serialize, Deserialize)]
3484pub struct CTTLAnimateColorBehavior {
3485    #[serde(rename = "@clrSpc")]
3486    #[serde(default, skip_serializing_if = "Option::is_none")]
3487    pub clr_spc: Option<STTLAnimateColorSpace>,
3488    #[serde(rename = "@dir")]
3489    #[serde(default, skip_serializing_if = "Option::is_none")]
3490    pub dir: Option<STTLAnimateColorDirection>,
3491    #[serde(rename = "cBhvr")]
3492    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3493    #[serde(rename = "by")]
3494    #[serde(default, skip_serializing_if = "Option::is_none")]
3495    pub by: Option<Box<CTTLByAnimateColorTransform>>,
3496    #[serde(rename = "from")]
3497    #[serde(default, skip_serializing_if = "Option::is_none")]
3498    pub from: Option<Box<ooxml_dml::types::CTColor>>,
3499    #[serde(rename = "to")]
3500    #[serde(default, skip_serializing_if = "Option::is_none")]
3501    pub to: Option<Box<ooxml_dml::types::CTColor>>,
3502    /// Unknown attributes captured for roundtrip fidelity.
3503    #[cfg(feature = "extra-attrs")]
3504    #[serde(skip)]
3505    #[cfg(feature = "extra-attrs")]
3506    #[serde(default)]
3507    #[cfg(feature = "extra-attrs")]
3508    pub extra_attrs: std::collections::HashMap<String, String>,
3509    /// Unknown child elements captured for roundtrip fidelity.
3510    #[cfg(feature = "extra-children")]
3511    #[serde(skip)]
3512    #[cfg(feature = "extra-children")]
3513    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3514}
3515
3516#[derive(Debug, Clone, Serialize, Deserialize)]
3517pub struct CTTLAnimateEffectBehavior {
3518    #[serde(rename = "@transition")]
3519    #[serde(default, skip_serializing_if = "Option::is_none")]
3520    pub transition: Option<STTLAnimateEffectTransition>,
3521    #[serde(rename = "@filter")]
3522    #[serde(default, skip_serializing_if = "Option::is_none")]
3523    pub filter: Option<String>,
3524    #[serde(rename = "@prLst")]
3525    #[serde(default, skip_serializing_if = "Option::is_none")]
3526    pub pr_lst: Option<String>,
3527    #[serde(rename = "cBhvr")]
3528    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3529    #[serde(rename = "progress")]
3530    #[serde(default, skip_serializing_if = "Option::is_none")]
3531    pub progress: Option<Box<CTTLAnimVariant>>,
3532    /// Unknown attributes captured for roundtrip fidelity.
3533    #[cfg(feature = "extra-attrs")]
3534    #[serde(skip)]
3535    #[cfg(feature = "extra-attrs")]
3536    #[serde(default)]
3537    #[cfg(feature = "extra-attrs")]
3538    pub extra_attrs: std::collections::HashMap<String, String>,
3539    /// Unknown child elements captured for roundtrip fidelity.
3540    #[cfg(feature = "extra-children")]
3541    #[serde(skip)]
3542    #[cfg(feature = "extra-children")]
3543    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3544}
3545
3546#[derive(Debug, Clone, Serialize, Deserialize)]
3547pub struct CTTLPoint {
3548    #[serde(rename = "@x")]
3549    pub x: ooxml_dml::types::STPercentage,
3550    #[serde(rename = "@y")]
3551    pub y: ooxml_dml::types::STPercentage,
3552    /// Unknown attributes captured for roundtrip fidelity.
3553    #[cfg(feature = "extra-attrs")]
3554    #[serde(skip)]
3555    #[cfg(feature = "extra-attrs")]
3556    #[serde(default)]
3557    #[cfg(feature = "extra-attrs")]
3558    pub extra_attrs: std::collections::HashMap<String, String>,
3559}
3560
3561#[derive(Debug, Clone, Serialize, Deserialize)]
3562pub struct CTTLAnimateMotionBehavior {
3563    #[serde(rename = "@origin")]
3564    #[serde(default, skip_serializing_if = "Option::is_none")]
3565    pub origin: Option<STTLAnimateMotionBehaviorOrigin>,
3566    #[serde(rename = "@path")]
3567    #[serde(default, skip_serializing_if = "Option::is_none")]
3568    pub path: Option<String>,
3569    #[serde(rename = "@pathEditMode")]
3570    #[serde(default, skip_serializing_if = "Option::is_none")]
3571    pub path_edit_mode: Option<STTLAnimateMotionPathEditMode>,
3572    #[serde(rename = "@rAng")]
3573    #[serde(default, skip_serializing_if = "Option::is_none")]
3574    pub r_ang: Option<ooxml_dml::types::STAngle>,
3575    #[serde(rename = "@ptsTypes")]
3576    #[serde(default, skip_serializing_if = "Option::is_none")]
3577    pub pts_types: Option<String>,
3578    #[serde(rename = "cBhvr")]
3579    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3580    #[serde(rename = "by")]
3581    #[serde(default, skip_serializing_if = "Option::is_none")]
3582    pub by: Option<Box<CTTLPoint>>,
3583    #[serde(rename = "from")]
3584    #[serde(default, skip_serializing_if = "Option::is_none")]
3585    pub from: Option<Box<CTTLPoint>>,
3586    #[serde(rename = "to")]
3587    #[serde(default, skip_serializing_if = "Option::is_none")]
3588    pub to: Option<Box<CTTLPoint>>,
3589    #[serde(rename = "rCtr")]
3590    #[serde(default, skip_serializing_if = "Option::is_none")]
3591    pub r_ctr: Option<Box<CTTLPoint>>,
3592    /// Unknown attributes captured for roundtrip fidelity.
3593    #[cfg(feature = "extra-attrs")]
3594    #[serde(skip)]
3595    #[cfg(feature = "extra-attrs")]
3596    #[serde(default)]
3597    #[cfg(feature = "extra-attrs")]
3598    pub extra_attrs: std::collections::HashMap<String, String>,
3599    /// Unknown child elements captured for roundtrip fidelity.
3600    #[cfg(feature = "extra-children")]
3601    #[serde(skip)]
3602    #[cfg(feature = "extra-children")]
3603    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3604}
3605
3606#[derive(Debug, Clone, Serialize, Deserialize)]
3607pub struct CTTLAnimateRotationBehavior {
3608    #[serde(rename = "@by")]
3609    #[serde(default, skip_serializing_if = "Option::is_none")]
3610    pub by: Option<ooxml_dml::types::STAngle>,
3611    #[serde(rename = "@from")]
3612    #[serde(default, skip_serializing_if = "Option::is_none")]
3613    pub from: Option<ooxml_dml::types::STAngle>,
3614    #[serde(rename = "@to")]
3615    #[serde(default, skip_serializing_if = "Option::is_none")]
3616    pub to: Option<ooxml_dml::types::STAngle>,
3617    #[serde(rename = "cBhvr")]
3618    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3619    /// Unknown attributes captured for roundtrip fidelity.
3620    #[cfg(feature = "extra-attrs")]
3621    #[serde(skip)]
3622    #[cfg(feature = "extra-attrs")]
3623    #[serde(default)]
3624    #[cfg(feature = "extra-attrs")]
3625    pub extra_attrs: std::collections::HashMap<String, String>,
3626    /// Unknown child elements captured for roundtrip fidelity.
3627    #[cfg(feature = "extra-children")]
3628    #[serde(skip)]
3629    #[cfg(feature = "extra-children")]
3630    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3631}
3632
3633#[derive(Debug, Clone, Serialize, Deserialize)]
3634pub struct CTTLAnimateScaleBehavior {
3635    #[serde(rename = "@zoomContents")]
3636    #[serde(
3637        default,
3638        skip_serializing_if = "Option::is_none",
3639        with = "ooxml_xml::ooxml_bool"
3640    )]
3641    pub zoom_contents: Option<bool>,
3642    #[serde(rename = "cBhvr")]
3643    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3644    #[serde(rename = "by")]
3645    #[serde(default, skip_serializing_if = "Option::is_none")]
3646    pub by: Option<Box<CTTLPoint>>,
3647    #[serde(rename = "from")]
3648    #[serde(default, skip_serializing_if = "Option::is_none")]
3649    pub from: Option<Box<CTTLPoint>>,
3650    #[serde(rename = "to")]
3651    #[serde(default, skip_serializing_if = "Option::is_none")]
3652    pub to: Option<Box<CTTLPoint>>,
3653    /// Unknown attributes captured for roundtrip fidelity.
3654    #[cfg(feature = "extra-attrs")]
3655    #[serde(skip)]
3656    #[cfg(feature = "extra-attrs")]
3657    #[serde(default)]
3658    #[cfg(feature = "extra-attrs")]
3659    pub extra_attrs: std::collections::HashMap<String, String>,
3660    /// Unknown child elements captured for roundtrip fidelity.
3661    #[cfg(feature = "extra-children")]
3662    #[serde(skip)]
3663    #[cfg(feature = "extra-children")]
3664    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3665}
3666
3667#[derive(Debug, Clone, Serialize, Deserialize)]
3668pub struct CTTLCommandBehavior {
3669    #[serde(rename = "@type")]
3670    #[serde(default, skip_serializing_if = "Option::is_none")]
3671    pub r#type: Option<STTLCommandType>,
3672    #[serde(rename = "@cmd")]
3673    #[serde(default, skip_serializing_if = "Option::is_none")]
3674    pub cmd: Option<String>,
3675    #[serde(rename = "cBhvr")]
3676    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3677    /// Unknown attributes captured for roundtrip fidelity.
3678    #[cfg(feature = "extra-attrs")]
3679    #[serde(skip)]
3680    #[cfg(feature = "extra-attrs")]
3681    #[serde(default)]
3682    #[cfg(feature = "extra-attrs")]
3683    pub extra_attrs: std::collections::HashMap<String, String>,
3684    /// Unknown child elements captured for roundtrip fidelity.
3685    #[cfg(feature = "extra-children")]
3686    #[serde(skip)]
3687    #[cfg(feature = "extra-children")]
3688    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3689}
3690
3691#[derive(Debug, Clone, Serialize, Deserialize)]
3692pub struct CTTLSetBehavior {
3693    #[serde(rename = "cBhvr")]
3694    pub c_bhvr: Box<CTTLCommonBehaviorData>,
3695    #[serde(rename = "to")]
3696    #[serde(default, skip_serializing_if = "Option::is_none")]
3697    pub to: Option<Box<CTTLAnimVariant>>,
3698    /// Unknown child elements captured for roundtrip fidelity.
3699    #[cfg(feature = "extra-children")]
3700    #[serde(skip)]
3701    #[cfg(feature = "extra-children")]
3702    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3703}
3704
3705#[derive(Debug, Clone, Serialize, Deserialize)]
3706pub struct CTTLCommonMediaNodeData {
3707    #[serde(rename = "@vol")]
3708    #[serde(default, skip_serializing_if = "Option::is_none")]
3709    pub vol: Option<ooxml_dml::types::STPositiveFixedPercentage>,
3710    #[serde(rename = "@mute")]
3711    #[serde(
3712        default,
3713        skip_serializing_if = "Option::is_none",
3714        with = "ooxml_xml::ooxml_bool"
3715    )]
3716    pub mute: Option<bool>,
3717    #[serde(rename = "@numSld")]
3718    #[serde(default, skip_serializing_if = "Option::is_none")]
3719    pub num_sld: Option<u32>,
3720    #[serde(rename = "@showWhenStopped")]
3721    #[serde(
3722        default,
3723        skip_serializing_if = "Option::is_none",
3724        with = "ooxml_xml::ooxml_bool"
3725    )]
3726    pub show_when_stopped: Option<bool>,
3727    #[serde(rename = "cTn")]
3728    pub c_tn: Box<CTTLCommonTimeNodeData>,
3729    #[serde(rename = "tgtEl")]
3730    pub tgt_el: Box<CTTLTimeTargetElement>,
3731    /// Unknown attributes captured for roundtrip fidelity.
3732    #[cfg(feature = "extra-attrs")]
3733    #[serde(skip)]
3734    #[cfg(feature = "extra-attrs")]
3735    #[serde(default)]
3736    #[cfg(feature = "extra-attrs")]
3737    pub extra_attrs: std::collections::HashMap<String, String>,
3738    /// Unknown child elements captured for roundtrip fidelity.
3739    #[cfg(feature = "extra-children")]
3740    #[serde(skip)]
3741    #[cfg(feature = "extra-children")]
3742    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3743}
3744
3745#[derive(Debug, Clone, Serialize, Deserialize)]
3746pub struct CTTLMediaNodeAudio {
3747    #[serde(rename = "@isNarration")]
3748    #[serde(
3749        default,
3750        skip_serializing_if = "Option::is_none",
3751        with = "ooxml_xml::ooxml_bool"
3752    )]
3753    pub is_narration: Option<bool>,
3754    #[serde(rename = "cMediaNode")]
3755    pub c_media_node: Box<CTTLCommonMediaNodeData>,
3756    /// Unknown attributes captured for roundtrip fidelity.
3757    #[cfg(feature = "extra-attrs")]
3758    #[serde(skip)]
3759    #[cfg(feature = "extra-attrs")]
3760    #[serde(default)]
3761    #[cfg(feature = "extra-attrs")]
3762    pub extra_attrs: std::collections::HashMap<String, String>,
3763    /// Unknown child elements captured for roundtrip fidelity.
3764    #[cfg(feature = "extra-children")]
3765    #[serde(skip)]
3766    #[cfg(feature = "extra-children")]
3767    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3768}
3769
3770#[derive(Debug, Clone, Serialize, Deserialize)]
3771pub struct CTTLMediaNodeVideo {
3772    #[serde(rename = "@fullScrn")]
3773    #[serde(
3774        default,
3775        skip_serializing_if = "Option::is_none",
3776        with = "ooxml_xml::ooxml_bool"
3777    )]
3778    pub full_scrn: Option<bool>,
3779    #[serde(rename = "cMediaNode")]
3780    pub c_media_node: Box<CTTLCommonMediaNodeData>,
3781    /// Unknown attributes captured for roundtrip fidelity.
3782    #[cfg(feature = "extra-attrs")]
3783    #[serde(skip)]
3784    #[cfg(feature = "extra-attrs")]
3785    #[serde(default)]
3786    #[cfg(feature = "extra-attrs")]
3787    pub extra_attrs: std::collections::HashMap<String, String>,
3788    /// Unknown child elements captured for roundtrip fidelity.
3789    #[cfg(feature = "extra-children")]
3790    #[serde(skip)]
3791    #[cfg(feature = "extra-children")]
3792    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3793}
3794
3795#[derive(Debug, Clone, Serialize, Deserialize)]
3796pub struct PAGTLBuild {
3797    #[serde(rename = "@spid")]
3798    pub spid: ooxml_dml::types::STDrawingElementId,
3799    #[serde(rename = "@grpId")]
3800    pub grp_id: u32,
3801    #[serde(rename = "@uiExpand")]
3802    #[serde(
3803        default,
3804        skip_serializing_if = "Option::is_none",
3805        with = "ooxml_xml::ooxml_bool"
3806    )]
3807    pub ui_expand: Option<bool>,
3808    /// Unknown attributes captured for roundtrip fidelity.
3809    #[cfg(feature = "extra-attrs")]
3810    #[serde(skip)]
3811    #[cfg(feature = "extra-attrs")]
3812    #[serde(default)]
3813    #[cfg(feature = "extra-attrs")]
3814    pub extra_attrs: std::collections::HashMap<String, String>,
3815}
3816
3817#[derive(Debug, Clone, Serialize, Deserialize)]
3818pub struct CTTLTemplate {
3819    #[serde(rename = "@lvl")]
3820    #[serde(default, skip_serializing_if = "Option::is_none")]
3821    pub lvl: Option<u32>,
3822    #[serde(rename = "tnLst")]
3823    pub tn_lst: Box<CTTimeNodeList>,
3824    /// Unknown attributes captured for roundtrip fidelity.
3825    #[cfg(feature = "extra-attrs")]
3826    #[serde(skip)]
3827    #[cfg(feature = "extra-attrs")]
3828    #[serde(default)]
3829    #[cfg(feature = "extra-attrs")]
3830    pub extra_attrs: std::collections::HashMap<String, String>,
3831    /// Unknown child elements captured for roundtrip fidelity.
3832    #[cfg(feature = "extra-children")]
3833    #[serde(skip)]
3834    #[cfg(feature = "extra-children")]
3835    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3836}
3837
3838#[derive(Debug, Clone, Default, Serialize, Deserialize)]
3839pub struct CTTLTemplateList {
3840    #[serde(rename = "tmpl")]
3841    #[serde(default, skip_serializing_if = "Vec::is_empty")]
3842    pub tmpl: Vec<CTTLTemplate>,
3843    /// Unknown child elements captured for roundtrip fidelity.
3844    #[cfg(feature = "extra-children")]
3845    #[serde(skip)]
3846    #[cfg(feature = "extra-children")]
3847    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3848}
3849
3850#[derive(Debug, Clone, Serialize, Deserialize)]
3851pub struct CTTLBuildParagraph {
3852    #[serde(rename = "@spid")]
3853    pub spid: ooxml_dml::types::STDrawingElementId,
3854    #[serde(rename = "@grpId")]
3855    pub grp_id: u32,
3856    #[serde(rename = "@uiExpand")]
3857    #[serde(
3858        default,
3859        skip_serializing_if = "Option::is_none",
3860        with = "ooxml_xml::ooxml_bool"
3861    )]
3862    pub ui_expand: Option<bool>,
3863    #[serde(rename = "@build")]
3864    #[serde(default, skip_serializing_if = "Option::is_none")]
3865    pub build: Option<STTLParaBuildType>,
3866    #[serde(rename = "@bldLvl")]
3867    #[serde(default, skip_serializing_if = "Option::is_none")]
3868    pub bld_lvl: Option<u32>,
3869    #[serde(rename = "@animBg")]
3870    #[serde(
3871        default,
3872        skip_serializing_if = "Option::is_none",
3873        with = "ooxml_xml::ooxml_bool"
3874    )]
3875    pub anim_bg: Option<bool>,
3876    #[serde(rename = "@autoUpdateAnimBg")]
3877    #[serde(
3878        default,
3879        skip_serializing_if = "Option::is_none",
3880        with = "ooxml_xml::ooxml_bool"
3881    )]
3882    pub auto_update_anim_bg: Option<bool>,
3883    #[serde(rename = "@rev")]
3884    #[serde(
3885        default,
3886        skip_serializing_if = "Option::is_none",
3887        with = "ooxml_xml::ooxml_bool"
3888    )]
3889    pub rev: Option<bool>,
3890    #[serde(rename = "@advAuto")]
3891    #[serde(default, skip_serializing_if = "Option::is_none")]
3892    pub adv_auto: Option<STTLTime>,
3893    #[serde(rename = "tmplLst")]
3894    #[serde(default, skip_serializing_if = "Option::is_none")]
3895    pub tmpl_lst: Option<Box<CTTLTemplateList>>,
3896    /// Unknown attributes captured for roundtrip fidelity.
3897    #[cfg(feature = "extra-attrs")]
3898    #[serde(skip)]
3899    #[cfg(feature = "extra-attrs")]
3900    #[serde(default)]
3901    #[cfg(feature = "extra-attrs")]
3902    pub extra_attrs: std::collections::HashMap<String, String>,
3903    /// Unknown child elements captured for roundtrip fidelity.
3904    #[cfg(feature = "extra-children")]
3905    #[serde(skip)]
3906    #[cfg(feature = "extra-children")]
3907    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3908}
3909
3910#[derive(Debug, Clone, Serialize, Deserialize)]
3911pub struct CTTLBuildDiagram {
3912    #[serde(rename = "@spid")]
3913    pub spid: ooxml_dml::types::STDrawingElementId,
3914    #[serde(rename = "@grpId")]
3915    pub grp_id: u32,
3916    #[serde(rename = "@uiExpand")]
3917    #[serde(
3918        default,
3919        skip_serializing_if = "Option::is_none",
3920        with = "ooxml_xml::ooxml_bool"
3921    )]
3922    pub ui_expand: Option<bool>,
3923    #[serde(rename = "@bld")]
3924    #[serde(default, skip_serializing_if = "Option::is_none")]
3925    pub bld: Option<STTLDiagramBuildType>,
3926    /// Unknown attributes captured for roundtrip fidelity.
3927    #[cfg(feature = "extra-attrs")]
3928    #[serde(skip)]
3929    #[cfg(feature = "extra-attrs")]
3930    #[serde(default)]
3931    #[cfg(feature = "extra-attrs")]
3932    pub extra_attrs: std::collections::HashMap<String, String>,
3933}
3934
3935#[derive(Debug, Clone, Serialize, Deserialize)]
3936pub struct CTTLOleBuildChart {
3937    #[serde(rename = "@spid")]
3938    pub spid: ooxml_dml::types::STDrawingElementId,
3939    #[serde(rename = "@grpId")]
3940    pub grp_id: u32,
3941    #[serde(rename = "@uiExpand")]
3942    #[serde(
3943        default,
3944        skip_serializing_if = "Option::is_none",
3945        with = "ooxml_xml::ooxml_bool"
3946    )]
3947    pub ui_expand: Option<bool>,
3948    #[serde(rename = "@bld")]
3949    #[serde(default, skip_serializing_if = "Option::is_none")]
3950    pub bld: Option<STTLOleChartBuildType>,
3951    #[serde(rename = "@animBg")]
3952    #[serde(
3953        default,
3954        skip_serializing_if = "Option::is_none",
3955        with = "ooxml_xml::ooxml_bool"
3956    )]
3957    pub anim_bg: Option<bool>,
3958    /// Unknown attributes captured for roundtrip fidelity.
3959    #[cfg(feature = "extra-attrs")]
3960    #[serde(skip)]
3961    #[cfg(feature = "extra-attrs")]
3962    #[serde(default)]
3963    #[cfg(feature = "extra-attrs")]
3964    pub extra_attrs: std::collections::HashMap<String, String>,
3965}
3966
3967#[derive(Debug, Clone, Serialize, Deserialize)]
3968pub struct CTTLGraphicalObjectBuild {
3969    #[serde(rename = "@spid")]
3970    pub spid: ooxml_dml::types::STDrawingElementId,
3971    #[serde(rename = "@grpId")]
3972    pub grp_id: u32,
3973    #[serde(rename = "@uiExpand")]
3974    #[serde(
3975        default,
3976        skip_serializing_if = "Option::is_none",
3977        with = "ooxml_xml::ooxml_bool"
3978    )]
3979    pub ui_expand: Option<bool>,
3980    #[serde(rename = "bldAsOne")]
3981    #[serde(default, skip_serializing_if = "Option::is_none")]
3982    pub bld_as_one: Option<Box<CTEmpty>>,
3983    #[serde(rename = "bldSub")]
3984    #[serde(default, skip_serializing_if = "Option::is_none")]
3985    pub bld_sub: Option<Box<ooxml_dml::types::CTAnimationGraphicalObjectBuildProperties>>,
3986    /// Unknown attributes captured for roundtrip fidelity.
3987    #[cfg(feature = "extra-attrs")]
3988    #[serde(skip)]
3989    #[cfg(feature = "extra-attrs")]
3990    #[serde(default)]
3991    #[cfg(feature = "extra-attrs")]
3992    pub extra_attrs: std::collections::HashMap<String, String>,
3993    /// Unknown child elements captured for roundtrip fidelity.
3994    #[cfg(feature = "extra-children")]
3995    #[serde(skip)]
3996    #[cfg(feature = "extra-children")]
3997    pub extra_children: Vec<ooxml_xml::PositionedNode>,
3998}
3999
4000#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4001pub struct CTBuildList {
4002    #[serde(rename = "bldP")]
4003    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4004    pub bld_p: Vec<CTTLBuildParagraph>,
4005    #[serde(rename = "bldDgm")]
4006    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4007    pub bld_dgm: Vec<CTTLBuildDiagram>,
4008    #[serde(rename = "bldOleChart")]
4009    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4010    pub bld_ole_chart: Vec<CTTLOleBuildChart>,
4011    #[serde(rename = "bldGraphic")]
4012    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4013    pub bld_graphic: Vec<CTTLGraphicalObjectBuild>,
4014    /// Unknown child elements captured for roundtrip fidelity.
4015    #[cfg(feature = "extra-children")]
4016    #[serde(skip)]
4017    #[cfg(feature = "extra-children")]
4018    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4019}
4020
4021#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4022pub struct SlideTiming {
4023    #[cfg(feature = "pml-animations")]
4024    #[serde(rename = "tnLst")]
4025    #[serde(default, skip_serializing_if = "Option::is_none")]
4026    pub tn_lst: Option<Box<CTTimeNodeList>>,
4027    #[cfg(feature = "pml-animations")]
4028    #[serde(rename = "bldLst")]
4029    #[serde(default, skip_serializing_if = "Option::is_none")]
4030    pub bld_lst: Option<Box<CTBuildList>>,
4031    #[cfg(feature = "pml-extensions")]
4032    #[serde(rename = "extLst")]
4033    #[serde(default, skip_serializing_if = "Option::is_none")]
4034    pub ext_lst: Option<Box<CTExtensionListModify>>,
4035    /// Unknown child elements captured for roundtrip fidelity.
4036    #[cfg(feature = "extra-children")]
4037    #[serde(skip)]
4038    #[cfg(feature = "extra-children")]
4039    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4040}
4041
4042#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4043pub struct CTEmpty;
4044
4045#[derive(Debug, Clone, Serialize, Deserialize)]
4046pub struct CTIndexRange {
4047    #[serde(rename = "@st")]
4048    pub st: STIndex,
4049    #[serde(rename = "@end")]
4050    pub end: STIndex,
4051    /// Unknown attributes captured for roundtrip fidelity.
4052    #[cfg(feature = "extra-attrs")]
4053    #[serde(skip)]
4054    #[cfg(feature = "extra-attrs")]
4055    #[serde(default)]
4056    #[cfg(feature = "extra-attrs")]
4057    pub extra_attrs: std::collections::HashMap<String, String>,
4058}
4059
4060#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4061pub struct CTSlideRelationshipListEntry {
4062    /// Unknown child elements captured for roundtrip fidelity.
4063    #[cfg(feature = "extra-children")]
4064    #[serde(skip)]
4065    #[cfg(feature = "extra-children")]
4066    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4067}
4068
4069#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4070pub struct CTSlideRelationshipList {
4071    #[serde(rename = "sld")]
4072    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4073    pub sld: Vec<CTSlideRelationshipListEntry>,
4074    /// Unknown child elements captured for roundtrip fidelity.
4075    #[cfg(feature = "extra-children")]
4076    #[serde(skip)]
4077    #[cfg(feature = "extra-children")]
4078    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4079}
4080
4081#[derive(Debug, Clone, Serialize, Deserialize)]
4082pub struct CTCustomShowId {
4083    #[serde(rename = "@id")]
4084    pub id: u32,
4085    /// Unknown attributes captured for roundtrip fidelity.
4086    #[cfg(feature = "extra-attrs")]
4087    #[serde(skip)]
4088    #[cfg(feature = "extra-attrs")]
4089    #[serde(default)]
4090    #[cfg(feature = "extra-attrs")]
4091    pub extra_attrs: std::collections::HashMap<String, String>,
4092}
4093
4094#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4095pub struct CTCustomerData {
4096    /// Unknown child elements captured for roundtrip fidelity.
4097    #[cfg(feature = "extra-children")]
4098    #[serde(skip)]
4099    #[cfg(feature = "extra-children")]
4100    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4101}
4102
4103#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4104pub struct CTTagsData {
4105    /// Unknown child elements captured for roundtrip fidelity.
4106    #[cfg(feature = "extra-children")]
4107    #[serde(skip)]
4108    #[cfg(feature = "extra-children")]
4109    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4110}
4111
4112#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4113pub struct CTCustomerDataList {
4114    #[serde(rename = "custData")]
4115    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4116    pub cust_data: Vec<CTCustomerData>,
4117    #[serde(rename = "tags")]
4118    #[serde(default, skip_serializing_if = "Option::is_none")]
4119    pub tags: Option<Box<CTTagsData>>,
4120    /// Unknown child elements captured for roundtrip fidelity.
4121    #[cfg(feature = "extra-children")]
4122    #[serde(skip)]
4123    #[cfg(feature = "extra-children")]
4124    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4125}
4126
4127#[derive(Debug, Clone, Serialize, Deserialize)]
4128pub struct CTExtension {
4129    #[serde(rename = "@uri")]
4130    pub uri: String,
4131    /// Unknown attributes captured for roundtrip fidelity.
4132    #[cfg(feature = "extra-attrs")]
4133    #[serde(skip)]
4134    #[cfg(feature = "extra-attrs")]
4135    #[serde(default)]
4136    #[cfg(feature = "extra-attrs")]
4137    pub extra_attrs: std::collections::HashMap<String, String>,
4138}
4139
4140pub type ExtensionAnyElement = String;
4141
4142#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4143pub struct EGExtensionList {
4144    #[serde(rename = "ext")]
4145    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4146    pub ext: Vec<CTExtension>,
4147    /// Unknown child elements captured for roundtrip fidelity.
4148    #[cfg(feature = "extra-children")]
4149    #[serde(skip)]
4150    #[cfg(feature = "extra-children")]
4151    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4152}
4153
4154#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4155pub struct CTExtensionList {
4156    #[serde(rename = "ext")]
4157    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4158    pub ext: Vec<CTExtension>,
4159    /// Unknown child elements captured for roundtrip fidelity.
4160    #[cfg(feature = "extra-children")]
4161    #[serde(skip)]
4162    #[cfg(feature = "extra-children")]
4163    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4164}
4165
4166#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4167pub struct CTExtensionListModify {
4168    #[serde(rename = "@mod")]
4169    #[serde(
4170        default,
4171        skip_serializing_if = "Option::is_none",
4172        with = "ooxml_xml::ooxml_bool"
4173    )]
4174    pub r#mod: Option<bool>,
4175    #[serde(rename = "ext")]
4176    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4177    pub ext: Vec<CTExtension>,
4178    /// Unknown attributes captured for roundtrip fidelity.
4179    #[cfg(feature = "extra-attrs")]
4180    #[serde(skip)]
4181    #[cfg(feature = "extra-attrs")]
4182    #[serde(default)]
4183    #[cfg(feature = "extra-attrs")]
4184    pub extra_attrs: std::collections::HashMap<String, String>,
4185    /// Unknown child elements captured for roundtrip fidelity.
4186    #[cfg(feature = "extra-children")]
4187    #[serde(skip)]
4188    #[cfg(feature = "extra-children")]
4189    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4190}
4191
4192#[derive(Debug, Clone, Serialize, Deserialize)]
4193pub struct CTCommentAuthor {
4194    #[cfg(feature = "pml-comments")]
4195    #[serde(rename = "@id")]
4196    pub id: u32,
4197    #[cfg(feature = "pml-comments")]
4198    #[serde(rename = "@name")]
4199    pub name: STName,
4200    #[cfg(feature = "pml-comments")]
4201    #[serde(rename = "@initials")]
4202    pub initials: STName,
4203    #[cfg(feature = "pml-comments")]
4204    #[serde(rename = "@lastIdx")]
4205    pub last_idx: u32,
4206    #[cfg(feature = "pml-comments")]
4207    #[serde(rename = "@clrIdx")]
4208    pub clr_idx: u32,
4209    #[cfg(feature = "pml-extensions")]
4210    #[serde(rename = "extLst")]
4211    #[serde(default, skip_serializing_if = "Option::is_none")]
4212    pub ext_lst: Option<Box<CTExtensionList>>,
4213    /// Unknown attributes captured for roundtrip fidelity.
4214    #[cfg(feature = "extra-attrs")]
4215    #[serde(skip)]
4216    #[cfg(feature = "extra-attrs")]
4217    #[serde(default)]
4218    #[cfg(feature = "extra-attrs")]
4219    pub extra_attrs: std::collections::HashMap<String, String>,
4220    /// Unknown child elements captured for roundtrip fidelity.
4221    #[cfg(feature = "extra-children")]
4222    #[serde(skip)]
4223    #[cfg(feature = "extra-children")]
4224    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4225}
4226
4227#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4228pub struct CTCommentAuthorList {
4229    #[serde(rename = "cmAuthor")]
4230    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4231    pub cm_author: Vec<CTCommentAuthor>,
4232    /// Unknown child elements captured for roundtrip fidelity.
4233    #[cfg(feature = "extra-children")]
4234    #[serde(skip)]
4235    #[cfg(feature = "extra-children")]
4236    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4237}
4238
4239pub type PCmAuthorLst = Box<CTCommentAuthorList>;
4240
4241#[derive(Debug, Clone, Serialize, Deserialize)]
4242pub struct CTComment {
4243    #[cfg(feature = "pml-comments")]
4244    #[serde(rename = "@authorId")]
4245    pub author_id: u32,
4246    #[cfg(feature = "pml-comments")]
4247    #[serde(rename = "@dt")]
4248    #[serde(default, skip_serializing_if = "Option::is_none")]
4249    pub dt: Option<String>,
4250    #[cfg(feature = "pml-comments")]
4251    #[serde(rename = "@idx")]
4252    pub idx: STIndex,
4253    #[cfg(feature = "pml-comments")]
4254    #[serde(rename = "pos")]
4255    pub pos: Box<ooxml_dml::types::Point2D>,
4256    #[cfg(feature = "pml-comments")]
4257    #[serde(rename = "text")]
4258    pub text: String,
4259    #[cfg(feature = "pml-extensions")]
4260    #[serde(rename = "extLst")]
4261    #[serde(default, skip_serializing_if = "Option::is_none")]
4262    pub ext_lst: Option<Box<CTExtensionListModify>>,
4263    /// Unknown attributes captured for roundtrip fidelity.
4264    #[cfg(feature = "extra-attrs")]
4265    #[serde(skip)]
4266    #[cfg(feature = "extra-attrs")]
4267    #[serde(default)]
4268    #[cfg(feature = "extra-attrs")]
4269    pub extra_attrs: std::collections::HashMap<String, String>,
4270    /// Unknown child elements captured for roundtrip fidelity.
4271    #[cfg(feature = "extra-children")]
4272    #[serde(skip)]
4273    #[cfg(feature = "extra-children")]
4274    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4275}
4276
4277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4278pub struct CTCommentList {
4279    #[serde(rename = "cm")]
4280    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4281    pub cm: Vec<CTComment>,
4282    /// Unknown child elements captured for roundtrip fidelity.
4283    #[cfg(feature = "extra-children")]
4284    #[serde(skip)]
4285    #[cfg(feature = "extra-children")]
4286    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4287}
4288
4289pub type PCmLst = Box<CTCommentList>;
4290
4291#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4292pub struct PAGOle {
4293    #[serde(rename = "@name")]
4294    #[serde(default, skip_serializing_if = "Option::is_none")]
4295    pub name: Option<String>,
4296    #[serde(rename = "@showAsIcon")]
4297    #[serde(
4298        default,
4299        skip_serializing_if = "Option::is_none",
4300        with = "ooxml_xml::ooxml_bool"
4301    )]
4302    pub show_as_icon: Option<bool>,
4303    #[serde(rename = "@imgW")]
4304    #[serde(default, skip_serializing_if = "Option::is_none")]
4305    pub img_w: Option<ooxml_dml::types::STPositiveCoordinate32>,
4306    #[serde(rename = "@imgH")]
4307    #[serde(default, skip_serializing_if = "Option::is_none")]
4308    pub img_h: Option<ooxml_dml::types::STPositiveCoordinate32>,
4309    /// Unknown attributes captured for roundtrip fidelity.
4310    #[cfg(feature = "extra-attrs")]
4311    #[serde(skip)]
4312    #[cfg(feature = "extra-attrs")]
4313    #[serde(default)]
4314    #[cfg(feature = "extra-attrs")]
4315    pub extra_attrs: std::collections::HashMap<String, String>,
4316}
4317
4318#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4319pub struct CTOleObjectEmbed {
4320    #[serde(rename = "@followColorScheme")]
4321    #[serde(default, skip_serializing_if = "Option::is_none")]
4322    pub follow_color_scheme: Option<STOleObjectFollowColorScheme>,
4323    #[serde(rename = "extLst")]
4324    #[serde(default, skip_serializing_if = "Option::is_none")]
4325    pub ext_lst: Option<Box<CTExtensionList>>,
4326    /// Unknown attributes captured for roundtrip fidelity.
4327    #[cfg(feature = "extra-attrs")]
4328    #[serde(skip)]
4329    #[cfg(feature = "extra-attrs")]
4330    #[serde(default)]
4331    #[cfg(feature = "extra-attrs")]
4332    pub extra_attrs: std::collections::HashMap<String, String>,
4333    /// Unknown child elements captured for roundtrip fidelity.
4334    #[cfg(feature = "extra-children")]
4335    #[serde(skip)]
4336    #[cfg(feature = "extra-children")]
4337    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4338}
4339
4340#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4341pub struct CTOleObjectLink {
4342    #[serde(rename = "@updateAutomatic")]
4343    #[serde(
4344        default,
4345        skip_serializing_if = "Option::is_none",
4346        with = "ooxml_xml::ooxml_bool"
4347    )]
4348    pub update_automatic: Option<bool>,
4349    #[serde(rename = "extLst")]
4350    #[serde(default, skip_serializing_if = "Option::is_none")]
4351    pub ext_lst: Option<Box<CTExtensionList>>,
4352    /// Unknown attributes captured for roundtrip fidelity.
4353    #[cfg(feature = "extra-attrs")]
4354    #[serde(skip)]
4355    #[cfg(feature = "extra-attrs")]
4356    #[serde(default)]
4357    #[cfg(feature = "extra-attrs")]
4358    pub extra_attrs: std::collections::HashMap<String, String>,
4359    /// Unknown child elements captured for roundtrip fidelity.
4360    #[cfg(feature = "extra-children")]
4361    #[serde(skip)]
4362    #[cfg(feature = "extra-children")]
4363    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4364}
4365
4366#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4367pub struct CTOleObject {
4368    #[serde(rename = "@name")]
4369    #[serde(default, skip_serializing_if = "Option::is_none")]
4370    pub name: Option<String>,
4371    #[serde(rename = "@showAsIcon")]
4372    #[serde(
4373        default,
4374        skip_serializing_if = "Option::is_none",
4375        with = "ooxml_xml::ooxml_bool"
4376    )]
4377    pub show_as_icon: Option<bool>,
4378    #[serde(rename = "@imgW")]
4379    #[serde(default, skip_serializing_if = "Option::is_none")]
4380    pub img_w: Option<ooxml_dml::types::STPositiveCoordinate32>,
4381    #[serde(rename = "@imgH")]
4382    #[serde(default, skip_serializing_if = "Option::is_none")]
4383    pub img_h: Option<ooxml_dml::types::STPositiveCoordinate32>,
4384    #[serde(rename = "@progId")]
4385    #[serde(default, skip_serializing_if = "Option::is_none")]
4386    pub prog_id: Option<String>,
4387    #[serde(rename = "embed")]
4388    #[serde(default, skip_serializing_if = "Option::is_none")]
4389    pub embed: Option<Box<CTOleObjectEmbed>>,
4390    #[serde(rename = "link")]
4391    #[serde(default, skip_serializing_if = "Option::is_none")]
4392    pub link: Option<Box<CTOleObjectLink>>,
4393    #[serde(rename = "@spid")]
4394    #[serde(default, skip_serializing_if = "Option::is_none")]
4395    pub spid: Option<ooxml_dml::types::STShapeID>,
4396    #[serde(rename = "pic")]
4397    #[serde(default, skip_serializing_if = "Option::is_none")]
4398    pub picture: Option<Box<Picture>>,
4399    /// Unknown attributes captured for roundtrip fidelity.
4400    #[cfg(feature = "extra-attrs")]
4401    #[serde(skip)]
4402    #[cfg(feature = "extra-attrs")]
4403    #[serde(default)]
4404    #[cfg(feature = "extra-attrs")]
4405    pub extra_attrs: std::collections::HashMap<String, String>,
4406    /// Unknown child elements captured for roundtrip fidelity.
4407    #[cfg(feature = "extra-children")]
4408    #[serde(skip)]
4409    #[cfg(feature = "extra-children")]
4410    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4411}
4412
4413pub type POleObj = Box<CTOleObject>;
4414
4415#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4416pub struct CTControl {
4417    #[serde(rename = "@name")]
4418    #[serde(default, skip_serializing_if = "Option::is_none")]
4419    pub name: Option<String>,
4420    #[serde(rename = "@showAsIcon")]
4421    #[serde(
4422        default,
4423        skip_serializing_if = "Option::is_none",
4424        with = "ooxml_xml::ooxml_bool"
4425    )]
4426    pub show_as_icon: Option<bool>,
4427    #[serde(rename = "@imgW")]
4428    #[serde(default, skip_serializing_if = "Option::is_none")]
4429    pub img_w: Option<ooxml_dml::types::STPositiveCoordinate32>,
4430    #[serde(rename = "@imgH")]
4431    #[serde(default, skip_serializing_if = "Option::is_none")]
4432    pub img_h: Option<ooxml_dml::types::STPositiveCoordinate32>,
4433    #[serde(rename = "extLst")]
4434    #[serde(default, skip_serializing_if = "Option::is_none")]
4435    pub ext_lst: Option<Box<CTExtensionList>>,
4436    #[serde(rename = "@spid")]
4437    #[serde(default, skip_serializing_if = "Option::is_none")]
4438    pub spid: Option<ooxml_dml::types::STShapeID>,
4439    #[serde(rename = "pic")]
4440    #[serde(default, skip_serializing_if = "Option::is_none")]
4441    pub picture: Option<Box<Picture>>,
4442    /// Unknown attributes captured for roundtrip fidelity.
4443    #[cfg(feature = "extra-attrs")]
4444    #[serde(skip)]
4445    #[cfg(feature = "extra-attrs")]
4446    #[serde(default)]
4447    #[cfg(feature = "extra-attrs")]
4448    pub extra_attrs: std::collections::HashMap<String, String>,
4449    /// Unknown child elements captured for roundtrip fidelity.
4450    #[cfg(feature = "extra-children")]
4451    #[serde(skip)]
4452    #[cfg(feature = "extra-children")]
4453    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4454}
4455
4456#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4457pub struct CTControlList {
4458    #[serde(rename = "control")]
4459    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4460    pub control: Vec<CTControl>,
4461    /// Unknown child elements captured for roundtrip fidelity.
4462    #[cfg(feature = "extra-children")]
4463    #[serde(skip)]
4464    #[cfg(feature = "extra-children")]
4465    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4466}
4467
4468#[derive(Debug, Clone, Serialize, Deserialize)]
4469pub struct CTSlideIdListEntry {
4470    #[serde(rename = "@id")]
4471    pub id: STSlideId,
4472    #[serde(rename = "extLst")]
4473    #[serde(default, skip_serializing_if = "Option::is_none")]
4474    pub ext_lst: Option<Box<CTExtensionList>>,
4475    /// Unknown attributes captured for roundtrip fidelity.
4476    #[cfg(feature = "extra-attrs")]
4477    #[serde(skip)]
4478    #[cfg(feature = "extra-attrs")]
4479    #[serde(default)]
4480    #[cfg(feature = "extra-attrs")]
4481    pub extra_attrs: std::collections::HashMap<String, String>,
4482    /// Unknown child elements captured for roundtrip fidelity.
4483    #[cfg(feature = "extra-children")]
4484    #[serde(skip)]
4485    #[cfg(feature = "extra-children")]
4486    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4487}
4488
4489#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4490pub struct SlideIdList {
4491    #[serde(rename = "sldId")]
4492    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4493    pub sld_id: Vec<CTSlideIdListEntry>,
4494    /// Unknown child elements captured for roundtrip fidelity.
4495    #[cfg(feature = "extra-children")]
4496    #[serde(skip)]
4497    #[cfg(feature = "extra-children")]
4498    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4499}
4500
4501#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4502pub struct CTSlideMasterIdListEntry {
4503    #[serde(rename = "@id")]
4504    #[serde(default, skip_serializing_if = "Option::is_none")]
4505    pub id: Option<STSlideMasterId>,
4506    #[serde(rename = "extLst")]
4507    #[serde(default, skip_serializing_if = "Option::is_none")]
4508    pub ext_lst: Option<Box<CTExtensionList>>,
4509    /// Unknown attributes captured for roundtrip fidelity.
4510    #[cfg(feature = "extra-attrs")]
4511    #[serde(skip)]
4512    #[cfg(feature = "extra-attrs")]
4513    #[serde(default)]
4514    #[cfg(feature = "extra-attrs")]
4515    pub extra_attrs: std::collections::HashMap<String, String>,
4516    /// Unknown child elements captured for roundtrip fidelity.
4517    #[cfg(feature = "extra-children")]
4518    #[serde(skip)]
4519    #[cfg(feature = "extra-children")]
4520    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4521}
4522
4523#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4524pub struct CTSlideMasterIdList {
4525    #[serde(rename = "sldMasterId")]
4526    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4527    pub sld_master_id: Vec<CTSlideMasterIdListEntry>,
4528    /// Unknown child elements captured for roundtrip fidelity.
4529    #[cfg(feature = "extra-children")]
4530    #[serde(skip)]
4531    #[cfg(feature = "extra-children")]
4532    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4533}
4534
4535#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4536pub struct CTNotesMasterIdListEntry {
4537    #[serde(rename = "extLst")]
4538    #[serde(default, skip_serializing_if = "Option::is_none")]
4539    pub ext_lst: Option<Box<CTExtensionList>>,
4540    /// Unknown child elements captured for roundtrip fidelity.
4541    #[cfg(feature = "extra-children")]
4542    #[serde(skip)]
4543    #[cfg(feature = "extra-children")]
4544    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4545}
4546
4547#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4548pub struct CTNotesMasterIdList {
4549    #[serde(rename = "notesMasterId")]
4550    #[serde(default, skip_serializing_if = "Option::is_none")]
4551    pub notes_master_id: Option<Box<CTNotesMasterIdListEntry>>,
4552    /// Unknown child elements captured for roundtrip fidelity.
4553    #[cfg(feature = "extra-children")]
4554    #[serde(skip)]
4555    #[cfg(feature = "extra-children")]
4556    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4557}
4558
4559#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4560pub struct CTHandoutMasterIdListEntry {
4561    #[serde(rename = "extLst")]
4562    #[serde(default, skip_serializing_if = "Option::is_none")]
4563    pub ext_lst: Option<Box<CTExtensionList>>,
4564    /// Unknown child elements captured for roundtrip fidelity.
4565    #[cfg(feature = "extra-children")]
4566    #[serde(skip)]
4567    #[cfg(feature = "extra-children")]
4568    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4569}
4570
4571#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4572pub struct CTHandoutMasterIdList {
4573    #[serde(rename = "handoutMasterId")]
4574    #[serde(default, skip_serializing_if = "Option::is_none")]
4575    pub handout_master_id: Option<Box<CTHandoutMasterIdListEntry>>,
4576    /// Unknown child elements captured for roundtrip fidelity.
4577    #[cfg(feature = "extra-children")]
4578    #[serde(skip)]
4579    #[cfg(feature = "extra-children")]
4580    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4581}
4582
4583#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4584pub struct CTEmbeddedFontDataId {
4585    /// Unknown child elements captured for roundtrip fidelity.
4586    #[cfg(feature = "extra-children")]
4587    #[serde(skip)]
4588    #[cfg(feature = "extra-children")]
4589    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4590}
4591
4592#[derive(Debug, Clone, Serialize, Deserialize)]
4593pub struct CTEmbeddedFontListEntry {
4594    #[serde(rename = "font")]
4595    pub font: Box<ooxml_dml::types::TextFont>,
4596    #[serde(rename = "regular")]
4597    #[serde(default, skip_serializing_if = "Option::is_none")]
4598    pub regular: Option<Box<CTEmbeddedFontDataId>>,
4599    #[serde(rename = "bold")]
4600    #[serde(default, skip_serializing_if = "Option::is_none")]
4601    pub bold: Option<Box<CTEmbeddedFontDataId>>,
4602    #[serde(rename = "italic")]
4603    #[serde(default, skip_serializing_if = "Option::is_none")]
4604    pub italic: Option<Box<CTEmbeddedFontDataId>>,
4605    #[serde(rename = "boldItalic")]
4606    #[serde(default, skip_serializing_if = "Option::is_none")]
4607    pub bold_italic: Option<Box<CTEmbeddedFontDataId>>,
4608    /// Unknown child elements captured for roundtrip fidelity.
4609    #[cfg(feature = "extra-children")]
4610    #[serde(skip)]
4611    #[cfg(feature = "extra-children")]
4612    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4613}
4614
4615#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4616pub struct CTEmbeddedFontList {
4617    #[serde(rename = "embeddedFont")]
4618    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4619    pub embedded_font: Vec<CTEmbeddedFontListEntry>,
4620    /// Unknown child elements captured for roundtrip fidelity.
4621    #[cfg(feature = "extra-children")]
4622    #[serde(skip)]
4623    #[cfg(feature = "extra-children")]
4624    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4625}
4626
4627#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4628pub struct CTSmartTags {
4629    /// Unknown child elements captured for roundtrip fidelity.
4630    #[cfg(feature = "extra-children")]
4631    #[serde(skip)]
4632    #[cfg(feature = "extra-children")]
4633    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4634}
4635
4636#[derive(Debug, Clone, Serialize, Deserialize)]
4637pub struct CTCustomShow {
4638    #[serde(rename = "@name")]
4639    pub name: STName,
4640    #[serde(rename = "@id")]
4641    pub id: u32,
4642    #[serde(rename = "sldLst")]
4643    pub sld_lst: Box<CTSlideRelationshipList>,
4644    #[serde(rename = "extLst")]
4645    #[serde(default, skip_serializing_if = "Option::is_none")]
4646    pub ext_lst: Option<Box<CTExtensionList>>,
4647    /// Unknown attributes captured for roundtrip fidelity.
4648    #[cfg(feature = "extra-attrs")]
4649    #[serde(skip)]
4650    #[cfg(feature = "extra-attrs")]
4651    #[serde(default)]
4652    #[cfg(feature = "extra-attrs")]
4653    pub extra_attrs: std::collections::HashMap<String, String>,
4654    /// Unknown child elements captured for roundtrip fidelity.
4655    #[cfg(feature = "extra-children")]
4656    #[serde(skip)]
4657    #[cfg(feature = "extra-children")]
4658    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4659}
4660
4661#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4662pub struct CTCustomShowList {
4663    #[serde(rename = "custShow")]
4664    #[serde(default, skip_serializing_if = "Vec::is_empty")]
4665    pub cust_show: Vec<CTCustomShow>,
4666    /// Unknown child elements captured for roundtrip fidelity.
4667    #[cfg(feature = "extra-children")]
4668    #[serde(skip)]
4669    #[cfg(feature = "extra-children")]
4670    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4671}
4672
4673#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4674pub struct CTPhotoAlbum {
4675    #[serde(rename = "@bw")]
4676    #[serde(
4677        default,
4678        skip_serializing_if = "Option::is_none",
4679        with = "ooxml_xml::ooxml_bool"
4680    )]
4681    pub bw: Option<bool>,
4682    #[serde(rename = "@showCaptions")]
4683    #[serde(
4684        default,
4685        skip_serializing_if = "Option::is_none",
4686        with = "ooxml_xml::ooxml_bool"
4687    )]
4688    pub show_captions: Option<bool>,
4689    #[serde(rename = "@layout")]
4690    #[serde(default, skip_serializing_if = "Option::is_none")]
4691    pub layout: Option<STPhotoAlbumLayout>,
4692    #[serde(rename = "@frame")]
4693    #[serde(default, skip_serializing_if = "Option::is_none")]
4694    pub frame: Option<STPhotoAlbumFrameShape>,
4695    #[serde(rename = "extLst")]
4696    #[serde(default, skip_serializing_if = "Option::is_none")]
4697    pub ext_lst: Option<Box<CTExtensionList>>,
4698    /// Unknown attributes captured for roundtrip fidelity.
4699    #[cfg(feature = "extra-attrs")]
4700    #[serde(skip)]
4701    #[cfg(feature = "extra-attrs")]
4702    #[serde(default)]
4703    #[cfg(feature = "extra-attrs")]
4704    pub extra_attrs: std::collections::HashMap<String, String>,
4705    /// Unknown child elements captured for roundtrip fidelity.
4706    #[cfg(feature = "extra-children")]
4707    #[serde(skip)]
4708    #[cfg(feature = "extra-children")]
4709    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4710}
4711
4712#[derive(Debug, Clone, Serialize, Deserialize)]
4713pub struct CTSlideSize {
4714    #[serde(rename = "@cx")]
4715    pub cx: STSlideSizeCoordinate,
4716    #[serde(rename = "@cy")]
4717    pub cy: STSlideSizeCoordinate,
4718    #[serde(rename = "@type")]
4719    #[serde(default, skip_serializing_if = "Option::is_none")]
4720    pub r#type: Option<STSlideSizeType>,
4721    /// Unknown attributes captured for roundtrip fidelity.
4722    #[cfg(feature = "extra-attrs")]
4723    #[serde(skip)]
4724    #[cfg(feature = "extra-attrs")]
4725    #[serde(default)]
4726    #[cfg(feature = "extra-attrs")]
4727    pub extra_attrs: std::collections::HashMap<String, String>,
4728}
4729
4730#[derive(Debug, Clone, Serialize, Deserialize)]
4731pub struct CTKinsoku {
4732    #[serde(rename = "@lang")]
4733    #[serde(default, skip_serializing_if = "Option::is_none")]
4734    pub lang: Option<String>,
4735    #[serde(rename = "@invalStChars")]
4736    pub inval_st_chars: String,
4737    #[serde(rename = "@invalEndChars")]
4738    pub inval_end_chars: String,
4739    /// Unknown attributes captured for roundtrip fidelity.
4740    #[cfg(feature = "extra-attrs")]
4741    #[serde(skip)]
4742    #[cfg(feature = "extra-attrs")]
4743    #[serde(default)]
4744    #[cfg(feature = "extra-attrs")]
4745    pub extra_attrs: std::collections::HashMap<String, String>,
4746}
4747
4748#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4749pub struct CTModifyVerifier {
4750    #[serde(rename = "@algorithmName")]
4751    #[serde(default, skip_serializing_if = "Option::is_none")]
4752    pub algorithm_name: Option<String>,
4753    #[serde(rename = "@hashValue")]
4754    #[serde(default, skip_serializing_if = "Option::is_none")]
4755    pub hash_value: Option<Vec<u8>>,
4756    #[serde(rename = "@saltValue")]
4757    #[serde(default, skip_serializing_if = "Option::is_none")]
4758    pub salt_value: Option<Vec<u8>>,
4759    #[serde(rename = "@spinValue")]
4760    #[serde(default, skip_serializing_if = "Option::is_none")]
4761    pub spin_value: Option<u32>,
4762    #[serde(rename = "@cryptProviderType")]
4763    #[serde(default, skip_serializing_if = "Option::is_none")]
4764    pub crypt_provider_type: Option<STCryptProv>,
4765    #[serde(rename = "@cryptAlgorithmClass")]
4766    #[serde(default, skip_serializing_if = "Option::is_none")]
4767    pub crypt_algorithm_class: Option<STAlgClass>,
4768    #[serde(rename = "@cryptAlgorithmType")]
4769    #[serde(default, skip_serializing_if = "Option::is_none")]
4770    pub crypt_algorithm_type: Option<STAlgType>,
4771    #[serde(rename = "@cryptAlgorithmSid")]
4772    #[serde(default, skip_serializing_if = "Option::is_none")]
4773    pub crypt_algorithm_sid: Option<u32>,
4774    #[serde(rename = "@spinCount")]
4775    #[serde(default, skip_serializing_if = "Option::is_none")]
4776    pub spin_count: Option<u32>,
4777    #[serde(rename = "@saltData")]
4778    #[serde(default, skip_serializing_if = "Option::is_none")]
4779    pub salt_data: Option<Vec<u8>>,
4780    #[serde(rename = "@hashData")]
4781    #[serde(default, skip_serializing_if = "Option::is_none")]
4782    pub hash_data: Option<Vec<u8>>,
4783    #[serde(rename = "@cryptProvider")]
4784    #[serde(default, skip_serializing_if = "Option::is_none")]
4785    pub crypt_provider: Option<String>,
4786    #[serde(rename = "@algIdExt")]
4787    #[serde(default, skip_serializing_if = "Option::is_none")]
4788    pub alg_id_ext: Option<u32>,
4789    #[serde(rename = "@algIdExtSource")]
4790    #[serde(default, skip_serializing_if = "Option::is_none")]
4791    pub alg_id_ext_source: Option<String>,
4792    #[serde(rename = "@cryptProviderTypeExt")]
4793    #[serde(default, skip_serializing_if = "Option::is_none")]
4794    pub crypt_provider_type_ext: Option<u32>,
4795    #[serde(rename = "@cryptProviderTypeExtSource")]
4796    #[serde(default, skip_serializing_if = "Option::is_none")]
4797    pub crypt_provider_type_ext_source: Option<String>,
4798    /// Unknown attributes captured for roundtrip fidelity.
4799    #[cfg(feature = "extra-attrs")]
4800    #[serde(skip)]
4801    #[cfg(feature = "extra-attrs")]
4802    #[serde(default)]
4803    #[cfg(feature = "extra-attrs")]
4804    pub extra_attrs: std::collections::HashMap<String, String>,
4805}
4806
4807#[derive(Debug, Clone, Serialize, Deserialize)]
4808pub struct Presentation {
4809    #[cfg(feature = "pml-styling")]
4810    #[serde(rename = "@serverZoom")]
4811    #[serde(default, skip_serializing_if = "Option::is_none")]
4812    pub server_zoom: Option<ooxml_dml::types::STPercentage>,
4813    #[serde(rename = "@firstSlideNum")]
4814    #[serde(default, skip_serializing_if = "Option::is_none")]
4815    pub first_slide_num: Option<i32>,
4816    #[cfg(feature = "pml-styling")]
4817    #[serde(rename = "@showSpecialPlsOnTitleSld")]
4818    #[serde(
4819        default,
4820        skip_serializing_if = "Option::is_none",
4821        with = "ooxml_xml::ooxml_bool"
4822    )]
4823    pub show_special_pls_on_title_sld: Option<bool>,
4824    #[cfg(feature = "pml-styling")]
4825    #[serde(rename = "@rtl")]
4826    #[serde(
4827        default,
4828        skip_serializing_if = "Option::is_none",
4829        with = "ooxml_xml::ooxml_bool"
4830    )]
4831    pub rtl: Option<bool>,
4832    #[serde(rename = "@removePersonalInfoOnSave")]
4833    #[serde(
4834        default,
4835        skip_serializing_if = "Option::is_none",
4836        with = "ooxml_xml::ooxml_bool"
4837    )]
4838    pub remove_personal_info_on_save: Option<bool>,
4839    #[serde(rename = "@compatMode")]
4840    #[serde(
4841        default,
4842        skip_serializing_if = "Option::is_none",
4843        with = "ooxml_xml::ooxml_bool"
4844    )]
4845    pub compat_mode: Option<bool>,
4846    #[cfg(feature = "pml-styling")]
4847    #[serde(rename = "@strictFirstAndLastChars")]
4848    #[serde(
4849        default,
4850        skip_serializing_if = "Option::is_none",
4851        with = "ooxml_xml::ooxml_bool"
4852    )]
4853    pub strict_first_and_last_chars: Option<bool>,
4854    #[cfg(feature = "pml-styling")]
4855    #[serde(rename = "@embedTrueTypeFonts")]
4856    #[serde(
4857        default,
4858        skip_serializing_if = "Option::is_none",
4859        with = "ooxml_xml::ooxml_bool"
4860    )]
4861    pub embed_true_type_fonts: Option<bool>,
4862    #[cfg(feature = "pml-styling")]
4863    #[serde(rename = "@saveSubsetFonts")]
4864    #[serde(
4865        default,
4866        skip_serializing_if = "Option::is_none",
4867        with = "ooxml_xml::ooxml_bool"
4868    )]
4869    pub save_subset_fonts: Option<bool>,
4870    #[cfg(feature = "pml-styling")]
4871    #[serde(rename = "@autoCompressPictures")]
4872    #[serde(
4873        default,
4874        skip_serializing_if = "Option::is_none",
4875        with = "ooxml_xml::ooxml_bool"
4876    )]
4877    pub auto_compress_pictures: Option<bool>,
4878    #[serde(rename = "@bookmarkIdSeed")]
4879    #[serde(default, skip_serializing_if = "Option::is_none")]
4880    pub bookmark_id_seed: Option<STBookmarkIdSeed>,
4881    #[serde(rename = "@conformance")]
4882    #[serde(default, skip_serializing_if = "Option::is_none")]
4883    pub conformance: Option<STConformanceClass>,
4884    #[serde(rename = "sldMasterIdLst")]
4885    #[serde(default, skip_serializing_if = "Option::is_none")]
4886    pub sld_master_id_lst: Option<Box<CTSlideMasterIdList>>,
4887    #[cfg(feature = "pml-notes")]
4888    #[serde(rename = "notesMasterIdLst")]
4889    #[serde(default, skip_serializing_if = "Option::is_none")]
4890    pub notes_master_id_lst: Option<Box<CTNotesMasterIdList>>,
4891    #[cfg(feature = "pml-masters")]
4892    #[serde(rename = "handoutMasterIdLst")]
4893    #[serde(default, skip_serializing_if = "Option::is_none")]
4894    pub handout_master_id_lst: Option<Box<CTHandoutMasterIdList>>,
4895    #[serde(rename = "sldIdLst")]
4896    #[serde(default, skip_serializing_if = "Option::is_none")]
4897    pub sld_id_lst: Option<Box<SlideIdList>>,
4898    #[serde(rename = "sldSz")]
4899    #[serde(default, skip_serializing_if = "Option::is_none")]
4900    pub sld_sz: Option<Box<CTSlideSize>>,
4901    #[cfg(feature = "pml-notes")]
4902    #[serde(rename = "notesSz")]
4903    pub notes_sz: Box<ooxml_dml::types::PositiveSize2D>,
4904    #[cfg(feature = "pml-external")]
4905    #[serde(rename = "smartTags")]
4906    #[serde(default, skip_serializing_if = "Option::is_none")]
4907    pub smart_tags: Option<Box<CTSmartTags>>,
4908    #[cfg(feature = "pml-styling")]
4909    #[serde(rename = "embeddedFontLst")]
4910    #[serde(default, skip_serializing_if = "Option::is_none")]
4911    pub embedded_font_lst: Option<Box<CTEmbeddedFontList>>,
4912    #[serde(rename = "custShowLst")]
4913    #[serde(default, skip_serializing_if = "Option::is_none")]
4914    pub cust_show_lst: Option<Box<CTCustomShowList>>,
4915    #[cfg(feature = "pml-media")]
4916    #[serde(rename = "photoAlbum")]
4917    #[serde(default, skip_serializing_if = "Option::is_none")]
4918    pub photo_album: Option<Box<CTPhotoAlbum>>,
4919    #[cfg(feature = "pml-external")]
4920    #[serde(rename = "custDataLst")]
4921    #[serde(default, skip_serializing_if = "Option::is_none")]
4922    pub cust_data_lst: Option<Box<CTCustomerDataList>>,
4923    #[cfg(feature = "pml-styling")]
4924    #[serde(rename = "kinsoku")]
4925    #[serde(default, skip_serializing_if = "Option::is_none")]
4926    pub kinsoku: Option<Box<CTKinsoku>>,
4927    #[cfg(feature = "pml-styling")]
4928    #[serde(rename = "defaultTextStyle")]
4929    #[serde(default, skip_serializing_if = "Option::is_none")]
4930    pub default_text_style: Option<Box<ooxml_dml::types::CTTextListStyle>>,
4931    #[serde(rename = "modifyVerifier")]
4932    #[serde(default, skip_serializing_if = "Option::is_none")]
4933    pub modify_verifier: Option<Box<CTModifyVerifier>>,
4934    #[cfg(feature = "pml-extensions")]
4935    #[serde(rename = "extLst")]
4936    #[serde(default, skip_serializing_if = "Option::is_none")]
4937    pub ext_lst: Option<Box<CTExtensionList>>,
4938    /// Unknown attributes captured for roundtrip fidelity.
4939    #[cfg(feature = "extra-attrs")]
4940    #[serde(skip)]
4941    #[cfg(feature = "extra-attrs")]
4942    #[serde(default)]
4943    #[cfg(feature = "extra-attrs")]
4944    pub extra_attrs: std::collections::HashMap<String, String>,
4945    /// Unknown child elements captured for roundtrip fidelity.
4946    #[cfg(feature = "extra-children")]
4947    #[serde(skip)]
4948    #[cfg(feature = "extra-children")]
4949    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4950}
4951
4952pub type PPresentation = Box<Presentation>;
4953
4954#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4955pub struct CTHtmlPublishProperties {
4956    #[serde(rename = "@showSpeakerNotes")]
4957    #[serde(
4958        default,
4959        skip_serializing_if = "Option::is_none",
4960        with = "ooxml_xml::ooxml_bool"
4961    )]
4962    pub show_speaker_notes: Option<bool>,
4963    #[serde(rename = "@target")]
4964    #[serde(default, skip_serializing_if = "Option::is_none")]
4965    pub target: Option<String>,
4966    #[serde(rename = "@title")]
4967    #[serde(default, skip_serializing_if = "Option::is_none")]
4968    pub title: Option<String>,
4969    #[serde(skip)]
4970    #[serde(default)]
4971    pub slide_list_choice: Option<Box<EGSlideListChoice>>,
4972    #[serde(rename = "extLst")]
4973    #[serde(default, skip_serializing_if = "Option::is_none")]
4974    pub ext_lst: Option<Box<CTExtensionList>>,
4975    /// Unknown attributes captured for roundtrip fidelity.
4976    #[cfg(feature = "extra-attrs")]
4977    #[serde(skip)]
4978    #[cfg(feature = "extra-attrs")]
4979    #[serde(default)]
4980    #[cfg(feature = "extra-attrs")]
4981    pub extra_attrs: std::collections::HashMap<String, String>,
4982    /// Unknown child elements captured for roundtrip fidelity.
4983    #[cfg(feature = "extra-children")]
4984    #[serde(skip)]
4985    #[cfg(feature = "extra-children")]
4986    pub extra_children: Vec<ooxml_xml::PositionedNode>,
4987}
4988
4989#[derive(Debug, Clone, Default, Serialize, Deserialize)]
4990pub struct CTWebProperties {
4991    #[serde(rename = "@showAnimation")]
4992    #[serde(
4993        default,
4994        skip_serializing_if = "Option::is_none",
4995        with = "ooxml_xml::ooxml_bool"
4996    )]
4997    pub show_animation: Option<bool>,
4998    #[serde(rename = "@resizeGraphics")]
4999    #[serde(
5000        default,
5001        skip_serializing_if = "Option::is_none",
5002        with = "ooxml_xml::ooxml_bool"
5003    )]
5004    pub resize_graphics: Option<bool>,
5005    #[serde(rename = "@allowPng")]
5006    #[serde(
5007        default,
5008        skip_serializing_if = "Option::is_none",
5009        with = "ooxml_xml::ooxml_bool"
5010    )]
5011    pub allow_png: Option<bool>,
5012    #[serde(rename = "@relyOnVml")]
5013    #[serde(
5014        default,
5015        skip_serializing_if = "Option::is_none",
5016        with = "ooxml_xml::ooxml_bool"
5017    )]
5018    pub rely_on_vml: Option<bool>,
5019    #[serde(rename = "@organizeInFolders")]
5020    #[serde(
5021        default,
5022        skip_serializing_if = "Option::is_none",
5023        with = "ooxml_xml::ooxml_bool"
5024    )]
5025    pub organize_in_folders: Option<bool>,
5026    #[serde(rename = "@useLongFilenames")]
5027    #[serde(
5028        default,
5029        skip_serializing_if = "Option::is_none",
5030        with = "ooxml_xml::ooxml_bool"
5031    )]
5032    pub use_long_filenames: Option<bool>,
5033    #[serde(rename = "@imgSz")]
5034    #[serde(default, skip_serializing_if = "Option::is_none")]
5035    pub img_sz: Option<STWebScreenSize>,
5036    #[serde(rename = "@encoding")]
5037    #[serde(default, skip_serializing_if = "Option::is_none")]
5038    pub encoding: Option<STWebEncoding>,
5039    #[serde(rename = "@clr")]
5040    #[serde(default, skip_serializing_if = "Option::is_none")]
5041    pub clr: Option<STWebColorType>,
5042    #[serde(rename = "extLst")]
5043    #[serde(default, skip_serializing_if = "Option::is_none")]
5044    pub ext_lst: Option<Box<CTExtensionList>>,
5045    /// Unknown attributes captured for roundtrip fidelity.
5046    #[cfg(feature = "extra-attrs")]
5047    #[serde(skip)]
5048    #[cfg(feature = "extra-attrs")]
5049    #[serde(default)]
5050    #[cfg(feature = "extra-attrs")]
5051    pub extra_attrs: std::collections::HashMap<String, String>,
5052    /// Unknown child elements captured for roundtrip fidelity.
5053    #[cfg(feature = "extra-children")]
5054    #[serde(skip)]
5055    #[cfg(feature = "extra-children")]
5056    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5057}
5058
5059#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5060pub struct CTPrintProperties {
5061    #[serde(rename = "@prnWhat")]
5062    #[serde(default, skip_serializing_if = "Option::is_none")]
5063    pub prn_what: Option<STPrintWhat>,
5064    #[serde(rename = "@clrMode")]
5065    #[serde(default, skip_serializing_if = "Option::is_none")]
5066    pub clr_mode: Option<STPrintColorMode>,
5067    #[serde(rename = "@hiddenSlides")]
5068    #[serde(
5069        default,
5070        skip_serializing_if = "Option::is_none",
5071        with = "ooxml_xml::ooxml_bool"
5072    )]
5073    pub hidden_slides: Option<bool>,
5074    #[serde(rename = "@scaleToFitPaper")]
5075    #[serde(
5076        default,
5077        skip_serializing_if = "Option::is_none",
5078        with = "ooxml_xml::ooxml_bool"
5079    )]
5080    pub scale_to_fit_paper: Option<bool>,
5081    #[serde(rename = "@frameSlides")]
5082    #[serde(
5083        default,
5084        skip_serializing_if = "Option::is_none",
5085        with = "ooxml_xml::ooxml_bool"
5086    )]
5087    pub frame_slides: Option<bool>,
5088    #[serde(rename = "extLst")]
5089    #[serde(default, skip_serializing_if = "Option::is_none")]
5090    pub ext_lst: Option<Box<CTExtensionList>>,
5091    /// Unknown attributes captured for roundtrip fidelity.
5092    #[cfg(feature = "extra-attrs")]
5093    #[serde(skip)]
5094    #[cfg(feature = "extra-attrs")]
5095    #[serde(default)]
5096    #[cfg(feature = "extra-attrs")]
5097    pub extra_attrs: std::collections::HashMap<String, String>,
5098    /// Unknown child elements captured for roundtrip fidelity.
5099    #[cfg(feature = "extra-children")]
5100    #[serde(skip)]
5101    #[cfg(feature = "extra-children")]
5102    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5103}
5104
5105#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5106pub struct CTShowInfoBrowse {
5107    #[serde(rename = "@showScrollbar")]
5108    #[serde(
5109        default,
5110        skip_serializing_if = "Option::is_none",
5111        with = "ooxml_xml::ooxml_bool"
5112    )]
5113    pub show_scrollbar: Option<bool>,
5114    /// Unknown attributes captured for roundtrip fidelity.
5115    #[cfg(feature = "extra-attrs")]
5116    #[serde(skip)]
5117    #[cfg(feature = "extra-attrs")]
5118    #[serde(default)]
5119    #[cfg(feature = "extra-attrs")]
5120    pub extra_attrs: std::collections::HashMap<String, String>,
5121}
5122
5123#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5124pub struct CTShowInfoKiosk {
5125    #[serde(rename = "@restart")]
5126    #[serde(default, skip_serializing_if = "Option::is_none")]
5127    pub restart: Option<u32>,
5128    /// Unknown attributes captured for roundtrip fidelity.
5129    #[cfg(feature = "extra-attrs")]
5130    #[serde(skip)]
5131    #[cfg(feature = "extra-attrs")]
5132    #[serde(default)]
5133    #[cfg(feature = "extra-attrs")]
5134    pub extra_attrs: std::collections::HashMap<String, String>,
5135}
5136
5137#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5138pub struct CTShowProperties {
5139    #[serde(rename = "@loop")]
5140    #[serde(
5141        default,
5142        skip_serializing_if = "Option::is_none",
5143        with = "ooxml_xml::ooxml_bool"
5144    )]
5145    pub r#loop: Option<bool>,
5146    #[serde(rename = "@showNarration")]
5147    #[serde(
5148        default,
5149        skip_serializing_if = "Option::is_none",
5150        with = "ooxml_xml::ooxml_bool"
5151    )]
5152    pub show_narration: Option<bool>,
5153    #[serde(rename = "@showAnimation")]
5154    #[serde(
5155        default,
5156        skip_serializing_if = "Option::is_none",
5157        with = "ooxml_xml::ooxml_bool"
5158    )]
5159    pub show_animation: Option<bool>,
5160    #[serde(rename = "@useTimings")]
5161    #[serde(
5162        default,
5163        skip_serializing_if = "Option::is_none",
5164        with = "ooxml_xml::ooxml_bool"
5165    )]
5166    pub use_timings: Option<bool>,
5167    #[serde(skip)]
5168    #[serde(default)]
5169    pub show_type: Option<Box<EGShowType>>,
5170    #[serde(skip)]
5171    #[serde(default)]
5172    pub slide_list_choice: Option<Box<EGSlideListChoice>>,
5173    #[serde(rename = "penClr")]
5174    #[serde(default, skip_serializing_if = "Option::is_none")]
5175    pub pen_clr: Option<Box<ooxml_dml::types::CTColor>>,
5176    #[serde(rename = "extLst")]
5177    #[serde(default, skip_serializing_if = "Option::is_none")]
5178    pub ext_lst: Option<Box<CTExtensionList>>,
5179    /// Unknown attributes captured for roundtrip fidelity.
5180    #[cfg(feature = "extra-attrs")]
5181    #[serde(skip)]
5182    #[cfg(feature = "extra-attrs")]
5183    #[serde(default)]
5184    #[cfg(feature = "extra-attrs")]
5185    pub extra_attrs: std::collections::HashMap<String, String>,
5186    /// Unknown child elements captured for roundtrip fidelity.
5187    #[cfg(feature = "extra-children")]
5188    #[serde(skip)]
5189    #[cfg(feature = "extra-children")]
5190    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5191}
5192
5193#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5194pub struct CTPresentationProperties {
5195    #[cfg(feature = "pml-external")]
5196    #[serde(rename = "htmlPubPr")]
5197    #[serde(default, skip_serializing_if = "Option::is_none")]
5198    pub html_pub_pr: Option<Box<CTHtmlPublishProperties>>,
5199    #[cfg(feature = "pml-external")]
5200    #[serde(rename = "webPr")]
5201    #[serde(default, skip_serializing_if = "Option::is_none")]
5202    pub web_pr: Option<Box<CTWebProperties>>,
5203    #[serde(rename = "prnPr")]
5204    #[serde(default, skip_serializing_if = "Option::is_none")]
5205    pub prn_pr: Option<Box<CTPrintProperties>>,
5206    #[serde(rename = "showPr")]
5207    #[serde(default, skip_serializing_if = "Option::is_none")]
5208    pub show_pr: Option<Box<CTShowProperties>>,
5209    #[cfg(feature = "pml-styling")]
5210    #[serde(rename = "clrMru")]
5211    #[serde(default, skip_serializing_if = "Option::is_none")]
5212    pub clr_mru: Option<Box<ooxml_dml::types::CTColorMRU>>,
5213    #[cfg(feature = "pml-extensions")]
5214    #[serde(rename = "extLst")]
5215    #[serde(default, skip_serializing_if = "Option::is_none")]
5216    pub ext_lst: Option<Box<CTExtensionList>>,
5217    /// Unknown child elements captured for roundtrip fidelity.
5218    #[cfg(feature = "extra-children")]
5219    #[serde(skip)]
5220    #[cfg(feature = "extra-children")]
5221    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5222}
5223
5224pub type PPresentationPr = Box<CTPresentationProperties>;
5225
5226#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5227pub struct CTHeaderFooter {
5228    #[cfg(feature = "pml-masters")]
5229    #[serde(rename = "@sldNum")]
5230    #[serde(
5231        default,
5232        skip_serializing_if = "Option::is_none",
5233        with = "ooxml_xml::ooxml_bool"
5234    )]
5235    pub sld_num: Option<bool>,
5236    #[cfg(feature = "pml-masters")]
5237    #[serde(rename = "@hdr")]
5238    #[serde(
5239        default,
5240        skip_serializing_if = "Option::is_none",
5241        with = "ooxml_xml::ooxml_bool"
5242    )]
5243    pub hdr: Option<bool>,
5244    #[cfg(feature = "pml-masters")]
5245    #[serde(rename = "@ftr")]
5246    #[serde(
5247        default,
5248        skip_serializing_if = "Option::is_none",
5249        with = "ooxml_xml::ooxml_bool"
5250    )]
5251    pub ftr: Option<bool>,
5252    #[cfg(feature = "pml-masters")]
5253    #[serde(rename = "@dt")]
5254    #[serde(
5255        default,
5256        skip_serializing_if = "Option::is_none",
5257        with = "ooxml_xml::ooxml_bool"
5258    )]
5259    pub dt: Option<bool>,
5260    #[serde(rename = "extLst")]
5261    #[serde(default, skip_serializing_if = "Option::is_none")]
5262    pub ext_lst: Option<Box<CTExtensionListModify>>,
5263    /// Unknown attributes captured for roundtrip fidelity.
5264    #[cfg(feature = "extra-attrs")]
5265    #[serde(skip)]
5266    #[cfg(feature = "extra-attrs")]
5267    #[serde(default)]
5268    #[cfg(feature = "extra-attrs")]
5269    pub extra_attrs: std::collections::HashMap<String, String>,
5270    /// Unknown child elements captured for roundtrip fidelity.
5271    #[cfg(feature = "extra-children")]
5272    #[serde(skip)]
5273    #[cfg(feature = "extra-children")]
5274    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5275}
5276
5277#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5278pub struct CTPlaceholder {
5279    #[serde(rename = "@type")]
5280    #[serde(default, skip_serializing_if = "Option::is_none")]
5281    pub r#type: Option<STPlaceholderType>,
5282    #[serde(rename = "@orient")]
5283    #[serde(default, skip_serializing_if = "Option::is_none")]
5284    pub orient: Option<STDirection>,
5285    #[serde(rename = "@sz")]
5286    #[serde(default, skip_serializing_if = "Option::is_none")]
5287    pub sz: Option<STPlaceholderSize>,
5288    #[serde(rename = "@idx")]
5289    #[serde(default, skip_serializing_if = "Option::is_none")]
5290    pub idx: Option<u32>,
5291    #[serde(rename = "@hasCustomPrompt")]
5292    #[serde(
5293        default,
5294        skip_serializing_if = "Option::is_none",
5295        with = "ooxml_xml::ooxml_bool"
5296    )]
5297    pub has_custom_prompt: Option<bool>,
5298    #[serde(rename = "extLst")]
5299    #[serde(default, skip_serializing_if = "Option::is_none")]
5300    pub ext_lst: Option<Box<CTExtensionListModify>>,
5301    /// Unknown attributes captured for roundtrip fidelity.
5302    #[cfg(feature = "extra-attrs")]
5303    #[serde(skip)]
5304    #[cfg(feature = "extra-attrs")]
5305    #[serde(default)]
5306    #[cfg(feature = "extra-attrs")]
5307    pub extra_attrs: std::collections::HashMap<String, String>,
5308    /// Unknown child elements captured for roundtrip fidelity.
5309    #[cfg(feature = "extra-children")]
5310    #[serde(skip)]
5311    #[cfg(feature = "extra-children")]
5312    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5313}
5314
5315#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5316pub struct CTApplicationNonVisualDrawingProps {
5317    #[serde(rename = "@isPhoto")]
5318    #[serde(
5319        default,
5320        skip_serializing_if = "Option::is_none",
5321        with = "ooxml_xml::ooxml_bool"
5322    )]
5323    pub is_photo: Option<bool>,
5324    #[serde(rename = "@userDrawn")]
5325    #[serde(
5326        default,
5327        skip_serializing_if = "Option::is_none",
5328        with = "ooxml_xml::ooxml_bool"
5329    )]
5330    pub user_drawn: Option<bool>,
5331    #[serde(rename = "ph")]
5332    #[serde(default, skip_serializing_if = "Option::is_none")]
5333    pub ph: Option<Box<CTPlaceholder>>,
5334    #[serde(rename = "custDataLst")]
5335    #[serde(default, skip_serializing_if = "Option::is_none")]
5336    pub cust_data_lst: Option<Box<CTCustomerDataList>>,
5337    #[serde(rename = "extLst")]
5338    #[serde(default, skip_serializing_if = "Option::is_none")]
5339    pub ext_lst: Option<Box<CTExtensionList>>,
5340    /// Unknown attributes captured for roundtrip fidelity.
5341    #[cfg(feature = "extra-attrs")]
5342    #[serde(skip)]
5343    #[cfg(feature = "extra-attrs")]
5344    #[serde(default)]
5345    #[cfg(feature = "extra-attrs")]
5346    pub extra_attrs: std::collections::HashMap<String, String>,
5347    /// Unknown child elements captured for roundtrip fidelity.
5348    #[cfg(feature = "extra-children")]
5349    #[serde(skip)]
5350    #[cfg(feature = "extra-children")]
5351    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5352}
5353
5354#[derive(Debug, Clone, Serialize, Deserialize)]
5355pub struct ShapeNonVisual {
5356    #[serde(rename = "cNvPr")]
5357    pub c_nv_pr: Box<ooxml_dml::types::CTNonVisualDrawingProps>,
5358    #[serde(rename = "cNvSpPr")]
5359    pub c_nv_sp_pr: Box<ooxml_dml::types::CTNonVisualDrawingShapeProps>,
5360    #[serde(rename = "nvPr")]
5361    pub nv_pr: Box<CTApplicationNonVisualDrawingProps>,
5362    /// Unknown child elements captured for roundtrip fidelity.
5363    #[cfg(feature = "extra-children")]
5364    #[serde(skip)]
5365    #[cfg(feature = "extra-children")]
5366    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5367}
5368
5369#[derive(Debug, Clone, Serialize, Deserialize)]
5370pub struct Shape {
5371    #[cfg(feature = "pml-styling")]
5372    #[serde(rename = "@useBgFill")]
5373    #[serde(
5374        default,
5375        skip_serializing_if = "Option::is_none",
5376        with = "ooxml_xml::ooxml_bool"
5377    )]
5378    pub use_bg_fill: Option<bool>,
5379    #[serde(rename = "nvSpPr")]
5380    pub non_visual_properties: Box<ShapeNonVisual>,
5381    #[serde(rename = "spPr")]
5382    pub shape_properties: Box<ooxml_dml::types::CTShapeProperties>,
5383    #[cfg(feature = "pml-styling")]
5384    #[serde(rename = "style")]
5385    #[serde(default, skip_serializing_if = "Option::is_none")]
5386    pub style: Option<Box<ooxml_dml::types::ShapeStyle>>,
5387    #[serde(rename = "txBody")]
5388    #[serde(default, skip_serializing_if = "Option::is_none")]
5389    pub text_body: Option<Box<ooxml_dml::types::TextBody>>,
5390    #[cfg(feature = "pml-extensions")]
5391    #[serde(rename = "extLst")]
5392    #[serde(default, skip_serializing_if = "Option::is_none")]
5393    pub ext_lst: Option<Box<CTExtensionListModify>>,
5394    /// Unknown attributes captured for roundtrip fidelity.
5395    #[cfg(feature = "extra-attrs")]
5396    #[serde(skip)]
5397    #[cfg(feature = "extra-attrs")]
5398    #[serde(default)]
5399    #[cfg(feature = "extra-attrs")]
5400    pub extra_attrs: std::collections::HashMap<String, String>,
5401    /// Unknown child elements captured for roundtrip fidelity.
5402    #[cfg(feature = "extra-children")]
5403    #[serde(skip)]
5404    #[cfg(feature = "extra-children")]
5405    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5406}
5407
5408#[derive(Debug, Clone, Serialize, Deserialize)]
5409pub struct CTConnectorNonVisual {
5410    #[serde(rename = "cNvPr")]
5411    pub c_nv_pr: Box<ooxml_dml::types::CTNonVisualDrawingProps>,
5412    #[serde(rename = "cNvCxnSpPr")]
5413    pub c_nv_cxn_sp_pr: Box<ooxml_dml::types::CTNonVisualConnectorProperties>,
5414    #[serde(rename = "nvPr")]
5415    pub nv_pr: Box<CTApplicationNonVisualDrawingProps>,
5416    /// Unknown child elements captured for roundtrip fidelity.
5417    #[cfg(feature = "extra-children")]
5418    #[serde(skip)]
5419    #[cfg(feature = "extra-children")]
5420    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5421}
5422
5423#[derive(Debug, Clone, Serialize, Deserialize)]
5424pub struct Connector {
5425    #[serde(rename = "nvCxnSpPr")]
5426    pub non_visual_connector_properties: Box<CTConnectorNonVisual>,
5427    #[serde(rename = "spPr")]
5428    pub shape_properties: Box<ooxml_dml::types::CTShapeProperties>,
5429    #[cfg(feature = "pml-styling")]
5430    #[serde(rename = "style")]
5431    #[serde(default, skip_serializing_if = "Option::is_none")]
5432    pub style: Option<Box<ooxml_dml::types::ShapeStyle>>,
5433    #[cfg(feature = "pml-extensions")]
5434    #[serde(rename = "extLst")]
5435    #[serde(default, skip_serializing_if = "Option::is_none")]
5436    pub ext_lst: Option<Box<CTExtensionListModify>>,
5437    /// Unknown child elements captured for roundtrip fidelity.
5438    #[cfg(feature = "extra-children")]
5439    #[serde(skip)]
5440    #[cfg(feature = "extra-children")]
5441    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5442}
5443
5444#[derive(Debug, Clone, Serialize, Deserialize)]
5445pub struct CTPictureNonVisual {
5446    #[serde(rename = "cNvPr")]
5447    pub c_nv_pr: Box<ooxml_dml::types::CTNonVisualDrawingProps>,
5448    #[serde(rename = "cNvPicPr")]
5449    pub c_nv_pic_pr: Box<ooxml_dml::types::CTNonVisualPictureProperties>,
5450    #[serde(rename = "nvPr")]
5451    pub nv_pr: Box<CTApplicationNonVisualDrawingProps>,
5452    /// Unknown child elements captured for roundtrip fidelity.
5453    #[cfg(feature = "extra-children")]
5454    #[serde(skip)]
5455    #[cfg(feature = "extra-children")]
5456    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5457}
5458
5459#[derive(Debug, Clone, Serialize, Deserialize)]
5460pub struct Picture {
5461    #[serde(rename = "nvPicPr")]
5462    pub non_visual_picture_properties: Box<CTPictureNonVisual>,
5463    #[serde(rename = "blipFill")]
5464    pub blip_fill: Box<ooxml_dml::types::BlipFillProperties>,
5465    #[serde(rename = "spPr")]
5466    pub shape_properties: Box<ooxml_dml::types::CTShapeProperties>,
5467    #[cfg(feature = "pml-styling")]
5468    #[serde(rename = "style")]
5469    #[serde(default, skip_serializing_if = "Option::is_none")]
5470    pub style: Option<Box<ooxml_dml::types::ShapeStyle>>,
5471    #[cfg(feature = "pml-extensions")]
5472    #[serde(rename = "extLst")]
5473    #[serde(default, skip_serializing_if = "Option::is_none")]
5474    pub ext_lst: Option<Box<CTExtensionListModify>>,
5475    /// Unknown child elements captured for roundtrip fidelity.
5476    #[cfg(feature = "extra-children")]
5477    #[serde(skip)]
5478    #[cfg(feature = "extra-children")]
5479    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5480}
5481
5482#[derive(Debug, Clone, Serialize, Deserialize)]
5483pub struct CTGraphicalObjectFrameNonVisual {
5484    #[serde(rename = "cNvPr")]
5485    pub c_nv_pr: Box<ooxml_dml::types::CTNonVisualDrawingProps>,
5486    #[serde(rename = "cNvGraphicFramePr")]
5487    pub c_nv_graphic_frame_pr: Box<ooxml_dml::types::CTNonVisualGraphicFrameProperties>,
5488    #[serde(rename = "nvPr")]
5489    pub nv_pr: Box<CTApplicationNonVisualDrawingProps>,
5490    /// Unknown child elements captured for roundtrip fidelity.
5491    #[cfg(feature = "extra-children")]
5492    #[serde(skip)]
5493    #[cfg(feature = "extra-children")]
5494    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5495}
5496
5497#[derive(Debug, Clone, Serialize, Deserialize)]
5498pub struct GraphicalObjectFrame {
5499    #[cfg(feature = "pml-styling")]
5500    #[serde(rename = "@bwMode")]
5501    #[serde(default, skip_serializing_if = "Option::is_none")]
5502    pub bw_mode: Option<ooxml_dml::types::STBlackWhiteMode>,
5503    #[serde(rename = "nvGraphicFramePr")]
5504    pub nv_graphic_frame_pr: Box<CTGraphicalObjectFrameNonVisual>,
5505    #[serde(rename = "xfrm")]
5506    pub xfrm: Box<ooxml_dml::types::Transform2D>,
5507    #[cfg(feature = "pml-extensions")]
5508    #[serde(rename = "extLst")]
5509    #[serde(default, skip_serializing_if = "Option::is_none")]
5510    pub ext_lst: Option<Box<CTExtensionListModify>>,
5511    /// Unknown attributes captured for roundtrip fidelity.
5512    #[cfg(feature = "extra-attrs")]
5513    #[serde(skip)]
5514    #[cfg(feature = "extra-attrs")]
5515    #[serde(default)]
5516    #[cfg(feature = "extra-attrs")]
5517    pub extra_attrs: std::collections::HashMap<String, String>,
5518    /// Unknown child elements captured for roundtrip fidelity.
5519    #[cfg(feature = "extra-children")]
5520    #[serde(skip)]
5521    #[cfg(feature = "extra-children")]
5522    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5523}
5524
5525#[derive(Debug, Clone, Serialize, Deserialize)]
5526pub struct CTGroupShapeNonVisual {
5527    #[serde(rename = "cNvPr")]
5528    pub c_nv_pr: Box<ooxml_dml::types::CTNonVisualDrawingProps>,
5529    #[serde(rename = "cNvGrpSpPr")]
5530    pub c_nv_grp_sp_pr: Box<ooxml_dml::types::CTNonVisualGroupDrawingShapeProps>,
5531    #[serde(rename = "nvPr")]
5532    pub nv_pr: Box<CTApplicationNonVisualDrawingProps>,
5533    /// Unknown child elements captured for roundtrip fidelity.
5534    #[cfg(feature = "extra-children")]
5535    #[serde(skip)]
5536    #[cfg(feature = "extra-children")]
5537    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5538}
5539
5540#[derive(Debug, Clone, Serialize, Deserialize)]
5541pub struct GroupShape {
5542    #[serde(rename = "nvGrpSpPr")]
5543    pub non_visual_group_properties: Box<CTGroupShapeNonVisual>,
5544    #[serde(rename = "grpSpPr")]
5545    pub grp_sp_pr: Box<ooxml_dml::types::CTGroupShapeProperties>,
5546    #[serde(rename = "sp")]
5547    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5548    pub shape: Vec<Shape>,
5549    #[serde(rename = "grpSp")]
5550    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5551    pub group_shape: Vec<GroupShape>,
5552    #[serde(rename = "graphicFrame")]
5553    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5554    pub graphic_frame: Vec<GraphicalObjectFrame>,
5555    #[serde(rename = "cxnSp")]
5556    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5557    pub connector: Vec<Connector>,
5558    #[serde(rename = "pic")]
5559    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5560    pub picture: Vec<Picture>,
5561    #[cfg(feature = "pml-external")]
5562    #[serde(rename = "contentPart")]
5563    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5564    pub content_part: Vec<CTRel>,
5565    #[cfg(feature = "pml-extensions")]
5566    #[serde(rename = "extLst")]
5567    #[serde(default, skip_serializing_if = "Option::is_none")]
5568    pub ext_lst: Option<Box<CTExtensionListModify>>,
5569    /// Unknown child elements captured for roundtrip fidelity.
5570    #[cfg(feature = "extra-children")]
5571    #[serde(skip)]
5572    #[cfg(feature = "extra-children")]
5573    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5574}
5575
5576#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5577pub struct CTRel {
5578    /// Unknown child elements captured for roundtrip fidelity.
5579    #[cfg(feature = "extra-children")]
5580    #[serde(skip)]
5581    #[cfg(feature = "extra-children")]
5582    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5583}
5584
5585pub type EGTopLevelSlide = Box<ooxml_dml::types::CTColorMapping>;
5586
5587#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5588pub struct EGChildSlide {
5589    #[serde(rename = "clrMapOvr")]
5590    #[serde(default, skip_serializing_if = "Option::is_none")]
5591    pub clr_map_ovr: Option<Box<ooxml_dml::types::CTColorMappingOverride>>,
5592    /// Unknown child elements captured for roundtrip fidelity.
5593    #[cfg(feature = "extra-children")]
5594    #[serde(skip)]
5595    #[cfg(feature = "extra-children")]
5596    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5597}
5598
5599#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5600pub struct PAGChildSlide {
5601    #[serde(rename = "@showMasterSp")]
5602    #[serde(
5603        default,
5604        skip_serializing_if = "Option::is_none",
5605        with = "ooxml_xml::ooxml_bool"
5606    )]
5607    pub show_master_sp: Option<bool>,
5608    #[serde(rename = "@showMasterPhAnim")]
5609    #[serde(
5610        default,
5611        skip_serializing_if = "Option::is_none",
5612        with = "ooxml_xml::ooxml_bool"
5613    )]
5614    pub show_master_ph_anim: Option<bool>,
5615    /// Unknown attributes captured for roundtrip fidelity.
5616    #[cfg(feature = "extra-attrs")]
5617    #[serde(skip)]
5618    #[cfg(feature = "extra-attrs")]
5619    #[serde(default)]
5620    #[cfg(feature = "extra-attrs")]
5621    pub extra_attrs: std::collections::HashMap<String, String>,
5622}
5623
5624#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5625pub struct CTBackgroundProperties {
5626    #[serde(rename = "@shadeToTitle")]
5627    #[serde(
5628        default,
5629        skip_serializing_if = "Option::is_none",
5630        with = "ooxml_xml::ooxml_bool"
5631    )]
5632    pub shade_to_title: Option<bool>,
5633    #[serde(rename = "extLst")]
5634    #[serde(default, skip_serializing_if = "Option::is_none")]
5635    pub ext_lst: Option<Box<CTExtensionList>>,
5636    /// Unknown attributes captured for roundtrip fidelity.
5637    #[cfg(feature = "extra-attrs")]
5638    #[serde(skip)]
5639    #[cfg(feature = "extra-attrs")]
5640    #[serde(default)]
5641    #[cfg(feature = "extra-attrs")]
5642    pub extra_attrs: std::collections::HashMap<String, String>,
5643    /// Unknown child elements captured for roundtrip fidelity.
5644    #[cfg(feature = "extra-children")]
5645    #[serde(skip)]
5646    #[cfg(feature = "extra-children")]
5647    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5648}
5649
5650#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5651pub struct CTBackground {
5652    #[cfg(feature = "pml-styling")]
5653    #[serde(rename = "@bwMode")]
5654    #[serde(default, skip_serializing_if = "Option::is_none")]
5655    pub bw_mode: Option<ooxml_dml::types::STBlackWhiteMode>,
5656    #[serde(skip)]
5657    #[serde(default)]
5658    pub background: Option<Box<EGBackground>>,
5659    /// Unknown attributes captured for roundtrip fidelity.
5660    #[cfg(feature = "extra-attrs")]
5661    #[serde(skip)]
5662    #[cfg(feature = "extra-attrs")]
5663    #[serde(default)]
5664    #[cfg(feature = "extra-attrs")]
5665    pub extra_attrs: std::collections::HashMap<String, String>,
5666    /// Unknown child elements captured for roundtrip fidelity.
5667    #[cfg(feature = "extra-children")]
5668    #[serde(skip)]
5669    #[cfg(feature = "extra-children")]
5670    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5671}
5672
5673#[derive(Debug, Clone, Serialize, Deserialize)]
5674pub struct CommonSlideData {
5675    #[serde(rename = "@name")]
5676    #[serde(default, skip_serializing_if = "Option::is_none")]
5677    pub name: Option<String>,
5678    #[cfg(feature = "pml-styling")]
5679    #[serde(rename = "bg")]
5680    #[serde(default, skip_serializing_if = "Option::is_none")]
5681    pub bg: Option<Box<CTBackground>>,
5682    #[serde(rename = "spTree")]
5683    pub shape_tree: Box<GroupShape>,
5684    #[cfg(feature = "pml-external")]
5685    #[serde(rename = "custDataLst")]
5686    #[serde(default, skip_serializing_if = "Option::is_none")]
5687    pub cust_data_lst: Option<Box<CTCustomerDataList>>,
5688    #[cfg(feature = "pml-external")]
5689    #[serde(rename = "controls")]
5690    #[serde(default, skip_serializing_if = "Option::is_none")]
5691    pub controls: Option<Box<CTControlList>>,
5692    #[cfg(feature = "pml-extensions")]
5693    #[serde(rename = "extLst")]
5694    #[serde(default, skip_serializing_if = "Option::is_none")]
5695    pub ext_lst: Option<Box<CTExtensionList>>,
5696    /// Unknown attributes captured for roundtrip fidelity.
5697    #[cfg(feature = "extra-attrs")]
5698    #[serde(skip)]
5699    #[cfg(feature = "extra-attrs")]
5700    #[serde(default)]
5701    #[cfg(feature = "extra-attrs")]
5702    pub extra_attrs: std::collections::HashMap<String, String>,
5703    /// Unknown child elements captured for roundtrip fidelity.
5704    #[cfg(feature = "extra-children")]
5705    #[serde(skip)]
5706    #[cfg(feature = "extra-children")]
5707    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5708}
5709
5710#[derive(Debug, Clone, Serialize, Deserialize)]
5711pub struct Slide {
5712    #[cfg(feature = "pml-masters")]
5713    #[serde(rename = "@showMasterSp")]
5714    #[serde(
5715        default,
5716        skip_serializing_if = "Option::is_none",
5717        with = "ooxml_xml::ooxml_bool"
5718    )]
5719    pub show_master_sp: Option<bool>,
5720    #[cfg(feature = "pml-masters")]
5721    #[serde(rename = "@showMasterPhAnim")]
5722    #[serde(
5723        default,
5724        skip_serializing_if = "Option::is_none",
5725        with = "ooxml_xml::ooxml_bool"
5726    )]
5727    pub show_master_ph_anim: Option<bool>,
5728    #[serde(rename = "@show")]
5729    #[serde(
5730        default,
5731        skip_serializing_if = "Option::is_none",
5732        with = "ooxml_xml::ooxml_bool"
5733    )]
5734    pub show: Option<bool>,
5735    #[serde(rename = "cSld")]
5736    pub common_slide_data: Box<CommonSlideData>,
5737    #[cfg(feature = "pml-styling")]
5738    #[serde(rename = "clrMapOvr")]
5739    #[serde(default, skip_serializing_if = "Option::is_none")]
5740    pub clr_map_ovr: Option<Box<ooxml_dml::types::CTColorMappingOverride>>,
5741    #[cfg(feature = "pml-transitions")]
5742    #[serde(rename = "transition")]
5743    #[serde(default, skip_serializing_if = "Option::is_none")]
5744    pub transition: Option<Box<SlideTransition>>,
5745    #[cfg(feature = "pml-animations")]
5746    #[serde(rename = "timing")]
5747    #[serde(default, skip_serializing_if = "Option::is_none")]
5748    pub timing: Option<Box<SlideTiming>>,
5749    #[cfg(feature = "pml-extensions")]
5750    #[serde(rename = "extLst")]
5751    #[serde(default, skip_serializing_if = "Option::is_none")]
5752    pub ext_lst: Option<Box<CTExtensionListModify>>,
5753    /// Unknown attributes captured for roundtrip fidelity.
5754    #[cfg(feature = "extra-attrs")]
5755    #[serde(skip)]
5756    #[cfg(feature = "extra-attrs")]
5757    #[serde(default)]
5758    #[cfg(feature = "extra-attrs")]
5759    pub extra_attrs: std::collections::HashMap<String, String>,
5760    /// Unknown child elements captured for roundtrip fidelity.
5761    #[cfg(feature = "extra-children")]
5762    #[serde(skip)]
5763    #[cfg(feature = "extra-children")]
5764    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5765}
5766
5767pub type PSld = Box<Slide>;
5768
5769#[derive(Debug, Clone, Serialize, Deserialize)]
5770pub struct SlideLayout {
5771    #[cfg(feature = "pml-masters")]
5772    #[serde(rename = "@showMasterSp")]
5773    #[serde(
5774        default,
5775        skip_serializing_if = "Option::is_none",
5776        with = "ooxml_xml::ooxml_bool"
5777    )]
5778    pub show_master_sp: Option<bool>,
5779    #[cfg(feature = "pml-masters")]
5780    #[serde(rename = "@showMasterPhAnim")]
5781    #[serde(
5782        default,
5783        skip_serializing_if = "Option::is_none",
5784        with = "ooxml_xml::ooxml_bool"
5785    )]
5786    pub show_master_ph_anim: Option<bool>,
5787    #[cfg(feature = "pml-masters")]
5788    #[serde(rename = "@matchingName")]
5789    #[serde(default, skip_serializing_if = "Option::is_none")]
5790    pub matching_name: Option<String>,
5791    #[cfg(feature = "pml-masters")]
5792    #[serde(rename = "@type")]
5793    #[serde(default, skip_serializing_if = "Option::is_none")]
5794    pub r#type: Option<STSlideLayoutType>,
5795    #[cfg(feature = "pml-masters")]
5796    #[serde(rename = "@preserve")]
5797    #[serde(
5798        default,
5799        skip_serializing_if = "Option::is_none",
5800        with = "ooxml_xml::ooxml_bool"
5801    )]
5802    pub preserve: Option<bool>,
5803    #[cfg(feature = "pml-masters")]
5804    #[serde(rename = "@userDrawn")]
5805    #[serde(
5806        default,
5807        skip_serializing_if = "Option::is_none",
5808        with = "ooxml_xml::ooxml_bool"
5809    )]
5810    pub user_drawn: Option<bool>,
5811    #[serde(rename = "cSld")]
5812    pub common_slide_data: Box<CommonSlideData>,
5813    #[cfg(feature = "pml-styling")]
5814    #[serde(rename = "clrMapOvr")]
5815    #[serde(default, skip_serializing_if = "Option::is_none")]
5816    pub clr_map_ovr: Option<Box<ooxml_dml::types::CTColorMappingOverride>>,
5817    #[cfg(feature = "pml-transitions")]
5818    #[serde(rename = "transition")]
5819    #[serde(default, skip_serializing_if = "Option::is_none")]
5820    pub transition: Option<Box<SlideTransition>>,
5821    #[cfg(feature = "pml-animations")]
5822    #[serde(rename = "timing")]
5823    #[serde(default, skip_serializing_if = "Option::is_none")]
5824    pub timing: Option<Box<SlideTiming>>,
5825    #[cfg(feature = "pml-masters")]
5826    #[serde(rename = "hf")]
5827    #[serde(default, skip_serializing_if = "Option::is_none")]
5828    pub hf: Option<Box<CTHeaderFooter>>,
5829    #[cfg(feature = "pml-extensions")]
5830    #[serde(rename = "extLst")]
5831    #[serde(default, skip_serializing_if = "Option::is_none")]
5832    pub ext_lst: Option<Box<CTExtensionListModify>>,
5833    /// Unknown attributes captured for roundtrip fidelity.
5834    #[cfg(feature = "extra-attrs")]
5835    #[serde(skip)]
5836    #[cfg(feature = "extra-attrs")]
5837    #[serde(default)]
5838    #[cfg(feature = "extra-attrs")]
5839    pub extra_attrs: std::collections::HashMap<String, String>,
5840    /// Unknown child elements captured for roundtrip fidelity.
5841    #[cfg(feature = "extra-children")]
5842    #[serde(skip)]
5843    #[cfg(feature = "extra-children")]
5844    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5845}
5846
5847pub type PSldLayout = Box<SlideLayout>;
5848
5849#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5850pub struct CTSlideMasterTextStyles {
5851    #[serde(rename = "titleStyle")]
5852    #[serde(default, skip_serializing_if = "Option::is_none")]
5853    pub title_style: Option<Box<ooxml_dml::types::CTTextListStyle>>,
5854    #[serde(rename = "bodyStyle")]
5855    #[serde(default, skip_serializing_if = "Option::is_none")]
5856    pub body_style: Option<Box<ooxml_dml::types::CTTextListStyle>>,
5857    #[serde(rename = "otherStyle")]
5858    #[serde(default, skip_serializing_if = "Option::is_none")]
5859    pub other_style: Option<Box<ooxml_dml::types::CTTextListStyle>>,
5860    #[serde(rename = "extLst")]
5861    #[serde(default, skip_serializing_if = "Option::is_none")]
5862    pub ext_lst: Option<Box<CTExtensionList>>,
5863    /// Unknown child elements captured for roundtrip fidelity.
5864    #[cfg(feature = "extra-children")]
5865    #[serde(skip)]
5866    #[cfg(feature = "extra-children")]
5867    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5868}
5869
5870#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5871pub struct CTSlideLayoutIdListEntry {
5872    #[serde(rename = "@id")]
5873    #[serde(default, skip_serializing_if = "Option::is_none")]
5874    pub id: Option<STSlideLayoutId>,
5875    #[serde(rename = "extLst")]
5876    #[serde(default, skip_serializing_if = "Option::is_none")]
5877    pub ext_lst: Option<Box<CTExtensionList>>,
5878    /// Unknown attributes captured for roundtrip fidelity.
5879    #[cfg(feature = "extra-attrs")]
5880    #[serde(skip)]
5881    #[cfg(feature = "extra-attrs")]
5882    #[serde(default)]
5883    #[cfg(feature = "extra-attrs")]
5884    pub extra_attrs: std::collections::HashMap<String, String>,
5885    /// Unknown child elements captured for roundtrip fidelity.
5886    #[cfg(feature = "extra-children")]
5887    #[serde(skip)]
5888    #[cfg(feature = "extra-children")]
5889    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5890}
5891
5892#[derive(Debug, Clone, Default, Serialize, Deserialize)]
5893pub struct CTSlideLayoutIdList {
5894    #[serde(rename = "sldLayoutId")]
5895    #[serde(default, skip_serializing_if = "Vec::is_empty")]
5896    pub sld_layout_id: Vec<CTSlideLayoutIdListEntry>,
5897    /// Unknown child elements captured for roundtrip fidelity.
5898    #[cfg(feature = "extra-children")]
5899    #[serde(skip)]
5900    #[cfg(feature = "extra-children")]
5901    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5902}
5903
5904#[derive(Debug, Clone, Serialize, Deserialize)]
5905pub struct SlideMaster {
5906    #[cfg(feature = "pml-masters")]
5907    #[serde(rename = "@preserve")]
5908    #[serde(
5909        default,
5910        skip_serializing_if = "Option::is_none",
5911        with = "ooxml_xml::ooxml_bool"
5912    )]
5913    pub preserve: Option<bool>,
5914    #[serde(rename = "cSld")]
5915    pub common_slide_data: Box<CommonSlideData>,
5916    #[serde(rename = "clrMap")]
5917    pub clr_map: Box<ooxml_dml::types::CTColorMapping>,
5918    #[cfg(feature = "pml-masters")]
5919    #[serde(rename = "sldLayoutIdLst")]
5920    #[serde(default, skip_serializing_if = "Option::is_none")]
5921    pub sld_layout_id_lst: Option<Box<CTSlideLayoutIdList>>,
5922    #[cfg(feature = "pml-transitions")]
5923    #[serde(rename = "transition")]
5924    #[serde(default, skip_serializing_if = "Option::is_none")]
5925    pub transition: Option<Box<SlideTransition>>,
5926    #[cfg(feature = "pml-animations")]
5927    #[serde(rename = "timing")]
5928    #[serde(default, skip_serializing_if = "Option::is_none")]
5929    pub timing: Option<Box<SlideTiming>>,
5930    #[cfg(feature = "pml-masters")]
5931    #[serde(rename = "hf")]
5932    #[serde(default, skip_serializing_if = "Option::is_none")]
5933    pub hf: Option<Box<CTHeaderFooter>>,
5934    #[cfg(feature = "pml-styling")]
5935    #[serde(rename = "txStyles")]
5936    #[serde(default, skip_serializing_if = "Option::is_none")]
5937    pub tx_styles: Option<Box<CTSlideMasterTextStyles>>,
5938    #[cfg(feature = "pml-extensions")]
5939    #[serde(rename = "extLst")]
5940    #[serde(default, skip_serializing_if = "Option::is_none")]
5941    pub ext_lst: Option<Box<CTExtensionListModify>>,
5942    /// Unknown attributes captured for roundtrip fidelity.
5943    #[cfg(feature = "extra-attrs")]
5944    #[serde(skip)]
5945    #[cfg(feature = "extra-attrs")]
5946    #[serde(default)]
5947    #[cfg(feature = "extra-attrs")]
5948    pub extra_attrs: std::collections::HashMap<String, String>,
5949    /// Unknown child elements captured for roundtrip fidelity.
5950    #[cfg(feature = "extra-children")]
5951    #[serde(skip)]
5952    #[cfg(feature = "extra-children")]
5953    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5954}
5955
5956pub type PSldMaster = Box<SlideMaster>;
5957
5958#[derive(Debug, Clone, Serialize, Deserialize)]
5959pub struct HandoutMaster {
5960    #[serde(rename = "cSld")]
5961    pub common_slide_data: Box<CommonSlideData>,
5962    #[serde(rename = "clrMap")]
5963    pub clr_map: Box<ooxml_dml::types::CTColorMapping>,
5964    #[cfg(feature = "pml-masters")]
5965    #[serde(rename = "hf")]
5966    #[serde(default, skip_serializing_if = "Option::is_none")]
5967    pub hf: Option<Box<CTHeaderFooter>>,
5968    #[cfg(feature = "pml-extensions")]
5969    #[serde(rename = "extLst")]
5970    #[serde(default, skip_serializing_if = "Option::is_none")]
5971    pub ext_lst: Option<Box<CTExtensionListModify>>,
5972    /// Unknown child elements captured for roundtrip fidelity.
5973    #[cfg(feature = "extra-children")]
5974    #[serde(skip)]
5975    #[cfg(feature = "extra-children")]
5976    pub extra_children: Vec<ooxml_xml::PositionedNode>,
5977}
5978
5979pub type PHandoutMaster = Box<HandoutMaster>;
5980
5981#[derive(Debug, Clone, Serialize, Deserialize)]
5982pub struct NotesMaster {
5983    #[serde(rename = "cSld")]
5984    pub common_slide_data: Box<CommonSlideData>,
5985    #[serde(rename = "clrMap")]
5986    pub clr_map: Box<ooxml_dml::types::CTColorMapping>,
5987    #[cfg(feature = "pml-notes")]
5988    #[serde(rename = "hf")]
5989    #[serde(default, skip_serializing_if = "Option::is_none")]
5990    pub hf: Option<Box<CTHeaderFooter>>,
5991    #[cfg(feature = "pml-styling")]
5992    #[serde(rename = "notesStyle")]
5993    #[serde(default, skip_serializing_if = "Option::is_none")]
5994    pub notes_style: Option<Box<ooxml_dml::types::CTTextListStyle>>,
5995    #[cfg(feature = "pml-extensions")]
5996    #[serde(rename = "extLst")]
5997    #[serde(default, skip_serializing_if = "Option::is_none")]
5998    pub ext_lst: Option<Box<CTExtensionListModify>>,
5999    /// Unknown child elements captured for roundtrip fidelity.
6000    #[cfg(feature = "extra-children")]
6001    #[serde(skip)]
6002    #[cfg(feature = "extra-children")]
6003    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6004}
6005
6006pub type PNotesMaster = Box<NotesMaster>;
6007
6008#[derive(Debug, Clone, Serialize, Deserialize)]
6009pub struct NotesSlide {
6010    #[cfg(feature = "pml-notes")]
6011    #[serde(rename = "@showMasterSp")]
6012    #[serde(
6013        default,
6014        skip_serializing_if = "Option::is_none",
6015        with = "ooxml_xml::ooxml_bool"
6016    )]
6017    pub show_master_sp: Option<bool>,
6018    #[cfg(feature = "pml-notes")]
6019    #[serde(rename = "@showMasterPhAnim")]
6020    #[serde(
6021        default,
6022        skip_serializing_if = "Option::is_none",
6023        with = "ooxml_xml::ooxml_bool"
6024    )]
6025    pub show_master_ph_anim: Option<bool>,
6026    #[serde(rename = "cSld")]
6027    pub common_slide_data: Box<CommonSlideData>,
6028    #[cfg(feature = "pml-styling")]
6029    #[serde(rename = "clrMapOvr")]
6030    #[serde(default, skip_serializing_if = "Option::is_none")]
6031    pub clr_map_ovr: Option<Box<ooxml_dml::types::CTColorMappingOverride>>,
6032    #[cfg(feature = "pml-extensions")]
6033    #[serde(rename = "extLst")]
6034    #[serde(default, skip_serializing_if = "Option::is_none")]
6035    pub ext_lst: Option<Box<CTExtensionListModify>>,
6036    /// Unknown attributes captured for roundtrip fidelity.
6037    #[cfg(feature = "extra-attrs")]
6038    #[serde(skip)]
6039    #[cfg(feature = "extra-attrs")]
6040    #[serde(default)]
6041    #[cfg(feature = "extra-attrs")]
6042    pub extra_attrs: std::collections::HashMap<String, String>,
6043    /// Unknown child elements captured for roundtrip fidelity.
6044    #[cfg(feature = "extra-children")]
6045    #[serde(skip)]
6046    #[cfg(feature = "extra-children")]
6047    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6048}
6049
6050pub type PNotes = Box<NotesSlide>;
6051
6052#[derive(Debug, Clone, Serialize, Deserialize)]
6053pub struct CTSlideSyncProperties {
6054    #[serde(rename = "@serverSldId")]
6055    pub server_sld_id: String,
6056    #[serde(rename = "@serverSldModifiedTime")]
6057    pub server_sld_modified_time: String,
6058    #[serde(rename = "@clientInsertedTime")]
6059    pub client_inserted_time: String,
6060    #[serde(rename = "extLst")]
6061    #[serde(default, skip_serializing_if = "Option::is_none")]
6062    pub ext_lst: Option<Box<CTExtensionList>>,
6063    /// Unknown attributes captured for roundtrip fidelity.
6064    #[cfg(feature = "extra-attrs")]
6065    #[serde(skip)]
6066    #[cfg(feature = "extra-attrs")]
6067    #[serde(default)]
6068    #[cfg(feature = "extra-attrs")]
6069    pub extra_attrs: std::collections::HashMap<String, String>,
6070    /// Unknown child elements captured for roundtrip fidelity.
6071    #[cfg(feature = "extra-children")]
6072    #[serde(skip)]
6073    #[cfg(feature = "extra-children")]
6074    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6075}
6076
6077pub type PSldSyncPr = Box<CTSlideSyncProperties>;
6078
6079#[derive(Debug, Clone, Serialize, Deserialize)]
6080pub struct CTStringTag {
6081    #[serde(rename = "@name")]
6082    pub name: String,
6083    #[serde(rename = "@val")]
6084    pub value: String,
6085    /// Unknown attributes captured for roundtrip fidelity.
6086    #[cfg(feature = "extra-attrs")]
6087    #[serde(skip)]
6088    #[cfg(feature = "extra-attrs")]
6089    #[serde(default)]
6090    #[cfg(feature = "extra-attrs")]
6091    pub extra_attrs: std::collections::HashMap<String, String>,
6092}
6093
6094#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6095pub struct CTTagList {
6096    #[serde(rename = "tag")]
6097    #[serde(default, skip_serializing_if = "Vec::is_empty")]
6098    pub tag: Vec<CTStringTag>,
6099    /// Unknown child elements captured for roundtrip fidelity.
6100    #[cfg(feature = "extra-children")]
6101    #[serde(skip)]
6102    #[cfg(feature = "extra-children")]
6103    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6104}
6105
6106pub type PTagLst = Box<CTTagList>;
6107
6108#[derive(Debug, Clone, Serialize, Deserialize)]
6109pub struct CTNormalViewPortion {
6110    #[serde(rename = "@sz")]
6111    pub sz: ooxml_dml::types::STPositiveFixedPercentage,
6112    #[serde(rename = "@autoAdjust")]
6113    #[serde(
6114        default,
6115        skip_serializing_if = "Option::is_none",
6116        with = "ooxml_xml::ooxml_bool"
6117    )]
6118    pub auto_adjust: Option<bool>,
6119    /// Unknown attributes captured for roundtrip fidelity.
6120    #[cfg(feature = "extra-attrs")]
6121    #[serde(skip)]
6122    #[cfg(feature = "extra-attrs")]
6123    #[serde(default)]
6124    #[cfg(feature = "extra-attrs")]
6125    pub extra_attrs: std::collections::HashMap<String, String>,
6126}
6127
6128#[derive(Debug, Clone, Serialize, Deserialize)]
6129pub struct CTNormalViewProperties {
6130    #[serde(rename = "@showOutlineIcons")]
6131    #[serde(
6132        default,
6133        skip_serializing_if = "Option::is_none",
6134        with = "ooxml_xml::ooxml_bool"
6135    )]
6136    pub show_outline_icons: Option<bool>,
6137    #[serde(rename = "@snapVertSplitter")]
6138    #[serde(
6139        default,
6140        skip_serializing_if = "Option::is_none",
6141        with = "ooxml_xml::ooxml_bool"
6142    )]
6143    pub snap_vert_splitter: Option<bool>,
6144    #[serde(rename = "@vertBarState")]
6145    #[serde(default, skip_serializing_if = "Option::is_none")]
6146    pub vert_bar_state: Option<STSplitterBarState>,
6147    #[serde(rename = "@horzBarState")]
6148    #[serde(default, skip_serializing_if = "Option::is_none")]
6149    pub horz_bar_state: Option<STSplitterBarState>,
6150    #[serde(rename = "@preferSingleView")]
6151    #[serde(
6152        default,
6153        skip_serializing_if = "Option::is_none",
6154        with = "ooxml_xml::ooxml_bool"
6155    )]
6156    pub prefer_single_view: Option<bool>,
6157    #[serde(rename = "restoredLeft")]
6158    pub restored_left: Box<CTNormalViewPortion>,
6159    #[serde(rename = "restoredTop")]
6160    pub restored_top: Box<CTNormalViewPortion>,
6161    #[serde(rename = "extLst")]
6162    #[serde(default, skip_serializing_if = "Option::is_none")]
6163    pub ext_lst: Option<Box<CTExtensionList>>,
6164    /// Unknown attributes captured for roundtrip fidelity.
6165    #[cfg(feature = "extra-attrs")]
6166    #[serde(skip)]
6167    #[cfg(feature = "extra-attrs")]
6168    #[serde(default)]
6169    #[cfg(feature = "extra-attrs")]
6170    pub extra_attrs: std::collections::HashMap<String, String>,
6171    /// Unknown child elements captured for roundtrip fidelity.
6172    #[cfg(feature = "extra-children")]
6173    #[serde(skip)]
6174    #[cfg(feature = "extra-children")]
6175    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6176}
6177
6178#[derive(Debug, Clone, Serialize, Deserialize)]
6179pub struct CTCommonViewProperties {
6180    #[serde(rename = "@varScale")]
6181    #[serde(
6182        default,
6183        skip_serializing_if = "Option::is_none",
6184        with = "ooxml_xml::ooxml_bool"
6185    )]
6186    pub var_scale: Option<bool>,
6187    #[serde(rename = "scale")]
6188    pub scale: Box<ooxml_dml::types::CTScale2D>,
6189    #[serde(rename = "origin")]
6190    pub origin: Box<ooxml_dml::types::Point2D>,
6191    /// Unknown attributes captured for roundtrip fidelity.
6192    #[cfg(feature = "extra-attrs")]
6193    #[serde(skip)]
6194    #[cfg(feature = "extra-attrs")]
6195    #[serde(default)]
6196    #[cfg(feature = "extra-attrs")]
6197    pub extra_attrs: std::collections::HashMap<String, String>,
6198    /// Unknown child elements captured for roundtrip fidelity.
6199    #[cfg(feature = "extra-children")]
6200    #[serde(skip)]
6201    #[cfg(feature = "extra-children")]
6202    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6203}
6204
6205#[derive(Debug, Clone, Serialize, Deserialize)]
6206pub struct CTNotesTextViewProperties {
6207    #[serde(rename = "cViewPr")]
6208    pub c_view_pr: Box<CTCommonViewProperties>,
6209    #[serde(rename = "extLst")]
6210    #[serde(default, skip_serializing_if = "Option::is_none")]
6211    pub ext_lst: Option<Box<CTExtensionList>>,
6212    /// Unknown child elements captured for roundtrip fidelity.
6213    #[cfg(feature = "extra-children")]
6214    #[serde(skip)]
6215    #[cfg(feature = "extra-children")]
6216    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6217}
6218
6219#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6220pub struct CTOutlineViewSlideEntry {
6221    #[serde(rename = "@collapse")]
6222    #[serde(
6223        default,
6224        skip_serializing_if = "Option::is_none",
6225        with = "ooxml_xml::ooxml_bool"
6226    )]
6227    pub collapse: Option<bool>,
6228    /// Unknown attributes captured for roundtrip fidelity.
6229    #[cfg(feature = "extra-attrs")]
6230    #[serde(skip)]
6231    #[cfg(feature = "extra-attrs")]
6232    #[serde(default)]
6233    #[cfg(feature = "extra-attrs")]
6234    pub extra_attrs: std::collections::HashMap<String, String>,
6235}
6236
6237#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6238pub struct CTOutlineViewSlideList {
6239    #[serde(rename = "sld")]
6240    #[serde(default, skip_serializing_if = "Vec::is_empty")]
6241    pub sld: Vec<CTOutlineViewSlideEntry>,
6242    /// Unknown child elements captured for roundtrip fidelity.
6243    #[cfg(feature = "extra-children")]
6244    #[serde(skip)]
6245    #[cfg(feature = "extra-children")]
6246    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6247}
6248
6249#[derive(Debug, Clone, Serialize, Deserialize)]
6250pub struct CTOutlineViewProperties {
6251    #[serde(rename = "cViewPr")]
6252    pub c_view_pr: Box<CTCommonViewProperties>,
6253    #[serde(rename = "sldLst")]
6254    #[serde(default, skip_serializing_if = "Option::is_none")]
6255    pub sld_lst: Option<Box<CTOutlineViewSlideList>>,
6256    #[serde(rename = "extLst")]
6257    #[serde(default, skip_serializing_if = "Option::is_none")]
6258    pub ext_lst: Option<Box<CTExtensionList>>,
6259    /// Unknown child elements captured for roundtrip fidelity.
6260    #[cfg(feature = "extra-children")]
6261    #[serde(skip)]
6262    #[cfg(feature = "extra-children")]
6263    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6264}
6265
6266#[derive(Debug, Clone, Serialize, Deserialize)]
6267pub struct CTSlideSorterViewProperties {
6268    #[serde(rename = "@showFormatting")]
6269    #[serde(
6270        default,
6271        skip_serializing_if = "Option::is_none",
6272        with = "ooxml_xml::ooxml_bool"
6273    )]
6274    pub show_formatting: Option<bool>,
6275    #[serde(rename = "cViewPr")]
6276    pub c_view_pr: Box<CTCommonViewProperties>,
6277    #[serde(rename = "extLst")]
6278    #[serde(default, skip_serializing_if = "Option::is_none")]
6279    pub ext_lst: Option<Box<CTExtensionList>>,
6280    /// Unknown attributes captured for roundtrip fidelity.
6281    #[cfg(feature = "extra-attrs")]
6282    #[serde(skip)]
6283    #[cfg(feature = "extra-attrs")]
6284    #[serde(default)]
6285    #[cfg(feature = "extra-attrs")]
6286    pub extra_attrs: std::collections::HashMap<String, String>,
6287    /// Unknown child elements captured for roundtrip fidelity.
6288    #[cfg(feature = "extra-children")]
6289    #[serde(skip)]
6290    #[cfg(feature = "extra-children")]
6291    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6292}
6293
6294#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6295pub struct CTGuide {
6296    #[serde(rename = "@orient")]
6297    #[serde(default, skip_serializing_if = "Option::is_none")]
6298    pub orient: Option<STDirection>,
6299    #[serde(rename = "@pos")]
6300    #[serde(default, skip_serializing_if = "Option::is_none")]
6301    pub pos: Option<ooxml_dml::types::STCoordinate32>,
6302    /// Unknown attributes captured for roundtrip fidelity.
6303    #[cfg(feature = "extra-attrs")]
6304    #[serde(skip)]
6305    #[cfg(feature = "extra-attrs")]
6306    #[serde(default)]
6307    #[cfg(feature = "extra-attrs")]
6308    pub extra_attrs: std::collections::HashMap<String, String>,
6309}
6310
6311#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6312pub struct CTGuideList {
6313    #[serde(rename = "guide")]
6314    #[serde(default, skip_serializing_if = "Vec::is_empty")]
6315    pub guide: Vec<CTGuide>,
6316    /// Unknown child elements captured for roundtrip fidelity.
6317    #[cfg(feature = "extra-children")]
6318    #[serde(skip)]
6319    #[cfg(feature = "extra-children")]
6320    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6321}
6322
6323#[derive(Debug, Clone, Serialize, Deserialize)]
6324pub struct CTCommonSlideViewProperties {
6325    #[serde(rename = "@snapToGrid")]
6326    #[serde(
6327        default,
6328        skip_serializing_if = "Option::is_none",
6329        with = "ooxml_xml::ooxml_bool"
6330    )]
6331    pub snap_to_grid: Option<bool>,
6332    #[serde(rename = "@snapToObjects")]
6333    #[serde(
6334        default,
6335        skip_serializing_if = "Option::is_none",
6336        with = "ooxml_xml::ooxml_bool"
6337    )]
6338    pub snap_to_objects: Option<bool>,
6339    #[serde(rename = "@showGuides")]
6340    #[serde(
6341        default,
6342        skip_serializing_if = "Option::is_none",
6343        with = "ooxml_xml::ooxml_bool"
6344    )]
6345    pub show_guides: Option<bool>,
6346    #[serde(rename = "cViewPr")]
6347    pub c_view_pr: Box<CTCommonViewProperties>,
6348    #[serde(rename = "guideLst")]
6349    #[serde(default, skip_serializing_if = "Option::is_none")]
6350    pub guide_lst: Option<Box<CTGuideList>>,
6351    /// Unknown attributes captured for roundtrip fidelity.
6352    #[cfg(feature = "extra-attrs")]
6353    #[serde(skip)]
6354    #[cfg(feature = "extra-attrs")]
6355    #[serde(default)]
6356    #[cfg(feature = "extra-attrs")]
6357    pub extra_attrs: std::collections::HashMap<String, String>,
6358    /// Unknown child elements captured for roundtrip fidelity.
6359    #[cfg(feature = "extra-children")]
6360    #[serde(skip)]
6361    #[cfg(feature = "extra-children")]
6362    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6363}
6364
6365#[derive(Debug, Clone, Serialize, Deserialize)]
6366pub struct CTSlideViewProperties {
6367    #[serde(rename = "cSldViewPr")]
6368    pub c_sld_view_pr: Box<CTCommonSlideViewProperties>,
6369    #[serde(rename = "extLst")]
6370    #[serde(default, skip_serializing_if = "Option::is_none")]
6371    pub ext_lst: Option<Box<CTExtensionList>>,
6372    /// Unknown child elements captured for roundtrip fidelity.
6373    #[cfg(feature = "extra-children")]
6374    #[serde(skip)]
6375    #[cfg(feature = "extra-children")]
6376    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6377}
6378
6379#[derive(Debug, Clone, Serialize, Deserialize)]
6380pub struct CTNotesViewProperties {
6381    #[serde(rename = "cSldViewPr")]
6382    pub c_sld_view_pr: Box<CTCommonSlideViewProperties>,
6383    #[serde(rename = "extLst")]
6384    #[serde(default, skip_serializing_if = "Option::is_none")]
6385    pub ext_lst: Option<Box<CTExtensionList>>,
6386    /// Unknown child elements captured for roundtrip fidelity.
6387    #[cfg(feature = "extra-children")]
6388    #[serde(skip)]
6389    #[cfg(feature = "extra-children")]
6390    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6391}
6392
6393#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6394pub struct CTViewProperties {
6395    #[serde(rename = "@lastView")]
6396    #[serde(default, skip_serializing_if = "Option::is_none")]
6397    pub last_view: Option<STViewType>,
6398    #[cfg(feature = "pml-comments")]
6399    #[serde(rename = "@showComments")]
6400    #[serde(
6401        default,
6402        skip_serializing_if = "Option::is_none",
6403        with = "ooxml_xml::ooxml_bool"
6404    )]
6405    pub show_comments: Option<bool>,
6406    #[serde(rename = "normalViewPr")]
6407    #[serde(default, skip_serializing_if = "Option::is_none")]
6408    pub normal_view_pr: Option<Box<CTNormalViewProperties>>,
6409    #[serde(rename = "slideViewPr")]
6410    #[serde(default, skip_serializing_if = "Option::is_none")]
6411    pub slide_view_pr: Option<Box<CTSlideViewProperties>>,
6412    #[serde(rename = "outlineViewPr")]
6413    #[serde(default, skip_serializing_if = "Option::is_none")]
6414    pub outline_view_pr: Option<Box<CTOutlineViewProperties>>,
6415    #[cfg(feature = "pml-notes")]
6416    #[serde(rename = "notesTextViewPr")]
6417    #[serde(default, skip_serializing_if = "Option::is_none")]
6418    pub notes_text_view_pr: Option<Box<CTNotesTextViewProperties>>,
6419    #[serde(rename = "sorterViewPr")]
6420    #[serde(default, skip_serializing_if = "Option::is_none")]
6421    pub sorter_view_pr: Option<Box<CTSlideSorterViewProperties>>,
6422    #[cfg(feature = "pml-notes")]
6423    #[serde(rename = "notesViewPr")]
6424    #[serde(default, skip_serializing_if = "Option::is_none")]
6425    pub notes_view_pr: Option<Box<CTNotesViewProperties>>,
6426    #[serde(rename = "gridSpacing")]
6427    #[serde(default, skip_serializing_if = "Option::is_none")]
6428    pub grid_spacing: Option<Box<ooxml_dml::types::PositiveSize2D>>,
6429    #[cfg(feature = "pml-extensions")]
6430    #[serde(rename = "extLst")]
6431    #[serde(default, skip_serializing_if = "Option::is_none")]
6432    pub ext_lst: Option<Box<CTExtensionList>>,
6433    /// Unknown attributes captured for roundtrip fidelity.
6434    #[cfg(feature = "extra-attrs")]
6435    #[serde(skip)]
6436    #[cfg(feature = "extra-attrs")]
6437    #[serde(default)]
6438    #[cfg(feature = "extra-attrs")]
6439    pub extra_attrs: std::collections::HashMap<String, String>,
6440    /// Unknown child elements captured for roundtrip fidelity.
6441    #[cfg(feature = "extra-children")]
6442    #[serde(skip)]
6443    #[cfg(feature = "extra-children")]
6444    pub extra_children: Vec<ooxml_xml::PositionedNode>,
6445}
6446
6447pub type PViewPr = Box<CTViewProperties>;