exiftool_vendored 9.78.0 → 9.99.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

Files changed (1409) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Image-ExifTool-9.99/Changes +7164 -0
  3. data/bin/Image-ExifTool-9.99/MANIFEST +937 -0
  4. data/bin/Image-ExifTool-9.99/META.yml +27 -0
  5. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/Makefile.PL +0 -0
  6. data/bin/Image-ExifTool-9.99/README +233 -0
  7. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/exif2iptc.args +0 -0
  8. data/bin/Image-ExifTool-9.99/arg_files/exif2xmp.args +45 -0
  9. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/gps2xmp.args +0 -0
  10. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/iptc2exif.args +0 -0
  11. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/iptc2xmp.args +0 -0
  12. data/bin/Image-ExifTool-9.99/arg_files/iptcCore.args +224 -0
  13. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/pdf2xmp.args +0 -0
  14. data/bin/Image-ExifTool-9.99/arg_files/xmp2exif.args +46 -0
  15. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/xmp2gps.args +0 -0
  16. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/xmp2iptc.args +0 -0
  17. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/arg_files/xmp2pdf.args +0 -0
  18. data/bin/Image-ExifTool-9.99/config_files/convert_regions.config +81 -0
  19. data/bin/Image-ExifTool-9.99/config_files/example.config +343 -0
  20. data/bin/Image-ExifTool-9.99/config_files/photoshop_paths.config +54 -0
  21. data/bin/Image-ExifTool-9.99/config_files/picasa_faces.config +369 -0
  22. data/bin/Image-ExifTool-9.99/exiftool +6245 -0
  23. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/fmt_files/gpx.fmt +0 -0
  24. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/fmt_files/gpx_wpt.fmt +0 -0
  25. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/fmt_files/kml.fmt +0 -0
  26. data/bin/Image-ExifTool-9.99/html/ExifTool.html +2067 -0
  27. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/MIE1.1-20070121.pdf +0 -0
  28. data/bin/Image-ExifTool-9.99/html/Shift.html +173 -0
  29. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/AFCP.html +0 -0
  30. data/bin/Image-ExifTool-9.99/html/TagNames/AIFF.html +146 -0
  31. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/APE.html +0 -0
  32. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/APP12.html +0 -0
  33. data/bin/Image-ExifTool-9.99/html/TagNames/ASF.html +1066 -0
  34. data/bin/Image-ExifTool-9.99/html/TagNames/Apple.html +74 -0
  35. data/bin/Image-ExifTool-9.99/html/TagNames/Audible.html +177 -0
  36. data/bin/Image-ExifTool-9.99/html/TagNames/BMP.html +110 -0
  37. data/bin/Image-ExifTool-9.99/html/TagNames/Canon.html +9318 -0
  38. data/bin/Image-ExifTool-9.99/html/TagNames/CanonCustom.html +2081 -0
  39. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/CanonRaw.html +0 -0
  40. data/bin/Image-ExifTool-9.99/html/TagNames/CanonVRD.html +1958 -0
  41. data/bin/Image-ExifTool-9.99/html/TagNames/Casio.html +1606 -0
  42. data/bin/Image-ExifTool-9.99/html/TagNames/Composite.html +704 -0
  43. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/DICOM.html +0 -0
  44. data/bin/Image-ExifTool-9.99/html/TagNames/DNG.html +289 -0
  45. data/bin/Image-ExifTool-9.99/html/TagNames/DPX.html +224 -0
  46. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/DV.html +0 -0
  47. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/DarwinCore.html +0 -0
  48. data/bin/Image-ExifTool-9.99/html/TagNames/DjVu.html +313 -0
  49. data/bin/Image-ExifTool-9.99/html/TagNames/EXE.html +697 -0
  50. data/bin/Image-ExifTool-9.99/html/TagNames/EXIF.html +3381 -0
  51. data/bin/Image-ExifTool-9.99/html/TagNames/Extra.html +437 -0
  52. data/bin/Image-ExifTool-9.99/html/TagNames/FLAC.html +183 -0
  53. data/bin/Image-ExifTool-9.99/html/TagNames/FLIR.html +1340 -0
  54. data/bin/Image-ExifTool-9.99/html/TagNames/Flash.html +419 -0
  55. data/bin/Image-ExifTool-9.99/html/TagNames/FlashPix.html +1465 -0
  56. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Font.html +0 -0
  57. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/FotoStation.html +0 -0
  58. data/bin/Image-ExifTool-9.99/html/TagNames/FujiFilm.html +813 -0
  59. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GE.html +0 -0
  60. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GIF.html +0 -0
  61. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GIMP.html +0 -0
  62. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/GPS.html +0 -0
  63. data/bin/Image-ExifTool-9.99/html/TagNames/GeoTiff.html +2298 -0
  64. data/bin/Image-ExifTool-9.99/html/TagNames/H264.html +393 -0
  65. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/HP.html +0 -0
  66. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/HTML.html +0 -0
  67. data/bin/Image-ExifTool-9.99/html/TagNames/ICC_Profile.html +711 -0
  68. data/bin/Image-ExifTool-9.99/html/TagNames/ID3.html +1593 -0
  69. data/bin/Image-ExifTool-9.99/html/TagNames/IPTC.html +903 -0
  70. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/ITC.html +0 -0
  71. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/JFIF.html +0 -0
  72. data/bin/Image-ExifTool-9.99/html/TagNames/JPEG.html +602 -0
  73. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/JVC.html +0 -0
  74. data/bin/Image-ExifTool-9.99/html/TagNames/Jpeg2000.html +464 -0
  75. data/bin/Image-ExifTool-9.99/html/TagNames/Kodak.html +1891 -0
  76. data/bin/Image-ExifTool-9.99/html/TagNames/KyoceraRaw.html +92 -0
  77. data/bin/Image-ExifTool-9.99/html/TagNames/LNK.html +478 -0
  78. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Leaf.html +0 -0
  79. data/bin/Image-ExifTool-9.99/html/TagNames/Lytro.html +122 -0
  80. data/bin/Image-ExifTool-9.99/html/TagNames/M2TS.html +133 -0
  81. data/bin/Image-ExifTool-9.99/html/TagNames/MIE.html +1026 -0
  82. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/MIFF.html +0 -0
  83. data/bin/Image-ExifTool-9.99/html/TagNames/MNG.html +847 -0
  84. data/bin/Image-ExifTool-9.99/html/TagNames/MOI.html +60 -0
  85. data/bin/Image-ExifTool-9.99/html/TagNames/MPC.html +97 -0
  86. data/bin/Image-ExifTool-9.99/html/TagNames/MPEG.html +249 -0
  87. data/bin/Image-ExifTool-9.99/html/TagNames/MPF.html +199 -0
  88. data/bin/Image-ExifTool-9.99/html/TagNames/MWG.html +577 -0
  89. data/bin/Image-ExifTool-9.99/html/TagNames/MXF.html +6673 -0
  90. data/bin/Image-ExifTool-9.99/html/TagNames/Matroska.html +1069 -0
  91. data/bin/Image-ExifTool-9.99/html/TagNames/Microsoft.html +2073 -0
  92. data/bin/Image-ExifTool-9.99/html/TagNames/Minolta.html +2612 -0
  93. data/bin/Image-ExifTool-9.99/html/TagNames/MinoltaRaw.html +326 -0
  94. data/bin/Image-ExifTool-9.99/html/TagNames/Nikon.html +4814 -0
  95. data/bin/Image-ExifTool-9.99/html/TagNames/NikonCapture.html +799 -0
  96. data/bin/Image-ExifTool-9.99/html/TagNames/NikonCustom.html +5633 -0
  97. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Nintendo.html +0 -0
  98. data/bin/Image-ExifTool-9.99/html/TagNames/OOXML.html +280 -0
  99. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Ogg.html +0 -0
  100. data/bin/Image-ExifTool-9.99/html/TagNames/Olympus.html +3531 -0
  101. data/bin/Image-ExifTool-9.99/html/TagNames/OpenEXR.html +222 -0
  102. data/bin/Image-ExifTool-9.99/html/TagNames/PDF.html +745 -0
  103. data/bin/Image-ExifTool-9.99/html/TagNames/PGF.html +80 -0
  104. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PICT.html +0 -0
  105. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PLIST.html +0 -0
  106. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PNG.html +0 -0
  107. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PSP.html +0 -0
  108. data/bin/Image-ExifTool-9.99/html/TagNames/Palm.html +388 -0
  109. data/bin/Image-ExifTool-9.99/html/TagNames/Panasonic.html +1690 -0
  110. data/bin/Image-ExifTool-9.99/html/TagNames/PanasonicRaw.html +451 -0
  111. data/bin/Image-ExifTool-9.99/html/TagNames/Pentax.html +4655 -0
  112. data/bin/Image-ExifTool-9.99/html/TagNames/PhaseOne.html +253 -0
  113. data/bin/Image-ExifTool-9.99/html/TagNames/PhotoCD.html +402 -0
  114. data/bin/Image-ExifTool-9.99/html/TagNames/PhotoMechanic.html +196 -0
  115. data/bin/Image-ExifTool-9.99/html/TagNames/Photoshop.html +570 -0
  116. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PostScript.html +0 -0
  117. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/PrintIM.html +0 -0
  118. data/bin/Image-ExifTool-9.99/html/TagNames/Qualcomm.html +4778 -0
  119. data/bin/Image-ExifTool-9.99/html/TagNames/QuickTime.html +6036 -0
  120. data/bin/Image-ExifTool-9.99/html/TagNames/RIFF.html +1314 -0
  121. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/RSRC.html +0 -0
  122. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/RTF.html +0 -0
  123. data/bin/Image-ExifTool-9.99/html/TagNames/Radiance.html +87 -0
  124. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Rawzor.html +0 -0
  125. data/bin/Image-ExifTool-9.99/html/TagNames/Real.html +780 -0
  126. data/bin/Image-ExifTool-9.99/html/TagNames/Reconyx.html +132 -0
  127. data/bin/Image-ExifTool-9.99/html/TagNames/Ricoh.html +800 -0
  128. data/bin/Image-ExifTool-9.99/html/TagNames/Samsung.html +604 -0
  129. data/bin/Image-ExifTool-9.99/html/TagNames/Sanyo.html +366 -0
  130. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Scalado.html +0 -0
  131. data/bin/Image-ExifTool-9.99/html/TagNames/Shortcuts.html +276 -0
  132. data/bin/Image-ExifTool-9.99/html/TagNames/Sigma.html +469 -0
  133. data/bin/Image-ExifTool-9.99/html/TagNames/SigmaRaw.html +438 -0
  134. data/bin/Image-ExifTool-9.99/html/TagNames/Sony.html +8640 -0
  135. data/bin/Image-ExifTool-9.99/html/TagNames/SonyIDC.html +267 -0
  136. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Stim.html +0 -0
  137. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Theora.html +0 -0
  138. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Torrent.html +0 -0
  139. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Unknown.html +0 -0
  140. data/bin/Image-ExifTool-9.99/html/TagNames/VCard.html +433 -0
  141. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/Vorbis.html +0 -0
  142. data/bin/Image-ExifTool-9.99/html/TagNames/XMP.html +9175 -0
  143. data/bin/Image-ExifTool-9.99/html/TagNames/ZIP.html +205 -0
  144. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/iWork.html +0 -0
  145. data/bin/Image-ExifTool-9.99/html/TagNames/index.html +211 -0
  146. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/TagNames/style.css +0 -0
  147. data/bin/Image-ExifTool-9.99/html/ancient_history.html +7608 -0
  148. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/canon_raw.html +0 -0
  149. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/commentary.html +0 -0
  150. data/bin/Image-ExifTool-9.99/html/config.html +355 -0
  151. data/bin/Image-ExifTool-9.99/html/data_members.html +279 -0
  152. data/bin/Image-ExifTool-9.99/html/exiftool_pod.html +2503 -0
  153. data/bin/Image-ExifTool-9.99/html/faq.html +1530 -0
  154. data/bin/Image-ExifTool-9.99/html/filename.html +352 -0
  155. data/bin/Image-ExifTool-9.99/html/geotag.html +654 -0
  156. data/bin/Image-ExifTool-9.99/html/history.html +488 -0
  157. data/bin/Image-ExifTool-9.99/html/htmldump.html +738 -0
  158. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/idiosyncracies.html +0 -0
  159. data/bin/Image-ExifTool-9.99/html/index.html +1330 -0
  160. data/bin/Image-ExifTool-9.99/html/install.html +251 -0
  161. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/metafiles.html +0 -0
  162. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/overview.png +0 -0
  163. data/bin/Image-ExifTool-9.99/html/standards.html +286 -0
  164. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/struct.html +0 -0
  165. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/style.css +0 -0
  166. data/bin/Image-ExifTool-9.99/html/under.html +128 -0
  167. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/verbose.html +0 -0
  168. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/html/writing.html +0 -0
  169. data/bin/Image-ExifTool-9.99/lib/File/RandomAccess.pm +378 -0
  170. data/bin/Image-ExifTool-9.99/lib/File/RandomAccess.pod +231 -0
  171. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool.pm +7498 -0
  172. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool.pod +2494 -0
  173. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/AES.pm +501 -0
  174. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/AFCP.pm +286 -0
  175. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/AIFF.pm +289 -0
  176. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/APE.pm +264 -0
  177. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/APP12.pm +322 -0
  178. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ASF.pm +885 -0
  179. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Apple.pm +126 -0
  180. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Audible.pm +317 -0
  181. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BMP.pm +179 -0
  182. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BZZ.pm +472 -0
  183. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BigTIFF.pm +282 -0
  184. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/BuildTagLookup.pm +2508 -0
  185. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Canon.pm +8457 -0
  186. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CanonCustom.pm +2582 -0
  187. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CanonRaw.pm +910 -0
  188. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CanonVRD.pm +2228 -0
  189. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/CaptureOne.pm +235 -0
  190. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Casio.pm +2058 -0
  191. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Charset.pm +396 -0
  192. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  193. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  194. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  195. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  196. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  197. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  198. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  199. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  200. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  201. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  202. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  203. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  204. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  205. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  206. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  207. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  208. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  209. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  210. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  211. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  212. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  213. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  214. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  215. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  216. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  217. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  218. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  219. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  220. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  221. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  222. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DICOM.pm +3874 -0
  223. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DNG.pm +835 -0
  224. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DPX.pm +181 -0
  225. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DV.pm +319 -0
  226. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DarwinCore.pm +322 -0
  227. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/DjVu.pm +376 -0
  228. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/EXE.pm +1250 -0
  229. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Exif.pm +4672 -0
  230. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FLAC.pm +297 -0
  231. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FLIR.pm +1533 -0
  232. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Fixup.pm +354 -0
  233. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Flash.pm +755 -0
  234. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FlashPix.pm +1935 -0
  235. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Font.pm +647 -0
  236. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FotoStation.pm +261 -0
  237. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/FujiFilm.pm +1195 -0
  238. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GE.pm +81 -0
  239. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GIF.pm +542 -0
  240. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GIMP.pm +258 -0
  241. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GPS.pm +558 -0
  242. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/GeoTiff.pm +2263 -0
  243. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Geotag.pm +1219 -0
  244. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/H264.pm +1112 -0
  245. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/HP.pm +263 -0
  246. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/HTML.pm +576 -0
  247. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/HtmlDump.pm +895 -0
  248. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ICC_Profile.pm +1000 -0
  249. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ID3.pm +1569 -0
  250. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/IPTC.pm +1264 -0
  251. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ITC.pm +215 -0
  252. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Import.pm +329 -0
  253. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/InDesign.pm +277 -0
  254. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/JPEG.pm +605 -0
  255. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/JPEGDigest.pm +2511 -0
  256. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/JVC.pm +130 -0
  257. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Jpeg2000.pm +873 -0
  258. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Kodak.pm +2096 -0
  259. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  260. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/LNK.pm +723 -0
  261. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/cs.pm +1588 -0
  262. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/de.pm +8692 -0
  263. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/en_ca.pm +848 -0
  264. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/en_gb.pm +863 -0
  265. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/es.pm +4019 -0
  266. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/fi.pm +2854 -0
  267. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/fr.pm +4758 -0
  268. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/it.pm +7918 -0
  269. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/ja.pm +5835 -0
  270. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/ko.pm +2330 -0
  271. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/nl.pm +3222 -0
  272. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/pl.pm +1276 -0
  273. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/ru.pm +768 -0
  274. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/sv.pm +638 -0
  275. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/tr.pm +544 -0
  276. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/zh_cn.pm +1330 -0
  277. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lang/zh_tw.pm +801 -0
  278. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Leaf.pm +516 -0
  279. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Lytro.pm +217 -0
  280. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/M2TS.pm +725 -0
  281. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MIE.pm +2564 -0
  282. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MIEUnits.pod +377 -0
  283. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MIFF.pm +279 -0
  284. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MNG.pm +684 -0
  285. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MOI.pm +158 -0
  286. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MPC.pm +156 -0
  287. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MPEG.pm +736 -0
  288. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MPF.pm +292 -0
  289. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MWG.pm +753 -0
  290. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MXF.pm +3032 -0
  291. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MakerNotes.pm +1713 -0
  292. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Matroska.pm +892 -0
  293. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Microsoft.pm +893 -0
  294. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Minolta.pm +2950 -0
  295. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/MinoltaRaw.pm +534 -0
  296. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Nikon.pm +6728 -0
  297. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/NikonCapture.pm +940 -0
  298. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/NikonCustom.pm +6331 -0
  299. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Nintendo.pm +128 -0
  300. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/OOXML.pm +409 -0
  301. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Ogg.pm +237 -0
  302. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Olympus.pm +3796 -0
  303. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/OpenEXR.pm +324 -0
  304. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PDF.pm +2328 -0
  305. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PGF.pm +143 -0
  306. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PICT.pm +1260 -0
  307. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PLIST.pm +453 -0
  308. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PNG.pm +1190 -0
  309. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PPM.pm +169 -0
  310. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PSP.pm +306 -0
  311. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Palm.pm +403 -0
  312. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Panasonic.pm +2366 -0
  313. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PanasonicRaw.pm +639 -0
  314. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Pentax.pm +5941 -0
  315. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PhaseOne.pm +551 -0
  316. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PhotoCD.pm +507 -0
  317. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  318. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Photoshop.pm +650 -0
  319. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PostScript.pm +696 -0
  320. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/PrintIM.pm +125 -0
  321. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  322. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/QuickTime.pm +6572 -0
  323. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/README +981 -0
  324. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/RIFF.pm +1478 -0
  325. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/RSRC.pm +241 -0
  326. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/RTF.pm +383 -0
  327. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Radiance.pm +144 -0
  328. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Rawzor.pm +189 -0
  329. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Real.pm +739 -0
  330. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Reconyx.pm +190 -0
  331. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Ricoh.pm +1121 -0
  332. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Samsung.pm +1168 -0
  333. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Sanyo.pm +440 -0
  334. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Scalado.pm +141 -0
  335. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Shift.pl +596 -0
  336. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Shortcuts.pm +335 -0
  337. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Sigma.pm +684 -0
  338. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/SigmaRaw.pm +668 -0
  339. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Sony.pm +9086 -0
  340. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/SonyIDC.pm +331 -0
  341. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Stim.pm +196 -0
  342. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/TagInfoXML.pm +826 -0
  343. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/TagLookup.pm +8931 -0
  344. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/TagNames.pod +29124 -0
  345. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Theora.pm +145 -0
  346. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Torrent.pm +317 -0
  347. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Unknown.pm +66 -0
  348. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/VCard.pm +405 -0
  349. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Vorbis.pm +238 -0
  350. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  351. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteExif.pl +3743 -0
  352. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteIPTC.pl +702 -0
  353. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePDF.pl +768 -0
  354. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePNG.pl +390 -0
  355. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  356. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WritePostScript.pl +772 -0
  357. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteQuickTime.pl +358 -0
  358. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/WriteXMP.pl +1367 -0
  359. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/Writer.pl +6164 -0
  360. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/XMP.pm +4034 -0
  361. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/XMP2.pl +1579 -0
  362. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/XMPStruct.pl +826 -0
  363. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/ZIP.pm +667 -0
  364. data/bin/Image-ExifTool-9.99/lib/Image/ExifTool/iWork.pm +223 -0
  365. data/bin/Image-ExifTool-9.99/perl-Image-ExifTool.spec +112 -0
  366. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/AFCP.t +0 -0
  367. data/bin/Image-ExifTool-9.99/t/AFCP_2.out +39 -0
  368. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/AFCP_3.out +0 -0
  369. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/AIFF.t +0 -0
  370. data/bin/Image-ExifTool-9.99/t/AIFF_2.out +33 -0
  371. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/APE.t +0 -0
  372. data/bin/Image-ExifTool-9.99/t/APE_2.out +29 -0
  373. data/bin/Image-ExifTool-9.99/t/APE_3.out +58 -0
  374. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ASF.t +0 -0
  375. data/bin/Image-ExifTool-9.99/t/ASF_2.out +56 -0
  376. data/bin/Image-ExifTool-9.99/t/Audible.t +28 -0
  377. data/bin/Image-ExifTool-9.99/t/Audible_2.out +40 -0
  378. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/BMP.t +0 -0
  379. data/bin/Image-ExifTool-9.99/t/BMP_2.out +23 -0
  380. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/BigTIFF.t +0 -0
  381. data/bin/Image-ExifTool-9.99/t/BigTIFF_2.out +21 -0
  382. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Canon.t +0 -0
  383. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonRaw.t +0 -0
  384. data/bin/Image-ExifTool-9.99/t/CanonRaw_2.out +169 -0
  385. data/bin/Image-ExifTool-9.99/t/CanonRaw_4.out +220 -0
  386. data/bin/Image-ExifTool-9.99/t/CanonRaw_5.out +209 -0
  387. data/bin/Image-ExifTool-9.99/t/CanonRaw_6.out +233 -0
  388. data/bin/Image-ExifTool-9.99/t/CanonRaw_7.out +250 -0
  389. data/bin/Image-ExifTool-9.99/t/CanonVRD.t +220 -0
  390. data/bin/Image-ExifTool-9.99/t/CanonVRD_11.out +121 -0
  391. data/bin/Image-ExifTool-9.99/t/CanonVRD_12.out +13 -0
  392. data/bin/Image-ExifTool-9.99/t/CanonVRD_13.out +102 -0
  393. data/bin/Image-ExifTool-9.99/t/CanonVRD_14.out +101 -0
  394. data/bin/Image-ExifTool-9.99/t/CanonVRD_15.out +5 -0
  395. data/bin/Image-ExifTool-9.99/t/CanonVRD_16.out +5 -0
  396. data/bin/Image-ExifTool-9.99/t/CanonVRD_17.out +5 -0
  397. data/bin/Image-ExifTool-9.99/t/CanonVRD_18.out +5 -0
  398. data/bin/Image-ExifTool-9.99/t/CanonVRD_19.out +5 -0
  399. data/bin/Image-ExifTool-9.99/t/CanonVRD_2.out +119 -0
  400. data/bin/Image-ExifTool-9.99/t/CanonVRD_20.out +5 -0
  401. data/bin/Image-ExifTool-9.99/t/CanonVRD_21.out +1 -0
  402. data/bin/Image-ExifTool-9.99/t/CanonVRD_3.out +119 -0
  403. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_4.out +0 -0
  404. data/bin/Image-ExifTool-9.99/t/CanonVRD_5.out +2 -0
  405. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_6.out +0 -0
  406. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_7.out +0 -0
  407. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_8.out +0 -0
  408. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/CanonVRD_9.out +0 -0
  409. data/bin/Image-ExifTool-9.99/t/Canon_2.out +356 -0
  410. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Canon_3.out +0 -0
  411. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Casio.t +0 -0
  412. data/bin/Image-ExifTool-9.99/t/Casio_2.out +72 -0
  413. data/bin/Image-ExifTool-9.99/t/Casio_3.out +102 -0
  414. data/bin/Image-ExifTool-9.99/t/Casio_4.out +28 -0
  415. data/bin/Image-ExifTool-9.99/t/Casio_5.out +80 -0
  416. data/bin/Image-ExifTool-9.99/t/Casio_6.out +117 -0
  417. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DICOM.t +0 -0
  418. data/bin/Image-ExifTool-9.99/t/DICOM_2.out +109 -0
  419. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DNG.t +0 -0
  420. data/bin/Image-ExifTool-9.99/t/DNG_2.out +328 -0
  421. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DNG_3.out +0 -0
  422. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DPX.t +0 -0
  423. data/bin/Image-ExifTool-9.99/t/DPX_2.out +39 -0
  424. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DV.t +0 -0
  425. data/bin/Image-ExifTool-9.99/t/DV_2.out +26 -0
  426. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/DjVu.t +0 -0
  427. data/bin/Image-ExifTool-9.99/t/DjVu_2.out +46 -0
  428. data/bin/Image-ExifTool-9.99/t/EXE.t +31 -0
  429. data/bin/Image-ExifTool-9.99/t/EXE_2.out +41 -0
  430. data/bin/Image-ExifTool-9.99/t/EXE_3.out +16 -0
  431. data/bin/Image-ExifTool-9.99/t/EXE_4.out +15 -0
  432. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool.t +0 -0
  433. data/bin/Image-ExifTool-9.99/t/ExifTool_16.out +184 -0
  434. data/bin/Image-ExifTool-9.99/t/ExifTool_17.out +598 -0
  435. data/bin/Image-ExifTool-9.99/t/ExifTool_2.out +418 -0
  436. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_20.out +0 -0
  437. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_21.out +0 -0
  438. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_22.out +0 -0
  439. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_23.out +0 -0
  440. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_24.out +0 -0
  441. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_25.out +0 -0
  442. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_26.out +0 -0
  443. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_27.out +0 -0
  444. data/bin/Image-ExifTool-9.99/t/ExifTool_28.out +11 -0
  445. data/bin/Image-ExifTool-9.99/t/ExifTool_3.out +89 -0
  446. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_4.out +0 -0
  447. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_5.out +0 -0
  448. data/bin/Image-ExifTool-9.99/t/ExifTool_6.out +71 -0
  449. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_7.out +0 -0
  450. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_8.out +0 -0
  451. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ExifTool_9.out +0 -0
  452. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FLAC.t +0 -0
  453. data/bin/Image-ExifTool-9.99/t/FLAC_2.out +26 -0
  454. data/bin/Image-ExifTool-9.99/t/FLAC_3.out +20 -0
  455. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FLIR.t +0 -0
  456. data/bin/Image-ExifTool-9.99/t/FLIR_2.out +112 -0
  457. data/bin/Image-ExifTool-9.99/t/FLIR_3.out +49 -0
  458. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Flash.t +0 -0
  459. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FlashPix.t +0 -0
  460. data/bin/Image-ExifTool-9.99/t/FlashPix_2.out +49 -0
  461. data/bin/Image-ExifTool-9.99/t/Flash_2.out +22 -0
  462. data/bin/Image-ExifTool-9.99/t/Flash_3.out +55 -0
  463. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Font.t +0 -0
  464. data/bin/Image-ExifTool-9.99/t/Font_2.out +24 -0
  465. data/bin/Image-ExifTool-9.99/t/Font_3.out +36 -0
  466. data/bin/Image-ExifTool-9.99/t/Font_4.out +27 -0
  467. data/bin/Image-ExifTool-9.99/t/Font_5.out +27 -0
  468. data/bin/Image-ExifTool-9.99/t/Font_6.out +37 -0
  469. data/bin/Image-ExifTool-9.99/t/Font_7.out +37 -0
  470. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FotoStation.t +0 -0
  471. data/bin/Image-ExifTool-9.99/t/FotoStation_2.out +41 -0
  472. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FotoStation_3.out +0 -0
  473. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FujiFilm.t +0 -0
  474. data/bin/Image-ExifTool-9.99/t/FujiFilm_2.out +89 -0
  475. data/bin/Image-ExifTool-9.99/t/FujiFilm_3.out +90 -0
  476. data/bin/Image-ExifTool-9.99/t/FujiFilm_4.out +141 -0
  477. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/FujiFilm_5.out +0 -0
  478. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GE.t +0 -0
  479. data/bin/Image-ExifTool-9.99/t/GE_2.out +86 -0
  480. data/bin/Image-ExifTool-9.99/t/GE_3.out +86 -0
  481. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GIF.t +0 -0
  482. data/bin/Image-ExifTool-9.99/t/GIF_2.out +42 -0
  483. data/bin/Image-ExifTool-9.99/t/GIF_3.out +43 -0
  484. data/bin/Image-ExifTool-9.99/t/GIF_4.out +18 -0
  485. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GIMP.t +0 -0
  486. data/bin/Image-ExifTool-9.99/t/GIMP_2.out +65 -0
  487. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GPS.t +0 -0
  488. data/bin/Image-ExifTool-9.99/t/GPS_2.out +96 -0
  489. data/bin/Image-ExifTool-9.99/t/GPS_3.out +98 -0
  490. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GeoTiff.t +0 -0
  491. data/bin/Image-ExifTool-9.99/t/GeoTiff_2.out +38 -0
  492. data/bin/Image-ExifTool-9.99/t/GeoTiff_3.out +38 -0
  493. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/GeoTiff_4.out +0 -0
  494. data/bin/Image-ExifTool-9.99/t/Geotag.t +172 -0
  495. data/bin/Image-ExifTool-9.99/t/Geotag_10.out +15 -0
  496. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_2.out +0 -0
  497. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_3.out +0 -0
  498. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_5.out +0 -0
  499. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_6.out +0 -0
  500. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_7.out +0 -0
  501. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_8.out +0 -0
  502. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Geotag_9.out +0 -0
  503. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/HTML.t +0 -0
  504. data/bin/Image-ExifTool-9.99/t/HTML_2.out +69 -0
  505. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC.t +0 -0
  506. data/bin/Image-ExifTool-9.99/t/IPTC_2.out +60 -0
  507. data/bin/Image-ExifTool-9.99/t/IPTC_4.out +58 -0
  508. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_5.out +0 -0
  509. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_6.out +0 -0
  510. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_7.out +0 -0
  511. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/IPTC_8.out +0 -0
  512. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ITC.t +0 -0
  513. data/bin/Image-ExifTool-9.99/t/ITC_2.out +21 -0
  514. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/InDesign.t +0 -0
  515. data/bin/Image-ExifTool-9.99/t/InDesign_2.out +20 -0
  516. data/bin/Image-ExifTool-9.99/t/InDesign_3.out +22 -0
  517. data/bin/Image-ExifTool-9.99/t/InDesign_4.out +12 -0
  518. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/JVC.t +0 -0
  519. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/JVC_2.out +0 -0
  520. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/JVC_3.out +0 -0
  521. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Jpeg2000.t +0 -0
  522. data/bin/Image-ExifTool-9.99/t/Jpeg2000_2.out +65 -0
  523. data/bin/Image-ExifTool-9.99/t/Jpeg2000_3.out +53 -0
  524. data/bin/Image-ExifTool-9.99/t/Jpeg2000_4.out +17 -0
  525. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Kodak.t +0 -0
  526. data/bin/Image-ExifTool-9.99/t/Kodak_2.out +111 -0
  527. data/bin/Image-ExifTool-9.99/t/Kodak_3.out +121 -0
  528. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/KyoceraRaw.t +0 -0
  529. data/bin/Image-ExifTool-9.99/t/KyoceraRaw_2.out +28 -0
  530. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/LNK.t +0 -0
  531. data/bin/Image-ExifTool-9.99/t/LNK_2.out +46 -0
  532. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang.t +0 -0
  533. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_1.out +0 -0
  534. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_10.out +0 -0
  535. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_11.out +0 -0
  536. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_12.out +0 -0
  537. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_13.out +0 -0
  538. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_14.out +0 -0
  539. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_15.out +0 -0
  540. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_16.out +0 -0
  541. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_17.out +0 -0
  542. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_18.out +0 -0
  543. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_2.out +0 -0
  544. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_3.out +0 -0
  545. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_4.out +0 -0
  546. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_5.out +0 -0
  547. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_6.out +0 -0
  548. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_7.out +0 -0
  549. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_8.out +0 -0
  550. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lang_9.out +0 -0
  551. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Lytro.t +0 -0
  552. data/bin/Image-ExifTool-9.99/t/Lytro_2.out +109 -0
  553. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/M2TS.t +0 -0
  554. data/bin/Image-ExifTool-9.99/t/M2TS_2.out +29 -0
  555. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIE.t +0 -0
  556. data/bin/Image-ExifTool-9.99/t/MIE_2.out +69 -0
  557. data/bin/Image-ExifTool-9.99/t/MIE_3.out +136 -0
  558. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIE_5.out +0 -0
  559. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIE_6.out +0 -0
  560. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MIFF.t +0 -0
  561. data/bin/Image-ExifTool-9.99/t/MIFF_2.out +110 -0
  562. data/bin/Image-ExifTool-9.99/t/MOI.t +27 -0
  563. data/bin/Image-ExifTool-9.99/t/MOI_2.out +11 -0
  564. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MP3.t +0 -0
  565. data/bin/Image-ExifTool-9.99/t/MP3_2.out +46 -0
  566. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG.t +0 -0
  567. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_2.out +0 -0
  568. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_3.out +0 -0
  569. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_4.out +0 -0
  570. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_5.out +0 -0
  571. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MWG_6.out +0 -0
  572. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/MXF.t +0 -0
  573. data/bin/Image-ExifTool-9.99/t/MXF_2.out +79 -0
  574. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Matroska.t +0 -0
  575. data/bin/Image-ExifTool-9.99/t/Matroska_2.out +66 -0
  576. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Minolta.t +0 -0
  577. data/bin/Image-ExifTool-9.99/t/Minolta_2.out +135 -0
  578. data/bin/Image-ExifTool-9.99/t/Minolta_3.out +148 -0
  579. data/bin/Image-ExifTool-9.99/t/Minolta_4.out +150 -0
  580. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Nikon.t +0 -0
  581. data/bin/Image-ExifTool-9.99/t/Nikon_2.out +84 -0
  582. data/bin/Image-ExifTool-9.99/t/Nikon_3.out +100 -0
  583. data/bin/Image-ExifTool-9.99/t/Nikon_4.out +176 -0
  584. data/bin/Image-ExifTool-9.99/t/Nikon_5.out +169 -0
  585. data/bin/Image-ExifTool-9.99/t/Nikon_7.out +261 -0
  586. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Nikon_8.out +0 -0
  587. data/bin/Image-ExifTool-9.99/t/Olympus.t +94 -0
  588. data/bin/Image-ExifTool-9.99/t/Olympus_2.out +81 -0
  589. data/bin/Image-ExifTool-9.99/t/Olympus_3.out +83 -0
  590. data/bin/Image-ExifTool-9.99/t/Olympus_4.out +194 -0
  591. data/bin/Image-ExifTool-9.99/t/Olympus_5.out +266 -0
  592. data/bin/Image-ExifTool-9.99/t/Olympus_6.out +153 -0
  593. data/bin/Image-ExifTool-9.99/t/Olympus_7.out +483 -0
  594. data/bin/Image-ExifTool-9.99/t/Olympus_8.out +15 -0
  595. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/OpenEXR.t +0 -0
  596. data/bin/Image-ExifTool-9.99/t/OpenEXR_2.out +25 -0
  597. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF.t +0 -0
  598. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_10.out +0 -0
  599. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_11.out +0 -0
  600. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_12.out +0 -0
  601. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_14.out +0 -0
  602. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_15.out +0 -0
  603. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_16.out +0 -0
  604. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_17.out +0 -0
  605. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_18.out +0 -0
  606. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_19.out +0 -0
  607. data/bin/Image-ExifTool-9.99/t/PDF_2.out +118 -0
  608. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_20.out +0 -0
  609. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_22.out +0 -0
  610. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_4.out +0 -0
  611. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_5.out +0 -0
  612. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_6.out +0 -0
  613. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_7.out +0 -0
  614. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_8.out +0 -0
  615. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PDF_9.out +0 -0
  616. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PGF.t +0 -0
  617. data/bin/Image-ExifTool-9.99/t/PGF_2.out +34 -0
  618. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PICT.t +0 -0
  619. data/bin/Image-ExifTool-9.99/t/PICT_2.out +17 -0
  620. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PLIST.t +0 -0
  621. data/bin/Image-ExifTool-9.99/t/PLIST_2.out +21 -0
  622. data/bin/Image-ExifTool-9.99/t/PLIST_3.out +21 -0
  623. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PNG.t +0 -0
  624. data/bin/Image-ExifTool-9.99/t/PNG_2.out +24 -0
  625. data/bin/Image-ExifTool-9.99/t/PNG_3.out +123 -0
  626. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PNG_4.out +0 -0
  627. data/bin/Image-ExifTool-9.99/t/PNG_5.out +18 -0
  628. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PPM.t +0 -0
  629. data/bin/Image-ExifTool-9.99/t/PPM_2.out +17 -0
  630. data/bin/Image-ExifTool-9.99/t/PPM_3.out +11 -0
  631. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PSP.t +0 -0
  632. data/bin/Image-ExifTool-9.99/t/PSP_2.out +34 -0
  633. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Palm.t +0 -0
  634. data/bin/Image-ExifTool-9.99/t/Palm_2.out +32 -0
  635. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Panasonic.t +0 -0
  636. data/bin/Image-ExifTool-9.99/t/Panasonic_2.out +101 -0
  637. data/bin/Image-ExifTool-9.99/t/Panasonic_3.out +121 -0
  638. data/bin/Image-ExifTool-9.99/t/Panasonic_4.out +206 -0
  639. data/bin/Image-ExifTool-9.99/t/Panasonic_5.out +244 -0
  640. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Pentax.t +0 -0
  641. data/bin/Image-ExifTool-9.99/t/Pentax_2.out +225 -0
  642. data/bin/Image-ExifTool-9.99/t/Pentax_3.out +266 -0
  643. data/bin/Image-ExifTool-9.99/t/Pentax_4.out +131 -0
  644. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PhotoCD.t +0 -0
  645. data/bin/Image-ExifTool-9.99/t/PhotoCD_2.out +37 -0
  646. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PhotoMechanic.t +0 -0
  647. data/bin/Image-ExifTool-9.99/t/PhotoMechanic_2.out +83 -0
  648. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PhotoMechanic_3.out +0 -0
  649. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Photoshop.t +0 -0
  650. data/bin/Image-ExifTool-9.99/t/Photoshop_2.out +98 -0
  651. data/bin/Image-ExifTool-9.99/t/Photoshop_3.out +110 -0
  652. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/PostScript.t +0 -0
  653. data/bin/Image-ExifTool-9.99/t/PostScript_2.out +66 -0
  654. data/bin/Image-ExifTool-9.99/t/PostScript_3.out +134 -0
  655. data/bin/Image-ExifTool-9.99/t/QuickTime.t +54 -0
  656. data/bin/Image-ExifTool-9.99/t/QuickTime_2.out +133 -0
  657. data/bin/Image-ExifTool-9.99/t/QuickTime_3.out +73 -0
  658. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/QuickTime_4.out +0 -0
  659. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/QuickTime_5.out +0 -0
  660. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/RIFF.t +0 -0
  661. data/bin/Image-ExifTool-9.99/t/RIFF_2.out +25 -0
  662. data/bin/Image-ExifTool-9.99/t/RIFF_3.out +54 -0
  663. data/bin/Image-ExifTool-9.99/t/RIFF_4.out +18 -0
  664. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/RTF.t +0 -0
  665. data/bin/Image-ExifTool-9.99/t/RTF_2.out +21 -0
  666. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Radiance.t +0 -0
  667. data/bin/Image-ExifTool-9.99/t/Radiance_2.out +24 -0
  668. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Real.t +0 -0
  669. data/bin/Image-ExifTool-9.99/t/Real_2.out +69 -0
  670. data/bin/Image-ExifTool-9.99/t/Real_3.out +19 -0
  671. data/bin/Image-ExifTool-9.99/t/Real_4.out +12 -0
  672. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Ricoh.t +0 -0
  673. data/bin/Image-ExifTool-9.99/t/Ricoh_2.out +72 -0
  674. data/bin/Image-ExifTool-9.99/t/Ricoh_3.out +100 -0
  675. data/bin/Image-ExifTool-9.99/t/Ricoh_4.out +114 -0
  676. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Sanyo.t +0 -0
  677. data/bin/Image-ExifTool-9.99/t/Sanyo_2.out +103 -0
  678. data/bin/Image-ExifTool-9.99/t/Sanyo_3.out +113 -0
  679. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Sigma.t +0 -0
  680. data/bin/Image-ExifTool-9.99/t/Sigma_2.out +93 -0
  681. data/bin/Image-ExifTool-9.99/t/Sigma_3.out +96 -0
  682. data/bin/Image-ExifTool-9.99/t/Sigma_4.out +65 -0
  683. data/bin/Image-ExifTool-9.99/t/Sigma_5.out +194 -0
  684. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Sony.t +0 -0
  685. data/bin/Image-ExifTool-9.99/t/Sony_2.out +86 -0
  686. data/bin/Image-ExifTool-9.99/t/Sony_3.out +87 -0
  687. data/bin/Image-ExifTool-9.99/t/Sony_5.out +34 -0
  688. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/TestLib.pm +0 -0
  689. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Torrent.t +0 -0
  690. data/bin/Image-ExifTool-9.99/t/Torrent_2.out +32 -0
  691. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Unknown.t +0 -0
  692. data/bin/Image-ExifTool-9.99/t/Unknown_2.out +92 -0
  693. data/bin/Image-ExifTool-9.99/t/Unknown_3.out +92 -0
  694. data/bin/Image-ExifTool-9.99/t/VCard.t +31 -0
  695. data/bin/Image-ExifTool-9.99/t/VCard_2.out +54 -0
  696. data/bin/Image-ExifTool-9.99/t/VCard_3.out +88 -0
  697. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Vorbis.t +0 -0
  698. data/bin/Image-ExifTool-9.99/t/Vorbis_2.out +29 -0
  699. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer.t +0 -0
  700. data/bin/Image-ExifTool-9.99/t/Writer_10.out +246 -0
  701. data/bin/Image-ExifTool-9.99/t/Writer_11.out +39 -0
  702. data/bin/Image-ExifTool-9.99/t/Writer_13.out +165 -0
  703. data/bin/Image-ExifTool-9.99/t/Writer_14.out +69 -0
  704. data/bin/Image-ExifTool-9.99/t/Writer_15.out +175 -0
  705. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_16.out +0 -0
  706. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_17.out +0 -0
  707. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_18.out +0 -0
  708. data/bin/Image-ExifTool-9.99/t/Writer_19.out +36 -0
  709. data/bin/Image-ExifTool-9.99/t/Writer_2.out +172 -0
  710. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_22.out +0 -0
  711. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_24.out +0 -0
  712. data/bin/Image-ExifTool-9.99/t/Writer_25.out +40 -0
  713. data/bin/Image-ExifTool-9.99/t/Writer_26.out +34 -0
  714. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_27.out +0 -0
  715. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_28.out +0 -0
  716. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_29.out +0 -0
  717. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_30.out +0 -0
  718. data/bin/Image-ExifTool-9.99/t/Writer_31.out +99 -0
  719. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_32.out +0 -0
  720. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_33.out +0 -0
  721. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_34.out +0 -0
  722. data/bin/Image-ExifTool-9.99/t/Writer_35.out +188 -0
  723. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_36.out +0 -0
  724. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_37.out +0 -0
  725. data/bin/Image-ExifTool-9.99/t/Writer_38.out +63 -0
  726. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_39.out +0 -0
  727. data/bin/Image-ExifTool-9.99/t/Writer_4.out +87 -0
  728. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_40.out +0 -0
  729. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_41.out +0 -0
  730. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_42.out +0 -0
  731. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_43.out +0 -0
  732. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_44.out +0 -0
  733. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_45.out +0 -0
  734. data/bin/Image-ExifTool-9.99/t/Writer_46.out +105 -0
  735. data/bin/Image-ExifTool-9.99/t/Writer_47.out +57 -0
  736. data/bin/Image-ExifTool-9.99/t/Writer_48.out +31 -0
  737. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_50.out +0 -0
  738. data/bin/Image-ExifTool-9.99/t/Writer_51.out +405 -0
  739. data/bin/Image-ExifTool-9.99/t/Writer_52.out +23 -0
  740. data/bin/Image-ExifTool-9.99/t/Writer_53.out +35 -0
  741. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_54.out +0 -0
  742. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_55.out +0 -0
  743. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/Writer_56.out +0 -0
  744. data/bin/Image-ExifTool-9.99/t/Writer_6.out +186 -0
  745. data/bin/Image-ExifTool-9.99/t/Writer_7.out +151 -0
  746. data/bin/Image-ExifTool-9.99/t/Writer_9.out +242 -0
  747. data/bin/Image-ExifTool-9.99/t/XMP.t +557 -0
  748. data/bin/Image-ExifTool-9.99/t/XMP_10.out +37 -0
  749. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_11.out +0 -0
  750. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_12.out +0 -0
  751. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_13.out +0 -0
  752. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_14.out +0 -0
  753. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_15.out +0 -0
  754. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_16.out +0 -0
  755. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_17.out +0 -0
  756. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_18.out +0 -0
  757. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_19.out +0 -0
  758. data/bin/Image-ExifTool-9.99/t/XMP_2.out +140 -0
  759. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_20.out +0 -0
  760. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_21.out +0 -0
  761. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_22.out +0 -0
  762. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_23.out +0 -0
  763. data/bin/Image-ExifTool-9.99/t/XMP_24.out +32 -0
  764. data/bin/Image-ExifTool-9.99/t/XMP_25.out +28 -0
  765. data/bin/Image-ExifTool-9.99/t/XMP_26.out +51 -0
  766. data/bin/Image-ExifTool-9.99/t/XMP_27.out +95 -0
  767. data/bin/Image-ExifTool-9.99/t/XMP_28.out +46 -0
  768. data/bin/Image-ExifTool-9.99/t/XMP_29.out +26 -0
  769. data/bin/Image-ExifTool-9.99/t/XMP_3.out +138 -0
  770. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_30.out +0 -0
  771. data/bin/Image-ExifTool-9.99/t/XMP_31.out +20 -0
  772. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_32.out +0 -0
  773. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_34.out +0 -0
  774. data/bin/Image-ExifTool-9.99/t/XMP_36.out +19 -0
  775. data/bin/Image-ExifTool-9.99/t/XMP_37.out +36 -0
  776. data/bin/Image-ExifTool-9.99/t/XMP_39.out +45 -0
  777. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_40.out +0 -0
  778. data/bin/Image-ExifTool-9.99/t/XMP_41.out +181 -0
  779. data/bin/Image-ExifTool-9.99/t/XMP_42.out +8 -0
  780. data/bin/Image-ExifTool-9.99/t/XMP_43.out +6 -0
  781. data/bin/Image-ExifTool-9.99/t/XMP_44.out +35 -0
  782. data/bin/Image-ExifTool-9.99/t/XMP_5.out +30 -0
  783. data/bin/Image-ExifTool-9.99/t/XMP_6.out +89 -0
  784. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_7.out +0 -0
  785. data/bin/Image-ExifTool-9.99/t/XMP_8.out +19 -0
  786. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/XMP_9.out +0 -0
  787. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/ZIP.t +0 -0
  788. data/bin/Image-ExifTool-9.99/t/ZIP_2.out +19 -0
  789. data/bin/Image-ExifTool-9.99/t/ZIP_3.out +18 -0
  790. data/bin/Image-ExifTool-9.99/t/ZIP_4.out +214 -0
  791. data/bin/Image-ExifTool-9.99/t/ZIP_5.out +136 -0
  792. data/bin/Image-ExifTool-9.99/t/ZIP_6.out +50 -0
  793. data/bin/Image-ExifTool-9.99/t/ZIP_7.out +29 -0
  794. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/AFCP.jpg +0 -0
  795. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/AIFF.aif +0 -0
  796. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/APE.ape +0 -0
  797. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/APE.mpc +0 -0
  798. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ASF.wmv +0 -0
  799. data/bin/Image-ExifTool-9.99/t/images/Audible.aa +0 -0
  800. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/BMP.bmp +0 -0
  801. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/BigTIFF.btf +0 -0
  802. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Canon.jpg +0 -0
  803. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Canon1DmkIII.jpg +0 -0
  804. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CanonRaw.cr2 +0 -0
  805. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CanonRaw.crw +0 -0
  806. data/bin/Image-ExifTool-9.99/t/images/CanonVRD.dr4 +0 -0
  807. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CanonVRD.vrd +0 -0
  808. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CaptureOne.eip +0 -0
  809. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Casio.jpg +0 -0
  810. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Casio2.jpg +0 -0
  811. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/CasioQVCI.jpg +0 -0
  812. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DICOM.dcm +0 -0
  813. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DNG.dng +0 -0
  814. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DPX.dpx +0 -0
  815. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DV.dv +0 -0
  816. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/DjVu.djvu +0 -0
  817. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/EXE.elf +0 -0
  818. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/EXE.exe +0 -0
  819. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/EXE.macho +0 -0
  820. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ExifTool.jpg +0 -0
  821. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ExifTool.tif +0 -0
  822. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ExtendedXMP.jpg +0 -0
  823. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLAC.flac +0 -0
  824. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLAC.ogg +0 -0
  825. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLIR.fpf +0 -0
  826. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FLIR.jpg +0 -0
  827. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Flash.flv +0 -0
  828. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Flash.swf +0 -0
  829. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FlashPix.ppt +0 -0
  830. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.afm +0 -0
  831. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.dfont +0 -0
  832. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.pfa +0 -0
  833. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.pfb +0 -0
  834. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.pfm +0 -0
  835. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Font.ttf +0 -0
  836. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FotoStation.jpg +0 -0
  837. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FujiFilm.jpg +0 -0
  838. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/FujiFilm.raf +0 -0
  839. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GE.jpg +0 -0
  840. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GIF.gif +0 -0
  841. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GIMP.xcf +0 -0
  842. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GPS.jpg +0 -0
  843. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/GeoTiff.tif +0 -0
  844. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.gpx +0 -0
  845. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.igc +0 -0
  846. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.kml +0 -0
  847. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.log +0 -0
  848. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag.xml +0 -0
  849. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Geotag2.log +0 -0
  850. data/bin/Image-ExifTool-9.99/t/images/Geotag3.log +7 -0
  851. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/HTML.html +0 -0
  852. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/IPTC.jpg +0 -0
  853. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ITC.itc +0 -0
  854. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/InDesign.indd +0 -0
  855. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/JVC.jpg +0 -0
  856. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/JVC2.jpg +0 -0
  857. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Jpeg2000.j2c +0 -0
  858. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Jpeg2000.jp2 +0 -0
  859. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Kodak.jpg +0 -0
  860. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/KyoceraRaw.raw +0 -0
  861. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/LNK.lnk +0 -0
  862. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Lytro.lfp +0 -0
  863. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/M2TS.mts +0 -0
  864. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MIE.mie +0 -0
  865. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MIFF.miff +0 -0
  866. data/bin/Image-ExifTool-9.99/t/images/MOI.moi +0 -0
  867. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MP3.mp3 +0 -0
  868. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MWG.jpg +0 -0
  869. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/MXF.mxf +0 -0
  870. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Matroska.mkv +0 -0
  871. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Minolta.jpg +0 -0
  872. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Minolta.mrw +0 -0
  873. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Nikon.jpg +0 -0
  874. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Nikon.nef +0 -0
  875. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/NikonD2Hs.jpg +0 -0
  876. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/NikonD70.jpg +0 -0
  877. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OOXML.docx +0 -0
  878. data/bin/Image-ExifTool-9.99/t/images/Olympus.dss +0 -0
  879. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Olympus.jpg +0 -0
  880. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Olympus2.jpg +0 -0
  881. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OlympusE1.jpg +0 -0
  882. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OpenDoc.ods +0 -0
  883. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/OpenEXR.exr +0 -0
  884. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PDF.pdf +0 -0
  885. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PDF2.pdf +0 -0
  886. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PGF.pgf +0 -0
  887. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PICT.pict +0 -0
  888. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PLIST-bin.plist +0 -0
  889. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PLIST-xml.plist +0 -0
  890. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PNG.png +0 -0
  891. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PPM.ppm +0 -0
  892. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PSP.psp +0 -0
  893. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Palm.mobi +0 -0
  894. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Panasonic.jpg +0 -0
  895. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Panasonic.rw2 +0 -0
  896. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Pentax.avi +0 -0
  897. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Pentax.jpg +0 -0
  898. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PhotoCD.pcd +0 -0
  899. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PhotoMechanic.jpg +0 -0
  900. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Photoshop.psd +0 -0
  901. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/PostScript.eps +0 -0
  902. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/QuickTime.m4a +0 -0
  903. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/QuickTime.mov +0 -0
  904. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RIFF.avi +0 -0
  905. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RIFF.wav +0 -0
  906. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RIFF.webp +0 -0
  907. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/RTF.rtf +0 -0
  908. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Radiance.hdr +0 -0
  909. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Real.ra +0 -0
  910. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Real.ram +0 -0
  911. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Real.rm +0 -0
  912. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Ricoh.jpg +0 -0
  913. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Ricoh2.jpg +0 -0
  914. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sanyo.jpg +0 -0
  915. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sigma.jpg +0 -0
  916. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sigma.x3f +0 -0
  917. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/SigmaDP2.x3f +0 -0
  918. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sony.jpg +0 -0
  919. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Sony.pmp +0 -0
  920. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Torrent.torrent +0 -0
  921. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Unknown.jpg +0 -0
  922. data/bin/Image-ExifTool-9.99/t/images/VCard.ics +94 -0
  923. data/bin/Image-ExifTool-9.99/t/images/VCard.vcf +45 -0
  924. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Vorbis.ogg +0 -0
  925. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/Writer.jpg +0 -0
  926. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.inx +0 -0
  927. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.jpg +0 -0
  928. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.svg +0 -0
  929. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.xml +0 -0
  930. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP.xmp +0 -0
  931. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP2.xmp +0 -0
  932. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP3.xmp +0 -0
  933. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/XMP4.xmp +0 -0
  934. data/bin/Image-ExifTool-9.99/t/images/XMP5.xmp +157 -0
  935. data/bin/Image-ExifTool-9.99/t/images/XMP6.xmp +48 -0
  936. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ZIP.gz +0 -0
  937. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/ZIP.zip +0 -0
  938. data/bin/{Image-ExifTool-9.78 → Image-ExifTool-9.99}/t/images/iWork.numbers +0 -0
  939. data/lib/exiftool_vendored/version.rb +1 -1
  940. metadata +941 -904
  941. data/bin/Image-ExifTool-9.78/Changes +0 -6884
  942. data/bin/Image-ExifTool-9.78/MANIFEST +0 -900
  943. data/bin/Image-ExifTool-9.78/META.yml +0 -27
  944. data/bin/Image-ExifTool-9.78/README +0 -227
  945. data/bin/Image-ExifTool-9.78/arg_files/exif2xmp.args +0 -42
  946. data/bin/Image-ExifTool-9.78/arg_files/iptcCore.args +0 -172
  947. data/bin/Image-ExifTool-9.78/arg_files/xmp2exif.args +0 -43
  948. data/bin/Image-ExifTool-9.78/config_files/ExifTool_config +0 -341
  949. data/bin/Image-ExifTool-9.78/config_files/convert_regions.config +0 -81
  950. data/bin/Image-ExifTool-9.78/exiftool +0 -5969
  951. data/bin/Image-ExifTool-9.78/html/ExifTool.html +0 -2018
  952. data/bin/Image-ExifTool-9.78/html/Shift.html +0 -173
  953. data/bin/Image-ExifTool-9.78/html/TagNames/AIFF.html +0 -146
  954. data/bin/Image-ExifTool-9.78/html/TagNames/ASF.html +0 -1066
  955. data/bin/Image-ExifTool-9.78/html/TagNames/Apple.html +0 -69
  956. data/bin/Image-ExifTool-9.78/html/TagNames/BMP.html +0 -110
  957. data/bin/Image-ExifTool-9.78/html/TagNames/Canon.html +0 -8414
  958. data/bin/Image-ExifTool-9.78/html/TagNames/CanonCustom.html +0 -2081
  959. data/bin/Image-ExifTool-9.78/html/TagNames/CanonVRD.html +0 -1222
  960. data/bin/Image-ExifTool-9.78/html/TagNames/Casio.html +0 -1606
  961. data/bin/Image-ExifTool-9.78/html/TagNames/Composite.html +0 -696
  962. data/bin/Image-ExifTool-9.78/html/TagNames/DNG.html +0 -285
  963. data/bin/Image-ExifTool-9.78/html/TagNames/DPX.html +0 -190
  964. data/bin/Image-ExifTool-9.78/html/TagNames/DjVu.html +0 -313
  965. data/bin/Image-ExifTool-9.78/html/TagNames/EXE.html +0 -697
  966. data/bin/Image-ExifTool-9.78/html/TagNames/EXIF.html +0 -3365
  967. data/bin/Image-ExifTool-9.78/html/TagNames/Extra.html +0 -341
  968. data/bin/Image-ExifTool-9.78/html/TagNames/FLAC.html +0 -183
  969. data/bin/Image-ExifTool-9.78/html/TagNames/FLIR.html +0 -1340
  970. data/bin/Image-ExifTool-9.78/html/TagNames/Flash.html +0 -419
  971. data/bin/Image-ExifTool-9.78/html/TagNames/FlashPix.html +0 -1465
  972. data/bin/Image-ExifTool-9.78/html/TagNames/FujiFilm.html +0 -789
  973. data/bin/Image-ExifTool-9.78/html/TagNames/GeoTiff.html +0 -2184
  974. data/bin/Image-ExifTool-9.78/html/TagNames/H264.html +0 -393
  975. data/bin/Image-ExifTool-9.78/html/TagNames/ICC_Profile.html +0 -711
  976. data/bin/Image-ExifTool-9.78/html/TagNames/ID3.html +0 -1471
  977. data/bin/Image-ExifTool-9.78/html/TagNames/IPTC.html +0 -902
  978. data/bin/Image-ExifTool-9.78/html/TagNames/JPEG.html +0 -602
  979. data/bin/Image-ExifTool-9.78/html/TagNames/Jpeg2000.html +0 -464
  980. data/bin/Image-ExifTool-9.78/html/TagNames/Kodak.html +0 -1881
  981. data/bin/Image-ExifTool-9.78/html/TagNames/KyoceraRaw.html +0 -92
  982. data/bin/Image-ExifTool-9.78/html/TagNames/LNK.html +0 -478
  983. data/bin/Image-ExifTool-9.78/html/TagNames/Lytro.html +0 -122
  984. data/bin/Image-ExifTool-9.78/html/TagNames/M2TS.html +0 -133
  985. data/bin/Image-ExifTool-9.78/html/TagNames/MIE.html +0 -1026
  986. data/bin/Image-ExifTool-9.78/html/TagNames/MNG.html +0 -847
  987. data/bin/Image-ExifTool-9.78/html/TagNames/MPC.html +0 -97
  988. data/bin/Image-ExifTool-9.78/html/TagNames/MPEG.html +0 -249
  989. data/bin/Image-ExifTool-9.78/html/TagNames/MPF.html +0 -199
  990. data/bin/Image-ExifTool-9.78/html/TagNames/MWG.html +0 -567
  991. data/bin/Image-ExifTool-9.78/html/TagNames/MXF.html +0 -6673
  992. data/bin/Image-ExifTool-9.78/html/TagNames/Matroska.html +0 -1069
  993. data/bin/Image-ExifTool-9.78/html/TagNames/Microsoft.html +0 -2069
  994. data/bin/Image-ExifTool-9.78/html/TagNames/Minolta.html +0 -2585
  995. data/bin/Image-ExifTool-9.78/html/TagNames/MinoltaRaw.html +0 -326
  996. data/bin/Image-ExifTool-9.78/html/TagNames/Nikon.html +0 -4734
  997. data/bin/Image-ExifTool-9.78/html/TagNames/NikonCapture.html +0 -799
  998. data/bin/Image-ExifTool-9.78/html/TagNames/NikonCustom.html +0 -4794
  999. data/bin/Image-ExifTool-9.78/html/TagNames/OOXML.html +0 -280
  1000. data/bin/Image-ExifTool-9.78/html/TagNames/Olympus.html +0 -3447
  1001. data/bin/Image-ExifTool-9.78/html/TagNames/OpenEXR.html +0 -222
  1002. data/bin/Image-ExifTool-9.78/html/TagNames/PDF.html +0 -745
  1003. data/bin/Image-ExifTool-9.78/html/TagNames/PGF.html +0 -80
  1004. data/bin/Image-ExifTool-9.78/html/TagNames/Palm.html +0 -388
  1005. data/bin/Image-ExifTool-9.78/html/TagNames/Panasonic.html +0 -1686
  1006. data/bin/Image-ExifTool-9.78/html/TagNames/PanasonicRaw.html +0 -451
  1007. data/bin/Image-ExifTool-9.78/html/TagNames/Pentax.html +0 -4601
  1008. data/bin/Image-ExifTool-9.78/html/TagNames/PhaseOne.html +0 -258
  1009. data/bin/Image-ExifTool-9.78/html/TagNames/PhotoCD.html +0 -402
  1010. data/bin/Image-ExifTool-9.78/html/TagNames/PhotoMechanic.html +0 -196
  1011. data/bin/Image-ExifTool-9.78/html/TagNames/Photoshop.html +0 -570
  1012. data/bin/Image-ExifTool-9.78/html/TagNames/Qualcomm.html +0 -4778
  1013. data/bin/Image-ExifTool-9.78/html/TagNames/QuickTime.html +0 -5729
  1014. data/bin/Image-ExifTool-9.78/html/TagNames/RIFF.html +0 -1314
  1015. data/bin/Image-ExifTool-9.78/html/TagNames/Radiance.html +0 -87
  1016. data/bin/Image-ExifTool-9.78/html/TagNames/Real.html +0 -780
  1017. data/bin/Image-ExifTool-9.78/html/TagNames/Reconyx.html +0 -132
  1018. data/bin/Image-ExifTool-9.78/html/TagNames/Ricoh.html +0 -794
  1019. data/bin/Image-ExifTool-9.78/html/TagNames/Samsung.html +0 -603
  1020. data/bin/Image-ExifTool-9.78/html/TagNames/Sanyo.html +0 -366
  1021. data/bin/Image-ExifTool-9.78/html/TagNames/Shortcuts.html +0 -274
  1022. data/bin/Image-ExifTool-9.78/html/TagNames/Sigma.html +0 -377
  1023. data/bin/Image-ExifTool-9.78/html/TagNames/SigmaRaw.html +0 -438
  1024. data/bin/Image-ExifTool-9.78/html/TagNames/Sony.html +0 -7481
  1025. data/bin/Image-ExifTool-9.78/html/TagNames/SonyIDC.html +0 -267
  1026. data/bin/Image-ExifTool-9.78/html/TagNames/XMP.html +0 -7971
  1027. data/bin/Image-ExifTool-9.78/html/TagNames/ZIP.html +0 -205
  1028. data/bin/Image-ExifTool-9.78/html/TagNames/index.html +0 -207
  1029. data/bin/Image-ExifTool-9.78/html/ancient_history.html +0 -7356
  1030. data/bin/Image-ExifTool-9.78/html/config.html +0 -354
  1031. data/bin/Image-ExifTool-9.78/html/data_members.html +0 -277
  1032. data/bin/Image-ExifTool-9.78/html/exiftool_pod.html +0 -2414
  1033. data/bin/Image-ExifTool-9.78/html/faq.html +0 -1499
  1034. data/bin/Image-ExifTool-9.78/html/filename.html +0 -331
  1035. data/bin/Image-ExifTool-9.78/html/geotag.html +0 -652
  1036. data/bin/Image-ExifTool-9.78/html/history.html +0 -431
  1037. data/bin/Image-ExifTool-9.78/html/htmldump.html +0 -734
  1038. data/bin/Image-ExifTool-9.78/html/index.html +0 -1298
  1039. data/bin/Image-ExifTool-9.78/html/install.html +0 -251
  1040. data/bin/Image-ExifTool-9.78/html/standards.html +0 -286
  1041. data/bin/Image-ExifTool-9.78/html/under.html +0 -127
  1042. data/bin/Image-ExifTool-9.78/lib/File/RandomAccess.pm +0 -378
  1043. data/bin/Image-ExifTool-9.78/lib/File/RandomAccess.pod +0 -231
  1044. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool.pm +0 -7070
  1045. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool.pod +0 -2437
  1046. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/AES.pm +0 -501
  1047. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/AFCP.pm +0 -284
  1048. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/AIFF.pm +0 -286
  1049. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/APE.pm +0 -262
  1050. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/APP12.pm +0 -322
  1051. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ASF.pm +0 -884
  1052. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Apple.pm +0 -115
  1053. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BMP.pm +0 -179
  1054. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BZZ.pm +0 -472
  1055. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BigTIFF.pm +0 -282
  1056. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/BuildTagLookup.pm +0 -2445
  1057. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Canon.pm +0 -8184
  1058. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CanonCustom.pm +0 -2582
  1059. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CanonRaw.pm +0 -908
  1060. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CanonVRD.pm +0 -1519
  1061. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/CaptureOne.pm +0 -235
  1062. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Casio.pm +0 -2057
  1063. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Charset.pm +0 -396
  1064. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DICOM.pm +0 -3874
  1065. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DNG.pm +0 -835
  1066. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DPX.pm +0 -151
  1067. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DV.pm +0 -319
  1068. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DarwinCore.pm +0 -322
  1069. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/DjVu.pm +0 -376
  1070. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/EXE.pm +0 -1228
  1071. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Exif.pm +0 -4652
  1072. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FLAC.pm +0 -296
  1073. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FLIR.pm +0 -1531
  1074. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Fixup.pm +0 -354
  1075. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Flash.pm +0 -755
  1076. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FlashPix.pm +0 -1929
  1077. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Font.pm +0 -643
  1078. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FotoStation.pm +0 -259
  1079. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/FujiFilm.pm +0 -1162
  1080. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GE.pm +0 -81
  1081. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GIF.pm +0 -542
  1082. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GIMP.pm +0 -258
  1083. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GPS.pm +0 -546
  1084. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/GeoTiff.pm +0 -2202
  1085. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Geotag.pm +0 -1201
  1086. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/H264.pm +0 -1112
  1087. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/HP.pm +0 -262
  1088. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/HTML.pm +0 -576
  1089. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/HtmlDump.pm +0 -895
  1090. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ICC_Profile.pm +0 -1000
  1091. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ID3.pm +0 -1532
  1092. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/IPTC.pm +0 -1264
  1093. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ITC.pm +0 -215
  1094. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Import.pm +0 -313
  1095. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/InDesign.pm +0 -277
  1096. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/JPEG.pm +0 -601
  1097. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/JPEGDigest.pm +0 -2511
  1098. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/JVC.pm +0 -130
  1099. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Jpeg2000.pm +0 -873
  1100. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Kodak.pm +0 -2080
  1101. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/KyoceraRaw.pm +0 -173
  1102. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/LNK.pm +0 -723
  1103. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/cs.pm +0 -1588
  1104. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/de.pm +0 -8683
  1105. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/en_ca.pm +0 -848
  1106. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/en_gb.pm +0 -863
  1107. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/es.pm +0 -4020
  1108. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/fi.pm +0 -2854
  1109. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/fr.pm +0 -4748
  1110. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/it.pm +0 -7920
  1111. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/ja.pm +0 -5827
  1112. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/ko.pm +0 -2331
  1113. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/nl.pm +0 -3222
  1114. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/pl.pm +0 -1168
  1115. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/ru.pm +0 -768
  1116. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/sv.pm +0 -638
  1117. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/tr.pm +0 -544
  1118. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1330
  1119. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lang/zh_tw.pm +0 -801
  1120. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Leaf.pm +0 -515
  1121. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Lytro.pm +0 -217
  1122. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/M2TS.pm +0 -725
  1123. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MIE.pm +0 -2561
  1124. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MIEUnits.pod +0 -377
  1125. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MIFF.pm +0 -279
  1126. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MNG.pm +0 -684
  1127. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MPC.pm +0 -156
  1128. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MPEG.pm +0 -736
  1129. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MPF.pm +0 -292
  1130. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MWG.pm +0 -748
  1131. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MXF.pm +0 -3032
  1132. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MakerNotes.pm +0 -1686
  1133. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Matroska.pm +0 -891
  1134. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Microsoft.pm +0 -884
  1135. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Minolta.pm +0 -2901
  1136. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/MinoltaRaw.pm +0 -534
  1137. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Nikon.pm +0 -6578
  1138. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/NikonCapture.pm +0 -940
  1139. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/NikonCustom.pm +0 -5445
  1140. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Nintendo.pm +0 -128
  1141. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/OOXML.pm +0 -409
  1142. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Ogg.pm +0 -237
  1143. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Olympus.pm +0 -3696
  1144. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/OpenEXR.pm +0 -324
  1145. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PDF.pm +0 -2327
  1146. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PGF.pm +0 -143
  1147. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PICT.pm +0 -1260
  1148. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PLIST.pm +0 -453
  1149. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PNG.pm +0 -1190
  1150. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PPM.pm +0 -169
  1151. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PSP.pm +0 -305
  1152. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Palm.pm +0 -403
  1153. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Panasonic.pm +0 -2355
  1154. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PanasonicRaw.pm +0 -638
  1155. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Pentax.pm +0 -5877
  1156. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PhaseOne.pm +0 -557
  1157. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PhotoCD.pm +0 -507
  1158. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PhotoMechanic.pm +0 -256
  1159. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Photoshop.pm +0 -648
  1160. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PostScript.pm +0 -694
  1161. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/PrintIM.pm +0 -125
  1162. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Qualcomm.pm +0 -1344
  1163. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/QuickTime.pm +0 -6305
  1164. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/README +0 -967
  1165. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/RIFF.pm +0 -1478
  1166. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/RSRC.pm +0 -241
  1167. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/RTF.pm +0 -383
  1168. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Radiance.pm +0 -144
  1169. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Rawzor.pm +0 -190
  1170. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Real.pm +0 -736
  1171. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Reconyx.pm +0 -190
  1172. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Ricoh.pm +0 -1114
  1173. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Samsung.pm +0 -1158
  1174. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Sanyo.pm +0 -439
  1175. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Scalado.pm +0 -141
  1176. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Shift.pl +0 -596
  1177. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Shortcuts.pm +0 -333
  1178. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Sigma.pm +0 -589
  1179. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/SigmaRaw.pm +0 -665
  1180. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Sony.pm +0 -8366
  1181. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/SonyIDC.pm +0 -330
  1182. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Stim.pm +0 -196
  1183. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/TagInfoXML.pm +0 -806
  1184. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/TagLookup.pm +0 -8745
  1185. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/TagNames.pod +0 -27987
  1186. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Theora.pm +0 -145
  1187. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Torrent.pm +0 -317
  1188. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Unknown.pm +0 -66
  1189. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Vorbis.pm +0 -237
  1190. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteCanonRaw.pl +0 -637
  1191. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteExif.pl +0 -3743
  1192. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteIPTC.pl +0 -702
  1193. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePDF.pl +0 -768
  1194. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePNG.pl +0 -390
  1195. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePhotoshop.pl +0 -266
  1196. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WritePostScript.pl +0 -777
  1197. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteQuickTime.pl +0 -358
  1198. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/WriteXMP.pl +0 -1358
  1199. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/Writer.pl +0 -5972
  1200. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/XMP.pm +0 -3840
  1201. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/XMP2.pl +0 -1305
  1202. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/XMPStruct.pl +0 -826
  1203. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/ZIP.pm +0 -667
  1204. data/bin/Image-ExifTool-9.78/lib/Image/ExifTool/iWork.pm +0 -223
  1205. data/bin/Image-ExifTool-9.78/perl-Image-ExifTool.spec +0 -110
  1206. data/bin/Image-ExifTool-9.78/t/AFCP_2.out +0 -37
  1207. data/bin/Image-ExifTool-9.78/t/AIFF_2.out +0 -32
  1208. data/bin/Image-ExifTool-9.78/t/APE_2.out +0 -28
  1209. data/bin/Image-ExifTool-9.78/t/APE_3.out +0 -57
  1210. data/bin/Image-ExifTool-9.78/t/ASF_2.out +0 -54
  1211. data/bin/Image-ExifTool-9.78/t/BMP_2.out +0 -21
  1212. data/bin/Image-ExifTool-9.78/t/BigTIFF_2.out +0 -19
  1213. data/bin/Image-ExifTool-9.78/t/CanonRaw_2.out +0 -166
  1214. data/bin/Image-ExifTool-9.78/t/CanonRaw_4.out +0 -216
  1215. data/bin/Image-ExifTool-9.78/t/CanonRaw_5.out +0 -208
  1216. data/bin/Image-ExifTool-9.78/t/CanonRaw_6.out +0 -231
  1217. data/bin/Image-ExifTool-9.78/t/CanonRaw_7.out +0 -247
  1218. data/bin/Image-ExifTool-9.78/t/CanonVRD.t +0 -129
  1219. data/bin/Image-ExifTool-9.78/t/CanonVRD_11.out +0 -118
  1220. data/bin/Image-ExifTool-9.78/t/CanonVRD_12.out +0 -12
  1221. data/bin/Image-ExifTool-9.78/t/CanonVRD_2.out +0 -116
  1222. data/bin/Image-ExifTool-9.78/t/CanonVRD_3.out +0 -116
  1223. data/bin/Image-ExifTool-9.78/t/CanonVRD_5.out +0 -3
  1224. data/bin/Image-ExifTool-9.78/t/Canon_2.out +0 -353
  1225. data/bin/Image-ExifTool-9.78/t/Casio_2.out +0 -70
  1226. data/bin/Image-ExifTool-9.78/t/Casio_3.out +0 -100
  1227. data/bin/Image-ExifTool-9.78/t/Casio_4.out +0 -26
  1228. data/bin/Image-ExifTool-9.78/t/Casio_5.out +0 -78
  1229. data/bin/Image-ExifTool-9.78/t/Casio_6.out +0 -115
  1230. data/bin/Image-ExifTool-9.78/t/DICOM_2.out +0 -108
  1231. data/bin/Image-ExifTool-9.78/t/DNG_2.out +0 -326
  1232. data/bin/Image-ExifTool-9.78/t/DPX_2.out +0 -35
  1233. data/bin/Image-ExifTool-9.78/t/DV_2.out +0 -24
  1234. data/bin/Image-ExifTool-9.78/t/DjVu_2.out +0 -44
  1235. data/bin/Image-ExifTool-9.78/t/EXE.t +0 -31
  1236. data/bin/Image-ExifTool-9.78/t/EXE_2.out +0 -40
  1237. data/bin/Image-ExifTool-9.78/t/EXE_3.out +0 -15
  1238. data/bin/Image-ExifTool-9.78/t/EXE_4.out +0 -14
  1239. data/bin/Image-ExifTool-9.78/t/ExifTool_16.out +0 -181
  1240. data/bin/Image-ExifTool-9.78/t/ExifTool_17.out +0 -597
  1241. data/bin/Image-ExifTool-9.78/t/ExifTool_2.out +0 -416
  1242. data/bin/Image-ExifTool-9.78/t/ExifTool_28.out +0 -10
  1243. data/bin/Image-ExifTool-9.78/t/ExifTool_3.out +0 -87
  1244. data/bin/Image-ExifTool-9.78/t/ExifTool_6.out +0 -68
  1245. data/bin/Image-ExifTool-9.78/t/FLAC_2.out +0 -25
  1246. data/bin/Image-ExifTool-9.78/t/FLAC_3.out +0 -19
  1247. data/bin/Image-ExifTool-9.78/t/FLIR_2.out +0 -110
  1248. data/bin/Image-ExifTool-9.78/t/FLIR_3.out +0 -47
  1249. data/bin/Image-ExifTool-9.78/t/FlashPix_2.out +0 -48
  1250. data/bin/Image-ExifTool-9.78/t/Flash_2.out +0 -20
  1251. data/bin/Image-ExifTool-9.78/t/Flash_3.out +0 -53
  1252. data/bin/Image-ExifTool-9.78/t/Font_2.out +0 -23
  1253. data/bin/Image-ExifTool-9.78/t/Font_3.out +0 -35
  1254. data/bin/Image-ExifTool-9.78/t/Font_4.out +0 -26
  1255. data/bin/Image-ExifTool-9.78/t/Font_5.out +0 -26
  1256. data/bin/Image-ExifTool-9.78/t/Font_6.out +0 -36
  1257. data/bin/Image-ExifTool-9.78/t/Font_7.out +0 -36
  1258. data/bin/Image-ExifTool-9.78/t/FotoStation_2.out +0 -39
  1259. data/bin/Image-ExifTool-9.78/t/FujiFilm_2.out +0 -87
  1260. data/bin/Image-ExifTool-9.78/t/FujiFilm_3.out +0 -88
  1261. data/bin/Image-ExifTool-9.78/t/FujiFilm_4.out +0 -137
  1262. data/bin/Image-ExifTool-9.78/t/GE_2.out +0 -84
  1263. data/bin/Image-ExifTool-9.78/t/GE_3.out +0 -84
  1264. data/bin/Image-ExifTool-9.78/t/GIF_2.out +0 -40
  1265. data/bin/Image-ExifTool-9.78/t/GIF_3.out +0 -41
  1266. data/bin/Image-ExifTool-9.78/t/GIF_4.out +0 -16
  1267. data/bin/Image-ExifTool-9.78/t/GIMP_2.out +0 -63
  1268. data/bin/Image-ExifTool-9.78/t/GPS_2.out +0 -94
  1269. data/bin/Image-ExifTool-9.78/t/GPS_3.out +0 -96
  1270. data/bin/Image-ExifTool-9.78/t/GeoTiff_2.out +0 -36
  1271. data/bin/Image-ExifTool-9.78/t/GeoTiff_3.out +0 -36
  1272. data/bin/Image-ExifTool-9.78/t/Geotag.t +0 -181
  1273. data/bin/Image-ExifTool-9.78/t/HTML_2.out +0 -68
  1274. data/bin/Image-ExifTool-9.78/t/IPTC_2.out +0 -58
  1275. data/bin/Image-ExifTool-9.78/t/IPTC_4.out +0 -56
  1276. data/bin/Image-ExifTool-9.78/t/ITC_2.out +0 -19
  1277. data/bin/Image-ExifTool-9.78/t/InDesign_2.out +0 -19
  1278. data/bin/Image-ExifTool-9.78/t/InDesign_3.out +0 -21
  1279. data/bin/Image-ExifTool-9.78/t/InDesign_4.out +0 -11
  1280. data/bin/Image-ExifTool-9.78/t/Jpeg2000_2.out +0 -63
  1281. data/bin/Image-ExifTool-9.78/t/Jpeg2000_3.out +0 -51
  1282. data/bin/Image-ExifTool-9.78/t/Jpeg2000_4.out +0 -15
  1283. data/bin/Image-ExifTool-9.78/t/Kodak_2.out +0 -109
  1284. data/bin/Image-ExifTool-9.78/t/Kodak_3.out +0 -119
  1285. data/bin/Image-ExifTool-9.78/t/KyoceraRaw_2.out +0 -27
  1286. data/bin/Image-ExifTool-9.78/t/LNK_2.out +0 -45
  1287. data/bin/Image-ExifTool-9.78/t/Lytro_2.out +0 -107
  1288. data/bin/Image-ExifTool-9.78/t/M2TS_2.out +0 -27
  1289. data/bin/Image-ExifTool-9.78/t/MIE_2.out +0 -67
  1290. data/bin/Image-ExifTool-9.78/t/MIE_3.out +0 -134
  1291. data/bin/Image-ExifTool-9.78/t/MIFF_2.out +0 -108
  1292. data/bin/Image-ExifTool-9.78/t/MP3_2.out +0 -45
  1293. data/bin/Image-ExifTool-9.78/t/MXF_2.out +0 -78
  1294. data/bin/Image-ExifTool-9.78/t/Matroska_2.out +0 -64
  1295. data/bin/Image-ExifTool-9.78/t/Minolta_2.out +0 -133
  1296. data/bin/Image-ExifTool-9.78/t/Minolta_3.out +0 -146
  1297. data/bin/Image-ExifTool-9.78/t/Minolta_4.out +0 -148
  1298. data/bin/Image-ExifTool-9.78/t/Nikon_2.out +0 -82
  1299. data/bin/Image-ExifTool-9.78/t/Nikon_3.out +0 -98
  1300. data/bin/Image-ExifTool-9.78/t/Nikon_4.out +0 -174
  1301. data/bin/Image-ExifTool-9.78/t/Nikon_5.out +0 -167
  1302. data/bin/Image-ExifTool-9.78/t/Nikon_7.out +0 -259
  1303. data/bin/Image-ExifTool-9.78/t/Olympus.t +0 -85
  1304. data/bin/Image-ExifTool-9.78/t/Olympus_2.out +0 -79
  1305. data/bin/Image-ExifTool-9.78/t/Olympus_3.out +0 -81
  1306. data/bin/Image-ExifTool-9.78/t/Olympus_4.out +0 -192
  1307. data/bin/Image-ExifTool-9.78/t/Olympus_5.out +0 -264
  1308. data/bin/Image-ExifTool-9.78/t/Olympus_6.out +0 -151
  1309. data/bin/Image-ExifTool-9.78/t/Olympus_7.out +0 -482
  1310. data/bin/Image-ExifTool-9.78/t/OpenEXR_2.out +0 -23
  1311. data/bin/Image-ExifTool-9.78/t/PDF_2.out +0 -117
  1312. data/bin/Image-ExifTool-9.78/t/PGF_2.out +0 -32
  1313. data/bin/Image-ExifTool-9.78/t/PICT_2.out +0 -15
  1314. data/bin/Image-ExifTool-9.78/t/PLIST_2.out +0 -20
  1315. data/bin/Image-ExifTool-9.78/t/PLIST_3.out +0 -20
  1316. data/bin/Image-ExifTool-9.78/t/PNG_2.out +0 -22
  1317. data/bin/Image-ExifTool-9.78/t/PNG_3.out +0 -121
  1318. data/bin/Image-ExifTool-9.78/t/PNG_5.out +0 -17
  1319. data/bin/Image-ExifTool-9.78/t/PPM_2.out +0 -15
  1320. data/bin/Image-ExifTool-9.78/t/PPM_3.out +0 -9
  1321. data/bin/Image-ExifTool-9.78/t/PSP_2.out +0 -32
  1322. data/bin/Image-ExifTool-9.78/t/Palm_2.out +0 -31
  1323. data/bin/Image-ExifTool-9.78/t/Panasonic_2.out +0 -99
  1324. data/bin/Image-ExifTool-9.78/t/Panasonic_3.out +0 -119
  1325. data/bin/Image-ExifTool-9.78/t/Panasonic_4.out +0 -204
  1326. data/bin/Image-ExifTool-9.78/t/Panasonic_5.out +0 -242
  1327. data/bin/Image-ExifTool-9.78/t/Pentax_2.out +0 -221
  1328. data/bin/Image-ExifTool-9.78/t/Pentax_3.out +0 -263
  1329. data/bin/Image-ExifTool-9.78/t/Pentax_4.out +0 -127
  1330. data/bin/Image-ExifTool-9.78/t/PhotoCD_2.out +0 -35
  1331. data/bin/Image-ExifTool-9.78/t/PhotoMechanic_2.out +0 -81
  1332. data/bin/Image-ExifTool-9.78/t/Photoshop_2.out +0 -96
  1333. data/bin/Image-ExifTool-9.78/t/Photoshop_3.out +0 -108
  1334. data/bin/Image-ExifTool-9.78/t/PostScript_2.out +0 -64
  1335. data/bin/Image-ExifTool-9.78/t/PostScript_3.out +0 -132
  1336. data/bin/Image-ExifTool-9.78/t/QuickTime.t +0 -54
  1337. data/bin/Image-ExifTool-9.78/t/QuickTime_2.out +0 -131
  1338. data/bin/Image-ExifTool-9.78/t/QuickTime_3.out +0 -72
  1339. data/bin/Image-ExifTool-9.78/t/RIFF_2.out +0 -24
  1340. data/bin/Image-ExifTool-9.78/t/RIFF_3.out +0 -52
  1341. data/bin/Image-ExifTool-9.78/t/RIFF_4.out +0 -16
  1342. data/bin/Image-ExifTool-9.78/t/RTF_2.out +0 -20
  1343. data/bin/Image-ExifTool-9.78/t/Radiance_2.out +0 -22
  1344. data/bin/Image-ExifTool-9.78/t/Real_2.out +0 -68
  1345. data/bin/Image-ExifTool-9.78/t/Real_3.out +0 -18
  1346. data/bin/Image-ExifTool-9.78/t/Real_4.out +0 -11
  1347. data/bin/Image-ExifTool-9.78/t/Ricoh_2.out +0 -70
  1348. data/bin/Image-ExifTool-9.78/t/Ricoh_3.out +0 -98
  1349. data/bin/Image-ExifTool-9.78/t/Ricoh_4.out +0 -112
  1350. data/bin/Image-ExifTool-9.78/t/Sanyo_2.out +0 -101
  1351. data/bin/Image-ExifTool-9.78/t/Sanyo_3.out +0 -111
  1352. data/bin/Image-ExifTool-9.78/t/Sigma_2.out +0 -91
  1353. data/bin/Image-ExifTool-9.78/t/Sigma_3.out +0 -94
  1354. data/bin/Image-ExifTool-9.78/t/Sigma_4.out +0 -63
  1355. data/bin/Image-ExifTool-9.78/t/Sigma_5.out +0 -192
  1356. data/bin/Image-ExifTool-9.78/t/Sony_2.out +0 -84
  1357. data/bin/Image-ExifTool-9.78/t/Sony_3.out +0 -85
  1358. data/bin/Image-ExifTool-9.78/t/Sony_5.out +0 -32
  1359. data/bin/Image-ExifTool-9.78/t/Torrent_2.out +0 -31
  1360. data/bin/Image-ExifTool-9.78/t/Unknown_2.out +0 -90
  1361. data/bin/Image-ExifTool-9.78/t/Unknown_3.out +0 -90
  1362. data/bin/Image-ExifTool-9.78/t/Vorbis_2.out +0 -28
  1363. data/bin/Image-ExifTool-9.78/t/Writer_10.out +0 -242
  1364. data/bin/Image-ExifTool-9.78/t/Writer_11.out +0 -37
  1365. data/bin/Image-ExifTool-9.78/t/Writer_13.out +0 -161
  1366. data/bin/Image-ExifTool-9.78/t/Writer_14.out +0 -67
  1367. data/bin/Image-ExifTool-9.78/t/Writer_15.out +0 -172
  1368. data/bin/Image-ExifTool-9.78/t/Writer_19.out +0 -34
  1369. data/bin/Image-ExifTool-9.78/t/Writer_2.out +0 -169
  1370. data/bin/Image-ExifTool-9.78/t/Writer_25.out +0 -38
  1371. data/bin/Image-ExifTool-9.78/t/Writer_26.out +0 -32
  1372. data/bin/Image-ExifTool-9.78/t/Writer_31.out +0 -97
  1373. data/bin/Image-ExifTool-9.78/t/Writer_35.out +0 -187
  1374. data/bin/Image-ExifTool-9.78/t/Writer_38.out +0 -62
  1375. data/bin/Image-ExifTool-9.78/t/Writer_4.out +0 -85
  1376. data/bin/Image-ExifTool-9.78/t/Writer_46.out +0 -79
  1377. data/bin/Image-ExifTool-9.78/t/Writer_47.out +0 -56
  1378. data/bin/Image-ExifTool-9.78/t/Writer_48.out +0 -29
  1379. data/bin/Image-ExifTool-9.78/t/Writer_51.out +0 -403
  1380. data/bin/Image-ExifTool-9.78/t/Writer_52.out +0 -22
  1381. data/bin/Image-ExifTool-9.78/t/Writer_53.out +0 -33
  1382. data/bin/Image-ExifTool-9.78/t/Writer_6.out +0 -183
  1383. data/bin/Image-ExifTool-9.78/t/Writer_7.out +0 -150
  1384. data/bin/Image-ExifTool-9.78/t/Writer_9.out +0 -238
  1385. data/bin/Image-ExifTool-9.78/t/XMP.t +0 -525
  1386. data/bin/Image-ExifTool-9.78/t/XMP_10.out +0 -36
  1387. data/bin/Image-ExifTool-9.78/t/XMP_2.out +0 -138
  1388. data/bin/Image-ExifTool-9.78/t/XMP_24.out +0 -31
  1389. data/bin/Image-ExifTool-9.78/t/XMP_25.out +0 -28
  1390. data/bin/Image-ExifTool-9.78/t/XMP_26.out +0 -52
  1391. data/bin/Image-ExifTool-9.78/t/XMP_27.out +0 -93
  1392. data/bin/Image-ExifTool-9.78/t/XMP_28.out +0 -44
  1393. data/bin/Image-ExifTool-9.78/t/XMP_29.out +0 -24
  1394. data/bin/Image-ExifTool-9.78/t/XMP_3.out +0 -136
  1395. data/bin/Image-ExifTool-9.78/t/XMP_31.out +0 -19
  1396. data/bin/Image-ExifTool-9.78/t/XMP_36.out +0 -18
  1397. data/bin/Image-ExifTool-9.78/t/XMP_37.out +0 -35
  1398. data/bin/Image-ExifTool-9.78/t/XMP_39.out +0 -44
  1399. data/bin/Image-ExifTool-9.78/t/XMP_41.out +0 -180
  1400. data/bin/Image-ExifTool-9.78/t/XMP_5.out +0 -29
  1401. data/bin/Image-ExifTool-9.78/t/XMP_6.out +0 -87
  1402. data/bin/Image-ExifTool-9.78/t/XMP_8.out +0 -17
  1403. data/bin/Image-ExifTool-9.78/t/ZIP_2.out +0 -18
  1404. data/bin/Image-ExifTool-9.78/t/ZIP_3.out +0 -17
  1405. data/bin/Image-ExifTool-9.78/t/ZIP_4.out +0 -213
  1406. data/bin/Image-ExifTool-9.78/t/ZIP_5.out +0 -134
  1407. data/bin/Image-ExifTool-9.78/t/ZIP_6.out +0 -49
  1408. data/bin/Image-ExifTool-9.78/t/ZIP_7.out +0 -28
  1409. data/bin/Image-ExifTool-9.78/t/images/XMP5.xmp +0 -158
