exiftool_vendored 13.10.0 → 13.14.0

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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +82 -19
  3. data/bin/MANIFEST +6 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +3 -3
  7. data/bin/arg_files/exif2xmp.args +4 -0
  8. data/bin/arg_files/xmp2exif.args +2 -1
  9. data/bin/build_geolocation +1 -1
  10. data/bin/exiftool +208 -150
  11. data/bin/lib/File/RandomAccess.pm +1 -1
  12. data/bin/lib/File/RandomAccess.pod +2 -2
  13. data/bin/lib/Image/ExifTool/AAC.pm +1 -1
  14. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  15. data/bin/lib/Image/ExifTool/AFCP.pm +6 -6
  16. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  17. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  18. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  19. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  20. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  21. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  23. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  24. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  25. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  26. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +29 -18
  27. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  28. data/bin/lib/Image/ExifTool/Canon.pm +8 -4
  29. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  30. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  31. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  32. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  33. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  34. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  36. data/bin/lib/Image/ExifTool/DJI.pm +150 -46
  37. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  39. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  40. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  41. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  42. data/bin/lib/Image/ExifTool/EXE.pm +123 -32
  43. data/bin/lib/Image/ExifTool/Exif.pm +7 -4
  44. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  45. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  46. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  47. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  48. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  49. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  51. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  52. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  53. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  54. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  55. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  56. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GM.pm +1 -1
  58. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  59. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  60. data/bin/lib/Image/ExifTool/Geolocation.pm +17 -8
  61. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  62. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  63. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  64. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  65. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  66. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  67. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  68. data/bin/lib/Image/ExifTool/ICO.pm +1 -1
  69. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  70. data/bin/lib/Image/ExifTool/IPTC.pm +8 -5
  71. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Import.pm +5 -4
  74. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  75. data/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
  76. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  77. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  78. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  79. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  82. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  83. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  84. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  96. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  97. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  98. data/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
  99. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  100. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  101. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  102. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  103. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  104. data/bin/lib/Image/ExifTool/LigoGPS.pm +409 -0
  105. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  106. data/bin/lib/Image/ExifTool/M2TS.pm +22 -13
  107. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  109. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  110. data/bin/lib/Image/ExifTool/MISB.pm +1 -1
  111. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  114. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  115. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  116. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  117. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  118. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  119. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  120. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Matroska.pm +12 -4
  122. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  123. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  124. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  125. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  126. data/bin/lib/Image/ExifTool/Nikon.pm +166 -35
  127. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  128. data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
  129. data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  130. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  131. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  132. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  133. data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  134. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  135. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  138. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  143. data/bin/lib/Image/ExifTool/PNG.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  145. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  147. data/bin/lib/Image/ExifTool/Panasonic.pm +20 -2
  148. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  149. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  150. data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  151. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  152. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  153. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  155. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  156. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Protobuf.pm +48 -20
  158. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  159. data/bin/lib/Image/ExifTool/QuickTime.pm +206 -66
  160. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +21 -303
  161. data/bin/lib/Image/ExifTool/README +4 -0
  162. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  163. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  164. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  166. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  168. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  169. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  170. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Samsung.pm +2 -2
  172. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  175. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  177. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  178. data/bin/lib/Image/ExifTool/Sony.pm +1 -1
  179. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  180. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  181. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  182. data/bin/lib/Image/ExifTool/TagLookup.pm +3449 -3435
  183. data/bin/lib/Image/ExifTool/TagNames.pod +164 -47
  184. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  185. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  186. data/bin/lib/Image/ExifTool/Torrent.pm +3 -3
  187. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  188. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  189. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  190. data/bin/lib/Image/ExifTool/Vivo.pm +124 -0
  191. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  192. data/bin/lib/Image/ExifTool/WPG.pm +1 -1
  193. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  194. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  195. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  196. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  197. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  198. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  199. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  200. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  201. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +74 -43
  202. data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  203. data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
  204. data/bin/lib/Image/ExifTool/Writer.pl +21 -16
  205. data/bin/lib/Image/ExifTool/XISF.pm +1 -1
  206. data/bin/lib/Image/ExifTool/XMP.pm +1 -1
  207. data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
  208. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  209. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  210. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  211. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  212. data/bin/lib/Image/ExifTool.pm +34 -12
  213. data/bin/lib/Image/ExifTool.pod +57 -46
  214. data/bin/perl-Image-ExifTool.spec +1 -1
  215. data/lib/exiftool_vendored/version.rb +1 -1
  216. metadata +4 -2
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
12
12
  =head1 TAG TABLES
