From b85a96823e7e0faa0dcdf2d43f9b6541a4fd6da9 Mon Sep 17 00:00:00 2001 From: Tethys Date: Sat, 13 Dec 2025 19:11:44 +0000 Subject: [PATCH 1/2] Make EXIF orientation support generic rather than being tied to JPEG. Add orientation support for WebP images too. --- src/CMakeLists.txt | 3 +- src/xv.c | 4 +- src/xv.h | 24 +++++- src/xvjpeg.c | 136 +--------------------------------- src/xvorient.c | 181 +++++++++++++++++++++++++++++++++++++++++++++ src/xvwebp.c | 48 ++++++++++++ 6 files changed, 259 insertions(+), 137 deletions(-) create mode 100644 src/xvorient.c diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5bc6d8f..1a182dc 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -24,7 +24,7 @@ endif() if(XV_ENABLE_WEBP) add_compile_definitions(DOWEBP) - set(xv_libs ${xv_libs} WebP::libwebp) + set(xv_libs ${xv_libs} WebP::libwebp -lwebpdemux) endif() if(XV_ENABLE_JPEG) @@ -93,6 +93,7 @@ set(xv_sources xvmgcsfx.c xvmisc.c xvml.c + xvorient.c xvpbm.c xvpcd.c xvpcx.c diff --git a/src/xv.c b/src/xv.c index 4496495..b4a37e2 100644 --- a/src/xv.c +++ b/src/xv.c @@ -2311,7 +2311,7 @@ static int openPic(int filenum) pinfo.exifInfo = (byte *) NULL; pinfo.numpages = 1; pinfo.pagebname[0] = '\0'; - + pinfo.orientation = ORIENT_NONE; normaspect = defaspect; freename = dfltkludge = frompipe = frompoll = fromint = wascropped = 0; @@ -3552,6 +3552,8 @@ int ReadPicFile(char *fname, int ftype, PICINFO *pinfo, int quick) #endif } + + reorient_image(pinfo); return rv; } diff --git a/src/xv.h b/src/xv.h index 39b8564..e6537ef 100644 --- a/src/xv.h +++ b/src/xv.h @@ -447,9 +447,10 @@ #ifdef DOJPEG # define HAVE_JPEG -# ifdef DOEXIF -# define HAVE_EXIF -# endif +#endif + +#ifdef DOEXIF +# define HAVE_EXIF #endif #ifdef DOJP2K @@ -1130,6 +1131,7 @@ typedef struct { byte *pic; /* image data */ byte *exifInfo; /* image info from digicam */ int exifInfoSize; /* size of image info */ + int orientation; /* Which way up is the image? */ int numpages; /* # of page files, if >1 */ char pagebname[64]; /* basename of page files */ } PICINFO; @@ -1179,6 +1181,18 @@ typedef struct { int n; unsigned short int r; } MKT; +typedef enum orientation { + ORIENT_NONE = 0, + ORIENT_NORMAL = 1, + ORIENT_HFLIP = 2, + ORIENT_ROT180 = 3, + ORIENT_VFLIP = 4, + ORIENT_TRANSPOSE = 5, + ORIENT_ROT90 = 6, + ORIENT_TRANSVERSE = 7, + ORIENT_ROT270 = 8, +} orientation_t; + /* MACROS */ #define CENTERX(f,x,str) ((x)-XTextWidth(f,str, (int) strlen(str))/2) @@ -2162,6 +2176,10 @@ int MGCSFXSaveParams PARM((char *, int)); int getInputCom PARM((void)); int getOutputCom PARM((void)); +/*************************** XVORIENT.C *************************/ +unsigned int get_exif_orientation PARM((byte *buf, unsigned int bufsize)); +void reorient_image PARM((PICINFO *pinfo)); + /**************************** XVPBM.C ***************************/ #ifdef HAVE_MGCSFX int LoadPBM PARM((char *, PICINFO *, int)); diff --git a/src/xvjpeg.c b/src/xvjpeg.c index 0d0d353..daeb281 100644 --- a/src/xvjpeg.c +++ b/src/xvjpeg.c @@ -53,18 +53,6 @@ struct my_error_mgr { typedef struct my_error_mgr *my_error_ptr; -typedef enum orient { - ORIENT_NONE = 0, - ORIENT_NORMAL = 1, - ORIENT_HFLIP = 2, - ORIENT_ROT180 = 3, - ORIENT_VFLIP = 4, - ORIENT_TRANSPOSE = 5, - ORIENT_ROT90 = 6, - ORIENT_TRANSVERSE = 7, - ORIENT_ROT270 = 8, -} exif_orient_t; - /*** local functions ***/ static void drawJD PARM((int, int, int, int)); static void clickJD PARM((int, int)); @@ -97,7 +85,6 @@ static const char *fbasename = NULL; static char *comment = NULL; static byte *exifInfo = NULL; static int exifInfoSize = 0; /* not a string => must track size explicitly */ -static exif_orient_t exifOrientation = ORIENT_NONE; static int colorType; @@ -106,12 +93,6 @@ static BUTT jbut[J_NBUTTS]; char errbuffer[JMSG_LENGTH_MAX]; -#ifdef HAVE_EXIF -static ExifData *exif_data; -static ExifByteOrder exif_byte_order; -static ExifEntry *exif_entry; -#endif /* HAVE_EXIF */ - /***************************************************************************/ /* JPEG SAVE DIALOG ROUTINES ***********************************************/ @@ -530,7 +511,7 @@ int LoadJFIF(char *fname, PICINFO *pinfo, int quick) const char *colorspace_name; byte *pic; long filesize; - int i,w,h,bperpix,bperline,count,swap_xy=0; + int i,w,h,bperpix,bperline,count; /* Initialize variables below instead of in the declarations above to avoid the warning */ @@ -690,20 +671,7 @@ int LoadJFIF(char *fname, PICINFO *pinfo, int quick) jpeg_start_decompress(&cinfo); -#ifdef HAVE_EXIF - exif_data = exif_data_new_from_data(exifInfo, exifInfoSize); - exif_entry = exif_data_get_entry(exif_data, EXIF_TAG_ORIENTATION); - exif_byte_order = exif_data_get_byte_order(exif_data); - - /* If the EXIF IFD is as expected, get the orientation from it */ - if (exif_entry != NULL && - exif_entry->components == 1 && - exif_entry->size == 2 && - exif_entry->format == EXIF_FORMAT_SHORT) - { - exifOrientation = exif_get_short(exif_entry->data, exif_byte_order); - } -#endif + pinfo->orientation = get_exif_orientation(exifInfo, exifInfoSize); while (cinfo.output_scanline < cinfo.output_height) { #if 0 @@ -758,107 +726,11 @@ int LoadJFIF(char *fname, PICINFO *pinfo, int quick) pic = realloc(pic,p-pic); /* Release extra storage */ } - /* If we need to transform the image, allocate a new image and populate - ** it with the correct pixel values. Then swap the two images. - */ - if (exifOrientation != ORIENT_NONE && exifOrientation != ORIENT_NORMAL) - { - byte *tmppic; - byte *orientpic = (byte *) malloc((size_t) count); - int dst_row, dst_col, dst_row_width; - - if (!orientpic) { - SetISTR(ISTR_WARNING, "%s: can't transform JPEG file - out of memory", - fbasename); - goto L1; - } - - if (exifOrientation == ORIENT_VFLIP) - { - /* We can copy entire lines for VFLIP images, which will - ** be quicker than doing it pixel by pixel, so special - ** case this one. - */ - for (int row=0; row < h; row++) - { - memcpy(&orientpic[(h-row-1) * w * bperpix], - &pic[row * w * bperpix], - w * bperpix); - } - } else - { - int src_offset, dst_offset; - - - for (int row=0; row < h; row++) - { - for (int col=0; col < w; col++) - { - switch(exifOrientation) - { - case ORIENT_ROT90: - dst_col = h-row-1; - dst_row = col; - swap_xy = 1; - break; - case ORIENT_ROT180: - dst_col = w-col-1; - dst_row = h-row-1; - break; - case ORIENT_ROT270: - dst_col = row; - dst_row = w-col-1; - swap_xy = 1; - break; - case ORIENT_HFLIP: - dst_col = w-col-1; - dst_row = row; - break; - case ORIENT_TRANSPOSE: - dst_col = row; - dst_row = col; - swap_xy = 1; - break; - case ORIENT_TRANSVERSE: - dst_col = h-row-1; - dst_row = w-col-1; - swap_xy = 1; - break; - default: - dst_offset = src_offset; - break; - } - - dst_row_width = swap_xy ? h : w; - - src_offset = (row * w) + col; - dst_offset = (dst_row * dst_row_width) + dst_col; - - memcpy(&orientpic[dst_offset * bperpix], - &pic[src_offset * bperpix], - bperpix); - } - } - } - - tmppic = pic; - pic = orientpic; - free(tmppic); - } - - /* return 'PICINFO' structure to XV */ pinfo->pic = pic; - if (swap_xy) - { - pinfo->w = h; - pinfo->h = w; - } else - { - pinfo->w = w; - pinfo->h = h; - } + pinfo->w = w; + pinfo->h = h; pinfo->frmType = F_JPEG; if (cinfo.out_color_space == JCS_GRAYSCALE) { diff --git a/src/xvorient.c b/src/xvorient.c new file mode 100644 index 0000000..6c99565 --- /dev/null +++ b/src/xvorient.c @@ -0,0 +1,181 @@ +/* + * xvorient.c - handle the orientation flag in images (probably from EXIF) + */ + +#include "copyright.h" +#include "xv.h" + +#ifdef HAVE_EXIF +#include +#include +#endif /* HAVE_EXIF */ + +/**************************************************************/ +/**************************************************************/ + +unsigned int get_exif_orientation(byte *buf, unsigned int bufsize) +{ +#ifndef HAVE_EXIF + return ORIENT_NONE; +#else + ExifData *exif_data; + ExifEntry *exif_entry; + ExifByteOrder exif_byte_order; + + exif_data = exif_data_new_from_data(buf, bufsize); + if (exif_data == NULL) + { + return ORIENT_NONE; + } + + exif_entry = exif_data_get_entry(exif_data, EXIF_TAG_ORIENTATION); + if (exif_entry == NULL) + { + return ORIENT_NONE; + } + + exif_byte_order = exif_data_get_byte_order(exif_data); + + /* If the EXIF IFD is as expected, get the orientation from it */ + if ( + exif_entry->components == 1 && + exif_entry->size == 2 && + exif_entry->format == EXIF_FORMAT_SHORT) + { + return exif_get_short(exif_entry->data, exif_byte_order); + } + + return ORIENT_NONE; +#endif +} + +/**************************************************************/ +/**************************************************************/ + +void reorient_image(PICINFO *pinfo) +{ + byte *tmppic; + byte *orientpic; + int dst_row, dst_col, dst_row_width; + int bperpix, pixel_bytes, swap_xy, h, w; + + if (pinfo->orientation == ORIENT_NONE || pinfo->orientation == ORIENT_NORMAL) + { + /*** We don't need to do anything - the image is fine as it is ***/ + return; + } + + switch(pinfo->type) + { + case PIC8: + bperpix = 1; + break; + case PIC24: + bperpix = 3; + break; + + /* We don't know how many bytes we have per pixel, + ** so just give up here and leave the image as it is. + **/ + + default: + return; + } + + /* If we need to transform the image, allocate a new image and populate + ** it with the correct pixel values. Then swap the two images. + */ + + h = pinfo->h; + w = pinfo->w; + + pixel_bytes = h * w * bperpix; + + if ((orientpic = (byte *)malloc((size_t) pixel_bytes)) == NULL) + { + FatalError("unable to reorient image - out of memory"); + } + + if (pinfo->orientation == ORIENT_VFLIP) + { + /* We can copy entire lines for VFLIP images, which will + ** be quicker than doing it pixel by pixel, so special + ** case this one. + */ + for (int row=0; row < h; row++) + { + memcpy(&orientpic[(h-row-1) * w * bperpix], + &pinfo->pic[row * w * bperpix], + w * bperpix); + } + } else + { + int src_offset, dst_offset; + + for (int row=0; row < h; row++) + { + for (int col=0; col < w; col++) + { + switch(pinfo->orientation) + { + case ORIENT_ROT90: + dst_col = h-row-1; + dst_row = col; + swap_xy = 1; + break; + case ORIENT_ROT180: + dst_col = w-col-1; + dst_row = h-row-1; + break; + case ORIENT_ROT270: + dst_col = row; + dst_row = w-col-1; + swap_xy = 1; + break; + case ORIENT_HFLIP: + dst_col = w-col-1; + dst_row = row; + break; + case ORIENT_TRANSPOSE: + dst_col = row; + dst_row = col; + swap_xy = 1; + break; + case ORIENT_TRANSVERSE: + dst_col = h-row-1; + dst_row = w-col-1; + swap_xy = 1; + break; + default: + dst_offset = src_offset; + break; + } + + dst_row_width = swap_xy ? h : w; + + src_offset = (row * w) + col; + dst_offset = (dst_row * dst_row_width) + dst_col; + + memcpy(&orientpic[dst_offset * bperpix], + &pinfo->pic[src_offset * bperpix], + bperpix); + } + } + } + + /* Swap the images - make the reoriented image the + ** actual image and free the memory from the old image. + */ + tmppic = pinfo->pic; + pinfo->pic = orientpic; + free(tmppic); + + /* If we rotated the image in any way, + ** swap the w & h values in the pinfo. + */ + if (swap_xy) + { + pinfo->w = h; + pinfo->h = w; + } +} diff --git a/src/xvwebp.c b/src/xvwebp.c index 436d1c5..3808f7a 100644 --- a/src/xvwebp.c +++ b/src/xvwebp.c @@ -29,6 +29,7 @@ #include "webp/decode.h" #include "webp/encode.h" +#include "webp/demux.h" /* Used for xv to hand off save info to our 'library' */ static char *filename; @@ -476,6 +477,7 @@ int LoadWEBP(char *fname, PICINFO *pinfo) uint8_t *raw_data, *rgba, alpha; WebPBitstreamFeatures features; VP8StatusCode status; + uint32_t format_flags; /* open the file */ fp = xv_fopen(fname,"r"); @@ -644,6 +646,52 @@ int LoadWEBP(char *fname, PICINFO *pinfo) pinfo->pic[i*3 + 2] = *(rgba + i*4 + 2) * alpha/255; } +#ifdef HAVE_EXIF + /* If this image contains an EXIF orientation flag, + ** read it and set it appropriately in pinfo. + */ + + WebPDemuxer* demux; + WebPChunkIterator chunk_iter; + unsigned int exif_length; + byte *exif_data_src; + + demux = WebPDemux((WebPData *)&raw_data); + format_flags = WebPDemuxGetI(demux, WEBP_FF_FORMAT_FLAGS); + + if (format_flags & EXIF_FLAG) + { + WebPDemuxGetChunk(demux, "EXIF", 1, &chunk_iter); + + /* The returned EXIF chunk contains the raw TIFF + ** image metadata. However, libexif expects it + ** to be prefixed with a "Exif\0\0" marker and + ** won't read it unless that's there. So put it + ** there and pretend that's what we read from + ** the WebP chunk. + */ + + exif_length = chunk_iter.chunk.size + 6; + + if ((exif_data_src = malloc(exif_length)) == NULL) + { + FatalError("malloc failure in LoadWEBP"); + } + + memcpy(exif_data_src, "Exif", 4); + memset(exif_data_src + 4, 0, 2); + memcpy(exif_data_src + 6, chunk_iter.chunk.bytes, chunk_iter.chunk.size); + + pinfo->orientation = get_exif_orientation(exif_data_src, chunk_iter.chunk.size + 6); + + free(exif_data_src); + } + + WebPDemuxReleaseChunkIterator(&chunk_iter); + WebPDemuxDelete(demux); + +#endif /* HAVE_EXIF */ + free(raw_data); WebPFree(rgba); return 1; From cc6973c876f60c57ef18fbc23e8026f8eba49dc0 Mon Sep 17 00:00:00 2001 From: Tethys Date: Sat, 13 Dec 2025 19:21:20 +0000 Subject: [PATCH 2/2] Add sample WebP image with EXIF orientation flags set. --- data/images/orient_0.webp | Bin 0 -> 5080 bytes data/images/orient_1.webp | Bin 0 -> 5074 bytes data/images/orient_2.webp | Bin 0 -> 5102 bytes data/images/orient_3.webp | Bin 0 -> 5060 bytes data/images/orient_4.webp | Bin 0 -> 5148 bytes data/images/orient_5.webp | Bin 0 -> 5060 bytes data/images/orient_6.webp | Bin 0 -> 5090 bytes data/images/orient_7.webp | Bin 0 -> 5120 bytes data/images/orient_8.webp | Bin 0 -> 5204 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/images/orient_0.webp create mode 100644 data/images/orient_1.webp create mode 100644 data/images/orient_2.webp create mode 100644 data/images/orient_3.webp create mode 100644 data/images/orient_4.webp create mode 100644 data/images/orient_5.webp create mode 100644 data/images/orient_6.webp create mode 100644 data/images/orient_7.webp create mode 100644 data/images/orient_8.webp diff --git a/data/images/orient_0.webp b/data/images/orient_0.webp new file mode 100644 index 0000000000000000000000000000000000000000..37c8a8486ca0a0a420f22143b90d125c03de75d8 GIT binary patch literal 5080 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 literal 0 HcmV?d00001 diff --git a/data/images/orient_1.webp b/data/images/orient_1.webp new file mode 100644 index 0000000000000000000000000000000000000000..de8274af8d155e7c29555b6534effb02df3943e5 GIT binary patch literal 5074 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 a00;m80096J0RsR500003000000002MgVq=T literal 0 HcmV?d00001 diff --git a/data/images/orient_4.webp b/data/images/orient_4.webp new file mode 100644 index 0000000000000000000000000000000000000000..00e75efdc3cedd2be4b5d958476fb4c52e586be0 GIT binary patch literal 5148 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 literal 0 HcmV?d00001 diff --git a/data/images/orient_5.webp b/data/images/orient_5.webp new file mode 100644 index 0000000000000000000000000000000000000000..fce6501d24c94e7cf3411da0e590289bd66953d7 GIT binary patch literal 5060 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 a00;m80096J0RsR500005000000001H+u$Yu literal 0 HcmV?d00001 diff --git a/data/images/orient_6.webp b/data/images/orient_6.webp new file mode 100644 index 0000000000000000000000000000000000000000..f91dba386eb8a0260787b9c4d499f208159acfb0 GIT binary patch literal 5090 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 literal 0 HcmV?d00001 diff --git a/data/images/orient_7.webp b/data/images/orient_7.webp new file mode 100644 index 0000000000000000000000000000000000000000..3a0c1db3cf1cdbef868f5d5ebec5f1b54682e99a GIT binary patch literal 5120 zcmV+b6#wf|Nk&Ha6952LMM6+kP&il$000080001$001ii09H^qAh;6%0I*U3odGJA z04xDMkwl$JrK7VmCY4$8U=j&tZs0!H{MN7*sCj@7$Qm!y{~P;#`2q7ua{q0~7h(Dk zdw=jg7N4WP2LDj|0{*-C+j|%Nu=O4M@BLTqm%7)cUqIjP|Lc0zy$gK0eVYGq|8hO3 zKmX>#cN_kv#NRc)D$gps+#UaC=3n~n2>vSS1?>&v@D2Jm_WwCQvGb4Xhp-2I--GX< zdjNkc{}JeO|A+ejK|fu43iPNZ)%&muLpXI(o0Hh>!WJYTT7;-K9;fzetA^zrwcWz^ zj?_Qdr(?@jMnCV0FpGx3hclh2*W^aD19?QLjocH!sLG9v;F8S{d*%RyWnr~PhD*J- zq3NQ_A9_~?*g6bqtNcq<*QdJDUn5I|-O_HEt)=A`?0@^WkEi~Jo=DP>{f!wABxG;6d=5Au>{vw&Fn+FTtBHz|SjWU6{MJJft0}76T@&saf8{ zdg1ymzo7?ZeS_JefF{UobP-!-U`|YU3ZC!fZSWLa zS+?juRy@ydR^5Er2)h|rSk+x`GH>h-BA6bjz_fwFZWMB0tO0d9PYgT>4mI;QnPK`1 z!XZq2JHrJ;EiM%e+3#@>l4VHjdaK~L|NdWuO40jZvC_|z5>5X0TWB2Cxhf*SXB zAz4dvF6Ba29+MXDgC~kPr$FANfA&rk^lVUut_}Q0KeB3KQY>~C>!%qa7UGrnxzJhhr#FbbV4 zy-fgyIcKsLc3OVd^NDj)4gD2e)&Kw$jrD}xd!E~*FH{N_6lYUYZ1)~02aLUKMN3zr zTc${fW8oUWU=vdD2OL^)S`QNOG`)BLnSJN~#5Cq*SmOl+e^I)mBd!L(x(RjXrpwWb z{2tBM)nif@b0-fwv~B~*bDg%ESn&t3FuS8Cv^eLgJxrlbFDJiQbSaCsA3-|>NNq4Z zyW|O$y3Uyc;4Ns``zdRS5QSj8+RH#D87m7oD>OKb>#^3W@}l%QE1teOY@|~o|7+wg z3d+AY)Bx8b^a}{p$o^qO$GYf5PZX1{d_hkv0)BPO+BoRTJM<1Mv+|aQ)Nrn4m!9}+ zdmi`IP@N8M$w(8FAA9yS=gL*0#V}B{llIvUX()B6C5etu_!d!fhztg{Fgf z!SxBO)5ry&n>3qu&@Y2((-|%NJKQZJxP!bhWQolYImXZ7_q{||gjIG9$nCBwjc$Rt3WL!=P# zMIRM4JJUY+xVR1IFd_v`Y}Gi8?~oLKtsG-?RwR6w{^E%|L;Y)t%Ch`2f7FPKR?GOU zwB?xFi?n^gndOpWpe9^^GP(kj2+n$;h$woHmb|&Yz0S}US#ADo(QC#st(o-keP(l6 zRm-2g{L-xR^D|?2V|3Ap2HG@|%kzE}OLP!#q)j-_Bh7T~aY<8eY47L{CjpMz(2?`p z`QMH<__w`_!SX=`=Er}`cn|5#+!`CHeF%1#uUZE%MKaxOqyKHUV zU*g`nYxPtOxK;L=d?)2bcJBP9KxV$0aOdK(Eg=KOK@&esmT!z;y6}9PbS>ttWG~K2a-`OtIV{7_(i+87ib|$v@Y|e+!3>S z5(Ad!SgI2kD$eT6NAMvbqJ;%(9t7`y`*U+a4@0;7KMKt37Yw_7h2T@#{1TE9OTo|H z^>^`S9$5fU@G8`=0(5EAxTjqL`SyvfvQ-Tct^NO?*&_ck`p!K9#>7NhU{;Mgy|QJ! z^}v*gwvQ3D*?M6nqgqc7SxD#Vm3O%{7Nix!ELo?&sckdEN?OsDNR{0c9Qjbie4q>C zm!HZ_*84CCQJdDt9_D|ISmzO&P$z-d25(t@kWH59B9pNb;%EFOxme6%ZpV&e{esag zGhSZa#0;u1s8eEVg_7NzrAIYdz>`q=D0aXAgvv~vGe++6stF-atDK?}8|E1Xqc&59d6LUwCM#RSjJ?Cs)wn>gGo5BsD>?x`@H0po(6 z7%p`!B7YuSMP%2C(67ts?Liat5(;TWr?PMqn~+683`2>H;RsQ=aaI^_$JwI9W*Io! zzz5M|nO(=6NA@(jk<${z7}aBQ1xH`r-1?rz@0$bepsl4wYH+oYYsWaNBpLM61OVFN z&QZG#*GIf7#Jsux!516l{{gFUKcGkGeGM}*v0LLLqbsimN2kN64Jee*tkw!)3r3?h#O8F5K3((kcw;t2t1` zo`gMy;upg&L`b|Jjx%(EhvA&yJmkOkjAY3#d7H7c%G5*h&x%?Nw+6tm-Law>$qR7m z6O9hnH~PAv82Ws(n;Hm7;~jFCF98I9m;fxX>J#Uyj$>q9zX^c@6}6?N{W<1Tw{8Pd z;d$rKkUIC(CUPvO39pP=@YRIK^bJXYfeY=2(4fb{UzdZ}+l5}?<^)-^5|jUjh3lHn zhpD@0kiEWUUcp!cGbk)lJ`|Q@jJ`wRQ8Gluc!!>#1ZX60diVi)fvbRDkG^o#*cmuu zF)sYN`($dCR0$7EabP=jjCF^z%P@m;3iiH6rA1e}Aoc!VL_giOH!FPL*Y?W)lMckq zcM(jfp7_!*A{C&1SbqQHYsw43n%0E$V95BzfsmhC(|!}3irm{75V7&5hq-HGDufir zSYtK+j9Q8}bbSKaj*6MAE&smNHwYvOg;QEu9$d@Tm=1RADb@c7D~D43)mrTIUOh5-pziJd{1lH~~oF@d`)+JUw%3xXr=z_J-qu2>2`^8G2GQ?CfoQM>*8jC* z@S`ufzRdldd-XL%U{tNH%0WmNsI=8oWi8>Z9lM4Xvn3|Prf1CG0-eeI_O!Ihi?0*g zJp^Xjyvrb4<@Y8dKvtIBbYWUe(6+D&!Pp~Y1@q88KKWW%)7>chuoiL=yahv@W20RnRa1QBZ-TseOw{x7fVH>#J-Hi<)68#?VtTD!M(GFW1D5 zf3U>(AMcz@|K*f@A1<5yYnpevS^_*>rc3XLANbA%7uAoocs7RX__iHJcsbPcTG6OC zu*EU}uMJXtFd`yFIDfS6e3{lxttHmZk`U{Nk<&`96WHq=kVd_tv;Rc_OaT3xOdc|a zPVtQoh#rIOuf>kPbY#`S?tjMXIRx@{5?|LRE<)RcKT(fMSjk|l9Mni*3!|-jCYl=g zkX~-;{SOd+vsn@NgnKaAFbVFEe4JB??)*vgVk4K<)=Q5V{eH{lDDo!hpf&>G892LO5CIdE33j z2hgbM`*;TwX)j0#n4S%r$7yPi&Ie%zzpkYV@)0H}h5+pAt;p!$g`pGSTNFr<%(umf z-l9m}&wi+;VM6*!>+>AQ#7XpIFqTX3Mg%$@+Dbo}M`D-5A?npb+c2Hydp1kSG{TUE zlrM{&>tHJHqwECg4y^CkuM(v5h&}lQuj8UqoZcEE?Tg*xID~z~cvImTlLQ>V*2Gd8 zZV*CqI?_l?X^hP{z533fXhclr8)yh!1TbWZb^XK(^TtS(?HQJcQA2Tep?8JgX_cvc zy2u4Gqw2=BIHil?3G-GdNV)91t7)%a(NZoGdvxj!9i-K1;{nb`5uH@Itm`?kc`lRW zDvvyWeTh^Q#R9d@NhrtZ@z}krDifu`y9BQV*l`wQPLqVlFL-K^)%cn+;!dE+Wf{LU zN@nh8z&QI7cg~N*5*|W$vjS$KJlC^7Th`dSFlu>x{K$|TWT`QELretpF`H6cF`NWQ z>!vrnu{}rL1Ht)nQ)1b6y`vt}n74{NFlxoUj%@B8>*d}QN^O1^qUUL_`47<@Px5FH zNTytmJ(8c)_Od1)uI@dlB|lONBb4jfyC{BRJ0MpF#j}xG(Tt2uBl)z;%(XB83Hr!G zh(TA?%>TghEpC|#;oEGuRyEIS#D)O~78V`jcg=ck&+dt{Zr5}&_TQ}G5`&wLtWl~& z-Svul&Zqp2V6aw6%YNLOp7}*{AT5Z-;snq_jVjT=8=avyGn_!EYN6tnrH>6?qgh!+YY^Y z-`>t6v3s?^i5Z9O_JTMy!Q`P6#038(fdcSx&qVRoYm%&Te1DL{tKe#UneU;K?zO;~ zuygvhMVVc*u^hm}bKEA?p>nFS^66wfe&h2>Mj~i6OFjuU)`{@gzw_b@sr-a3&0M-Y zYsL$pL`Uc#pzJo8(qPd#(yL)JZ}lS3iK%2y)m!UoqD{`1P3)R%DQ$|?U?DGgR0lL+ zmu#iD&u%gg&1)QYoM(PIk)_<}Si>Ii*9&*yrs8y68s@?%n*+{L*_FjVIgN9j31z_} zDZ{AoJGqm^-`V&}>-lNy>>&XQS7WDV2^7LJW7On1xtnXOQfSpVSjqNa;@MxU$r;!* z6od-*oobncRp4=ZC^Mqw37^Aaer>-!;{v% z$i?~oAzZF?ACJBHOldrQcxY@*bd4z)C@g^?ISnEVcuKz+BX&KJ2_aN>0QUI^91vYE zjhmg(y+H6R1l7wxSG1D13mJ0agboIQj;}5ld}kjHufkGW1FYux*WWl`l^X2bfYd*R zoA(pBK}QoD_bwGF-N3KlBxX6t_|f^)DVi?blTxyAN-Q{TJTOrd5S}4^HIhn!LqCrB zXH--FwB6Kb5xpCP=s?7a{lp(q#lWpF`EEpmWAm>b*{@Z z=Tx3P0u=os(d9eWDB23YxOgcr#_MNSl*3?2ZyYW(O(+%M;@CGm(~R8sSzvKzF1oFB zZB#MH6d%;E_ZC|eCAt#T0u3A4P0lTJe2bCeH**%Ov=uF+#sI{f9a+|j8Suqbp@(O6 zQP)}P%w4!aRxXggyti}%+JylCE>1Mi&5IB*1Dlw!l0h)s!nkK*t;jUkvys3cx%M1% z1Chi>|GWEAa=%y3N8%6@FJa58wY8Mj-?A^yoQ079icwqSZSrU(2ouc(&q$y zz@WJYBa-7BL5n44>Ydrj$s^ literal 0 HcmV?d00001 diff --git a/data/images/orient_8.webp b/data/images/orient_8.webp new file mode 100644 index 0000000000000000000000000000000000000000..df20d6f52e87008fc4e10242852620f0d32e06f9 GIT binary patch literal 5204 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 O00008000000002ODHWIi literal 0 HcmV?d00001