@@ -0,0 +1,1219 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: Geotag.pm
3
+ #
4
+ # Description: Geotagging utility routines
5
+ #
6
+ # Revisions: 2009/04/01 - P. Harvey Created
7
+ # 2009/09/27 - PH Added Geosync feature
8
+ # 2009/06/25 - PH Read Garmin TCX track logs
9
+ # 2009/09/11 - PH Read ITC GPS track logs
10
+ # 2012/01/08 - PH Extract orientation information from PTNTHPR
11
+ # 2012/05/08 - PH Read Winplus Beacon .TXT files
12
+ # 2015/05/30 - PH Read Bramor gEO log files
13
+ #
14
+ # References: 1) http://www.topografix.com/GPX/1/1/
15
+ # 2) http://www.gpsinformation.org/dale/nmea.htm#GSA
16
+ # 3) http://code.google.com/apis/kml/documentation/kmlreference.html
17
+ # 4) http://www.fai.org/gliding/system/files/tech_spec_gnss.pdf
18
+ #------------------------------------------------------------------------------
19
+
20
+ package Image::ExifTool::Geotag;
21
+
22
+ use strict;
23
+ use vars qw($VERSION);
24
+ use Image::ExifTool qw(:Public);
25
+
26
+ $VERSION = '1.47';
27
+
28
+ sub JITTER() { return 2 } # maximum time jitter
29
+
30
+ sub SetGeoValues($$;$);
31
+ sub PrintFixTime($);
32
+ sub PrintFix($@);
33
+
34
+ # XML tags that we recognize (keys are forced to lower case)
35
+ my %xmlTag = (
36
+ lat => 'lat', # GPX
37
+ latitude => 'lat', # Garmin
38
+ latitudedegrees => 'lat', # Garmin TCX
39
+ lon => 'lon', # GPX
40
+ longitude => 'lon', # Garmin
41
+ longitudedegrees => 'lon', # Garmin TCX
42
+ ele => 'alt', # GPX
43
+ elevation => 'alt', # PH
44
+ alt => 'alt', # PH
45
+ altitude => 'alt', # Garmin
46
+ altitudemeters => 'alt', # Garmin TCX
47
+ 'time' => 'time', # GPX/Garmin
48
+ fix => 'fixtype', # GPX
49
+ hdop => 'hdop', # GPX
50
+ vdop => 'vdop', # GPX
51
+ pdop => 'pdop', # GPX
52
+ sat => 'nsats', # GPX
53
+ when => 'time', # KML
54
+ coordinates => 'coords', # KML
55
+ coord => 'coords', # KML, as written by Google Location History
56
+ course => 'dir', # (written by Arduino)
57
+ pitch => 'pitch', # (written by Arduino)
58
+ roll => 'roll', # (written by Arduino)
59
+ # XML containers (fix is reset at the opening tag of these properties)
60
+ wpt => '', # GPX
61
+ trkpt => '', # GPX
62
+ rtept => '', # GPX
63
+ trackpoint => '', # Garmin
64
+ placemark => '', # KML
65
+ );
66
+
67
+ # fix information keys which must be interpolated around a circle
68
+ my %cyclical = (lon => 1, track => 1, dir => 1, roll => 1);
69
+
70
+ # fix information keys for each of our general categories
71
+ my %fixInfoKeys = (
72
+ 'pos' => [ 'lat', 'lon' ],
73
+ track => [ 'track', 'speed' ],
74
+ alt => [ 'alt' ],
75
+ orient => [ 'dir', 'pitch', 'roll' ],
76
+ );
77
+
78
+ my %isOrient = ( dir => 1, pitch => 1, roll => 1 ); # test for orientation key
79
+
80
+ my $secPerDay = 24 * 3600; # a useful constant
81
+
82
+ #------------------------------------------------------------------------------
83
+ # Load GPS track log file
84
+ # Inputs: 0) ExifTool ref, 1) track log data or file name
85
+ # Returns: geotag hash data reference or error string
86
+ # - the geotag hash has the following members:
87
+ # Points - hash of GPS fix information hashes keyed by Unix time
88
+ # Times - list of sorted Unix times (keys of Points hash)
89
+ # NoDate - flag if some points have no date (ie. referenced to 1970:01:01)
90
+ # IsDate - flag if some points have date
91
+ # Has - hash of flags for available information (track, orient, alt)
92
+ # - the fix information hash may contain:
93
+ # lat - signed latitude (required)
94
+ # lon - signed longitude (required)
95
+ # alt - signed altitude
96
+ # time - fix time in UTC as XML string
97
+ # fixtype- type of fix ('none'|'2d'|'3d'|'dgps'|'pps')
98
+ # pdop - dilution of precision
99
+ # hdop - horizontal DOP
100
+ # vdop - vertical DOP
101
+ # sats - comma-separated list of active satellites
102
+ # nsats - number of active satellites
103
+ # track - track heading (deg true)
104
+ # dir - image direction (deg true)
105
+ # pitch - pitch angle (deg)
106
+ # roll - roll angle (deg)
107
+ # speed - speed (knots)
108
+ # first - flag set for first fix of track
109
+ # - concatenates new data with existing track data stored in ExifTool NEW_VALUE
110
+ # for the Geotag tag
111
+ sub LoadTrackLog($$;$)
112
+ {
113
+ local ($_, $/, *EXIFTOOL_TRKFILE);
114
+ my ($et, $val) = @_;
115
+ my ($raf, $from, $time, $isDate, $noDate, $noDateChanged, $lastDate, $dateFlarm);
116
+ my ($nmeaStart, $fixSecs, @fixTimes, $lastFix, %nmea);
117
+ my ($canCut, $cutPDOP, $cutHDOP, $cutSats, $e0, $e1, @tmp);
118
+
119
+ unless (eval { require Time::Local }) {
120
+ return 'Geotag feature requires Time::Local installed';
121
+ }
122
+ # add data to existing track
123
+ my $geotag = $et->GetNewValues('Geotag') || { };
124
+ # get lookup for available information types
125
+ my $has = $$geotag{Has};
126
+ $has or $has = $$geotag{Has} = { 'pos' => 1 };
127
+ my $format = '';
128
+ # is $val track log data?
129
+ if ($val =~ /^(\xef\xbb\xbf)?<(\?xml|gpx)[\s>]/) {
130
+ $format = 'XML';
131
+ $/ = '>'; # set input record separator to '>' for XML/GPX data
132
+ } elsif ($val =~ /(\x0d\x0a|\x0d|\x0a)/) {
133
+ $/ = $1;
134
+ } else {
135
+ # $val is track file name
136
+ $et->Open(\*EXIFTOOL_TRKFILE, $val) or return "Error opening GPS file '$val'";
137
+ $raf = new File::RandomAccess(\*EXIFTOOL_TRKFILE);
138
+ unless ($raf->Read($_, 256)) {
139
+ close EXIFTOOL_TRKFILE;
140
+ return "Empty track file '$val'";
141
+ }
142
+ # look for XML or GPX header (might as well allow UTF-8 BOM)
143
+ if (/^(\xef\xbb\xbf)?<(\?xml|gpx)[\s>]/) {
144
+ $format = 'XML';
145
+ $/ = '>'; # set input record separator to '>' for XML/GPX data
146
+ } elsif (/(\x0d\x0a|\x0d|\x0a)/) {
147
+ $/ = $1;
148
+ } else {
149
+ close EXIFTOOL_TRKFILE;
150
+ return "Invalid track file '$val'";
151
+ }
152
+ $raf->Seek(0,0);
153
+ $from = "file '$val'";
154
+ }
155
+ unless ($from) {
156
+ # set up RAF for reading log file in memory
157
+ $raf = new File::RandomAccess(\$val);
158
+ $from = 'data';
159
+ }
160
+ # initialize track points lookup
161
+ my $points = $$geotag{Points};
162
+ $points or $points = $$geotag{Points} = { };
163
+
164
+ # initialize cuts
165
+ my $maxHDOP = $et->Options('GeoMaxHDOP');
166
+ my $maxPDOP = $et->Options('GeoMaxPDOP');
167
+ my $minSats = $et->Options('GeoMinSats');
168
+ my $isCut = $maxHDOP || $maxPDOP || $minSats;
169
+
170
+ my $numPoints = 0;
171
+ my $skipped = 0;
172
+ my $lastSecs = 0;
173
+ my $fix = { };
174
+ for (;;) {
175
+ $raf->ReadLine($_) or last;
176
+ # determine file format
177
+ if (not $format) {
178
+ if (/^<(\?xml|gpx)[\s>]/) { # look for XML or GPX header
179
+ $format = 'XML';
180
+ # check for NMEA sentence
181
+ # (must ONLY start with ones that have timestamps! eg. not GSA or PTNTHPR!)
182
+ } elsif (/^\$(GP(RMC|GGA|GLL|ZDA)|PMGNTRK),/) {
183
+ $format = 'NMEA';
184
+ $nmeaStart = $2 || $1; # save type of first sentence
185
+ } elsif (/^A(FLA|XSY|FIL)/) {
186
+ # (don't set format yet because we want to read HFDTE first)
187
+ $nmeaStart = 'B' ;
188
+ next;
189
+ } elsif (/^HFDTE(\d{2})(\d{2})(\d{2})/) {
190
+ my $year = $3 + ($3 >= 70 ? 1900 : 2000);
191
+ $dateFlarm = Time::Local::timegm(0,0,0,$1,$2-1,$year-1900);
192
+ $nmeaStart = 'B' ;
193
+ $format = 'IGC';
194
+ next;
195
+ } elsif ($nmeaStart and /^B/) {
196
+ # parse IGC fixes without a date
197
+ $format = 'IGC';
198
+ } elsif (/^TP,D,/) {
199
+ $format = 'Winplus';
200
+ } elsif (/^\s*\d+\s+.*\sypr\s*$/ and (@tmp=split) == 12) {
201
+ $format = 'Bramor';
202
+ } else {
203
+ # search only first 50 lines of file for a valid fix
204
+ last if ++$skipped > 50;
205
+ next;
206
+ }
207
+ }
208
+ #
209
+ # XML format (GPX, KML, Garmin XML/TCX etc)
210
+ #
211
+ if ($format eq 'XML') {
212
+ my ($arg, $tok, $td);
213
+ s/\s*=\s*(['"])\s*/=$1/g; # remove unnecessary white space in attributes
214
+ # Workaround for KML generated by Google Location History:
215
+ # lat/lon/alt are space-separated; we want commas.
216
+ s{(\S+)\s+(\S+)\s+(\S+)(</gx:coord>)}{$1,$2,$3$4};
217
+ foreach $arg (split) {
218
+ # parse attributes (eg. GPX 'lat' and 'lon')
219
+ # (note: ignore namespace prefixes if they exist)
220
+ if ($arg =~ /^(\w+:)?(\w+)=(['"])(.*?)\3/g) {
221
+ my $tag = $xmlTag{lc $2};
222
+ if ($tag) {
223
+ $$fix{$tag} = $4;
224
+ $$has{orient} = 1 if $isOrient{$tag};
225
+ }
226
+ }
227
+ # loop through XML elements
228
+ while ($arg =~ m{([^<>]*)<(/)?(\w+:)?(\w+)(>|$)}g) {
229
+ my $tag = $xmlTag{$tok = lc $4};
230
+ # parse as a simple property if this element has a value
231
+ if (defined $tag and not $tag) {
232
+ # a containing property was opened or closed
233
+ if (not $2) {
234
+ # opened: start a new fix
235
+ $lastFix = $fix = { };
236
+ next;
237
+ } elsif ($fix and $lastFix and %$fix) {
238
+ # closed: transfer additional tags from current fix
239
+ foreach (keys %$fix) {
240
+ $$lastFix{$_} = $$fix{$_} unless defined $$lastFix{$_};
241
+ }
242
+ undef $lastFix;
243
+ }
244
+ }
245
+ if (length $1) {
246
+ if ($tag) {
247
+ if ($tag eq 'coords') {
248
+ # read KML "Point" coordinates
249
+ @$fix{'lon','lat','alt'} = split ',', $1;
250
+ } else {
251
+ $$fix{$tag} = $1;
252
+ $$has{orient} = 1 if $isOrient{$tag};
253
+ }
254
+ }
255
+ next;
256
+ } elsif ($tok eq 'td') {
257
+ $td = 1;
258
+ }
259
+ # validate and store GPS fix
260
+ next unless defined $$fix{lat} and defined $$fix{lon} and $$fix{'time'};
261
+ unless ($$fix{lat} =~ /^[+-]?\d+\.?\d*/ and $$fix{lon} =~ /^[+-]?\d+\.?\d*/) {
262
+ $e0 or $et->VPrint(0, "Coordinate format error in $from\n"), $e0 = 1;
263
+ next;
264
+ }
265
+ unless ($$fix{'time'} =~ /^(\d{4})-(\d+)-(\d+)T(\d+):(\d+):(\d+)(\.\d+)?(.*)/) {
266
+ $e1 or $et->VPrint(0, "Timestamp format error in $from\n"), $e1 = 1;
267
+ next;
268
+ }
269
+ $time = Time::Local::timegm($6,$5,$4,$3,$2-1,$1-1900);
270
+ $time += $7 if $7; # add fractional seconds
271
+ my $tz = $8;
272
+ # adjust for time zone (otherwise assume UTC)
273
+ # - allow timezone of +-HH:MM, +-H:MM, +-HHMM or +-HH since
274
+ # the spec is unclear about timezone format
275
+ if ($tz =~ /^([-+])(\d+):(\d{2})\b/ or $tz =~ /^([-+])(\d{2})(\d{2})?\b/) {
276
+ $tz = ($2 * 60 + ($3 || 0)) * 60;
277
+ $tz *= -1 if $1 eq '+'; # opposite sign to change back to UTC
278
+ $time += $tz;
279
+ }
280
+ # validate altitude
281
+ undef $$fix{alt} if defined $$fix{alt} and $$fix{alt} !~ /^[+-]?\d+\.?\d*/;
282
+ $isDate = 1;
283
+ $canCut= 1 if defined $$fix{pdop} or defined $$fix{hdop} or defined $$fix{nsats};
284
+ $$has{alt} = 1 if $$fix{alt}; # set "has altitude" flag if appropriate
285
+ $$points{$time} = $fix;
286
+ push @fixTimes, $time; # save times of all fixes in order
287
+ $fix = { };
288
+ ++$numPoints;
289
+ }
290
+ }
291
+ # last ditch check KML description for timestamp (assume it is UTC)
292
+ $$fix{'time'} = "$1T$2Z" if $td and not $$fix{'time'} and
293
+ /[\s>](\d{4}-\d{2}-\d{2})[T ](\d{2}:\d{2}:\d{2}(\.\d+)?)/;
294
+ next;
295
+ #
296
+ # Winplus Beacon text file
297
+ #
298
+ } elsif ($format eq 'Winplus') {
299
+ /^TP,D,\s*([-+]?\d+\.\d*),\s*([-+]?\d+\.\d*),\s*(\d+)\/(\d+)\/(\d{4}),\s*(\d+):(\d+):(\d+)/ or next;
300
+ $$fix{lat} = $1;
301
+ $$fix{lon} = $2;
302
+ $time = Time::Local::timegm($8,$7,$6,$4,$3-1,$5-1900);
303
+ DoneFix: $isDate = 1;
304
+ $$points{$time} = $fix;
305
+ push @fixTimes, $time;
306
+ $fix = { };
307
+ ++$numPoints;
308
+ next;
309
+ #
310
+ # Bramor gEO log file
311
+ #
312
+ } elsif ($format eq 'Bramor') {
313
+ my @parts = split ' ', $_;
314
+ next unless @parts == 12 and $parts[11] eq 'ypr';
315
+ my @d = split m{/}, $parts[6]; # date (dd/mm/YYYY)
316
+ my @t = split m{:}, $parts[7]; # time (HH:MM:SS)
317
+ next unless @d == 3 and @t == 3;
318
+ @$fix{qw(lat lon alt track dir pitch roll)} = @parts[2,3,4,5,8,9,10];
319
+ # (add the seconds afterwards in case some models have decimal seconds)
320
+ $time = Time::Local::timegm(0,$t[1],$t[0],$d[0],$d[1]-1,$d[2]-1900) + $t[2];
321
+ # set necessary flags for extra available information
322
+ @$has{qw(alt track orient)} = (1,1,1);
323
+ goto DoneFix; # save this fix
324
+ }
325
+ my (%fix, $secs, $date, $nmea);
326
+ if ($format eq 'NMEA') {
327
+ # ignore unrecognized NMEA sentences
328
+ next unless /^\$(GP(RMC|GGA|GLL|GSA|ZDA)|PMGNTRK|PTNTHPR),/;
329
+ $nmea = $2 || $1;
330
+ }
331
+ #
332
+ # IGC (flarm) (ref 4)
333
+ #
334
+ if ($format eq 'IGC') {
335
+ # B0939564531208N00557021EA007670089100207
336
+ # BHHMMSSDDMMmmmNDDDMMmmmEAaaaaaAAAAAxxyy
337
+ # HH MM SS DD MM mmm DDD MM mmm aaaaa AAAAA
338
+ # 1 2 3 4 5 6 7 8 9 10 11 12 13 14
339
+ /^B(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{3})([NS])(\d{3})(\d{2})(\d{3})([EW])([AV])(\d{5})(\d{5})/ or next;
340
+ $fix{lat} = ($4 + ($5 + $6/1000)/60) * ($7 eq 'N' ? 1 : -1);
341
+ $fix{lon} = ($8 + ($9 +$10/1000)/60) * ($11 eq 'E' ? 1 : -1);
342
+ $fix{alt} = $12 eq 'A' ? $14 : undef;
343
+ $secs = (($1 * 60) + $2) * 60 + $3;
344
+ # wrap to next day if necessary
345
+ if ($dateFlarm) {
346
+ $dateFlarm += $secPerDay if $secs < $lastSecs - JITTER();
347
+ $date = $dateFlarm;
348
+ }
349
+ $nmea = 'B';
350
+ #
351
+ # NMEA RMC sentence (contains date)
352
+ #
353
+ } elsif ($nmea eq 'RMC') {
354
+ # $GPRMC,092204.999,A,4250.5589,S,14718.5084,E,0.00,89.68,211200,,*25
355
+ # $GPRMC,093657.007,,3652.835020,N,01053.104094,E,1.642,,290913,,,A*0F
356
+ # $GPRMC,hhmmss.sss,A/V,ddmm.mmmm,N/S,ddmmm.mmmm,E/W,spd(knots),dir(deg),DDMMYY,,*cs
357
+ /^\$GPRMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/ or next;
358
+ next if $13 > 31 or $14 > 12 or $15 > 99; # validate day/month/year
359
+ $fix{lat} = (($5 || 0) + $6/60) * ($7 eq 'N' ? 1 : -1);
360
+ $fix{lon} = (($8 || 0) + $9/60) * ($10 eq 'E' ? 1 : -1);
361
+ $fix{speed} = $11 if length $11;
362
+ $fix{track} = $12 if length $12;
363
+ my $year = $15 + ($15 >= 70 ? 1900 : 2000);
364
+ $secs = (($1 * 60) + $2) * 60 + $3;
365
+ $date = Time::Local::timegm(0,0,0,$13,$14-1,$year-1900);
366
+ #
367
+ # NMEA GGA sentence (no date)
368
+ #
369
+ } elsif ($nmea eq 'GGA') {
370
+ # $GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F
371
+ # $GPGGA,093657.000,3652.835020,N,01053.104094,E,,8,,166.924,M,40.9,M,,*77
372
+ # $GPGGA,hhmmss.sss,ddmm.mmmm,N/S,dddmm.mmmm,E/W,0=invalid,sats,hdop,alt,M,...
373
+ /^\$GPGGA,(\d{2})(\d{2})(\d+(\.\d*)?),(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),[1-6]?,(\d+)?,(\.\d+|\d+\.?\d*)?,(-?\d+\.?\d*)?,M?,/ or next;
374
+ $fix{lat} = (($5 || 0) + $6/60) * ($7 eq 'N' ? 1 : -1);
375
+ $fix{lon} = (($8 || 0) + $9/60) * ($10 eq 'E' ? 1 : -1);
376
+ $fix{nsats} = $11;
377
+ $fix{hdop} = $12;
378
+ $fix{alt} = $13;
379
+ $secs = (($1 * 60) + $2) * 60 + $3;
380
+ $canCut = 1;
381
+ #
382
+ # NMEA GLL sentence (no date)
383
+ #
384
+ } elsif ($nmea eq 'GLL') {
385
+ # $GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D
386
+ # $GPGLL,ddmm.mmmm,N/S,dddmm.mmmm,E/W,hhmmss.sss,A/V*cs
387
+ /^\$GPGLL,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d{2})(\d{2})(\d+(\.\d*)?),A/ or next;
388
+ $fix{lat} = (($1 || 0) + $2/60) * ($3 eq 'N' ? 1 : -1);
389
+ $fix{lon} = (($4 || 0) + $5/60) * ($6 eq 'E' ? 1 : -1);
390
+ $secs = (($7 * 60) + $8) * 60 + $9;
391
+ #
392
+ # NMEA GSA sentence (satellite status, no date)
393
+ #
394
+ } elsif ($nmea eq 'GSA') {
395
+ # $GPGSA,A,3,04,05,,,,,,,,,,,pdop,hdop,vdop*HH
396
+ /^\$GPGSA,[AM],([23]),((?:\d*,){11}(?:\d*)),(\d+\.?\d*|\.\d+)?,(\d+\.?\d*|\.\d+)?,(\d+\.?\d*|\.\d+)?\*/ or next;
397
+ @fix{qw(fixtype sats pdop hdop vdop)} = ($1.'d',$2,$3,$4,$5);
398
+ # count the number of acquired satellites
399
+ my @a = ($fix{sats} =~ /\d+/g);
400
+ $fix{nsats} = scalar @a;
401
+ $canCut = 1;
402
+ #
403
+ # NMEA ZDA sentence (date/time, contains date)
404
+ #
405
+ } elsif ($nmea eq 'ZDA') {
406
+ # $GPZDA,093655.000,29,09,2013,,*58
407
+ # $GPZDA,hhmmss.ss,DD,MM,YYYY,tzh,tzm (hhmmss in UTC)
408
+ /^\$GPZDA,(\d{2})(\d{2})(\d{2}(\.\d*)?),(\d+),(\d+),(\d+)/ or next;
409
+ $secs = (($1 * 60) + $2) * 60 + $3;
410
+ $date = Time::Local::timegm(0,0,0,$5,$6-1,$7-1900);
411
+ #
412
+ # Magellan eXplorist PMGNTRK (Proprietary MaGellaN TRacK) sentence (optional date)
413
+ #
414
+ } elsif ($nmea eq 'PMGNTRK') {
415
+ # $PMGNTRK,4415.026,N,07631.091,W,00092,M,185031.06,A,,020409*65
416
+ # $PMGNTRK,ddmm.mmm,N/S,dddmm.mmm,E/W,alt,F/M,hhmmss.ss,A/V,trkname,DDMMYY*cs
417
+ /^\$PMGNTRK,(\d+)(\d{2}\.\d+),([NS]),(\d+)(\d{2}\.\d+),([EW]),(-?\d+\.?\d*),([MF]),(\d{2})(\d{2})(\d+(\.\d*)?),A,(?:[^,]*,(\d{2})(\d{2})(\d+))?/ or next;
418
+ $fix{lat} = ($1 + $2/60) * ($3 eq 'N' ? 1 : -1);
419
+ $fix{lon} = ($4 + $5/60) * ($6 eq 'E' ? 1 : -1);
420
+ $fix{alt} = $8 eq 'M' ? $7 : $7 * 12 * 0.0254;
421
+ $secs = (($9 * 60) + $10) * 60 + $11;
422
+ if (defined $15) {
423
+ next if $13 > 31 or $14 > 12 or $15 > 99; # validate day/month/year
424
+ # optional date is available in PMGNTRK sentence
425
+ my $year = $15 + ($15 >= 70 ? 1900 : 2000);
426
+ $date = Time::Local::timegm(0,0,0,$13,$14-1,$year-1900);
427
+ }
428
+ #
429
+ # Honeywell HMR3000 PTNTHPR (Heading Pitch Roll) sentence (no date)
430
+ # (ref http://www.gpsarea.com/uploadfile/download/introduce/hmr3000_manual.pdf)
431
+ #
432
+ } elsif ($nmea eq 'PTNTHPR') {
433
+ # $PTNTHPR,85.9,N,-0.9,N,0.8,N*HH
434
+ # $PTNTHPR,heading,heading status,pitch,pitch status,roll,roll status,*cs
435
+ # status: L=low alarm, M=low warning, N=normal, O=high warning
436
+ # P=high alarm, C=tuning analog circuit
437
+ # (ignore this information on any alarm status)
438
+ /^\$PTNTHPR,(-?[\d.]+),[MNO],(-?[\d.]+),[MNO],(-?[\d.]+),[MNO],/ or next;
439
+ @fix{qw(dir pitch roll)} = ($1,$2,$3);
440
+
441
+ } else {
442
+ next; # this shouldn't happen
443
+ }
444
+ # remember the NMEA formats we successfully read
445
+ $nmea{$nmea} = 1;
446
+ # use last date if necessary (and appropriate)
447
+ if (defined $secs and not defined $date and defined $lastDate) {
448
+ # wrap to next day if necessary
449
+ if ($secs < $lastSecs - JITTER()) {
450
+ $lastSecs -= $secPerDay;
451
+ $lastDate += $secPerDay;
452
+ }
453
+ # use earlier date only if we are within 10 seconds
454
+ if ($secs - $lastSecs < 10) {
455
+ # last date is close, use it for this fix
456
+ $date = $lastDate;
457
+ } else {
458
+ # last date is old, discard it
459
+ undef $lastDate;
460
+ undef $lastSecs;
461
+ }
462
+ }
463
+ # save our last date/time
464
+ if (defined $date) {
465
+ $lastDate = $date;
466
+ $lastSecs = $secs;
467
+ }
468
+ #
469
+ # Add NMEA/IGC fix to our lookup
470
+ # (this is much more complicated than it needs to be because
471
+ # the stupid NMEA format provides no end-of-fix indication)
472
+ #
473
+ # assumptions for each NMEA sentence:
474
+ # - we only parse a time if we get a lat/lon
475
+ # - we always get a time if we have a date
476
+ if ($nmea eq $nmeaStart or (defined $secs and (not defined $fixSecs or
477
+ # don't combine sentences that are outside 10 seconds apart
478
+ ($secs >= $fixSecs and $secs - $fixSecs >= 10) or
479
+ ($secs < $fixSecs and $secs + $secPerDay - $fixSecs >= 10))))
480
+ {
481
+ # start a new fix
482
+ $fix = \%fix;
483
+ $fixSecs = $secs;
484
+ undef $noDateChanged;
485
+ # does this fix have a date/time or time stamp?
486
+ if (defined $date) {
487
+ $fix{isDate} = $isDate = 1;
488
+ $time = $date + $secs;
489
+ } elsif (defined $secs) {
490
+ $time = $secs;
491
+ $noDate = $noDateChanged = 1;
492
+ } else {
493
+ next; # wait until we have a time before adding to lookup
494
+ }
495
+ } else {
496
+ # add new data to existing fix (but don't overwrite earlier values to
497
+ # keep the coordinates in sync with the fix time)
498
+ foreach (keys %fix) {
499
+ $$fix{$_} = $fix{$_} unless defined $$fix{$_};
500
+ }
501
+ if (defined $date) {
502
+ next if $$fix{isDate};
503
+ # move this fix to the proper date
504
+ if (defined $fixSecs) {
505
+ delete $$points{$fixSecs};
506
+ pop @fixTimes if @fixTimes and $fixTimes[-1] == $fixSecs;
507
+ --$numPoints;
508
+ # if we wrapped to the next day since the start of this fix,
509
+ # we must shift the date back to the day of $fixSecs
510
+ $date -= $secPerDay if $secs < $fixSecs;
511
+ } else {
512
+ $fixSecs = $secs;
513
+ }
514
+ $time = $date + $fixSecs;
515
+ $$fix{isDate} = $isDate = 1;
516
+ # revert noDate flag if it was set for this fix
517
+ $noDate = 0 if $noDateChanged;
518
+ } elsif (defined $secs and not defined $fixSecs) {
519
+ $time = $fixSecs = $secs;
520
+ $noDate = $noDateChanged = 1;
521
+ } else {
522
+ next; # wait until we have a time
523
+ }
524
+ }
525
+ # add fix to our lookup
526
+ $$points{$time} = $fix;
527
+ push @fixTimes, $time; # save time of all fixes in order
528
+ ++$numPoints;
529
+ }
530
+ $raf->Close();
531
+
532
+ # set date flags
533
+ if ($noDate and not $$geotag{NoDate}) {
534
+ if ($isDate) {
535
+ $et->Warn('Fixes are date-less -- will use time-only interpolation');
536
+ } else {
537
+ $et->Warn('Some fixes are date-less -- may use time-only interpolation');
538
+ }
539
+ $$geotag{NoDate} = 1;
540
+ }
541
+ $$geotag{IsDate} = 1 if $isDate;
542
+
543
+ # cut bad fixes if necessary
544
+ if ($isCut and $canCut) {
545
+ $cutPDOP = $cutHDOP = $cutSats = 0;
546
+ my @goodTimes;
547
+ foreach (@fixTimes) {
548
+ $fix = $$points{$_} or next;
549
+ if ($maxPDOP and $$fix{pdop} and $$fix{pdop} > $maxPDOP) {
550
+ delete $$points{$_};
551
+ ++$cutPDOP;
552
+ } elsif ($maxHDOP and $$fix{hdop} and $$fix{hdop} > $maxHDOP) {
553
+ delete $$points{$_};
554
+ ++$cutHDOP;
555
+ } elsif ($minSats and defined $$fix{nsats} and $$fix{nsats} ne '' and
556
+ $$fix{nsats} < $minSats)
557
+ {
558
+ delete $$points{$_};
559
+ ++$cutSats;
560
+ } else {
561
+ push @goodTimes, $_;
562
+ }
563
+ }
564
+ @fixTimes = @goodTimes; # update fix times
565
+ $numPoints -= $cutPDOP;
566
+ $numPoints -= $cutHDOP;
567
+ $numPoints -= $cutSats;
568
+ }
569
+ # mark first fix of the track
570
+ while (@fixTimes) {
571
+ $fix = $$points{$fixTimes[0]} or shift(@fixTimes), next;
572
+ $$fix{first} = 1;
573
+ last;
574
+ }
575
+ my $verbose = $et->Options('Verbose');
576
+ if ($verbose) {
577
+ my $out = $et->Options('TextOut');
578
+ $format or $format = 'unknown';
579
+ print $out "Loaded $numPoints points from $format-format GPS track log $from\n";
580
+ print $out "Ignored $cutPDOP points due to GeoMaxPDOP cut\n" if $cutPDOP;
581
+ print $out "Ignored $cutHDOP points due to GeoMaxHDOP cut\n" if $cutHDOP;
582
+ print $out "Ignored $cutSats points due to GeoMinSats cut\n" if $cutSats;
583
+ if ($numPoints and $verbose > 1) {
584
+ my @lbl = ('start:', 'end: ');
585
+ # (fixes may be in reverse order in GPX files)
586
+ @lbl = reverse @lbl if $fixTimes[0] > $fixTimes[-1];
587
+ print $out " GPS track $lbl[0] " . PrintFixTime($fixTimes[0]) . "\n";
588
+ if ($verbose > 3) {
589
+ print $out PrintFix($points, $_) foreach @fixTimes;
590
+ }
591
+ print $out " GPS track $lbl[1] " . PrintFixTime($fixTimes[-1]) . "\n";
592
+ }
593
+ }
594
+ if ($numPoints) {
595
+ # reset timestamp list to force it to be regenerated
596
+ delete $$geotag{Times};
597
+ # set flags for available information
598
+ $$has{alt} = 1 if $nmea{GGA} or $nmea{PMGNTRK} or $nmea{B}; # alt
599
+ $$has{track} = 1 if $nmea{RMC}; # track, speed
600
+ $$has{orient} = 1 if $nmea{PTNTHPR}; # dir, pitch, roll
601
+ return $geotag; # success!
602
+ }
603
+ return "No track points found in GPS $from";
604
+ }
605
+
606
+ #------------------------------------------------------------------------------
607
+ # Apply Geosync time correction
608
+ # Inputs: 0) ExifTool ref, 1) Unix UTC time value
609
+ # Returns: sync time difference (and updates input time), or undef if no sync
610
+ sub ApplySyncCorr($$)
611
+ {
612
+ my ($et, $time) = @_;
613
+ my $sync = $et->GetNewValues('Geosync');
614
+ if (ref $sync eq 'HASH') {
615
+ my $syncTimes = $$sync{Times};
616
+ if ($syncTimes) {
617
+ # find the nearest 2 sync points
618
+ my ($i0, $i1) = (0, scalar(@$syncTimes) - 1);
619
+ while ($i1 > $i0 + 1) {
620
+ my $pt = int(($i0 + $i1) / 2);
621
+ if ($time < $$syncTimes[$pt]) {
622
+ $i1 = $pt;
623
+ } else {
624
+ $i0 = $pt;
625
+ }
626
+ }
627
+ my ($t0, $t1) = ($$syncTimes[$i0], $$syncTimes[$i1]);
628
+ # interpolate/extrapolate to account for linear camera clock drift
629
+ my $syncPoints = $$sync{Points};
630
+ my $f = $t1 == $t0 ? 0 : ($time - $t0) / ($t1 - $t0);
631
+ $sync = $$syncPoints{$t1} * $f + $$syncPoints{$t0} * (1 - $f);
632
+ } else {
633
+ $sync = $$sync{Offset}; # use fixed time offset
634
+ }
635
+ $_[1] += $sync;
636
+ } else {
637
+ undef $sync;
638
+ }
639
+ return $sync;
640
+ }
641
+
642
+ #------------------------------------------------------------------------------
643
+ # Scan outwards for a fix containing the requested parameter
644
+ # Inputs: 0) name of fix parameter, 1) reference to list of fix times,
645
+ # 2) reference to fix points hash, 3) index of starting time,
646
+ # 4) direction to scan (-1 or +1), 5) maximum time difference
647
+ # Returns: 0) time for fix containing requested information (or undef)
648
+ # 1) the corresponding fix, 2) the value of the requested fix parameter
649
+ sub ScanOutwards($$$$$$)
650
+ {
651
+ my ($key, $times, $points, $i, $dir, $maxSecs) = @_;
652
+ my $t0 = $$times[$i];
653
+ for (;;) {
654
+ $i += $dir;
655
+ last if $i < 0 or $i >= scalar @$times;
656
+ my $t = $$times[$i];
657
+ last if abs($t - $t0) > $maxSecs; # don't look too far
658
+ my $p = $$points{$t};
659
+ my $v = $$p{$key};
660
+ return($t,$p,$v) if defined $v;
661
+ }
662
+ return();
663
+ }
664
+
665
+ #------------------------------------------------------------------------------
666
+ # Find nearest fix containing the specified parameter
667
+ # Inputs: 0) ExifTool ref, 1) name of fix parameter, 2) reference to list of fix times,
668
+ # 3) reference to fix points hash, 4) index of starting time,
669
+ # 5) direction to scan (-1, +1 or undef), 6) maximum time difference
670
+ # Returns: reference to fix hash or undef
671
+ sub FindFix($$$$$$$)
672
+ {
673
+ my ($et, $key, $times, $points, $i, $dir, $maxSecs) = @_;
674
+ my ($t,$p);
675
+ if ($dir) {
676
+ ($t,$p) = ScanOutwards($key, $times, $points, $i, $dir, $maxSecs);
677
+ } else {
678
+ my ($t1, $p1) = ScanOutwards($key, $times, $points, $i, -1, $maxSecs);
679
+ my ($t2, $p2) = ScanOutwards($key, $times, $points, $i, 1, $maxSecs);
680
+ if (defined $t1) {
681
+ if (defined $t2) {
682
+ # both surrounding points are valid, so take the closest one
683
+ ($t, $p) = ($t - $t1 < $t2 - $t) ? ($t1, $p1) : ($t2, $p2);
684
+ } else {
685
+ ($t, $p) = ($t1, $p1);
686
+ }
687
+ } elsif (defined $t2) {
688
+ ($t, $p) = ($t2, $p2);
689
+ }
690
+ }
691
+ if (defined $p and $$et{OPTIONS}{Verbose} > 2) {
692
+ $et->VPrint(2, " Taking $key from fix:\n", PrintFix($points, $t))
693
+ }
694
+ return $p;
695
+ }
696
+
697
+ #------------------------------------------------------------------------------
698
+ # Set new geotagging values according to date/time
699
+ # Inputs: 0) ExifTool object ref, 1) date/time value (or undef to delete tags)
700
+ # 2) optional write group
701
+ # Returns: error string, or '' on success
702
+ # Notes: Uses track data stored in ExifTool NEW_VALUE for Geotag tag
703
+ sub SetGeoValues($$;$)
704
+ {
705
+ local $_;
706
+ my ($et, $val, $writeGroup) = @_;
707
+ my $geotag = $et->GetNewValues('Geotag');
708
+ my $verbose = $et->Options('Verbose');
709
+ my ($fix, $time, $fsec, $noDate, $secondTry, $iExt, $iDir);
710
+
711
+ # remove date if none of our fixes had date information
712
+ $val =~ s/^\S+\s+// if $val and $geotag and not $$geotag{IsDate};
713
+
714
+ # maximum time (sec) from nearest GPS fix when position is still considered valid
715
+ my $geoMaxIntSecs = $et->Options('GeoMaxIntSecs');
716
+ my $geoMaxExtSecs = $et->Options('GeoMaxExtSecs');
717
+
718
+ # use 30 minutes for a default
719
+ defined $geoMaxIntSecs or $geoMaxIntSecs = 1800;
720
+ defined $geoMaxExtSecs or $geoMaxExtSecs = 1800;
721
+
722
+ my $times = $$geotag{Times};
723
+ my $points = $$geotag{Points};
724
+ my $has = $$geotag{Has};
725
+ my $err = '';
726
+ # loop to try date/time value first, then time-only value
727
+ while (defined $val) {
728
+ unless (defined $geotag) {
729
+ $err = 'No GPS track loaded';
730
+ last;
731
+ }
732
+ unless ($times) {
733
+ # generate sorted timestamp list for binary search
734
+ my @times = sort { $a <=> $b } keys %$points;
735
+ $times = $$geotag{Times} = \@times;
736
+ }
737
+ unless ($times and @$times) {
738
+ $err = 'GPS track is empty';
739
+ last;
740
+ }
741
+ unless (eval { require Time::Local }) {
742
+ $err = 'Geotag feature requires Time::Local installed';
743
+ last;
744
+ }
745
+ # convert date/time to UTC
746
+ my ($year,$mon,$day,$hr,$min,$sec,$fs,$tz,$t0,$t1,$t2);
747
+ if ($val =~ /^(\d{4}):(\d+):(\d+)\s+(\d+):(\d+):(\d+)(\.\d*)?(Z|([-+])(\d+):(\d+))?/) {
748
+ # valid date/time value
749
+ ($year,$mon,$day,$hr,$min,$sec,$fs,$tz,$t0,$t1,$t2) = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11);
750
+ } elsif ($val =~ /^(\d{2}):(\d+):(\d+)(\.\d*)?(Z|([-+])(\d+):(\d+))?/) {
751
+ # valid time-only value
752
+ ($hr,$min,$sec,$fs,$tz,$t0,$t1,$t2) = ($1,$2,$3,$4,$5,$6,$7,$8);
753
+ # use Jan. 2 to avoid going negative after tz adjustment
754
+ ($year,$mon,$day) = (1970,1,2);
755
+ $noDate = 1;
756
+ } else {
757
+ $err = 'Invalid date/time (use YYYY:mm:dd HH:MM:SS[.ss][+/-HH:MM|Z])';
758
+ last;
759
+ }
760
+ if ($tz) {
761
+ $time = Time::Local::timegm($sec,$min,$hr,$day,$mon-1,$year-1900);
762
+ # use timezone from date/time value
763
+ if ($tz ne 'Z') {
764
+ my $tzmin = $t1 * 60 + $t2;
765
+ $time -= ($t0 eq '-' ? -$tzmin : $tzmin) * 60;
766
+ }
767
+ } else {
768
+ # assume local timezone
769
+ $time = Image::ExifTool::TimeLocal($sec,$min,$hr,$day,$mon-1,$year-1900);
770
+ }
771
+ # add fractional seconds
772
+ $time += $fs if $fs and $fs ne '.';
773
+
774
+ # bring UTC time back to Jan. 1 if no date is given
775
+ $time %= $secPerDay if $noDate;
776
+
777
+ # apply time synchronization if available
778
+ my $sync = ApplySyncCorr($et, $time);
779
+
780
+ # save fractional seconds string
781
+ $fsec = ($time =~ /(\.\d+)$/) ? $1 : '';
782
+
783
+ if ($et->Options('Verbose') > 1 and not $secondTry) {
784
+ my $out = $et->Options('TextOut');
785
+ my $str = '';
786
+ $str .= sprintf(" (incl. Geosync offset of %+.3f sec)", $sync) if defined $sync;
787
+ unless ($tz) {
788
+ my $tzs = Image::ExifTool::TimeZoneString([$sec,$min,$hr,$day,$mon-1,$year-1900],$time);
789
+ $str .= " (local timezone is $tzs)";
790
+ }
791
+ print $out ' Geotime value: ' . PrintFixTime($time) . "$str\n";
792
+ }
793
+ # interpolate GPS track at $time
794
+ if ($time < $$times[0]) {
795
+ if ($time < $$times[0] - $geoMaxExtSecs) {
796
+ $err or $err = 'Time is too far before track';
797
+ $et->VPrint(2, ' Track start: ', PrintFixTime($$times[0]), "\n") if $verbose > 2;
798
+ } else {
799
+ $fix = $$points{$$times[0]};
800
+ $iExt = 0; $iDir = 1;
801
+ $et->VPrint(2, " Taking pos from fix:\n",
802
+ PrintFix($points, $$times[0])) if $verbose > 2;
803
+ }
804
+ } elsif ($time > $$times[-1]) {
805
+ if ($time > $$times[-1] + $geoMaxExtSecs) {
806
+ $err or $err = 'Time is too far beyond track';
807
+ $et->VPrint(2, ' Track end: ', PrintFixTime($$times[-1]), "\n") if $verbose > 2;
808
+ } else {
809
+ $fix = $$points{$$times[-1]};
810
+ $iExt = $#$times; $iDir = -1;
811
+ $et->VPrint(2, " Taking pos from fix:\n",
812
+ PrintFix($points, $$times[-1])) if $verbose > 2;
813
+ }
814
+ } else {
815
+ # find nearest 2 points in time
816
+ my ($i0, $i1) = (0, scalar(@$times) - 1);
817
+ while ($i1 > $i0 + 1) {
818
+ my $pt = int(($i0 + $i1) / 2);
819
+ if ($time < $$times[$pt]) {
820
+ $i1 = $pt;
821
+ } else {
822
+ $i0 = $pt;
823
+ }
824
+ }
825
+ # do linear interpolation for position
826
+ my $t0 = $$times[$i0];
827
+ my $t1 = $$times[$i1];
828
+ my $p1 = $$points{$t1};
829
+ # check to see if we are extrapolating before the first entry in a track
830
+ my $maxSecs = ($$p1{first} and $geoMaxIntSecs) ? $geoMaxExtSecs : $geoMaxIntSecs;
831
+ # don't interpolate if fixes are too far apart
832
+ if ($t1 - $t0 > $maxSecs) {
833
+ # treat as an extrapolation -- use nearest fix if close enough
834
+ my $tn;
835
+ if ($time - $t0 < $t1 - $time) {
836
+ $tn = $t0;
837
+ $iExt = $i0;
838
+ } else {
839
+ $tn = $t1;
840
+ $iExt = $i1;
841
+ }
842
+ if (abs($time - $tn) > $geoMaxExtSecs) {
843
+ $err or $err = 'Time is too far from nearest GPS fix';
844
+ $et->VPrint(2, ' Nearest fix: ', PrintFixTime($tn), "\n") if $verbose > 2;
845
+ } else {
846
+ $fix = $$points{$tn};
847
+ $et->VPrint(2, " Taking pos from fix:\n",
848
+ PrintFix($points, $tn)) if $verbose > 2;
849
+ }
850
+ } else {
851
+ my $f0 = $t1 == $t0 ? 0 : ($time - $t0) / ($t1 - $t0);
852
+ my $p0 = $$points{$t0};
853
+ $et->VPrint(2, " Interpolating between fixes (f=$f0):\n",
854
+ PrintFix($points, $t0, $t1)) if $verbose > 2;
855
+ $fix = { };
856
+ # loop through available fix information categories
857
+ # (pos, track, alt, orient)
858
+ my ($category, $key);
859
+ Category: foreach $category (qw{pos track alt orient}) {
860
+ next unless $$has{$category};
861
+ my ($f, $p0b, $p1b, $f0b);
862
+ # loop through specific fix information keys
863
+ # (lat, lon, alt, track, speed, dir, pitch, roll)
864
+ foreach $key (@{$fixInfoKeys{$category}}) {
865
+ my $v0 = $$p0{$key};
866
+ my $v1 = $$p1{$key};
867
+ if (defined $v0 and defined $v1) {
868
+ $f = $f0;
869
+ } elsif (defined $f0b) {
870
+ $v0 = $$p0b{$key};
871
+ $v1 = $$p1b{$key};
872
+ next unless defined $v0 and defined $v1;
873
+ $f = $f0b;
874
+ } else {
875
+ # scan outwards looking for fixes with the required information
876
+ # (NOTE: SHOULD EVENTUALLY DO THIS FOR EXTRAPOLATION TOO!)
877
+ my ($t0b, $t1b);
878
+ if (defined $v0) {
879
+ $t0b = $t0; $p0b = $p0;
880
+ } else {
881
+ ($t0b,$p0b,$v0) = ScanOutwards($key,$times,$points,$i0,-1,$maxSecs);
882
+ next Category unless defined $t0b;
883
+ }
884
+ if (defined $v1) {
885
+ $t1b = $t1; $p1b = $p1;
886
+ } else {
887
+ ($t1b,$p1b,$v1) = ScanOutwards($key,$times,$points,$i1,1,$maxSecs);
888
+ next Category unless defined $t1b;
889
+ }
890
+ # re-calculate the interpolation factor
891
+ $f = $f0b = $t1b == $t0b ? 0 : ($time - $t0b) / ($t1b - $t0b);
892
+ $et->VPrint(2, " Interpolating $category between fixes (f=$f):\n",
893
+ PrintFix($points, $t0b, $t1b)) if $verbose > 2;
894
+ }
895
+ # must interpolate cyclical values differently
896
+ if ($cyclical{$key} and abs($v1 - $v0) > 180) {
897
+ # the acute angle spans the discontinuity, so add
898
+ # 360 degrees to the smaller angle before interpolating
899
+ $v0 < $v1 ? $v0 += 360 : $v1 += 360;
900
+ $$fix{$key} = $v1 * $f + $v0 * (1 - $f);
901
+ # longitude and roll ranges are -180 to 180, others are 0 to 360
902
+ my $max = ($key eq 'lon' or $key eq 'roll') ? 180 : 360;
903
+ $$fix{$key} -= 360 if $$fix{$key} >= $max;
904
+ } else {
905
+ # simple linear interpolation
906
+ $$fix{$key} = $v1 * $f + $v0 * (1 - $f);
907
+ }
908
+ }
909
+ }
910
+ }
911
+ }
912
+ if ($fix) {
913
+ $err = ''; # success!
914
+ } elsif ($$geotag{NoDate} and not $noDate and $val =~ s/^\S+\s+//) {
915
+ # try again with no date since some of our track points are date-less
916
+ $secondTry = 1;
917
+ next;
918
+ }
919
+ last;
920
+ }
921
+ if ($fix) {
922
+ my ($gpsDate, $gpsAlt, $gpsAltRef);
923
+ my @t = gmtime(int $time);
924
+ my $gpsTime = sprintf('%.2d:%.2d:%.2d', $t[2], $t[1], $t[0]) . $fsec;
925
+ # write GPSDateStamp if date included in track log, otherwise delete it
926
+ $gpsDate = sprintf('%.2d:%.2d:%.2d', $t[5]+1900, $t[4]+1, $t[3]) unless $noDate;
927
+ # write GPSAltitude tags if altitude included in track log, otherwise delete them
928
+ if (defined $$fix{alt}) {
929
+ $gpsAlt = abs $$fix{alt};
930
+ $gpsAltRef = ($$fix{alt} < 0 ? 1 : 0);
931
+ } elsif ($$has{alt} and defined $iExt) {
932
+ my $tFix = FindFix($et,'alt',$times,$points,$iExt,$iDir,$geoMaxExtSecs);
933
+ if ($tFix) {
934
+ $gpsAlt = abs $$tFix{alt};
935
+ $gpsAltRef = ($$tFix{alt} < 0 ? 1 : 0);
936
+ }
937
+ }
938
+ # set new GPS tag values (EXIF, or XMP if write group is 'xmp')
939
+ my ($xmp, $exif, @r);
940
+ my %opts = ( Type => 'ValueConv' ); # write ValueConv values
941
+ if ($writeGroup) {
942
+ $opts{Group} = $writeGroup;
943
+ $xmp = ($writeGroup =~ /xmp/i);
944
+ $exif = ($writeGroup =~ /^(exif|gps)$/i);
945
+ }
946
+ # (capture error messages by calling SetNewValue in list context)
947
+ @r = $et->SetNewValue(GPSLatitude => $$fix{lat}, %opts);
948
+ @r = $et->SetNewValue(GPSLongitude => $$fix{lon}, %opts);
949
+ @r = $et->SetNewValue(GPSAltitude => $gpsAlt, %opts);
950
+ @r = $et->SetNewValue(GPSAltitudeRef => $gpsAltRef, %opts);
951
+ if ($$has{track}) {
952
+ my $tFix = $fix;
953
+ if (not defined $$fix{track} and defined $iExt) {
954
+ my $p = FindFix($et,'track',$times,$points,$iExt,$iDir,$geoMaxExtSecs);
955
+ $tFix = $p if $p;
956
+ }
957
+ @r = $et->SetNewValue(GPSTrack => $$tFix{track}, %opts);
958
+ @r = $et->SetNewValue(GPSTrackRef => (defined $$tFix{track} ? 'T' : undef), %opts);
959
+ @r = $et->SetNewValue(GPSSpeed => $$tFix{speed}, %opts);
960
+ @r = $et->SetNewValue(GPSSpeedRef => (defined $$tFix{speed} ? 'N' : undef), %opts);
961
+ }
962
+ if ($$has{orient}) {
963
+ my $tFix = $fix;
964
+ if (not defined $$fix{dir} and defined $iExt) {
965
+ my $p = FindFix($et,'dir',$times,$points,$iExt,$iDir,$geoMaxExtSecs);
966
+ $tFix = $p if $p;
967
+ }
968
+ @r = $et->SetNewValue(GPSImgDirection => $$tFix{dir}, %opts);
969
+ @r = $et->SetNewValue(GPSImgDirectionRef => (defined $$tFix{dir} ? 'T' : undef), %opts);
970
+ # Note: GPSPitch and GPSRoll are non-standard, and must be user-defined
971
+ @r = $et->SetNewValue(GPSPitch => $$tFix{pitch}, %opts);
972
+ @r = $et->SetNewValue(GPSRoll => $$tFix{roll}, %opts);
973
+ }
974
+ unless ($xmp) {
975
+ @r = $et->SetNewValue(GPSLatitudeRef => ($$fix{lat} > 0 ? 'N' : 'S'), %opts);
976
+ @r = $et->SetNewValue(GPSLongitudeRef => ($$fix{lon} > 0 ? 'E' : 'W'), %opts);
977
+ @r = $et->SetNewValue(GPSDateStamp => $gpsDate, %opts);
978
+ @r = $et->SetNewValue(GPSTimeStamp => $gpsTime, %opts);
979
+ # set options to edit XMP:GPSDateTime only if it already exists
980
+ $opts{EditOnly} = 1;
981
+ $opts{Group} = 'XMP';
982
+ }
983
+ unless ($exif) {
984
+ @r = $et->SetNewValue(GPSDateTime => "$gpsDate $gpsTime", %opts);
985
+ }
986
+ } else {
987
+ my %opts;
988
+ $opts{Replace} = 2 if defined $val; # remove existing new values
989
+ $opts{Group} = $writeGroup if $writeGroup;
990
+
991
+ # reset any GPS values we might have already set
992
+ foreach (qw(GPSLatitude GPSLatitudeRef GPSLongitude GPSLongitudeRef
993
+ GPSAltitude GPSAltitudeRef GPSDateStamp GPSTimeStamp GPSDateTime
994
+ GPSTrack GPSTrackRef GPSSpeed GPSSpeedRef
995
+ GPSImgDirection GPSImgDirectionRef GPSPitch GPSRoll))
996
+ {
997
+ my @r = $et->SetNewValue($_, undef, %opts);
998
+ }
999
+ }
1000
+ return $err;
1001
+ }
1002
+
1003
+ #------------------------------------------------------------------------------
1004
+ # Convert Geotagging time synchronization value
1005
+ # Inputs: 0) exiftool object ref,
1006
+ # 1) time difference string ("[+-]DD MM:HH:SS.ss"), geosync'd file name,
1007
+ # "GPSTIME@IMAGETIME", or "GPSTIME@FILENAME"
1008
+ # Returns: geosync hash
1009
+ # Notes: calling this routine with more than one geosync'd file causes time drift
1010
+ # correction to be implemented
1011
+ sub ConvertGeosync($$)
1012
+ {
1013
+ my ($et, $val) = @_;
1014
+ my $sync = $et->GetNewValues('Geosync') || { };
1015
+ my ($syncFile, $gpsTime, $imgTime);
1016
+
1017
+ if ($val =~ /(.*?)\@(.*)/) {
1018
+ $gpsTime = $1;
1019
+ if (-f $2) {
1020
+ $syncFile = $2;
1021
+ } else {
1022
+ $imgTime = $2;
1023
+ }
1024
+ # (take care because "-f '1:30'" crashes ActivePerl 5.10)
1025
+ } elsif ($val !~ /^\d/ or $val !~ /:/) {
1026
+ $syncFile = $val if -f $val;
1027
+ }
1028
+ if ($gpsTime or defined $syncFile) {
1029
+ # (this is a time synchronization vector)
1030
+ if (defined $syncFile) {
1031
+ # check the following tags in order to obtain the image timestamp
1032
+ my @timeTags = qw(SubSecDateTimeOriginal SubSecCreateDate SubSecModifyDate
1033
+ DateTimeOriginal CreateDate ModifyDate FileModifyDate);
1034
+ my $info = ImageInfo($syncFile, { PrintConv => 0 }, @timeTags,
1035
+ 'GPSDateTime', 'GPSTimeStamp');
1036
+ $$info{Error} and warn("$$info{Err}\n"), return undef;
1037
+ $gpsTime or $gpsTime = $$info{GPSDateTime} || $$info{GPSTimeStamp};
1038
+ my $tag;
1039
+ foreach $tag (@timeTags) {
1040
+ if ($$info{$tag}) {
1041
+ $imgTime = $$info{$tag};
1042
+ $et->VPrint(2, "Geosyncing with $tag from '$syncFile'\n");
1043
+ last;
1044
+ }
1045
+ }
1046
+ $gpsTime or warn("No GPSTimeStamp in '$syncFile\n"), return undef;
1047
+ $imgTime or warn("No image timestamp in '$syncFile'\n"), return undef;
1048
+ }
1049
+ # add date to date-less timestamps
1050
+ my ($imgDateTime, $gpsDateTime, $noDate);
1051
+ if ($imgTime =~ /^(\d+:\d+:\d+)\s+\d+/) {
1052
+ $imgDateTime = $imgTime;
1053
+ my $date = $1;
1054
+ if ($gpsTime =~ /^\d+:\d+:\d+\s+\d+/) {
1055
+ $gpsDateTime = $gpsTime;
1056
+ } else {
1057
+ $gpsDateTime = "$date $gpsTime";
1058
+ }
1059
+ } elsif ($gpsTime =~ /^(\d+:\d+:\d+)\s+\d+/) {
1060
+ $imgDateTime = "$1 $imgTime";
1061
+ $gpsDateTime = $gpsTime;
1062
+ } else {
1063
+ # use a today's date (so hopefully the DST setting will be intuitive)
1064
+ my @tm = localtime;
1065
+ my $date = sprintf('%.4d:%.2d:%.2d', $tm[5]+1900, $tm[4]+1, $tm[3]);
1066
+ $gpsDateTime = "$date $gpsTime";
1067
+ $imgDateTime = "$date $imgTime";
1068
+ $noDate = 1;
1069
+ }
1070
+ # calculate Unix seconds since the epoch
1071
+ my $imgSecs = Image::ExifTool::GetUnixTime($imgDateTime, 1);
1072
+ defined $imgSecs or warn("Invalid image time '$imgTime'\n"), return undef;
1073
+ my $gpsSecs = Image::ExifTool::GetUnixTime($gpsDateTime, 1);
1074
+ defined $gpsSecs or warn("Invalid GPS time '$gpsTime'\n"), return undef;
1075
+ # add fractional seconds
1076
+ $gpsSecs += $1 if $gpsTime =~ /(\.\d+)/;
1077
+ $imgSecs += $1 if $imgTime =~ /(\.\d+)/;
1078
+ # shift dates within 12 hours of each other if either timestamp was date-less
1079
+ if ($gpsDateTime ne $gpsTime or $imgDateTime ne $imgTime) {
1080
+ my $diff = ($imgSecs - $gpsSecs) % (24 * 3600);
1081
+ $diff -= 24 * 3600 if $diff > 12 * 3600;
1082
+ $diff += 24 * 3600 if $diff < -12 * 3600;
1083
+ if ($gpsDateTime ne $gpsTime) {
1084
+ $gpsSecs = $imgSecs - $diff;
1085
+ } else {
1086
+ $imgSecs = $gpsSecs + $diff;
1087
+ }
1088
+ }
1089
+ # save the synchronization offset
1090
+ $$sync{Offset} = $gpsSecs - $imgSecs;
1091
+ # save this synchronization point if either timestamp had a date
1092
+ unless ($noDate) {
1093
+ $$sync{Points} or $$sync{Points} = { };
1094
+ $$sync{Points}{$imgSecs} = $$sync{Offset};
1095
+ # print verbose output
1096
+ if ($et->Options('Verbose') > 1) {
1097
+ # print GPS and image timestamps in UTC
1098
+ $et->VPrint(1, "Added Geosync point:\n",
1099
+ ' GPS time stamp: ', PrintFixTime($gpsSecs), "\n",
1100
+ ' Image date/time: ', PrintFixTime($imgSecs), "\n");
1101
+ }
1102
+ # save sorted list of image sync times if we have more than one
1103
+ my @times = keys %{$$sync{Points}};
1104
+ if (@times > 1) {
1105
+ @times = sort { $a <=> $b } @times;
1106
+ $$sync{Times} = \@times;
1107
+ }
1108
+ }
1109
+ } else {
1110
+ # (this is a simple time difference)
1111
+ my @vals = $val =~ /(?=\d|\.\d)\d*(?:\.\d*)?/g; # (allow decimal values too)
1112
+ @vals or warn("Invalid value (please refer to geotag documentation)\n"), return undef;
1113
+ my $secs = 0;
1114
+ my $mult;
1115
+ foreach $mult (1, 60, 3600, $secPerDay) {
1116
+ $secs += $mult * pop(@vals);
1117
+ last unless @vals;
1118
+ }
1119
+ # set constant sync offset
1120
+ $$sync{Offset} = $val =~ /^\s*-/ ? -$secs : $secs;
1121
+ }
1122
+ return $sync;
1123
+ }
1124
+
1125
+ #------------------------------------------------------------------------------
1126
+ # Print fix time
1127
+ # Inputs: 0) time since the epoch
1128
+ # Returns: UTC time string with fractional seconds
1129
+ sub PrintFixTime($)
1130
+ {
1131
+ my $time = $_[0] + 0.0005; # round off to nearest ms
1132
+ my $fsec = int(($time - int($time)) * 1000);
1133
+ return sprintf('%s.%.3d UTC', Image::ExifTool::ConvertUnixTime($time), $fsec);
1134
+ }
1135
+
1136
+ #------------------------------------------------------------------------------
1137
+ # Print fix information
1138
+ # Inputs: 0) lookup for all fix points, 1-n) list of fix times
1139
+ # Returns: fix string (including leading indent and trailing newline)
1140
+ sub PrintFix($@)
1141
+ {
1142
+ local $_;
1143
+ my $points = shift;
1144
+ my $str = '';
1145
+ while (@_) {
1146
+ my $time = shift;
1147
+ $str .= ' ' . PrintFixTime($time) . ' -';
1148
+ my $fix = $$points{$time};
1149
+ if ($fix) {
1150
+ foreach (sort keys %$fix) {
1151
+ $str .= " $_=$$fix{$_}" unless $_ eq 'time' or not defined $$fix{$_};
1152
+ }
1153
+ }
1154
+ $str .= "\n";
1155
+ }
1156
+ return $str;
1157
+ }
1158
+
1159
+ #------------------------------------------------------------------------------
1160
+ 1; # end
1161
+
1162
+ __END__
1163
+
1164
+ =head1 NAME
1165
+
1166
+ Image::ExifTool::Geotag - Geotagging utility routines
1167
+
1168
+ =head1 SYNOPSIS
1169
+
1170
+ This module is used by Image::ExifTool
1171
+
1172
+ =head1 DESCRIPTION
1173
+
1174
+ This module loads GPS track logs, interpolates to determine position based
1175
+ on time, and sets new GPS values for geotagging images. Currently supported
1176
+ formats are GPX, NMEA RMC/GGA/GLL, KML, IGC, Garmin XML and TCX, Magellan
1177
+ PMGNTRK, Honeywell PTNTHPR, Winplus Beacon text, and Bramor gEO log files.
1178
+
1179
+ Methods in this module should not be called directly. Instead, the Geotag
1180
+ feature is accessed by writing the values of the ExifTool Geotag, Geosync
1181
+ and Geotime tags (see the L<Extra Tags|Image::ExifTool::TagNames/Extra Tags>
1182
+ in the tag name documentation).
1183
+
1184
+ =head1 NOTES
1185
+
1186
+ To take advantage of attitude information in the PTNTHPR NMEA sentence, two
1187
+ user-defined tags, GPSPitch and GPSRoll, must be active.
1188
+
1189
+ =head1 AUTHOR
1190
+
1191
+ Copyright 2003-2015, Phil Harvey (phil at owl.phy.queensu.ca)
1192
+
1193
+ This library is free software; you can redistribute it and/or modify it
1194
+ under the same terms as Perl itself.
1195
+
1196
+ =head1 REFERENCES
1197
+
1198
+ =over 4
1199
+
1200
+ =item L<http://www.topografix.com/GPX/1/1/>
1201
+
1202
+ =item L<http://www.gpsinformation.org/dale/nmea.htm#GSA>
1203
+
1204
+ =item L<http://code.google.com/apis/kml/documentation/kmlreference.html>
1205
+
1206
+ =item L<http://www.fai.org/gliding/system/files/tech_spec_gnss.pdf>
1207
+
1208
+ =back
1209
+
1210
+ =head1 ACKNOWLEDGEMENTS
1211
+
1212
+ Thanks to Lionel Genet for the ability to read IGC format track logs.
1213
+
1214
+ =head1 SEE ALSO
1215
+
1216
+ L<Image::ExifTool::TagNames/Extra Tags>,
1217
+ L<Image::ExifTool(3pm)|Image::ExifTool>
1218
+
1219
+ =cut