13
13
 
14
14
  The tables listed below give the names of all tags recognized by ExifTool.
15
- They contain a total of 28224 tags, with 17515 unique tag names.
15
+ They contain a total of 28258 tags, with 17524 unique tag names.
16
16
 
17
17
  B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
18
18
  table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
@@ -171,6 +171,7 @@ L<https://www.w3.org/Graphics/JPEG/jfif3.pdf> for the JPEG specification.
171
171
  PhotoMechanic PhotoMechanic
172
172
  MIE MIE
173
173
  Samsung Samsung Trailer
174
+ Vivo Vivo
174
175
  EmbeddedVideo no
175
176
  Insta360 no
176
177
  NikonApp no
@@ -7431,6 +7432,7 @@ These tags are used in Panasonic/Leica cameras.
7431
7432
  0x00d6 NoiseReductionStrength rational64s
7432
7433
  0x00e4 LensTypeModel int16u
7433
7434
  0x00e8 MinimumISO int32u
7435
+ 0x00e9 AFSubjectDetection int16u
7434
7436
  0x00ee DynamicRangeBoost int16u
7435
7437
  0x0e00 PrintIM PrintIM
7436
7438
  0x2003 TimeInfo Panasonic TimeInfo
@@ -12971,32 +12973,72 @@ Thermal parameters extracted from APP4 of some DJI RJPEG files.
12971
12973
 
12972
12974
  =head3 DJI Protobuf Tags
12973
12975
 
12974
- Tags found in protobuf-format DJI meta djmd and dbgi timed metadata. Only a
12975
- few tags are currently known, but unknown djmd tags may be extracted by
12976
- setting the Unknown option to 1 (or 2 to also extract unknown dbgi debug
12977
- tags). Tag ID's are composed of the corresponding .proto file name combined
12978
- with the hierarchical protobuf field numbers. The "dvtm_AVATA2.proto" file
12979
- is used by the DJI Avanta 2, and "dvtm_ac203.proto" by the OsmoAction4.
12976
+ Tags found in protobuf-format DJI djmd and dbgi timed metadata. The known
12977
+ tags listed below are extracted by default, but unknown djmd tags may be
12978
+ extracted as well by setting the Unknown option to 1, or 2 to also extract
12979
+ unknown dbgi debug tags. Tag ID's are composed of the corresponding .proto
12980
+ file name combined with the hierarchical protobuf field numbers.
12980
12981
 
