From 6fc73dfaae6e1349d2e61a00a5f372e7dc304bb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 8 Aug 2023 11:06:43 +0200 Subject: [PATCH] First take --- README.md | 6 +- fieldsexif.go | 90 ++++++ fieldsiptc.go | 49 ++++ go.mod | 7 +- go.sum | 2 + goexif.go | 5 - goexif_test.go | 12 - imagemeta.go | 635 +++++++++++++++++++++++++++++++++++++++++++ imagemeta_test.go | 86 ++++++ testdata/sunrise.jpg | Bin 0 -> 140479 bytes 10 files changed, 872 insertions(+), 20 deletions(-) create mode 100644 fieldsexif.go create mode 100644 fieldsiptc.go delete mode 100644 goexif.go delete mode 100644 goexif_test.go create mode 100644 imagemeta.go create mode 100644 imagemeta_test.go create mode 100644 testdata/sunrise.jpg diff --git a/README.md b/README.md index ad8c687..cd76a61 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ [![Tests on Linux, MacOS and Windows](https://github.com/bep/goexif/workflows/Test/badge.svg)](https://github.com/bep/goexif/actions?query=workflow:Test) [![Go Report Card](https://goreportcard.com/badge/github.com/bep/goexif)](https://goreportcard.com/report/github.com/bep/goexif) -[![GoDoc](https://godoc.org/github.com/bep/goexif?status.svg)](https://godoc.org/github.com/bep/goexif) \ No newline at end of file +[![GoDoc](https://godoc.org/github.com/bep/goexif?status.svg)](https://godoc.org/github.com/bep/goexif) + +# Work in progress + +This is not ready, yet, but the goal is to use this as the library to read image metadata in Hugo. The existing Go libraries I have found is not maintained anymore and too complex to build on top of. The goal of this library is to be relatively small and simple, but I may prove myself wrong. \ No newline at end of file diff --git a/fieldsexif.go b/fieldsexif.go new file mode 100644 index 0000000..0e19bb7 --- /dev/null +++ b/fieldsexif.go @@ -0,0 +1,90 @@ +package goexif + +import "fmt" + +const ( + OrientationUnspecified Orientation = iota + OrientationNormal + OrientationFlipH + OrientationRotate180 + OrientationFlipV + OrientationTranspose + OrientationRotate270 + OrientationTransverse + OrientationRotate90 +) + +const ( + // TODO1 check usage. + markerSOI = 0xffd8 + markerAPP1 = 0xffe1 + markerApp13 = 0xffed + exifPointer = 0x8769 + gpsPointer = 0x8825 + interopPointer = 0xa005 + exifHeader = 0x45786966 + byteOrderBigEndian = 0x4d4d + byteOrderLittleEndian = 0x4949 + tagOrientation = 0x0112 + tagDate = 0x0132 +) + +var errStop = fmt.Errorf("stop") + +const ( + typeUnsignedByte exifType = 1 + typeUnsignedAscii exifType = 2 + typeUnsignedShort exifType = 3 + typeUnsignedLong exifType = 4 + typeUnsignedRat exifType = 5 + typeSignedByte exifType = 6 + typeUndef exifType = 7 + typeSignedShort exifType = 8 + typeSignedLong exifType = 9 + typeSignedRat exifType = 10 + typeSignedFloat exifType = 11 + typeSignedDouble exifType = 12 +) + +// Size in bytes of each type. +var typeSize = map[exifType]uint32{ + typeUnsignedByte: 1, + typeUnsignedAscii: 1, + typeUnsignedShort: 2, + typeUnsignedLong: 4, + typeUnsignedRat: 8, + typeSignedByte: 1, + typeUndef: 1, + typeSignedShort: 2, + typeSignedLong: 4, + typeSignedRat: 8, + typeSignedFloat: 4, + typeSignedDouble: 8, +} + +// UnknownPrefix is used as prefix for unknown tags. +const UnknownPrefix = "UnknownTag_" + +var ( + fieldsExif = map[uint16]string{0x100: "ImageWidth", 0x101: "ImageLength", 0x102: "BitsPerSample", 0x103: "Compression", 0x106: "PhotometricInterpretation", 0x10e: "ImageDescription", 0x10f: "Make", 0x110: "Model", 0x112: "Orientation", 0x115: "SamplesPerPixel", 0x11a: "XResolution", 0x11b: "YResolution", 0x11c: "PlanarConfiguration", 0x128: "ResolutionUnit", 0x131: "Software", 0x132: "DateTime", 0x13b: "Artist", 0x212: "YCbCrSubSampling", 0x213: "YCbCrPositioning", 0x8298: "Copyright", 0x829a: "ExposureTime", 0x829d: "FNumber", 0x8769: "ExifIFDPointer", 0x8822: "ExposureProgram", 0x8824: "SpectralSensitivity", 0x8825: "GPSInfoIFDPointer", 0x8827: "ISOSpeedRatings", 0x8828: "OECF", 0x9000: "ExifVersion", 0x9003: "DateTimeOriginal", 0x9004: "DateTimeDigitized", 0x9101: "ComponentsConfiguration", 0x9102: "CompressedBitsPerPixel", 0x9201: "ShutterSpeedValue", 0x9202: "ApertureValue", 0x9203: "BrightnessValue", 0x9204: "ExposureBiasValue", 0x9205: "MaxApertureValue", 0x9206: "SubjectDistance", 0x9207: "MeteringMode", 0x9208: "LightSource", 0x9209: "Flash", 0x920a: "FocalLength", 0x9214: "SubjectArea", 0x927c: "MakerNote", 0x9286: "UserComment", 0x9290: "SubSecTime", 0x9291: "SubSecTimeOriginal", 0x9292: "SubSecTimeDigitized", 0x9c9b: "XPTitle", 0x9c9c: "XPComment", 0x9c9d: "XPAuthor", 0x9c9e: "XPKeywords", 0x9c9f: "XPSubject", 0xa000: "FlashpixVersion", 0xa001: "ColorSpace", 0xa002: "PixelXDimension", 0xa003: "PixelYDimension", 0xa004: "RelatedSoundFile", 0xa005: "InteroperabilityIFDPointer", 0xa20b: "FlashEnergy", 0xa20c: "SpatialFrequencyResponse", 0xa20e: "FocalPlaneXResolution", 0xa20f: "FocalPlaneYResolution", 0xa210: "FocalPlaneResolutionUnit", 0xa214: "SubjectLocation", 0xa215: "ExposureIndex", 0xa217: "SensingMethod", 0xa300: "FileSource", 0xa301: "SceneType", 0xa302: "CFAPattern", 0xa401: "CustomRendered", 0xa402: "ExposureMode", 0xa403: "WhiteBalance", 0xa404: "DigitalZoomRatio", 0xa405: "FocalLengthIn35mmFilm", 0xa406: "SceneCaptureType", 0xa407: "GainControl", 0xa408: "Contrast", 0xa409: "Saturation", 0xa40a: "Sharpness", 0xa40b: "DeviceSettingDescription", 0xa40c: "SubjectDistanceRange", 0xa420: "ImageUniqueID", 0xa433: "LensMake", 0xa434: "LensModel"} + fieldsGps = map[uint16]string{0x0: "GPSVersionID", 0x1: "GPSLatitudeRef", 0x2: "GPSLatitude", 0x3: "GPSLongitudeRef", 0x4: "GPSLongitude", 0x5: "GPSAltitudeRef", 0x6: "GPSAltitude", 0x7: "GPSTimeStamp", 0x8: "GPSSatelites", 0x9: "GPSStatus", 0xa: "GPSMeasureMode", 0xb: "GPSDOP", 0xc: "GPSSpeedRef", 0xd: "GPSSpeed", 0xe: "GPSTrackRef", 0xf: "GPSTrack", 0x10: "GPSImgDirectionRef", 0x11: "GPSImgDirection", 0x12: "GPSMapDatum", 0x13: "GPSDestLatitudeRef", 0x14: "GPSDestLatitude", 0x15: "GPSDestLongitudeRef", 0x16: "GPSDestLongitude", 0x17: "GPSDestBearingRef", 0x18: "GPSDestBearing", 0x19: "GPSDestDistanceRef", 0x1a: "GPSDestDistance", 0x1b: "GPSProcessingMethod", 0x1c: "GPSAreaInformation", 0x1d: "GPSDateStamp", 0x1e: "GPSDifferential"} + fieldsInterop = map[uint16]string{0x1: "InteroperabilityIndex"} + fieldsThumbnail = map[uint16]string{0x201: "ThumbJPEGInterchangeFormat", 0x202: "ThumbJPEGInterchangeFormatLength"} + + fieldsAll = map[uint16]string{} +) + +func init() { + for k, v := range fieldsExif { + fieldsAll[k] = v + } + for k, v := range fieldsGps { + fieldsAll[k] = v + } + for k, v := range fieldsInterop { + fieldsAll[k] = v + } + for k, v := range fieldsThumbnail { + fieldsAll[k] = v + } +} diff --git a/fieldsiptc.go b/fieldsiptc.go new file mode 100644 index 0000000..f6a9095 --- /dev/null +++ b/fieldsiptc.go @@ -0,0 +1,49 @@ +package goexif + +var iptcFieldMap = map[uint8]iptcField{ + 0: {"RecordVersion", false, "B"}, + 5: {"ObjectName", false, "string"}, + 7: {"EditStatus", false, "string"}, + 10: {"Urgency", false, "B"}, + 15: {"Category", true, "string"}, + 20: {"SupplementalCategory", true, "string"}, + 22: {"FixtureIdentifier", false, "string"}, + 25: {"Keywords", true, "string"}, + 26: {"ContentLocationCode", false, "string"}, + 27: {"ContentLocationName", false, "string"}, + 30: {"ReleaseDate", false, "string"}, + 35: {"ReleaseTime", false, "string"}, + 37: {"ExpirationDate", false, "string"}, + 38: {"ExpirationTime", false, "string"}, + 40: {"SpecialInstructions", false, "string"}, + 42: {"ActionAdvised", false, "B"}, + 45: {"ReferenceService", false, "string"}, + 47: {"ReferenceDate", false, "string"}, + 50: {"ReferenceNumber", false, "string"}, + 55: {"DateCreated", false, "string"}, + 60: {"TimeCreated", false, "string"}, + 62: {"DigitalCreationDate", false, "string"}, + 63: {"DigitalCreationTime", false, "string"}, + 65: {"OriginatingProgram", false, "string"}, + 70: {"ProgramVersion", false, "string"}, + 75: {"ObjectCycle", false, "string"}, + 80: {"Byline", false, "string"}, + 85: {"BylineTitle", false, "string"}, + 90: {"City", false, "string"}, + 92: {"SubLocation", false, "string"}, + 95: {"ProvinceState", false, "string"}, + 100: {"CountryCode", false, "string"}, + 101: {"CountryName", false, "string"}, + 103: {"OriginalTransmissionReference", false, "string"}, + 105: {"Headline", false, "string"}, + 110: {"Credit", false, "string"}, + 115: {"Source", false, "string"}, + 116: {"Copyright", false, "string"}, + 118: {"Contact", false, "string"}, +} + +type iptcField struct { + name string + repeatable bool + format string +} diff --git a/go.mod b/go.mod index e38da1b..e88f940 100644 --- a/go.mod +++ b/go.mod @@ -2,10 +2,13 @@ module github.com/bep/goexif go 1.18 -require github.com/frankban/quicktest v1.14.5 +require ( + github.com/frankban/quicktest v1.14.5 + github.com/google/go-cmp v0.5.9 + golang.org/x/text v0.12.0 +) require ( - github.com/google/go-cmp v0.5.9 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/rogpeppe/go-internal v1.10.0 // indirect diff --git a/go.sum b/go.sum index 2be32ef..28c1668 100644 --- a/go.sum +++ b/go.sum @@ -11,3 +11,5 @@ github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsK github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= diff --git a/goexif.go b/goexif.go deleted file mode 100644 index 5b8fbc9..0000000 --- a/goexif.go +++ /dev/null @@ -1,5 +0,0 @@ -package goexif - -func Foo() string { - return "foo" -} diff --git a/goexif_test.go b/goexif_test.go deleted file mode 100644 index e4a55dd..0000000 --- a/goexif_test.go +++ /dev/null @@ -1,12 +0,0 @@ -package goexif - -import ( - "testing" - - qt "github.com/frankban/quicktest" -) - -func TestFoo(t *testing.T) { - c := qt.New(t) - c.Assert(Foo(), qt.Equals, "foo") -} diff --git a/imagemeta.go b/imagemeta.go new file mode 100644 index 0000000..229a85d --- /dev/null +++ b/imagemeta.go @@ -0,0 +1,635 @@ +package goexif + +import ( + "bytes" + "encoding/binary" + "fmt" + "io" + "math/big" + "strings" + "time" +) + +// Decode reads EXIF and IPTC metadata from r and returns a Meta struct. +func Decode(opts Options) (Meta, error) { + if opts.R == nil { + return Meta{}, fmt.Errorf("need a reader") + } + + return decode(opts) + +} + +// Meta contains the EXIF and IPTC metadata. +type Meta struct { + EXIF Tags + IPTC Tags +} + +// DateTime returns the DateTime tag as a time.Time parsed with the given location. +func (m Meta) DateTime(loc *time.Location) time.Time { + tags := m.EXIF + if v, ok := tags["DateTime"]; ok { + t, err := time.ParseInLocation("2006:01:02 15:04:05", v.(string), loc) + if err == nil { + return t + } + } + return time.Time{} +} + +// DateTimeOriginal returns the DateTimeOriginal tag as a time.Time parsed with the given location. +func (m Meta) DateTimeOriginal(loc *time.Location) time.Time { + tags := m.EXIF + if v, ok := tags["DateTimeOriginal"]; ok { + t, err := time.ParseInLocation("2006:01:02 15:04:05", v.(string), loc) + if err == nil { + return t + } + } + return time.Time{} +} + +func (m Meta) LatLong() (float64, float64) { + tags := m.EXIF + longv := tags.get("GPSLongitude") + ewv := tags.get("GPSLongitudeRef") + latv := tags.get("GPSLatitude") + nsv := tags.get("GPSLatitudeRef") + + fmt.Printf("longv: %v, ewv: %v, latv: %v, nsv: %v\n", longv, ewv, latv, nsv) + + if longv == nil || latv == nil { + return 0, 0 + } + + long := tags.toDegrees(longv) + lat := tags.toDegrees(latv) + + if ewv == "W" { + long *= -1.0 + } + if nsv == "S" { + lat *= -1.0 + } + + return lat, long +} + +// Orientation returns the Orientation tag. +func (m Meta) Orientation() Orientation { + tags := m.EXIF + if v, ok := tags["Orientation"]; ok { + return Orientation(v.(uint16)) + } + return OrientationUnspecified +} + +type Options struct { + // The Reader (typically a *os.File) to read EXIF data from. + R Reader + + // If set, only these tags will be extracted. + // This may speed up the decoding for large files if you are only interested in a few tags. + // Note that this is case sensitive. + // TODO1 implement + TagSet map[string]bool + + // If set, the decoder will skip the EXIF data. + SkipExif bool + + // If set, the decoder will skip the ITPC data. + SkipITPC bool +} + +type Orientation int + +type Reader interface { + io.ReadSeeker + io.ReaderAt +} + +// Tags is a map of EXIF tags. +type Tags map[string]any + +func (tags Tags) toDegrees(v any) float64 { + if v == nil { + return 0 + } + f := [3]float64{} + for i, vv := range v.([]interface{}) { + if i >= 3 { + break + } + r := vv.(*big.Rat) + f[i], _ = r.Float64() + } + // TODO1 other types? + return f[0] + f[1]/60 + f[2]/3600.0 +} + +func (tags Tags) get(key string) any { + if v, ok := tags[key]; ok { + return v + } + return nil +} + +type decoder struct { + r Reader + + readerOffset int + byteOrder binary.ByteOrder + + tagSet map[string]bool // May be nil. + err error + + tagsExif Tags + tagsIPTC Tags +} + +func (e *decoder) decode() (err error) { + defer func() { + if r := recover(); r != nil { + if r != errStop { + panic(r) + } + if err == nil { + err = e.err + } + } + }() + + // JPEG SOI marker. + var soi uint16 + if err = e.readFullE(&soi); err != nil { + return nil + } + if soi != markerSOI { + return + } + + findMarker := func(markerToFind uint16) int { + for { + var marker, length uint16 + if err = e.readFullE(&marker); err != nil { + return -1 + } + if err = e.readFullE(&length); err != nil { + return -1 + } + + // All JPEG markers begin with 0xff. + if marker>>8 != 0xff { + return -1 + } + + if marker == markerToFind { + return int(length) + } + + if length < 2 { + return -1 + } + + e.skip(int64(length - 2)) + } + + } + + pos := e.pos() + if findMarker(markerAPP1) > 0 { + if err := e.decodeExif(); err != nil { + return err + } + } + e.seek(pos) + + // EXIF may be stored in a different order, but IPTC is always big-endian. + e.byteOrder = binary.BigEndian + if length := findMarker(markerApp13); length > 0 { + if err := e.decodeIPTC(length); err != nil { + return err + } + } + return nil +} + +// A tag is represented in 12 bytes: +// - 2 bytes for the tag ID +// - 2 bytes for the data type +// - 4 bytes for the number of data values of the specified type +// - 4 bytes for the value itself, if it fits, otherwise for a pointer to another location where the data may be found; +// this could be a pointer to the beginning of another IFD +func (e *decoder) decodeEXIFTag() error { + tagID := e.read2() + tagName := fieldsAll[tagID] + if tagName == "" { + tagName = fmt.Sprintf("%s0x%x", UnknownPrefix, tagID) + } + + if !e.shouldDecode(tagName) { + e.skip(10) + return nil + } + + dataType := e.read2() + count := e.read4() + + t := tagExif{ + id: tagID, + name: tagName, + typ: exifType(dataType), + count: count, + } + + size, ok := typeSize[t.typ] + if !ok { + return fmt.Errorf("unknown type for tag %s %d", tagName, t.typ) + } + valLen := size * t.count + + var b []byte + if valLen > 4 { + offset := e.read4() + uint32(e.readerOffset) + pos := e.pos() + var buff bytes.Buffer + sr := io.NewSectionReader(e.r, int64(offset), int64(valLen)) + n, err := io.Copy(&buff, sr) + e.seek(pos) + if err != nil || n != int64(valLen) { + // TODO1 + return err + } + b = buff.Bytes() + } else { + b = make([]byte, valLen) + if err := binary.Read(e.r, e.byteOrder, b); err != nil { + return nil + } + padding := 4 - valLen + if padding > 0 { + e.skip(int64(padding)) + } + } + + e.convertEXIFValues(&t, b) + + if strings.HasSuffix(tagName, "IFDPointer") { + offset := t.sliceOrFirst().(uint32) + return e.decodeEXIFTagsAt(int(offset)) + } + + e.tagsExif[t.name] = t.sliceOrFirst() + + return nil +} + +func (e *decoder) decodeEXIFTags() error { + if e.tagSet != nil && len(e.tagSet) == 0 { + e.stop(nil) + } + + numTags := e.read2() + + for i := 0; i < int(numTags); i++ { + if err := e.decodeEXIFTag(); err != nil { + return err + } + } + + return nil +} + +func (e *decoder) decodeEXIFTagsAt(offset int) error { + oldPos := e.pos() + defer func() { + e.seek(oldPos) + }() + e.seek(offset + e.readerOffset) + return e.decodeEXIFTags() +} + +func (e *decoder) decodeExif() (err error) { + header := e.read4() + + if header != exifHeader { + return nil + } + + e.skip(2) + + byteOrderTag := e.read2() + + switch byteOrderTag { + case byteOrderBigEndian: + e.byteOrder = binary.BigEndian + case byteOrderLittleEndian: + e.byteOrder = binary.LittleEndian + default: + return nil + } + + e.skip(2) + + // Skip the EXIF offset. + offset := e.read4() + + if offset < 8 { + return nil + } + + e.skip(int64(offset - 8)) + e.readerOffset = e.pos() - 8 + + return e.decodeEXIFTags() + +} + +func (e *decoder) convertEXIFValues(t *tagExif, b []byte) { + r := bytes.NewReader(b) + + switch t.typ { + case typeUnsignedByte, typeUndef: + for i := 0; i < int(t.count); i++ { + t.vals = append(t.vals, e.read1r(r)) + } + case typeUnsignedAscii: + t.vals = append(t.vals, string(b[:t.count-1])) + case typeUnsignedShort: + for i := 0; i < int(t.count); i++ { + t.vals = append(t.vals, e.read2r(r)) + } + case typeUnsignedLong: + for i := 0; i < int(t.count); i++ { + t.vals = append(t.vals, e.read4r(r)) + } + case typeUnsignedRat: + for i := 0; i < int(t.count); i++ { + n, d := e.read4r(r), e.read4r(r) + t.vals = append(t.vals, big.NewRat(int64(n), int64(d))) + } + case typeSignedRat: + for i := 0; i < int(t.count); i++ { + n, d := e.read4Signedr(r), e.read4Signedr(r) + t.vals = append(t.vals, big.NewRat(int64(n), int64(d))) + } + default: + // TODO1 + panic(fmt.Errorf("unsupported exif type %d", t.typ)) + } +} + +func (e *decoder) decodeIPTC(length int) (err error) { + + // Skip the IPTC header. + e.skip(14) + + const iptcMetaDataBlockID = 0x0404 + + decodeBlock := func() error { + blockType := make([]byte, 4) + e.readFull(blockType) + if string(blockType) != "8BIM" { + return errStop + } + + identifier := e.read2() + isMeta := identifier == iptcMetaDataBlockID + + nameLength := e.read1() + if nameLength == 0 { + nameLength = 2 + } else if nameLength%2 == 1 { + nameLength++ + } + + e.skip(int64(nameLength - 1)) + dataSize := e.read4() + + if !isMeta { + e.skip(int64(dataSize)) + return nil + } + + // TODO1 extended datasets. + + if dataSize%2 != 0 { + defer func() { + // Skip padding byte. + e.skip(1) + }() + } + + r := io.LimitReader(e.r, int64(dataSize)) + + for { + var marker uint8 + if err := binary.Read(r, e.byteOrder, &marker); err != nil { + if err == io.EOF { + return nil + } + return err + } + if marker != 0x1C { + return errStop + } + + var recordType, datasetNumber uint8 + var recordSize uint16 + if err := binary.Read(r, e.byteOrder, &recordType); err != nil { + return err + } + if err := binary.Read(r, e.byteOrder, &datasetNumber); err != nil { + return err + } + if err := binary.Read(r, e.byteOrder, &recordSize); err != nil { + return err + } + + recordBytes := make([]byte, recordSize) + if err := binary.Read(r, e.byteOrder, recordBytes); err != nil { + return err + } + + // TODO1 get an up to date field map. + // TODO1 handle unkonwn dataset numbers. + recordDef, ok := iptcFieldMap[datasetNumber] + if !ok { + fmt.Println("unknown datasetNumber", datasetNumber) + continue + } + var v any + switch recordDef.format { + case "string": + v = string(recordBytes) + case "B": // TODO1 check these + v = recordBytes + } + e.tagsIPTC[recordDef.name] = v + } + } + + for { + if err := decodeBlock(); err != nil { + if err == errStop { + break + } + return err + } + } + + return nil + +} + +func (e *decoder) pos() int { + n, err := e.r.Seek(0, 1) + if err != nil { + e.stop(err) + } + return int(n) +} + +func (e *decoder) read1() uint8 { + return e.read1r(e.r) +} + +func (e *decoder) read1r(r io.Reader) uint8 { + var v uint8 + e.readFullr(&v, r) + return v +} + +func (e *decoder) read2() uint16 { + return e.read2r(e.r) +} + +func (e *decoder) read2r(r io.Reader) uint16 { + var v uint16 + e.readFullr(&v, r) + return v +} + +func (e *decoder) read4() uint32 { + return e.read4r(e.r) +} + +func (e *decoder) read4Signedr(r io.Reader) int32 { + var v int32 + e.readFullr(&v, r) + return v +} + +func (e *decoder) read4r(r io.Reader) uint32 { + var v uint32 + e.readFullr(&v, r) + return v +} + +func (e *decoder) readFull(v any) { + e.readFullr(v, e.r) +} + +func (e *decoder) readFullE(v any) error { + return e.readFullrE(v, e.r) +} + +func (e *decoder) readFullr(v any, r io.Reader) { + if err := binary.Read(r, e.byteOrder, v); err != nil { + e.stop(err) + } +} + +func (e *decoder) readFullrE(v any, r io.Reader) error { + return binary.Read(r, e.byteOrder, v) +} + +func (e *decoder) seek(pos int) { + _, err := e.r.Seek(int64(pos), io.SeekStart) + if err != nil { + e.stop(err) + } +} + +func (e *decoder) shouldDecode(tagName string) bool { + if e.tagSet == nil { + return true + } + b, found := e.tagSet[tagName] + if found { + delete(e.tagSet, tagName) + } + return b +} + +func (e *decoder) skip(n int64) { + _, err := e.r.Seek(n, io.SeekCurrent) + if err != nil { + e.stop(err) + } +} + +func (e *decoder) skipr(n int64, r io.Reader) { + switch r := r.(type) { + case io.Seeker: + r.Seek(n, io.SeekCurrent) + default: + io.CopyN(io.Discard, r, n) + } +} + +func (e *decoder) stop(err error) { + if e.err != nil { + e.err = err + } + panic(errStop) +} + +// exifType represents the basic tiff tag data types. +type exifType uint16 + +type tagExif struct { + id uint16 + name string + typ exifType + count uint32 + vals []any +} + +func (t tagExif) sliceOrFirst() any { + if len(t.vals) == 1 { + return t.vals[0] + } + return t.vals +} + +func decode(opts Options) (Meta, error) { + m := Meta{ + EXIF: Tags{}, + IPTC: Tags{}, + } + + var tagSet map[string]bool + if opts.TagSet != nil { + tagSet = make(map[string]bool) + for k, v := range opts.TagSet { + tagSet[k] = v + } + } + + dec := &decoder{ + r: opts.R, + byteOrder: binary.BigEndian, + tagSet: tagSet, + tagsExif: m.EXIF, + tagsIPTC: m.IPTC, + } + + if err := dec.decode(); err != nil { + return m, err + } + + return m, nil + +} diff --git a/imagemeta_test.go b/imagemeta_test.go new file mode 100644 index 0000000..63af0ec --- /dev/null +++ b/imagemeta_test.go @@ -0,0 +1,86 @@ +package goexif_test + +import ( + "math" + "math/big" + "os" + "path/filepath" + "testing" + "time" + + "github.com/bep/goexif" + qt "github.com/frankban/quicktest" + "github.com/google/go-cmp/cmp" +) + +var eq = qt.CmpEquals( + cmp.Comparer(func(x, y *big.Rat) bool { + return x.RatString() == y.RatString() + }), + + cmp.Comparer(func(x, y float64) bool { + delta := math.Abs(x - y) + mean := math.Abs(x+y) / 2.0 + return delta/mean < 0.00001 + }), +) + +func TestDecodeBasic(t *testing.T) { + c := qt.New(t) + + img, close := getSunrise(c) + c.Cleanup(close) + + meta, err := goexif.Decode(goexif.Options{R: img}) + c.Assert(err, qt.IsNil) + c.Assert(meta, qt.IsNotNil) + //fmt.Printf("%+v\n", tags) + c.Assert(meta.Orientation(), qt.Equals, goexif.OrientationNormal) + c.Assert(meta.DateTime(time.UTC).IsZero(), qt.IsFalse) + c.Assert(meta.EXIF["ExposureTime"], eq, big.NewRat(1, 200)) + c.Assert(meta.IPTC["Headline"], qt.Equals, "Sunrise in Spain") + c.Assert(meta.IPTC["Copyright"], qt.Equals, "Bjørn Erik Pedersen") + +} + +func TestDecodeLatLong(t *testing.T) { + c := qt.New(t) + + img, close := getSunrise(c) + c.Cleanup(close) + + tags, err := goexif.Decode(goexif.Options{R: img}) + c.Assert(err, qt.IsNil) + + lat, long := tags.LatLong() + c.Assert(lat, eq, 36.59744) + c.Assert(long, eq, -4.50846) +} + +func TestDecodeOrientationOnly(t *testing.T) { + c := qt.New(t) + + img, close := getSunrise(c) + c.Cleanup(close) + + meta, err := goexif.Decode( + goexif.Options{ + R: img, + TagSet: map[string]bool{ + "Orientation": true, + }, + }, + ) + + c.Assert(err, qt.IsNil) + c.Assert(meta.Orientation(), qt.Equals, goexif.OrientationNormal) + c.Assert(len(meta.EXIF), qt.Equals, 1) +} + +func getSunrise(c *qt.C) (goexif.Reader, func()) { + img, err := os.Open(filepath.Join("testdata", "sunrise.jpg")) + c.Assert(err, qt.IsNil) + return img, func() { + img.Close() + } +} diff --git a/testdata/sunrise.jpg b/testdata/sunrise.jpg new file mode 100644 index 0000000000000000000000000000000000000000..946541f0691614617d31f1fa584b77a5026f4363 GIT binary patch literal 140479 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

>96#GCA z!!-y@l~-}4CApqrdw4fhwtebRc<%AEs{)kDfM?$vJaez||7WA2OAzh($L}PZytuS| zA$qUD&6m|3sYMf)z%7V_nDTu;;*ctP_tk+K}(6h9nXW)G_*Go}DeC0^avZJE4T?}f^x6tqC$Sm~rvE_$Rw@m+C`c~f%PD=$D#Qx5KawqJb7poKmX;$$A@8b>)ky5mOeFiv9ZZk*DwUXSP(9Cw6EO_u)r92xu zS9qe#wLg;=3DK9L`Ledd%PTgDLhNiELsiR1fy!G{kPR}L1cn6;y+H!>%Xzbdtw-Q9 z((pA+97;klW&V)Jp_q|g7U+b;u{ZA=QGZDu+hG#!cCVWP0W%4dj07^*MAJDA?lO(F z595G|8-rD9ps;}$UsaZwTF<8f%X631Z6FtBAe^nYRSCLeb3Wf;6;D9-`zMGs2) zd-(Gqhc4lSc1mcZ3Te^=cH|k4&`|*aYhrHtWb$6NldHh9Cwj2iZ)x22%eM%8{x=NN zW9KcV`kScnS&Q!%rfl%&1O|=+P~-i50u#eM*lcPmJjz8bsL(D1oxu3(k|d{NzZtKP zPPMglWCa%IDxmNNlr-IRrY^;sg-jEB(A$hpyeATjFTI5Us5Xmn(SbuMw8UWK@fMU>)5mhGv z^N_03!M5JmVrl^5Qx5H+z3719kI7n1bKZlFDlDXc*Fa}}ttQnIAXAYJs02l4(0-7) z2CAP-WU61P{#Q+^s;z^qUc}_XMbNvVQEjakTIxekKhR z*(7PucW|4z>mO(?%qRj4CT{`_Bvur<>HNKNr6ym+Y}Li*8c^x^D);J2#hG$T@kq1t zd;CtZhtMJI0Qq9W?RzsSTo}B^hp5BEA!6eTrm=qD)dp6kq(ZDw&{6rztYvk9np4=t zrmUxvCj-zPn7vG(Z|tJhc`64&E)) zg44V7A8bA`i5~&=Yd{5m=3r}XQgLDd{rf1LZ6F9b^H4w>fZuNqihSDi;Jx61^)9z4B}Q^@f%^l=ib%C}IHVIsmzBpQ_{9 zZy1p}b*AAu%zQ=7ARl9E9axp-V0-sQ?@885Zb493&&CiTHRmXjGm6I>))0sGo>pxbHz8%SwCbc z84fb*ybz_mtGP`{&(KBbNFnf_B4f`Ihfr9Mo??f|t@-wz-2#AWEOH5~C`+h1-6<(= z5b?w}{cB2uA!GtB8JgPq)K`%Rzq>;+xfp9fx|Jz7)eQ@PjG(GZ0Fo5{@McB?C&vl_ z6ki>x23H1xO!g0~HlU$@dmOO2<-1J8Vj`?SFN*?!2~2_pWc`__WI*VReE?xTBhWg1 z7i`WN;EKQ(x{&Q80yD}ZScBm9zXP*r&O_B0@Trfa7KMd<&|+eRWN6xvtvkIUIAG0k zZAwI&R5H*WcxzKeV**@LlBR;-3KEiF%Y+9uJIPaqlMJ*gZ3BxkCU>fF#SnMO>n?nt zPVB#X`O->w_>qnRw51Y1E*bod4*?zxjc!tFf2^QnaJnRVt!O2e&moThY}vrMoQ2+n z(X2Pcy@cb0ic-pTuhSxQLU}2NscDw{F<=*lj)^@#41l;73buF`W?PDjT3aw#X5j&Z zN-y%7#sZTsDn`++pIei=mi2I-$;MJLG+o|gdBDqu7R0;TvRWykP}q@1aVA@$Fw4eS zNMg!;B?AJ3D0k=@rn}P63CW#aOGq{VWtIt-BRz2uNc8Wqw{p9qILXj&%?XVbk~c6( zE%IoxMr7`~>(ubK@00;`Vsro}q!L(a0I+Z#f5EzPF@P*jrkgy@r4AUTPA@C6;F@pE z7mznhcu0s8syXHELZ#Q`ss53n8HWiJ0OTJtg1cdv2m5Q?2d= zD;?znu1c$TU6gD8EM;*G(?n3m1d~ zpjy!xu_SD#FWp`aDbb~j@d^hhiT454EZ}NoDY_`_ z21}7F(4GQ-?1?Z$OoM;>o~NA1=|mKg+WMPlcJV;`%mj!F!2wVuj1!ne#j_7YND;9T z6h%Z75h-TU(ExGEF(C((WE|4cx4@1PXu`W3RAsCK)dYI5#0onAOM+~kq(t}v0D@UY zfZhD?#j?;CWqy!w`DgA{50Gz>thSgtN5RytmMKv&BsZs6L>EgwOgN?%g(vnKa#X#*x z6=3n82Zne1>7o^(x&CP}f6B`7Zci!JSx`c_=9|&H@H;BoA6dnJ2hX)4E_`iAZu@|F z081sDhfZ+NQSB0vJx+TdWpJi=vTOm3YU}<9Cm)#*cY38Px$_|}P(>+ABP_gd=wtvk zo33)F?Q0$ES53OS=@`YjBhe`^?Ve&^;{qiny+;<{0q+m}=)Brs32^e=@<7SG_n%Gl z?pHEJ!b~Rj-DxV5f152SOy-i|~?KqI3u}4Q@`|oVsMX^34k>)g$UvMN@ zIr|67$b~&3$i`vN;sd35^HO(u`AM?CYiqK3=meHA#q9xLa5Z+BSJK=msqAIUd3rlR zjSoy?7QVpA0HfYUssPHV?HDbDpTMC#l=fodmKb+RY74TXNO%;g-|V8@KRjNtd&}um zYzO#F(37x(#}3v=lS=>7hpXS-vr^Vc1L{-Bj0gm4c{DKOivdAicIcw_H2c6O68*ma z$^{Pnw=G>_td1}Hp`Unn9iO$DdISc#0-Hh;y5jW^&@_9yDAxfiw&_)ate|_}D<=UU z6TemKRQHB1`1vV%1*cBZjg$gL#!PZ<;Qsi4l7eP`m`M8A#-oWSsj9M!{{yF>Nowxi z259HmZ9v8ULCRm&BN5k4RsyJU8@BRf3Zt}>#}U`mcJgVx;Qo1?HL5Wb%2_WRFkrAG zPF$2G(vccGyf7s`A?T=jz-3@h8IBx?6qbnVlZUH0El+Z5az2==JX}m)0QMYA83Ty> z)e~eXIw6h`_+ktu*D%Whz)cioFmu3!370wmho0A&86;7+azN(T5-{Ns$Ux&5Jw?yxa`T1;KZZy?M@0ICmf5m?KcX{+6auDjD$ z#sRU6Ljm}V2A<~Pj3!LhmjR+|0+#`JY#YJC<|AwsUe3D)Hcfdz6WT1%gkn38MguB` z-r8VI>vDmuOkA*ahYeUZEWoxVcq$~bt<$DELBWG`5l|siqc$mRYFM(vI+j%O*8~96 z7Fg(D`s`vwjfmLt)AB0lW0pkc)r}y+lbReLhD%|AqDV~l)~Cfncim+1zeDGU@YtUe z<;Fp{W2iye2bMle)K83<5bqVZa+a+Frb6h>RYo>{=&h-N+>#qrUT+RGPy^pS8*tBL z&5Dc4NR)xV!D_zwy?stC$$&!2pveIM&wytG$c@oOV9B1{_!?*!xd-fc|IgQ7>+18| zDVZ)`4vq995M_PxLPcR}#Sk!r^4}`jjxDlQ0ai(7Bprx|zSjpO1td(mygK<*ry=8BoL$VAS@>GCF~2 z%!ScP1iWW2(}u!moU0%Z^kjhVIo@?Vkx23+xULdO=?(V=1sn=eLb>1lngA|%ulphn z5H>TKt6dFUfXT^dRW<+?+e8oA3@=&gU$+#8s{*+TsFbP4gTwy;aZ7EL1B6$>)?p-D zOq$Leu4?C{M-)__H-I9WSc4!|7ERGgPK{4}2mv_bMZYlCaSkvYW^N3~6{{-!k-)%s z%;_W|Aq>QoLU|b2>cYqcAb(&)y;>o#Os*2jaZ?3-9P01h3!Z5MOLZaWU8RmBY4W^2 z(>?L^0YvpkfS4qZGglF1yF%g(6=bdEnf8c7DUqgc-~XilR9J`r=44lwqYT!{<7 zLrrVm02EOWV-muEJy0lD1_PM%h7f@V{0<5Vpi<=myrTd-ng)m{AOcgk6zIOjCZJ+d zH-SZ?u?4`H1+N->63CtMG7~tc>ki(eKtH%2I)D%G#XNUrV?=u$Sf=Kr7R7PUNDR2bgJ^))=s>qm&1>Jcg?wb=j? z2EXS{8}+MbZtz=^=DEj~Uz`~RkPE#Fki+wVkd&541X9o$Eyk_W5!j=&AYgNX?*OZH z^QlIyTd?CWz|H*+8=L?^=JApW61>X7!mZtV)eA1kV(z>h+=*LdH4YHnWFf297*;=Q^F1}^j?U%AzwlvJOe@-YJp)^p#C7=DxiT=6%Sd*h$y$;Z^Hs&Pa z7f*l`Xvef)5bvIz0iuK*EB}5eI}fldXe3X&Ck}xc&ip(v{yGg^R7hbm#2u=C23)Ba zCE2=LQ^T2IjEH|nC@tH1wtLTjhpJ}hc_I6iIFPCSb`q)%GXRT90q1)w7`zK(T;&fC zLg-)YD2za}D@qoATp%#}tyB}Xz!({@`3$+pUm`6Kstm5l?XfaP+7T;9G}DoYy`AAz zcy^@3e8h`(R0{W@0hTOUoFD}#d%k)?^_fE=4#2UxgB1PX9b zL}=(hkpOY`Dd2A3-g@PNGInrcY9kRi03=s01GlIOu(#ATKru`Ju5`f#c!7Pm349=c zBz<>E8cxRnn<)`}cd7}_e-KJ4FHIWxfh_Gq6-^juN#?WI5&@zbO(+U>EW;t6Yc(eg z59_|~L!qedWTQ~moRfyJ4_d&Tmy>^#%+I-Y-CgHZFjzcGvP|CI?-C`Dno#qeN%I5S02qEq*cy;dwJLyMQA%edyxJKwe<`GVCj<1~_<5L)AfSFGVL;#6{ zzAPW4^W~M%0Y9# z4}b?G6D+OK4me$+KR_#@5PzN`;qDY*FA6Cwfx;G%F8IFc3XDqO748M#RY9%qfo~H4 zW#0>K$490y8tY0xU4`9s&$N3cFeAfW`-zrwYJQWQ!Q?R=I)zMObkqvD2XmqdUXX zYYL2j{RS`z<>Fvk4q{xGX=VeQEO05c8u&Vi7bX-cFsX3q|0R)D)NC}4Qh{~V>m)a~=+K3Y zrf01jy-D1i4^3G==!z52^t&e=nr!Q8Z*Y0t5}6h;v{i@LQN?e_kGBoXJptYj7^Jne zplnbOJjybJ&UFi~~UgAU; z1toY=8kaP2D8ck1pg;t~p*+Y9{yt`{k^ zM~Mlbh=FLV-pT-7MFAWgSAh#(08=L+8nmZK9Bf{nLKK0q7Ptin*;ByB#=ZjvH}+No zgP{N}6(td>JmCCX9GvbSmbs?jbfA@+z)uPW=4U`MKaG&>I>1MZu_3R9;a9G?5)z7L zB?EGUI9-PYFB1~7L?!d{N^++})!#(@EH6-z9?moeXQaj!^gSL79YMrpn(J-wax*2( zeGQh(m*dmGlwaJ7U(kI^&xNynYozVfr5KwlRj6>wI4@}=jl?J$mD5_fCt0XK2R2cU zk~9fLAF2Vdw2(LhZdxge7NJbaLLwh$IH}D65|{kY{q`UvF*`WE0|nMg zL4mic7hRG$LGPGf$cQ+dXRL zk=m6PimIjx2$=HkR4w1Cw8W9x)u$ai5hDPqm6sZ{k^mtrXMKwoy$?U{RyJKzj0;aqx?V#vx&00gHz%t%le3?e89O%7v3A~KF|O*48T&f zu$y-67S0utTk|cPZWMHhu#m3Df+z*@4M1cl@iGJbUcmhD6p7WG(weLL*EfNVPBB>! zLda9kO51Ej4GyF+f;*_Nfajtz@wSPr{)Bk*XZq+1?S zJi;30I$hLzN9{9u`(J0-uLa+y@i1=bF8K5NZd!Io@6ml!-*m0uGohhj-=*aax>`oW zR;S;iza(O(qhSl)C6VQ_@9`dXJuc+BJFLp_5qHSZ_$TDWgY9bJ=_?I?N%FCAk9$?p8~(B0|dSVNX6j_w}5ub#oz^T&>jV$SDy58a0IHqQ4?24ChZgB z6`I-%oC^jz5I_+CaG@En0yRj1k3|F&5tM*Qz5~|oIv$WgVD7Z$fbrB|(5SYpwRNY9 zVoGZM8V;L%LHtGLxkEMLvK@y7vjL*O4-$+M)fSb^%I(&`*v4Tu_`Y=jUlOVn#sd&l zQlQ55BHYR|R?A$Y_Eky2L5S*$X)fKU+H#f`(~ll>NiXJGU z>R_v2b5(j|{-z3+P(h>jCaHbyx@*!925YAN71Rq>k{bqff~}rrqYAING?#R{jZYC) zojO~$XqNs_N8y?lfGfkL@c3R}9eaUwT==&OI>|gko<8S3((F2LqTH&!$)CNe7jJvF zKfJkloCgMN6<1Px$LvE7`BfcINpn?pR4e#bq5gO#W>;^#P=CInfDZ9sxG)<7y4EPf zu#?2Kdi71x3Ltrf0Y?t5fRF}QN$LSBqO9Tvy2@>AKrYd~!8FLW7#seUVSEh2`2Ah9 zD_`tvy?jbfZvnTb@{X|&kZ~7#9}%J%wU0?UUIdlX`QgAmeWwPpl1Szc;F35nX)DM$(E2i;jByTgDmHpBo^2n9qnArTklqCtkSIU`md3H!eO4Ft!#EGJd+%bsM7 z_7f^fZOeSbm(ffS$8MlUUod?Y_(cgbzrgLjowOJS3jGvxe#JCY=GkG2+MwY&psUlZ z>Hq*Oza{n$nyG*qbg#jC8C5O6z9o;PAsGdR-rMjmiTaenVeFaQS&kFg+rwOswW)_; zQf4eg3?q)GQ0#aXrTDm?`er@fs7goVxSy=}9H#qVvD0^EbMw{|>-Qa#?2p6WhZ~no z3%=Io#Lb2;#QQr!3s;I(CxsRm8gl-U^m|9|rXYORcP0v{cL>HNVk{b4g!aM%{QL78}}}Wuc9vb0f@jZj)Mp6qB)L| z&X)v#`wLn$_wDpJcq0O!Lr>r}QJ*vbJ`r)8wU~C9t0w0iE1(JQ`D2oZSOb`Q2h?aB zH8Jc+JX&`ajdP^|EZPTX!KXk8Q`lxKVod~bW+0A2K?+C~8685boB`DLzs!YM<_75e z{u?w+#R_~2k7kEgTe&qVt>{dCCUkUM^i)P`*22U4U{zN0A{g4K`qKTn_5;a}4IcJTdOFyo|BC7b}sOJ23w+riv~gV78t_? z%ix%m+_HG%Is6 zqr$~yr)~A1Jkef+%tDcCBE79#NGN6O-DC{0@4D9FwL^&hkcx3;gkJ)hS42oI#vBY8 z>G`BfVc$Ua0S+HK#c~HfLxd+psmxc)W5W|6>!!|Ou(8pnYq{s z3P^a}j{lX@+9*dXYkUS8CeT`B27-(>ei}Sj(7TRh26C0YGSe`N4Tp9biHg5ewY7V- z1zuAybTEn?72ji{ds5JA`A{^eQ&mTADsu)TTI3(-jb*gq0FL29&QUa=8zQ6i7U5Q0 z4B}HpD;?rfrWv{L&sSTd@qgaOI+jSiC(vSk{WLO23KY zbkxyZM5^5FBVguxyEn_~PT;7Hq)rcG&>aVlFl-+oKT>V*q3n)QJsX8MFwezV`sOG9 zw?aA4d5!f=kp|VLvGEs>)0hX<))v3_*7z~q%`GaNuhsp2S()m`iyh#sOw}x(R#HaY9N+cRsJdWHzD|BnAS0BBf#W&<+*rTNUZ(|8O@ur8FsuSHK{CMPVq&kD-~?n+c_#OYUpsrfUE@N2e6OPhUS z9*KHkv@yqVW>Hq~$9BJ26*%l>L=6~;B3fo(_z^pf5`gh~hs0pQpxzrG9WMRm%%mDh z46glv)#uhYN;lfU2gqotdXQnk8m4w*k~&B^puR@V z89&LKJ>`_9AKbKa#~;q&@4eoPgm`$X@jkIzS}R8XCS`wnYP)}>Z5C6L@WLgro4P@T z?8mn82%_!H^Mqto0pX3a`xItkWk{P)ZWkNcc{Dx23UA?VmXek1sFfF_y zYhJ7zpu00Ke0zy{SGqlML>v3vfZWoN?d{i7Wv=YqHM7}Y7HK%XvNHYTaYaCwumg{n zkZEY9Fclm$0qZ^a`b*Royt(BO&l-46cG2S~b`ew$$bsQp2C%&u3DmAA15ryTJY>}b z4tg94APj4UJO&9@6sn?nWBpA+z|zu20K!C}dJROOo|%G9O!><=>{P$^EC_la<$~Yg ztekZln;s3WGK(|BJv_=SU6yf2iHX2$(ML@ z0uUjpzYBWB)q)6RQZRUKQqOE|bc&Z7iD>5~}UeHV7ghAMI*9fNDIq|MQUG(Cs z7*(7;+(O8l@O@6KV4yjQMBW}^Q~f41?+5w|6(iEW?JYONbjx~=v%XkeE|I9Bw99p@ zXTdeFjd@+kvFQ3GpB>%kM>>$a7H6Z2Sig66P&W(CHxA+5W)HJSTD ze6ld`QbQ5pnkk@d<5CpzDv?`x z2mVN~B4No7#ieF%jm30mJrb=*R~gI6x<23q*sy1+bpaD?tjb!5Ng=D(#|x+Sy|5Xf zkJNL02FKhs&kh@fI9!xn6QQNhm|+zRy9JWfrB~);I8pt{C>CqdEqaKMzwpHC9ZD)%iVx z?`u=v>?>uGr7roSdH5qzy;H%+UhjsAdiuzv zVhZy!jkDUBRv8wT@8to16cb<2i{X5X@`sOl#mkbB-_azCq2&^~m+ZnvSvYz|jH9-G zS=_$ROJ`oh^2U~bV)SQm)zGojxEgvblb=2^c+==o8{?z+M3s*Nn!z7Wr|=%rFwaHU zQSlP1D)Lv1%#bYZjNbp?dvK)5^>1aB1CHa98fa~i226~tW8M|{m>BRBm^Dd8Izgti zmH~!_ULesLJ=5b(&+~u)#3Gys|jt zf|ax6OHui}?muqLwt-r~Jw=1{_ffiu5flG!#fj-&1dS@Ag1guAflh%T>}Bqt^b&i= zJ}RSGV(JaW0A3xETi1&$y9qGYsZl zd+>X#X^iamRv0ktJVmjXf9pQ9;pp?WK>>v8*~mQo^QNR>){*%u&*$$BbLL@9rkpTqA^7|9ex|PT9dMj2G=)b$Z`R4Tk*9^G^i&&zkzJD{Hbs{%hh$w8xJ`#v6a= zXgZEhnJun2J-N2U#&9_E`%l?=_S+qKHS#&iP%uacL`l!${*s6;r=*`&oa)ZZEwJ%+ z_^GQtEiyqMeLA}j%D%JEHFpf;=+ojL_;KFWIb#3(f7VXD^5bJ zX+?NHrWJ{5Q8tj!sw!M>I9SfgN0ff2=qi2XXkcTnThhmo*Bh?4p2z5k!C5)+?2k~? zj+7=;*z*?B_l(qcJ>e~{tf-+d2zAvPw%gK|jU)e4magrBR4l#2l{Q{j*zH+{<;u0E zD1>;vPbe%Gs^0s#GRD)(Yw)y?acZSBA-91w1~zo4Ijk@-R3jaYmC)H0CuHTB6jy9a zELnxpi?Xi3hzq)n81* z3$`kjy1nGfqPj1%119B<)@NU5Htxv^<^2zclks7+zJSxi>Cs(1{U%@4^&cRDQKab)m`ck~TfN}LP_v~ry6ifUpTa8Yq zY}Z!93rv{PVhiJ;xgX>&3H1^+wNJLkvwuJT8i+Fy-wdoGyiO$V4HhdNzDzanuV_)HXrRZ5Eb>9mR#

%nl)b+1xmHEOb@W~tSsb2d->_xQv5inDN!@I>UA``SiO zhhS1l8N2E)Bc3I(m^^F7nCa(jKlm5UAuUqUuOAApI>|}|`@P%@J4xbW^hp`txN_s- z+_9_i-Q5ZSryE6lc)o0^dqQ`|QR>$FqvacE0qJL{IPx-elz>k8>$8va8dqrS&-bE1 zFpGx%WJDb$JU@9l9m1D&eGz~-x&rIRGHH7S(^Fu^AAadsMrS+s;XsXEO!|%Mi+lSZ ziYG`@G$ctHA2Uy@=y+}y^H4vG;`R*Th^M{m=fz;I>iGTm z0}kG9{7Z7Pr`XPqc-`7liezw=TY{ zWI{ckPy*q%Q7QoXd$gQAj8F#Qx0De9dr_q+Oiv16D&uNltlAG@o!+`r1*%Dzr^cw@ z=ye{gh+k>@XD+oF){=V6i^OO0g6mIP~qcF>^gt=9h=sF3Au*6~s#FF2LW(=X|UqlS)d9pT}79C<4Y zlFH27cxA0Y0aQo$=RNr7^LbRnL&PvueufjKgO(c~xWn7QoZ%!?Uru>_g$4GxweNw~ z)1DE7h=)HMylY>)Kevmu^LUW>-4A?)I6%mdt;ruu@b0Fr^dv2$aov^lBWBDJbMb;A z!+-i*pKG>iUoa=Jgv;nLsTfLMePzbk`Fz_qzR7p^)VOKZUh3-&Cl7PF$a(n`4!<*Q z!%=4U2j0o)O-~&3s>2a$XVUD-fvrc?b4BL|Y1t=^TeSD7Qa<#*U|Tay5dKT@vkpw+ zw7szF9$?j)J4(#kfuYzT*OnAo*Vmop;u@-skbkxbO>#_MoQfa0_2wp1pU(Y;`Md|#VV-4XG;(o+O}yhw_=u&is+V$e>@SI#j<>qaUy@iM<*qjG zcTooJ%^7D53zLUi#qHs?`3lX~0G8TfW^`YCR!jaJh z9y9D6*N$3#yx5U5pc|1Sx2^O|&1_|m44gIc$DN z4W#9ky;z>*zQ&fCqL^%)R_|ByYbSD`K+5I#`;i)c<3FETN5&$Fz^ijoQtuW78S)Zb zhIE6vO1HPq=$9gY_p#KUL=I0h5KOJ$^xN<}KWdc`t5hwSt-itPaw0w_y2ll(wrELmTYEdcplMu;Z zpUT6}aV6pb>W&k1@8zlW9)+lar;Mu~$tFs8 zExwD05zyWLq{nd$*~Iw%Du?3nn`&#VfNl*J;G|fYj1dS$h(-Nk6>WVR&*aE zQclkE_|jN3@}uF3Cu+t5dzjFi$u=^=t6232uJa9ebXGd;mD`oN&C!?wC)N7n9=^1* z99gvDLwfZHPQSSxs|3&*h{U}FY-Y}wFr-MNHDE(ex79q@4|6tRS>0$JOn$Z&L)-`| z|4Tw&H}Y^I;t_pE=EqUnZ>3u5-6~f!Xg|0LX!M& zYuF0b_|fG}fhwnoSv5*G4)I;k@JWH{{Y?rTL|$u)v_GjMzC@tUWMm|~b4j3kGr4nM z*adCop`TtrHeTes5KC^S^)$(6gsX#(Qwg$RMmZehx!p7n@X8*i?^)J1^09UNrKd}v zEs2g)No=I}E4tfDeZLlZ;g9Cm>iuMS^DU0;A6?mGy*L_|u=OuxOkJRyYad{ZDSYJ%fW4XLL8x^U3gMPqEu-S5L z{#R3u4ZUi0E@3|Qy88uGqA8)7#pch&qhc6Corl?ck3gU3N(X%z1xtJ$3GR(x6TT(9 zCng7xuo1~T6iJ)(z_JQnGXF+!*7VDFM8Y}?>~OQBzS>U^&JjE!p=(j}m&AFM$VFNn z_>KYk0g3})cZ7HNsy7SfVXjju#$pM4hno@$e5zAw9C1cr9&FyFV4mJX$H$XDt}m#; z+OJpdlXAJeyI$$XrJ-ROQu&wUE>y={QA0L*AuB|^x}Gbgb2WO{O+d39MfDP%YL+F< z<71b}%)l8&$mHvH{35$}O~ujL<;_RBZo0=@@4EKSyHY6{kmA>+&Bzd7=QAdeNJzkH^}L3N<3_Etigu-Y(r5}#hm52@dijM z9?~|Mdm7m=xGJ4l5&^t#a))f2bc5D184#tLGoYE1KdN&mnXtVNozt6PAGY#92MgA| zoOpsGlt@8a<0L*a&J7`pTw14IG*n!ziZ=tt8Ri_idh%Mg#L1{0`JsnI>os^*lfE_YR_cZ3xR!rK21b6+W3Av#%e<#-|F$BaD7YNJ)L#7-AlG?xOeq zJoT*P!P&)N&zgCU>PjE_ndP$JNX~(lM~=4fcN)I> z)Jr+X{s?{KiK(o;mR7DOV1mpxi_1$&I^U3qBCrq*=(Fb`kQ=CK$8PcG=={L z<59>)BzcAtWN=F?a(*9P^4r!a$T@p%jlQhsOedW!!O*4mZbwQO(B^))H%=>=3w<#x zo`=8bcfPK)WO(c>1~U0dOs2@d9qJ@pBOiKi{vA0q?vxH$a_FRZbX8!*^40)z75LbC z#Bzv<>8mEP=nCOWr8pi2o0WtRbGdqJ2Ifjzu2czK!+mvC2f_5xy=OhtpByv|7{0(7 z6bzy!MbK|Gvns9aiq5s@&C&cPn(zp_^tMspnhUT<1;f&{Hg%a8=Kj&QvT*a7at;Kpo{&4h}xyDR;5U%=Nz> zlNEX+AqGpK-^mrHk79J-Nrz>4>x3vVjW|8YA`=l!eR=w}A6YRP%NHBs;}{uLi;^l? zi9T)Pyjh&A)WwTZ_#!sq`T2LKm5Ahh*He!+B|&2+snd99uZEvj)s>LyR#gh24s}!T zK>(GypS%s2t)l{ve*&gCb`RT-Q z3wl}xs=8&&XniUEnzZMe)9@J1=0oZ1MXX1p`1m$U^22#yaq6}>xzR8EEq_V6g!gpV zDSx-WHaI!$#+=*LiyjCubp{8y?rC(ssaKZV;vQhpHD9^G?jN?j5L?iF&f{&SB>sLY zc7ky0_WhgUf)MwWxg)2bgGj)gw!f20PQB+>C* zujq%j48{M&vU4{>MCKN{CS>P~dt7f+i{&mV!9PJZ`02auE)eR==Hw?fC)z(# zZwX(mmexsQGfeMUx6UH_+Uw~U9O?c$_6y;~m{GG-Q)xwZ}yfQ4L)IMUB-zHjo=6Fz7TG2(nSRdtD zhIJjdvC60bV&lLKU9Jz?6Kuk&_GQcqo&n-LeA5FHvDg>;mn0D1K)$EOIlkjNv&tr0 z^@shiDCjTA>gTbFnE@+r{x33=%0W(E-?pS5Hr(n<=op?#8Jt zu8KO=*`JohfA~uhYTfpiWD&ixcpkim;M`3CitxXV(By%pxR1E0Dr?d;Zl2dMW#0Cm-v(*?ve3TmlLDVsDIL;=Rnqv))4GJSe0G;BA*p{! zX2@y#E!VIpkCTL%+l^qJ;|kpr>aOu>{N@3}7F;ZG|IDsLhCQV$1LfhBAf*LEB~`Bd z|AH`&BD76g3}?#@xInFRHyd}>v}H3`2h!YfWn2PV5G^U=&(Ru=Ib?|2~K zQIx_zeT+P#BR(QjL^idHawymKLzNTu&Db#)ABTvGl zdtQg;9{3IXYe*L_a3EdJmvQO*+ioei)~~fyRwcG2@%CFOCk+DHoGnMvNlxHm5+3!D z+`nSK=_dQjB6OGLA@w}p#Li}q*q6(s>6|uQBVdrjfu1BuB|w&A&KI z?z^du*8k5Zq+_k7qp4^_c*_>Sp7lg#mA2{2d5`ZGY_H^%9UisIpb@C*Ja#fgtM`qk zOLE}DvBNz+9Zr0SvF^x z2^}TY(Y;nvY0HHpB~D{gqB6SpLl?JqYgz_gjW*5=vhEtEY_XFrEOZ>$>>POr1s2Wj zeZn;F*RO6#y9ey-{w3*%jBRMz_B?bB#7o_d&I&L7m{MDp?a5}gj#^1pIg11tm66n& zFyo664(JfhoUm**yRx9fgT0{O6qvM?Xwddv!}R#!25nyq#1_%@yRBn3%bX)xM93X8 zPHtw+I5YI%5JW2fn^8VxPy4-cT*M~jfvGoKly$zx5k+BsP}+GfZ7aT+gWveciTS{+ zRBgQKys$^h4%Gu=T9(CtDDwfo#5dFwi}-t6k^Jtf7zc{XxqOLedp@TtW2DD~&?bmP zofSJGFgxB;e_H$!zgxo}*}RiPpNF~~`FO`&J(Z48j}Wq%pMOcxRwZ=W_70_Fxei;} zM?Jn=^5Zy988-7+;(y^2!A{kM`-7BHyw-M7_HW z`dE57erfd%bW+^HdP|1a;W3w^t;hN72h!E~<>}fd5XU?zrIG31r=!JS5dH5kA48^; z+e%%y>_z%wYU+6Bu2>efH^uF|))G%yi|DH&TkPi+wyt*k-uWscc5lC`oBuWY$9jZ# z$WSl#a9VY@A;)N1_IhCV!j?N(dVASTJ4FoKOJFl+-yCTbVS7Hn+tTZX z&ZGYTgsDOQ0Pzw4N0hmwVjZqCO@)sM)4MiK;@s|C<D zY+Q(VP62#XR<*~K!0Fb&*(|Y-3DR7L*A`?Ai30xsFcQlfd?ihAA5klD3$pFn+M5i! zDQjXL6QnqtD_q7lZ zjhFub2SgrQ`$3sD=I&_MOB>jwmKeMd17yTFuy!GsbgeBG+zgXq+Zo`Nxz-h}uxN9n zBwNj(164L%jvfSd5PmRO#DGQ;1+~6mHY`o>G?=aNu?93<&vcCj-G^Suv@X(Yo(gkr z1!En`06bz~we!r}d#Ps9V>}OthPJdg*b`?kYIM0E5|<0Kt^Ns;DBmmU+8V=SXSAF8 zY?lV|($559j7ZwDLEp+7?oL5VUF2WzVQC@NLoLJOa6W~%Q^@W~?eJZ}Ev#_>TpKpq z^fyKBOGJJMl-|{M!}pJp-N?Iz!0e}z_ay%S_$FZ1xYf7Kdp8p=kiM5vpzg@O;R!#2 zc^(=8d)gUc(<|rfn!(=4=6FVTG?vXFEjA+qN8)a#u-AJg(crqU$H-(XWM2+ zUe{8wUiL;02u#+8I;b!cU|i_O&peY@JNX>n2+VR7gC1uA!U+R$)lDIL`56BI2G&FS z?tHFk0`_1dF{QFiag)E9%+fc z(m~F}gp8D)JYj!n$%3vP5yNUt7ZUL`2M(+_#lbolSuH;1@eoev7De;=s5jFCsmr)lpa^L4-4+jm*VqKWnL zS?ltTM?Zmmq{Ue@aq)^~(NoC$2D+Z|2=mqPoXG2Ae#=>O82l|G#512-cQ}ua_%$79 zrlK_*S_Ydytjex2P60AW{7s4b zHK!|$P3qlcoy__B|}TzNc0mVBaX?s$$J-DA%MQ1j8NH@{_wKw0?I(fPwwfL>QzrzimLln%>UT>_91Xm$j~m7H7j9iwi$4yC z^z-~)%zRHd^{#aUTcgHNR@6zlT@RN8y_2-B%0YY_FC8+da0vb}P}v;rL;cWqy+5$>Lm@<2cNE z!^B7938V1Gh`c!$3Z5DG=#7S|N5&Y&FpNNgbHpw(E7{Az9GsZvKg#lP^%-&T<%D`< z{N`GE$}S&OHANu(;KLlj;n`lmVQC~^sa>h(I**ESBaFP3*Z_MTi=<1PJtTf2KeLQ1 zWSFFTosSU>b8-Y0k4@Js{N>*XsB^08=ax3PkhQEL#!oTC;gQd4tm729O}ics@gVTG z8KmNp!z1E}=i(xSwazSa9LE8Q!sL*3T>6flIk22%*Qe@dgFUf-QFwR8ej4#S63YjP zDfmRtfz71itz|2$a=TvVnA|VX*X+JWCx+vP!e{Q6)yKuTGWf^I-4)yk#o&0;f#Pnh z_}X0k%&V8|IDbw{^`|eq84R2*qbPh?!Q^{~k~UP+IJ>Y7mtREvhY#t=ezWEGhT*~| zd3GKtOjygABn<_k$76i=Q}#YTX+E>&`#wV)5_e(4#puW;#Q8<7zHZZ^pRw`#N%fyM zyaGN8G{({KdNG}vU4fw7Um{=AWS)zTJ`zWYbA6vDpX1z5gm_k1AmZLBri!L_;cX=} zW~N4q*t$kUTo?!Yjn3Cs4-Mnw^u~T|eQ(W&#y(F?1q78;@YK@ykB8L3I0gx#EO2vA z@eekGzI~S|@ZK1joM-0i_0Li7kI0JN3&dn>e6JK!(g@xh`Cw#n2LcWo-09mztb9L$ zKbB|jmU8i)rhl3v?uMFv5m?w88@xkBBj9Kbnod|Ru*})6H@1rzcy9&&01U1^HPlzE ze30|T}@fP66&J6{cUdIi{Ip@(y@ZO)=erCqa75xRaR|m)=F@u{+bq_8tm)_BKQ;RAsgI0&hB#GD5a)5IKp+!n!}2;18VTJ= z@Xilu`LEZVPrQ7Z8^J4I8J0dVO!&dI{G+DDx4wETPlj~=0MkDJ|^lb}0)Wl8YPpZaI!)OhDr?;j&SV$_SY@wnRHFJQ(vA1)vTwLhAl zR&@UW(?2gUp4gk6`_~gNIf9i6>%MMwBGDz@_EWGjK z%6}PZe0QmjT=9>>9r!pi>SBtbn~%daB%nF9j4(Pf4(%*24jtDi@XiSJ#(r|KgVwAZ7IaVm2X9t9pOwpPaSz-&Orl@`Hzlt6VP5EpWzzA%7$W zk`7*0xb3>1SM=Z0`N{R)SN&1)g^vzYi21JLu$B+ybR-d$cOZ3B>h7QVC+92m-&g%n z@_|2qvcwM)#UmWYxwACF){rbMcMWsO+4e~A-Vf-XoRj07SM|rr0L~2&!WrUbIgNG; z0UL<`;l0CMex%u1@XjCh=jSAN?^XSA@`jPY=-5PZc%uxKamYYHvBO|+_0ebQ&L8&w z06A;x-mCiKKVI-( z6X3o%;Xk!_UmC8Yb0l;XG!b{@)KRNwfKECUJukw%4uy|?0 zVFBY6a!eXr_Cm;?khnG`CV`mTsXiCeRp}o&{a5S$wm;PTqx5JV9H#-i-aEt~kdo09 zvD2`)wAt3g&`rG-C&M~__T%R*$I=e7{m;uE&@bQ+vMK5Z9jkRcD{oaZc^Dc-zGp_! zU^O@OQ|i8({kZwh>ePK8>wnz*vHcZK!6{~BF8=_CYF=k)F$h}8G1~Vm!5e`C)l9rA zr;qfb=Rc~)(jL40-^xEh$-t>2r*%vGNmRy%78cqfTHphKei)n^mgL!HJS(S}uGD^i zt6%vSTmJ0)qx3bL5`Zwu{yD@$1Dw`@@b1Ti=*%r7n|8Od%=k|S`&j;MN76pFKh>X> zKclAK4bixp@jfR`#%=kY~{?fC)M>;C}WpO!zNzp%J_VSDG}wJr^4dxbpl zmoqVJc%qMeZFQfi`frC6e5dtm{{SZI{{Y{g!(Y*+!HqO@v7GVaF@2Fn}S+!hTl6{!uk6wW#K(6f2EJf z(;uZCBkbjQ%!`fjGWHhQ0(}(Z}S}eJk+@{{Z(H z{Nwa#XA7otOs?bA#ihZ5IBQt9Bcmo>fC)R>%Khm`F@8z{4OW4jPX@m z#$Pi-Dl^#R4rkbZMbGLU5B72SI>*wUtNrQxzeb1E&{MMSY=&Oax7K9cfJu75a>(b$iQ(Xz#!C9Hb`1dfrl?sh~2{Ou!Ni_MqO-XHd&KL@i9 zq!;Tr&*2WeFCU0Y93zbJR=l?r-B|M5f4c;Pw{2IOKcl!rTwxDiAC7V5H8|t{0Ioly z(NcJdConj8kBKmw;d^T2+iMqGpFq4kz6Tip03<$#A6?V(df|uuvHCmI-Xo}u$NvE8 zPA0~%0%Uz$jb@qovD+=zi$4me{up%2kEi7H4n1KWg=SJ+6!6=6hTljqfaXrSUs0SC6LX zxqLoy%c14Zrpr2vr;2piuC|Jpnz{3<^Ywl=#Quu$^Lfq@`L_6v?Lw}yAj459a0E9C zg9yHN$c4wM=rim2G34vHGwO22D;edTwU1vYsE=QbU)tf}zeYItr^^_p;apqAHMI_q zyNdA$?oEKIk)Us`Faq^q;rPdtL__yIFNSg9AHjtG0Qkq~@zs1vsm^fyvso#&BNMBn z2T^nX09$LXXBUU#m-4=pW5vfG!H531{*N13#M>l~j#}!RiMVeOl*ruma~U(NJFlz3 z;Mo5FPtHGA4o?%~p2r3BM7nYm40$RdSPv3)qKDGb2Url)&UmKW@DX+SoV!M*ba7gYaD+>dQpsRDqzIlH5k7e{YycdSAOh5Ji01unXzjf=657*&`%0EYkFB|2{%YIM&r}c8G zxL1dm=SMdT;uP~W&gN6O&U3(ExwveOwp}tC^RK<*Ps5=`mhcM z;c23lNjP-vd_mFyB}`2i1@2zw&eniBe^)j98^Xr}bu7lUh(pI^6IbO=l)5o;9d%3anv`1$k;E2rxS?ff4RY>&N^%t zOgQ;HJe;!UkGJN>H-@|%82(2KGdcFc_Q>Iv`&!|xj`jnzvUw$j?TiIu#VWsWz7yO!pX;n18~`zEVme-M3TYC-#gCmKPikz7p+)fy+ze zlN0P(z9tbL#Z6lS*cuq(;e@!GSVY#HZO|)U1hR{S(Q}(>R@k|<4(8-L;0-zK2=`W! z+G$x;E7{4ZVe%0hfsue*T-e-@Z?&^hX<}R38Dk}qqIXnFBe`+8tsnw)IgC#2Wfh(Y z1vIPzceS!yJi7#B+WO+c;qq2u(j}@dhL)}EbxkahLNK;VuspO3!&`R`%}SbE^JsB% z9}{_?v4+uo(9?YhYg$RuP!fx6e<-z+KBArwUuR=?Fy;JA1&qw}HvG(`dEXWBxcn`^ zYWTfu&`4l=3u#(&sC1^xY;G+eo}lP1ZncIxO(e}fo*(wr;z?@_L~+ql#d|W5(K+q6 zLhM5Q?Qccs?Bh;*%h$8*-SKeYBzzQp(|er9hD=2xT5LgUU5ZS`#M{2hKeNU9x7~WG zFSdRICjfU4u8L?lg)8}O;IKT%=`IPpZZY8uKg3DM`z%jSH{_k)C*Yni`$^-TE0NGt z%xJh>#tsoqY{y&fnVbMJA5m_AF8FcA3{F!oFG=E#HNzm1mxpmmstQ@2*UL{&Gvi~N z-3bjK5*DT+ePD^0WBs5iC#b8QXU{!Ljx0wTog=>Up66%XSVqV|wadDBdM!dN_0E9) z>oc+0CRNORLyMhzx$e2Z+YHXwb-(*{DePgA@=azqpt*$e;xen2G~F-=*-rE^;BP{6_Ge0{r%pPICn zEaG}RW!#}OpT#4~o_?ecq6O9RB&C*EW982P#2nLLKsk&m+BR@@7Spz-SyfRv)Va{w*&i6Lt0CK&Sal#|g8l2`{nv3ld#k5p3 zR8*XHrIElH$)>wY8Ot|gO~J$fwnts^R(SEBIfUL_NByRF=&*-z=K|N6d6Bj#TpsO6 zEMrZ(XtCMD*{$+;sH*Y0N6QzS$V;B$;z>KW+}!87=?M4!9Q#G_2ZSJ$aJu;8qj?4N zbrFh)aU8KVuLlVuc92&-PAoI^YaHf19SA<#{97dT4*2>vIqo>(Z7fBNJ%$^bY#ng3 z`!);RlbQCx;~Y_c`^|x|xV%K_N?u!!`PbXhSjho@%DX$27iZ;FZq~7)~#?ov^X#m+HrQ^G!_Kc(A{Ptciz!>LAG_?{wrS6hhb&xs75hUW& zop)Y{#mjf;95?Nk#J(5s{VxXa--+t!ID94YQo`D5SIHkZ<9O#w6XdaWWw@<%=j7

5?9x{cdIs8*!ByMXP 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