node-poppler 5.1.4 → 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/package.json +10 -10
  3. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Annot.h +0 -1783
  4. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/AnnotStampImageHelper.h +0 -68
  5. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Array.h +0 -92
  6. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/BBoxOutputDev.h +0 -54
  7. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CMap.h +0 -128
  8. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CachedFile.h +0 -149
  9. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CairoFontEngine.h +0 -122
  10. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CairoOutputDev.h +0 -468
  11. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CairoRescaleBox.h +0 -60
  12. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Catalog.h +0 -318
  13. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CertificateInfo.h +0 -129
  14. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CharCodeToUnicode.h +0 -143
  15. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CharTypes.h +0 -24
  16. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CurlCachedFile.h +0 -37
  17. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/CurlPDFDocBuilder.h +0 -32
  18. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/DateInfo.h +0 -44
  19. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Decrypt.h +0 -147
  20. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Dict.h +0 -126
  21. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Error.h +0 -59
  22. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/ErrorCodes.h +0 -54
  23. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/FDPDFDocBuilder.h +0 -36
  24. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/FILECacheLoader.h +0 -34
  25. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/FileSpec.h +0 -85
  26. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/FontEncodingTables.h +0 -20
  27. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/FontInfo.h +0 -109
  28. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Form.h +0 -734
  29. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Function.h +0 -251
  30. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Gfx.h +0 -373
  31. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/GfxFont.h +0 -466
  32. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/GfxState.h +0 -1759
  33. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/GfxState_helpers.h +0 -90
  34. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/GlobalParams.h +0 -221
  35. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Hints.h +0 -91
  36. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/JArithmeticDecoder.h +0 -131
  37. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/JBIG2Stream.h +0 -130
  38. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/JPEG2000Stream.h +0 -54
  39. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/JSInfo.h +0 -65
  40. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Lexer.h +0 -113
  41. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Linearization.h +0 -43
  42. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Link.h +0 -566
  43. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/LocalPDFDocBuilder.h +0 -32
  44. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/MarkedContentOutputDev.h +0 -132
  45. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Movie.h +0 -123
  46. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/NameToCharCode.h +0 -52
  47. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/NameToUnicodeTable.h +0 -4300
  48. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Object.h +0 -678
  49. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/OptionalContent.h +0 -117
  50. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Outline.h +0 -122
  51. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/OutputDev.h +0 -379
  52. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PDFDoc.h +0 -419
  53. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PDFDocBuilder.h +0 -47
  54. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PDFDocEncoding.h +0 -43
  55. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PDFDocFactory.h +0 -58
  56. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PSOutputDev.h +0 -549
  57. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PSTokenizer.h +0 -47
  58. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Page.h +0 -273
  59. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PageTransition.h +0 -105
  60. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Parser.h +0 -76
  61. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PopplerCache.h +0 -65
  62. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/PreScanOutputDev.h +0 -148
  63. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/ProfileData.h +0 -35
  64. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Rendition.h +0 -164
  65. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/SecurityHandler.h +0 -131
  66. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Sound.h +0 -82
  67. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/SplashOutputDev.h +0 -413
  68. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Stream-CCITT.h +0 -334
  69. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/Stream.h +0 -1504
  70. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/StructElement.h +0 -406
  71. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/StructTreeRoot.h +0 -89
  72. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/TextOutputDev.h +0 -918
  73. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UTF.h +0 -112
  74. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeCClassTables.h +0 -983
  75. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeCompTables.h +0 -328
  76. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeDecompTables.h +0 -7181
  77. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeMap.h +0 -128
  78. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeMapFuncs.h +0 -35
  79. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeMapTables.h +0 -84
  80. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/UnicodeTypeTable.h +0 -49
  81. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/ViewerPreferences.h +0 -87
  82. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/XRef.h +0 -325
  83. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-destination.h +0 -69
  84. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-document.h +0 -135
  85. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-embedded-file.h +0 -55
  86. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-font-private.h +0 -68
  87. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-font.h +0 -95
  88. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-global.h +0 -132
  89. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-image.h +0 -74
  90. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-page-renderer.h +0 -77
  91. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-page-transition.h +0 -85
  92. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-page.h +0 -225
  93. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-rectangle.h +0 -66
  94. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-toc.h +0 -72
  95. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler-version.h +0 -39
  96. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/cpp/poppler_cpp_export.h +0 -42
  97. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/fofi/FoFiBase.h +0 -66
  98. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/fofi/FoFiEncodings.h +0 -43
  99. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/fofi/FoFiIdentifier.h +0 -52
  100. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/fofi/FoFiTrueType.h +0 -190
  101. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/fofi/FoFiType1.h +0 -70
  102. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/fofi/FoFiType1C.h +0 -263
  103. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-action.h +0 -454
  104. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-annot.h +0 -333
  105. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-attachment.h +0 -123
  106. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-date.h +0 -32
  107. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-document.h +0 -541
  108. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-enums.h +0 -191
  109. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-features.h +0 -88
  110. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-form-field.h +0 -254
  111. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-layer.h +0 -50
  112. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-macros.h +0 -42
  113. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-media.h +0 -80
  114. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-movie.h +0 -81
  115. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-page.h +0 -424
  116. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler-structure-element.h +0 -425
  117. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/glib/poppler.h +0 -259
  118. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/GooCheckedOps.h +0 -116
  119. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/GooLikely.h +0 -22
  120. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/GooString.h +0 -262
  121. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/GooTimer.h +0 -59
  122. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/ImgWriter.h +0 -39
  123. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/JpegWriter.h +0 -69
  124. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/PNGWriter.h +0 -68
  125. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/TiffWriter.h +0 -70
  126. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/gdir.h +0 -96
  127. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/gfile.h +0 -156
  128. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/gmem.h +0 -201
  129. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/grandom.h +0 -21
  130. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/goo/gstrtod.h +0 -45
  131. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/poppler-config.h +0 -155
  132. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/poppler_private_export.h +0 -42
  133. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/Splash.h +0 -336
  134. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashBitmap.h +0 -127
  135. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashClip.h +0 -131
  136. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashErrorCodes.h +0 -50
  137. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFTFont.h +0 -71
  138. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFTFontEngine.h +0 -72
  139. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFTFontFile.h +0 -64
  140. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFont.h +0 -116
  141. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFontEngine.h +0 -89
  142. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFontFile.h +0 -98
  143. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashFontFileID.h +0 -40
  144. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashGlyphBitmap.h +0 -23
  145. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashMath.h +0 -215
  146. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashPath.h +0 -138
  147. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashPattern.h +0 -107
  148. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashScreen.h +0 -87
  149. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashState.h +0 -132
  150. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashTypes.h +0 -248
  151. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashXPath.h +0 -95
  152. package/src/lib/win32/poppler-22.04.0/Library/include/poppler/splash/SplashXPathScanner.h +0 -136
  153. package/src/lib/win32/poppler-22.04.0/Library/lib/pkgconfig/poppler-cpp.pc +0 -12
  154. package/src/lib/win32/poppler-22.04.0/Library/lib/pkgconfig/poppler-glib.pc +0 -12
  155. package/src/lib/win32/poppler-22.04.0/Library/lib/pkgconfig/poppler.pc +0 -10
  156. package/src/lib/win32/poppler-22.04.0/Library/lib/poppler-cpp.lib +0 -0
  157. package/src/lib/win32/poppler-22.04.0/Library/lib/poppler-glib.lib +0 -0
  158. package/src/lib/win32/poppler-22.04.0/Library/lib/poppler.lib +0 -0
  159. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdfattach.1 +0 -60
  160. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdfdetach.1 +0 -94
  161. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdffonts.1 +0 -128
  162. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdfimages.1 +0 -265
  163. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdfinfo.1 +0 -198
  164. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdfseparate.1 +0 -60
  165. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdftocairo.1 +0 -346
  166. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdftohtml.1 +0 -118
  167. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdftoppm.1 +0 -230
  168. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdftops.1 +0 -267
  169. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdftotext.1 +0 -157
  170. package/src/lib/win32/poppler-22.04.0/Library/share/man/man1/pdfunite.1 +0 -43
  171. package/src/lib/win32/poppler-22.04.0/share/poppler/CMakeLists.txt +0 -309
  172. package/src/lib/win32/poppler-22.04.0/share/poppler/Makefile +0 -333