12981
- Tag ID Tag Name Writable
12982
- ------ -------- --------
12983
- 'Protocol' Protocol no
12984
- 'dvtm_AVATA2_1-1-10' Model no
12985
- 'dvtm_AVATA2_2-2-3-1' SerialNumber no
12986
- 'dvtm_AVATA2_2-3-1' FrameWidth no
12987
- 'dvtm_AVATA2_2-3-2' FrameHeight no
12988
- 'dvtm_AVATA2_2-3-3' FrameRate no
12989
- 'dvtm_AVATA2_3-1-2' TimeStamp no
12990
- 'dvtm_AVATA2_3-4-4-1-2' GPSLatitude no
12991
- 'dvtm_AVATA2_3-4-4-1-3' GPSLongitude no
12992
- 'dvtm_ac203_1-1-10' Model no
12993
- 'dvtm_ac203_2-3-1' FrameWidth no
12994
- 'dvtm_ac203_2-3-2' FrameHeight no
12995
- 'dvtm_ac203_2-3-3' FrameRate no
12996
- 'dvtm_ac203_3-4-2-1-2' GPSLatitude no
12997
- 'dvtm_ac203_3-4-2-1-3' GPSLongitude no
12998
- 'dvtm_ac203_3-4-2-2' GPSAltitude no
12999
- 'dvtm_ac203_3-4-2-6-1' GPSDateTime no
12982
+ ExifTool currently extracts timed GPS plus a few other tags from DJI devices
12983
+ which use the following protocols: dvtm_AVATA2.proto (Avanta 2),
12984
+ dvtm_ac203.proto (Osmo Action 4), dvtm_ac204.proto (Osmo Action 5) and
12985
+ dvtm_wm265e.proto (Mavic 3).
12986
+
12987
+ Note that with the protobuf format, numerical tags missing from the output
12988
+ for a given protocol should be considered to have the default value of 0.
12989
+
12990
+ Tag ID Tag Name Writable
12991
+ ------ -------- --------
12992
+ 'Protocol' Protocol no
12993
+ 'dvtm_AVATA2_1-1-5' SerialNumber no
12994
+ 'dvtm_AVATA2_1-1-10' Model no
12995
+ 'dvtm_AVATA2_2-2-3-1' SerialNumber2 no
12996
+ 'dvtm_AVATA2_2-3' FrameInfo DJI FrameInfo
12997
+ 'dvtm_AVATA2_3-1-2' TimeStamp no
12998
+ 'dvtm_AVATA2_3-4-4-1' GPSInfo DJI GPSInfo
12999
+ 'dvtm_ac203_1-1-5' SerialNumber no
13000
+ 'dvtm_ac203_1-1-10' Model no
13001
+ 'dvtm_ac203_2-3' FrameInfo DJI FrameInfo
13002
+ 'dvtm_ac203_3-4-2-1' GPSInfo DJI GPSInfo
13003
+ 'dvtm_ac203_3-4-2-2' GPSAltitude no
13004
+ 'dvtm_ac203_3-4-2-6-1' GPSDateTime no
13005
+ 'dvtm_ac204_1-1-5' SerialNumber no
13006
+ 'dvtm_ac204_1-1-10' Model no
13007
+ 'dvtm_ac204_2-3' FrameInfo DJI FrameInfo
13008
+ 'dvtm_ac204_3-4-2-1' GPSInfo DJI GPSInfo
13009
+ 'dvtm_ac204_3-4-2-2' GPSAltitude no
13010
+ 'dvtm_ac204_3-4-2-6-1' GPSDateTime no
13011
+ 'dvtm_wm265e_1-1-5' SerialNumber no
13012
+ 'dvtm_wm265e_1-1-10' Model no
13013
+ 'dvtm_wm265e_2-2' FrameInfo DJI FrameInfo
13014
+ 'dvtm_wm265e_3-2-2-1' ISO no
13015
+ 'dvtm_wm265e_3-2-3-1' ShutterSpeed no
13016
+ 'dvtm_wm265e_3-2-6-1' DigitalZoom no
13017
+ 'dvtm_wm265e_3-3-3-1' DroneRoll no
13018
+ 'dvtm_wm265e_3-3-3-2' DronePitch no
13019
+ 'dvtm_wm265e_3-3-3-3' DroneYaw no
13020
+ 'dvtm_wm265e_3-3-4-1' GPSInfo DJI GPSInfo
13021
+ 'dvtm_wm265e_3-3-4-2' AbsoluteAltitude no
13022
+ 'dvtm_wm265e_3-3-5-1' RelativeAltitude no
13023
+ 'dvtm_wm265e_3-4-3-1' GimbalPitch no
13024
+ 'dvtm_wm265e_3-4-3-2' GimbalRoll no
13025
+ 'dvtm_wm265e_3-4-3-3' GimbalYaw no
13026
+
13027
+ =head3 DJI FrameInfo Tags
13028
+
13029
+ Tag ID Tag Name Writable
13030
+ ------ -------- --------
13031
+ 1 FrameWidth no
13032
+ 2 FrameHeight no
13033
+ 3 FrameRate no
13034
+
13035
+ =head3 DJI GPSInfo Tags
13036
+
13037
+ Tag ID Tag Name Writable
13038
+ ------ -------- --------
13039
+ 1 CoordinateUnits no
13040
+ 2 GPSLatitude no
13041
+ 3 GPSLongitude no
13000
13042
 
13001
13043
  =head2 FLIR Tags
13002
13044
 
