From 2aa985a34c95206f51f634d1b68de766adfa842d Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Wed, 8 Nov 2023 17:56:29 +0000 Subject: [PATCH] fpexif: Fix usage with Delphi 7. Update readme.txt. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9016 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../console_demo/console_demo.dpr | 1 + .../console_demo/console_demo.dproj | 780 ++++++++---------- .../metadata_viewer/MetadataViewer.dpr | 2 +- .../metadata_viewer/MetadataViewer.dproj | 2 +- .../metadata_viewer/mdvmain.dfm | 68 +- .../metadata_viewer/mdvmain.pas | 17 +- .../simple_demo/ExifSimpleDemo.dproj | 12 +- .../simple_demo/ExifSimpleDemo.res | Bin 1656 -> 112356 bytes .../delphi examples/simple_demo/sdmain.dfm | 2 - .../delphi examples/simple_demo/sdmain.pas | 2 + components/fpexif/fpeexifdata.pas | 2 +- components/fpexif/fpeexifreadwrite.pas | 11 +- components/fpexif/fpemakernoteminolta.pas | 2 +- components/fpexif/fpemakernoteolympus.pas | 2 +- components/fpexif/fpeutils.pas | 4 +- components/fpexif/fpexmpdata.pas | 40 +- components/fpexif/readme.txt | 7 +- .../fpexif/tests/multiread/MultiRead_D7.dof | 5 +- .../fpexif/tests/multiread/MultiRead_Laz.lpi | 7 +- .../fpexif/tests/multiread/MultiRead_Laz.res | Bin 139092 -> 139100 bytes .../fpexif/tests/multiread/common/mrtmain.pas | 7 +- .../tests/readwrite/ReadWriteTest_D7.cfg | 8 +- .../tests/readwrite/ReadWriteTest_D7.dof | 13 +- .../tests/readwrite/ReadWriteTest_Laz.lpi | 14 +- .../tests/readwrite/ReadWriteTest_Laz.res | Bin 1820 -> 1825 bytes 25 files changed, 474 insertions(+), 534 deletions(-) diff --git a/components/fpexif/delphi examples/console_demo/console_demo.dpr b/components/fpexif/delphi examples/console_demo/console_demo.dpr index 3a41c835f..f44c634b6 100644 --- a/components/fpexif/delphi examples/console_demo/console_demo.dpr +++ b/components/fpexif/delphi examples/console_demo/console_demo.dpr @@ -23,6 +23,7 @@ const {$ENDIF} begin + WriteLn('Analyzing file "', ExpandFileName(FILENAME), '"...'); try imgInfo := TImgInfo.Create; try diff --git a/components/fpexif/delphi examples/console_demo/console_demo.dproj b/components/fpexif/delphi examples/console_demo/console_demo.dproj index a16d10e31..21c551530 100644 --- a/components/fpexif/delphi examples/console_demo/console_demo.dproj +++ b/components/fpexif/delphi examples/console_demo/console_demo.dproj @@ -1,7 +1,7 @@  {FAF25CF3-1AD3-4E91-AAE4-53A637D73E44} - 18.8 + 19.5 None console_demo.dpr True @@ -13,16 +13,6 @@ true - - true - Base - true - - - true - Base - true - true Base @@ -68,42 +58,6 @@ ..\..;$(DCC_UnitSearchPath) dExifNoJpeg;$(DCC_Define) - - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;$(DCC_UsePackage) - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png - android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services-ads-7.0.0.dex.jar;google-play-services-analytics-7.0.0.dex.jar;google-play-services-base-7.0.0.dex.jar;google-play-services-gcm-7.0.0.dex.jar;google-play-services-identity-7.0.0.dex.jar;google-play-services-maps-7.0.0.dex.jar;google-play-services-panorama-7.0.0.dex.jar;google-play-services-plus-7.0.0.dex.jar;google-play-services-wallet-7.0.0.dex.jar - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png - - - package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= - Debug - true - Base - true - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;$(DCC_UsePackage);$(DCC_UsePackage) - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png - android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services-ads-7.0.0.dex.jar;google-play-services-analytics-7.0.0.dex.jar;google-play-services-base-7.0.0.dex.jar;google-play-services-gcm-7.0.0.dex.jar;google-play-services-identity-7.0.0.dex.jar;google-play-services-maps-7.0.0.dex.jar;google-play-services-panorama-7.0.0.dex.jar;google-play-services-plus-7.0.0.dex.jar;google-play-services-wallet-7.0.0.dex.jar - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;svnui;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;vcltouch;vcldb;bindcompfmx;svn;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;vclwinx;vclib;rtl;Tee;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;TeeUI;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) @@ -151,10 +105,6 @@ MainSource - - Cfg_2 - Base - Base @@ -162,6 +112,10 @@ Cfg_1 Base + + Cfg_2 + Base + Delphi.Personality.12 @@ -176,17 +130,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - true - - - - - true - - + true @@ -197,17 +141,14 @@ true - + + true - - - console_demo.exe - true - - + + 1 @@ -220,14 +161,14 @@ 0 - + classes - 1 + 64 classes - 1 + 64 @@ -348,6 +289,16 @@ 1 + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + res\drawable-ldpi @@ -511,6 +462,11 @@ 1 .framework + + Contents\MacOS + 1 + .framework + 0 @@ -524,7 +480,7 @@ 1 .dylib - + 1 .dylib @@ -538,6 +494,11 @@ 1 .dylib + + Contents\MacOS + 1 + .dylib + 0 .dll;.bpl @@ -552,7 +513,7 @@ 1 .dylib - + 1 .dylib @@ -566,6 +527,11 @@ 1 .dylib + + Contents\MacOS + 1 + .dylib + 0 .bpl @@ -584,7 +550,7 @@ 0 - + 0 @@ -595,316 +561,12 @@ Contents\Resources\StartUp\ 0 - + + Contents\Resources\StartUp\ 0 - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 + + 0 @@ -915,61 +577,15 @@ 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + @@ -980,6 +596,10 @@ ..\ 1 + + ..\ + 1 + @@ -990,6 +610,10 @@ Contents 1 + + Contents + 1 + @@ -1000,6 +624,10 @@ Contents\Resources 1 + + Contents\Resources + 1 + @@ -1016,7 +644,7 @@ 1 - + 1 @@ -1030,6 +658,10 @@ Contents\MacOS 1 + + Contents\MacOS + 1 + 0 @@ -1048,6 +680,66 @@ 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + Assets @@ -1068,20 +760,220 @@ 1 - - - - - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + - - + + + + + + + + + + - False - False True True diff --git a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr index 7272039d9..facd45f2c 100644 --- a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr +++ b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr @@ -2,7 +2,7 @@ program MetadataViewer; uses Forms, - mdvMain in 'mdvMain.pas' {Form1}; + mdvmain in 'mdvmain.pas' {Form1}; {$R *.res} diff --git a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj index 88970633f..091f066bd 100644 --- a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj +++ b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj @@ -134,7 +134,7 @@ MainSource - +
Form1
diff --git a/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm b/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm index be7c4ce5b..f451ae9ef 100644 --- a/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm +++ b/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm @@ -2,8 +2,8 @@ object MainForm: TMainForm Left = 430 Top = 141 Caption = 'Metadata viewer' - ClientHeight = 714 - ClientWidth = 926 + ClientHeight = 715 + ClientWidth = 930 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -18,13 +18,13 @@ object MainForm: TMainForm Left = 274 Top = 0 Width = 5 - Height = 691 + Height = 692 end object ShellPanel: TPanel Left = 0 Top = 0 Width = 274 - Height = 691 + Height = 692 Align = alLeft BevelOuter = bvNone TabOrder = 0 @@ -38,7 +38,7 @@ object MainForm: TMainForm end object PreviewImage: TImage Left = 0 - Top = 547 + Top = 548 Width = 274 Height = 144 Hint = 'Thumbnail image embedded in the image file' @@ -92,7 +92,7 @@ object MainForm: TMainForm Left = 0 Top = 293 Width = 274 - Height = 241 + Height = 242 Hint = 'Select the image for which you want to see the metadata' Align = alClient Mask = '*.jpg;*.jpeg;*.jpe;*.tiff;*.tif' @@ -102,7 +102,7 @@ object MainForm: TMainForm end object Panel4: TPanel Left = 0 - Top = 534 + Top = 535 Width = 274 Height = 13 Align = alBottom @@ -141,15 +141,15 @@ object MainForm: TMainForm object Panel2: TPanel Left = 279 Top = 0 - Width = 647 - Height = 691 + Width = 651 + Height = 692 Align = alClient BevelOuter = bvNone TabOrder = 2 object Splitter3: TSplitter Left = 0 - Top = 571 - Width = 647 + Top = 572 + Width = 651 Height = 5 Cursor = crVSplit Align = alBottom @@ -157,7 +157,7 @@ object MainForm: TMainForm object Panel3: TPanel Left = 0 Top = 0 - Width = 647 + Width = 651 Height = 21 Align = alTop AutoSize = True @@ -174,22 +174,22 @@ object MainForm: TMainForm ParentColor = False end end - object PageControl1: TPageControl + object PageControl: TPageControl Left = 0 Top = 21 - Width = 647 - Height = 550 + Width = 651 + Height = 551 ActivePage = PgXMP Align = alClient TabOrder = 1 - OnChange = PageControl1Change + OnChange = PageControlChange object PgMetadata: TTabSheet Caption = 'Meta data' object TagListView: TListView Left = 0 Top = 0 - Width = 639 - Height = 503 + Width = 643 + Height = 504 Align = alClient Columns = < item @@ -219,8 +219,8 @@ object MainForm: TMainForm end object Panel1: TPanel Left = 0 - Top = 503 - Width = 639 + Top = 504 + Width = 643 Height = 19 Align = alBottom AutoSize = True @@ -245,7 +245,7 @@ object MainForm: TMainForm object Splitter4: TSplitter Left = 0 Top = 150 - Width = 639 + Width = 643 Height = 3 Cursor = crVSplit Align = alTop @@ -253,7 +253,7 @@ object MainForm: TMainForm object XMPListView: TListView Left = 0 Top = 0 - Width = 639 + Width = 643 Height = 150 Align = alTop Columns = < @@ -271,8 +271,8 @@ object MainForm: TMainForm object XMPSynEdit: TMemo Left = 0 Top = 153 - Width = 639 - Height = 335 + Width = 643 + Height = 336 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -284,8 +284,8 @@ object MainForm: TMainForm end object Panel6: TPanel Left = 0 - Top = 488 - Width = 639 + Top = 489 + Width = 643 Height = 34 Align = alBottom BevelOuter = bvNone @@ -325,8 +325,8 @@ object MainForm: TMainForm object Image: TImage Left = 0 Top = 0 - Width = 639 - Height = 522 + Width = 643 + Height = 523 Align = alClient Center = True Proportional = True @@ -336,16 +336,16 @@ object MainForm: TMainForm end object Messages: TMemo Left = 0 - Top = 576 - Width = 647 + Top = 577 + Width = 651 Height = 90 Align = alBottom TabOrder = 2 end object DateTimePanel: TPanel Left = 0 - Top = 666 - Width = 647 + Top = 667 + Width = 651 Height = 25 Align = alBottom AutoSize = True @@ -382,8 +382,8 @@ object MainForm: TMainForm end object StatusBar1: TStatusBar Left = 0 - Top = 691 - Width = 926 + Top = 692 + Width = 930 Height = 23 Panels = < item diff --git a/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas b/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas index 9d99c16fe..02c9b6d99 100644 --- a/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas +++ b/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas @@ -25,7 +25,7 @@ type Label1: TLabel; LblChangeDate: TLabel; Messages: TMemo; - PageControl1: TPageControl; + PageControl: TPageControl; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; @@ -56,7 +56,7 @@ type procedure CbShowTagIDsChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); - procedure PageControl1Change(Sender: TObject); + procedure PageControlChange(Sender: TObject); (* procedure ShellListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); @@ -443,7 +443,7 @@ begin end; end; - if PageControl1.ActivePage = PgImage then begin + if PageControl.ActivePage = PgImage then begin crs := Screen.Cursor; try Screen.Cursor := crHourglass; @@ -471,7 +471,6 @@ var i, W, H, L, T: Integer; rct: TRect; s: String; - b: Boolean; begin ini := TIniFile.Create(CalcIniName); try @@ -489,7 +488,7 @@ begin SetBounds(L, T, W, H); s := ini.ReadString('MainForm', 'Path', ''); - if s <> '' then begin + if (s <> '') and FileExists(s) then begin ShellTreeView.Directory := s; ShellListView.Directory := s; end; @@ -500,6 +499,8 @@ begin h := ini.ReadInteger('MainForm', 'TreeHeight', 0); if h <> 0 then ShellTreeView.Height := h; + PageControl.ActivePageIndex := ini.ReadInteger('MainForm', 'ActivePageIndex', 0); + for i:=0 to TagListView.Columns.Count-1 do begin w := ini.ReadInteger('TagList', 'ColWidth'+IntToStr(i), 0); if w <> 0 then @@ -529,7 +530,7 @@ begin end; end; -procedure TMainForm.PageControl1Change(Sender: TObject); +procedure TMainForm.PageControlChange(Sender: TObject); var crs: TCursor; begin @@ -566,6 +567,7 @@ begin ini.WriteString('MainForm', 'Path', ShellTreeView.Directory); ini.WriteInteger('MainForm', 'LeftPanelWidth', ShellPanel.Width); ini.WriteInteger('MainForm', 'TreeHeight', ShellTreeView.Height); + ini.WriteInteger('MainForm', 'ActivePageIndex', PageControl.ActivePageIndex); for i:=0 to TagListView.Columns.Count-1 do ini.WriteInteger('TagList', 'ColWidth'+IntToStr(i), TagListView.Columns[i].Width); @@ -656,7 +658,6 @@ const ); var lTag: TTag; - s: String; tagID: TTagIDRec; begin if Selected then begin @@ -679,8 +680,6 @@ begin end; procedure TMainForm.UpdateCaption; -var - fn: String; begin if FImgInfo <> nil then FileNameInfo.Caption := Format( diff --git a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj index c7f4a041d..8be51e133 100644 --- a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj +++ b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj @@ -7,7 +7,7 @@ 3 Application VCL - 18.8 + 19.5 Win32
@@ -128,13 +128,9 @@ MainSource - +
Form1
- - Cfg_2 - Base - Base @@ -142,6 +138,10 @@ Cfg_1 Base + + Cfg_2 + Base + Delphi.Personality.12 diff --git a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res index 42d28941c3a48713638a04e4447d900459f511fd..036ae02b010f9d6532f5e65cbd200dc14c3caa1a 100644 GIT binary patch literal 112356 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 #> zD)G^@p8*C%7i8u%fzbhH4P)0Ix~OuS2`dM33MINN#C4lRD&uQD-+$Y7$#XbE}VaQMRZ7&(?)8z3ARp1x;TLK6_(u&qofG z|5jNG-D|Y`vFWAKX4pec8K55e!JhXvMsGu-ulwsVhs99gKj#v7uv$7}+<(ynI2n>K zz^VM<`cfO!Da$m^13srPXKZ|$)t$0rIu0Gh!4xe3bmhxEG{L50f=zN!rKt-b%Er+UwXs3<7`cRdNmSZvmQ zv9^CLz7lP)!bxElGF8&yDd8-B8impT`895D74HEcsG0dVIA9ae9*B*C^rMycG2MO= zR?u#8{51=A|1T&qo2w7j;+Vw6Hy3WRg&;O$mF!f@!?bB5-5J`)P}S|bqxKR*#STsD zR%PV~T;0&-E)V|qWkrBWH9JNE1}sT}5Bwjy4u(#X+fH$#saTT|eg}X>2QFRfA9Ew{ z2C^5$4JuCK6#tp{p}3{yb>7ym(&<u|#DnqlbT$x~{Ccj{O*twV6SI2hSkrcQAtC&dW69lW`0`$v?zodTG zR|A1Qcva#QLmCeWj+q5XVjbeV8Oig{@xWUbM5kTZI69Ju04R1lx zJrnFRMms?djsgK6Rd>uQebUd(0XoM@wHtWk^e`+$iWMj z`w@!v)vo~i58jruw&b~$D!COXTj^c}g+VhNG&h4HXps@es3ZtBb^tKt(aRFv^Hm6XZ2BiE=bX z4l`mb#<2MJyfq_{OAfZ?rDq(PP7bQO_=4i0mtu8D%R3Eqok0xVXQmBPOUHpE6ilKv3(ntREu z0oXQ`VZf5dvs#}e_!rXeI04K0EI>9f0-CqMFi})psKomEK-;44+l;6d!{rh=Dco%Q zBV8j>C@`&~&3p=6frFOez34L(DHy#gmkjve*T!Io#N31`6@f^!U`?3WG1Y?jbYD}{ zus`KKBPF)aVom1|b|kPJL@fV!G+k-;;jBw>V#FsJT}BUE1@9Pu$oZY#WxkusN#)Qy z!xqX*g1^=Q4qV`n#>1MJ;PPBT+oWtHE`eL^%dJX3{%HM4Xtp#a#Z4BcG4iwBDavP- zK?qFxRp1w#s6XI0RxN@Xoz6|B!#1SsP7wq(bpo?xV>@CoZD>K0)BqwP!d5#X@4x$H zq;!l!<=*@$;aBW02zYZQLYL_S=!O_~$^)h(3Oe**@LMZQanxA3`bO3W%vpnD18xb~ z#QDTdmYYO@jv+uXg;k@G0Rtb+@OR8yOY~0HndEExK4%ATNZ(_|I(6vxW&s`ypus{A zqLOH|_G%G49$k3)RsaFMefvS0F#xChOG^a-98ocMe+co@W#8!y+Mnt4<$1Aa>uhEk zM-=Is;wuI{WGGQaM%R!>>H$PqGZYqIIQyWr`919~d_*~Oy?0tzf|{m0*Wc)|ni8vH zd~d9pL%u$A1N)jC2x^WO(!f^)m>usse%-VO89S;;=COhLlKe8JamS*Z47Ly+*flvF z$l&oK3I0Ve9g8_NcY*~K{()05?CWz0QuflvMTw1d2+dIY%#78R7HG|`lkEdKJwR4D z5-DyyEh0dUXtjq0!DW~xoD;3R!G^cb(Hk4~Pe94LZO6LmU|*F?-5GZ>j(9k|aTpQK zDq|38n(sd)emGj|fM`Oe4k(O`OgKhU)Gl;DIYDG;P>J$TmhAk5xE|2JqHGc}exB9) zd#W3t5KcWOelH5MSDFrX%>oM`M$9@Ub-8|?O)T8IN( z$}(wQiX<5y=eKRnPK*~~okZ69J0=r6k`TsRa_`zZq{Y~i6t zKty?~aeK6QIUoY@TEXGLPqJUe^KcLM+f$6cM)=8z`kdOlKPz$}oIL@BHXPOGY5-w4 z3$hheC~HB(-R4iBK?oif- z5nE+|nO!%ZaR6Z=t)+muhL#J||MvovBD;+pN3nkAde!eMMpHlnaCFVr#)W~^PVVeWnm;pTwlOCUK74jH=m2_fALG0~b9!??q2AE1fyaaFZX3Y? z9|mAc;$-}-{v+v=ugsTlyl|)$fnCzjSA;X;;&VRioNmjg&})m5q=aZFHwk6VX0&lL z$5`S!Y6F3NlhnOzwsxigqO*?iWOVr`4eZON@kz}XnFwI$+c%{wN%&M%*%W3fIx4?J z7}x9eIgyX~jNj2YdG5~r^r`<>E7_br8z-4q-1RX-YUvAlz^=+^0+?g{x&kOsuD(Wp z*I6Nkcqo~=-&5sm^&!OkLscm1cK*_k8ivefr>|bEV^EnTUL1hGj)rq|Vb{S91^ZJ% z9nV}wdzoYIBED_<5bh|_Pc`S$0&Sj`Rh|L7sZUBz4OqAfXt>|ZnnV0&B*}i0?heUD zJhiP}t?!prPkp@azc7hF?i?d=Ly*zM!$2bxYFM2wi<@=Ba+G=8VHTm zyL=lDuWM>T8q|yDM%&8ra8VeD?z<{Kl*?pggw5WO=`d0kypOMI!kyUYJ!9<|VeiM) zH)1&&xR5X=fR;O*<$BBKtl;gDai9A0s!g`FfKFK8(gUPli}1ytY0-0Nb^O zU}`46OGp+)|9KHY|2lR!xEh`fXJWxCR}%fr*}WMzP=+l)q&% zI+i;oaCaQ&l?TsX5+KjKmF=S`VtzeAgqAS2a8kKmc>U^=mW7GM1J3r~!a(r#NS@ey z8MMMO2^)IH#r?Z!B#-iyDpgDi=||-|N@<1OXHV|LF@+*}T+rMaAB=xFPFG{z$hS3E zJmV~Y06SYIalu>3M<>iTQ&Jc@{#a-D$gEN=b5p-rR{Uww_S*T^8Z3Cl zm&|2{+8Px=q^t|ND6S`e3M>LR7s)=v_Y?_NXNMmw87@aeZ{+0mIz&U zKQ#uve7=D<<6vedj;gzh=HA@g$kl!G|NF;&;+PF!_o*ZH7oy0>qypb7HvT_=AEBXo zgtl(%aw{LgfBEX#YA}k1b}ZIJ4yex(iz@|y9X<;eXj{#TnpwS*pgK7zD^MAQvN?oG6}Qyx0zF!(Mr*@gjHb!RH^oK)D z`^>d7CszdUNY7Nn3Ld~aUR(*u)W1Y47J80+7AHkl+qX3}do}|goipx4zL(`5>Z6kb z4TTp|@9gH^0;SRJ7(z!72i^s_8C)ZKXXLw~^XC%-SZz?l{$-RYp~RVY<()rl8apna z1)kQR63`5_ar>6BxM^n>pI-QTXn20WgSWug&icXrI0F|3HV+8c;6mdTZ*GodFTQ@c zozBulR&I-BlE&KJ{w4Jr?Tjel)+-^7aafTN!*S!9YT!fBal+i9o!fml72zd{^;15d zL~+xa{2_VBeSp~{Y!&lYys~nT4jq2 zzi$f>4dW23E}ZC13;>f+fwFMfJZ38YMW>!lT3rCWPfRGDDKH zg$Mr>KeluIUHVy{A|GGiX+4y-nXg)sj?~``>sYaAc553RsfajU4Weg5Wi^ex3wwyY z%ozNUhhIMypRCH`X*(!$2z))?Fcdu%W-V8;4v3yCnCsOCP`ubk!w+E?~UvJk(o$AULDQEdj-{zu)IbQxd^_ z^Ky>^HALb)h2^mQAH4m=M&~ckPZ@!5lvsDP$^+$Sv>%TmZGXF!c{^OPn*gP|8#}_> za~J5Q*l8mrpl0JR60*)HMXWB2cwPrV9x^+>0|x-OS(gR46agQ59*vN6Nzp91EJ>f< zJcWihopXnI)R7~8y>t3X;`2i+(8&ea$J-yqG@Mk!leYs*D%=!BJ2x*!BP9;Jf8ZVi zhu3hi@HF)B3F^B^%->$}eG!Vi{eFz3eK;6B9OvHr^$_4F&EdBDkVJ%JpqQLY9<5f} zNS`1EI8(u)v?p}6_Be7iqc!Z{BQln!4Bw>S_k7t(o&_{~wIXIlOSpFKDk(FMM=Ck2 zQO)W=XfMgo18+%CJQP3u_JyPp3zg`bPV^_ap2%}bm4gHO#Xt7zp+D?m+Y}fzg2GG` zlL3#qsz8|X1XBP9T%BtDN6WybjPrU3Q8N=X=KnI%ZAIlI`MRYf2HdF9R)hSB8~F*bWCBAwW|4R05w(m| z(;>AyTx4ih7yb9hY-gbh<|*&qe%}%$crU1ENl19(X5T26)B;A~aqt?7Sl`ye9N~N# z|Hc%(0UwU}5qMTT$?*ohEZPZp1u3VfO^Rie81Rq?rPm|TWdur#^+EuF<>r|E`;6zE zT|>j8NMc%0eiF?1=(b}@hVxI%)bf(hwkMO1h^n_Jo-`eoxA)wWl<>_=gcLyao;%W;x^>qDLcCOG?kpe{;I*YdH;@p@L`uDIUvhgrbm zO}WHp40^(&81I~CHTrE)A1R5Mfv82IhTb=iro4s{rnwg9#gS(Am^26%m%r6`)=ywL z;C1`oIt#rpL-J`9+jv#o3mx7G<$Y%R4uB9%7B-uxy4ExU-|15VV;r@*P8-T^6|Y!E z<$btp<$+J=bE2@9rh*>op!T~=WZ|M6PP$I#GoB7RJr=C}Du$=hKF=`w^VArM=MVHs zD8F~d!BF9imdW%2YpChPpsy}L(d_C54|IVqF_ZTB`cC-ORus~JvLs{=M#Cs&ew}-M zzq5FHSj9V>TmAmDm~$Jbst?+i%YtsbhwE7XBKjInT)dA&`Fb4^QA(@dd(#+@aCA0F zc>VBVK5A0_Q`0rzfbZyl-x?0tt)kL^yE~h}oAk4i<@Dg2*N+bbv^^S`=;D%8 zK0Q@@$}!Y#s0kU{=l$fk$;Fe%stTZ`?t)5gJH`FmV&~_je?oY5fZr~xTN%mTQp-@h zj#20wS>s@K<#nLx-n=*e)#D-o?-^f88K=xz>`C|Wm#c4Ig-p_p4ODS<^MrKb zv-@`MswgDJ^FMqhWRkbq^1RHsDtxnbt$n=@x%gyYDiprXc8_{6owDtl!$3{sn}%K+ z1j+Uc$IlyA1dvX!-w$f406`xj}F-X2#5xvg&MHa1K@e4f?BV)g4yqaXWPo3qw3tN zIIc6poddlaBDqORs4f}UOs}UfXF2wQUW80Cy&HaPr28;ojV|jI_~wUR?~bCyP>dNU z?BBoCzwvZ6zvzp*WJV7?KdxL9@~)U$Km*X@5XvTpnQzPWW-&>IS@5UiF_PYaTL&9<|d=ro4u3(ELBs_Gn*IX5>S>*DGY!GYL zP^Q9WTPYFIeG(fp6#EkZX<_Swa`q26@I8LIq`}c}gnq)BnNWo!mGajctQ@XNcnX%N zhxSvuMomZKz*}Y1Ztl255$YDzQ09@n?;^C{cUYli2(I=C&0dk5N#0j>;c8B#=hDsR z35K0Lf9_{y4&h$>wz7O0bFJG3D&kZ@XBS1D<-m~c@r8aHL^Pka>z&IN!JX?x*MJPT z`;DnzKl8_B%pV+QylodWf!OW6l=jSr%#><9n|g75Q}3ND2s;UGS+40%hk`^Z!-xlJ zlox0>p>}fmX($CUo<)fHbWjg10qa#XsO|abJ~A=Up0MAhXrUgna}tP-ZEa%>rmj)2 zMrBb)I$K>0`0iP~v-V(Qr>6>pSfjASy?6_M{k7m0*8s_OB&=&oDR^bJ&fqI3zEA>>wVYhEuUf#a+Y z+Hndp(mf0JewdE1;*ba<6%)gcr5PeJnvoT(D1$c<7*}jXWFK-C0Wg9MW_eie8XMLu z*@IV#hTo)b5#}YkJsd86&Z|KEiBDeOsOO0`t`Pc-dYRzS6i%cME2f zWvOTx`>mVz|FQ)FKA@=IBXU(W4JEx&zKPtKf0}jV`dFVwWOeoRDVPws^rRaH?2hc3 zf~s~_xklG@S=No<%r;(jD_=SgA);|yLHX(4Kh$aEgwIr>me}sc6S}G+kvV}vCgRmt z&*$aV*`qXF@#K)}sbyK9`*4!2hx!#uU~ogEmzC1s&ncV_`jLllmP?#9w%S1jzPk)8~c#@8dh$!w{b*~Fd31ukuWI^qoVCMnU!A<=t470> z1*ER#@G1ezM_}`a3qYj@`N{vn@_#>1muw1U(n2zBr>t({SKE=F$m_US6(%F-x z(o_+O#Al^>hm3A;?}3~*O@mEIBWvqcoZ3%d*%YZRk@kb?IpB`Gk&oWe%?Yh7568EU zt#qb1`72m>x=x_w*74u7-VvZ6Q7Vx=o_DlsxEku}Q!v)K*x zWvCfDx&V6G-hi6lBq4lTWAC0&6=Sayx&Qdh%j7c@4V(r4RQ7Im6yg}=B5pYEweivd z#Lpr{fS`c1uVMU)=C6n}yF8j2{qEH(Vl+i2)K(xAn-1uX+nGXAV5oLw+IR6h-`3Oy zV+YncG}=)4qVv|b(|!Iaio?1dRFHrr0)cLrt2cgZ{s0l{1|m*^soX|~=hF|*#-Eya zR%ar*d?#Yxkh}fhgNGKlRMHRdVn%;pf_SoMS?wvzbqq2}r3G z(IMGv7MsQ2e-5;eK8=-q_pt15w^8+LtLwvYZ7bA!SdXy_nJ0OT;X2uOqi znY%1_{G62mIY^J1Pc4jBc)Y`Lfnx8iw*-p^X-DVA7EmOL>WUIkr|xXY!T$+REqEZC zjxtt`Sbs_aYd-Z-OfG5?Kj5-^z(Ce0m5HEDu4(@698nVN@UUB7r zZ|ecKzAAN1J5NtFy1D^^KmUj_MdY*%D5fQlRZmZSX+er0k1w-taJ^7#u725~{+v{6pOK_m50enJbWuN-C zA=$od9TFjg1TLogH}s!Y^_-}B<-fl;Rh0@fvV{V6_(-j>$Q)9N`;PD2h{I9k6{kSx zTcT$v#?xt=6bwjQJ~hh4gWo3UI0K?Jxuaz)q)iv)564r52(jH&YV9jJsEP z^Fb|{R~DM$WY?Ab{sR0eolNHiBVHpe)m{3sP#MN*E{4_@kEG$w;m3Dl8ekw@cLZ``lsQ7@$@B=>{dgrDAFjgZ#&)_ zcst+Gr&D5la2X`&s|T_xgksDK$^b~yr4`y%G~g*7Eu?@tc$9*&l-R6BLeRdMPE0S- z6e>cyiX4TnmKjAd17OZd};>qcI;rDc2fO-VJQVto!4`B-Ph4IS^R+*QV|C z^EYM-*bGkxckaD_8|)7bUPPale6Z2aZ>KP);1QT!4j1V)-cRng}O1m##&|f$BnWw@4vT!Lxf%)klIEGi-GYfAFQkMkaC{XH7Q) zCm^t}uHT#(&!3uCJIC=Y#Qh7{^uC}p5rua+0_J^1)y0ilC}W9l@z#xq64HL}s(g2B z9m zCODX-3S}|!GiJ84H9F<_EVnTMY#3B1jorAt2Dd#H6JHk5!Ts!3I0{}oU;?)kwVb9! zhYda~*+|MlG6pi!HN;KPPLXLpzOR}R``)rr;5XeBUQLwXQ+*4EDA_+`w4zWNOadVR zG=JDVFs#Tf88zmnSv|~m&OE1XU3fjW%eVH#X8|-`6&Hp8X8G=xfQ2%HC|99=^avonw`BX z`fg^@n{(xE+XMpOgyruqGee4xu{&V5Uk%I3jT(4otR8c$DtgT48|vEKAdA#`sgGO> z2hsk*qExish1Qy1S(>+=cyG&o6!!}CS^1-DD>rgdrUCR@gj+*(JK=P|d38e(gF0FX z)ER0EoHZpmw0m=hQql;k@KlTBB7YMvlPF3%PUQBtA<))J;?>ZWLG&1zaHA3re3pLQ zgP3x9@0@s_Qt6oXhA$>tfY0BND$`2{F!0@m8^%}8>qy<0>+T^q?~L*?JKGFr$PsG& z_9=T3F8xR6#VAyKmH%9aJS(_7J^wsWRa?fkh#{@nxC;Vkg`zGKm{VZpbEZw}69oiVwHU8ERU(SwGn*BCWF#>FQ?}&DTXBbCZ!&Jd( z>cj>zF6=%@(dfAS!J;W>c%7g+Cw;ypAI4UHB;(S9G4G%npZF9$&vaD6U_a5Ce?V0u zkZwTJ1Wv_JjN}0ih!j6ug#qQ!mPXtL+N+=|r^XsObZPI$O7%xN#x$SBG{<&UGJ~GT z5TVgK3`v&W{(7OT`$C_PEi}dJ3nYitUhudv=iO8o9TGjK6XKYgt(nJmlv>Y?>)UVS zLDd;nxD6u5^D^!;?p@KJlaNA8`ZFrmbBBp zb!ohW0I-h@wBE_4J(a6(9w0a$vrPz0OYR<%;b(A&Tv*c%8XovSh*DGjXmF5X?t+7& zOB0D4(^DHXuM^Sx81v!o=VMzXv5_(~FKOXmD&thGs%iq#>Z=bRWNfE6%8Z?W@D7L1 zDoW+i6M^);+ErvoenoPo=U{{@q=+U6POCKyFPNnFT*IcscDo2g#Z>02t#oMfm)*@D zf4Gf!(lg4Wrd3LhDjkg$U;*yR<#Ik;aU&< z$!`D^?dpfBEgnvxH~i(A1|!6?stk03WE_c!huNbk4+hn9&imgsP5#tL_zrPN47~Xr zy1HKt2AzEWx?G)J*1#c9RE(!E9Tu&s$!&{VvzFZ|Ti@<=o;n5ea2DnVG{wQ8_RDVxIfzhYeha0u?x5*1kBS)cVwWApCe)vtUyd8@8{UbG> zE>qzQo>}|lSV$`InE!lg{>GO#$4elPEaO+rH^`Sfo3Iai!x*$ZpB+)4xpeV0gIQp& zm7jSdMzCcGN&WH(IP?N%{(N-%x^`NUeckCO`W$`uGIxjqK&2FMihG(@ZE{8tkC?mLtHlOU9T{DedyGMdh@A|5 zOz=Tf)m4?t$hEmv<>ZiQ7(%E?kdmkN@vnLEm5YKm(@3H5YxT^Yr44{Y{3!oeWL9lQ+BQL zsv`DtKbR{)&?9#g%^U-MF6AX?X=dkj^G+3R$JozeehNrDd>clFAIRwTVGF#-o!)h< zeR?vi371fqBomAY8^L&NHTS`oNR@Y8pX65sJ`LNdL(xePvn&W805VY>ohT(N zBNwMkCF`%e20&WVC|_Mm zXMfez!<4fAe|ft$;SB+5#vGu#xU60rNUduH;*QgzE?+cZXD}h?x z1(2Ze#aT_(s>&L0mK1(ys(YV<2Wty0SOH-yw@VS<9>v`Ub zUdRhx`Et&>_=#oi$8_6gKgYY@_Iq^O(-_1irLB}-Keu;s>s*1Uv{e6kyC;Gi76aZ^u{FX0*kExCkO(7(xjUC1!F9OVniRyIh(ff|9t=V@k1|r zDcdh!8RNPiE)9A;-uCmqz-Ta_-JL>!%{pzYNY|JChMEe41NV-V1&39_X5S*r0$t@g z_6)40l+szFERhK~`8;}jyd5XrBgm~~TavO$6a_Yf(CA}Y;qO6g1t^0tZe2?pU}q{Uz*czzVZ+DZAJ&qW1p_QC;L0nm;(z||3wZvI{0L{9 zeb(c#439Xy>(^h)?KggrnW%4hvx| zHxGM&<(l>sE#SUq=a(owm2)GZw!U6 zs*JIg02~rMKN%9K2i;ElhB*c9*qkxLuZ)L(c{1lYDFN_J_kH>37tg)?-RrQwlptJ| zwS8F5nZ|{+%$5b2xQW0HrLS9dH2}fb)V4l6D0odYDG(+eSE4thrMk^~^RSNvu5C}z z2KMG-N-URUorXIg6PN&mCL@Y8Fng`=JoC8Q6MDa`1nP*Q6ph3dz%qX=2CD)#5L_|i zOS9d*GZwH0QxuFbEcox~isqv27xBzzJ&XVT9na+%-}KFF*tGHS_{ond?Z5Xve*0&B z769=Yev?jpf?BOrrUMFOc6)>X|bD|ha-3-N@vrftiVc6r+#LFRH zCiOxc92Ri*Xz(wuJ9Pi9llko@B>(_sl>XD6F+ZoZZe5UOtkVfcjhh)T5|<)8Te?OO zcZ>!+rPcKzJgJzxnH?2;{koY)$l9y21*HyQRjxw-@uG}DW#N`#A7kOVjuQg=^PJMc z<*ha~DiFH^VNs=qx2p(2Z3zUMdL`unbn^l`&T%#O24f7ymXyX&g#Xt4&y7J_gE9s& zB^ZM(OA1>sq+|r-K$>+}vv~uX&fdm(mt4Y=uf3M1eZ$ka?DEU$cDs-FPkz*>$aCKG z;-BV$`|o4AyNUwK8kMj%3j0|c6St(EjS%kyW8F4V7KS)0U|Zs>hsp}jioSJ%w*dy? z_V!ZBMWX!}-s}EHt=_~br||m7T5cWn-+8jX|D*-LrMq|R{L;BsynjZiADB_D5yEE% zJ(rd$io!Z9pe>5M`Ixmj;oKy{c|K8+56%3504&v#bh6D=1Zahe@pquCgn&b2ZyWV7 zz*9R@bby0JPH8PywmP&$aIu0Q1pJ8_)q{&EU=Y~~$pf$=bS}M!R;NunN$C3Sy&?Oq zZ%PK%RqBn5^~Vik5pu0CX^NhiroC=0optM2yLAhj&pDed+qQAW*=MnS5gz*x(j zqXC~CEKmX+5ssAww+#D?v2>NHbN^A*xvJR$eqo#6@2+X3U;v^N9Ou6%h3Mx0)6Czb zFMRZ4y!qunPnu>Z?M(YsO0z~Kk!9(8_$j3$^LtVV)Xzelgau}O@58V+HB@^qFmpIp zW3;-&XI$pnJOG$^p#m=S_tkuS=Y9Ej*}|Wt=#=-gfw%UJD-*uD-K~aGw3JJbP(a_5 z94d1bjA6&HU)9(fYbD~)6Uy&=Qm#T6BOeyN#g4KGZ8lH+Vl?z zPt!_QU3HeD3NEr#xWT{}j+wewpv6t-&7|)76K^NwPZTr%B>Ts>L1+frjsU=$hrPGI z?Z^Y;Q(22s7650Yt^YVs=ASjVhJ)v)8Kw2@iAAb0+OuWBoGCd_7Th%&&{lp%K+NP4 znkP^Rf{eI_pceu`U_^|WR@ysm!xRev*gYQd>Ha)J3@uR%tl`$-fMc-`K$f-ymJk9f z#R51@51$V1+s`k3@Aq?X-#%Kt!;}D9bVe3&q{Z!pDW$50CV?CPx3oJ@xu>{M-X&Dl zL}ju^-dHf_>&G=M*8lafP@tFLtN!xw?z_grcc1EdobsMNf7i`+MkT-1HwFz{*X~x` zW`ZlAy;M3-=8UXicRu3&Jf|bd4+;qySXDwGse}MbPWPR(5JEX`N5Zc^*)E|Ga11ECdK?S+227uvpz0;!*Ckj$bk=P`&2(Y?U7j zD!`Y9y|=#Y$OET5z4l=#wfpkXhxQiZ&syNzG~>LiMd=aLP^TV368n5O?vBxbqkiH~ zKriDd!u4cf<%PgfbNuS#RW~1GSxcb6^-Q}zA8~zuzUpXfao4lI$myzjo}d#vYB44d zT!4qOSf^=4P;YLYSHIv#xZ%^+Gu4>^LU>QJ!MFR0sq05?I}KiEp-$3LO*=ypP+?)- z1RKCnXlb`-ls7ShFHa&)-+N@DGOTSmj5f`0r%!3I!gI&z;Q#3Nq1#&$JW#I#GwAd0>AQtAL05Be~9VMG~hIP zOB7qvEYiE~kw#dhbc68&V-vl%(cmN68o>JI?x!?KC!}}lB?D~i8)?Rz>?H}G>j6Yfe=O!8Fr?C|vUemkK$&s?C8j0LI>>>U~ zIRCqey2lMgn?hje$MHnq+7hVy-&v#*0tbtn>-+N@D2ghv=brJ1yT?N}Cs4%#WOL&(4_|`-0O+dZ*L$WcHSn}{ zmzD=O96~8{JTsQSgGJ5}Q!r;-!^n&R@`}0l=3~A*8lb)4iUmvz1fB)~pIEeT>=?iJ{XfXZ|LtEY&2K#;ZSh@m z15*ZV+!be9FJXhs5-I^Qynm3M*H`@t#$V;Ear`|PjY zIa+oRPC#GNo_^Av9bep6TkfNLLp(jBOUfLq4UzwT&R@R|NRd-8Gh*@H#Sj-ksW4Ax6SILXRM z1wKtDro#sg@QUyGUjFmLAF4Eepe;$tswmYrP$I%=9gv?`t5JmbDQ-n--ioFskCO0BE(YY&zAoB&U4b(z+a zR)DHH2al{_&v;CZ<*WIa-T8NjyqrlwpP!&rZ5R93B64Hw`{>ZvL7buZ>1_nek8salV5}*qG;VKkol;UVv zmeX4Q>Zz|zlfGsFaP^+s?wdE}ZDVWMpfyivxx$fPnzuyJ@yuj^o^{=X4RH5p$o?W{ zO6i6+ca{LvAdxCs5X|vN2-Mw$gC(FUpyha$z}Q-PrsT$9kK0EB1b4o^DYJ#PHn7Fi2Bd z*K-$xq$quD2G-@LDC%LeBFz(tu%x0<;(7~g@ngy6t@;11*uCS6CvkblrANfAoh{4X zzc(N40=T->VUur=7#KEmu}yGg!ADKW?tBR1ddD9&1=C7b?YQgkAdSdCBKRpjsxj4P zu@I1Dg+P$@C9aKi&u1&%>}v>86uGtBHtchtbVEu*`|{H+z{;jizvu6H%XdAW!TtML zGqtKp6}PzdT$_BRAJSylmWZ!e@h|#6OU3+aK+sOSQbz`2!4d{}j%;K(`0EmBezpnx zH7P+jBgt5$6tku{vRWsP$TZbQL;yT@?^k*)rC+sR3|$eP(VlX?du#=GA)v)c#6xAl zz2gyJxn8{ANffi>JY8gRp~ zPmZm^D|e2D+?S8(_?Yl%7hr{wg};COoA{#_y_o*|JZq<>nDUvP0<705n{^%TiMU%b$m!omzLU_b~g85^ro_UF(#0ju7lZ27Al<p6VbHNzc_1(Z`+`g)!*2eVqcLnXG$_$ z_n8t!DV9QDXbpw6>@CJ@h*d^Tf$Jmk8QF0wpLj|JU&{ipc7pLsb4@3@0atJhTb z-2hn26)l&bHdmHadU(uktCVi^`16OCW&WjvfQ8DngvI`QICtqgFX^THd+Jj77_$i9 zc}~`1v(g+hWzkmp=Qr=Xu{i$9oIE|Eq3sLrx#iyb^6~!~Tg!|np4oAoRofm-cWJ`f zgMv=#j;-Ooe9ZpRHShS+u*b++rbW^AI1e!Dc;xgiNkr41R^2AvQxpiZ#4;DF}?=NtFKCXmCndgu6 za-F7Aq`fs2ub{VApuWp`swShA$3# zj4aHE_QIns-%U>-1Tv2aOy&us6G9-Bx)iw*0^)^$@9Of!VUJzo5lV!GgAYB@%XOMg zf&Tf={(={O)3@@OfB!eS-BqYWSN$VL)-b|yd8^AAX+{xHck8C*22il86dQCh(Ue0L znf?_}7+D3AC_gL~2jP8niEnJyI}5-fzAf0~dz)#;+tU`Cv}VqfMk{&g89Q&9e?%5C zqDQ5`?N5&$Jp97d8|OMoeP>sM4N1z~`KX#77)B<8lZCEy*Gb3_e{U?h ztFok$obfcD3L=oE^tCjlvTfWts+(J1ODwV7|H4|1lm(_JnA)_FtG@5~kHiw4rci6D8J{;3-yIhlSZw;=h@0_&FTAk7osdDzi)Eq%5EUZlubhM9R-@OI^ zBM^?7NozqsBa9c62gL865DEg*KFVcqRf4wq{(9#HS7D1zxw6&4Sj#bM-gepU9e@5v zuPZ!C0s!F8jvl<>g{wDS+Yx=yS}%R~8D@H-M8IBw=<1SoatU^OM!JN;oP)MON5~{bd)BQn#l`X63u#@M80^<{*%mK znf)}iev_%20wChgZ=8ryQUit7U+c7Ju4%g-mJgZorj0uNv9}$0 z;86jf9@YAm2a5cq2h03G0X(_Y;o{8o5S;Su!#a^W(DMFx>3#4!M?(&mB?a)sVUMA; z%=pi=WU_=<8ty^x@hc3#1B2}f6IfhD7{Y$R-w#b243?2K^tEu?p55%abJgEI3RJLh8t-O&2Z2171{Xbub)IP?4qc-pg` z`3SDkX^QElPk)9ty!2=Jv)_I*M-CjI+nGWskJd{t>zyz^D{Zk>r-X5D;O<$8b(oWK z7}MEFR^dP;Fz|zAVwW*C+g)ycZ1M-jr^?Z!lAz zU*2kSc9JqMh935pFWG(T`xh?0PG;`9;ZX@fKk5~(*X+6NpC2glcZ89}|7~i zrY)wF@|~dTl-tmaXVy3?;2h8VArD|(l2onWLTY!z%#WBmFnD16$uJ?+r^BQ8Xp@3a z2_SRqR#@vSnhVkv=O?bm=Bz3I>5APu-T}vNNcy$XV^ZRNUe@}R*|PXdVJ#b!=Gjxz z$4qd(3Mf77?{zQ6k$1fkoWMx<%s z1u*Z7B;$-EMIn_NV57eQxK&W)p2XNuiulo8by%?S|D_iA72_Yr+^>W|3@A;!9v*1# z?;C3=Y;9oxyz}S0p=e??Z5bnA4S@;{VC@TP5JqCD%qS0+%$4+ zyW1ix7(>q*dZwgj41H_pn=<4*qk)c6T$*(_BS|TN%Uc~bD$QIp6(_fb+}6!M3TqkT zN-^{B+#f6a#MW{2zlh$O`^ZG$uR*Nq@_PTU#}!vx!G}KoIl5C*kJa*hT~S#SeDdEv z%zOUq&-nDef0*HT$W+=!YuzxlW6iooC4Oi})E!4^&`nqG7iL7UB}r*1#nvQab=2@P zAa3{OBj!rO7~?ARq-OY9J1=JbNo^m-b1i57;1 z%I)y6wXD+#Pib{X5eC-K$G-HE-M9Yhf(QNHe0cvOcLSE7$F$MyyJipE^Wrs|2C2xm z3vf=FF>6X5G6kK`o=Ku|38~Gx;NQ)bC8-kDtAqnZffiwdPW*c(mS1Rw35f(klq3*t zZbN9q=fK_I0+%495kCLf&v3!^?Ob}*m5=l?eO*yL9`pI@ujh|`=PkVP7k`=m`}cpx zfqnPWO53!O6crd>>PDFsmovXkCv4UkZ54)=JE|B?Vh`Lk^jPbyh~TqZYpVnxml)*m zf|e-y-s%eqCtw1~Ur(SWV@vd}RvK#J`iLHfio-+#0O>5wHJna}>V$71Q8FjST$x7~CzAO7G6`SANc zz@0mGFv8G5Go7_-4erU}fiQst%PN(yPA9abuGn;AWG75)>u#9_*6O6u+dquyGEzsA zQmLotD1p^VGc?BM2KeJZ?MzIX|4SqMlP*Gd9=2b=lnNXWS@;y?CuMCi|J}1?@sZ7G z_DkW~9}DJ($3Xx9Y)!M59V+tkH|peB8hCDZhWGc5F+z z{`}|jJMVlaKk&jIe-u}2<8~Mb4{0E=;_$RpYw%b@J#$-S{$;f1JKPAWb z79&pYPl;xoPMA`{%FPf zm!rq@%VOHQ{pv0AWpVvFtuIsv0}St5m}B0QC|ssg-;@CZwkvI{D>iM*2)+MRaV%2$T-#kQyT!UK88A)0-dkHP< z50*Jc%97l=ZhuOmYbCY?mcWQ6e;ZBnKfJzGC$yE~NLjK@CtR9l)pZ^<#i2~8Z#i$* zEq4Uwf2_1WJdOeYVAlmtzC1VP6YF%cQ3=c$!v}iD==(nE3&zm5E;0}cfw5=Quu;xT zQ?6=tU8qheF3H-Y2=m7g0!1VQ@=2i(9Si?MI&j~VEZCAGWl?F3(ij%XF;`x8IY0lJ z*YH2S?|W&r+mGMEKEgB{3^=rJKL_sK$*!AkX4j23bMNh6X7+*om|mY$D|TbqYfBPU zYx+qIS>r51f{W}-D_s?Zg-}_j_^d*55e@_H^)*UYgFBZL5;zAqbDTvSi+r7;AaR6!cBmXcaxohm^pRu6h#R z`TXbetmiz3i!Z;7)oa&2ehYjOWO37T=I7@*aPS}x?%&V7yZ5l?o?Yzx%3bW+vxm_G z53->*q+OJt6*|q(TBEe8dNJ-84mePbD+C^z3?g15ca&mUT#0VbxGGA;4pXM8lx(Rr zaa)ux?^P9(>tzIh!grMhQlE3ORi_A2Rptq>ugK~9L7ouR=1-{eM&@YacvAq_==~eC z6IAPU!WmIF;(;}GX!(&#ci;MV3m)`?$CmlSwLk83=lM_i-j?tWT~SJlFl$Qwr8mdG zk0D?1xdCyWz`$$wSO~1w2~TQwStZ(KR%I>LX-&@<=YK`kLzo-bVEQH8gCY_T^JU2~ zF962Yy8Z=W_@k|T+EFoL40Kh(wryu|>E)NP{lW{`wrLYxonWl3R$k$71)wTnt>@F* z>b$1Pbn{tn(QzAne>K|LHpg6BYca+!&U1Rb9t#T#%+AhoY;KOD$BuFM&>@Z-J<74U zIR-_Y>6id*TzG9$*5aJ3MK>hZ1pGu?+bWCYreU8sQxdn@a7j5rS83WxkrJ3TO1KF% z7$OY|ATYNEW>mto#|Hws9xMPQM45fH00?eCDnhChn{>jIPYDhadk>cdM@)eUIr{#3 z;#A$`SS1{dYYKvBX^F5=C!CXJY!FT1t&Wkk%v5zxrDXfe=?s#I<>PQoG9roiMhRv(k*MNy@-j zk0CULK(Gi-Bm@fUTACj&i;6+}rsQCewjiD$DO56;^F0c_{23;{GKnKMd zl>ja=B)A|2wnmPz(O>-W`hNixnmzeiEjVH!QNyGYx+JzO;~cF3{}%odnEFs*nipraJ4R6hRp3Vr> z3S(VXpyt5dr7Y^3v*n11Z*4=C4^|01bh;xH7giSsx z&kB_OM-MS*%C!pY1SkOTXe=*Nye5W zuU*-+ASp+kO!iGymhE z{b7X&fHxoB&-}&L$(s-F=UuZ0KJ!y+Hx(NBHU(r#aY35#U|BG43>{H5GAq%o4jWpi zG}=*9l4IGZQ*!IF2xq)TG5$l1Rrm4en8Cuf3ynoWT)EB^a~rFx6e5s&O*?T}mB0zw zcVt~nLPxp!bO^%1U0GL62s>zZ*|y~W~{0bZ7f4;IV)*la0y;%#Fzmf)Dies3mP|^bG1sGa15Ud*Fg;k z#^t&-kT_As8@;zG?DB%3BMK`%8X)5Chplr-8<~E``Cs4TdJ$Lagl$R67VX@+63eV9 z|M;psx4j%z4)enb5dhE>0)H}l;8QPNyJ@VEXKUPuu*E#UdM2-!T52H|K354oi7kNUDD0Zyo!is#Ewrb7 zqE1)o%5-jt^Tn^Kj4mSzqw{eAKo&Jj#DhX3s)l-}rf29KZ;#hxm|D(qt z+}N->!uR{fZ4bO!oB+wa;EDyn$qa&-Wd5#FY)w+mNm4YwY8pyNTRU>-J9t>1*f$4Tm16E=ka zi!1?0N~8)QPMYH2n5Hdp=OWcGSwk1%AXp5RkvFH;Xzc+jm-}Ag3R$L=b|97tV3uRN z<|JiRF<1?Z)!^D9lUwR>X-UPDQkm0PgSUYKrf_cB;y{@*wAP3B zJfr&WZi`~Z3zt;l$Ux2P;o77+R_7H+#PqR1k!sCj0Z@k<-J~a}EWuKsZ_J{EqZ3gq z0216Fk_*y|7S5`0KL5%x`(t|CLBORbltEs$d&eK#asE|3kpJBgC0NV1blljd8;5-- z1gw){%79Yh|GJuhD$~ze9x8M4kxL!kq*D$QIRj%kGfnAKslWL2&0ucV$WkQ$tji%E z8N=9mG(kYDr4(s&BvNQvVkuD$rMI?$yj$y-Ar+S=-cp+L(u`2+ZgIaY%(CxW!_b#M z2a~n>Pl#TaIbt{rHlhgDWoMUOWA?4#Xj!6gAuo-? zVq7aV7s2_a?hGI6&5`3e^=Mp2pLTG6A}glJ*bT#HQFUJYoW^5mye}r9j+WFwVBMf& z@h6t2$@gzg5-vy<=1Lp@Wz*|+j3W7 z?ekiqk`l|=Ny?Pce6`4{@D9Z0pj54!z-_D&7k@qGQ;pZ?gfT9=Z(6xwC1&zsB)Y}X z21{_7Y8b45@Yc#&n6wOn%h22dB2++BVJ&k$Utz6IXiIIPE*OIrH@jZ^d4d*=86{}L zaLo-ZCW1sguqtHSKQ}@Z+YbXQVyhrn6`^Nhow?_+5r3|>Z{{KdK-L{wn`n-hl2tx~ zucNdF<$`S#Yv^EUECwT&Gyf%6HZ;M&$vgw?t(}%~spKK~r$iW-dIy}y{FmsF1AP-t&)pY1>CjPA zyl0Kl>qpjdS=M4kDLy$^V2EqDpsZAzK&-b4u#7QPNNuhxx!VpIS;Kj03nQ*M#FjK= zMrp)=3lj=hQ!{O(*#+l5lvrlV!U+V=O(K2*F&F<3r zyao}MM16@*t7U%GlVO^rnhkJ1{rhoX9!LlvMxGHPYLO5p1Q4T+O+3p>G z11nea2U>9!K%ig=0Q~xfGiB?}n|A-gx~(7SS@WE(sC5OfR%^~qGaf7o`qm-p;YKTo zECGKE+$PVhrRUA)X{Bi^;aF*^{_^gfK6OKEWBXJZSD+<2iV8HFQ@BU<<2bEUq`sc& zd0WT7_xUE0A535y39U&EsavuKpi(drEPzmg>oEhb zZwXPT4QHvSz1c5K5-?z>yngd4~%Zo8AI=y1Uw>4IXR%h7VtTZc_W# z7C?v|Ky+Mc?H>}GQc<-9ATThdkfmg3T<9$cV;^|$b&N8@MfeX?W^VV?0cL|C^S2e>n&0jZb&9x$H ziDpKrs@SNj6sZcPyF?nPb_c*QN85L-9a|f9nH7)5H_d*DHYO6xcUlIBhhza~EDEQ4l5z=3xz^U(=_X80^-GA+Thb_~@~iW#k$ z@$I`-D|g*SoW@1mth<4A!nUdzkO1t(NPqN~X3Fnm&c9Tjk6nglPJj3t1Xq|K9RyvD zt1mej=C=sOS}x4mT-9o$5e}8bU71$jb*O_l-%ip>Vt!cR0ss~ZflWJa zJoeg++y3EDS)SKYaz(h&7o;tea_z%I^;e}O8aAC&H!*bhS+EA>ee4p;f-$6`=qMe3 ztX8HCK69vlD$=MZ3)(*jfm(1(YW`qvR9{m8Zx)x(G_JV6XtRC^8Q~mi{wCpG{f``6WmQi9^DbtuB|Qu7mGGW%uCwZTo$x?W zRLvsdf5yOTYz@Q~1B;GFu8a8G z1!{)wTZ4)6047O*!a9rd+V&LZ>Xg1Q95Lk|Z%(rpp0V?$V<%$%m8SjS#O}_Dq2*$z zUq1h;|Czv_u2On~!2wS5#_*Y8k9|e%7{#Xo_kAT{9Y%BDU@!yQ;s!^apS2tSXPrO0 z)}!ykiIU<_I8=C(IaC*ptea`jw@!P9f~C@iDX~8P-a>(?3wCUsyAV_O;ayQ&)#|b} zNy#gQwRHS-mp&{v^yShc|2s#xrYE7mX-r)PJ&wYIp$W>+y7kH})%=7o%b_JgODUfQ z>{`0Fq7m$2%2UhdLTpY_Huy2z0dy2`YdvR59xQTSt?8~QfTMM>Pjg~ZrQ0Lshe*Q% zNwlpi<|k?yuM{&9=1(|*e7FcJN_DOA`sdcAl|QA`VU1GEmgQiCedXo5cl_y6`*V_3 zBJ;x&NC3d{LSXmyCtuz#%fDQwlWT(pLEx6rfE}X&7U!eSm5wR<)-p6TgM>mGs4EK3 zOF{$(*0IxIA@jydElxU5S#Pxagi+KfTnxT#8N$fJcay zi>W?v;nmZJi{cMvl=`WbN60e~zFOpbe%NEq7_4=v!BtOzUy@j@Vt!96YrQwjNtOD!&5s`e!RN3 zVno=Y6FQ=pH>IDiU>cUspt24e{xS60cjy^Ey!TjHFlWlz0+4#fV#o{(6P?0wk8>=1S`O?c&Z!__h3Heh$*XUDXn9=My4WE?%Yz$Uo{ko-7b7C0d*Zi z=G~9bj8ltnv@Cp5S4=|TBTH9iZd}*M8fMG#eQT2RW!rY%^x$MI|5CJ489&eyP5{91 z6Dw{%|EizJkl$OS)LM(nvg=vH7l#A(rgWZZlSA;l-u9-U0~jL?i^3vIcT%IVa6{R(FOOr7PiOfc09l zM!7~PuBW2$5s#9Qu?!;3@2sJcq3@T_^MYfpEI3jYwe}Z9N<3E0VF4kdZ&C<^_hdMM zupxE@tot<t2+JEfzMs#c8f1Wy#(mXM;{yt##GlV!;cWRa)0KcmfQp zcBWn2EF|<1==-o(5_1xT zNU&z|fcD4CU)MXtrMy&m10i=I!9^}Yg}#WeV9LhtFDy(c&68RkuE^SG;Gwd(B@y)l zm+ap0_we<@{O|;|00JE^(c<7m*XRSq_%$6-zcDSkWwE3p%o)QMhkd?Ui~-ka=ve8j zfnfxQh5x}2PsQ~eyfAIEMkVC_d>tQwh#Pm**nso(m+mzfx(zoifuMatCm`oi)R}{U z!s9S>^_krnF3Q?f_|B!^3Y)#~eBCu8!*d+;RR z`nb{)S^&U_v#svF;7Ly(8}o;2b#k3Uk)7nfYdqrC(SW{nMLkE$(t&6GdE5*%FqPoq z?%T6AXD3;uH9{M+!nY64ZPV`$;NWt-218L!j0uFl0S^eBeU=geA#L}%&J<5+cN^MV z3vAXY3cR3m4ORo_*7umeAh-%%NX(Zd4;EtvKIy12Nm=TMK=YUr3T;ueRZ{?j0j(Rg z%M1h>i2saEI98S%Ds%eAc;Oq$bt7h%C=AHroB_8kwjmUP8#AR762E9pC>D(UHEhu- zmt-wAcz5cEDeu-Izi{zAw|?k&`|Nmo?}Yubm3{55TnS5GU| z4%omkW4LKF;J$oBiR=46TbA_vVA8@@$OUGNv4Jy^jEjBeo5F@pKF)uv1V9V~M$rN% z1cH#E78JH_`xS&hFv(*fF}b?}x<0ms%UT_t(Vce9Ic(kcZ=-fS^_*7o7>KD+|4`Z2 z^V)yG7!DR=W_@;L3;>2{$}Lf})Z{pJj|)WaNu@3(npTSSI;o0Kg83bKJRB%;7X12~ z=$D2Fz+}hay2N=>``4w*sR$jdX%UjZV74q6S(jjSQI>J07n1X)v*VXG0-DLma4RP2)u6h_9uVfkSX4>TJ*C8VOkX5(wSm+l5*>4P}Qf; zmX1*d2E=Osfh>i!>Aa)r-PC%HB9R5~r!4kjIT9?_lUMD8Ra4b3#Mewl+2Ze1sjI0*a`!fGX=9{$^H2Vs?eSf?-8c$sLBNhZa_#HN-K<@ zek~;9bd_RlRdiJYaMQ}A2+tNplo-@x{&)x{LgSeAXN!}ELPC;=3+ritvy+T%+VzL@ zW!Oi@*tcv-(zkEA`^Mp^`1v z@sJ0KoS`wy8aD;V`K5K%Ud*5tS5TAh4ubx=x|fm(5Qpz9OW{?A;uo!4!{8% zbgjOZ2L}TqjIHaR_^nf`I5%z8GY4>)gX?rsCH%~l9vATLK+op^95W?f%|{Har5(lg zgCJ;o28-Q-AOHgJ7qEgbAXEF#uh9u(*j_H(WwZ6J=>pr?ZBAV zO^JG5+ncf$xHlhj`*_H#ap?F%Mb4}#8Cp}t=bc4hJR>@D^h}*{S*yb;rOCai8?1pk z6}Qe6sI-5C7u4Y3VvQf;0znAG;9wjo%&lXdXLP5ztkrfEdEk5Y3+r^s*cfI_!7&el z1|V?W7>4_egKxkQhJMUwO(${#3|?TMm@RX9QC46umfue#A7hd;u`yoOLhH! z&7l<@ATAv`Fn?&Po{F$eCtQ$b%!tBzp*nBOUBH_+Ch1>qxcf%q&Heb)Cq-Wm%nx73 z0su}P#0fX^;6>M@M~dRdz`klq)TJ$7$u?&UU&%-8$;b4J8xMA{D3~)v6|Rbz(ScW% zO-agSS%(eU6&8uOIdulAUVgdn09=I+BmY01R~X|0P6+t&UFyW0A`(h5FlKPyby=&! zH+H6~%E2Ho*6AM^ho1ld3NJ}SK~w~+<*@hr=X@k!&RahBjE8{hr=LhO0uWmPv8f*z zJ>>ESd>~)}9qrPpu?}PnRe6~xjumbWgj=&1;RjdCSc81VOEm4njV<3~^sF@F43&@w zjEtpc%dZ-E$6B5K*_NF*&inmw%343(FJBMzbu9qk;e~JxTzJjY|KHxV^~QBo;cxA| z&pC7RC2ry*O&Yb1<8p6Ow<>BS5R_YmqEyqG;yv(#*Xiov1iWNdoLdL-skL@G->0wJjAnJJhD9FIdf)xdtJWutrerc4e*az zBtB8|Bf+cI;Jv(yn>xpqwb-x*3%bCDF(q*&F4Sp%@;{SgIF;5=_cH|{Pc4|y?V}6d z+dAy!3&b?xc!IEO7g~-;G*vgkz*XNT(hQ%g50#2Sp@uOk6$IRtqm?KnShX5gyB)Nx zLFQ-Z)6nJ~hwu|p1XovZ zn|O|?1WjMr-?ZkI1%5m#)z6>2dVbk|CrZ-i!+xJ0C+7$D0RRBIZ|BUPnr^IG{Vg#6 zutDOvpbfC%f#9}hu5B2X8mvD62!@2jR9eG{QuWsXK`7XTh#>9=^nw6-x&-gX9_+6T z1d>g-cnh}&@2E=fYIE2vNGVeScFR3LSn_iKtHxlR4Q}LJ%31xk^gs6YwXrj|M{9F|G@kdm@8)|6c%spf?bu1O8|Y7jM`tIUN%UUu%tE z#BVDOAkgw4uxtt}c@UV>1+L~hAXF{A%nt*_MZj8=0;J?3fSv`Os77|{(hcPVc@l=3 zfR>!VlCZ}@xvNRA(W7alj; zHvj8r&NV^lA?D3teb-GZ0N7@W#*qj7r%P3DkW)zoa$p z8aJ>1ukNandof;x)veI$C-}+dV2Uo&3y%66xZ|r;ZA}CiC!)tMwH+hC{VOW z(L#Zc1Syb&BtUSdNYMtD;_hBFxVr~$X`vK%-S_`|W^*A1q4xX!(;j=bxBGTx-uTRW zSHyCCOck#;KYUyJ#1h-CKP?-2BDY~$!(TSndbGZlpNF%j|Hg|`?0%1QKXsz|f;VU8 z6!nk0{;*Zo8v~zS4|<#3Fz9|J%PTX=KV4(jX-DnYQq!GXrd64Jjk+o0Rumt6k(yIt>QTA!LctVYQq>5iPg(Qf>&8@*R|E`GjFri|a7D3Wzf zud6SY)?1vjaN{E$Ri5u?^kl@@;SUPtYUJ^SW4-RHtU75!Z+D-%rd{!`7L@3-pv(_3 zwM-F*tZLL~Q@P;gSv?*7iU;F2+`0mT*zm+;#@mY_K zRnDx-bYQ{m%1cf@YdNyyaOjgpS>{#C>pCH4 zy`}TpkM7xQ-G-pS>zh?-;Tvi-tkLZ63hu9I*i$WYnL=GUtqILp>}G);buL&}xWC6T z8-56Qr0v6~xYgl<%iVnDQ@G#aVPP>@h6LOjQLS-4%VB-i2ky$#?V?wY!q3~fe4#y` z={;~)?x&eDU;8fW>&uJU`)sqhx<@-x@#2lM%5vkXbcTyqaAt9MvB9vi-mHErgYGv^ zH)F+*(K{T6v@JdK`qt_}tvUhb918*d#b+&kD11B*G}W&j?h{9kXqj%6P0i@v-UnEA z%f9q@K#^Y7w$tBVKl*3-)?uS>tgiEDD}Hp$rBfSI-6LnpmhL#Z<)$_Z&+H%M?&~?< z=hcV~l{;2DX4RnhxY=>Go&mEaKdc%sW?9C1S%+FTSmJ1T*Vt<1{Rx@0DHC43A0DGh zM}_P+Sd_ni^|$+{U;OxMmdh^(D{idH~*04~|UmNzw^5c?G0fY8rZrfn6bAh@8du%Nil5t$ahqGeG1z6VK z_|`J|wev~m-BaopYMTA~zTOs_hwocdwp^y@>Un3@9)5hokZsX-4%b<7{`CORIrg=~ z>C6VpOZNA=ZoU2beVa!=9rCZ&?c$CJ>-shx*sA7;g?F8UYu);C%+h)X%vp=;hL^35Il`?YUp$!vJE<3$6*KowGNT6mA|%3dw@d-GiV+&8_8 zsPb%3#;@8{9Ua>~OUqN<`7`7Qzcjt|8tZZ`H@vyh>tV&$U0dhOZ#xwc8D^&sxDeMeL#gbK>Qs5QG5z+d`JX(wxy=9mqp5uYq8%>BK7JXS*%0n1J7iCwb@`-Z^X0_7C%qSGAw<-<;WM8&(F>A=cs<6 z%@+q|zE~#o>l)=9i{#FlEnQ621s7x5yR|x6?&71ft&gm<2?!rkVe0(F)xPfIS9{g1 zvZYtw?eJ(uI`0gx+E@Q&kn@(a`F}YNWjgbf3a#*VZgh=$wxyN*C4-@2?2D{fE8eT$ zaA)ZX1r{z`H)g|^xuWN;F5ftI)`ZzLGnL(SV~_iYQ`QYCI93_kEOW2z&iOOEeVJ=- znD4Fk*@mv(`O7auOP617do|$4`@bLUlz#orGd;h>dSPj()?xBu9dGcP?* zt+$51(vDo(kjr-G1x!%?_1j~nd^4?A<@}w$R9m)}>9^>Pec>PPMt?DUk73M)8urU` zbe->5wYFiN`-nL)ZutUS0+txFrpub{!VjAUY-n>NXQ$YqnaXC0oVBh?i#FX3#2xFh zvB%}}p3V2SELeW$@=@i2Jet318x%aprNi^t?XTb8*R9gg+rF#6T&L2l4c$IzxP^Nq z1O94O`>N{7Ds2Ygty>lLl^P66Wxy*7-Wd#*mf14O8~o#jR{&lE@Jc6F;tlTkzxs2r zU7OC?dT}~e+jT|{`@PLQjVDHU8jr4Wv-|lpUU%K?cfRs5U3>5AbnCr`!>(8E_B-wt zH6A_VX*|Bh%kk96q7H{z6m{5V@^ILb4)4?9ez;-(fBt!!;sic-yY1;*Y*uA(wcAt? zaF2Jh+j7NJXsTu`I8Heh8m}A*e6MWsMXG|9L8^d73sopjJDi`WOob;Y6OM)Rc2;&) z{czn#%*cz|4z-72H7W_fk=I;r7J18rQZ&bcq^;F)RHB_FQ)s#cQk;=&$ zTL@VOs=T>sKW1iCm|&s9!^rz=<6mCDn2=(?xl$v&WgRZ)in>AW1zrt>jf z`Jd9j-ELc6Z^v`Piy99;A+A;y%~bx}Un{%(eKEH`DtoIT$~s>J@N0wf4S{z}WtpQg zjQR87N z$Q0;s=Kq`q9`<`Ocp8s&0`B)sg{BC8d2`jl{IwUn9l`T>hvvZdE6jNn zWs$vt$h}kH8Op_GiO5DF%V3o&TPc+_lLL+=aczCM&)#Z~Dq_6=_%Ft|L-86EFH2*D z7n~t8uC~iWE-?Q`AP*kYj^u~`QcFS)e+%Aw#yO#^a?UBcoKMQBS=OoJCd1%s!jfQM%bKE$2hXUl9-Su)uI|Kc+L)_KD))-=#)DaIQM8g~ftepeQ6)1?)# z+tAHDgx{&h$nP$YPnmb%Rv5BQ{Pft$hfQRa-q9!*Q0=Y1K?XmWzFmadA1k)^5m=y zJifs_z&XbkDktcYJ&T9nohd^Bl_7mDl|Efo@IZdym%@1?1^3*L7t)A4W(8k?GGUvq zhv-G}2Ym`xz~ln`K$)Vv=&$L}jhmIX>GBrnf`3E`%P-j?6r8URI_IJq*eAFA+V zz(ih{p}dU86nukq&(X51&%~`wdqfZsoxvj>1EhIjZB?&GDSpq6_WeXB4qnsNC%~3m@qI zrS2b?ga*@uH;X##0UyLo{Hu8LdJl*F-$33q`XcmIsPD*Y4PjTP-_wPZ=J*wuHZ6PndA`4dVBj`ht2i)zqfClr0|7de`n=oE{1t-V@eG3=J zr-ywk{e-rEg$8bRo1LKNpV02mc2oYSk9D4(0v$x$!*IU2%9EoS~>czk%vU$9VPXwd&n#lFE~- zuCjq|Wes~+7;umm>&IInT$s+H>ojhL-Gz!AF%OGFJ z)E8y;{F`Wga;#IQE-44QYM?YASoJfBdu+M=kOip;Y*{uhxdq$*&Kk_xX5x+lV{AQa! z8rN+?{4r0)qu)XMZuaHr=edD4UXI5FciM$={y(LO;`OVq)#;Ou)v4om)XC#F)rIpn z)Po0)l%{EE-kaJ5d-tADc`Xn#LsqE=jL0QW2Qp?vPDyM5;}X(?@e1kTW4ihTG)Tb% z9u5b>O^|Wg7dQCP#EE>wIF5Wy8_4*L^6zf{v*7MwzYW(d5uIDgcT{R1COH?};*4@C zG#7qMZ`hS)udlHCEB?{guDTla?w=_?YxfnKz>R6L;!s=A8I4 zQ73{9)L}lRi}?OvbaEbmpKzXX&s+@c9Bl|~0Aq35K;q6gguKpq_pskCHj#9-v+Aq- zy?UexcI#%FaczI`mn^dfz^=QiEEx;K2hJfeP!{-o#r>M9b!!f#IhOeX@=pD)BEbV~ z0PhgU{8ClaVXw@I*h8_2qyz23RN%e?@Snd59!Q9jiyDsdCU2Im0zNFot4y6vDZDZb|fJH0Oh2F#+dPTQ~GvfK9gYZXDxB7`eO7(ry zhGQT{wGk(jkbDngUdDbI(&q#p*htK%^VrXr!#%3B-!OIk`fsU@mHcGi-qSE=qX64l znLGOCj7@Z%pzB52Gu9Wh*GqxdbF?P)lo0co9zwimi4=C4By?*^B#dyh2bpCD><^;J@ z@d=qL8k)cZM%C^`?`<+@5o0WFJ|10DQFvn}eM_^8azF(f4)uA&c=(rpAiOwhe z=oc{Nv$AL^dLd_4ALwxpRmyKna&S_7{;GC+%(D~lwU&54V+Kp%0qTUJcm{nm=1!Os zV(x@;A~}E@HPrB-3sa1j{KSF%r$D<_qLcJ|A^l?Vz(}!wMICkvPK*&48=+3o1UA2~ zJMucTne=_==P=&3%ikNi?ih5%L0#8FuaX|jL(xBC4x2hGM;1@qH&#_EcPu$LDL&V! z)kgR}bH;*#H;>e-)LFDmxsdHyrSjT@fY}Hbkf89TvAa>5(e)mvMNR*0;8w#0BAfzw*~YGU<;5RS`Iz9kF+5SwwQB1hrFQc zyFJkRu!o=x<4n#K{UGusbCtCH^aXsJE~#o|)1Lp@wZ4JBV{sY-0QWnj>_AmpL+ZD)Be$n>1#1hAMmH{Bd^n*=>9QdS$_Ebj>{hI37=95PbpBMj<^H1J46`Cyg za1KceJx74tDfBpUy1$`*@|f`GdOu2V_HrcO>pmoPrER`w%t3STV+Dbqx|Dp&dG|CP z7N07h)CMyMA3ZkwsyAeCJ$%sf7=O3$KXoVdAZft)&z{*8&+vzS35e(WK#B8h^YsLb zW7VvwH$FN(zqt43!+87|4~`Mt#X72vdp!OahyF3_-ZRkPwK>O3+Vso^KTS=O1m$7 zkC==85b00csV4{Z{^gVSzkByiIoas7BFeFk>74j}dL34ek4P8BIKcl6>R7LcKlz36 zj9KR~t|vXncg*S24%4@wT=+U&5xJ+$qD`eHP` z!r=WPV)to#Df5N%bOP=@1%A?+u}9lhY1>&36Ybq(!JRQ|QeRN7pK<=ZP3PbEI9-3l z8XM`O&;5b;xt|4^4AA3VQ3J>V-lr|4z1L;F1N3oE;1MJ8OW%t*w^rW_O!GNj&M|=Rh|G=d1L=McYwh%3 z7_-veA`WAkaeSu?Z5xza~Kc$xx@mu z1IUSdFL^PCg#4h6zXx!kAAtJ#E%Z?A@iH=|+Ya7`F2j+zWAY6BGR_5U6nUO{%iHlZ z?%OZE8ucLSzgEZ-db&0GBwYORn?}=x@98^m?#2I2Pyg3id>`6Y`kus{y2ls#)yaCM z=mOT4^CI^-eAx6)KIiGv_n4nkfPbX$FY{t%{23D#v6&0l;mZMk)Ul6x8qdt-^_+Xs zjCmi*GkpQpTzDP%ow}a7#1nEzUZnp(eL#O959GtcwZ#IT@TL#cKLP&_`QcGw*K{B7N6N@j z$Utw#!xG~d_d=Jih0IM9K4lC{|IgRyGVs5MYtDc_c3^I(Q-+IvB5d>r++3=piGPE- zQIPTY_$Pyv$Ub?1HABYQ^e-8oQ^zo;N#B?CKbd>P%?0uWsOQgKeDXQVmz=`AeZ>cq zI0*iXeS93mdL?C_`k(o6)b|FXR$2=_5O8CByBoA$Dc>^=pib~L#p$@yW`jSN8=}uk zn?$~+t)kxg9Q^Cm=_qoZC8I5PpL#z#biN~GqAB2o{XuSqe8#w%z6N=M`iD6K#zi4P zy+4UNzwFg*4e;+3?*pSY0Q{)~nFlM1`KA8T?cYYmKMhga&5zeR$!WosQ`hL%`~dzq zBr@n@x&ZlLuJdPI-$SoRegH7(@t?aY={r14*y`493%O_P`yubad=GVvr{iJKt<<&j zGngME-qZ=ym$|YRSEo;3`s6d1My*(iy;eH@x(rbMhXa>AklD$C8|^w|UURWoZOt42 zY~XP(qwdS-_%mKw0^H4We-^x<$EUQbHpmC(&)q?y zfp(9wK)+14DJL*y6VZdLE#yJXleu z`57zN2f|Lj;B)4`cFksx`}|_}Xq$bVZ-C}I(HBt}dcX-jfrrGs?1!QsL?0=Co|5X= zv2$tS{_^D;<>fLk9)HgL0LVP@H>OkIv2ikQlxx<3e4TDW&u+)k68#VOr-LtilKPGQ zEOi`huMha&8+7o1UNq;^Ss&2#axKtnzu->0P`%vgG-0e&v$5zsiTh1wpleo$3}psQ z7#C+l?8CU9_JFyCg856UU9pGL9G4eNpS&A#i5?-5{r)27wCm(`=0Q3CdOWlhI9h{kax)+yrx>YlWD?PyJi#g z|8$_ZUNz3ZrR=Psu?CNFsO@P+bp?iWAzeF5ii z(bv>rAAJ8G#GY}Ek@M?no_ih<0|Ea_IeeXd{nMQ9GUHFbh<1s6X0)fwO-f7+ztqP> z`kWE`tCl^OCalfBo&kRjIt2EYI-NOh=0E8NQ6De{$d|`k4H+DxUcP*l=6L1{B14zJ z9_xCKbwI{S^dtD5FU~z}Hs{RS@%%&N{BkG8U#G!U_R{tQ4S+9w9_W7X1N}V@hwb7o zFt1_*`KPU-k3thS(-|0GdATB5HM@(>7 zWS{u!wXSVq_v!Dt*>42iI&EkhIRCU20VUU^0$tKmJ9nH@3+HcB^XIKr^XD&C%a^ZE z2M!!WohNPGo^&Mr)3vLADtE`e!uLAv^ij3}Z}y80j>mrl=6$`uk3P{qptCGe#UC;N zJ4hO|q)Zccoxf=pcZ%&J-!nhpV}d^{-xL3nqAx0xSezP&|Jk`e?mSjy{f7zPQ@=5G zXMK)yF1gQmzmKs!bvJ1MeHfe??&fnort6?VTsmK;8(YZNlmQ;aFNQ8*jUa(GA|DrE z8xPC*^8T~`GhCAoeCPHfRiWf?;NDI2Jm-S=5pUXkbNz!cB=tFS+tBT?i1*T)asAj4 zb4xv7@9T8^ftk-47gBcg{0C#9xOn|Q+UyZKR<_vGB6z@0C% zZDbx~u`1*D<9~v$c~Isx7R=qROg2%#JrZ{PC*|jS9dbPvc=yALKCh0yp4&elIepBJ z=IMB%Nn#w+dhg>z8o(YnT^pe1eBc8iFT$LXj(cMKcLRob%Gq`>YIL7huQucKxyP$l z|4_{vO+?JqMdqD;lP_>*Jj2*S;vF2>hd_UaHk>_*^x0wWzE2C^)V|kga4kJzqn}6v zj%m()lIK3?hW(-&+1tEs_3_U|>9el8as5x#t?NQ%Yt;pD262xT+e~?9uQ_d={zANm zxhF5szoDK+4c;ig zpM~4UF1mm3samq=fNI+CN5pb^?>lj4en8L99ugU6{(-TGKKK1Z$J1|N>?ZSWidzlb zGpB~z=bjUL0KWiwFcbJ-7IdP(K;MTn5dRl(BcDf}q(4-~>zW!p>^HT0$0K#*;A3_8 zz@O^i{$JGoy%*HpJ;&9a-G|h^J*V;AGj(w9E46CHel=m-Vio$`WL2pQ){Nxsh`bW< z*5{mgXZmi8l^BBw-thD3@991d^CsId-^^RFuD=Ix#4UuK&y0S*1Rwu%aZY}nZWDzM z(!)RK4}K7xC^T@s209>qg$>kwCgjNI6Cxh)LQakG5o+wPOW(t9ZjP9y1pNFWklQ)9 z?{|E+L}DH0K=eNU4uUspZN!^BO{`7&Ip2g_PZQav&9f!`Scky;AZs<`d*;>Ao1;PA zheFr0hxH%hZl(q19y~z*$ZQv`-=|LS6a2{&jDb!9C*5BlpX&Lc6s)ZZ&iTTCcc}0+=aT*hd#$PS>F3h!aqiix!SAW(n6rT0e&l65 z)rjk$%xm(@@c$b}`iAlnyKoi$!Hu8Ele9t94aAqWQt}3XS?~vZk}C#Z>V4b&l^^v8 z&NC)q|1|5!%z2aFt@E+Q85Zx;oQGUty$NvDaVP!};^WXCWzCH|!JHoEWjpxK5phjA z%>TbO@5$-L^_H{?&;xuy9#TB3PEM>D_cxOWvAh<*p{nA4Fus?+7);oG#qoP*!FCiK#OhP#;- zh+l;UlnKl`-e1p&S5IH(U++>MGEc783UryE&p;Y5zet^_=aAW(7$f*|9hAPdr#I#s zH5l}m>HJPVCjzfc0yUF9;3WaR;bfC=adE3ZaB}LsI$_SMLc#I{M`vX z+PQSRPcdGT`7qDV|K+h@o={o$OgiZP5`9K_`G6*az#qquYkNoi%~(?ED4>TI@&}A1 zm}g{-fiz;@sUF8iL#Is?9f2|4!IquyHeDD3eeMUmW$iQ9y9(a_ixO_vU+{e~morzrP5XC2$IL0}aI_bA zyB1#gv91{Wjd_M%`!D2Msdom01HG{UK!?Ww9Q)&lgQ1dqEf>7v=YmMK@o1q`ERPxV z+YIUS%Q1k)(-^>f#OVC1B)4NAxg7(Tk2mCNLl*Nf)*ycwk{#0x(9fqh>ZkvA|9%Xv zWal%)e>UTlCDtH+=A*?8{j-@aW;&Va)<2$(=A)U;@pK3M2XFw)M=Xz7l)Awq=1BKYPnj4@FTcRoi;E=QMLm{k> zjRLGk(bMymaTxN?8sZX-{R8Nc)lkRNn3F?nqQMW;sNa#Z(qP9m#A)wPk2wx~-W_{J zSW~YfSM#6a0-D-_eiPBd@szbp_+T1*GQ8N=+(kpL3E-~98WiEx*oOdnrJ*hhyxP!C zY3QRv5A8hKa*h3im>=|$oSuSl9jLQXqt`z@hknIuumye4v+|t2BKtxZ1G3h`zDN4e zvhEzUS=K3dj(!vUNY>W4E}3;}`q7LPX@3~I(gt%3<}zSwUjY6AsF7s4eAO5K) z^!qW#f&BYL&{j(W(aYR8<3_waOJc zXq76oP!-D6(@K^6LM!52ROQZ9P|KOE9Ax`j;9Ek=ovp0KIuv4W(Mf427e7Y_*{~@S#mlj{|tVw57^&Qx1f)M^G$if9FGPKyMm9KYL+>DwfXax zt2b}nBE`uL2AHV$zr^p^+l}?L+Q}1FwQ*zTsLBBiv}{?Nz;E0$qak>TI;l6t9uJ<` zgubN-kcA1rLDs{9r{-#iJ<#WI=CgPS>jXV8&SS3qV*d^M{Dkg^-`NvM9m5`gK?BDT z%)j+_@!}QLE~Jmjlbd~S4InGuNv>YkNnE?4uV%^a-8?!*a zAE6#+pC$MaJhMn+9s;t8x#0c_6>w~#ojUQ$M`=!^Qk#q9=TDrt0Nx7*Oe(1U+5`&**xFu!Cn?D8y?XUV^@y5RvZU+CaL~H}`#Ln*DAcMntUu7MUU~A5>CZVb&&l|4^B~hzVXLwGwABEab3Pw* z1pQY-CrzQP#@lW#mhJQa3Hlz-8Qnz^c$3mvpfrsZaHUwQKY0h|G)Zs{yy$#&#cI0!h zUGtdv1UI`i&^J@Ti@lL&`bI-PmDn2Oo~X;nQ<}ZiNbO48AF0AWY22?`DeuL~+qJjm z;nGB_SiYVL3yaiZckb1+_gV_MFw>v7yvO(7w&)}FoV7{tj)p#Q@&kPgvC))g#B)zU z?}BF9(@wFD%YIYxJ!OEoG4`9#PU(37)Z1ilm@%r5WhZqx?ziNuET4xB+%G;3eK@_( z+DiHixZbo}sUQ`*f4zJLz$Qyw-V16N|IcjK~I(*MHzp0M#_U${Za@ijsi$lSygT*&D!bhj=XHAzn z9dq;6)pnCTc&RD-y3Dqt0QO&_zHyhjeUJJyhJK)ce-@^!!nJ zarCundB8ilz=zdA%gy2^GnbtU`?Ii5ZNk`Psq!FC&X~R$bFJrX6Zd22Yc1&?F_*dR zTkf?&-k@%xZ%+Cm$E~s7fVz_Ui#>hF8Ef2c1HFTg?IGH=E6-A;U9aeor;Q z-w7Y@EAZ(q_8S8yBm6zCk@5n6m4SR=Zy1ZFT2$ElRN?0w)TuETwxB zyg%oVzA^FPK3`np$No0*4&xoJxpTIQRxe+qzQ%J<|0TFz-{*rp_ssco|10*fN?)(T zp{vLZKBS+D9yr*o<$(VX=4CT&0Q6u4XjmKcDoI>4!j76gWM?bv@8eYI-z$0)=*6{Q zrx=ew*8L=YLGQAruTd%qf4nARIMHR?uW#S(-^em4##_30KgJp$`iFK5ybnH+wMfu4 zF@Wdd6ZjLaY1h!Nh8h-YXS<+B7xF&LZ!_?G8Sv0B)(`OgN!Eb@*FxCe`zfAB7)A^} zr?EbZo)y^c#v1#}C$(!p9S-|-hb)@nZ_M|9 zK<~zG3o?^o7Fz=Kgx@`=CyuZXP}~^&X^CCw>FpvsQQnc8hxnvL{ZD z`DtsBOL~Jjc)(a3Yr7z8yQxPd?q;7e~AQ9*o!^adM_f^AE2I$x+irM>qe|6!~Uk=9iHgldk$k<=_}2c z-U2<>@#`$mU(dN`k0fIg#=qj1BVY8f{`&c|FW{N%t)dR14&|Ea(ctlQqJyCS(Jyvs zBx+oUZT3NKmr>sV$L~S&)2we`UQR&n*WkV}@c*Gpkt@lb*&Y7F)fDqhBKGb%0pGiT zX9|P%IjQ%>k0pw7_WQRRbux9eu>M5frn+C3;lb| z!+zH|)KeNkhQa%Lz-J2q{~++y&zjx?evWobd=BRQ^5L1}@{VN<1y}J?>lpgT$4hZ=<8Kqy?BxOIF~Nmf&F1mesA)G@C{`?UjIY)?0*A0WaG`= z0@Ibe!U=DkdU*Wfu#`o*MTXFDzUZhHY*k8&mZ7}X# z3jRCEcpAFjgMJV9Z$dm5pjqWDs}3DJmFgIr$ANv&bAp^7^4j!aSjz>^OaO0>lDrV| zy$8(xKY9>4!j6H~t02ewq>j!0Sn6@+k!a`X6FYGq9`=nmoP__7`g*1wJq8HcIe0){88#OB{u1>mZ5iUwk+h?j!y!12ny%wn&C}udNBz&9(ZfM6?rl6zBY%^R z=*v-uvcKJ{XbtVq!IKGeC%mLL|IF|EMni7NJMi7;H?YUZ-io?^Bz+Rl`1oVI@|)r3 z5j_bbY3HDK1b*pHMJ$ZCQu4I)dvy5EK<@W{H2*ND-zJUwtif*v9~IEJM`cF%5ALqz zk$;=1o;`b>1XeT5X7~>syapeEeA7pK5Ymt}5b8wic`dpSz1ZUt!_N0uhfn}(F&?q! zk~L#9KY{L;hxItezBBd~oWi)9)z!-n`REjX+qRrl1NzNYefx}50|pFH)2GeAI+Byj zGp4vU`H6ezK`Z4mlsZ;y5&4F^&llyEdLL`bpCAucI63_Mj6RvJ^wV_yIl=2`Cn2xs zk%28B{oxa14wrn?e>2ljh>U*- zdup)j@W*8a4*O7hr@n^VY+>w6d;otOju)V}cEfj_1^E9=6SmL6h4A0K`$Vf-eLVDB zZ^&jWZ4}^UUoT^qLBcbP3BePGkR#MLy-x*+_&%i~zE0Qflh%x#DC>IfDtolJj*~ig zlDZOimyiC(e@72rQzd=jBcP5!KZZTQtOd#oI8Z0jhCr7;0^g*$7o*;Xe61#Mcw_b} z^!^F+oNR}Djnj5+zwnRf&wk6kJ(p>=R^cL>uoJYe;Qd~l2eG-Fd&ailgSXH(byFdE zs;Bgxxod6F|L~T6k@QTOF30oF9_CrJZ<{Pb4ku+k?NdBMakzNlcWq$5m71$DN^+9) z>#^1gG#L%J*%#WAu@iWRxvK>@{*2uJsrIP?`iYY|4p-a4F1$t`3V2BG`{e$z?CauO zw{LYz#cq3~E}na)E}VO)&Yk&9ojHA3oj!G5oj?00UT@US9VgVBS)0+%J6lyO&Hi=0 zzmv5D>UEAo|3>fYjOJWG?zq3eY|6qL*xB~%Z~FwOAN@+?!E~i2a6sSURm=m|?p%T# z9pqd<#<`~dBy(ZNxhw`fyE1nLU;j&-KZm(r!dwG7t@xnY@qi-bev+s`fjyXEg5;jxA zdU1R{Od0~_5WruW@dRz4*g@J*=4bR=U!>%mu-63cUk*KkeU))UkJ$mh@5a8r&jj<6 zm&Ny#X94`-=!<&DJ~6Y8$|GYRJ+CwlN9@G`pN+CepH=o62i=+5W}b%Yahadc`vW7O z%ebe9o~K291@YjSDCn6in7@Aob~9qSZoL6t^?CvHca4N>KhXO=;j79VVDA`_^~=H= zjH3}RO3X-o!ug;tPCl{8%err0p*3wRcnSOYpB;@Jh(gda|0>*O_{~SXuUY!D^003Y zxa%V(sJb6OT0p ze;0;c#6I8uj8E8z)E_UllUeYH_M$92#G4~Si+GA-W&X!2p{LehP)W#T?Ay|kMA_kfH5Apoz0J}%tzcmGg7v~;!G*b??) zChDE&X_eT*KsH#?p^8vex_>SM-`)LpC(ac?Nr zq^PU8j)D1A=7pILWz9u$b*Q5vetC;J!C25D$H$(N+Ih&TGje=qm^Wf>o^?dlXt^H@ z_upV#?SOm~_dsQ@3iH#v7P(p22d)cdPud8nwa}k{oj3;=TvK~i@^hFwKlE_iC2bi) zGma+=+?RlL6#lM30m~4?iPiC3H{?q!G6 zCx2ez&!D$c5$i>FnH!~jV=kZeFK@0YYUq%0>e$h9>eR_=>g0(yb>hT1bsX{C)~(ys zq?o0uS(6Ct$L}TmJj_=zj-bCLzqbVXabA#nxra3qE{UIMevf^?v%1)>K25yo&&acZ zH|=nz4nsdHUbuh%p&Bv>zmt+5`}2YZ#GQT}ap9PZ5wM@kIoP`teP-w@9Lag5e?nME zbLJ}9kMh&>E1&gz^F>##{Hg-VV?Q6<%bc{%kJtke^x$tLpci9|8E+oZ&*%*Pe$5;w z<%hh+XVdTF8mrlV@%e<~>C@+`X7$eU`ycxA$0H_^egyizZ}9sn3H*qB@N~k-+%I!p z?0cfD>$$zfYQ~hLdm@}X_C!TTY*$@FW55@q)q(wo87rI7PdGk$^i&o14FL@X0N3zwSXRo10E;2jvtO3K8Nx2{j*75*03ng@aJB@E?XcE+k|`Yuy2WahCORs<3w6f zhA2}pKQ2fz?$SlOkyk4t`w6g4%iI`w%Vg6_ZQYV`UxM%2ai7;Q;Dez!j$*9<*Dr$4 zx$7I`WTucVjG?H@bpL)Mt{n;gzp>QqCQnSd)_u`}4XDeQSRcdD6||j?d-Xi2ZNb{= z`t{pM;5~ZeJa~#e6m#kPEepU3d4OJ@fu58D3KoMQ;|2QjZ@c%@217()&AzJM}bk z(}+>;!DhZ;o`$gibM(~R+yh6i{UL9Gdh)Dk=aS&FVku*X!y?5|SpGOmZiurMFlIJg3v;(}y-*L(-HE-H}#*ma5>aKjb zYaq9EKgm7e->t)ZNj(EPXuRkn7u!{bQA< zFmeUp?E}q_|ILYbP_lQw4e=44U3Jp~_E zU-*&?2*lEk*bCw|^`4%4<@498-rbYhzmGkids0oGvQxR6xThh0FAFk7T}u5f$sdx&XYeG}H(oaZmdVHiKb6`t zC0$ z!(aR}-xnJ{&JB#ovH1)>OVStv(y8H?8KVJt5BXhVJuFI|$0&sFeep8qG1~ma*~IS= zJ2_h~=mpn(u>1>H|E{h&j_Cj z`N@g#wR%2h2J+cU(PO-))u*0;_^%uGq+_j(^%L<~>}@J)o~|8LQP*IsEvcj|a@(MX zu0CS#dVIFnPsB~=3E}T+%|@>McywydKpfqIFf$j!zA>)78vVm`=~YRrH`(iY;lgz_ z{ClilGSx$z*bd{)!+ngECrXYOb?qd0AYO97+&y707RELUA;EV8d7S1 zh()#V&`GFcgaPM)xR+~c=Cg14DPnO)Gakr2EQD{$9!Xh?0A0d5682(zDYaO_PhSep zNc5R!^m8MJ&z4>n(iC0X!uGxeA4m@&{UO9U(pSNn9O33TEgQpD z7HXipJ+Jrc+JK~D?dPfBMcVeY)1Nu?B zckf{WS!!18!G2N={ZYu#2Ww^grfU~3-bncV&Yk<3yKy|=lC>P{J3tP9dr#!CHgj&c zzKiu$>ULSr1Hb?N{bvdASEGy;6q&4{mq^KK+Hc81_Zc&at-uvWVWSh6?kW09(zf(Gric z?~^e#d+wO43~Bp)!ZmRhp8)PL(%(a$7~|o00nToMy_Ei7*jhYuv+z=`tR<7cU!_tr zfgQh3DR7g&@LQSMs+HRk;9tJvICN4!>7k*nfG@NK{!F*{_#QQs6EZJ|p+T>?*aPrw z0&JBkAjb)x0`?np;_nCtXkS)quim|TpKwiZYwpe1U+6%)i!~KJ(97e181@ZoQjBHE zOW1c2&pMNYf2vjK1l-3XellW>qPwd0MWA-?&j%DQ89(mg9em%1G!b0{zl}9;BV`!R zn9n{B$}M#p>ygM=Y7g$eO2EB)O> z7dnP&!-qfk5l!JAU~S(C`Y}@f{rxxjO|}F*lXzSLA9wM#s#kLo^LEq=7@K}P)>0S` zHUBX3hj;KF!x2Yv-yrbOdaZZVIqkPwue7^=Jk##nxrgH`?ZWw++VUj_wV+lrG-IIw zQip|~F1i{1)O(Dbu+HSe$RFN;R!!lbKGOG}L4P-TG4+1G_T(MfH0b*-fR*b@XUF?y zQz=XAp-L6*52Nev&O#dFalsyYT+a&Z( zK4$XI=m|n?^_l~4>4x}cqmR>tn?;S=Ulld(#P2lxbQ5}I6Y7oKpx=!}Y*u~L57P|& zQB!h2eaXUb1BItp6r%>fW8&*`|IF9(UXH=BIOaP;B}0ddiTyOaoRQp5V|mGlm)TDX zz&&aGLHGNa3Qe1Wd5Xh2+c#Jz@dk1c2U<@B?-%>n{q_aMWOK1uH4Q%advhGXSc|zJ zbG%1?2swfo#)2_PJVraKky+uV?_!O>8v8G`Xcnm=!e*$@&O=d0=%8F2n@j$|oGZrf zCGB=BG%aBaAL7?Zd^T+>?PSx2Bjwt2 z*e6kP!dP$7tl>Q9JUtg3GY-9&$m=m?f~}kEYPbFZpUYe$b1cmpO_cjjpS~!$EXoY` zbVw8ev)h0M}u`Ql1nEH%oW64`bEC`w((AR7VpPCW9ON} zV1AH(R>OLFu8aLQ%)^?0AJoadk^F`jNm;g-zHS71_afvdhIvTFZ>*mMx72@o@bsy3 zlF#9O#r%D@`E&J{|IDdd0xN3k)ix8R{n+)Y@GehDP~!4 zEHphUY|jqniz=4bsD8Qe8u{iIl5@Ux^|qQnXP>H4ZkptMs1rf+SX1GjlH@!b3(Y`$ zeQgqS8*ITz&=)ybJd5=^-oqR*c@8>l3ifYHa<3T<9+5-yMy?T^^u+-Dv>4gH^ai6b{u6M_U?_xOliwZ8Y%pZR&M5k) z4w(!F{Et8Cwo`WvhRpF}8Vzn$5ZcC%X*6(um8|h&;uG%A7C)xZz*skX{Fp}3s5uNd zvKTNT@hOCtP7q(i2l&fZitf_c*gYg7vSV0i1(Tn*ugMq^8Wa}XF|>UJQ{zU}y-J&m zkx_x6!GWE_LPIK;dWJ-rDpkyty?kI~WJs5`oqHNFKxkwIQ@4oFvXMa@Lb?P-dUfd- z6cH8~)-K8`D6C7_z{oD%-Th3)E`gyP+l53%HA(U`xt-T^_fK;We-oZ;G~(H~x@=&0 zc;}8mfl+|GBF-k9@6jxr4&MfccdXnaFe1bZafhg=@UlKW@j!bg z0PPK+eZH<+)2EoPZwa5KNk=nPjEd+M;uGGbypMUj6b}duiH!UU5AiFR@*(v@BI<^P zc8m&(Xj1IMlQ?iZsy;dmQo*%+{8x#|BUB3x2@eSk#_aZtAH#eis&f2XCSYQo+?u#N zs$*17AumZB)iWGSfT#KwGbNl14eWxGbx+f zd^i~%5f%g*g+)}32x6U<>6}1Xqp>qT zS1<)e)(q_qnnZj+)@bb3v2qactzc>w*f}!f!&mX>;sHJhPe}g!@;-@SE$@?nGNl_L z5Dv*|+p#lnNt*^qE~l_pH0H{lt$bn@@2xB}G8Jl#3`Z0QW0V>=de?>@ey|0ZmgDaSNhZOVm^DADWl$T$L z;w8O``v;Zq3M|ns#LL&WbZ|&Wh<~tuJKw%0AA#rZJigS&AMIbl&%borGJ#$tg3I91 z?b-%=l@2Ku>=jt7cyZri#Y(g*;~&UJ|4qb8fBebC1BK z@NC(#k^6j-v0r(gBy37HhpN=A7(T#O8w};eR%SQUH`IakZ)B(r%ij>5KqGu=X!z1l R4e!3jHT+9#N8vsg{vWLN;nM&B literal 1656 zcmah|O=}ZT6g_DMni6SK5ZYbCP*QPG8z3<-p<^e#O&^iQ{m+ae!^~b4+ z8DAR8b=F4Dv@5kvHvF@Luvz#p2;@WFpBi6%Oo4jod2JaqWre^{4BGCL`jqSshb zVcRMzlDlt8K6G~Lz@%QK-K++f=GUEg(0JQCdC z#IMZ_@^|NS&zk)p8`PNamlJYHI5p?HH%=qYkxaS1KdU01Xth%#u8U+OAkP|?6)>Uj zq>2QAl7S|bQdOhl&?z7X+A`i-hI3!Q97j&Ia}+AZbCt_6P`CuNxK=7qZAqlm`xeiG z){6LPNO?x$PuhZnh@GMt)7qjF*ILkxAM5ToboUD0b`x0oDF9{!7X$dsHL)b%=OviY zN5?0+sXyt?MO=5@#PsLI3A#p!IB`UDh>yeYT8hbJ>Um#3IvH(`ut`Y7|H z3#R-X)=}mRW$N3kw8o0UKBdBWp8CJfD9o~HB5lY0uLzhmUtl=B3TJje<={6k=6rSj E0CVd nil then FImgInfo.IptcData.ExportToStrings(Memo.Lines, exportOptions, SEPARATOR); + if FImgInfo.XmpData <> nil then + FImgInfo.XmpData.ExportToStrings(Memo.Lines, exportOptions, SEPARATOR); finally Memo.Lines.EndUpdate; Memo.Invalidate; diff --git a/components/fpexif/fpeexifdata.pas b/components/fpexif/fpeexifdata.pas index b8899b820..fa919a788 100644 --- a/components/fpexif/fpeexifdata.pas +++ b/components/fpexif/fpeexifdata.pas @@ -1,4 +1,4 @@ -unit fpeExifData; +unit fpeExifData; {$IFDEF FPC} //{$mode objfpc}{$H+} diff --git a/components/fpexif/fpeexifreadwrite.pas b/components/fpexif/fpeexifreadwrite.pas index cb3ab3fc8..fd642350f 100644 --- a/components/fpexif/fpeexifreadwrite.pas +++ b/components/fpexif/fpeexifreadwrite.pas @@ -143,7 +143,7 @@ var item: TReaderItem; ucMake: String; Makes: TStrings; - j: Integer; + i, j: Integer; begin if RegisteredReaders <> nil then begin @@ -154,13 +154,16 @@ begin {$ENDIF} Makes.Delimiter := ';'; ucMake := Uppercase(AMake); - for Result:=0 to RegisteredReaders.Count-1 do begin - item := TReaderItem(RegisteredReaders[Result]); + for i:=0 to RegisteredReaders.Count-1 do begin + item := TReaderItem(RegisteredReaders[i]); Makes.DelimitedText := item.Make; for j := 0 to Makes.Count-1 do begin if pos(Uppercase(Makes[j]), ucMake) <> 0 then if (item.Model = '') or (AModel = '') or SameText(item.Model, AModel) then + begin + Result := i; exit; + end; end; end; finally @@ -185,7 +188,7 @@ begin item.ReaderClass := AClass; item.Make := AMake; item.Model := AModel; - idx := RegisteredReaders.Add(item); + RegisteredReaders.Add(item); end else begin item := TReaderItem(RegisteredReaders[idx]); item.ReaderClass := AClass; diff --git a/components/fpexif/fpemakernoteminolta.pas b/components/fpexif/fpemakernoteminolta.pas index 7ca19bb80..57acb9c33 100644 --- a/components/fpexif/fpemakernoteminolta.pas +++ b/components/fpexif/fpemakernoteminolta.pas @@ -1,4 +1,4 @@ -unit fpeMakerNoteMinolta; +unit fpeMakerNoteMinolta; {$IFDEF FPC} //{$mode objfpc}{$H+} diff --git a/components/fpexif/fpemakernoteolympus.pas b/components/fpexif/fpemakernoteolympus.pas index f70f58414..bd2bd984a 100644 --- a/components/fpexif/fpemakernoteolympus.pas +++ b/components/fpexif/fpemakernoteolympus.pas @@ -1,4 +1,4 @@ -unit fpeMakerNoteOlympus; +unit fpeMakerNoteOlympus; {$IFDEF FPC} {$MODE DELPHI} diff --git a/components/fpexif/fpeutils.pas b/components/fpexif/fpeutils.pas index 6a5950b2f..2aee8077c 100644 --- a/components/fpexif/fpeutils.pas +++ b/components/fpexif/fpeutils.pas @@ -1,4 +1,4 @@ -unit fpeUtils; +unit fpeUtils; {$IFDEF FPC} {$mode ObjFPC}{$H+} @@ -825,6 +825,7 @@ var w, h: Integer; f: Double; begin + bmp := nil; jpeg := TJpegImage.Create; try jpeg.LoadfromStream(ASrcStream); @@ -1273,6 +1274,7 @@ begin K2 := 1; b := Value; NewA := Round(Floor(b)); + PendingOverflow := false; repeat A := NewA; tmp := H1; diff --git a/components/fpexif/fpexmpdata.pas b/components/fpexif/fpexmpdata.pas index ea8988f40..09c280741 100644 --- a/components/fpexif/fpexmpdata.pas +++ b/components/fpexif/fpexmpdata.pas @@ -45,6 +45,7 @@ type public constructor Create; destructor Destroy; override; + procedure ExportToStrings(AList: TStrings; AOptions: TExportOptions; ASeparator: String = '='); procedure LoadFromStream(AStream: TStream; ASize: Integer = -1); procedure SaveToStream(AStream: TStream); property TagByIndex[AIndex: Integer]: String read GetTagByIndex; @@ -83,9 +84,8 @@ var attr: IXMLNode; {$ENDIF} nodeName: String; - i, n: Integer; + i: Integer; lTagName, lTagValue: String; - lTag: TTag; begin while ANode <> nil do begin nodeName := ANode.NodeName; @@ -202,6 +202,42 @@ begin end; end; +procedure TXMPData.ExportToStrings(AList: TStrings; AOptions: TExportOptions; + ASeparator: String = '='); +var + i: Integer; + tagnam: String; + tagval: String; + usedExportOptions: TExportOptions; +begin + Assert(AList <> nil); + + if TagCount = 0 then + exit; + + if AList.Count > 0 then + AList.Add(''); + AList.Add('*** XMP ***'); + + for i := 0 to TagCount-1 do begin + tagNam := TagName[i]; + tagVal := TagByIndex[i]; + { + usedExportOptions := AOptions * [eoShowDecimalTagID, eoShowHexTagID]; + if usedExportOptions = [eoShowDecimalTagID] then + nam := Format('[%d] %s', [tag.TagID, tag.Description]) + else + if usedExportOptions = [eoShowHexTagID] then + nam := Format('[$%.4x] %s', [tag.TagID, tag.Description]) + else + nam := tag.Description; + tagval := tag.AsString; + } + if tagval <> '' then + AList.Add(tagnam + ASeparator + tagval); + end; +end; + function TXMPData.GetTagByIndex(AIndex: Integer): String; begin Result := FTags.ValueFromIndex[AIndex]; diff --git a/components/fpexif/readme.txt b/components/fpexif/readme.txt index e7a9af357..e8f6e1a58 100644 --- a/components/fpexif/readme.txt +++ b/components/fpexif/readme.txt @@ -13,6 +13,7 @@ fpexif works without the LCL. Meta data systems supported are - EXIF (including thumbnail, GPS, and manufacturer notes (partially) ) - IPTC +- XMP Image formats - JPEG @@ -98,10 +99,8 @@ See also "console_demo". -------------------------------------------------------------------------------- Tested systems -------------------------------------------------------------------------------- -* Lazarus 1.0/fpc 2.6.0 up to Lazarus 1.9/fpc 3.0.4 -* Delphi 7.0 -* Delphi XE2 -* Delphi 10.2 Tokyo +* Lazarus 1.0/fpc 2.6.0 up to Lazarus 3.0/fpc 3.2.2 +* Delphi 7.0, XE2, XE10.2, XE11.3 -------------------------------------------------------------------------------- diff --git a/components/fpexif/tests/multiread/MultiRead_D7.dof b/components/fpexif/tests/multiread/MultiRead_D7.dof index 47dec7a88..1aa547810 100644 --- a/components/fpexif/tests/multiread/MultiRead_D7.dof +++ b/components/fpexif/tests/multiread/MultiRead_D7.dof @@ -134,15 +134,14 @@ OriginalFilename= ProductName= ProductVersion=9.0.0.0 [Excluded Packages] -D:\Prog_Delphi\common\Components\3rdParty\TeeChart\Sources\Compiled\Delphi7\Bin\DclTeeMaker17.bpl=TeeMaker +D:\Prog_Delphi\common\Components\3rdParty\TeeChart\Sources\Compiled\Delphi7\Bin\DclTeeMaker17.bpl=TeeMaker D:\Programme\Borland\Delphi7\Lib\HelpCtxD7.bpl=HelpScribble HelpContext Property Editor for Delphi 7 [HistoryLists\hlUnitAliases] Count=1 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [HistoryLists\hlSearchPath] -Count=2 +Count=1 Item0=..\..;common -Item1=D:\Prog_Lazarus\git\dexif-afriess-master [HistoryLists\hlUnitOutputDirectory] Count=2 Item0=output\dcu\Delphi7 diff --git a/components/fpexif/tests/multiread/MultiRead_Laz.lpi b/components/fpexif/tests/multiread/MultiRead_Laz.lpi index 290d0eb4f..620ea1850 100644 --- a/components/fpexif/tests/multiread/MultiRead_Laz.lpi +++ b/components/fpexif/tests/multiread/MultiRead_Laz.lpi @@ -1,11 +1,13 @@ - + + + + - <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -108,6 +110,7 @@ </SearchPaths> <Linking> <Debugging> + <DebugInfoType Value="dsDwarf3"/> <UseExternalDbgSyms Value="True"/> </Debugging> <Options> diff --git a/components/fpexif/tests/multiread/MultiRead_Laz.res b/components/fpexif/tests/multiread/MultiRead_Laz.res index 4133fe048bfc96eac220bd2dbc2c6057417f565b..55653795630f092e02e316c1398baeab0ab25dbd 100644 GIT binary patch delta 37 tcmcbzkK@ihjtL5k4>v0AXJb^De22|}nSp_!S%$q`hMjS{3_FvB1ONg93cLUS delta 31 ncmcb!kK@WdjtL5kcQz{SXPf+#&8As}y<LT!ak~mTlZ6BT(u4}I diff --git a/components/fpexif/tests/multiread/common/mrtmain.pas b/components/fpexif/tests/multiread/common/mrtmain.pas index 30aee715e..01b68960d 100644 --- a/components/fpexif/tests/multiread/common/mrtmain.pas +++ b/components/fpexif/tests/multiread/common/mrtmain.pas @@ -159,8 +159,11 @@ begin RunTest(node); node := node.GetNextSibling; end; - MismatchInfo.Caption := Format('%d mismatches out of %d tests (%.0f%%)', [ - FMismatchCount, FTotalCount, FMismatchCount/FTotalCount*100]); + if FTotalCount = 0 then + MismatchInfo.Caption := 'No tests executed.' + else + MismatchInfo.Caption := Format('%d mismatches out of %d tests (%.0f%%)', [ + FMismatchCount, FTotalCount, FMismatchCount/FTotalCount*100]); MismatchInfo.Show; end; diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg b/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg index 7caf502a4..11ec2c52f 100644 --- a/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg +++ b/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg @@ -34,10 +34,10 @@ -N"output\dcu\Delphi7" -LE"d:\programme\borland\delphi7\Projects\Bpl" -LN"d:\programme\borland\delphi7\Projects\Bpl" --U"common" --O"common" --I"common" --R"common" +-U"common;..\.." +-O"common;..\.." +-I"common;..\.." +-R"common;..\.." -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof b/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof index 75d611f22..d1f2e20d1 100644 --- a/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof +++ b/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof @@ -94,7 +94,7 @@ OutputDir= UnitOutputDir=output\dcu\Delphi7 PackageDLLOutputDir= PackageDCPOutputDir= -SearchPath=common +SearchPath=common;..\.. Packages=Tee97;TeeUI97;TeeDB97;TeePro97;TeeGL97;TeeImage97;TeeLanguage97;TeeWorld97 Conditionals= DebugSourceDirs= @@ -134,16 +134,15 @@ OriginalFilename= ProductName=ReadWriteTest ProductVersion=1.0.0.0 ProgramID=com.embarcadero.ReadWriteTest -[Excluded Packages] -D:\Prog_Delphi\common\Components\3rdParty\TeeChart\Sources\Compiled\Delphi7\Bin\DclTeeMaker17.bpl=TeeMaker -D:\Programme\Borland\Delphi7\Lib\HelpCtxD7.bpl=HelpScribble HelpContext Property Editor for Delphi 7 [HistoryLists\hlUnitAliases] Count=1 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [HistoryLists\hlSearchPath] -Count=2 -Item0=common -Item1=D:\Prog_Lazarus\git\dexif-afriess-master +Count=4 +Item0=common;..\.. +Item1=common;..\..\fpexif +Item2=common +Item3=D:\Prog_Lazarus\git\dexif-afriess-master [HistoryLists\hlUnitOutputDirectory] Count=5 Item0=output\dcu\Delphi7 diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi index e26233068..c00629b92 100644 --- a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi +++ b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi @@ -1,11 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> <ProjectOptions> - <Version Value="10"/> + <Version Value="12"/> <PathDelim Value="\"/> <General> + <Flags> + <CompatibilityMode Value="True"/> + </Flags> <SessionStorage Value="InProjectDir"/> - <MainUnit Value="0"/> <Title Value="ReadWriteTest_Laz"/> <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -17,9 +19,10 @@ <Version Value="2"/> </PublishOptions> <RunParams> - <local> - <FormatVersion Value="1"/> - </local> + <FormatVersion Value="2"/> + <Modes Count="1"> + <Mode0 Name="default"/> + </Modes> </RunParams> <RequiredPackages Count="1"> <Item1> @@ -119,6 +122,7 @@ </CodeGeneration> <Linking> <Debugging> + <DebugInfoType Value="dsDwarf3"/> <UseExternalDbgSyms Value="True"/> </Debugging> <Options> diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.res b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.res index cdc706e86b2d20b5294ced7572a7d668d245df78..631a2cc1cb6087996c140ff6cf34669a29cb9801 100644 GIT binary patch delta 18 acmbQkw~%jw0^`Gtiu>6Z6(-+da{vH77zSAY delta 16 YcmZ3;H-~S60^^;Hiu>6nKV`E405o6*H~;_u