@@ -1,117 +0,0 @@
1
- //========================================================================
2
- //
3
- // OptionalContent.h
4
- //
5
- // Copyright 2007 Brad Hards <bradh@kde.org>
6
- // Copyright 2008 Carlos Garcia Campos <carlosgc@gnome.org>
7
- // Copyright 2013, 2018, 2019, 2021 Albert Astals Cid <aacid@kde.org>
8
- // Copyright 2018 Adam Reichold <adam.reichold@t-online.de>
9
- // Copyright 2019 Oliver Sander <oliver.sander@tu-dresden.de>
10
- //
11
- // Released under the GPL (version 2, or later, at your option)
12
- //
13
- //========================================================================
14
-
15
- #ifndef OPTIONALCONTENT_H
16
- #define OPTIONALCONTENT_H
17
-
18
- #include "Object.h"
19
- #include "CharTypes.h"
20
- #include "poppler_private_export.h"
21
- #include <unordered_map>
22
- #include <memory>
23
-
24
- class GooString;
25
- class XRef;
26
-
27
- class OptionalContentGroup;
28
-
29
- //------------------------------------------------------------------------
30
-
31
- class POPPLER_PRIVATE_EXPORT OCGs
32
- {
33
- public:
34
- OCGs(Object *ocgObject, XRef *xref);
35
-
36
- OCGs(const OCGs &) = delete;
37
- OCGs &operator=(const OCGs &) = delete;
38
-
39
- // Is OCGS valid?
40
- bool isOk() const { return ok; }
41
-
42
- bool hasOCGs() const;
43
- const std::unordered_map<Ref, std::unique_ptr<OptionalContentGroup>> &getOCGs() const { return optionalContentGroups; }
44
-
45
- OptionalContentGroup *findOcgByRef(const Ref ref);
46
-
47
- Array *getOrderArray() { return (order.isArray() && order.arrayGetLength() > 0) ? order.getArray() : nullptr; }
48
- Array *getRBGroupsArray() { return (rbgroups.isArray() && rbgroups.arrayGetLength()) ? rbgroups.getArray() : nullptr; }
49
-
50
- bool optContentIsVisible(const Object *dictRef);
51
-
52
- private:
53
- bool ok;
54
-
55
- bool evalOCVisibilityExpr(const Object *expr, int recursion);
56
- bool allOn(Array *ocgArray);
57
- bool allOff(Array *ocgArray);
58
- bool anyOn(Array *ocgArray);
59
- bool anyOff(Array *ocgArray);
60
-
61
- std::unordered_map<Ref, std::unique_ptr<OptionalContentGroup>> optionalContentGroups;
62
-
63
- Object order;
64
- Object rbgroups;
65
- XRef *m_xref;
66
- };
67
-
68
- //------------------------------------------------------------------------
69
-
70
- class POPPLER_PRIVATE_EXPORT OptionalContentGroup
71
- {
72
- public:
73
- enum State
74
- {
75
- On,
76
- Off
77
- };
78
-
79
- // Values from the optional content usage dictionary.
80
- enum UsageState
81
- {
82
- ocUsageOn,
83
- ocUsageOff,
84
- ocUsageUnset
85
- };
86
-
87
- explicit OptionalContentGroup(Dict *dict);
88
-
89
- explicit OptionalContentGroup(GooString *label);
90
-
91
- ~OptionalContentGroup();
92
-
93
- OptionalContentGroup(const OptionalContentGroup &) = delete;
94
- OptionalContentGroup &operator=(const OptionalContentGroup &) = delete;
95
-
96
- const GooString *getName() const;
97
-
98
- Ref getRef() const;
99
- void setRef(const Ref ref);
100
-
101
- State getState() const { return m_state; };
102
- void setState(State state) { m_state = state; };
103
-
104
- UsageState getViewState() const { return viewState; }
105
- UsageState getPrintState() const { return printState; }
106
-
107
- private:
108
- GooString *m_name;
109
- Ref m_ref;
110
- State m_state;
111
- UsageState viewState; // suggested state when viewing
112
- UsageState printState; // suggested state when printing
113
- };
114
-
115
- //------------------------------------------------------------------------
116
-
117
- #endif
@@ -1,122 +0,0 @@
1
- //========================================================================
2
- //
3
- // Outline.h
4
- //
5
- // Copyright 2002-2003 Glyph & Cog, LLC
6
- //
7
- //========================================================================
8
-
9
- //========================================================================
10
- //
11
- // Modified under the Poppler project - http://poppler.freedesktop.org
12
- //
13
- // All changes made under the Poppler project to this file are licensed
14
- // under GPL version 2 or later
15
- //
16
- // Copyright (C) 2005 Marco Pesenti Gritti <mpg@redhat.com>
17
- // Copyright (C) 2016, 2018, 2021 Albert Astals Cid <aacid@kde.org>
18
- // Copyright (C) 2019, 2020 Oliver Sander <oliver.sander@tu-dresden.de>
19
- // Copyright (C) 2021 RM <rm+git@arcsin.org>
20
- //
21
- // To see a description of the changes please see the Changelog file that
22
- // came with your tarball or type make ChangeLog if you are building from git
23
- //
24
- //========================================================================
25
-
26
- #ifndef OUTLINE_H
27
- #define OUTLINE_H
28
-
29
- #include <memory>
30
- #include "Object.h"
31
- #include "CharTypes.h"
32
- #include "poppler_private_export.h"
33
-
34
- class PDFDoc;
35
- class GooString;
36
- class XRef;
37
- class LinkAction;
38
- class OutlineItem;
39
-
40
- //------------------------------------------------------------------------
41
-
42
- class POPPLER_PRIVATE_EXPORT Outline
43
- {
44
- PDFDoc *doc;
45
- XRef *xref;
46
- Object *outlineObj; // outline dict in catalog
47
-
48
- public:
49
- Outline(Object *outlineObj, XRef *xref, PDFDoc *doc);
50
- ~Outline();
51
-
52
- Outline(const Outline &) = delete;
53
- Outline &operator=(const Outline &) = delete;
54
-
55
- const std::vector<OutlineItem *> *getItems() const
56
- {
57
- if (!items || items->empty()) {
58
- return nullptr;
59
- } else {
60
- return items;
61
- }
62
- }
63
-
64
- struct OutlineTreeNode
65
- {
66
- std::string title;
67
- int destPageNum;
68
- std::vector<OutlineTreeNode> children;
69
- };
70
-
71
- // insert/remove child don't propagate changes to 'Count' up the entire
72
- // tree
73
- void setOutline(const std::vector<OutlineTreeNode> &nodeList);
74
- void insertChild(const std::string &itemTitle, int destPageNum, unsigned int pos);
75
- void removeChild(unsigned int pos);
76
-
77
- private:
78
- std::vector<OutlineItem *> *items; // nullptr if document has no outline
79
- int addOutlineTreeNodeList(const std::vector<OutlineTreeNode> &nodeList, Ref &parentRef, Ref &firstRef, Ref &lastRef);
80
- };
81
-
82
- //------------------------------------------------------------------------
83
-
84
- class POPPLER_PRIVATE_EXPORT OutlineItem
85
- {
86
- friend Outline;
87
-
88
- public:
89
- OutlineItem(const Dict *dict, Ref refA, OutlineItem *parentA, XRef *xrefA, PDFDoc *docA);
90
- ~OutlineItem();
91
- OutlineItem(const OutlineItem &) = delete;
92
- OutlineItem &operator=(const OutlineItem &) = delete;
93
- static std::vector<OutlineItem *> *readItemList(OutlineItem *parent, const Object *firstItemRef, XRef *xrefA, PDFDoc *docA);
94
- const Unicode *getTitle() const { return title; }
95
- void setTitle(const std::string &titleA);
96
- int getTitleLength() const { return titleLen; }
97
- bool setPageDest(int i);
98
- // OutlineItem keeps the ownership of the action
99
- const LinkAction *getAction() const { return action.get(); }
100
- void setStartsOpen(bool value);
101
- bool isOpen() const { return startsOpen; }
102
- bool hasKids();
103
- void open();
104
- const std::vector<OutlineItem *> *getKids();
105
- int getRefNum() const { return ref.num; }
106
- Ref getRef() const { return ref; }
107
- void insertChild(const std::string &itemTitle, int destPageNum, unsigned int pos);
108
- void removeChild(unsigned int pos);
109
-
110
- private:
111
- Ref ref;
112
- OutlineItem *parent;
113
- PDFDoc *doc;
114
- XRef *xref;
115
- Unicode *title;
116
- int titleLen;
117
- std::unique_ptr<LinkAction> action;
118
- bool startsOpen;
119
- std::vector<OutlineItem *> *kids; // nullptr if this item is closed or has no kids
120
- };
121
-
122
- #endif
@@ -1,379 +0,0 @@
1
- //========================================================================
2
- //
3
- // OutputDev.h
4
- //
5
- // Copyright 1996-2003 Glyph & Cog, LLC
6
- //
7
- //========================================================================
8
-
9
- //========================================================================
10
- //
11
- // Modified under the Poppler project - http://poppler.freedesktop.org
12
- //
13
- // All changes made under the Poppler project to this file are licensed
14
- // under GPL version 2 or later
15
- //
16
- // Copyright (C) 2005 Jonathan Blandford <jrb@redhat.com>
17
- // Copyright (C) 2006 Thorkild Stray <thorkild@ifi.uio.no>
18
- // Copyright (C) 2007 Jeff Muizelaar <jeff@infidigm.net>
19
- // Copyright (C) 2007, 2011, 2017, 2021 Adrian Johnson <ajohnson@redneon.com>
20
- // Copyright (C) 2009-2013, 2015 Thomas Freitag <Thomas.Freitag@alfa.de>
21
- // Copyright (C) 2009, 2011 Carlos Garcia Campos <carlosgc@gnome.org>
22
- // Copyright (C) 2009, 2012, 2013, 2018, 2019, 2021 Albert Astals Cid <aacid@kde.org>
23
- // Copyright (C) 2010 Christian Feuersänger <cfeuersaenger@googlemail.com>
24
- // Copyright (C) 2012 Fabio D'Urso <fabiodurso@hotmail.it>
25
- // Copyright (C) 2012 William Bader <williambader@hotmail.com>
26
- // Copyright (C) 2017, 2018, 2020 Oliver Sander <oliver.sander@tu-dresden.de>
27
- // Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, <info@kdab.com>. Work sponsored by the LiMux project of the city of Munich
28
- // Copyright (C) 2018 Adam Reichold <adam.reichold@t-online.de>
29
- // Copyright (C) 2020 Philipp Knechtges <philipp-dev@knechtges.com>
30
- //
31
- // To see a description of the changes please see the Changelog file that
32
- // came with your tarball or type make ChangeLog if you are building from git
33
- //
34
- //========================================================================
35
-
36
- #ifndef OUTPUTDEV_H
37
- #define OUTPUTDEV_H
38
-
39
- #include "poppler-config.h"
40
- #include "poppler_private_export.h"
41
- #include "CharTypes.h"
42
- #include "Object.h"
43
- #include "PopplerCache.h"
44
- #include "ProfileData.h"
45
- #include "GfxState.h"
46
- #include <memory>
47
- #include <unordered_map>
48
- #include <string>
49
-
50
- class Annot;
51
- class Dict;
52
- class GooString;
53
- class Gfx;
54
- class Stream;
55
- class Links;
56
- class AnnotLink;
57
- class Catalog;
58
- class Page;
59
- class Function;
60
-
61
- //------------------------------------------------------------------------
62
- // OutputDev
63
- //------------------------------------------------------------------------
64
-
65
- class POPPLER_PRIVATE_EXPORT OutputDev
66
- {
67
- public:
68
- // Constructor.
69
- OutputDev();
70
-
71
- // Destructor.
72
- virtual ~OutputDev();
73
-
74
- //----- get info about output device
75
-
76
- // Does this device use upside-down coordinates?
77
- // (Upside-down means (0,0) is the top left corner of the page.)
78
- virtual bool upsideDown() = 0;
79
-
80
- // Does this device use drawChar() or drawString()?
81
- virtual bool useDrawChar() = 0;
82
-
83
- // Does this device use tilingPatternFill()? If this returns false,
84
- // tiling pattern fills will be reduced to a series of other drawing
85
- // operations.
86
- virtual bool useTilingPatternFill() { return false; }
87
-
88
- // Does this device support specific shading types?
89
- // see gouraudTriangleShadedFill() and patchMeshShadedFill()
90
- virtual bool useShadedFills(int type) { return false; }
91
-
92
- // Does this device use FillColorStop()?
93
- virtual bool useFillColorStop() { return false; }
94
-
95
- // Does this device use drawForm()? If this returns false,
96
- // form-type XObjects will be interpreted (i.e., unrolled).
97
- virtual bool useDrawForm() { return false; }
98
-
99
- // Does this device use beginType3Char/endType3Char? Otherwise,
100
- // text in Type 3 fonts will be drawn with drawChar/drawString.
101
- virtual bool interpretType3Chars() = 0;
102
-
103
- // Does this device need non-text content?
104
- virtual bool needNonText() { return true; }
105
-
106
- // Does this device require incCharCount to be called for text on
107
- // non-shown layers?
108
- virtual bool needCharCount() { return false; }
109
-
110
- // Does this device need to clip pages to the crop box even when the
111
- // box is the crop box?
112
- virtual bool needClipToCropBox() { return false; }
113
-
114
- //----- initialization and control
115
-
116
- // Set default transform matrix.
117
- virtual void setDefaultCTM(const double *ctm);
118
-
119
- // Check to see if a page slice should be displayed. If this
120
- // returns false, the page display is aborted. Typically, an
121
- // OutputDev will use some alternate means to display the page
122
- // before returning false.
123
- virtual bool checkPageSlice(Page *page, double hDPI, double vDPI, int rotate, bool useMediaBox, bool crop, int sliceX, int sliceY, int sliceW, int sliceH, bool printing, bool (*abortCheckCbk)(void *data) = nullptr,
124
- void *abortCheckCbkData = nullptr, bool (*annotDisplayDecideCbk)(Annot *annot, void *user_data) = nullptr, void *annotDisplayDecideCbkData = nullptr)
125
- {
126
- return true;
127
- }
128
-
129
- // Start a page.
130
- virtual void startPage(int pageNum, GfxState *state, XRef *xref) { }
131
-
132
- // End a page.
133
- virtual void endPage() { }
134
-
135
- // Dump page contents to display.
136
- virtual void dump() { }
137
-
138
- virtual void initGfxState(GfxState *state)
139
- {
140
- #ifdef USE_CMS
141
- state->setDisplayProfile(displayprofile);
142
-
143
- auto invalidref = Ref::INVALID();
144
- if (defaultGrayProfile) {
145
- auto cs = new GfxICCBasedColorSpace(1, new GfxDeviceGrayColorSpace(), &invalidref);
146
-
147
- cs->setProfile(defaultGrayProfile);
148
- cs->buildTransforms(state); // needs to happen after state->setDisplayProfile has been called
149
- state->setDefaultGrayColorSpace(cs);
150
- }
151
-
152
- if (defaultRGBProfile) {
153
- auto cs = new GfxICCBasedColorSpace(3, new GfxDeviceRGBColorSpace(), &invalidref);
154
-
155
- cs->setProfile(defaultRGBProfile);
156
- cs->buildTransforms(state); // needs to happen after state->setDisplayProfile has been called
157
- state->setDefaultRGBColorSpace(cs);
158
- }
159
-
160
- if (defaultCMYKProfile) {
161
- auto cs = new GfxICCBasedColorSpace(4, new GfxDeviceCMYKColorSpace(), &invalidref);
162
-
163
- cs->setProfile(defaultCMYKProfile);
164
- cs->buildTransforms(state); // needs to happen after state->setDisplayProfile has been called
165
- state->setDefaultCMYKColorSpace(cs);
166
- }
167
- #endif
168
- }
169
-
170
- //----- coordinate conversion
171
-
172
- // Convert between device and user coordinates.
173
- virtual void cvtDevToUser(double dx, double dy, double *ux, double *uy);
174
- virtual void cvtUserToDev(double ux, double uy, int *dx, int *dy);
175
-
176
- const double *getDefCTM() const { return defCTM; }
177
- const double *getDefICTM() const { return defICTM; }
178
-
179
- //----- save/restore graphics state
180
- virtual void saveState(GfxState * /*state*/) { }
181
- virtual void restoreState(GfxState * /*state*/) { }
182
-
183
- //----- update graphics state
184
- virtual void updateAll(GfxState *state);
185
-
186
- // Update the Current Transformation Matrix (CTM), i.e., the new matrix
187
- // given in m11, ..., m32 is combined with the current value of the CTM.
188
- // At the same time, when this method is called, state->getCTM() already
189
- // contains the correct new CTM, so one may as well replace the
190
- // CTM of the renderer with that.
191
- virtual void updateCTM(GfxState * /*state*/, double /*m11*/, double /*m12*/, double /*m21*/, double /*m22*/, double /*m31*/, double /*m32*/) { }
192
- virtual void updateLineDash(GfxState * /*state*/) { }
193
- virtual void updateFlatness(GfxState * /*state*/) { }
194
- virtual void updateLineJoin(GfxState * /*state*/) { }
195
- virtual void updateLineCap(GfxState * /*state*/) { }
196
- virtual void updateMiterLimit(GfxState * /*state*/) { }
197
- virtual void updateLineWidth(GfxState * /*state*/) { }
198
- virtual void updateStrokeAdjust(GfxState * /*state*/) { }
199
- virtual void updateAlphaIsShape(GfxState * /*state*/) { }
200
- virtual void updateTextKnockout(GfxState * /*state*/) { }
201
- virtual void updateFillColorSpace(GfxState * /*state*/) { }
202
- virtual void updateStrokeColorSpace(GfxState * /*state*/) { }
203
- virtual void updateFillColor(GfxState * /*state*/) { }
204
- virtual void updateStrokeColor(GfxState * /*state*/) { }
205
- virtual void updateBlendMode(GfxState * /*state*/) { }
206
- virtual void updateFillOpacity(GfxState * /*state*/) { }
207
- virtual void updateStrokeOpacity(GfxState * /*state*/) { }
208
- virtual void updatePatternOpacity(GfxState * /*state*/) { }
209
- virtual void clearPatternOpacity(GfxState * /*state*/) { }
210
- virtual void updateFillOverprint(GfxState * /*state*/) { }
211
- virtual void updateStrokeOverprint(GfxState * /*state*/) { }
212
- virtual void updateOverprintMode(GfxState * /*state*/) { }
213
- virtual void updateTransfer(GfxState * /*state*/) { }
214
- virtual void updateFillColorStop(GfxState * /*state*/, double /*offset*/) { }
215
-
216
- //----- update text state
217
- virtual void updateFont(GfxState * /*state*/) { }
218
- virtual void updateTextMat(GfxState * /*state*/) { }
219
- virtual void updateCharSpace(GfxState * /*state*/) { }
220
- virtual void updateRender(GfxState * /*state*/) { }
221
- virtual void updateRise(GfxState * /*state*/) { }
222
- virtual void updateWordSpace(GfxState * /*state*/) { }
223
- virtual void updateHorizScaling(GfxState * /*state*/) { }
224
- virtual void updateTextPos(GfxState * /*state*/) { }
225
- virtual void updateTextShift(GfxState * /*state*/, double /*shift*/) { }
226
- virtual void saveTextPos(GfxState * /*state*/) { }
227
- virtual void restoreTextPos(GfxState * /*state*/) { }
228
-
229
- //----- path painting
230
- virtual void stroke(GfxState * /*state*/) { }
231
- virtual void fill(GfxState * /*state*/) { }
232
- virtual void eoFill(GfxState * /*state*/) { }
233
- virtual bool tilingPatternFill(GfxState * /*state*/, Gfx * /*gfx*/, Catalog * /*cat*/, GfxTilingPattern * /*tPat*/, const double * /*mat*/, int /*x0*/, int /*y0*/, int /*x1*/, int /*y1*/, double /*xStep*/, double /*yStep*/)
234
- {
235
- return false;
236
- }
237
- virtual bool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) { return false; }
238
- virtual bool axialShadedFill(GfxState * /*state*/, GfxAxialShading * /*shading*/, double /*tMin*/, double /*tMax*/) { return false; }
239
- virtual bool axialShadedSupportExtend(GfxState * /*state*/, GfxAxialShading * /*shading*/) { return false; }
240
- virtual bool radialShadedFill(GfxState * /*state*/, GfxRadialShading * /*shading*/, double /*sMin*/, double /*sMax*/) { return false; }
241
- virtual bool radialShadedSupportExtend(GfxState * /*state*/, GfxRadialShading * /*shading*/) { return false; }
242
- virtual bool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading) { return false; }
243
- virtual bool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading) { return false; }
244
-
245
- //----- path clipping
246
-
247
- // Update the clipping path. The new path is the intersection of the old path
248
- // with the path given in 'state'.
249
- // Additionally, set the clipping mode to the 'nonzero winding number rule'.
250
- // That is, a point is inside the clipping region if its winding number
251
- // with respect to the clipping path is nonzero.
252
- virtual void clip(GfxState * /*state*/) { }
253
-
254
- // Update the clipping path. The new path is the intersection of the old path
255
- // with the path given in 'state'.
256
- // Additionally, set the clipping mode to the 'even-odd rule'. That is, a point is
257
- // inside the clipping region if a ray from it to infinity will cross the clipping
258
- // path an odd number of times (disregarding the path orientation).
259
- virtual void eoClip(GfxState * /*state*/) { }
260
-
261
- // Update the clipping path. Unlike for the previous two methods, the clipping region
262
- // is not the region surrounded by the path in 'state', but rather the path itself,
263
- // rendered with the current pen settings.
264
- virtual void clipToStrokePath(GfxState * /*state*/) { }
265
-
266
- //----- text drawing
267
- virtual void beginStringOp(GfxState * /*state*/) { }
268
- virtual void endStringOp(GfxState * /*state*/) { }
269
- virtual void beginString(GfxState * /*state*/, const GooString * /*s*/) { }
270
- virtual void endString(GfxState * /*state*/) { }
271
-
272
- // Draw one glyph at a specified position
273
- //
274
- // Arguments are:
275
- // CharCode code: This is the character code in the content stream. It needs to be mapped back to a glyph index.
276
- // int nBytes: The text strings in the content stream can consists of either 8-bit or 16-bit
277
- // character codes depending on the font. nBytes is the number of bytes in the character code.
278
- // Unicode *u: The UCS-4 mapping used for text extraction (TextOutputDev).
279
- // int uLen: The number of unicode entries in u. Usually '1', for a single character,
280
- // but it may also have larger values, for example for ligatures.
281
- virtual void drawChar(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, const Unicode * /*u*/, int /*uLen*/) { }
282
- virtual void drawString(GfxState * /*state*/, const GooString * /*s*/) { }
283
- virtual bool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, const Unicode * /*u*/, int /*uLen*/);
284
- virtual void endType3Char(GfxState * /*state*/) { }
285
- virtual void beginTextObject(GfxState * /*state*/) { }
286
- virtual void endTextObject(GfxState * /*state*/) { }
287
- virtual void incCharCount(int /*nChars*/) { }
288
- virtual void beginActualText(GfxState * /*state*/, const GooString * /*text*/) { }
289
- virtual void endActualText(GfxState * /*state*/) { }
290
-
291
- //----- image drawing
292
- // Draw an image mask. An image mask is a one-bit-per-pixel image, where each pixel
293
- // can only be 'fill color' or 'transparent'.
294
- //
295
- // If 'invert' is false, a sample value of 0 marks the page with the current color,
296
- // and a 1 leaves the previous contents unchanged. If 'invert' is true, these meanings are reversed.
297
- virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool interpolate, bool inlineImg);
298
- virtual void setSoftMaskFromImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, bool invert, bool inlineImg, double *baseMatrix);
299
- virtual void unsetSoftMaskFromImageMask(GfxState *state, double *baseMatrix);
300
- virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, const int *maskColors, bool inlineImg);
301
- virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, bool maskInvert, bool maskInterpolate);
302
- virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, bool interpolate, Stream *maskStr, int maskWidth, int maskHeight, GfxImageColorMap *maskColorMap,
303
- bool maskInterpolate);
304
-
305
- //----- grouping operators
306
-
307
- virtual void endMarkedContent(GfxState *state);
308
- virtual void beginMarkedContent(const char *name, Dict *properties);
309
- virtual void markPoint(const char *name);
310
- virtual void markPoint(const char *name, Dict *properties);
311
-
312
- #ifdef OPI_SUPPORT
313
- //----- OPI functions
314
- virtual void opiBegin(GfxState *state, Dict *opiDict);
315
- virtual void opiEnd(GfxState *state, Dict *opiDict);
316
- #endif
317
-
318
- //----- Type 3 font operators
319
- virtual void type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/) { }
320
- virtual void type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/) { }
321
-
322
- //----- form XObjects
323
- virtual void beginForm(Ref /*id*/) { }
324
- virtual void drawForm(Ref /*id*/) { }
325
- virtual void endForm(Ref /*id*/) { }
326
-
327
- //----- PostScript XObjects
328
- virtual void psXObject(Stream * /*psStream*/, Stream * /*level1Stream*/) { }
329
-
330
- //----- Profiling
331
- void startProfile();
332
- std::unordered_map<std::string, ProfileData> *getProfileHash() const { return profileHash.get(); }
333
- std::unique_ptr<std::unordered_map<std::string, ProfileData>> endProfile();
334
-
335
- //----- transparency groups and soft masks
336
- virtual bool checkTransparencyGroup(GfxState * /*state*/, bool /*knockout*/) { return true; }
337
- virtual void beginTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/, GfxColorSpace * /*blendingColorSpace*/, bool /*isolated*/, bool /*knockout*/, bool /*forSoftMask*/) { }
338
- virtual void endTransparencyGroup(GfxState * /*state*/) { }
339
- virtual void paintTransparencyGroup(GfxState * /*state*/, const double * /*bbox*/) { }
340
- virtual void setSoftMask(GfxState * /*state*/, const double * /*bbox*/, bool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/) { }
341
- virtual void clearSoftMask(GfxState * /*state*/) { }
342
-
343
- //----- links
344
- virtual void processLink(AnnotLink * /*link*/) { }
345
-
346
- #if 1 //~tmp: turn off anti-aliasing temporarily
347
- virtual bool getVectorAntialias() { return false; }
348
- virtual void setVectorAntialias(bool /*vaa*/) { }
349
- #endif
350
-
351
- #ifdef USE_CMS
352
- void setDisplayProfile(const GfxLCMSProfilePtr &profile) { displayprofile = profile; }
353
- GfxLCMSProfilePtr getDisplayProfile() const { return displayprofile; }
354
- void setDefaultGrayProfile(const GfxLCMSProfilePtr &profile) { defaultGrayProfile = profile; }
355
- GfxLCMSProfilePtr getDefaultGrayProfile() const { return defaultGrayProfile; }
356
- void setDefaultRGBProfile(const GfxLCMSProfilePtr &profile) { defaultRGBProfile = profile; }
357
- GfxLCMSProfilePtr getDefaultRGBProfile() const { return defaultRGBProfile; }
358
- void setDefaultCMYKProfile(const GfxLCMSProfilePtr &profile) { defaultCMYKProfile = profile; }
359
- GfxLCMSProfilePtr getDefaultCMYKProfile() const { return defaultCMYKProfile; }
360
-
361
- PopplerCache<Ref, GfxICCBasedColorSpace> *getIccColorSpaceCache() { return &iccColorSpaceCache; }
362
- #endif
363
-
364
- private:
365
- double defCTM[6]; // default coordinate transform matrix
366
- double defICTM[6]; // inverse of default CTM
367
- std::unique_ptr<std::unordered_map<std::string, ProfileData>> profileHash;
368
-
369
- #ifdef USE_CMS
370
- GfxLCMSProfilePtr displayprofile;
371
- GfxLCMSProfilePtr defaultGrayProfile;
372
- GfxLCMSProfilePtr defaultRGBProfile;
373
- GfxLCMSProfilePtr defaultCMYKProfile;
374
-
375
- PopplerCache<Ref, GfxICCBasedColorSpace> iccColorSpaceCache;
376
- #endif
377
- };
378
-
379
- #endif