@@ -17879,17 +17921,20 @@ These tags are used by the D4S, D750, D810, D5500, D7200 (FlashInfoVersion
17879
17921
 
17880
17922
  =head3 Nikon AFInfo2V0400 Tags
17881
17923
 
17924
+ AF information for Nikon cameras with the Expeed 7 processor: The Zf, Z6_3,
17925
+ Z8, Z9 and Z50_3.
17926
+
17882
17927
  Index1 Tag Name Writable
17883
17928
  ------ -------- --------
17884
17929
  0 AFInfo2Version no
17885
17930
  5 AFAreaMode int8u
17886
17931
  10 AFPointsUsed undef[51]
17932
+ AFPointsUsed undef[35]
17933
+ AFPointsUsed undef[27]
17887
17934
  62 AFImageWidth int16u
17888
17935
  64 AFImageHeight int16u
17889
17936
  66 AFAreaXPosition int16u
17890
- 67 FocusPositionHorizontal int8u~
17891
17937
  68 AFAreaYPosition int16u
17892
- 69 FocusPositionVertical int8u~
17893
17938
  70 AFAreaWidth int16u
17894
17939
  72 AFAreaHeight int16u
17895
17940
  74 FocusResult int8u
@@ -23657,6 +23702,16 @@ Tags written by the Sony Image Data Converter utility in ARW images.
23657
23702
  0xd100 VersionCreateDate string
23658
23703
  0xd101 VersionModifyDate string
23659
23704
 
23705
+ =head2 Vivo Tags
23706
+
23707
+ Proprietary information written by some Vivo phones.
23708
+
23709
+ Tag Name Writable
23710
+ -------- --------
23711
+ HDRImage no
23712
+ HiddenData no
23713
+ JSONInfo no
23714
+
23660
23715
  =head2 Unknown Tags
23661
23716
 
23662
23717
  The following tags are decoded in unsupported maker notes. Use the Unknown
@@ -29945,15 +30000,22 @@ appropriate table in the config file (see
29945
30000
  example.config in the full distribution for an
29946
30001
  example). Note that some tags with the same name but different ID's may
29947
30002
  exist in the same location, but the family 7 group names may be used to
29948
- differentiate these. ExifTool currently writes only top-level metadata in
29949
- QuickTime-based files; it extracts other track-specific and timed metadata,
29950
- but can not yet edit tags in these locations (with the exception of
29951
- track-level date/time tags).
30003
+ differentiate these.
29952
30004
 
29953
- Beware that the Keys tags are actually stored inside the ItemList in the
29954
- file, so deleting the ItemList group as a block (ie. C<-ItemList:all=>) also
29955
- deletes Keys tags. Instead, to preserve Keys tags the ItemList tags may be
29956
- deleted individually with C<-QuickTime:ItemList:all=>.
30005
+ ExifTool currently writes
30006
+ L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
30007
+ L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags> only as
30008
+ top-level metadata, but select Keys tags are may be written to the audio or
30009
+ video track. See the
30010
+ L<AudioKeys|Image::ExifTool::TagNames/QuickTime AudioKeys Tags> and
30011
+ L<VideoKeys|Image::ExifTool::TagNames/QuickTime VideoKeys Tags> tags for
30012
+ more information.
30013
+
30014
+ Beware that the values of the Keys tags are actually stored inside an
30015
+ ItemList atom in the file, so deleting the ItemList group as a block (ie.
30016
+ C<-ItemList:all=>) also deletes Keys tags. Instead, to preserve Keys tags
30017
+ the ItemList tags may be deleted individually with
30018
+ C<-QuickTime:ItemList:all=>.
29957
30019
 
29958
30020
  Alternate language tags may be accessed for
29959
30021
  L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
@@ -30051,7 +30113,7 @@ for the official QuickTime specification.
30051
30113
  The tags below are extracted from timed metadata in QuickTime and other
30052
30114
  formats of video files when the ExtractEmbedded option is used. Although
30053
30115
  most of these tags are combined into the single table below, ExifTool
30054
- currently reads 96 different types of timed GPS metadata from video files.
30116
+ currently reads 100 different types of timed GPS metadata from video files.
30055
30117
 
30056
30118
  Tag Name Writable
30057
30119
  -------- --------
@@ -30089,6 +30151,7 @@ currently reads 96 different types of timed GPS metadata from video files.
30089
30151
  ISO no
30090
30152
  JpgFromRaw no
30091
30153
  KiloCalories no
30154
+ MagneticVariation no
30092
30155
  PreviewImage no
30093
30156
  PreviewInfo QuickTime PreviewInfo
30094
30157
  RVMI_gReV QuickTime RVMI_gReV
@@ -30103,8 +30166,6 @@ currently reads 96 different types of timed GPS metadata from video files.
30103
30166
  Unknown01? no
30104
30167
  Unknown02? no
30105
30168
  Unknown03? no
30106
- Unknown_H? no
30107
- Unknown_M? no
30108
30169
  UserLabel no
30109
30170
  VerticalSpeed no
30110
30171
  VideoTimeStamp no
@@ -30255,15 +30316,11 @@ changed via the config file.
30255
30316
  'artist' Artist yes
30256
30317
  'artwork' Artwork yes
30257
30318
  'author' Author yes
30258
- 'camera.framereadouttimeinmicroseconds'
30259
- FrameReadoutTime yes
30260
- 'camera.identifier' CameraIdentifier yes
30261
30319
  'collection.user' UserCollection yes
30262
30320
  'com.android.capture.fps' AndroidCaptureFPS float
30263
30321
  'com.android.manufacturer' AndroidMake yes
30264
30322
  'com.android.model' AndroidModel yes
30265
30323
  'com.android.version' AndroidVersion yes
30266
- 'com.apple.photos.captureMode' CaptureMode yes
30267
30324
  'com.xiaomi.hdr10' XiaomiHDR10 int32s
30268
30325
  'com.xiaomi.preview_video_cover'
30269
30326
  XiaomiPreviewVideoCover int32s
@@ -30332,6 +30389,35 @@ changed via the config file.
30332
30389
  'xiaomi.exifInfo.videoinfo' XiaomiExifInfo yes
30333
30390
  'year' Year yes
30334
30391
 
30392
+ =head3 QuickTime AudioKeys Tags
30393
+
30394
+ Keys tags written in the audio track by some Apple devices. These tags
30395
+ belong to the ExifTool AudioKeys family 1 gorup.
30396
+
30397
+ Tag ID Tag Name Writable
30398
+ ------ -------- --------
30399
+ 'player.movie.audio.balance' Balance yes
30400
+ 'player.movie.audio.bass' Bass yes
30401
+ 'player.movie.audio.gain' AudioGain yes
30402
+ 'player.movie.audio.mute' Mute int8u
30403
+ 'player.movie.audio.pitchshift' PitchShift yes
30404
+ 'player.movie.audio.treble' Treble yes
30405
+
30406
+ =head3 QuickTime VideoKeys Tags
30407
+
30408
+ Keys tags written in the video track. These tags belong to the ExifTool
30409
+ VideoKeys family 1 gorup.
30410
+
30411
+ Tag ID Tag Name Writable
30412
+ ------ -------- --------
30413
+ 'camera.focal_length.35mm_equivalent'
30414
+ FocalLengthIn35mmFormat yes
30415
+ 'camera.framereadouttimeinmicroseconds'
30416
+ FrameReadoutTime yes
30417
+ 'camera.identifier' CameraIdentifier yes
30418
+ 'camera.lens_model' LensModel yes
30419
+ 'com.apple.photos.captureMode' CaptureMode yes
30420
+
30335
30421
  =head3 QuickTime FaceInfo Tags
30336
30422
 
30337
30423
  Tag ID Tag Name Writable
@@ -30431,7 +30517,9 @@ Tags found in Pittasoft Blackvue dashcam "free" data.
30431
30517
  'ipro' ItemProtection? no
30432
30518
  'iprp' ItemProperties QuickTime ItemProp
30433
30519
  'iref' ItemReference QuickTime ItemRef
30434
- 'keys' Keys QuickTime Keys
30520
+ 'keys' AudioKeys QuickTime AudioKeys
30521
+ VideoKeys QuickTime VideoKeys
30522
+ Keys QuickTime Keys
30435
30523
  'pitm' PrimaryItemReference no
30436
30524
  'uuid' MetaVersion no
30437
30525
  UUID-Unknown? no
@@ -33488,10 +33576,10 @@ L<https://www.matroska.org/technical/tagging.html>).
33488
33576
  'GENRE' Genre no
33489
33577
  'IMDB' IMDB no
33490
33578
  'INITIAL_KEY' InitialKey no
33491
- 'INSTRUMENTS' Instruments no
33579
+ 'INSTRUMENTS' Instruments no+
33492
33580
  'ISBN' ISBN no
33493
33581
  'ISRC' ISRC no
33494
- 'KEYWORDS' Keywords no
33582
+ 'KEYWORDS' Keywords no+
33495
33583
  'LABEL' Label no
33496
33584
  'LABEL_CODE' LabelCode no
33497
33585
  'LAW_RATING' LawRating no
@@ -39660,6 +39748,35 @@ existing StringFileInfo tags even if not listed in this table.
39660
39748
  ProductVersion no
39661
39749
  SpecialBuild no
39662
39750
 
39751
+ =head3 EXE DebugRSDS Tags
39752
+
39753
+ CodeView RSDS debug information found in some Windows EXE files.
39754
+
39755
+ Index1 Tag Name Writable
39756
+ ------ -------- --------
39757
+ 0 PDBModifyDate no
39758
+ 20 PDBAge no
39759
+ 24 PDBFileName no
39760
+
39761
+ =head3 EXE DebugNB10 Tags
39762
+
39763
+ CodeView NB10 debug information found in some Windows EXE files.
39764
+
39765
+ Index1 Tag Name Writable
39766
+ ------ -------- --------
39767
+ 0 PDBModifyDate no
39768
+ 8 PDBCreateDate no
39769
+ 12 PDBAge no
39770
+ 16 PDBFileName no
39771
+
39772
+ =head3 EXE Misc Tags
39773
+
39774
+ Miscellaneous CodeView debug information in Windows EXE files.
39775
+
39776
+ Index1 Tag Name Writable
39777
+ ------ -------- --------
39778
+ 12 EXEFileName no
39779
+
39663
39780
  =head3 EXE MachO Tags
39664
39781
 
39665
39782
  Information extracted from Mach-O (Mac OS X) executable files and DYLIB
@@ -41513,7 +41630,7 @@ L<Image::ExifTool::BuildTagLookup|Image::ExifTool::BuildTagLookup>.
41513
41630
 
41514
41631
  =head1 AUTHOR
41515
41632
 
41516
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
41633
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
41517
41634
 
41518
41635
  This library is free software; you can redistribute it and/or modify it
41519
41636
  under the same terms as Perl itself.
@@ -222,7 +222,7 @@ characteristics of TXT and CSV files.
222
222
 
223
223
  =head1 AUTHOR
224
224
 
225
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
225
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
226
226
 
227
227
  This library is free software; you can redistribute it and/or modify it
228
228
  under the same terms as Perl itself.
@@ -122,7 +122,7 @@ information from Theora video streams.
122
122
 
123
123
  =head1 AUTHOR
124
124
 
125
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
125
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
126
126
 
127
127
  This library is free software; you can redistribute it and/or modify it
128
128
  under the same terms as Perl itself.
@@ -14,7 +14,7 @@ use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
 
17
- $VERSION = '1.06';
17
+ $VERSION = '1.07';
18
18
 
19
19
  sub ReadBencode($$$);
20
20
  sub ExtractTags($$$;$$@);
@@ -282,7 +282,7 @@ sub ProcessTorrent($$)
282
282
  my $dict = ReadBencode($et, $raf, \$buff);
283
283
  my $err = $$raf{BencodeError};
284
284
  $et->Warn("Bencode error: $err") if $err;
285
- if (ref $dict eq 'HASH' and ($$dict{announce} or $$dict{'created by'})) {
285
+ if (ref $dict eq 'HASH' and ($$dict{announce} or $$dict{'created by'} or $$dict{info})) {
286
286
  $et->SetFileType();
287
287
  my $tagTablePtr = GetTagTable('Image::ExifTool::Torrent::Main');
288
288
  ExtractTags($et, $dict, $tagTablePtr) and $success = 1;
@@ -309,7 +309,7 @@ bencoded information from BitTorrent files.
309
309
 
310
310
  =head1 AUTHOR
311
311
 
312
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
312
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
313
313
 
314
314
  This library is free software; you can redistribute it and/or modify it
315
315
  under the same terms as Perl itself.
@@ -53,7 +53,7 @@ unknown manufacturers.
53
53
 
54
54
  =head1 AUTHOR
55
55
 
56
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
56
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
57
57
 
58
58
  This library is free software; you can redistribute it and/or modify it
59
59
  under the same terms as Perl itself.
@@ -430,7 +430,7 @@ information from vCard VCF and iCalendar ICS files.
430
430
 
431
431
  =head1 AUTHOR
432
432
 
433
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
433
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
434
434
 
435
435
  This library is free software; you can redistribute it and/or modify it
436
436
  under the same terms as Perl itself.
@@ -678,7 +678,7 @@ ExifTool Validate option is enabled.
678
678
 
679
679
  =head1 AUTHOR
680
680
 
681
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
681
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
682
682
 
683
683
  This library is free software; you can redistribute it and/or modify it
684
684
  under the same terms as Perl itself.
@@ -0,0 +1,124 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: Vivo.pm
3
+ #
4
+ # Description: Read trailer written by Vivo phones
5
+ #
6
+ # Revisions: 2025-01-13 - P. Harvey Created
7
+ #------------------------------------------------------------------------------
8
+
9
+ package Image::ExifTool::Vivo;
10
+
11
+ use strict;
12
+ use vars qw($VERSION);
13
+ use Image::ExifTool qw(:DataAccess :Utils);
14
+ use Image::ExifTool::XMP;
15
+
16
+ $VERSION = '1.00';
17
+
18
+ %Image::ExifTool::Vivo::Main = (
19
+ GROUPS => { 0 => 'Trailer', 1 => 'Vivo', 2 => 'Image' },
20
+ VARS => { NO_ID => 1 },
21
+ NOTES => 'Proprietary information written by some Vivo phones.',
22
+ # (don't know for sure what type of image this is, but it is in JPEG format)
23
+ HDRImage => {
24
+ Notes => 'highlights of HDR image',
25
+ Groups => { 2 => 'Preview' },
26
+ Binary => 1,
27
+ },
28
+ JSONInfo => { },
29
+ HiddenData => {
30
+ Notes => 'hidden in EXIF, not in trailer. This data is lost if the file is edited',
31
+ Groups => { 0 => 'EXIF' },
32
+ },
33
+ );
34
+
35
+ #------------------------------------------------------------------------------
36
+ # Process Vivo trailer
37
+ # Inputs: 0) ExifTool object reference, 1) dirInfo reference
38
+ # Returns: 1 on success, -1 if we must scan for the start of the trailer
39
+ # - takes Offset as positive offset from end of trailer to end of file,
40
+ # and returns DataPos and DirLen, and updates OutFile when writing
41
+ sub ProcessVivo($$)
42
+ {
43
+ my ($et, $dirInfo) = @_;
44
+ my $raf = $$dirInfo{RAF};
45
+ my $buff;
46
+
47
+ # return now unless we are at a position to scan for the trailer
48
+ # (must scan because the trailer footer doesn't indicate the trailer length)
49
+ return -1 unless $$dirInfo{ScanForTrailer};
50
+
51
+ my $pos = $raf->Tell();
52
+ $raf->Seek(0, 2) or return 0;
53
+ my $len = $raf->Tell() - $pos - $$dirInfo{Offset};
54
+ $raf->Seek($pos, 0) or return 0;
55
+ return 0 unless $len > 0 and $len < 1e7 and $raf->Read($buff, $len) == $len and
56
+ $buff =~ /\xff{4}\x1b\*9HWfu\x84\x93\xa2\xb1$/ and # validate footer
57
+ $buff =~ /(streamdata|vivo\{")/g; # find start
58
+ my $start = pos($buff) - length($1);
59
+ if ($start) {
60
+ $pos += $start;
61
+ $len -= $start;
62
+ $buff = substr($buff, $start);
63
+ }
64
+ # set trailer position and length
65
+ @$dirInfo{'DataPos','DirLen'} = ($pos, $len);
66
+
67
+ if ($$dirInfo{OutFile}) {
68
+ if ($$et{DEL_GROUP}{Vivo}) {
69
+ $et->VPrint(0, " Deleting Vivo trailer ($len bytes)\n");
70
+ ++$$et{CHANGED};
71
+ } else {
72
+ $et->VPrint(0, " Copying Vivo trailer ($len bytes)\n");
73
+ Write($$dirInfo{OutFile}, $buff);
74
+ }
75
+ } else {
76
+ $et->DumpTrailer($dirInfo) if $$et{OPTIONS}{Verbose} or $$et{HTML_DUMP};
77
+ my $tbl = GetTagTable('Image::ExifTool::Vivo::Main');
78
+ pos($buff) = 0; # rewind search to start of buffer
79
+ if ($buff =~ /^streamdata\xff\xd8\xff/ and $buff =~ /\xff\xd9stream(info|coun)/g) {
80
+ $et->HandleTag($tbl, HDRImage => substr($buff, 10, pos($buff)-20));
81
+ }
82
+ # continue looking for Vivo JSON data
83
+ if ($buff =~ /vivo\{"/g) {
84
+ my $jsonStart = pos($buff) - 2;
85
+ if ($buff =~ /\}\0/g) {
86
+ my $jsonLen = pos($buff) - 1 - $jsonStart;
87
+ $et->HandleTag($tbl, JSONInfo => substr($buff, $jsonStart, $jsonLen));
88
+ }
89
+ }
90
+ }
91
+ return 1;
92
+ }
93
+
94
+ 1; # end
95
+
96
+ __END__
97
+
98
+ =head1 NAME
99
+
100
+ Image::ExifTool::Vivo - Read trailer written by Vivo phones
101
+
102
+ =head1 SYNOPSIS
103
+
104
+ This module is used by Image::ExifTool
105
+
106
+ =head1 DESCRIPTION
107
+
108
+ This module contains definitions required by Image::ExifTool to read
109
+ metadata the trailer written by some Vivo phones.
110
+
111
+ =head1 AUTHOR
112
+
113
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
114
+
115
+ This library is free software; you can redistribute it and/or modify it
116
+ under the same terms as Perl itself.
117
+
118
+ =head1 SEE ALSO
119
+
120
+ L<Image::ExifTool::TagNames/Vivo Tags>,
121
+ L<Image::ExifTool(3pm)|Image::ExifTool>
122
+
123
+ =cut
124
+
@@ -228,7 +228,7 @@ information from Ogg Vorbis audio headers.
228
228
 
229
229
  =head1 AUTHOR
230
230
 
231
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
231
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
232
232
 
233
233
  This library is free software; you can redistribute it and/or modify it
234
234
  under the same terms as Perl itself.
@@ -271,7 +271,7 @@ This module contains definitions required by Image::ExifTool to read WPG
271
271
 
272
272
  =head1 AUTHOR
273
273
 
274
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
274
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
275
275
 
276
276
  This library is free software; you can redistribute it and/or modify it
277
277
  under the same terms as Perl itself.
@@ -297,7 +297,7 @@ This module contains definitions required by Image::ExifTool to read WTV
297
297
 
298
298
  =head1 AUTHOR
299
299
 
300
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
300
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
301
301
 
302
302
  This library is free software; you can redistribute it and/or modify it
303
303
  under the same terms as Perl itself.
@@ -630,7 +630,7 @@ JPEG files, and would lead to far fewer problems with corrupted metadata.
630
630
 
631
631
  =head1 AUTHOR
632
632
 
633
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
633
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
634
634
 
635
635
  This library is free software; you can redistribute it and/or modify it
636
636
  under the same terms as Perl itself.
@@ -2725,7 +2725,7 @@ This file contains routines to write EXIF metadata.
2725
2725
 
2726
2726
  =head1 AUTHOR
2727
2727
 
2728
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2728
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
2729
2729
 
2730
2730
  This library is free software; you can redistribute it and/or modify it
2731
2731
  under the same terms as Perl itself.
@@ -711,7 +711,7 @@ seldom-used routines.
711
711
 
712
712
  =head1 AUTHOR
713
713
 
714
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
714
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
715
715
 
716
716
  This library is free software; you can redistribute it and/or modify it
717
717
  under the same terms as Perl itself.
@@ -779,7 +779,7 @@ C<PDF-update> pseudo group).
779
779
 
780
780
  =head1 AUTHOR
781
781
 
782
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
782
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
783
783
 
784
784
  This library is free software; you can redistribute it and/or modify it
785
785
  under the same terms as Perl itself.
@@ -401,7 +401,7 @@ strings).
401
401
 
402
402
  =head1 AUTHOR
403
403
 
404
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
404
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
405
405
 
406
406
  This library is free software; you can redistribute it and/or modify it
407
407
  under the same terms as Perl itself.
@@ -257,7 +257,7 @@ default resource name, and applied if no appended name is provided.
257
257
 
258
258
  =head1 AUTHOR
259
259
 
260
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
260
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
261
261
 
262
262
  This library is free software; you can redistribute it and/or modify it
263
263
  under the same terms as Perl itself.
@@ -687,7 +687,7 @@ Thanks to Tim Kordick for his help testing the EPS writer.
687
687
 
688
688
  =head1 AUTHOR
689
689
 
690
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
690
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
691
691
 
692
692
  This library is free software; you can redistribute it and/or modify it
693
693
  under the same terms as Perl itself.