From 69489d9eaf27395c733782830e09d3c0670e6a46 Mon Sep 17 00:00:00 2001 From: Andreas Luxbauer Date: Tue, 9 Dec 2025 14:57:08 +0100 Subject: [PATCH] Artikelstamm, EZA Vorlagen XLS, WiseApi --- SDL/My Project/Resources.Designer.vb | 10 + SDL/My Project/Resources.resx | 311 ++-- .../Customs_Clearance_Template_V1.1.xlsx | Bin 0 -> 19463 bytes SDL/Resources/zauberstab.png | Bin 0 -> 1461 bytes SDL/SDL.vbproj | 13 + .../ATLAS/EZA/cATLAS_EZA_IMPORT.Designer.vb | 258 +++ .../DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.resx | 1253 +++++++++++++ .../DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.vb | 1546 +++++++++++++++++ .../ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb | 14 +- .../DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb | 1354 +-------------- .../EZA/usrCntlATLAS_EZA_Position.Designer.vb | 40 + .../ATLAS/EZA/usrCntlATLAS_EZA_Position.resx | 18 +- .../ATLAS/EZA/usrCntlATLAS_EZA_Position.vb | 2 + .../ATLAS/EZA/usrCntlATLAS_EZA_Positionen.vb | 1 + SDL/cATLAS_FSS.vb | 11 + SDL/cSqlDb.vb | 11 + SDL/zoll/frmAddArtikelATLAS.Designer.vb | 445 ++++- SDL/zoll/frmAddArtikelATLAS.resx | 12 +- SDL/zoll/frmAddArtikelATLAS.vb | 26 +- SDL/zoll/usrCntlZollArtikel.Designer.vb | 122 +- SDL/zoll/usrCntlZollArtikel.vb | 150 +- VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb | 23 + .../ATEZ/TARIFF/cATEZ_Tariff.vb | 70 + .../Schnittstellen/WISE/cWiseBankApi.vb | 46 + .../VERAG_PROG_ALLGEMEIN.vbproj | 2 + .../cVERAG_Zollanmeldung.vb | 988 +++++++++++ 26 files changed, 5103 insertions(+), 1623 deletions(-) create mode 100644 SDL/Resources/Customs_Clearance_Template_V1.1.xlsx create mode 100644 SDL/Resources/zauberstab.png create mode 100644 SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.Designer.vb create mode 100644 SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.resx create mode 100644 SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.vb create mode 100644 VERAG_PROG_ALLGEMEIN/Schnittstellen/WISE/cWiseBankApi.vb create mode 100644 VERAG_PROG_ALLGEMEIN/VERAG_Zollanmeldung/cVERAG_Zollanmeldung.vb diff --git a/SDL/My Project/Resources.Designer.vb b/SDL/My Project/Resources.Designer.vb index 32680b0a..92bfe1f7 100644 --- a/SDL/My Project/Resources.Designer.vb +++ b/SDL/My Project/Resources.Designer.vb @@ -2871,6 +2871,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property zauberstab() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("zauberstab", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/SDL/My Project/Resources.resx b/SDL/My Project/Resources.resx index d3792c5a..3bacea9d 100644 --- a/SDL/My Project/Resources.resx +++ b/SDL/My Project/Resources.resx @@ -151,44 +151,38 @@ ..\Resources\person.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Detailauswertung_divers.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\Resources\verag_Card1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\house1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\word.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pdf1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\plose_it.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\mse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ambar_simple1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\LEX.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pay_card_s.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\liste-logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\fax.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\ambar_simple.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\email_print.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\Kostenkalkulation_CS.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\WAI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\toll-collect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\dakosy1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -199,15 +193,15 @@ ..\Resources\statistik2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Logo_blue_globe_Horizontal.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\IMEX-LOGO-AEO_sig.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\food1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\stift1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\mic-logo - short.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -223,6 +217,9 @@ ..\Resources\uhr_red.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\beleg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\pay_card_s1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -244,9 +241,6 @@ ..\Resources\android-add-contact.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\zoll.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\exit.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -256,6 +250,9 @@ ..\Resources\sanduhr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Kostenkalkulation.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ..\Resources\Atilla_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -271,27 +268,21 @@ ..\Resources\beleg1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\therefore.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ze_gehen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\liste-logo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\RG_ZF_NEW.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\pfeil_oben.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Route5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\warenkorb1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Atilla.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\plose_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\cbam_s.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -304,11 +295,8 @@ ..\Resources\person_default.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Atilla _sig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Einheitspapier-0735_Position.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\axxes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\entwurf.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -322,8 +310,8 @@ ..\Resources\ze_kommen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Einheitspapier-0735_top.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Route4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\flagge_tr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -343,15 +331,12 @@ ..\Resources\frejus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\ze_gehen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ico_greenpulse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Plakette.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Auswertung_divers.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - ..\Resources\pfeil_unten.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -364,27 +349,30 @@ ..\Resources\Atilla_big1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\list_new_small2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Einheitspapier-0777_kurz.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\lorry_motion.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\picboxRotateLeft_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\CBAM_Auswertung_GP.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\Route1_IR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\zoll.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\uhr_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ok_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\statistik.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\pfeil_rechts.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\aeo_CS.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -400,14 +388,17 @@ ..\Resources\sgs.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Route1_IR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\passpic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\house.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\seal2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\therefore.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Verag-Customs-Service-GMBH-Logo_sig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -415,6 +406,9 @@ ..\Resources\Unisped_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\sicherheit1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\spedbuch.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -445,8 +439,8 @@ ..\Resources\list_new_small.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\moneybag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\uhr_green.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\print_sr.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -460,11 +454,8 @@ ..\Resources\Excel_2013_logo-155x110.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\compose.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\ambar_simple1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\moneybag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\picboxNext_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -472,6 +463,9 @@ ..\Resources\handy.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\android-friends.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\locked.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -481,27 +475,33 @@ ..\Resources\cards1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\picboxRotateRight_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\spedbuch1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\RG_ZF_NEW.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\picboxPrevious_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\flagge_D.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Route4_IR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\email_big_gray.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\VERAG_360.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\info.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + ..\Resources\Kostenkalkulation_IMEX.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\ungueltig_de.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\VERAG_AEO_MailSig.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -514,20 +514,17 @@ ..\Resources\checklist.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Verag-AG-Logo21.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\data.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Einheitspapier-0735_bottom.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\unisped_aeo_ZS_AT.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\ok_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Verag-AG-Logo_DE.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pay_card.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\chimes.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -544,8 +541,8 @@ ..\Resources\Verag-Spedition-GMBH-Logo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\picboxPrevious_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Auswertung_divers.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\Route2_IR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -556,8 +553,8 @@ ..\..\..\data\awor.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\asfinag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\WAI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Verag-AG-Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -568,9 +565,6 @@ ..\Resources\ungueltig_en.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Verag-AG-Logo2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\uhr_notime.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -583,14 +577,17 @@ ..\Resources\arrow_right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\uta.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\SBG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Route4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\..\..\..\AVISO\Aviso\Diverses\Verag_Customs_Service_AEO.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\pay_card_s.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Customs_Clearance_Template.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\woelfl.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -598,8 +595,8 @@ ..\Resources\android-note11.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\axxes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Plakette1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\email1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -610,15 +607,12 @@ ..\Resources\person.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\IMEX-LOGO_simple.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\email_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\aktiveVeredelung1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\email_print1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\cards.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -649,8 +643,8 @@ ..\Resources\telepass.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\picboxZoomOut_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\liste-logo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Einheitspapier-0777.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -664,8 +658,8 @@ ..\Resources\transp.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\android-friends.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\uta.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\LKW1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -682,8 +676,8 @@ ..\Resources\plose_1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pay_card.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Route4_IR.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\statistik1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -694,8 +688,8 @@ ..\Resources\android-add-contact1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\search.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\plose_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\pdf_gray.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -715,17 +709,20 @@ ..\Resources\xml_gray.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\abc_obu.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\unisped_aeo_DE.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\email_big_gray.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Atilla _sig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\ambar_boarder.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\vorauszahlung.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\stift1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\open.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -736,6 +733,9 @@ ..\Resources\creditsafe_add1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\picboxZoomOut_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\fragezeichen.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -754,14 +754,17 @@ ..\Resources\passpic_sw.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\today.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Verag-Customs-Service-GMBH-Logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Route3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Logo_blue_globe_Horizontal.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\compose.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\transfer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -769,11 +772,11 @@ ..\Resources\email.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\axxes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ungueltig_de.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\toll-collect.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Route5.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\FA_Graz_EV-Veranlagung_Muster.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @@ -781,20 +784,20 @@ ..\Resources\seal.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\abc_obu.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\picboxRotateLeft_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\vorauszahlung1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\info.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + ..\Resources\seal2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Aviso1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\picboxRotateRight_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\fax.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\aeo_DE.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -802,17 +805,20 @@ ..\Resources\SR_EVOLOG.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\SR_TransFerry360.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ..\..\..\data\flagge_gb.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\SR_TransFerry360.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\Einheitspapier-0735_bottom.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\documents.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\today.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Einheitspapier-0735_top.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\android-note12.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -820,8 +826,8 @@ ..\Resources\print_rg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\plose_it.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\axxes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\road.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -829,17 +835,17 @@ ..\Resources\Unisped_ZS_logo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\email_big.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Einheitspapier-0735_Position.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\beleg_rot1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\list_new_small2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\pdf1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pfeil_rechts.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\asfinag.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\modaltrans_original.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -850,11 +856,14 @@ ..\Resources\email_big1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\..\..\..\AVISO\Aviso\Diverses\Verag_Customs_Service_AEO.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\unisped_aeo_AT.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Kostenkalkulation.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\vorauszahlung.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\email_print.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\sicherheit1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -871,14 +880,14 @@ ..\Resources\Route2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\unisped_aeo_AT.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Detailauswertung_divers.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ..\Resources\verag_only.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Verag-AG-Logo_DE.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Verag-AG-Logo2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Verag-Customs-Service-GMBH-Logo2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -886,8 +895,8 @@ ..\Resources\linked.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\beleg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\IMEX-LOGO_simple.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a VERAGZoll1 @@ -910,8 +919,8 @@ ..\Resources\kasse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\sicherheit1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\email_print1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\VERAG-UNISPED-Logo.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -925,17 +934,14 @@ ..\Resources\picboxZoomOut_Enter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\del1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\scanner1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\aeo.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\house1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\del1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\rechnung.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -946,8 +952,8 @@ ..\Resources\checklist.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Plakette1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Verag-AG-Logo21.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\food2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -961,10 +967,7 @@ ..\Resources\durmaz.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\ico_greenpulse.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Customs_Clearance_Template.xlsx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\zauberstab.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/SDL/Resources/Customs_Clearance_Template_V1.1.xlsx b/SDL/Resources/Customs_Clearance_Template_V1.1.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..40280f4a612a0268cb712b0ec5cc8732a9fe5fb3 GIT binary patch literal 19463 zcmeHvbyO5wyDy4@NO!libc29|ba!`mcPJHg zI_v&(zF7-~nc4fTbL81J$X!?0`~a6{eK?+ixDW07qe=kgK3hQ^~$kLG}iVr zi6h4WvRMk3;3HsF2N_3@v%uWm%pVOiJwo*sOD8?PD8YsA+RKtuL>Oj^_vf8Ohnk)@ z(d!d;AL4c$BI1=*%%4^1{sJK#D0Jb}KGO+Kieo{Kj2h+@hIINI>qG9T_Em;;s?3+> z)X$n5&Ll`*%T|M%3nL#jSO~E?5NLzgr-^k<3mPskP z3bJesz-m(sPOGsnDdljs>2$sN)JfNej``X*u6XOC<6lrRgBTo(K`>qofebW0*w7|7 zZe?cos(^=x{s>V_{w{9K++SkD)?+E#+Td-BA0sd0K-)$!_p%hGVV64DmL* zr{`$I@~e~aXVxyLK>L0~ZMI*AQ?aXUgUH7%uDT8ji+BaS$Hw)jBabuJ5h#?hYJG z`X4r1sX#}3c27j{dy|B|w^=P)19LlCns2}VW2^s*4fLm_7lcblwbQ})9twZ;>%N#+ z2u0u%bK(`QCzSVmD>4sX8I=A4d!d;O2SFao2VBUj(erEX+`_A%-EKnQDpSEHBot2K zDyKr<=xZAXNJ>)MC_$Tol`n{n6Xz4aSRqjta>vFH%KVy~RI#2VV!^Rvfl`Da8YL_! zJQM>JQjb@76 zyUhvDudo#4jM+^}bdzj3h+MSv&09_d;+v6g+^HoKx@C!&kS-a9gt|yl&b?GCn2!4r zUB0kFwdZ#q^>}~6&sn?=U%wm4JMPcXr}v1|-5UuO*t18@=CuE^6DKQMGhHhyvu~m8 zyUjehk8k%<{&znLWF^GD&>=KJ-}=!x#XF)R&e+ou?JMlTKkKQWm?I@*^gLU_rmWLY zo)n`6xAJv49O!bqV1`=-M?P<*$_YSv;)-m3$obT2;B)}|nJ%CZ&s*pzGSdF;UOoUC zF3t|QmOH%rWfBV8<|R1^reAs%k-%B)s4tW0Ae{q)sogMc?>%SwD%Rg#zn9xD^scC` zCWxaj+_{C?uSqapdsPiKDLB#bszx`OxP3KxcJEeZwxUPZY248#-X)|aEKwd4bE5?P1uB47^kN5v{%BI*)8 z*TFZF7S+d+QW6DML)iwB?uWuIBd=gXOjkORrS5E#Q^*br(gL9PK(IT+ckM0k?LG+R z!FosB8CCFKd24VERCv#L6-V%>TpvOENTq)uFI1(XhdA^xPUNaa10>VFX|=-IK~jw3 ziM5ZVB&UcejgBpOC1#8s?K%L@l0xYhNj^OLe3n<>=2ml%vE}Ker?fI$fC~3$Z`yd( zI1g1mmfL4D6#Cj#FRDj4hj60L7Fv@s>D6K|%h_{Ngtys};N^X%I{S@Mlv*-Sa40L| zmSDD~)($}z0oWS6y#rq(U(OukUc&2?jdyf(DKojpU(MAJSbTI^jaMOHOAc<DxhUYobQD@>UB*m& zM=r^nZ{9Re;Ul@7JGQAd246L!(ne4u0OVVvm}VIYvZ_l2%&_m9&IT=;ou)xmzlc{$ zWoRtoa&>3cnwqO7Drd*@oP--*Gd#pb&&R3tm7(2ctE29sNQG4IgpGz`8FGMB|Ei?F zTj!s#80l!9rwWj$%!YsK-lQ@{4zI;=~_|v#oZqr zU$VK_dFefil_0^uQ2xbYJ7XPN1ARGrTN6toyKjCkP(j0LmJY?Ec>K;fl8iL+NnYhH zrSJqVPbleYCO}1_OAm=Mo1-CTK?8tiAO9eFpENZOE4zg3qlf$90DBjiPyUv83q<9L zC|qOH(kYlh0TRtv>IKGvBke1?sGj#wBsSX?BhE@I$0IEm(DsUPsnumH%`lIVi|O<_ zmDojRRVWkb#X>k>#f!p73_ln%A|?P`w|F~i&IlAgRPZ0}&-?J5BtH#ygyy2f!N7wv zXQK>MhF3KD0BNV8p??$fY8)2G5wYJ$$ExpJ-Z z(FGsDE9Y(MA?awyii~W|C*s6+>D*3hjQNNSV&8HW2EHq1CQEeKmDFg>GKTlre5qNE zGEkqTM$@A@u<&#NrqK~j;-%ry2eB7n%Hd#)q4c%XUL?BS{){G2mZyM9Qja%#lZmqa zk5(BcU(r@tz+IFO#UFyt^MpnqZDkt9Wvh=W?m0Mz$6sbMQ z2|D^BFk-HnHJ#a`BEBO?Zy;?o44uEf{d_*D)keNH{ zw5e8IU<%|NmbyWX0bZk%S>sY~A7+<_kiG6%r95u~#ymb&=y=N=xWe;CN6p)OsXcT5 zN$bk=T1%|8W%jM%daws=u7=3S+qa$?-GaLEy4{s!D|bIxg{V+ z_#s2>*UiNPpa*gsgtKBg`rc5en#D;3b@9YTOS zT(g|MA0k{ZMN@Fj=+Z9D&02(vdfurQ$g z>-S%9?5hk|VzVMNp>J~{xJkX73D?C80~d>0WwFtn77f73)i8}lbgCtw;H*RKDSiDe z&16LE-J&b`EQIh|&CzU|_%w-k4SasWK~eeM+=_|3lu4XB2mU(zQ&Y%w+~ne^?h>A+@ozL z+R(R5FDFa;UL41G^vjG+$w*EfqAd}pcnW{N>Z2q7OPSDES6k(+h;SI&}8&ywxfq_kr=qf+%Io2myItUJdSz~x-DMm32 zs9H77CXK#)w?Fk}Hc_-u*6x_(+6~Os@77hgjHFn0BQ9aO-rj~ zYE~^#vb_~Mw1XAxsF7+waG(QQy3LqH^|hHF(Dms#rhfNKFnSZ*(YffO*_;L79oUAzzP|P5leU?YD>rr|?kPJZgNDr%5dc)hn zVA5w_>|R|IC-JI%Wb<@q`?YRhu4{F27X{R&{@<#|JYy|%+ji|@74 z)yHrod)yVoqpVlxC!hzA%~&&AI&h#dzS*CB&cbdV z7K#w#^8OHcGv=5Bk1F9>7--Ym3(@Sau!?-5P1MFvM1|_iK^mBDDUfjnsHJ|r6h3C9 zoui~#eOM;4OY|X)7=Iu>=9IxUK7<2G(yq9lNvwAoe*GCAN;+4O`;o?h;YUvho@Mjg z`a{{(8qgV^wO?nj@G01cRcBhxtmKV^39wGLpIm;;sl(Zo!=iO$UCcibnZz0MKug)V z`j~Bw7-8=dzMv|#=%qDCKFIh5gxQO9b#({bv!^AB~xq-;bVLMj$N zapz%?N$4413F6`Jupgq}N7gVi&r~lvqLD?;OhlE$yB=CJFyUHmX^y(M5#g#RN=inh zrYjB?6i06&F4TTNNCM}1Ws%4G8Eh%V|_)rP*Zj;3A z{vbc6Ov=L4pHK8e+0fUT_|6o!-&N-Mw6GUA#pEO*#w`m)OK_1{kF_wLf}^8J$Gi;2 zYZ=iiWkj1$0U_g-PF;K-kVB3)H)5nUrw*mJ=i7WH3yafU>cKaok+dZ+gGG8#WHsc~ z9B;B?%~wc6j2L3bs0tC`?N56xKXW!yl5WrnN7`cC4atveL8+q`yqN_joL_$)Xx~)z zm`1)W_4x)AtlMLnT5-Tz<9BrP)H{iJr~) zl)Vz8&H{YYj@Sj81)_2ZD(aG>ekBlY9f&pKW&-mX^jWJY=EZowlTd z`lV?RVS*=*Nj}S?%Eq$+FIgFZfkx&R%`ZLD8i>$zuwdlZ1eH)xYR21J%~NjOtJE&? zkZj0~aQMKPq?O2Jn_=#5^YM>Sd8O>$*F1jVZJaX54(}F+R%^G;IRXnS1E!Vr`3lZY ziDfJ;l(6fQ0CBQ$R*@6aQtLY`x$P@URHCMKO*EapOwVoWSFKM@BQr87o8~|)(ByWc zPf}=ts@5pQ(%Z!idPXJnO;Yjk>jMStd#&CU31-XfrxDE;O-|sjra$>Cm9DQGXK8uV zq)#SmY6jD&o67Alojm$hC_oJT5q=IX7^T3l8`Sn;3tIB)c9B9Ip6m1mjwhlp3fMpm zQF1x99Jm)`VvoCoY=R*DmZ93yX2*}|RXRGd$U|o(cdsz?X`eH{BNk-bml7zfD6YCx z4?2NBOdzv;(qQ|-h>+-w^<&Q5S9K2lnkTsLp3@QTJ<@?%;BPH~XY?aRn?6c=F*KBq zz=YrOB7~WI4>yNPZ?KoHa2J+Hw1iB$A8*}Rue|4VCE)ndMt=#4A)*Xk6|M|JTVXl! z%rJhnI=ym+DW#4T&cBF++mm`b%gt|4)=N<}oI0&}HJAZD$s!Nf|0LgG}%BoQ3 z7YPBdV9o*cx}RctkX`1{?g-(k_wbjk>aPh8s`j)#SEn@<$JRHdGbTOagdEP4FJs3n zek@9Y5H#VkR?9hwHo>j+3AdpK5BE^Yw5rNzv)J(l^;mOSZL+ABStR=Qi%+sZGZZi?ws=10Ns#A1(!#h%!rKU3Tb#0k&A@peZ?Jb96J ztTpD4LHqb-LmmpP32?F-h5?0s4AhEbH@JjH zK*AJ9Zz2{x;=_v9V^t#hQkoD2J=#y;<9zBp4_%8y9;VpM@9hvTp0nRBN6JTDtnz-& z7�NNgGppn#mYV8~kjE?hBnWwr`C`V^oScfm1vrCeW^Ea#_`gr6#t+>yr!f7s;8( zI`S1Da`E#qvMq&AW6gEML0pIMg6y^~4ad-Z-V1}3^NjEJfX`D8K247d!`IcwdTJY+ z@1)FpMe%S5Rf9r5gNX+ zgk1X7X>->jP=SX0WVSfBL3p2IwB&AFr#~qSTtXo_dcwN@yGmwoxxLifa)PfeH#RAT zLw5x5wC>gzB8B*uk+veb_wOuqXgr>Vdz4N{`-E4ETdlhutIc=w(7dJ6cU{vbDnBiA zK%4i5%R3(YNK1w8mGqql&VoZ%NYzZ;l+Z;Xkh)A&!;HyN1>iU0Z0_VB=XFWzB(?|Z zRI#4P@NqB5k(S6h;uA@ksIymZZ_Bz7E&YWpG`RLwsnbC4?F7SFlt(^xp<`FA)q;~{ zVUz{tX3ZELmugjHyJeztwAd63aT6+OiyBw3hk$ix9*2T;6N)`dv0Kcrtc3AQP~*zo zeOUNCaOkBNI|bo^fdvD=z%YK>>HXN_H7uyu%^Ak|uAJt^-KC6{&LLIy8Msk)Hu+8) za;6(_ObQ@Ppx~12#NBbj3rn|s!cKIAR2XB%or`XUN3!uDx)hD|1X(pNF5!MHQ|DPI z!dt{0)WpZfdx>wUm~4sf>FP8+eyddk2cN|9$xrH2{Y3l8!irU2cDt9`UGd!saL)AR zbS!$q)-Hwk)vHF%uVpi@n%Fs9>#oWgv|cr8a?#+Qu_i0+fjR`e)bH%i&T2GixGh*0 zmT(hs@U?IjXf5&KoP?aqZ#gDtuUeG_o?Qfdt3ylHW(#;%XKSxh((4_aN=^5Mv9((V$Eq6kONYWc&Ji!E z3w*=9OW})Z*1d_b-P6s=VD}18!qri6NKptH>yXgu+Fen5|6uTBpO)p^TUtMkE4$>; z{jXQbWVDc+HxZEa&fLmwb(2<2i}yfWR<9lKc#Ra71M$0P@22k-?(mwtKs$;b=7bzd zG(A0?F5CAd7&&WSy>h*CbbERO0-Vgr9bQ1jcXXM$R5#4LJeM)_gKREVyqFkRwT!Kf zUQXOsMt5?X@l-GLw5%3VbuI`wt8rGw`>M!Ad0XF(>`@dyp;z~{!6wRS7TDf1v(mb1 zXb0-EE&6Z>$5X@-KjBfY4H}>R$X%?|Op9NYJO`9B=Gg=0I36DmG^TUkI9v>$A)b{4 zC*dpIU4Xi_t&)XL&s)1X#zs{ZZn^;31JOWUTs(JGPfhp6xrXKQy_uQgj-IPit;l?< zl@nk#t*blZ4lvE*bcfaH%0AsFY_QFYdNSL(yl$*(j0gU}YK|7t744OV2Kgj3ayP%?POK!m1O?lS;PN*gNOhiH zlART0HABH6sbE2&>IiJS}> zzSb-6{x2#(beq>L)tvbqj)_;fSA$Z-Y|?%*3Bc;MmGExc?BX`p=Hz6Y&BaCLY72k2 z=M;Hu^=x;e44YFQ#8=~nIopI&_i14DX6}4S50HJ&FHFwsktwGRr3%3W- zQWaYfjM(Z!^{CgqV~gjNQ+7=e3x(SUSUx{@gW~!~VU+f*JuUf=(W<^RsUy|dbsZ1# zprquv!j;R|%yONLli8U8@an6>Xni<=o$wisOfN)GfykeW*TL_0?*r(eqm&49-;`bsJY^=d#17Gg_OUmMl)Bktl~$c@Oc$ z$>>>X1R#C`AUE@_2BA12e@krEZ=G`|nfIsm{g~qutQ#;@b4$2Dty@T?LBECPjR?03 zpAx8i(b<(?XipXbZl@Ag-Ynv#-}x_7E*0*udjGUuCR0d% zzTZZRrXBMntAErD%(N!EVSEvQjjK+l)@yrL=zdE zp5tTk1*1786gPYyZ= zzW=sIT_N+yq~7d+FCL;UvU4uLy68MNWF zL)j~hhka>Vr3^hJE-#W%LiuC`0z{xFNDMOErD!9%@J0TTGLdwKbi?3)-EcBR`w6&J zOYc{P-pbR^XhrMIa|)Y(kksV$2IdfS-akEvd~F8d)H*mF*UFX3S!HM~wjET6nZWL4 zKClc&grQ=`;mifwH3_4skygs=Q(Sp`->{q#Q;m^rXy^V>Ku7bL+Izo3z`# z&6(w}n;Nb0JHhpt<X`Z{Cl$GszOd>EyJXs{BzUF}DfQJB&{Y0|KO*5fW| zY(Qi3b5={$OI}?!A{Q)&2Df|rtPP=JC&Jtm1RpX!qC_CciuQ7FcwFtDa-AO{9F=Un zQv42;`Le&2vs4{xW_dK?ZPK+uy~0f%K?t^o?Ca+uh!mtG8J|Bp=;s}9gT_1+UZt>y z{H-lDht)Z|1#GKBkY*F?>AUq%^>CpRkw+9S-ekml4waP^?B%>4v1lYjotX?Zn;Wmjn5cq}U%AWTm| zn3)my*-1ZdRcENS^rxxQN8q79bSCAQW0q;7ch6yLYkGere*>``D!kiZ(9_%(3K?E49o4ELHZ{W9BbzOe=-IJ z1$MR7&cFSB9|n<@cY zVVWM|tBkiO;Y70HqQVpu#2dJ=c?r}ue;dm^G0QU<2cv}He)EI(RJhlS<;(AZ^5LK| zC=A`RrV0f3GXlTa-OMQa!(rX}v(P`ly7h2a6CMt$-GgDZdpN9v59jKCX^X#c^rZCA}r>X-hEK)Rpke!9SjGM<^iNKp=i#tEoUK5w8V~F0 zFLz#I>KhO7uXXDW1~>ZQj17M{V;=;q_(cA_g9UiHRsYc$pXb|7B*_1i=a}yVJbVTZ z_wZB?S8m6Hm0NUa_t0QixB6gZDLq_S|I<*3Pwf4rEY3ft1AoXd1|AO9!!3dN;SOf= z!LUv}9M-spGw|WT(Cpz1d=RJ%3PxSXeq#0D(>tRd*@-uUV_0=>KRzW!3sz>*J^n~S z92Kn0qIll*O3KW}S(1v)|;)IM&`cR@Nk4rEe~?c%hCd ztejblYWu(5T8y3bV|4HP}BmOlBCqp$mRpv6K!cxia6S}Y%c3mAdb?ncb_?Y`c z^nLi?d_Y}oNkU;9h~eK zUJ-D5df0ki-U0?%uNPL}%P|dE@&8-3+|#T?_s4SXp>^Oij2*`+$No;s-#GM*$lo;j zPlkS@V6|S9NFjZ_%y$rfRmfk;y=VRp2L1KUe+K=N!Tis`8*kyk@c&M}&sz?hW@E#E z^|Pa#_)L$Ok^jc6{YSa~e{HAeeB|3Vfon7@pDwJbn-hzb;x`619nY;xZcc$)D2n)Z zLX)>RK1I)NGTL-K>Su374vP<>_mZOqPYw=tmJQD4D!_Gq|no03O|K`bCVf##+*yu?o@R-+whCbuEAAVdIpqbiR| z?6Ouh{I-uEYID(&d*jX7!I4$hg4b=D)_u_*PV-m2JEyyRsiShwleN7CUEu97Xz0#) zgOjJhcJrKyEUwwsYuIaRfNCnS`NS(n^NPpQdE+wkc96&2?X2Mt5atnhHx%OHXcL;4 z&^)6dymYaBei&JKhxzI{%Y8!rAb+|2Yb5e@@$N~pCi`7tLtOS1KF@4xyO--7P^Pr3 z<2qYSViM$(@n-WHpb6%Wb>ic@6BfP36eYlDQYip!Tw29DW9;d2)4#O5=0^ z-@dW3s~{@AI0Q1}Q`bga-HpbSk8AN{^)+E4z~SQH$fk0!0KK}ds;S#cYlrq=zDrHx z2GERk)o0sS+qlzrE#a11kS;a%$)o(zxjKP%GJXr%IcslC1wKhB**qDHw(s2hvP$)? z!Naua?$3vntMUDhQI-_G;tn}d~9JymqaYW zUn@F1qWXrOqYWCv6l40}b_Z&BCq_rchR)*+&`W3{7J;I{L_J`M`E3T1HY zq(MFlPJN4%!ORB3_Z3i?B6hm!8Hz*234BXLb~#v6Wh+ftkxYp)J&R|UU)1O9l= z5;U%KZZ`u602kG3rI>0l&m1diHjO9hjOem__mt6b%dv5YcfN9`5XG|1c~0(hP%=gD z>)cw6N6;g9w?m{sa6nSW#jm>aU@fh&|om;gOtH8t?H>HHKGGUqN0)V_fNn zy+KSY-gf6E)C4n025oH#H~;Z41=bD;748!-Fd-PQ@0B6;I=c6#@M!;f`s;LfLX?J8 zIva}bq0;Q#+nTsWYvfatyewkuBgxDeNoEVDN+n`nwp@i46+I4r#nYvW*P|>5s;L{^ zFMJcWxPZrQ?#DK2Xp<4cmGTp9okn(ZND4(!WvaCMAkN^A789iTQ7WmFr6o>jRXm!v z*L@#)n$X+4y_C+|Jn0PWxZ@|Te8|hM#VrJ$N-2s)$G%H;<;rJO)$hCJeI|#-Xv7U~ zXh2HkhQHF#pZ$b_@n+gwx~NyeaNS8oxO`7{Mlm*7tB@*FO##|1zp&6T*~jW!}(h46BrNY*nO6?i8!{Cb`r*S~*3GMyH4{i`#0p_-+s$-Fv8}aRAXT zzn+T+WTK{^$Y-l0__@-8+Mto5Y~lPk1}*=C1n%KiJWj%f@Yt6#MMYpM+Mp96v%u9d zIzBZYR-s4%HxfG-TMpEt%tp`I^1hqvt~}%3yeiuX`Ax8$=X!U`%u*LjG7a#q+7&ih zZTLtxFR64i^2IZI0WVwLP0(?d{EmYYAPszr;@+eW8uWwZ53;kSyUTnwZ}v&*aeSZ#FQf9Ef+N!QTMjZ z+^q-H69Pobu0F((e7wsL_)2g^5QG2oGRg>GU8E*z4F$ugoUgoeG;{n=lc%^_ zlHvrAsloor|I$FtTW1`87c#nz1++HP=Id(F#cf2!uQd^(22O_hDBG<&$HVL{J9>l$ z)EL_L=d)SvyxLG)_f;rg;lRMi{&hCX`o6-<-oRGQz~25_sTu7rujy%YO)U47c;&`k zquh#)AleTnw>Yo9Hi3Tger1$p`MpW}Y{mA-FbxU6FoTFFbRa9-e1qHhZmSQZ@ZHbh6xGl#R)83jfexaek<8UteqRGt1! z;WoIq@v>=&B7{(C7OdtQ%n0OTcnp6XnBqgj115xa5AiNRHp#Bl2BR>jNV;r z6kZB4=W94<;Wfl!CNuJOtZ*Cy=cIc)Rw^?|IU%Z8=!=)O zA*JSP0O4l83cx@+2{yodq!h`A+c;S5$mpF?p)O`GJt{i?_6Rp06-%LaSDkV~CpsUu zc$-Opsop%`WeE5lX67`=ac`sS`gkw@1O>LS@hMJupJTU8;2IZD&k>uumbz~6dY-8K zsdef57qs~2p_oqE*4+FMOcY^(JLOigcD_S!8zL1~gMvO%7EKbmQIliN{VD-2p&1gi zZc5!DgU0r!~W~>!LzR1pH7v?gaBKCZjZ|hY4qULC!g`w6@10*6(id zN^4N6R^K0$RGF2uTx!cBS?Z}_Bya5JrGm*m{K(Q_->+KxTEXj1e+=li*SQ~}?o&&` zdn-ivIknWWw*F6Mc@NpY9|_^DmUG{3LjVWD`5pu%Sd#m`R+P!Wb)6mtvvD)h=Rl+s z^Xtq5{t|7y8HzwW1Ntsg(64|b9WZ20p4&a z#mFUbixmkzu&He~j|($k#Af99E>5xa%>7IjZ|+Hf0w#vK3HEqx_?EyzWnno4+k)m@ z1u4XHW+Qk=AIYBF9Heus0d7@pAl{gKAuOAE*1I|gp`7*F6g=CG)C2Kt9Vqi+m{L`C0VONM_Uu>~53X;f8<-n|*wJ=p_ox2+g zw;JeK(T%=X2`{hM4^7%d6}Sa+9y56E*3wdFBH6$(dpU}Fv4v9$goGwjz z{av>F=rQ$uBKqg6h`#IY`|}?zCXyEWr+|Oni}JnWx95s`1NrHelwUjk^R9@WJI>q} zt^C(FNBk=1*9!!GNP>a-?K**9JO5g@{iE|J^k1EStK$Au!mnkqKO|J%hv< zfXdbs5RpWKiYVLOX}1g5<<)NxqM*hQiy{gIBOyX8Di1~5*@c$c$6|N)-YG?ivNLlp z9&=}(U1X^y?Cfg)$xSAACU?(o|L5FuX8?NCqaJ0ID8WIOzbA?yR}><=kP@z>&UcjK zSf=nWtH5E93u0yb5vB-aL@bNVA;G?sh@*0z68h}m6uw*rbY)k#h(qECWL0se3<=@|1O1P2Y#L))*X;`hGN-_{M>z%-$3dQl zY!M@3mkjEcc^q4(acrN@(LXB!l02Hmn0PAR#FK+fq@`B9a7N4rI@jQ}kPQmDu)r$p zQh^P(Bm(#KJCALXc4Je)i7r4b_w!2}WD2K@h+0PYyB!4Y$S8nTZr)23UPTEH!~&8j zb*gP5WP#)sJ{z&J$63&b@v2BKlXXbJYy_SHY3O}b2F)t&*H&$UDRk$m; z$gP5YL*SVwI5v)w=@Z28mWha8=OZ2&6M;FDhs;r)aHh9`EmJwtl6ZgFoAIvSQGvsm z!aY>sza@4B z6!i7|J)T~tN1I6Bil^tNvM<>PVces+v@qW@IW0u^o$*%MdHWg|Sjw%MVkBkfBI3sm zf+I2yQGvrW7Y%d=qT!|>`mTvMA^S}9BoLrP9H&GaWQy3&i1?Tiz80&oPsSkR?$zNA z9lH{QxijKK(>T*|p?M<5<|*+lcL&(5&h>|9i7yNM=^%K`c#dH9}>4IwL}jy5h18VzFx@dfwZCYqx#) zXXk<2>Mu#BRqe-u1c%19=A^g7C9$<|Gxm%0AaTGJh!?Q9{~ze~V`H%X9Ag14rwD}giC)n!dMoSyGfA&N>o)>v4&I^13} zVn=7y=hOZ!C`!b9*(1PCUCxOZgf*O=6VI(!b>rpMkbNOU#Iumg5Vp(F1Mwe&K)_xq zm=hq^o$x_;h8Of&$ZZJYP8IZT5Z(Q^>mmGLH1(9M zh3Jk{Fm^^kXd_@=&O!LVyiWyvy9&BUYzTU-7mT@IK{wtQ=dDBxy$~+E;vz*(&rdSo=@xWXj*`k(y3~SA5HYD>ER4GG z0sK=roR#iuImP+`2dJQT{OiM|<&4vFqNv2PRc-)aqg2r6*!lZC`rqp>6yF^Qcfb?6 P00000NkvXXu0mjfS^%`E literal 0 HcmV?d00001 diff --git a/SDL/SDL.vbproj b/SDL/SDL.vbproj index e7e055ed..9033f632 100644 --- a/SDL/SDL.vbproj +++ b/SDL/SDL.vbproj @@ -1278,6 +1278,12 @@ UserControl + + cATLAS_EZA_IMPORT.vb + + + Form + usrCntlATLAS_EZA.vb @@ -3729,6 +3735,9 @@ usrCntlATLAS_EXGestellung.vb + + cATLAS_EZA_IMPORT.vb + usrCntlATLAS_EZA.vb @@ -4768,6 +4777,9 @@ + + Always + @@ -5178,6 +5190,7 @@ + Always diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.Designer.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.Designer.vb new file mode 100644 index 00000000..3e893a87 --- /dev/null +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.Designer.vb @@ -0,0 +1,258 @@ + _ +Partial Class cATLAS_EZA_IMPORT + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(cATLAS_EZA_IMPORT)) + Me.Button1 = New System.Windows.Forms.Button() + Me.Button2 = New System.Windows.Forms.Button() + Me.Button3 = New System.Windows.Forms.Button() + Me.Button4 = New System.Windows.Forms.Button() + Me.Button5 = New System.Windows.Forms.Button() + Me.Button6 = New System.Windows.Forms.Button() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.cbxGezeKN8 = New System.Windows.Forms.CheckBox() + Me.cbxGezeTranslate = New System.Windows.Forms.CheckBox() + Me.cbxVERAG_V1_translate = New System.Windows.Forms.CheckBox() + Me.cbxVERAG_V1_Kn8 = New System.Windows.Forms.CheckBox() + Me.cbxGezeTNR8to11 = New System.Windows.Forms.CheckBox() + Me.cbxVERAG_V1_TNR8to11 = New System.Windows.Forms.CheckBox() + Me.Button7 = New System.Windows.Forms.Button() + Me.SuspendLayout() + ' + 'Button1 + ' + Me.Button1.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button1.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button1.Location = New System.Drawing.Point(4, 35) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(130, 71) + Me.Button1.TabIndex = 0 + Me.Button1.Text = "VERAG Template" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "importieren" + Me.Button1.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button1.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button2.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button2.Location = New System.Drawing.Point(140, 209) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(130, 71) + Me.Button2.TabIndex = 1 + Me.Button2.Text = "MEYLE" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "importieren" + Me.Button2.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button2.UseVisualStyleBackColor = True + ' + 'Button3 + ' + Me.Button3.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button3.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button3.Location = New System.Drawing.Point(4, 209) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(130, 71) + Me.Button3.TabIndex = 2 + Me.Button3.Text = "GEZE" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "importieren" + Me.Button3.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button3.UseVisualStyleBackColor = True + ' + 'Button4 + ' + Me.Button4.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Button4.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button4.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button4.Location = New System.Drawing.Point(276, 35) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(130, 71) + Me.Button4.TabIndex = 3 + Me.Button4.Text = "VERAG Template V1 " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Vorlage öffnen" + Me.Button4.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button4.UseVisualStyleBackColor = False + ' + 'Button5 + ' + Me.Button5.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button5.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button5.Location = New System.Drawing.Point(276, 209) + Me.Button5.Name = "Button5" + Me.Button5.Size = New System.Drawing.Size(130, 71) + Me.Button5.TabIndex = 4 + Me.Button5.Text = "Fressnapf " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "importieren" + Me.Button5.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button5.UseVisualStyleBackColor = True + ' + 'Button6 + ' + Me.Button6.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button6.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button6.Location = New System.Drawing.Point(412, 209) + Me.Button6.Name = "Button6" + Me.Button6.Size = New System.Drawing.Size(130, 71) + Me.Button6.TabIndex = 5 + Me.Button6.Text = "Dynamic Automotiv importieren" + Me.Button6.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button6.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(12, 16) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(89, 13) + Me.Label1.TabIndex = 6 + Me.Label1.Text = "VERAG Vorlagen" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(12, 193) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(98, 13) + Me.Label2.TabIndex = 7 + Me.Label2.Text = "KUNDEN Vorlagen" + ' + 'cbxGezeKN8 + ' + Me.cbxGezeKN8.AutoSize = True + Me.cbxGezeKN8.Checked = True + Me.cbxGezeKN8.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbxGezeKN8.Location = New System.Drawing.Point(12, 287) + Me.cbxGezeKN8.Name = "cbxGezeKN8" + Me.cbxGezeKN8.Size = New System.Drawing.Size(118, 17) + Me.cbxGezeKN8.TabIndex = 8 + Me.cbxGezeKN8.Text = "KN8 Text ergänzen" + Me.cbxGezeKN8.UseVisualStyleBackColor = True + ' + 'cbxGezeTranslate + ' + Me.cbxGezeTranslate.AutoSize = True + Me.cbxGezeTranslate.Location = New System.Drawing.Point(12, 305) + Me.cbxGezeTranslate.Name = "cbxGezeTranslate" + Me.cbxGezeTranslate.Size = New System.Drawing.Size(78, 17) + Me.cbxGezeTranslate.TabIndex = 9 + Me.cbxGezeTranslate.Text = "übersetzen" + Me.cbxGezeTranslate.UseVisualStyleBackColor = True + ' + 'cbxVERAG_V1_translate + ' + Me.cbxVERAG_V1_translate.AutoSize = True + Me.cbxVERAG_V1_translate.Location = New System.Drawing.Point(12, 130) + Me.cbxVERAG_V1_translate.Name = "cbxVERAG_V1_translate" + Me.cbxVERAG_V1_translate.Size = New System.Drawing.Size(78, 17) + Me.cbxVERAG_V1_translate.TabIndex = 11 + Me.cbxVERAG_V1_translate.Text = "übersetzen" + Me.cbxVERAG_V1_translate.UseVisualStyleBackColor = True + ' + 'cbxVERAG_V1_Kn8 + ' + Me.cbxVERAG_V1_Kn8.AutoSize = True + Me.cbxVERAG_V1_Kn8.Checked = True + Me.cbxVERAG_V1_Kn8.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbxVERAG_V1_Kn8.Location = New System.Drawing.Point(12, 112) + Me.cbxVERAG_V1_Kn8.Name = "cbxVERAG_V1_Kn8" + Me.cbxVERAG_V1_Kn8.Size = New System.Drawing.Size(118, 17) + Me.cbxVERAG_V1_Kn8.TabIndex = 10 + Me.cbxVERAG_V1_Kn8.Text = "KN8 Text ergänzen" + Me.cbxVERAG_V1_Kn8.UseVisualStyleBackColor = True + ' + 'cbxGezeTNR8to11 + ' + Me.cbxGezeTNR8to11.AutoSize = True + Me.cbxGezeTNR8to11.Location = New System.Drawing.Point(12, 323) + Me.cbxGezeTNR8to11.Name = "cbxGezeTNR8to11" + Me.cbxGezeTNR8to11.Size = New System.Drawing.Size(126, 17) + Me.cbxGezeTNR8to11.TabIndex = 12 + Me.cbxGezeTNR8to11.Text = "unvollst.TNR ergänz." + Me.cbxGezeTNR8to11.UseVisualStyleBackColor = True + ' + 'cbxVERAG_V1_TNR8to11 + ' + Me.cbxVERAG_V1_TNR8to11.AutoSize = True + Me.cbxVERAG_V1_TNR8to11.Location = New System.Drawing.Point(12, 149) + Me.cbxVERAG_V1_TNR8to11.Name = "cbxVERAG_V1_TNR8to11" + Me.cbxVERAG_V1_TNR8to11.Size = New System.Drawing.Size(126, 17) + Me.cbxVERAG_V1_TNR8to11.TabIndex = 13 + Me.cbxVERAG_V1_TNR8to11.Text = "unvollst.TNR ergänz." + Me.cbxVERAG_V1_TNR8to11.UseVisualStyleBackColor = True + ' + 'Button7 + ' + Me.Button7.BackColor = System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(255, Byte), Integer), CType(CType(192, Byte), Integer)) + Me.Button7.Image = Global.SDL.My.Resources.Resources.Excel_logo + Me.Button7.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.Button7.Location = New System.Drawing.Point(412, 35) + Me.Button7.Name = "Button7" + Me.Button7.Size = New System.Drawing.Size(130, 71) + Me.Button7.TabIndex = 14 + Me.Button7.Text = "VERAG Template V1.1 " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Vorlage öffnen" + Me.Button7.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.Button7.UseVisualStyleBackColor = False + ' + 'cATLAS_EZA_IMPORT + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(563, 355) + Me.Controls.Add(Me.Button7) + Me.Controls.Add(Me.cbxVERAG_V1_TNR8to11) + Me.Controls.Add(Me.cbxGezeTNR8to11) + Me.Controls.Add(Me.cbxVERAG_V1_translate) + Me.Controls.Add(Me.cbxVERAG_V1_Kn8) + Me.Controls.Add(Me.cbxGezeTranslate) + Me.Controls.Add(Me.cbxGezeKN8) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.Button6) + Me.Controls.Add(Me.Button5) + Me.Controls.Add(Me.Button4) + Me.Controls.Add(Me.Button3) + Me.Controls.Add(Me.Button2) + Me.Controls.Add(Me.Button1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "cATLAS_EZA_IMPORT" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "DATEN IMPORT" + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents Button1 As Button + Friend WithEvents Button2 As Button + Friend WithEvents Button3 As Button + Friend WithEvents Button4 As Button + Friend WithEvents Button5 As Button + Friend WithEvents Button6 As Button + Friend WithEvents Label1 As Label + Friend WithEvents Label2 As Label + Friend WithEvents cbxGezeKN8 As CheckBox + Friend WithEvents cbxGezeTranslate As CheckBox + Friend WithEvents cbxVERAG_V1_translate As CheckBox + Friend WithEvents cbxVERAG_V1_Kn8 As CheckBox + Friend WithEvents cbxGezeTNR8to11 As CheckBox + Friend WithEvents cbxVERAG_V1_TNR8to11 As CheckBox + Friend WithEvents Button7 As Button +End Class diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.resx b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.resx new file mode 100644 index 00000000..f7f78d59 --- /dev/null +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.resx @@ -0,0 +1,1253 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAgBABMLAAATCwAAAAAAAAAA + AABmMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/5uDd///////////////////////39fT/dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP+AXUL///////////////////////////////////////////////////////// + /////////////////////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/3RJJv/39fT///////// + /////////////2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+AXUL///////////////////////// + //+YfWv/ZjMA/2YzAP9mMwD/ZjMA/3RJJv/u6+n/////////////////9/X0/3RJJv9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/39fT//////////////////////8Gzqv9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec/9TLxf//////////////////////y7+4/62a + jf9mMwD/ZjMA/5h9a////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/3RJJv////////////////////////////// + ///Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/u6+n///////// + ////////////////////////////////////////////////////////////////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+bg3f//////////////////////jG5Y/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/7ennP//////////////////////5uDd/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/5h9 + a///////////////////////wbOq/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm//// + ////////////////////////o4x9/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/rZqN//// + /////////////////////////////////////////////+bg3f+Mblj/t6ec////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/jG5Y//////////////////////////////////////+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/9TLxf////////////////////////////////////////////// + ///////////////////////////////////Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/wbOq//// + //////////////////+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/5uDd//////////////////// + //+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/9TLxf//////////////////////gF1C/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////////////////////////90SSb/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/8u/uP////////////////////////////////////////////// + //////////////f19P/m4N3///////////+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////// + /////////////93W0f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//// + ///////////////////39fT/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+jjH3//////////////////////8u/uP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/4BdQv///////////////////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/gF1C//f19P/////////////////Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7en + nP//////////////////////9/X0/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////// + ///////////////////Uy8X/gF1C/2YzAP9mMwD/t6ec//f19P///////////////////////////9TL + xf9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/8Gzqv//////////////////////7uvp/////////////////62ajf9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+Mblj///////////////////////////90SSb/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/4xu + WP//////////////////////5uDd/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//////////////////// + ///Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//////////////////// + ///////////////////////////////////////////////////////////////////Uy8X/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA//f19P//////////////////////y7+4/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/gF1C/+7r6f//////////////////////9/X0/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/5uDd//////////////////// + //+jjH3/////////////////7uvp/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/3RJ + Jv///////////////////////////6OMff9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA//f19P//////////////////////dEkm/2Yz + AP9mMwD/ZjMA/2YzAP/m4N3//////////////////////6OMff9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/7uvp//////////////////////////////////////////////////// + /////////////////////////////7ennP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+jjH3///////// + //////////////////+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/jG5Y//////////////////// + ////////dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP/39fT//////////////////////2YzAP/Lv7j/////////////////t6ec/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+bg3f//////////////////////wbOq/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/1MvF//////////////////////+YfWv/ZjMA/2YzAP9mMwD/gF1C//////////////////// + ///39fT/dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////// + ////////////////////////////////////////////////////////////////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP///////////////////////////2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/1MvF//////////////////////+jjH3/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/jG5Y//////////////////// + ///m4N3/ZjMA/4BdQv/39fT////////////39fT/gF1C/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/wbOq///////////////////////Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////// + /////////////////////////////////////////////+7r6f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Uy8X/////////////////7uvp/2YzAP9mMwD/ZjMA/2Yz + AP+Mblj///////////////////////////90SSb/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/t6ec//// + ////////////////////////ZjMA/2YzAP9mMwD/dEkm//////////////////////////////////// + /////////////7ennP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP+jjH3//////////////////////9TLxf9mMwD/ZjMA/7ennP////////////// + ///Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////// + /////////////////////////////////////////////+bg3f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/6OMff////////////////////////////////////////////////////////////// + ///////////////////d1tH/jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/4Bd + Qv//////////////////////rZqN/2YzAP9mMwD/ZjMA/62ajf//////////////////////5uDd/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////////90SSb/ZjMA/2Yz + AP9mMwD/5uDd////////////////////////////////////////////1MvF/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP////////////// + ////////t6ec/2YzAP9mMwD/dEkm//f19P////////////////+YfWv/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/4xuWP////////////////////////////////////////////////////////////// + /////////////2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm//////////////////// + ////////////////////////////////////////////////////////////////////////mH1r/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP/////////////////39fT/dEkm/2Yz + AP9mMwD/wbOq///////////////////////Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/6OM + ff///////////////////////////6OMff9mMwD/ZjMA/2YzAP/Bs6r///////////////////////// + ///////////////////39fT/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/1MvF//////////////////////+tmo3/ZjMA/2YzAP9mMwD/rZqN//// + /////////////+bg3f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA//f19P////////////// + ////////////////////////////////////////////////////////mH1r/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/7uvp//////////////////////90SSb/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP+jjH3/5uDd///////////////////////39fT/dEkm/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/+7r6f////////////////+3p5z/ZjMA/2YzAP/Uy8X//////////////////////7en + nP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm////////////////////////////wbOq/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/u6+n///////// + /////////////4xuWP9mMwD/ZjMA/2YzAP9mMwD/7uvp/////////////////62ajf9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/3dbR///////////////////////Bs6r/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Uy8X///////// + /////////////5h9a/9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP90SSb/7uvp//////////////////// + //+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/o4x9//////////////////f1 + 9P+AXUL/ZjMA//f19P//////////////////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/1MvF///////////////////////39fT/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/Bs6r//////9TLxf+3p5z/t6ec/5h9a/9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/dEkm////////////////////////////dEkm/2YzAP9mMwD/ZjMA/2Yz + AP+tmo3/////////////////7uvp/3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Bs6r///////// + /////////////+bg3f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP//////////////////////t6ec/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP/Lv7j//////////////////////8Gzqv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/1MvF/////////////////8u/uP90SSb///////////////////////// + //90SSb/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////////////////////// + //+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+7r6f//////////////////////o4x9/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+YfWv///////// + /////////////+7r6f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/d1tH/////////////////t6ec/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/6OMff///////////////////////////3RJJv9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/mH1r//// + ///////////////////Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/+bg3f////////////// + ////////t6ec/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+AXUL///////// + /////////////62ajf//////////////////////5uDd/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP/Bs6r///////////////////////////+YfWv/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP+tmo3//////////////////////+7r6f9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/7ennP//////////////////////1MvF/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/5h9a///////////////////////gF1C/2YzAP9mMwD/ZjMA/2YzAP9mMwD/gF1C//// + ////////////////////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP90SSb//////////////////////+7r6f9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/4BdQv/Lv7j///////////////////////////+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP+3p5z///////////////////////////////////////// + ///Lv7j/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/d1tH///////// + //////////////////+3p5z/dEkm/2YzAP9mMwD/t6ec////////////////////////////rZqN/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/y7+4//// + ///////////////////Bs6r/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/93W0f////////////// + ///Uy8X/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/9/X0//////////////////////////////////// + /////////////////////////////////////////////3RJJv9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/m4N3///////////////////////////////////////////////////////////////////////// + ////////wbOq/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/u6+n//////////////////////////////////////7ennP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/Uy8X///////////////////////////////////////// + /////////////////////////////8u/uP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP/m4N3//////////////////////62ajf9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/gF1C//////////////////////+YfWv/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP/Uy8X///////////////////////////////////////////////////////////////////////// + ////////mH1r/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/8u/uP////////////////////////////// + /////////////////////////////////////////////9TLxf9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/6OMff////////////////////////////// + ////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP+tmo3/9/X0//////////////////////////////////////////////////////+tmo3/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/dEkm//// + ////////////////////////jG5Y/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/y7+4//// + /////////////+7r6f90SSb/ZjMA/2YzAP9mMwD/ZjMA/7ennP////////////////////////////// + //////////////////////////////////////////////////+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/t6ec////////////////////////////////////////////////////////////5uDd/7en + nP+Mblj/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/93W0f////////////////////////////////9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/o4x9/7ennP/39fT///////// + /////////////9TLxf+3p5z/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2Yz + AP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/ZjMA/2YzAP9mMwD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA + AAEAAAACAAAAAwAAAAMAAAAFAAAABwAAAAkBAQEMAQEBEAMDAxQFBQUYBwcHHQUFBSAGBgYkBQUFJwQE + BCsFBQUtBQUFLwUFBTEFBQUxBgYGLgYGBioFBQUkBQUFHgMDAxgEBAQSAQEBDQEBAQkAAAAGAAAABAAA + AAIAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAIAAAADAAAABAAAAAcAAAAJAgICDAICAhAEBAQVBAQEGgUF + BSAFBQUnBQUFLQUFBTQGBgY6BgYGPwUFBUQEBARIBQUFSgUFBU0GBgZPBgYGUAYGBk8GBgZMBQUFRwUF + BUAFBQU5BQUFMQYGBikGBgYhBgYGGQQEBBMBAQENAAAACQAAAAUAAAADAAAAAgAAAAEAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAACAAAAAwAAAAUAAAAHAAAACAIC + AgwCAgIPBQUFFAQEBBkGBgYgBQUFJgUFBS4FBQU2BQUFPgUFBUYGBgZPBQUFVwUFBV0FBQVhBAQEZgQE + BGgFBQVqBQUFawUFBWwFBQVsBQUFawUFBWkFBQVlBQUFYAYGBlkFBQVSBQUFSAUFBT8GBgY0BQUFKgUF + BSAEBAQXAgICEAAAAAoAAAAGAAAABAAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAgAA + AAMAAAAEAAAABgAAAAgBAQELAgICDwMDAxMFBQUYBgYGHgUFBSUGBgYsBQUFNAUFBT0FBQVGBQUFTwUF + BVgGBgZgBQUFaQYGBm8FBQV2BgYGegUFBX4FBQV/BQUFgQUFBYEFBQWBBQUFgQUFBYAFBQWABAQEfQIC + AngCAgJ1AwMDcQMDA2wDAwNkAwMDWwQEBFIFBQVKBQUFPgUFBTEFBQUmBAQEHAICAhMBAQEMAAAACAAA + AAQAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAEAAAABAAAAAQAAAAIAAAADAAAABAAAAAYAAAAIAQEBCwICAg4DAwMTBQUFGAUFBR4GBgYkBQUFKwUF + BTMFBQU7BQUFRAYGBk4FBQVXBQUFXwUFBWgGBgZwBQUFdwYGBn0FBQWDBQUFhwUFBYsFBQWNBQUFjgUF + BY8FBQWPBQUFjwUFBY8EBASLAwMDiAQEBIkLCwuSFhYWpioqKsA3NzfeNzc34jMzM94lJSW7Dw8PhwQE + BGUFBQVeBgYGUgUFBUQFBQU2BQUFKQUFBR8DAwMVAQEBDgAAAAkAAAAFAAAAAwAAAAIAAAABAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAQAAAAFAAAABwAAAAoCAgINAgICEQUF + BRcFBQUcBgYGIwUFBSsFBQUyBQUFOgYGBkQFBQVNBgYGVQUFBV8FBQVnBgYGbgUFBXYGBgZ9BQUFggUF + BYcFBQWLBQUFjwUFBZEFBQWUBQUFlQUFBZYFBQWWBQUFlgUFBZYFBQWVAwMDkA0NDaEdHR3ALCws2jc3 + N/FJSUn/Tk5O/0lJSf9FRUX/QUFB/z09Pf81NTX4HBwcuAUFBXkFBQVvBQUFZQUFBVcFBQVJBQUFOwUF + BS0EBAQiAgICGAICAhABAQEKAAAABgAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAA + AAcAAAAKAQEBDQMDAxEFBQUWBQUFGwYGBiIFBQUpBgYGMQUFBTkGBgZCBQUFSwUFBVUFBQVdBQUFZgUF + BW4FBQV1BgYGfAUFBYEFBQWHBQUFiwUFBY4FBQWRBQUFkwQEBZUEBASVAgIClgAAAJQAAACSAAAAkgEB + ApUFBQWYBQUFmAQEBJQYGBjBMDAw+DY2Nv80NDT/Pz8//01NTf9ISEj/RERE/0BAQP87Ozv/ODg4/zU1 + Nf8zMzP/Hh4ezwUFBYYFBQV+BQUFdQYGBmkFBQVbBQUFTgUFBT8EBAQxBgYGJQQEBBsBAQESAAAADAAA + AAgAAAAEAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAACAAAABQAAAAkAAAAOAgICFAUFBRoFBQUgBgYGKAUFBS8FBQU4BQUFQQUF + BUoGBgZTBQUFXAYGBmUFBQVtBQUFdAUFBXsFBQWABQUFhgUFBYsFBQWOBQUFkQUFBZMEBASVAwMDlQAA + AJUAAACSAAAAkwQEBZcTExCgKyghsTYxKL80Lya+GxkUqAEBApQBAQKREhISvSgoKP8oKCj/JSUl/yoq + Kv9JSUn/SkpK/0VFRf9AQED/ODg4/zIyMv8vLy//MDAw/y4uLv8sLCz/GBgYzAQEBIoFBQWJBQUFggYG + BnkFBQVuBQUFYAUFBVIFBQVDBQUFNQUFBSkFBQUeBAQEFAEBAQ4AAAAJAAAABQAAAAMAAAABAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAANAQEBFQMD + AyEFBQUrBQUFNQUFBT8FBQVIBgYGUQUFBVsGBgZjBQUFawYGBnMFBQV6BgYGgAUFBYUFBQWKBQUFjgUF + BZAFBQWTBAQElQICApUAAACUAAAAkQAAAJQICAiZJSQhp0NBObtkYFPPgnxq542Eb/aNg2r+i35k/4l7 + Yf96bVX6SUAx0A4NDKcXFxjzGxsb/xoaGv8XFxf/Li4u/05OTv9HR0f/QEBA/0RERP9oaGj/dXV1/1VV + Vf8uLi7/Jycn/ygoKP8lJSX/Dg4OswMDA48FBQWRBgYGjAUFBYQFBQV8BQUFcQUFBWUFBQVXBQUFSAQE + BDoFBQUtBAQEIQMDAxcDAwMQAAAACgAAAAYAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAEAAAAEAAAACgMDAxYFBQUlBQUFNgUFBUQFBQVSBQUFXgUFBWcFBQVxBQUFeAUF + BX8FBQWFBQUFiQUFBY0FBQWQBQUFkgQEBJQCAgKUAAAAkwAAAJEAAQGUDQwMmzAvK6tSUEfAfHlr1p2Z + h+ywq5b6uLKb/7Stlf+ooIj/m5J7/4yCav+Dd17/gXRc/35xWP9/cFT/SD8v9ggJCv8PDw//EBAQ/w4O + Dv81NTX/TExM/0RERP9GRkb/amlp/39/f//S0tP/3Nzd/5CQkP8xMTH/ICAg/yIiIv8aGhrtBgYGmgQE + BJUFBQWVBQUFkgUFBY0FBQWHBgYGfwYGBnUFBQVoBQUFWwYGBk0FBQU+BAQEMAUFBSQEBAQaAwMDEgAA + AAsAAAAHAAAABAAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQCAgINBgYGGwQE + BC4FBQVCBQUFVQUFBWQFBQVwBQUFegYGBoMGBgaJBQUFjgUFBZEEBASTAQECkwAAAJMAAACRAQEBlRAQ + D5w4NzKuXFpQxIOBc9mqp5Xwvrum/MfErf/Fwav/v7mk/7iznP+xq5T/qqON/6Kag/+Yj3j/i4Fp/4N3 + Xv+BdFz/fG9X/3hqUP9fU0D/GRkZ/wEBAv8AAAH/BAQD/zk5Of9ISEj/Pj4+/2JiYv9paWn/SkpK/2ho + aP/e3t//+vr6/5ubm/8kJCT/HBwc/xsbG/8NDQ3ABAQEkgUFBZgFBQWXBQUFlQUFBZMFBQWPBQUFiQUF + BYIFBQV4BQUFbQYGBl8FBQVRBQUFQwUFBTUFBQUoBAQEHQMDAxQCAgINAAAACAAAAAUAAAADAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAACAAAABAICAgwHBwcaBQUFKwUFBT4FBQVQBgYGYAYGBm4FBQV5BAQEgQEB + AoYAAACJAAAAigAAAZAQEA6bNTQurGFfVMSMiXrapKGO8qShjv3Bvqn/zMmz/8XCrP/Bvqj/vbqk/7u3 + ov+5tJ//tbCa/7CqlP+qo43/o5uE/5mRev+Ng2v/hXpg/4N2Xv99cVj/c2VM/4ByXP+dj4T/bWRd/xkY + GP8FBQb/Pj4+/0ZGRv8+Pj7/cXFx/3x8fP92dnb/X19f/4SEhP/5+fn/7u7u/2JiYv8VFRX/GBgY/xER + EeUFBQWXBQUFmAUFBZkFBQWYBQUFmAUFBZYFBQWUBQUFkAUFBYsGBgaEBQUFfAUFBXAGBgZkBgYGVQUF + BUcEBAQ5BQUFLAUFBSADAwMWAQEBDwAAAAoAAAAGAAAAAwAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACAIC + AhEEBAQeBAQELAICAjoAAAFFAAAATgAAAFcEBARnFRUTgDs6NJ1jYle9iYd416imkvCoppL+paKS/5WT + iP+cm5X/qKem/6yqm//DwKr/wL2o/7+8pv+9uqT/u7ei/7q1oP+4s53/tK+Z/6+okv+hmYL/kYhw/35y + Wf9wYkf/cmRF/3RmS/9yZEr/gXJc/6majP+xoZP/dm1m/xMTFP85OTn/Q0ND/z09Pf98fHz/k5OU/5CQ + kf+Li4r/ampq/7e3t//j4+P/oKCg/yAgIP8TExP/EhIS/AcHB6gFBQWWBQUFmQUFBZkFBQWZBQUFmAUF + BZgFBQWXBQUFlAUFBZIFBQWNBQUFhwYGBn4GBgZ0BQUFaAUFBVkFBQVLBQUFPAUFBS8FBQUjAwMDGQEB + AREAAAALAAAABwAAAAQAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAADAAAABAAAAAYAAAAKDAsLFxwcGThDQjtjcG5im5KQ + f8ixrprrsK2Z/q2rmf+fnZH/n56X/7KysP/Ozs7/8PDx//7+////////ubep/8G+p//Cv6r/w8Cq/8PA + qv/AvKf/tbCa/6agif+OhW3/fG9X/3NjTf9lUz7/a15N/2xmZP9NSFL/V0xB/1tONv93aVP/p5iL/6aX + iv+fkYX/NzY1/zg5Of9AQED/ODg4/4SEhP+DhIX/goKD/6Wlpv98fHz/gYGB/76+vv+srKz/Ojo6/w4O + Dv8SEhL/CQkJvgQEBJMFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgFBQWYBQUFlwUFBZYFBQWSBQUFjwYG + BokGBgaBBgYGdwYGBmsGBgZeBQUFTwQEBEEEBAQzBAQEJgMDAxwBAQETAAAADQAAAAcAAAAFAAAAAwAA + AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAgIBwNNjUvMXt5bHCem4qxwL2o3r+8pv+0sZ//p6aZ/6emn/+5ubb/zc3N/+7u7//8/P3///////// + ///////////////////Bv7H/x8Wt/7+7pf+wqpT/l494/4F4Y/90aVX/bGFQ/3Vyaf93f33/fpmf/3y0 + xv9twtP/R37e/woW6v8qNK7/e3Jj/31yY/+mlon/pJWI/6qajf9jXln/PT0+/0JCQv8yMjL/dHR0/4KD + hP9ZWlz/iYmK/4KCgv9ubm7/mpqa/5iYmP9KSkr/DAwM/w8PD/8JCQnNBAQEkgUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmAUFBZcFBQWWBQUFlAUFBZAGBgaLBgYGgwUFBXoFBQVvBQUFYgUF + BVMFBQVFBAQENwQEBCkEBAQfAgICFQAAAA8AAAAJAAAABQAAAAMAAAACAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAzcmzCsjFryuWk4Nlioh5pMXCrdPGw67+zsu0/8nFsP/DwKn/xsS3/9DQ + 0P/v7/D//f3+/////////////////////////////////////f/t7Ob/0MzA/5mSff94b1r/YllH/0pB + NP8/OjL/nJSO/5uUjv+ls7n/xuXt/5Pp//9m4///eOr//03l//9opfj/U0zw/zg/vP+Ce3H/jYV7/6WW + iP+klYj/qJiL/4l/dv9DQ0P/SEhI/zExMf9NTU3/lZWV/1tcXf9paWr/eHh4/2FhYf97e3v/gICA/0hI + SP8LCwv/DQ0N/wgICNYFBQWUBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUF + BZgFBQWYBQUFlgUFBZQFBQWRBQUFjAUFBYYFBQV9BQUFcgUFBWUFBQVXBAQESQUFBTsEBAQuAwMDIgMD + AxgBAQEQAAAACwAAAAYAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/qpnCv6rSwr+q/crH + sf/MyLL/w8Cr/8PAq//Cv6r/wr+q/767o//f3tL///////////////////////////////3/7Ovk/83K + vv+mn4//e3Ri/1lRQP9COy7/OjUu/zc1Mv81NTX/NTU2/zM0Nf+wqqf/r6af/7TDyf/Z+///oOz//1Xg + //9j4///gOz//6G89P9GPuT/NDi1/4F7cP+Gfnb/oJKG/6WWiP+lloj/opSH/01LSf9KS0v/Nzc3/y0t + Lf93d3f/h4eH/3Jycv9hYWH/U1NT/2FhYf9ubm7/Pj4+/wkJCf8KCgr/BgYG2QUFBZQFBQWYBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWYBQUFmAUFBZcFBQWVBQUFkgUF + BY4FBQWIBQUFgAUFBXUFBQVqBQUFXAUFBU4EBAQ/BAQEMgQEBCUDAwMbAQEBEgAAAAwAAAAIAAAABQAA + AAIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAwr+q+8K/qv/Cv6r/wr+q/8K/qv/Cv6r/wr+q/8K/qv/Cv6r/v7yl/+Lh + 1v/////////+/+zr5P/NyL3/o5yN/3dvXv9WTj7/PTcr/zEtJv8uLCr/LS0t/y0uL/8tLi//MDEy/0A/ + P/9PTU3/ZGNi/7Wuqv+6sKj/wb26/8Xd5f/E6vT/uOXx/7/i6//j5+b/x8DL/2tli/9oZYT/gntz/4F7 + dP+ZjYL/ppaJ/6WWif+uoJP/dG1n/z09Pv9GRkb/KCgo/zo6Ov97e3v/YGBg/0lJSf9JSUn/UVFR/2xs + bP8fHx//CAgI/wgICP8FBQXUBQUFkQUFBZQFBQWXBAQEmQAAAZYAAAGVAgIDlwUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmAUFBZgFBQWXBQUFlQUFBZMFBQWPBQUFiQUFBYIGBgZ5BQUFbQUF + BWAFBQVSBQUFRAQEBDUEBAQpBAQEHgICAhUAAAAOAAAACQAAAAUAAAADAAAAAQAAAAEAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCv6rvwr+q/8K/ + qv/Cv6r/wr+q/8PAq//GxK//yMWw/8jFsP++uqP/ubSj/6agkf93cF//Uks7/zYxJv8rJyH/JyYj/yUl + Jv8mJyj/KCkq/y8vMP9DQ0P/VlZW/29ubv9/fn7/hYSD/358e/9qamn/rqei/7atpP/Tzsr/2tTR/9rT + 0P/e1NH/3dXS/97Y1v/LxsD/hX5w/4R9cP+BenT/gHpz/4+FfP+nmIv/qZuQ/7Cil/+lmpH/Ozs6/0tL + TP80NDT/ICAg/zk5Of9oaGj/ZGRk/19fX/9sbGz/PDw8/wkJCf8JCQn/BQUF/wEBAfkBAQHhAwMDuwAA + AZ0EBQWXHx0ZqCQiHa0TEhCgAQEClQAAAJUEBASYBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUF + BZgFBQWYBQUFlwUFBZcFBQWUBQUFkAYGBosGBgaFBQUFfAYGBnEFBQVkBQUFVgUFBUgEBAQ6BAQELAMD + AyEDAwMXAQEBEAAAAAoAAAAGAAAAAwAAAAIAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/qu/DwKv/xsSv/8jFsP/Fwqz/vbmj/66okv+UjXf/b2dV/1BJ + O/80LyX/JCEb/x8eHP8dHR7/HyAi/yQlJv8xMDD/RURD/1pYV/9ycG//gX9+/4B/f/91dHT/YGBg/1BP + T/9BQUH/OTo6/zY3N/+gmZX/tayj/9HMx//a1dL/2dTS/9nV0v/a1dP/3tnY/8rFwv+AenT/f3hy/4F6 + dP+AenT/hX12/6aZjv+uoZb/sqab/72xp/90b2r/Kyss/05OTv8nJyf/Ghoa/yMjI/86Ojr/Pj4+/ycn + J/8LCwv/CwsL/wcHB/8DAwP/AAAA/wAAAP8AAAD/FhUS73BpWOaLgWn5hnph/XNoUfJVTT3WLSslsQgI + CJgAAACUAgIDmAUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgFBQWXBQUFlQUF + BZIGBgaNBQUFhwUFBX4FBQV0BQUFZwUFBVoFBQVMBAQEPQUFBTAEBAQkBAQEGQEBAREAAAALAAAABwAA + AAQAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxsOv8MG9 + pv+qo4v/kIVu/39zXv9rYlP/UUpB/x4cF/8ZGBf/FRYX/xobHP8iIiL/MzIx/0dFQ/9eW1j/cW5r/3h1 + dP9ycG//ZWRj/1FQUP9CQkL/NTU1/zExMf8vLy//MjIy/zg4OP9HRkb/V1ZV/6efmv+xp57/0MrH/9nU + 0P/Z09D/2dTR/9rV0v/e2df/ycTB/4B6dP9+eHL/gHp0/4B3av+AeXH/nJKJ/7Sonv+1q6L/vLKp/7qx + qv9BPz3/Li4v/0lJSf8hISH/FhYW/xEREf8ODg7/DQ0N/w0NDf8JCQn/BAQE/wEBAf8AAAD/AAAA/wkJ + B/97dGD/lIhu/35yWP90ZUv/cWJI/3RlSf+FeWD/bWVS5j88M7wODw2cAAAAkwEBApcFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWYBQUFlwUFBZYFBQWTBQUFjgUFBYkFBQWBBQUFdwUF + BWwFBQVeBQUFUAUFBUEEBAQ0BAQEJgQEBBwCAgITAQEBDQAAAAgAAAAEAAAAAgAAAAEAAAABAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6b1nzV01C/1xfXf9ngIH/X5us/23F4f9Sg5b/HRgW/zYz + Mf9JRkP/X1tX/25pZf9uamf/ZWNg/1VUUv9CQkH/NTU1/ywsLf8qKir/Kikp/zAwMP85OTn/Tk1N/2Ri + Yv93d3b/hYSD/4SDgv96eHj/qaGa/66kmv/Qysb/2dPQ/9jSz//Z09D/2tTR/93Y1f/JxMH/gHl0/354 + cv+AenX/fnRi/393af+Jgnz/s6if/7uxqf++ta7/yL+4/7KqpP8vLy3/JCUl/0BAQP8lJSX/ExMT/xAQ + EP8ODg7/CwsL/wcHB/8CAgL/AAAA/wAAAP8AAAD/Ojct/5SIb/97bVX/bmBG/25gRv90Zkz/dmlQ/3hq + UP9uYkj/fnRc/4Z+au9NST3GGRgVoQAAAJMAAAGWBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmAUFBZcFBQWWBQUFlAUFBZAFBQWLBQUFgwUFBXoGBgZvBQUFYgYGBlQFBQVFBQUFNwUF + BSoFBQUfAgICFgICAg4AAAAJAAAABQAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEw8 + G40rKWT/erT2/4L1//9n6f//j/D//6i7wP9hWFH/Yl1Z/1dUUf9EQkH/NDQz/ykpKv8kJSX/IyQk/yYm + Jv8tLS3/Ozo5/09OTf9lY2L/fHt6/4WDg/+Af3//c3Ny/15eXv9QUFD/RERE/z4+P/+akYv/rqSZ/9DK + xv/Y09D/19LP/9jT0P/Y09H/3dfV/8nDwP+AenT/f3hy/4F6df9/dmb/gHZk/4B4b/+elY7/wbix/8O6 + tP/Iv7r/1MvF/7q0r/9SUE7/JSUk/ycoKP8iIiP/GRkZ/xEREf8JCQn/BAQE/wAAAP8AAAD/AAAA/wAA + AP9OSTv/i31j/3BhR/9wYkf/e25U/4J3X/+IfWT/gnZd/2laQf9PRDL/g3Ze/4J2W/96cVv0XllNzh0d + GaYAAQGUAAABlgUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgFBQWXBQUFlgUF + BZQFBQWRBQUFjAUFBYUEBAR6AQEBbAEBAV0BAQFPAwMDRQUFBToFBQUtBQUFIgQEBBgBAQEQAAAACgAA + AAYAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZFxEFD07kPZ+vP//eOz//4Lk+//L5ev/p5+a/yEg + IP8fHyD/HB0e/x0dHv8jIiP/LCsr/z08Ov9SUE3/aWZk/3l2c/96eHb/c3Fw/2VkY/9QT0//RERE/zg4 + OP81NTX/NDU1/zk5Of9AQED/U1JR/6Wdlv+topj/0MnF/9fSzv/X0c7/19LP/9jT0P/c19T/yMPA/4F7 + dP+AeXL/gXp1/392aP+BeW//gHZm/4R9dv+yqqP/zcO+/8zEv//Qy8b/2tTR/9zX1P+0sK7/cW9t/z07 + Ov8aGhr/BQYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0tFNv+Bc1j/bl9E/3lsUv+Ge2L/koly/5qR + ev+UinL/e25V/0Y7Kv9vYUr/a11D/1lOOP+Sh27/hXtj+VlTQ9YiIB2nAAAAlQUFBZkFBQWZBQUFmQUF + BZkFBQWZBQUFmQUFBZkFBQWZBQUFmQUFBZgEBASYBAQElgICApICAgKPBQUFkhAQEJofHx+vIiIitR8f + H6oRERF/BAQEVgQEBEsFBQU/BQUFMQQEBCUFBQUaAgICEgAAAAwAAAAHAAAABAAAAAIAAAABAAAAAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB0c24UeXaY9a7D3P/N2Nb/zs3J/97Syf+emZL/FRUV/yopJ/9APTr/VVFO/2lkYf9ybWr/b2xp/2Vi + Yf9UU1L/QkJC/zc3N/8vMDD/LS4u/zExMf85ODj/R0ZG/19dXf9vbm7/gH5+/4eFhf+DgYD/sqmj/6+l + m//OyMT/19HO/9fQzf/X0c7/2NLP/9vX0//Iw7//g3t1/4B6c/+Ce3X/gHZo/4N8df+CeGz/gHZn/42E + fv/Fvrn/2tTQ/9XQzf/Y1NL/3dnY/+He3f/j3tv/0cvH/6+ppP+HgX3/YV1a/w0MDP8AAAD/AAAA/wAA + AP8AAAD/Lioh/3prUP9wYkn/f3Na/5CGbv+hmoP/rqiS/6ihi/+Jf2n/YVZE/4N3X/9zZkv/Sz8t/29i + TP93aU7/a19H/4mAa/YuKySxAAAAkwQEBJkFBQWZBQUFmQUFBZkFBQWZBQUFmQQEBJcCAgKVAgICkwYG + BpgMDAyhFxcXtiMjI80yMjLmRkZG+UxMTP9ISEj/QkJC/zk5OfojIyPBCAgIcQQEBFwGBgZRBAQEQwUF + BTUFBQUoBAQEHQMDAxQBAQENAAAACQAAAAUAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1rahaqo5n12czB/9PIwP/SycH/1c7H/7Ot + pv9sZmH/cmxo/2FcWf9UUU//QkFA/zU1Nf8sLC3/Jygo/ygoKP8wMDD/Ojk5/09OTf9lY2L/eXd2/4SD + gv+Hhob/fXx8/21tbf9ZWVn/S0tL/z4+P/+poZz/tqyi/87Iw//W0c3/1tDN/9bRzv/X0c//3NXT/8jC + v/+DfHX/gnpz/4N8dv+Ad2j/g3x0/4V9d/+CeWv/f3Vn/46Gf//Iw7//5+Tj/+Ti4f/i4OD/39zc/9rX + 1f/X0tD/1c/J/9fNx//FvLb/GxoY/wAAAP8AAAD/AAAA/wAAAP8HAQD/W043/3lqTv+Cdl3/lItz/6ii + jP+7t6L/wLym/4uBbf+KgG7/npV+/4qBaP9XTDn/dmpU/3BhRv9NQCv/cmZQ/3RoU+8cGhemAAAAlAAA + AJQDAwOYBQUFmQUFBZgEBASUCAgInRUVFbIkJCTMODg45DQ0NPgyMjL/MzMz/0NDQ/9NTU3/RUVF/z4+ + Pv85OTn/NjY2/zQ0NP8jIyPaCAgIgAUFBW4FBQVkBgYGVgUFBUcFBQU5BQUFLAQEBCECAgIXAQEBDwEB + AQoAAAAGAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbmxrFqSdmPXTysP/0MrC/9HJwv/Uzcb/t7Ks/21sbP9nZ2f/S0xM/zAwMf8lJSX/LS0s/z48 + O/9WU1H/aGVj/3h2c/99enj/d3Z0/2xra/9ZWVj/SEhI/zw8PP81NTX/ODg5/0FAQf9PTk7/YmFh/7u0 + sP+4r6b/zcbC/9bQzP/W0Mz/1tHN/9fRzv/b1dL/yMK//4R9dv+Ce3T/g3x2/4F3aP+EfXX/hX52/4Z+ + d/+Eemz/gHVl/4Z+dP+vqaT/3NrY/+3t7f/v7e7/6Obl/9/c2//Z09D/zsbB/7auqP8aFBD/AAMF/wAO + F/8AJ0H/AD9r/wAcOP8OEBD/WEct/4NyU/+ViW7/oJiB/6Sdh/+Ph3H/jYJw/7y4pP+3spz/mJB6/29j + UP+TinP/hXlf/1FFMf9mWkX/dGVK/4t8bfltZFvYMCwosQUGBZgAAACSAgIClhsbG8UxMTHxNjY2/0ND + Q/8zMzP/ISEh/yAgIP8oKCj/SkpK/0hISP8/Pz//Q0ND/z4+Pv8xMTH/Kioq/ywsLP8bGxvYBQUFhAUF + BX4GBgZ0BQUFaAUFBVoFBQVMBQUFPgUFBTAFBQUkBgYGGgMDAxIBAQELAAAABwAAAAQAAAACAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABubmsWo52Y9dLJwv/QycH/0cnC/9XO + xv+wq6X/Xl1d/25sa/+Cf33/i4iF/4SBfv+EgH3/d3Nw/2JgX/9XVVT/RUVE/zk6Ov8wMTH/Ly8v/zo6 + Ov9HRkb/X11e/3Jxcf+Bf3//iYeH/4ODgv92dHT/wby5/7y0q//NxsH/19DM/9bPy//W0Mz/1tHN/9rV + 0f/Iwr7/hX53/4N8df+FfXf/gXho/4V+df+Gfnf/h393/4iAeP+GfXL/gndn/350ZP+If3P/oZqS/7Ot + pv+8trH/urWw/62moP+imJD/k4d9/xdhkv8Ac8P/AI7v/wCZ//8Amv//AG3X/wBXr/8BO3L/KDlF/1tQ + Pv9vXD7/aFg+/3JlUP+gmIP/tbCZ/7KumP+GfGj/pZ2K/6ymj/+ZkXn/ZFlG/4N3Yv94a1H/jn9v/6uc + jv+omIv/g3dt5kU/ObocGxrJICAh/yIiI/8rKyv/PDw8/xQUFP8TExP/EBAQ/ysrK/9NTU3/QUFB/1NT + U/+BgYH/urq7/5aWl/89PT3/ISEh/yIiIv8PDw+5BAQEigUFBYkEBAR+AgICcwEBAWUBAQFXAgICSgMD + Az8FBQU0BQUFKAUFBRwDAwMUAAAADQAAAAgAAAAFAAAAAwAAAAIAAAABAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAG9uaxajnJf10cfB/9DIwf/QycH/08zE/722r/+NiYX/lJCN/4+Miv+GhIP/fn59/3R0 + dP9jZGT/T09Q/0JDQ/8+Pj3/TkxM/2JgX/92dHL/g4GA/4KCgf97enr/bm1t/1lZWf9KSkr/RERE/0FC + Qv+8uLb/wbqy/8zGwP/V0Mv/1c/L/9bQzP/X0M3/2tTR/8jCvv+Gfnf/hH11/4V+d/+CeGj/hn52/4d/ + d/+Hf3f/iH94/4mAef+JgXn/iH50/4V7bP+Bd2f/f3Rl/4F2Zv+Cd2f/gnZl/4Z6af+NgXf/F4fP/wCS + 9v8Amv//AJn//wCU/f8Abtf/AG/a/wBy4P8AadL/AFao/xVFb/88R0v/bmFI/4d0Vf97blT/bWJN/5SL + d/++u6X/wb2o/5OKdf+LgW7/o5uE/5CGb/+ThHX/pJWI/6WWif+rm43/rJyO/5SHfP9iWlT/KScl/ykq + K/8kJSX/AgIC/wUFBf8CAgL/LCws/0lJSf9ISEj/cnJy/1RUVf+FhYb/8vP0/7u7u/80NDT/Gxsb/xcX + F+4EBASVBAQEjwsLC5gaGhqpKioqwSoqKsUfHx+jCwsLbwMDA04FBQVGBQUFOQQEBCsEBAQgAwMDFgEB + AQ4AAAAJAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb25rFqKclvXRx8D/0MjA/9DI + wf/UzcX/ta+p/2RkZP9iYmP/X2Bg/2NjY/9vbm3/eXh3/4yJiP+cmpf/op+d/5+dnP+cmpr/iYiH/3Rz + c/9dXV3/VFRU/05PT/9TU1P/X15e/3BwcP9/fn//lJKS/9jV0//BurL/y8S//9XPy//Vz8v/1dDL/9bQ + zP/Z1ND/y8TB/4iAef+FfXb/hn54/4J4af+Hf3b/iH94/4iAeP+JgHj/iYB4/4qBef+Lgnr/jIN7/4yD + e/+Ng3r/jYN5/42Def+OhHr/h3xr/4+CeP8XebX/AIfi/wCX/v8AmP//AJT8/wBv1/8AbdX/AG7W/wBw + 2f8AdOH/AHPi/wBs0/8FWaP/I1B0/0VKSP90ZUz/mIhp/5mNc/+DemX/iX9s/8G9qP+8uKH/m5F//5uM + fv+llon/pJWI/6SViP+klYj/qJmL/6ycjv+cjYH/gndv/z47OP8HCAf/CgoK/wgICP8tLS3/Q0ND/1RU + VP+EhIT/e3t7/2FhYf+tra3//v7+/4aGhv8XFxf/FRUV/xwcHNgsLCzdPj4+9ExMTP9JSUn/RERE/z4+ + Pv8yMjLuFhYWngQEBGEFBQVZBQUFSgUFBTwFBQUuBAQEIQEBARYAAAAOAAAABwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABvb2wWopyW9dHHv//PyMD/z8jA/9TNxf+xrKb/ZmRj/316eP+Kh4T/lJCO/5uX + lf+YlZP/j42M/4iHh/99fX3/dnd3/3N0dP90dHT/d3h3/4GBgf+Lior/m5ub/6inp/+wr6//s7Ky/6ur + qv+gn5//29rY/9DKw//Lxb//1c/L/9XPy//Wz8v/1tDM/9jTz//RzMj/i4N7/4Z+dv+Hf3j/gnhp/4h/ + d/+IgHj/iYB4/4mBef+KgXn/ioF5/4uCev+Mg3r/jYN7/42Ee/+OhHv/j4V8/5CGfP+IfWz/j4N4/xd3 + rv8Ahd3/AJf+/wCY//8AlPz/AHDY/wBu1v8AcNj/AHDY/wBx2f8Actr/AHTd/wB55v8AduT/AGzO/wla + n/8nTmn/QEI9/2hZQf+Yi3D/n5eA/1ZUSv94bWP/q5uO/6SViP+klYj/pJWI/6SViP+klYj/pJWI/6aX + iv+vnpD/mIuA/yQkI/8bGxr/Gxsb/zQ0NP8+Pj7/WVlY/5SUlP+Ojo//kpGS/3Z2dv/IyMj/srKy/y0t + Lf8ODg7/Hx8f/zU1Nf9JSUn/SUlJ/0FBQf85OTn/NDQ0/zMzM/8vLy//FBQUrgQEBHAFBQVpBQUFWgUF + BUoFBQU5BAQEKQICAhoAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBvbBaim5b10Ma//8/I + wP/PyMD/0svD/7y2r/+JhYL/h4SC/358e/90c3P/ampr/2hoaP9mZ2f/a2tr/3Z1df+BgID/kI+O/6Cd + nP+opqX/qqqo/6inpv+cnJz/k5OT/4iHiP+FhYX/kJCQ/5+fn//m5eT/2NPO/8vEv//Vz8v/1c/K/9bP + y//W0Mz/2dLP/9HLx/+MhHz/h393/4iAef+DeWn/iYB3/4mAeP+JgXn/ioF5/4qCef+Lgnr/jIJ6/4yD + ev+NhHv/joR7/4+FfP+QhXz/kIZ9/4l9bP+Qg3j/F3as/wCE3P8Alv7/AJj//wCU/P8Acdn/AG/X/wBx + 2f8Actr/AHLa/wBz2/8AdNz/AHbe/wB33/8AeuP/AH3r/wB66P8Abcz/BVWW/xk7Vf8YHiH/IRYL/4Bt + XP+kk4T/pZaK/6aXiv+llon/pJWI/6SViP+klYj/pJWI/6majf+ajoP/ODc3/y4uL/8vLy//PT09/z4+ + Pv9NTU3/hoaH/2hqa/+UlZb/dnZ2/5GRkf+pqan/RUVF/wsLC/8PDw//MzMz/0xMTP9CQkL/RUVE/1tb + W/9NTU3/Li4u/ykpKf8mJib9DQ0NoQQEBHYFBQVvBQUFXwUFBU0FBQU4BQUFJgICAhYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAcG9sFqGblfXQxb7/z8fA/8/IwP/UzcT/sKqk/1ZXWP9cXFz/X19f/2pp + aP93dXT/hYOB/5SRj/+dmpj/oJ6c/5+dnP+Tk5P/jIyM/4OEhP+AgID/iYiH/5WTkv+op6X/wb+9/9nX + 1f/s6+r///7+///////Z1dD/y8O9/9XPy//Vzsr/1c/L/9bQy//Z087/0cvH/4yEfP+If3f/iYB5/4N5 + av+JgHj/ioF5/4qBef+Lgnn/i4J6/4yDev+Mg3r/jYN7/46Ee/+PhXz/j4V8/5CGfP+Rhn3/iX1s/46D + ev8Wdq3/AITb/wCW/v8AmP//AJT8/wBz2/8Acdn/AHLa/wBz2/8AdNz/AHTc/wB13f8Adt7/AHjg/wB5 + 4f8AeuL/AHvj/wCA6v8Ag/H/AH7q/wVzzf85fbD/XnSC/3tvYv+Od2L/nIh1/6SUhv+nmIv/pZaJ/6SV + iP+klYj/qZuO/5yQhv9DQkH/OTo6/zo6Ov9DQ0P/RERE/zU1Nf+EhIT/ZWVm/25vb/9ubm7/c3Nz/4iI + iP9JSUn/CgoK/woKCv86Ojr/SEhI/0hISP9qamr/lpaX/9DQ0f+Ki4v/LS0t/yAgIP8aGhrlBQUFfAUF + BW4GBgZgBQUFTwUFBTsFBQUoAwMDGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwb2wWoZqV9c/F + vf/PyL//z8i//9PLw/+1rqj/dHFv/4iDgP+RjYr/lJGN/5OQjf+HhoT/fn5+/3l5ef90dHX/e3p5/4WD + gP+VkY7/qqSf/721sP/Mxr//29XQ/+Te2v/q5eL/8Ozo//Lw7v/39vX//////+Dd2f/Kw7z/1c/K/9XO + yv/Vz8r/1tDM/9jSz//Ry8f/jYV9/4mAeP+KgXr/hHlq/4qBeP+Lgnn/i4J6/4yCev+Mg3r/jYN6/42D + e/+OhHv/joV8/4+FfP+Qhnz/kYZ9/5GHff+LfWz/h4R//xB2sf8Ag9r/AJb+/wCY//8AlPz/AHTc/wBy + 2v8Ac9v/AHTc/wB13f8Adt7/AHbe/wB33/8AeOD/AHri/wB74/8AfOT/AH3l/wB/5/8AgOn/AITv/wCE + 8/8AhO//FoDS/zl4pv9fb3b/f3Bf/5V+av+ijn3/p5eK/6eYi/+rnJD/mo+E/zo5Of8yMjP/NDQ0/zY2 + Nv9LS0v/Ly8v/1VVVf+Kior/ampq/1ZWVv9YWFj/cXFx/zo6Ov8GBgb/BgYG/zs7O/9CQkL/YmJi/29v + b/9TU1P/pKSl//7+/v+Hh4f/HBwc/xoaGv8MDAyWBAQEVAYGBk4FBQU+BQUFLgUFBR8BAQESAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFvbhagmpT1z8S8/8/Hv//PyMH/1MvD/7u1rv93dHP/b25t/2tr + av9naGj/c3Jy/4GAfv+RjYr/oZuW/6yjnP+vpZv/tamg/72yqP/CuLD/yr+3/87Gvv/TzMX/2tTQ/+Ld + 2f/l4d7/6OXi/+jl4v/g3dr/x8K7/83GwP/Vzsr/1c7K/9XPyv/W0Mv/2NLO/9HLx/+Ohn3/ioF4/4uC + ev+Eemr/i4J5/4yCev+Mg3r/jIN6/42De/+NhHv/joR7/46Ee/+PhXz/kIZ8/5CGff+Rh33/kod+/4t9 + bP+IhH//EHaw/wCD2v8Alv7/AJj//wCU/P8Adt7/AHPb/wB13f8Add3/AHbe/wB33/8AeOD/AHnh/wB5 + 4f8Ae+P/AHzk/wB95f8Afub/AH/n/wCB6f8Agur/AIPr/wCE7f8Ah/P/AIn3/wKI7v8YgdD/PXWc/2Vu + cf+GdGT/nYZy/6+cjP+ZjoT/LCws/ysrK/8sLCz/KSkp/0BAQP9CQkL/JiYm/2BgYP9qamr/UVFR/1pa + Wv9oaGj/FxcX/wcHB/8GBgb/Ozs7/0BAQP9ycnL/jo6O/4ODhP9tbW3/0dHR/9TU1P9AQED/ERER/xAQ + EMMEBAQ1BQUFMQUFBSYFBQUbAQEBEgAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnBtFqGa + lfXQxb7/0cnC/9HLw//Wzsf/uLKs/3t6ev+WlZP/r6yq/8O/u//MxsH/0cnD/9DFvv/Iv7b/wbiv/7uw + p/+1qaD/tKmf/7qwp/++taz/wrix/8e+tv/Du7P/v7ev/762rv+5sqj/ubKo/8G4sP/Hv7j/1M3I/9TO + yf/Vzsn/1c/L/9bQy//Z087/0svH/4+Gfv+LgXn/jIN7/4V6av+Mgnn/jIN6/42De/+NhHv/jYR7/46E + e/+OhXz/j4V8/5CGfP+Qhn3/kYd9/5KHff+SiH7/i35s/4iFgP8QdrD/AIPa/wCW/v8AmP//AJX9/wB3 + 3/8Add3/AHbe/wB33/8Ad9//AHjg/wB54f8AeuL/AHvj/wB85P8AfeX/AH7m/wB/5/8AgOj/AIHp/wCD + 6/8AhOz/AIXt/wCG7v8AiPD/AInz/wCM+f8Ajv3/BIvv/xuAyf9Dc5L/cXd2/4V2aP85MSz/IR4c/yMi + Iv8iIiL/JCQk/0pKSv8wMDD/Hx8f/0ZGRv9dXV3/WFhY/yUlJf8ICAj/BAQE/w4ODv8/Pz//Ozs7/3R0 + dP+EhIb/lJSW/4aGhv+MjIz/wsLC/2pqav8PDw//EBAQ4QYGBiwDAwMUAgICEQEBAQwAAAAHAAAABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcG0XopyX9tLJwf/TzMb/083I/9LMxv/a1ND/8O3s//Lu + 6//r5+P/5N/b/97Z1P/X0cv/08vE/8/Gv//Ivrf/vLOr/7Wqof+rn5X/pZmO/6yil/+vppv/s6qg/722 + rP/CurH/ycG4/9HKw//TzcX/1M7H/9XPyf/Uzcj/1M7J/9XOyv/Vz8r/1tDL/9jSzv/Sy8f/j4d+/4uC + ef+NhHv/hXtr/42Cev+NhHv/joR7/46Ee/+OhHv/j4V8/4+FfP+QhXz/kYZ9/5GHff+Sh33/koh+/5OI + fv+Lfmz/iIWA/xB2sP8Ag9r/AJb+/wCY//8Alf3/AHjg/wB33/8Ad9//AHjg/wB44P8AeeH/AHri/wB7 + 4/8AfOT/AH3l/wB+5v8Afub/AIDo/wCB6f8Agur/AIPr/wCF7f8Ahu7/AIfv/wCI8P8AivL/AIvz/wCN + 9f8Ajvj/AJH//wCT//8Gje3/GHq9/zBjh/8cJi7/GhMP/xoTDv8YFhT/JSUk/0hJSf8oKCj/EhIS/xAQ + EP8MDAz/CgoK/wgICP8CAgL/Kioq/0hISP84ODj/YGBg/3t8ff9lZmf/hISF/3Fxcf+Wlpb/eHh4/xAQ + EP8NDQ31AwMDMgAAAAIAAAAGAAAABAAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJy + bxOhm5bt1MvE/9XPyv/Vz8v/083I/+Db1//5+Pb/8u/t/+/s6v/q5+P/39rW/9XQyv/Jwrv/ubGn/7Sr + ov+zqZ//s6qg/721q//EvbP/ycK5/9DJwf/Sy8P/0svD/9PMxP/SzMT/0cvD/9HKw//Sy8T/08zG/9PM + xv/SzMf/08zH/9TNyP/Vz8r/2dPO/9HLx/+Qh3//jIN6/46EfP+MgHD/kod+/46Ee/+OhHv/j4V8/4+F + fP+QhXz/kIZ8/5CGff+Rh33/kod9/5KIfv+TiH7/lIl//4x+bP+JhoD/EHaw/wCD2v8Alv7/AJj//wCV + /f8AeuH/AHjg/wB54f8AeeH/AHri/wB64v8Ae+P/AHzk/wB95f8Afub/AH7m/wB/5/8Agen/AILq/wCD + 6/8AhOz/AIbu/wCH7/8AiPD/AInx/wCK8v8AjPT/AI31/wCO9v8AkPj/AJH5/wCU/v8Al///AJn//wOL + 6P8IZaL/DjpW/xIXG/8QCAP/IRoW/z49PP8qKir/FhYW/w8PD/8JCQn/AgIC/xcXF/85OTn/RERE/0FB + Qf88PDz/iYmJ/2xtbv9tbm7/W1tb/3Fxcf9paWn/Dw8P/woKCvkBAQEvAAAAAAAAAAIAAAABAAAAAQAA + AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdnVyDJ6aldvVzcX/19HN/9fSzf/V0Mv/4t3a//b0 + 8//p5uL/0c3H/8XAuP+/uLD/urKp/7+3sP/IwLr/zca//9TOyP/X0cz/1s/J/9TNx//Sy8T/z8nB/8/H + vv/Oxr7/zsa+/8/Hv//RycH/08zE/9XOyP/X0cz/3djU/+Ld2v/k4N3/5ODd/+Hc2f/d19T/0szH/5GH + f/+Qhnz/hHtz/0tEO/9za2T/koh//4+FfP+QhXz/kIZ8/5CGff+Rhn3/kod9/5KHfv+SiH7/k4h+/5SJ + f/+UiX//jH5s/4qGgf8QdrD/AIPa/wCW/v8AmP//AJX9/wB74/8AeuL/AHri/wB74/8Ae+P/AHzk/wB9 + 5f8AfeX/AH7m/wB/5/8AgOj/AIHp/wCC6v8Ag+v/AITs/wCF7f8Ahu7/AIjw/wCJ8f8AivL/AIvz/wCM + 9f8Ajvb/AI/3/wCQ+P8Akvr/AJP7/wCV/f8Alv//AJr//wCg//8CnP//BYfe/whbkv8IK0H/DxAR/yIZ + E/8iHBj/FxYV/xISEv8ZGRn/Ly8v/zAwMP8zMzP/TExM/ysrK/9WVlb/fn5+/1RUVP9JSUn/ZmZm/0lJ + Sf8ICAj/BwcH+AEBASwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAB1dHEMn5uW3NbPyP/Z1M//2dTQ/9nU0P/c2NP/y8W+/8S8tf/MxL7/z8nC/9bPyv/b1dH/29TQ/9rT + z//Z0s3/1tDL/9TOyf/SzMf/0szG/9TNx//Vz8j/2dPN/9/a1f/k4dz/6+jl//Lv7f/39fT/+ff3//f3 + 9v/x7+3/6ufl/+Pf3P/d2NP/2tTQ/9nTzv/TzMj/lImB/4+Fe/+OhXz/b2ZZ/0VAO/+Adm7/k4l//5CG + ff+Rhn3/kod9/5KHff+SiH7/k4h+/5SJfv+UiX//lIl//5WKf/+Nf23/ioaB/xB2sP8Ag9r/AJb+/wCY + //8Alf3/AHzk/wB74/8AfOT/AHzk/wB95f8AfeX/AH7m/wB+5v8Af+f/AIDo/wCB6f8Agur/AIPr/wCE + 7P8Ahe3/AIbu/wCH7/8AiPD/AIry/wCL8/8AjPT/AI71/wCP9/8AkPj/AJL6/wCS+v8AlPz/AJX9/wCX + //8Bl///Apj//wOa//8Env//BKP//wad/v8Ff83/BE5+/xk2SP8tKyv/SkE7/zItK/8lJCP/JiYm/yQk + JP89PT3/QkJC/yEhIf9PT0//ampq/2hoaP9eXl7/FxcX/wcHB/8EBAThAQEBEwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJwbgyemZTc19DK/9rV0P/c19L/3NfT/9vW + 0v/d2NT/3tjU/93X1P/d19P/3NbR/9rU0P/Z0s7/2NLN/9rTz//b1dH/39vX/+bi4P/t6uj/8/Hv//n4 + +P/9/fz//f39//z8/P/49vX/7+3q/+fj3//e2dX/19DL/9TMx//RysT/083H/9jRzP/f2NP/3dfS/9TO + yv+bkYj/j4R6/5CGff+YjHv/ZF1V/25mXv+VioD/kod9/5KHfv+SiH7/koh+/5OIfv+UiH7/lIh+/5WJ + f/+VioD/loqA/41/bf+Kh4H/EHaw/wCD2v8Alv7/AJj//wCV/f8Afub/AH3l/wB95f8Afub/AH7m/wB/ + 5/8Af+f/AIDo/wCB6f8Agen/AILq/wCD6/8Ahe3/AIbu/wCH7/8AiPD/AInx/wCK8v8AivL/AIz0/wCN + 9f8Ajvf/AI/3/wCR+f8Akvr/AJT8/wCV/f8Alv7/AJf//wGY//8Cmf//A5r//wSa//8Fm///Bp7//wei + //8Jp///DJ/9/xKCyP8ucJv/N0pW/xwYF/8dFQ//HBkW/x0cHP9DRET/NDQ0/xcXF/8jIyP/Kioq/xMT + E/8JCQn/BgYG/wEBAa0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbmxpDJuWkd3X0cr/3NfT/97Z1f/e2dX/3tnV/93Y1P/d2NT/3djU/9zX0//d2NT/39rX/+Tf + 3P/p5uP/7+zq//Xz8v/39/b/+Pj3//f29f/08vD/7ero/+fj3//f2db/2NHM/9HKw//QyL//0cnC/9fQ + yf/e19L/5uDb/+zn4//l4d//2NXU/8LBwP/Ev7v/2NLN/5uSif+PhXv/k4l+/3x3cP9ZVlX/fHZw/6GX + jv+TiH7/kYZ7/5KHff+UiH7/lIh+/5WJf/+fk4n/nJCF/5eLgP+Win//jX9t/4yIgf8RdrD/AIPa/wCW + /v8AmP//AJX9/wB/5/8Afub/AH/n/wB/5/8Af+f/AIDo/wCA6P8Agen/AILq/wCD6/8AhOz/AITs/wCG + 7v8Ah+//AIjw/wCJ8f8AivL/AIvz/wCM9P8AjfX/AI72/wCP9/8Akfn/AJL6/wCT+/8AlP3/AJb+/wCX + //8BmP//Apj//wOZ//8Emv//BZv//wab//8HnP//CJ3//wme//8KoP//CaX//wmm//8Qnvf/EXq6/xNM + bv8UIiv/Ew0J/xkRDP88OTf/MjIy/xUVFf8NDQ3/DAwM/wkJCf8DAwP/AAAA5AAAAI4AAAAvAAAAAwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2gLmpWQ2tjSy//d2dX/3trX/9/a + 1v/f2tb/4NvY/+Ld2v/l4d7/6efk/+3r6f/x7+7/8fDu//Lw7v/v7Ov/6+jm/+bk4P/h3dr/3NfT/9jS + zf/W0Mr/2NDL/93W0f/j3Nj/6OPe/+vn4v/f3Nn/0M7M/7W0tP+UlJP/c3Ny/1pZWP9CQD7/IiEf/4F/ + e//h29f/nZOL/5CFfP+YjoP/SUVA/yUjIf9NTEr/iYWD/56Zlf+ooJn/n5SK/5SIff+Thnz/lIl//2xo + ZP9ybWn/lYyE/56SiP+PgG3/jIiB/xF2sP8Ag9r/AJb+/wCY//8Alf3/AIDo/wB/5/8AgOj/AIDo/wCB + 6f8Agen/AILq/wCC6v8Ag+v/AITs/wCF7f8Ahu7/AIbu/wCI8P8AifH/AIry/wCL8/8AjPT/AI31/wCO + 9v8Aj/f/AJD4/wCR+f8Ak/v/AJT8/wCV/f8Al///AZf//wGY//8Cmf//A5r//wSa//8Fm///Bpz//wed + //8Inv//Cp7//wqf//8LoP//DKH//wyj//8Oqf//D6n//xCZ7f8Rcav/Dj1Z/w4XHf8lHRj/KSIe/xwZ + GP8ODg7/BQUF/wAAAP8AAAD/AAAA/wAAAPcAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAHBubAOVkY3F2NLN/9/a1//i3tv/5eHe/+jk4v/q5+X/7Ono/+zq6P/s6ef/6ebk/+bi + 3//j39z/39vX/93X1P/d2NP/4NvX/+bh3f/q5uP/8e3q//Lv7P/g3dz/zs3M/62srP+KiYn/aWho/1RS + Uf9IRED/SEQ+/1BKQ/9VTkf/W1RO/19ZUv88ODP/fXl3/+Te2v+kmpL/kIV7/5SJf/9zamL/opOH/56P + gf+JfHH/Pjw6/1ZWV/+GhIT/qqWi/7CnoP+hloz/bGNb/zk0Mf9ZU07/fXZv/5WLf/+PioT/EXaw/wCD + 2v8Alv7/AJj//wCV/f8Agur/AIHp/wCC6v8Agur/AILq/wCD6/8Ag+v/AITs/wCF7f8Ahe3/AIbu/wCH + 7/8AiPD/AInx/wCK8v8Ai/P/AIz0/wCN9f8Ajvb/AI/3/wCQ+P8Akfn/AJL6/wCT+/8Alf3/AJb+/wCX + //8BmP//Apn//wOZ//8Emv//BZv//wab//8HnP//CJ3//wme//8Kn///C6D//wyg//8Nof//DqL//w+j + //8QpP//Eaf//xKt//8Tq///EZXh/wxlmf8LM0v/CQ8T/wIAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAamhlAZGOisDb1dH/5N/c/+fj + 4P/n4+L/5uPh/+Xi3//j393/4t7b/+Hd2f/j39v/6OTh/+7q5//y7+z/+PXz//Hv7f/b2tn/xsbF/6Sk + pP96enn/WVlY/z49PP87NzT/Lion/0hCPP9aUkv/aGBY/3RrYv98cmn/fHJq/3ZtZf9tZl7/amNc/zw3 + M/9taWf/5+Hc/6aclP+Rhnz/lYl//3tyav+0qJ7/saOY/6GUiP92bmT/XFRN/z46Nv8+PDz/ZWZm/5qZ + mP+7tbH/s6mi/5eMgv9+c2n/j4R4/4+LhP8Sd7D/AIPa/wCW/v8AmP//AJX9/wCE7P8Ag+v/AIPr/wCD + 6/8AhOz/AITs/wCF7f8Ahe3/AIbu/wCG7v8AiPD/AIjw/wCJ8f8AivL/AIvz/wCM9P8AjfX/AI72/wCP + 9/8AkPj/AJH5/wCS+v8Ak/v/AJX9/wCW/v8Al///AZj//wKY//8Dmf//BJr//wSb//8Fm///Bpz//wed + //8Inf//CZ7//wqf//8LoP//DKH//w2i//8Oov//D6P//xCk//8Rpf//EqX//xOm//8Tq///FLH//xSr + //8RjdD/DF6L/wUlN/8BAwX/AAAA/wAAAP8AAAD/AAAASgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAjYqGrdrU0f/i3tv/49/c/+Pf3f/n4+H/7+vp//Tx7v/39fP//fv5/+3s + 7P/X19b/vr6+/5WVlf9tbGz/T09O/zg3Nf8qJyT/Mi4q/zkzLv8WExH/KSYj/yglIv8yLir/Z19Y/2tj + W/9tZV3/cGhg/3RrYv92bWX/eG9n/3RsZP9waWH/Qjw3/2hlY//q5OD/raOb/5GGe/+ViX7/gXlz/8jA + uv/DubH/q6CW/3VtY/9tZV3/amJa/1pTTP8+OTT/LCkn/0FBQf93dnj/q6mo/8G7t/+bjn7/jIeB/xN4 + sP8AhNr/AJf+/wCY//8Alv7/AIXt/wCE7P8AhOz/AIXt/wCF7f8Ahe3/AIbu/wCH7/8Ah+//AIjw/wCI + 8P8AivL/AIry/wCL8/8AjPT/AI31/wCO9v8Aj/f/AJD4/wCR+f8Akvr/AJP7/wCU/P8Alf3/AJf//wGX + //8BmP//Apn//wOa//8Emv//BZv//wac//8HnP//CJ3//wme//8Kn///C6D//wyg//8Nof//DqL//w+j + //8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//Far//xew//8YtP//GKz//xSLyv8NVHv/BR0r/wAA + AP8AAABGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2io3dnV/+Tg + 3v/18/H//fz7/+vq6f/Ozs3/tLS0/4WFhf9cXFv/Ozs7/ycmJv8JCAj/EQ8O/xMRD/8YFRP/Pzs2/0pE + QP9JRD//Ih8d/xIQEP8wLSr/S0VB/2FaU/9iW1T/ZV5X/2lhWf9sZV3/cGhg/3NrYv92bmX/eXBn/3Zu + Zf9RS0X/XlpZ/+fh3f+xqKH/kYZ7/5WJfv+Gf3r/2tbU/9TOyP+0qqL/aWJa/15XUP9ZU0z/VE5I/1JL + Rv9MRkH/OjUx/yQgHv8kIiL/Tk5Q/6qjnv+NiIH/EXeu/wCG2v8BmP7/AJj//wCW/v8Ahu7/AIXt/wCG + 7v8Ahu7/AIbu/wCH7/8Ah+//AIjw/wCI8P8AifH/AIry/wCK8v8AjPT/AIz0/wCN9f8Ajvb/AI/3/wCQ + +P8Akfn/AJL6/wCT+/8AlPz/AJX9/wCW/v8Al///AZj//wKZ//8Dmf//BJr//wWb//8Gm///B5z//wed + //8Inv//CZ7//wqf//8LoP//DaH//w2i//8Oov//D6P//xCk//8Rpf//EqX//xOm//8Tp///E6j//xSo + //8Wqv//F6r//xir//8Zrf//G7T//xy2//8bq/n/FoK9/xJqmnEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJBQKbe2db/8e3r/7i4uP9GRkb/Ly8w/xMSEv8EBAT/CAcH/w4N + DP8aGBf/FhUT/wwLC/8XFhX/HRwa/zEuK/81MS7/KCYk/yIgHv8uKyn/SUM//1ZQSv9YUkz/WlNN/15X + UP9hWlP/Zl5X/2lhWv9tZV3/cGhg/3NrYv92bmX/e3Jp/1lSS/9VUlD/5eDc/7eup/+Shnv/lYl9/42H + gv/n5eX/3trX/7iwqf9dVlD/U0xH/09JRP9JRD//RD87/z87N/87NzT/ODQx/y8sKP8YFxb/lY+K/5GM + hf8SeK7/AYfa/wOZ/v8Bmf//AJb+/wCI8P8Ah+//AIfv/wCH7/8AiPD/AIjw/wCJ8f8AifH/AIry/wCK + 8v8Ai/P/AIz0/wCM9P8Ajvb/AI72/wCP9/8AkPj/AJH5/wCS+v8Ak/v/AJT8/wCV/f8Alv7/AJf//wGY + //8Cmf//A5n//wSa//8Em///BZv//wac//8Hnf//CJ3//wme//8Kn///C6D//wyg//8Nof//DqL//w+j + //8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//Fan//xaq//8Xq///GKz//xms//8arf//G67//xyx + //8et///H7j/qAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACmlohYg3t06M7K + x//28vD/jo2N/wAAAP8PDg7/EhER/xUUFP8UFBT/FxUV/xYWFv8PDw7/GhkY/yglI/8wLSv/HBoZ/xgX + Fv8rKSb/Pzo2/0hDP/9LRkH/TkhD/1JMRv9WUEr/WlNN/15XUP9iW1T/Zl5X/2piWv9tZV3/cGhf/3Nq + Yf92bWX/Zl1V/1BOTP/h3Nj/vrau/5WIff+ViX7/mZKL/+Xj4v/f29f/vbWv/19ZVP9FQDv/RD86/z87 + N/86NjP/NTIv/zEuK/8sKSf/KCYj/xkYGP+RioX/ko2H/xR4r/8CiNr/BZr+/wOa//8Bl/7/AInx/wCI + 8P8AifH/AInx/wCJ8f8AivL/AIry/wCL8/8Ai/P/AIz0/wCM9P8AjfX/AI72/wCP9/8AkPj/AJD4/wCR + +f8Akvr/AJP7/wCU/P8Alf3/AJb+/wCX//8BmP//AZn//wOZ//8Dmv//BJr//wWb//8GnP//B5z//wid + //8Jnv//Cp///wqf//8LoP//DaH//w6i//8Oov//D6P//xCk//8Rpf//EqX//xOm//8Tp///E6j//xSo + //8Wqf//Fqr//xer//8YrP//Ga3//xqt//8brv//HK///x2w//8esf+kAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKaWiaeakIb/xcK///Tw7v+srKv/DAwM/xgXF/8TEhL/Dg0N/wsL + C/8REBD/FRQU/xwbGv8iIB//JiMi/yonJf8nJCP/My8s/zo2M/89ODX/QTw4/0ZBPP9KRT//TkhD/1JM + Rv9WUEr/WVNN/15WUP9gWVL/Y1xU/2dfV/9rY1v/cmpi/4F5cf91bWb/REJA/93Y1P/EvLb/l4p+/5aJ + fv+elY3/4t7b/9/Z1f+8tK3/e3dz/1NPS/84NDD/NDAt/zEuK/8sKif/KCYk/yQiIf8iIB//CQkJ/4iB + fP+Uj4j/FHmv/wOJ2v8Gm/7/BJv//wKY/v8Ai/P/AIry/wCK8v8AivL/AIvz/wCL8/8Ai/P/AIz0/wCM + 9P8AjfX/AI72/wCO9v8Aj/f/AJD4/wCR+f8Akvr/AJL6/wCT+/8AlPz/AJX9/wCW/v8Al///AZj//wGY + //8Dmf//A5r//wSa//8Fm///Bpz//wec//8Hnf//CJ7//wme//8Kn///C6D//wyg//8Nov//DqL//w+j + //8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//Fan//xaq//8Xq///GKz//xms//8arf//G67//xyv + //8dr///HrD//x+x/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqp2Rn6Oa + kv+8ubf/8/Du/8C/v/8cHBz/Ozo6/ywsLP8cHBz/GBgY/xQUFP8TEhL/FhUU/xoYF/8eHBv/IyEf/yon + Jf8tKij/Mi4r/zYyL/87NjP/Pzo2/0M+Of9HQTz/S0ZB/1BKRf9VT0n/XldR/2hhW/9zbWf/gXp0/5CK + hP+clpH/qqWf/5CKhP9EQT7/2NTQ/8vDvv+ZjIH/mIt//6SYjv/NxsD/z8a//6yimv9yb2z/cG1r/1ZT + Uf8zMC7/JSMg/yIgHv8gHh3/HRsa/xsZGf8FBQX/iYJ9/5WQif8Weq//BIra/wec/v8GnP//A5n+/wCM + 9P8Ai/P/AIvz/wCM9P8AjPT/AIz0/wCN9f8AjfX/AI72/wCO9v8Aj/f/AJD4/wCR+f8Akfn/AJL6/wCT + +/8AlPz/AJT8/wCV/f8Alv7/AJf//wGY//8BmP//A5n//wOa//8Emv//BZv//wab//8HnP//B53//wid + //8Jnv//Cp///wug//8MoP//DaH//w6i//8Po///EKP//xGk//8Rpf//Eqb//xOm//8Tp///E6j//xSo + //8Vqf//Fqr//xer//8YrP//Ga3//xqt//8brv//HK///x2w//8esP//H7H/pAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1qqCftKym/7Wyr//x7ez/zczM/yYmJv9BQUH/QUFB/0FB + Qf89PDz/ODc3/zIxMf8uLSz/LCsq/y0sK/8wLi3/Mi8t/zQxL/85NjT/PTo3/0M/Pf9LSET/Uk5K/1tX + U/9kYFz/b2tm/3p2cv+FgXz/jYiE/5WQjP+alZH/nJeT/5+alf+loJv/kIqE/zs4Nf/Szsv/083G/5uO + g/+fkof/gndu/yklI/9gXFj/b2pn/2RiYP9lYmD/Z2Vk/15cW/9BQD//JyUk/xkXFv8TERH/ERER/wME + BP+Kg33/lpCJ/xZ7r/8Gi9r/CZ3+/wed//8Fmv7/AI71/wCN9f8AjfX/AI31/wCN9f8Ajvb/AI72/wCP + 9/8Aj/f/AJD4/wCQ+P8Akfn/AJL6/wCS+v8Ak/v/AJT8/wCV/f8Alv7/AJb+/wCX//8BmP//Apj//wKZ + //8Dmf//BJr//wWb//8Gm///Bpz//wed//8Inf//CZ7//wqf//8Ln///C6D//wyh//8Oov//DqL//w+j + //8QpP//EaX//xKl//8Tpv//E6f//xOn//8UqP//Fan//xaq//8Xq///GKz//xms//8arf//G67//xyv + //8dr///HrD//x+x//8gsv+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALyy + qZ/Evbf/sK2q/+vo5v/Z2Nf/MTEx/zg4OP86OTn/Ojk5/zo5Of87Ojr/PDw8/z49Pf9BQED/RURE/0pJ + SP9NTEv/UlBP/1dVU/9cWVj/Yl9d/2lmY/9va2n/dXJv/3l1cv98eXX/gX15/4WAfP+JhID/jIeD/5CL + hv+Tj4r/mZSP/6Cblv+Vj4n/QT47/9DMyP/a1ND/nZCF/5+Rhf+QhHr/ExEQ/0RCQf9dW1n/WVdV/1lX + Vv9YV1b/W1lY/11cXP9XVlb/SEdH/zc2Nv8qKyr/EhIT/5aPiv+Uj4f/F3uv/weM2v8Knv7/CZ7//wab + /v8Aj/b/AI72/wCP9/8Aj/f/AI/3/wCP9/8AkPj/AJD4/wCR+f8Akfn/AJL6/wCS+v8Ak/v/AJT8/wCV + /f8Alf3/AJb+/wCX//8Al///AZj//wKY//8Cmf//A5n//wSb//8Em///Bpv//wac//8Hnf//CJ3//wme + //8Kn///Cp///wug//8Mof//DaH//w6i//8Po///EKT//xGk//8Spf//E6b//xOm//8Tp///E6j//xSp + //8Vqf//Fqr//xir//8YrP//Ga3//xqt//8brv//HK///x2w//8esP//H7H//yCy/6QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvbOsn83Fwf+tqaf/5eLg/+bk4/89PT3/MTAw/zc1 + Nf81NTX/NTQ0/zU0NP81NDT/NTQ0/zc2Nv85ODj/Pj08/0RCQv9KSEf/T01M/1VSUf9aV1X/Xlxa/2Rh + Xv9pZWP/bmpn/3NvbP95dXH/f3t3/4SAfP+Ggn3/iYR//4qEf/+CfXj/e3Vw/2tlX/8kIh//y8fE/9/a + 1f+lmI7/mIt//4+Def8sKCT/GxoZ/z8+Pf9QTk3/UE9O/09NTf9PTk3/UE9P/1NTU/9YV1f/X15e/1tb + W/8cHB3/lo+K/5WQh/8YfK//CYza/wyf/v8Kn///B5z+/wCR+P8AkPj/AJD4/wCQ+P8Akfn/AJH5/wCR + +f8Akvr/AJL6/wCT+/8Ak/v/AJT8/wCV/f8Alf3/AJb+/wCW//8Al///AZj//wGY//8Cmf//A5n//wSa + //8Emv//BZv//wab//8GnP//CJ3//wid//8Jnv//Cp///wqf//8LoP//DKD//w2h//8Oov//D6L//xCj + //8RpP//EaX//xKm//8Tpv//E6f//xOo//8UqP//Fan//xaq//8Xqv//GKv//xms//8arf//G67//xyv + //8dr///HrD//x+x//8gsv//IbL/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC5rqafyL+5/6mkoP/Z19b/9vX0/0lJSf8qKSn/NDMz/zExMf8wMDD/Ly4u/y8uLv8vLi7/MS8w/zEx + Mf80MzP/OTg4/z8+Pf9GREL/S0pI/1JQTv9YVVP/W1hV/15bWP9gXFn/XFhV/1ZSTv9OSkb/RUE9/0I/ + O/8+Ozj/Ozg1/0dDQf9UUk//ZmNh/4WCf//c1tT/4dzY/62hlv+Qg3j/W1NM/2phWf9sY1r/LCcl/x0c + HP8tLi7/QUFB/0lJSf9LSkr/Tk1N/1BQUP9WVVX/UlFR/x4eH/+ck43/lY6H/xp9rv8Kjdr/DaD+/wuh + //8Jnf//AJL5/wCR+f8Akfn/AJL6/wCS+v8Akvr/AJP7/wCT+/8Ak/v/AJT8/wCV/f8Alf3/AJb+/wCX + //8Al///AJf//wGY//8CmP//Apn//wOZ//8Dmv//BJr//wWb//8Gm///B5z//wid//8Inf//CZ7//wme + //8Kn///C6D//wyg//8Nof//DaL//w6i//8Qo///EKT//xGl//8Spf//E6b//xOn//8Tp///FKj//xWp + //8Vqv//Fqr//xir//8YrP//Gq3//xuu//8brv//HK///x6w//8esP//H7H//yCy//8hs/+kAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGkmqjCtqz/qKCa/8vIx//+/Pz/XVxc/yUk + JP8xMTH/Li4u/y0sLP8rKir/Kyoq/ysqKv8rKir/LCsr/ywrK/8rKir/Li0s/y4sK/8sKSj/KCYl/yMi + IP8nJST/Kyoo/y4sKv88OTj/UlBO/2hmY/99e3j/lZKQ/62qp//JxcL/1dHN/9/b1//q5uL/7unl/+Hd + 2P/g29j/s6mf/5yMgP+klYj/pZeK/6aYi/+dj4T/cWde/zo1MP8aGRj/HBwd/zIyMv9ERET/T09P/1dX + V/9KSUn/JCUl/6uhmv+TjYT/Gn6u/wuP2v8Pov7/DaH//wqf//8AlPv/AJP7/wCT+/8Ak/v/AJT8/wCU + /P8AlPz/AJX9/wCV/f8Alf3/AJb+/wCW/v8Al///AJj//wGY//8Cmf//Apn//wOZ//8Emf//BJr//wWb + //8Fm///Bpz//wad//8Hnf//CJ7//wme//8Kn///C5///wug//8Mof//DaH//w6i//8Oov//D6P//xCk + //8RpP//EqX//xOm//8Tpv//E6f//xOo//8Vqf//Far//xaq//8Xq///GKz//xms//8arf//G67//xyv + //8dsP//HrD//x+x//8gsv//IbP//yKz/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAqpuOaHduZr6EfHVYuba18vz7+v91dXX/IyIi/zIyMv8sKyv/KCcn/yMjI/8dHBz/FhYW/xAP + D/8JCQn/Dw4P/xcXF/8gHx//MzIy/0xKSv9nZmX/g4KB/56bmv+4trX/1NLP/+Lf3f/o5uP/8e3q//Lu + 6v/r5+P/5uHc/9/Z1P/Y0s3/1M3H/9DJw//NxsD/zMW+/8vDvf/Hvrn/vLGq/62imf+ilIn/nY+C/5+Q + hP+nmIv/pZeK/4yAdf9bU0z/Lysn/xsaGf8eHh//LCwt/x8fIP84Ojz/uq2k/5CKgv8bf6//DJDa/xCj + /v8Oov//C5///wCV/P8AlPz/AJX9/wCV/f8Alf3/AJb+/wCW/v8Alv7/AJb//wCX//8Al///AJj//wGY + //8Cmf//Apn//wOZ//8Dmv//BJr//wSb//8Fm///Bpv//wac//8GnP//CJ3//wme//8Jnv//Cp///wuf + //8LoP//DKH//w2h//8Oov//DqL//w+j//8QpP//EaT//xKl//8Tpv//E6f//xOn//8UqP//FKn//xWp + //8Wqv//F6v//xir//8ZrP//Gq3//xuu//8cr///Ha///x6w//8fsf//ILL//yCy//8hs///IrT/pAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg0MYAIDAl6OjIrh/Pr4/42M + jP8RERH/Ghoa/xcXF/8eHh3/JCQk/zIxMf9PTk7/bW1s/4yLiv+npqb/w8LB/97d3P/u7Ov/8/Hw//j3 + 9f/59/T/8+7s/+rm4//i3Nj/2NPN/9HJxP/Kwrz/xr22/8K5sf+/ta7/vbSs/7+1rv+/tq//wLex/8K5 + s//GvLf/yL65/8vCvf/OxsH/zsjC/8nCu/+8sqr/raGW/6KTh/+fkIL/o5SH/6qajf+klYn/jYB1/2ph + WP9PSEH/OzUw/4R8d/+xoZT/koyE/x1/r/8Nkdr/EaT+/w+j//8Mof//AZb+/wCW/v8Alv7/AJb+/wCX + //8Al///AJf//wCX//8BmP//AZj//wGY//8CmP//Apn//wOZ//8Dmv//BJr//wSa//8Fm///BZv//wac + //8HnP//B53//wid//8Inv//CZ7//wqf//8LoP//C6D//wyh//8Nof//DqL//w6i//8Po///EKT//xGk + //8Spf//E6b//xOm//8Tp///E6j//xSo//8Vqf//Fqr//xeq//8Yq///GKz//xmt//8arf//G67//xyv + //8dsP//HrD//x+x//8gsv//IbP//yKz//8jtP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAQAAAASmBfXaPt6+n/xsXF/2tqav+SkpL/r6+w/8bHx//h4eH/9fX1//v6 + +/////////z8//bz8f/t6uj/4t3Z/9fQyv/NxL3/xLuz/760q/+4raT/tKie/7Omnf+zqJ7/tKif/7Wq + oP+3rKP/ua+m/7uxqf+9tKz/v7av/8G4sf/CurP/xLu1/8e+uP/JwLr/y8K9/8zDv//OxsH/0MvF/9TO + yv/Tzcn/ysO+/7yyq/+sn5T/opSH/6CRg/+llYj/rJyO/6ucjv+pmYz/qJiL/6iWiP+Sj4n/G4Cx/w+R + 2v8Spf7/EKT//w2h//8BmP//AJf//wCX//8Bl///AZj//wGY//8BmP//AZj//wKY//8Cmf//Apn//wOZ + //8Dmv//BJr//wSa//8Fm///BZv//wac//8GnP//B5z//wed//8Inf//CZ7//wme//8Kn///C6D//wyg + //8Mof//DaH//w6i//8Oov//D6P//xCk//8RpP//EaX//xOm//8Tpv//E6f//xOo//8UqP//Fan//xaq + //8Wqv//F6v//xis//8ZrP//Gq3//xuu//8crv//HbD//x6w//8fsf//ILL//yGy//8is///I7T//yO1 + /6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcG5rMr+8 + u//49vb/+/r6//37+//39fP/7+zq/+Le2v/Vzsj/yL+3/76zqv+2qp//rqCV/6maj/+nmIz/qJqN/6ia + jv+pm4//q56S/66hlv+wpJr/s6ee/7SpoP+2q6L/uK2k/7mvpv+7san/vLKr/760rf+/tq//wbix/8K6 + s//EvLb/x724/8nAu//Lwr3/zMS//87Hwf/PycP/0cvG/9LNyv/W0c7/2NPS/9fS0P/MxsH/u7Gp/6yf + lP+jk4b/opKF/6SUh/+llon/q5mK/4uPjP8VgLT/EZPa/xOl/v8Rpf//DqL//wKY//8BmP//AZj//wKY + //8Cmf//Apn//wKZ//8Dmf//A5n//wOZ//8Dmv//BJr//wSb//8Fm///BZv//wac//8GnP//B5z//wed + //8Inf//CJ7//wme//8Kn///Cp///wug//8MoP//DKH//w2h//8Oov//DqL//w+j//8QpP//EaT//xGl + //8Tpf//E6b//xOn//8TqP//FKj//xWp//8Vqv//Fqr//xer//8YrP//Gaz//xqt//8brv//HK7//x2v + //8esP//H7H//x+x//8gsv//IbP//yK0//8jtP//JLX/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABta2gBgX98kLewqPa7r6X/tKec/62fkv+llon/opKF/6GS + hP+gkIP/oJCC/6GRhP+jlIf/ppeL/6iajv+qnJD/q56S/62flP+uoZf/sKOZ/7Glm/+zqJ7/tamg/7ar + ov+4raT/ua+n/7uxqf+8s6v/vrSt/7+2r//BuLH/wrqz/8W8tv/Ivrn/ycC7/8vCvf/MxL//zsjB/8/J + xP/Ry8j/0s3K/9TPzP/V0c7/19PR/9vX1f/d2tn/29fV/9LLx//EuLD/uKib/7Gdj/+0mYf/aoiS/wyC + u/8Tk9r/E6b+/xKm//8Po///A5n//wOZ//8Dmf//A5n//wOZ//8Dmf//A5r//wSa//8Emv//BJr//wSb + //8Fm///BZv//wac//8GnP//B5z//wed//8Inf//CJ3//wme//8Jnv//Cp///wqf//8LoP//DKD//w2h + //8Nov//DqL//w+j//8Po///EKT//xGk//8Rpf//EqX//xOm//8Tp///E6j//xSo//8Vqf//Fan//xaq + //8Xq///GKv//xms//8Zrf//Gq3//xuu//8cr///HbD//x6w//8fsf//ILL//yGz//8is///I7T//yS1 + //8ltf+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAeHJsLX52b3KRhnu5mIuA5qGShf+llon/ppaJ/6aWif+lloj/pJWI/6WWif+nmIz/qJqO/6qc + kP+rnpL/rZ+U/66hl/+wo5n/saWb/7Oonv+1qaD/tqui/7itpP+5r6f/u7Gp/7yzq/++tK3/v7av/8G4 + sf/CurP/xb22/8i+uf/JwLv/y8K9/83Ev//OyMH/0MrE/9HLyP/Uzsv/19LO/9zV0f/g2NP/4tnU/+Pa + 1//h2db/1tPR/8PMz/+pusD/gZ6p/1aGmv8fga3/EYe//xOW3f8Tp/7/E6b//xCk//8Emv//BJr//wSa + //8Emv//BJr//wSa//8Emv//BZv//wWb//8Fm///Bpv//wac//8GnP//B5z//wed//8Inf//CJ3//wme + //8Jnv//Cp///wqf//8LoP//C6D//wyg//8Nof//DaL//w6i//8Po///EKP//xCk//8RpP//EqX//xKm + //8Tpv//E6f//xOo//8TqP//FKn//xWp//8Wqv//F6v//xir//8YrP//Ga3//xqt//8brv//HK///x2v + //8esP//H7H//yCy//8hsv//IrP//yK0//8jtf//JLX//yW2/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB9dnEchX52SId/ + d4mUiX7Bm46C56GThv+llon/p5iK/6majf+pm4//qpyQ/6uekv+tn5T/rqGW/7Cjmf+xpZv/s6ie/7Wp + oP+2q6L/uK2k/7mvpv+7san/vLOr/760rf+/tq//wbix/8K6s//EvLb/yL65/8vCvf/Qxb//08jC/9bM + w//XzMX/2M7J/9LJxf/Fwr//tbu8/6Cwtf+Ho63/aZan/06Npf83h6b/In6j/xV+qf8Pg7T/D4a6/xKJ + v/8Ujsr/FJvl/xSo/v8Tp///EaT//wWb//8Fm///BZv//wWb//8Fm///BZv//wab//8Gm///Bpz//wac + //8HnP//B5z//wed//8Inf//CJ3//wme//8Jnv//Cp///wqf//8Ln///C6D//wyg//8Mof//DaH//w6i + //8Oov//D6P//xCj//8QpP//EaT//xKl//8Spv//E6b//xOn//8Tp///E6j//xSo//8Vqf//Fqr//xer + //8Yq///GKz//xms//8arf//G67//xyu//8cr///HrD//x+x//8fsf//ILL//yGz//8itP//I7T//yS1 + //8ltv//Jrb/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBenQbgnt0Q4Z+dnuPhnyzmY2D2aKW + iv+pnJD/rZ+T/7Cilv+wo5f/sKSZ/7Glm/+zp57/tKmg/7arov+4raT/ua+m/7yxqP++s6z/wrav/8W5 + sf/Ju7P/yby0/8q+tv/Jvbf/wriy/7Syr/+kra3/kKOm/3eXn/9ci5j/RYOW/zR9lP8kd5P/GHaX/xR6 + n/8UfaX/FIGq/xWEsf8Yi7z/Go/D/xqSyv8amdj/GJzh/xeg6v8Wpvf/Fan//xOo//8Spf//B5v//wab + //8GnP//Bpz//wac//8GnP//B5z//wec//8Hnf//B53//wid//8Inf//CJ7//wme//8Jnv//Cp///wqf + //8Ln///C6D//wug//8Mof//DaH//w2h//8Oov//D6P//w+j//8QpP//EaT//xGl//8Spf//E6b//xOm + //8Tp///E6f//xOo//8UqP//Fan//xaq//8Xq///GKv//xis//8ZrP//Gq3//xuu//8crv//HK///x2w + //8esP//H7H//yCy//8hs///IrP//yO0//8ktf//JbX//yW2//8mt/+kAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7dnAQioJ7L4B6dGOSiYGblo2FxaOYj/CsoZb/saWb/7Wo + n/+4raP/t6yj/7uroP+9rKH/vK6l/7aro/+qp6L/nKOh/4ydnv96lZn/Zo6X/0+Gkv8+gpL/MX2Q/yR4 + j/8ceJL/GnqV/xt7mP8bfZz/HYKj/yCJrv8ijrj/I5TB/yOcz/8joNj/IqPg/yGp7P8hrfX/H675/x6v + /v8cr///Gq7//xis//8Wqv//FKj//xKm//8InP//B5z//wec//8Hnf//B53//wed//8Inf//CJ3//wid + //8Inv//CZ7//wme//8Jnv//Cp///wqf//8Ln///C6D//wug//8Mof//DaH//w2h//8Oov//DqL//w+j + //8Qo///EKT//xGk//8Rpf//EqX//xOm//8Tpv//E6f//xOn//8TqP//FKj//xWp//8Wqv//F6v//xir + //8YrP//Gaz//xqt//8brv//G67//xyv//8dsP//HrD//x+x//8gsv//IbP//yKz//8jtP//I7X//yS1 + //8ltv//Jrf//ye3/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABta2gCi4R+Hnt2cUSSioN7mZGJrJSNhrmhkIaihKix0Gexxv9SlaX/QoeW/zaB + kf8sfY7/JX2Q/yJ/lP8jf5b/JIGZ/ySEnf8nh6L/KY2r/yqRs/8slrv/LJ/I/yyk0/8tqt7/LbHp/y22 + 8v8suPn/K7n9/ym5//8nuf//Jbf//yO1//8hs///H7H//x2v//8brf//Gaz//xeq//8Vqf//Eqb//wmd + //8Inf//CJ3//wid//8Inf//CJ7//wme//8Jnv//CZ7//wme//8Kn///Cp///wqf//8LoP//C6D//wyg + //8Mof//DaH//w2h//8Nov//DqL//w6i//8Po///EKP//xCk//8RpP//EqX//xKl//8Tpv//E6b//xOn + //8TqP//FKj//xSp//8Vqf//Fqr//xar//8Yq///GKz//xms//8arf//G67//xuu//8cr///Ha///x6w + //8fsf//H7H//yGy//8is///IrT//yO0//8ktf//Jbb//ya2//8nt///KLj/pAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABH1v17Pc77/zSmxv8ukqn/Lo2i/y+No/8xkqv/M5iz/zOcu/81pcf/N6zT/zey + 3P84uuj/OL/y/zjC+f83w/3/NsT//zTD//8ywv//MMD//y69//8su///Kbn//ye3//8ltv//I7T//yGz + //8fsf//HbD//xuu//8ZrP//Fqr//xOo//8PpP//CJ7//wme//8Jnv//CZ7//wme//8Kn///Cp///wqf + //8Kn///Cp///wug//8LoP//C6D//wyg//8Mof//DaH//w2h//8Nov//DqL//w6i//8Po///D6P//xCk + //8RpP//EaX//xKl//8Tpv//E6b//xOn//8Tp///E6j//xSo//8Uqf//Fan//xaq//8Wqv//GKv//xis + //8ZrP//Gq3//xuu//8brv//HK///x2v//8esP//HrH//x+x//8gsv//IbP//yK0//8jtP//JLX//yW2 + //8mtv//Jrf//ye4//8ouP+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEba/4RIz/n/Qbrf/z6y + 1P8+ttf/P7re/0HB6P9DyPL/Q8z5/0PO/v9Bzv//QM///z7O//88y///O8r//znH//83xP7/NcL+/zPA + /v8xv/7/L73+/yy7/v8quv7/KLj//yW2//8jtP//ILL//xyw//8Zrf//GKz//xmt//8arf//IrD//xKl + //8Hnf//BJv//wed//8Jnv//Cp///wuf//8LoP//C6D//wug//8MoP//DKD//wyg//8Nof//DaH//w2i + //8Oov//DqL//w+i//8Po///D6P//xCk//8QpP//EaT//xGl//8Tpf//E6b//xOm//8Tp///E6f//xOo + //8UqP//Fan//xWp//8Wqv//F6r//xes//8YrP//Gaz//xqt//8brv//G67//xyv//8dr///HrD//x6x + //8fsf//ILL//yGz//8is///I7T//yS1//8ltf//Jbb//ya3//8nt///KLj//ym5/6QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAS9T+hErV/f9K1Pz/StT+/0vW//9K1///Sdb//0jU//9G0///RNH//0PP + /v9Bzv7/P8z+/z3K/v87yf7/Ocj+/zjF/v82w/7/M8H+/zG//v8uvf7/Krv+/ye4/v8mt///J7f//yi3 + //8tuv//N7///0HG//9MzP//WNT//2Xb//9v4f//Z9z//0/N//84vv//IK///xCj//8Jn///BZz//wie + //8Kn///DKD//w2h//8Nov//DaH//w6i//8Oov//DqL//w+j//8Po///EKT//xCk//8QpP//EaT//xGl + //8Spv//E6b//xOn//8Tp///E6f//xOo//8UqP//Faj//xWp//8Vqv//Fqr//xer//8Xq///Gaz//xqs + //8arf//G67//xuu//8cr///Ha///x6w//8esf//H7H//yCy//8hsv//IrP//yO0//8jtf//JLX//yW2 + //8mt///J7f//yi4//8puf//Kbn/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABN1v6ETdf+/03X + //9N1///Tdf+/0zW/v9L1f7/SNT+/0jT/v9G0f7/RND+/0LO/v8/zf7/Psv+/zvJ/v84x/7/NcT+/zXD + /v81wv7/NsL+/zrE/v9CyP7/Ssz+/1PS//9d1///Z93//23g//9y4///dub//3jm//935v//duX//3Xl + //925v//euj//3rp//9z5P//aN3//1LP//89wP//JrL//xWn//8Mof//B57//wmf//8Mof//DaL//w+j + //8QpP//EKP//xGk//8QpP//EaT//xKl//8Spv//E6b//xOm//8Tpv//E6f//xOn//8TqP//FKj//xSp + //8Vqv//Fqr//xeq//8Xq///GKv//xms//8ZrP//Gq3//xuu//8brv//HK///x2v//8esP//H7H//x+x + //8gsv//IbL//yGz//8jtP//I7X//yW2//8ltv//Jrf//ye3//8ouP//Kbn//ym5//8puf+kAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/Z/olP2f7/UNn+/0/Z/v9P2P7/Ttf+/0zW/v9K1f7/SNP+/0XS + /v9D0P7/Qs/+/0PO/v9Dzv7/R8/+/0zR//9S0///Wtb//2Da//9o3v//beD//2/i//9z5P//dOX//3Tk + //9z5P//cuP//3Pk//9y4///c+P//3Pk//9z5P//dOT//3Tk//905P//deX//3bm//945///e+n//3vp + //935v//buH//1nT//9Exv//Lbf//xqr//8Rpf//CqD//wuh//8Oo///D6P//xGl//8Spv//E6b//xOm + //8Tp///E6f//xOn//8UqP//FKj//xWo//8Vqf//Fqr//xaq//8Wq///GKv//xis//8YrP//Ga3//xqu + //8brv//HK///x2v//8dsP//HrD//x6x//8fsf//ILL//yGz//8hs///I7T//yO1//8ktf//Jbb//ya3 + //8nt///KLj//ym5//8puf//Kbn//ym5/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAStT/S1Hb + /vpS2/7/Utv+/1Lb/v9Q2f7/T9j+/0/X/v9R1v7/Vtj//1rZ//9e2v//Y9z//2ne//9s3///buH//3Di + //9w4v//cOL//2/i//9w4f//cOL//3Di//9x4v//ceL//3Lj//9y4///cuP//3Pj//9z4///dOT//3Tk + //915P//deX//3Xl//915f//duX//3bl//925f//duX//3fm//945///e+n//3zq//945///ceP//2DY + //9Ny///N73//yGv//8WqP//D6P//w2i//8PpP//Eab//xKn//8TqP//FKj//xSp//8Vqf//Fqr//xaq + //8Xqv//F6v//xir//8YrP//Gaz//xqt//8arf//G67//xyu//8dr///HbD//x6w//8fsf//ILL//yCy + //8hs///IrP//yO0//8jtf//JbX//yW2//8mt///J7f//yi4//8ouf//Kbn//ym5//8puf//Kbn/pAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU9z+OFLa/qdI0f/oSdD//03S//9T1P//Wtb//1/Z + //9j2v//Z93//2rf//9r3///bN///23g//9u4P//buH//2/h//9v4f//b+H//3Dh//9w4v//ceL//3Hj + //9y4///cuP//3Pj//9z4///dOT//3Tk//905P//deT//3Xk//915f//deX//3bl//925f//duX//3bl + //925f//duX//3bl//925f//duX//3fm//935v//euf//3zp//945///c+T//2Xb//9Tz///QMT//yq2 + //8brP//Eqf//w6k//8Qpv//Eqj//xSp//8Wqv//F6v//xir//8YrP//Gaz//xmt//8arf//G67//xuu + //8cr///Ha///x6w//8esP//H7H//yCy//8gsv//IbP//yKz//8jtP//I7X//yS1//8ltv//Jrf//ye3 + //8ouP//KLn//ym5//8puf//Kbn//ym5//8puf+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAADjC/xk6wf9IO8P/dT7F/6dDyP/XRsv/8kzO//9T0v//V9X//13Y//9i2v//Zdz//2nd + //9q3///beD//27h//9w4f//ceL//3Hi//9y4///cuP//3Pj//9z4///dOP//3Tk//905P//dOT//3Xk + //915f//deX//3bl//925f//duX//3bl//925f//dub//3fm//935v//d+b//3fm//925v//duX//3bl + //925f//duX//3bl//925f//d+b//3nn//945///dOX//2ne//9Z1P//R8n//zK8//8isv//Gav//xKo + //8Uqf//Far//xer//8ZrP//Gq3//xuu//8brv//HK///x2v//8esP//HrH//x+x//8gsv//ILL//yGz + //8is///I7T//yO1//8ktf//Jbb//ya3//8mt///KLj//yi4//8puf//Kbn//ym5//8puf//Kbn//ym5 + /6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADnB + /wM3wP8qO8P/TDzD/35ByP+3RMr/2krM//tQ0f//VtT//1zX//9h2v//Zdz//2je//9r4P//buH//3Hi + //9x4///c+P//3Pk//905P//dOT//3Xk//915P//deT//3Xl//925f//duX//3fl//935f//d+X//3fl + //935v//d+X//3fm//935v//d+b//3fm//935v//dub//3bl//925f//duX//3Xl//905f//dOT//3Tl + //905P//deX//3fm//925v//dOX//23h//9e1///T87//zzC//8qt///H7H//xis//8XrP//GKz//xqu + //8cr///HrD//x+w//8fsf//ILL//yGy//8hs///IrP//yO0//8jtf//JLX//yW2//8mtv//Jrf//yi3 + //8ouP//Kbn//ym5//8puf//Kbn//ym5//8puf//Kbn/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3wP8KPMP/NDvE + /1k+xv+LQ8r/xEjM/+FNz///VNP//1nW//9f2f//Zdz//2nf//9t4P//b+H//3Li//9z5P//dOT//3Xl + //925f//duX//3fl//935f//d+X//3fm//935v//d+b//3fm//945f//d+b//3fm//935v//d+b//3fl + //935f//duX//3bl//925f//duX//3Xl//915P//deT//3Tk//9z5P//c+P//3Lj//9y4///cuP//3Pk + //905P//cuP//27h//9i2v//VNH//0TI//8yvf//J7b//x6w//8brv//HK///x2w//8gsv//IbP//yK0 + //8jtP//I7X//yS1//8ltv//Jrb//ya3//8ot///KLj//ym5//8puf//Kbn//ym5//8puf//Kbn//ym5 + //8puf+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO8P/Fj/H/zc+x/9nQcn/m0bM + /8dMz//sU9P//1nW//9e2f//ZNz//2je//9s4P//cOL//3Hi//9z5P//deX//3bl//935f//eOb//3jm + //945v//eOb//3jm//945v//eOb//3jm//945v//eOb//3fl//935f//d+X//3fl//925f//duX//3Xl + //915P//dOT//3Pk//9z4///cuP//3Lj//9x4v//cOL//3Di//9v4f//buH//2/i//9x4v//cOL//27h + //9l3P//WtX//0zM//87w///Lrv//yW1//8fsv//ILP//yGz//8jtP//Jbb//ya2//8mt///J7j//yi4 + //8puf//Kbn//ym5//8puf//Kbn//ym5//8puf//Kbn//ym5/6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/I/yFCyf8+Qsr/cEfN/6hLz//NUNL/8lbV + //9c2P//Ydr//2bd//9q3///buH//3Hi//9z5P//deX//3fm//945v//eOb//3nm//955v//eOb//3jm + //945v//d+b//3fm//935f//d+X//3bl//925f//deX//3Xl//915P//dOT//3Tk//9z5P//cuP//3Lj + //9x4v//cOL//2/i//9v4f//buH//23g//9t4P//bN///2zg//9t4P//beD//2vf//9m3f//XNb//1HP + //9Cx///Nb///yy7//8ltv//JLb//yS2//8mt///KLj//ym5//8puf//Kbn//ym5//8puf//Kbn//ym5 + //8puf//Kbn/pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDJ/wVEy/8kQ8v/SEbN/39Kz/+xTdH/01LT//pZ1///Xtn//2Tc + //9p3///beH//3Hi//9z4///deX//3fl//935v//eOb//3jm//945v//eOb//3fm//935f//d+X//3bl + //925f//deX//3Xk//905P//dOT//3Pj//9y4///cuP//3Hi//9x4v//cOL//2/h//9v4f//buD//23g + //9s4P//a9///2rf//9q3v//aN7//2jd//9p3v//ad7//2nd//9m3P//X9j//1bT//9JzP//PcX//zTA + //8ruv//J7j//ya3//8nuP//KLj//ym5//8puf//Kbn//ym5//8puf+kAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABDy/8LRsz/J0XM/1RHzv+ITND/tFDT/+BX1v/+XNj//2Hb//9m3f//at///27h + //9w4v//cuP//3Xl//925f//d+X//3fl//935f//d+X//3bl//925f//duT//3Xk//905P//dOT//3Pj + //9z4///cuP//3Hi//9x4v//cOL//2/h//9u4f//buH//23g//9s4P//a9///2vf//9p3v//ad3//2jd + //9n3P//Ztz//2bc//9n3f//aN3//2fd//9n3f//Ytr//1vV//9Pz///Qsf//zfB//8uvP//Kbn//yi4 + //8ouP//Kbn//ym5/6UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAR83/FEbO/yxHzv9eTND/kU3R/7xS0//oWNb//1zY//9i2///Zt7//2rf//9u4f//cOL//3Lk + //905P//dOX//3Xl//915f//deX//3Xk//905P//dOT//3Pj//9y4///cuP//3Hi//9w4v//cOL//2/h + //9u4f//beD//23g//9s3///a9///2ne//9o3v//Z93//2Xc//9k2///ZNv//2Pa//9h2v//X9n//17Y + //9d2P//XNf//1rW//9Z1f//VdP//07P//9Eyv//OML//y+9//8ruv//Kbn/owAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEnO + /xZGzf80SM7/Z0vQ/5dN0f/CUtP/7lfW//9b2P//Ydr//2Xc//9p3///bOD//27h//9w4v//cuL//3Lj + //9z4///c+P//3Hi//9w4v//b+L//27g//9t4P//a9///2vf//9p3v//Z93//2Xc//9j2///Ydr//1/Y + //9c1///WdX//1fU//9W1P//VNP//1HR//9Nz///Ss3//0jM//9Fyv/8Qcf/8j7G/9o+xf/FPcX/rj7F + /5g7w/9/NsD/YjG9/0Qsu/8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAETM/wJIzf8WQ8z/PEfO + /25Jzv+bTND/xVDS/+9V1P//Wdf//1/Z//9j2///Zt3//2je//9o3v//Zt3//2Tc//9h2v//X9j//13Y + //9c1///Wtf//1nW//9V0///UNH//03P//9Lzf//Sc3/+0bL//VCyP/kP8b/zj7G/7k8xf+iPsT/jjrC + /3Y3wf9eNsD/RDW//ys4wP8YNsD/DTW//wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDzP8DRcz/FkHL/z9GzP9vRsz/mEnO + /8NO0P/oUdL/71HS/+9R0v/vTdD/70jN/+NEy//UQ8r/x0PK/7lByP+lQsn/k0HJ/4M8xf9sOcL/WzjB + /0Y2wf8wOsT/GjrC/w83wP8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////AAAAA////////////////wAAAAP///////////8AAAAAAAAAP///////////AAAAAAAAAD//// + ///8AAAAAAAAAAAAAP///////AAAAAAAAAAAAAD////AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAA + AD//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAA + AAAAAAAD/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAA/AAAAAAA + AAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAA + AAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAA + AADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAA + AAAAAAAA8AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAD8AAAAAAAAAAAAAAAAAAAA/AAAAAAA + AAAAAAAAAAAAAPwAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP/A + AAAAAAAAAAAAAAAAAAD/wAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAA + AAD/+AAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAA + AAAAAAAA//gAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAA//gAAAAA + AAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAA//gAAAAAAAAAAAAAAAAAA//4 + AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAAP//4AAAAAAAAAAAAAAAA + H///+AAAAAAAAAAAAAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAA + AAAAAB////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAA + AAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///w + AAAAAAAAAAAAAAAAH///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAA + H///8AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///8AAAAAAAAAAA + AAAAAB////AAAAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////gAAAAA + AAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////gAAAAAAAAAAAAAAAB////8AAAAAAAAAAAAAAAA///// + gAAAAAAAAAAAAAAAf////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAD + //////4AAAAAAAAAAAAP////////AAAAAAAAAAAA/////////4AAAAAAAAAAAH/////////gAAAAAAAA + AAA/////////8AAAAAAAAAAAH/////////4//AAAAAAAAA////////////wAAAAAAAAH///////////8 + AAAAAAAAA////////////AAAAAAAAAH///////////wAAAAAQAAA///////////8AAAAAOAAAH////// + /////AAAAAHwAAA///////////wAAAAD+AAAP//////////+AAAAB/4AAD///////////wAAAA//AAA/ + //////////+AAAAf/4AAH///////////wAAAP//AAD////////////AAAD//4AA////////////4AAB/ + //AAP////////////AAA///4AH////////////8AAf///gD/////////////gAP///+D//////////// + /8AH///////////////////wH/////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8= + + + \ No newline at end of file diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.vb new file mode 100644 index 00000000..cad04862 --- /dev/null +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/cATLAS_EZA_IMPORT.vb @@ -0,0 +1,1546 @@ +Imports DAKOSY_Worker +Imports Tamir +Imports Tamir.SharpSsh +Imports Microsoft.Office.Interop +Imports VERAG_PROG_ALLGEMEIN +Imports javax.xml.bind.annotation +Imports System.Globalization + +Public Class cATLAS_EZA_IMPORT + + + Public EZA As DAKOSY_Worker.cDakosyEZA + Dim AVISO As cAviso + Dim SENDUNG As cSendungen + + Sub New(AVISO, SENDUNG, EZA) + + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + Me.EZA = EZA + Me.SENDUNG = SENDUNG + Me.AVISO = AVISO + End Sub + + Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click + + importExcel_DynamicAutomotive() + End Sub + + + + Private Function checkExcel_DynamicAutomotive(Blatt As Excel.Worksheet) As Boolean + 'Prüfung + Try + If Blatt Is Nothing Then Return False + If Blatt.Range("B23") Is Nothing Then Return False + If Blatt.Range("B23").Value.ToString <> "Code" Then Return False + + Catch ex As Exception + MsgBox("Fehler bei der Prüfung!" & ex.Message) + Me.Cursor = Cursors.Default + Return False + End Try + Return True + + End Function + + Private Function checkExcel_Geze(Blatt As Excel.Worksheet) As Boolean + 'Prüfung + Try + If Blatt Is Nothing Then Return False + If Blatt.Range("I1") Is Nothing Then Return False + If Blatt.Range("I1").Value.ToString <> "Codenummer" Then Return False + + Catch ex As Exception + MsgBox("Fehler bei der Prüfung!" & ex.Message) + Me.Cursor = Cursors.Default + Return False + End Try + Return True + + End Function + + Private Function checkExcel_MEYLE(Blatt As Excel.Worksheet) As Boolean + 'Prüfung + Try + If Blatt Is Nothing Then Return False + If Blatt.Range("A3") Is Nothing Then Return False + If Blatt.Range("A3").Value.ToString <> "Eingangsrechnung Lieferant:" Then Return False + + Catch ex As Exception + MsgBox("Fehler bei der Prüfung!" & ex.Message) + Me.Cursor = Cursors.Default + Return False + End Try + Return True + + End Function + Private Function importExcel_DynamicAutomotive() As Boolean + + + Dim fd As New OpenFileDialog + fd.Filter = "Excel Dateien|*.xls;*.xlsx" + Dim result As DialogResult = fd.ShowDialog() + + If Not fd.FileName.EndsWith(".xls") And Not fd.FileName.EndsWith(".xlsx") Then + Me.Cursor = Cursors.Default + Return False + End If + + If result = System.Windows.Forms.DialogResult.OK Then + + + Me.Cursor = Cursors.WaitCursor + Dim exclApp As New Excel.Application 'Object 'as Application + Dim Datei As Excel.Workbook ' 'as WorkBook + Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet + + With exclApp + Try + + .CutCopyMode = False + + .DisplayAlerts = False + + + Datei = .Workbooks.Open(fd.FileName) + Blatt = Datei.Worksheets(1) + + Datei.Activate() + + Try + Blatt.ShowAllData() 'Falls Filter ausgewählt wurde + Catch ex As Exception + + End Try + + Dim startFound As Boolean = False + Dim endFound As Boolean = False + + If Not checkExcel_DynamicAutomotive(Blatt) Then 'VALIDIERUNG + Me.Cursor = Cursors.Default + Return False + End If + + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() 'Zurücksetzen + End If + End If + + Dim startRows As Integer = 24 + + Dim endRows As Integer = startRows + While endRows < Blatt.UsedRange.Rows.Count + If Not Blatt.Range("B" & endRows) Is Nothing AndAlso Not Blatt.Range("B" & endRows).Value Is Nothing AndAlso Not Blatt.Range("B" & endRows).Value.ToString.Trim = "" Then + endFound = True + Else + Exit While + End If + endRows += 1 + End While + endRows -= 1 + + If Not endFound Then + MsgBox("Keine Daten vorhanden!") + Me.Cursor = Cursors.Default + Return False + End If + + 'Laden des Bereiches aus dem Excel: + Dim myRange As Excel.Range + myRange = Blatt.Range("B" & startRows & ":I" & endRows & "") + Dim myArray As Object(,) '<-- declared as 2D Array + myArray = myRange.Value 'store the content of each cell + 'myArray(i_soll2 - startRows + 1, 4) + + + Dim cnt = 0 + + Try + For i As Integer = 1 To endRows - startRows + 1 Step 1 + Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition + POSITION.ezaWP_WarennummerEZT = myArray(i, 5).ToString() + POSITION.ezaWP_PackstueckAnzahl = myArray(i, 6).ToString() + POSITION.ezaWP_PackstueckArt = "PK" + POSITION.ezaWP_Artikelpreis = CDbl(myArray(i, 8).ToString()).ToString("N2") + POSITION.ezaWP_ArtikelpreisWaehrung = "EUR" + POSITION.ezaWP_Warenbezeichnung = myArray(i, 2).ToString() + Select Case myArray(i, 4).ToString + Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" + Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" + Case "SPAIN" : POSITION.ezaWP_UrsprungslandCode = "ES" + Case "GERMANY" : POSITION.ezaWP_UrsprungslandCode = "DE" + Case "CZECH REPUBLIC" : POSITION.ezaWP_UrsprungslandCode = "CZ" + Case "FRANCE" : POSITION.ezaWP_UrsprungslandCode = "FR" + + End Select + + EZA.eza_WARENPOS.Add(POSITION) + cnt += 1 + Next + Catch ex As Exception + MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + Me.Cursor = Cursors.Default + Return False + End Try + + + .Visible = False + + ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose + 'Excelobjekte freistellten + ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} + ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) + ' Next + Datei.Close() + + + MsgBox(cnt & " Datensätze wurden eingelesen. ") + + Me.Cursor = Cursors.Default + + Me.DialogResult = DialogResult.OK + Me.Close() + + Catch ex As Exception + ' + Me.Cursor = Cursors.Default + MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + ' Return False + End Try + End With + Return True + Else + MsgBox("Keine Datei ausgewählt!") + End If + + Me.Cursor = Cursors.Default + Return False + + End Function + + Private Function importExcel_Geze(OP_addKN8, OP_translate, OP_TNR8to11) As Boolean + + + Dim fd As New OpenFileDialog + fd.Filter = "Excel Dateien|*.xls;*.xlsx" + Dim result As DialogResult = fd.ShowDialog() + + If Not fd.FileName.ToLower.EndsWith(".xls") And Not fd.FileName.ToLower.EndsWith(".xlsx") Then + Me.Cursor = Cursors.Default + Return False + End If + + If result = System.Windows.Forms.DialogResult.OK Then + + + Me.Cursor = Cursors.WaitCursor + Dim exclApp As New Excel.Application 'Object 'as Application + Dim Datei As Excel.Workbook ' 'as WorkBook + Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet + + With exclApp + Try + + .CutCopyMode = False + + .DisplayAlerts = False + + + Datei = .Workbooks.Open(fd.FileName) + Blatt = Datei.Worksheets(1) + + Datei.Activate() + + Try + Blatt.ShowAllData() 'Falls Filter ausgewählt wurde + Catch ex As Exception + + End Try + + Dim startFound As Boolean = False + Dim endFound As Boolean = False + + If Not checkExcel_Geze(Blatt) Then 'VALIDIERUNG + Me.Cursor = Cursors.Default + Return False + End If + + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() 'Zurücksetzen + End If + End If + + Dim startRows As Integer = 2 + + Dim endRows As Integer = startRows + While endRows < Blatt.UsedRange.Rows.Count + If Not Blatt.Range("I" & endRows) Is Nothing AndAlso Not Blatt.Range("I" & endRows).Value Is Nothing AndAlso Not Blatt.Range("I" & endRows).Value.ToString.Trim = "" Then + endFound = True + Else + Exit While + End If + endRows += 1 + End While + ' endRows -= 1 + + If Not endFound Then + MsgBox("Keine Daten vorhanden!") + Me.Cursor = Cursors.Default + Return False + End If + + 'Laden des Bereiches aus dem Excel: + Dim myRange As Excel.Range + myRange = Blatt.Range("A" & startRows & ":I" & endRows & "") + Dim myArray As Object(,) '<-- declared as 2D Array + myArray = myRange.Value 'store the content of each cell + 'myArray(i_soll2 - startRows + 1, 4) + + + 'For i As Integer = 1 To myArray.GetLength(0) + ' For j As Integer = 1 To myArray.GetLength(1) + ' Console.Write(myArray(i, j).ToString() & vbTab) + ' Next + ' Console.WriteLine() + 'Next + + Dim cnt = 0 + + Try + For i As Integer = 1 To endRows - startRows + 1 Step 1 + If myArray(i, 1) IsNot Nothing AndAlso myArray(i, 1).ToString() <> "" Then + + + Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition + POSITION.ezaWP_WarennummerEZT = myArray(i, 9).ToString() + POSITION.ezaWP_PackstueckAnzahl = "0" 'myArray(i, 6).ToString() + POSITION.ezaWP_PackstueckArt = "PK" + POSITION.ezaWP_Artikelpreis = CDbl(myArray(i, 7).ToString()).ToString("N2") + POSITION.ezaWP_ArtikelpreisWaehrung = myArray(i, 8).ToString() + POSITION.ezaWP_Warenbezeichnung = myArray(i, 4).ToString() + + '------------------------------------------------------- + If OP_translate Then + cDeeplAPI.deepl_Translate(POSITION.ezaWP_Warenbezeichnung, POSITION.ezaWP_Warenbezeichnung, "DE") + End If + If OP_addKN8 Then + If POSITION.ezaWP_WarennummerEZT.ToString.Length >= 8 Then + Dim Kn8Text = cTariffKN8_Interface.getKN8FromTNR(POSITION.ezaWP_WarennummerEZT.ToString.Substring(0, 8)) + POSITION.ezaWP_Warenbezeichnung = Kn8Text & ",hier: " & If(POSITION.ezaWP_Warenbezeichnung, "") + End If + End If + If If(POSITION.ezaWP_Warenbezeichnung, "").Length > 240 Then + POSITION.ezaWP_Warenbezeichnung = POSITION.ezaWP_Warenbezeichnung.Substring(0, 240) + End If + + 'Wenn EZT Nummer 8-stellig ist, dann auf 11-stellig erweitern + If OP_TNR8to11 Then + If If(POSITION.ezaWP_WarennummerEZT, "") <> "" AndAlso (POSITION.ezaWP_WarennummerEZT.ToString.Length >= 8 And POSITION.ezaWP_WarennummerEZT.ToString.Length < 11) Then + Dim COMM_TARIFF = VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.GetFullTariff_Only1Result(POSITION.ezaWP_WarennummerEZT, "TR") + If COMM_TARIFF <> "" Then + POSITION.ezaWP_WarennummerEZT = COMM_TARIFF + End If + End If + End If + + + '------------------------------------------------------- + + + 'Select Case myArray(i, 4).ToString + ' Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" + ' Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" + ' Case "SPAIN" : POSITION.ezaWP_UrsprungslandCode = "ES" + ' Case "GERMANY" : POSITION.ezaWP_UrsprungslandCode = "DE" + ' Case "CZECH REPUBLIC" : POSITION.ezaWP_UrsprungslandCode = "CZ" + ' Case "FRANCE" : POSITION.ezaWP_UrsprungslandCode = "FR" + POSITION.ezaWP_PositionsZusatz = "ArtikelNr: " & myArray(i, 1).ToString() + POSITION.ezaWP_Artikelnummer = myArray(i, 1).ToString() + 'End Select + POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = "N380", + .ezaWpUl_Bereich = "4", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = myArray(i, 2).ToString(), + .ezaWpUl_DatumAusstellung = Nothing + }) + + EZA.eza_WARENPOS.Add(POSITION) + cnt += 1 + End If + + + Next + Catch ex As Exception + MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + Me.Cursor = Cursors.Default + Return False + End Try + + + .Visible = False + + ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose + 'Excelobjekte freistellten + ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} + ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) + ' Next + Datei.Close() + + + + Me.Cursor = Cursors.Default + + Me.DialogResult = DialogResult.OK + Me.Close() + + Catch ex As Exception + ' + Me.Cursor = Cursors.Default + MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + ' Return False + End Try + End With + Return True + Else + MsgBox("Keine Datei ausgewählt!") + End If + + Me.Cursor = Cursors.Default + Return False + + End Function + + Private Function importExcel_MEYLE() As Boolean + + Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG) + f.ShowDialog(Me) + Dim LIST_FILES = f.LIST_FILES + If Not f.DialogResult = DialogResult.OK Then Return False + If LIST_FILES.Count = 0 Then Return False + + + + Dim cnt = 0 + + + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() 'Zurücksetzen + End If + End If + + Me.Cursor = Cursors.WaitCursor + + For Each filePath As String In LIST_FILES + If Not filePath.ToLower.EndsWith(".xls") AndAlso Not filePath.ToLower.EndsWith(".xlsx") Then + ' Ungültige Datei – überspringen oder abbrechen + Continue For + End If + + + + + Dim exclApp As New Excel.Application 'Object 'as Application + Dim Datei As Excel.Workbook ' 'as WorkBook + Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet + + With exclApp + Try + + .CutCopyMode = False + .DisplayAlerts = False + + + Datei = .Workbooks.Open(filePath) + Blatt = Datei.Worksheets(1) + + Datei.Activate() + + Try + Blatt.ShowAllData() 'Falls Filter ausgewählt wurde + Catch ex As Exception + + End Try + + Dim startFound As Boolean = False + Dim endFound As Boolean = False + + If Not checkExcel_MEYLE(Blatt) Then 'VALIDIERUNG + Me.Cursor = Cursors.Default + Return False + End If + + + Dim startRows As Integer = 6 + + Dim endRows As Integer = startRows + While endRows < Blatt.UsedRange.Rows.Count + If Not Blatt.Range("A" & endRows) Is Nothing AndAlso Not Blatt.Range("A" & endRows).Value Is Nothing AndAlso Not Blatt.Range("A" & endRows).Value.ToString.Trim = "" Then + endFound = True + Else + Exit While + End If + endRows += 1 + End While + endRows -= 1 + + If Not endFound Then + MsgBox("Keine Daten vorhanden!") + Me.Cursor = Cursors.Default + Return False + End If + + + ' Neue DataTable erstellen + Dim DATA As New DataTable() + + ' Spalten anhand der Anzahl im Range anlegen + Dim colCount As Integer = Blatt.Range("A1:M1").Columns.Count + For c As Integer = 1 To colCount + DATA.Columns.Add("Spalte" & c, GetType(String)) + Next + + ' Range direkt durchlaufen + For r As Integer = startRows To endRows + Dim newRow As DataRow = DATA.NewRow() + For c As Integer = 1 To colCount + Dim value = Blatt.Cells(r, c).Value + newRow(c - 1) = If(value IsNot Nothing, value.ToString(), "") + Next + DATA.Rows.Add(newRow) + Next + + ' DataTable durchlaufen und Zeilen löschen, bei denen Spalte 6 "summe" enthält + For i As Integer = DATA.Rows.Count - 1 To 0 Step -1 + Dim cellValue As String = DATA.Rows(i)(6).ToString().ToLower() ' Spalte 6 = Index 5 + If cellValue.Contains("summe") Then + DATA.Rows.RemoveAt(i) + End If + Next + + + '-------------------------------------------------------------------------------------------------------------- + + ' Spaltenüberschriften ausgeben + For Each col As DataColumn In DATA.Columns + Console.Write(col.ColumnName & vbTab) + Next + Console.WriteLine() + + ' Alle Zeilen ausgeben + For Each row As DataRow In DATA.Rows + For Each col As DataColumn In DATA.Columns + Console.Write(row(col).ToString() & vbTab) + Next + Console.WriteLine() + Next + + '-------------------------------------------------------------------------------------------------------------- + '-------------HIER WERDEN DIE Zeilen kommuliert--------------------------------------------------------- + '-------------------------------------------------------------------------------------------------------------- + + ' Neue Tabelle mit gleicher Struktur + Dim resultDATA As DataTable = DATA.Clone() + '0 = Wartentarifnummer + '6 = Wartenbeschreibung + '12 = Währung (immer gleich)? + ' Gruppieren nach den Schlüsseln Spalte 0, 6 und 12 + Dim groups = From row In DATA.AsEnumerable() + Group row By key1 = row(0), key2 = row(6), key3 = row(12) Into grp = Group + Select key1, key2, key3, grp + + ' Gruppen durchlaufen und kumulierte Zeilen erstellen + For Each g In groups + Dim newRow As DataRow = resultDATA.NewRow() + + ' Gruppierungsspalten setzen + newRow(0) = g.key1 + newRow(6) = g.key2 + newRow(12) = g.key3 + + ' Summen berechnen + newRow(7) = g.grp.Sum(Function(r) ToDoubleSafe(r(7))) + newRow(9) = g.grp.Sum(Function(r) ToDoubleSafe(r(9))) + newRow(11) = g.grp.Sum(Function(r) ToDoubleSafe(r(11))) + + ' Restliche Spalten Nothing lassen (bleibt automatisch so) + + resultDATA.Rows.Add(newRow) + Next + + ' Falls du das Ergebnis in DATA zurückschreiben willst: + DATA = resultDATA + + '-------------------------------------------------------------------------------------------------------------- + '-------------------------------------------------------------------------------------------------------------- + + ' Spaltenüberschriften ausgeben + For Each col As DataColumn In DATA.Columns + Console.Write(col.ColumnName & vbTab) + Next + Console.WriteLine() + + ' Alle Zeilen ausgeben + For Each row As DataRow In DATA.Rows + For Each col As DataColumn In DATA.Columns + Console.Write(row(col).ToString() & vbTab) + Next + Console.WriteLine() + Next + + '-------------------------------------------------------------------------------------------------------------- + + + Dim HandlesRgNr = "" + If Blatt.Range("B3") IsNot Nothing AndAlso Blatt.Range("B3").Value IsNot Nothing Then + HandlesRgNr = Blatt.Range("B3").Value.ToString().Trim() + End If + Dim HandlesRgDat = "" + If Blatt.Range("B1") IsNot Nothing AndAlso Blatt.Range("B1").Value IsNot Nothing Then + HandlesRgDat = Blatt.Range("B1").Value.ToString().Trim() + End If + + ' MsgBox("A" & startRows & ":I" & endRows & "") + + + + Try + For Each row As DataRow In DATA.Rows + ' Prüfen, ob Spalte 1 (Index 0) gefüllt ist + If row(0) IsNot Nothing AndAlso row(0).ToString().Trim() <> "" Then + + Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition + POSITION.ezaWP_WarennummerEZT = row(0).ToString() + POSITION.ezaWP_PackstueckAnzahl = "0" ' row(5).ToString() + POSITION.ezaWP_PackstueckArt = "PK" + + ' Sicher konvertieren, falls leer oder ungültig + Dim preis As Double + Double.TryParse(row(11).ToString(), preis) + POSITION.ezaWP_Artikelpreis = preis.ToString("N2") + + POSITION.ezaWP_ArtikelpreisWaehrung = row(12).ToString() + POSITION.ezaWP_Warenbezeichnung = row(6).ToString() + + Dim masse As Double + Double.TryParse(row(9).ToString(), masse) + POSITION.ezaWP_Eigenmasse = masse.ToString("N1") + + ' Ursprungsland ggf. per Select Case setzen + 'Select Case row(3).ToString() + ' Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" + ' Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" + ' ... + 'End Select + + POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = "N380", + .ezaWpUl_Bereich = "4", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = HandlesRgNr, + .ezaWpUl_DatumAusstellung = Nothing + }) + + EZA.eza_WARENPOS.Add(POSITION) + cnt += 1 + End If + Next + Catch ex As Exception + MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + Me.Cursor = Cursors.Default + Return False + End Try + + + .Visible = False + + ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose + 'Excelobjekte freistellten + ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} + ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) + ' Next + Datei.Close() + + + + + Catch ex As Exception + ' + Me.Cursor = Cursors.Default + MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) + ' Return False + End Try + End With + + + + ' >>> Hier kannst du jede gültige Excel-Datei weiterverarbeiten: + Console.WriteLine("Verarbeite Datei: " & filePath) + ' z. B. Excel öffnen, Range lesen etc. + Next + + + MsgBox(cnt & " Datensätze wurden eingelesen. ") + + Me.Cursor = Cursors.Default + + Me.DialogResult = DialogResult.OK + Me.Close() + + Return True + End Function + + + + + Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click + + importExcel_Geze(cbxGezeKN8.Checked, cbxGezeTranslate.Checked, cbxGezeTNR8to11.Checked) + End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + + importExcel_MEYLE() + End Sub + + Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click + + importExcel_Fressnapf() + End Sub + + Private Function importExcel_Fressnapf() As Boolean + + Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG) + f.ShowDialog(Me) + Dim LIST_FILES = f.LIST_FILES + If Not f.DialogResult = DialogResult.OK Then Return False + If LIST_FILES.Count = 0 Then Return False + + + + + Dim cnt As Integer = 0 + + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() + End If + End If + + Me.Cursor = Cursors.WaitCursor + + For Each filePath As String In LIST_FILES + If Not (filePath.ToLower().EndsWith(".xls") OrElse filePath.ToLower().EndsWith(".xlsx")) Then + Continue For + End If + + Dim exclApp As Excel.Application = Nothing + Dim Datei As Excel.Workbook = Nothing + Dim Blatt As Excel.Worksheet = Nothing + + Try + exclApp = New Excel.Application With { + .CutCopyMode = False, + .DisplayAlerts = False + } + + Datei = exclApp.Workbooks.Open(filePath) + Blatt = CType(Datei.Worksheets(1), Excel.Worksheet) + Datei.Activate() + + Try : Blatt.ShowAllData() : Catch : End Try + + ' --- Prüfe, ob Kopfzeile in Zeile 17 existiert + If Not checkExcelHeader_Fressnapf(Blatt) Then + Throw New ApplicationException("Excel-Struktur entspricht nicht dem erwarteten Layout (Header-Zeile 17).") + End If + + ' --- Spalten dynamisch per Header ermitteln (Zeile 17) + Dim colDesc = FindHeaderColumn(Blatt, 17, {"warenbeschreibung"}) + Dim colImpCode = FindHeaderColumn(Blatt, 17, {"importcodenummer", "warentarifnummer", "eztnummer", "ezt-nummer"}) + Dim colOrigin = FindHeaderColumn(Blatt, 17, {"ursprungsland", "ursprungslandcode"}) + Dim colCurrency = FindHeaderColumn(Blatt, 17, {"währung", "waehrung", "currency"}) + Dim colNetMass = FindHeaderColumn(Blatt, 17, {"nettomasse", "nettomas­se", "nettomasse kg", "eigenmasse"}) + Dim colQty = FindHeaderColumn(Blatt, 17, {"menge", "quantity", "qty"}) + Dim colValue = FindHeaderColumn(Blatt, 17, {"warenwert", "invoice value", "value"}) + + ' Minimal erforderliche Spalten prüfen + If colDesc = -1 OrElse colImpCode = -1 OrElse colOrigin = -1 OrElse colCurrency = -1 OrElse colValue = -1 Then + Throw New ApplicationException("Nicht alle erforderlichen Spaltenköpfe gefunden (Beschreibung/Warentarifnummer/Ursprungsland/Währung/Warenwert).") + End If + + ' --- Datenbereich bestimmen: ab Zeile 18 bis erste Leerzeile in Spalte A (Pos.) + Dim startRows As Integer = 18 + Dim endRows As Integer = startRows + Dim usedRows As Integer = Blatt.UsedRange.Rows.Count + + Do While endRows <= usedRows + Dim val = Blatt.Range("A" & endRows).Value + If val Is Nothing OrElse val.ToString().Trim() = "" Then Exit Do + endRows += 1 + Loop + endRows -= 1 + + If endRows < startRows Then + Throw New ApplicationException("Keine Positionsdaten im Excel gefunden.") + End If + + ' --- Spaltenanzahl mindestens so groß wie letzte genutzte Spalte + Dim colCount As Integer = Math.Max(Blatt.UsedRange.Columns.Count, Math.Max(Math.Max(Math.Max(colDesc, colImpCode), Math.Max(colOrigin, colCurrency)), Math.Max(colValue, If(colNetMass < 0, 0, colNetMass))) + 1) + If colCount < 19 Then colCount = 19 ' typischerweise A..S + + ' --- Rohdaten in DataTable übernehmen + Dim DATA As New DataTable() + For c As Integer = 1 To colCount + DATA.Columns.Add("Spalte" & c, GetType(String)) + Next + + For r As Integer = startRows To endRows + Dim newRow As DataRow = DATA.NewRow() + For c As Integer = 1 To colCount + Dim value = Blatt.Cells(r, c).Value + newRow(c - 1) = If(value IsNot Nothing, value.ToString(), "") + Next + ' Normalisierung für Gruppierung + If colCurrency >= 0 Then newRow(colCurrency) = newRow(colCurrency).ToString().Trim().ToUpper() + If colOrigin >= 0 Then newRow(colOrigin) = newRow(colOrigin).ToString().Trim().ToUpper() + DATA.Rows.Add(newRow) + Next + + ' --- Nur numerische Pos.-Zeilen behalten (Spalte A / Index 0) + For i As Integer = DATA.Rows.Count - 1 To 0 Step -1 + Dim posTxt As String = DATA.Rows(i)(0).ToString().Trim() + Dim posNum As Integer + If Not Integer.TryParse(posTxt, posNum) Then + DATA.Rows.RemoveAt(i) + End If + Next + + ' --- Gruppieren nach: Beschreibung, Warentarifnummer, Ursprungsland, Währung + Dim resultDATA As DataTable = DATA.Clone() + + Dim groups = From row In DATA.AsEnumerable() + Group row By + keyDesc = row(colDesc), + keyTariff = row(colImpCode), + keyOrigin = row(colOrigin), + keyCurr = row(colCurrency) + Into grp = Group + Select keyDesc, keyTariff, keyOrigin, keyCurr, grp + + For Each g In groups + Dim newRow As DataRow = resultDATA.NewRow() + + newRow(colDesc) = g.keyDesc + newRow(colImpCode) = g.keyTariff + newRow(colOrigin) = g.keyOrigin + newRow(colCurrency) = g.keyCurr + + ' Summenfelder (nur wenn vorhanden) + If colQty >= 0 Then newRow(colQty) = g.grp.Sum(Function(r) ToDoubleSafe(r(colQty))).ToString() + If colNetMass >= 0 Then newRow(colNetMass) = g.grp.Sum(Function(r) ToDoubleSafe(r(colNetMass))).ToString() + newRow(colValue) = g.grp.Sum(Function(r) ToDoubleSafe(r(colValue))).ToString() + + resultDATA.Rows.Add(newRow) + Next + + ' --- Kopfwerte optional (z. B. Belegnummer) + Dim HandlesRgNr As String = "" + Try + If Blatt.Range("A8") IsNot Nothing AndAlso Blatt.Range("A8").Value IsNot Nothing Then + HandlesRgNr = Blatt.Range("A8").Value.ToString().Trim() + End If + Catch + End Try + + ' --- Ergebniszeilen in EZA schreiben + For Each row As DataRow In resultDATA.Rows + Dim tariff As String = row(colImpCode).ToString().Trim() + Dim desc As String = row(colDesc).ToString().Trim() + If tariff = "" AndAlso desc = "" Then Continue For + + Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition + + ' *** WAREN­TARIFNUMMER *** + POSITION.ezaWP_WarennummerEZT = tariff + + ' Packstücke (nicht aus Excel, Standardwerte) + POSITION.ezaWP_PackstueckAnzahl = "0" + POSITION.ezaWP_PackstueckArt = "PK" + + ' *** ARTIKELPREIS (Warenwert) *** + Dim warenwert As Double = ToDoubleSafe(row(colValue)) + POSITION.ezaWP_Artikelpreis = warenwert.ToString("N2") + + ' *** WÄHRUNG *** + POSITION.ezaWP_ArtikelpreisWaehrung = row(colCurrency).ToString() + + ' *** BESCHREIBUNG *** + POSITION.ezaWP_Warenbezeichnung = desc + + ' *** EIGENMASSE (aus Nettomasse, wenn vorhanden) *** + If colNetMass >= 0 Then + Dim netto As Double = ToDoubleSafe(row(colNetMass)) + POSITION.ezaWP_Eigenmasse = netto.ToString("N1") + Else + POSITION.ezaWP_Eigenmasse = "0.0" + End If + + ' *** URSPRUNGS­LAND (2-stellig) *** + Dim ursprung As String = row(colOrigin).ToString().Trim().ToUpper() + If ursprung.Length >= 2 Then POSITION.ezaWP_UrsprungslandCode = ursprung.Substring(0, 2) + + ' Unterlagen (optional) + If Not String.IsNullOrWhiteSpace(HandlesRgNr) Then + POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = "N380", + .ezaWpUl_Bereich = "4", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = HandlesRgNr, + .ezaWpUl_DatumAusstellung = Nothing + }) + End If + + EZA.eza_WARENPOS.Add(POSITION) + cnt += 1 + Next + + Catch ex As Exception + Me.Cursor = Cursors.Default + MsgBox("FEHLER beim Einlesen: " & vbCrLf & ex.Message) + Finally + ' Ressourcen sauber freigeben + Try + If Datei IsNot Nothing Then Datei.Close(False) + Catch + End Try + Try + If exclApp IsNot Nothing Then exclApp.Quit() + Catch + End Try + Try + If Blatt IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Blatt) + Catch + End Try + Try + If Datei IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Datei) + Catch + End Try + Try + If exclApp IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(exclApp) + Catch + End Try + Blatt = Nothing : Datei = Nothing : exclApp = Nothing + GC.Collect() + GC.WaitForPendingFinalizers() + End Try + + Console.WriteLine("Verarbeite Datei: " & filePath) + Next + + + + MsgBox(cnt & " Datensätze wurden eingelesen.") + Me.Cursor = Cursors.Default + + Me.DialogResult = DialogResult.OK + Me.Close() + + End Function + + ' Liefert die 0-basierte Spaltennummer (DataTable-Index) anhand eines Header-Texts in rowIdx. + ' Gibt -1 zurück, wenn keine der gesuchten Varianten gefunden wird. + Private Function FindHeaderColumn(ws As Excel.Worksheet, rowIdx As Integer, headerVariants As IEnumerable(Of String)) As Integer + Dim maxScanCols As Integer = 35 ' etwas Puffer + For c As Integer = 1 To maxScanCols + Dim cell = ws.Cells(rowIdx, c).Value + If cell Is Nothing Then Continue For + Dim norm = cell.ToString().Trim().ToLower() + For Each hv In headerVariants + If norm.Contains(hv.ToLower()) Then + Return c - 1 ' DataTable ist 0-basiert + End If + Next + Next + Return -1 + End Function + + Private Function ToDoubleSafe(obj As Object) As Double + If obj Is Nothing Then Return 0 + Dim s As String = obj.ToString().Trim() + If s = "" Then Return 0 + ' Komma/Punkt robust behandeln, kulturinvariant parsen + Dim d As Double + ' Erst alle Tausenderpunkte/Kommas vereinheitlichen + s = s.Replace(" ", "") + ' Häufigster Fall: deutsches Komma + If s.Contains(",") AndAlso Not s.Contains(".") Then + s = s.Replace(".", "") + s = s.Replace(",", ".") + ElseIf s.Contains(".") AndAlso s.Contains(",") Then + ' Entferne Tausender-Trenner, behalte Dezimaltrennzeichen als Punkt + s = s.Replace(".", "") + s = s.Replace(",", ".") + End If + If Double.TryParse(s, Globalization.NumberStyles.Any, Globalization.CultureInfo.InvariantCulture, d) Then + Return d + End If + Return 0 + End Function + + ' Prüft Kopfzeile in Zeile 17: + ' A17="Pos.", D17 beginnt mit "Warenbeschreibung", + ' P17 beginnt mit "Importcodenummer", R17 beginnt mit "Ursprungsland" + Private Function checkExcelHeader_Fressnapf(ws As Excel.Worksheet) As Boolean + Try + Dim a = CStr(ws.Range("A17").Value) + Dim d = CStr(ws.Range("D17").Value) + If a Is Nothing OrElse d Is Nothing Then Return False + Return a.Trim().ToLower() = "pos." AndAlso + d.Trim().ToLower().StartsWith("warenbeschreibung") + Catch + Return False + End Try + End Function + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + + ImportExcel_CustomsTemplate_V1(cbxVERAG_V1_Kn8.Checked, cbxVERAG_V1_translate.Checked, cbxVERAG_V1_TNR8to11.Checked) + 'ImportExcel_CustomsTemplate_V1_1(cbxVERAG_V1_Kn8.Checked, cbxVERAG_V1_translate.Checked, cbxVERAG_V1_TNR8to11.Checked) + End Sub + + '================================================================================================================================ + '================================================================================================================================ + '================================================================================================================================ + Public Function ImportExcel_CustomsTemplate_V1(OP_addKN8, OP_translate, OP_TNR8to11) As Boolean + ' --- Dateiauswahl wie gehabt --- + Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG) + f.ShowDialog(Me) + If f.DialogResult <> DialogResult.OK Then Return False + If f.LIST_FILES Is Nothing OrElse f.LIST_FILES.Count = 0 Then Return False + + ' --- ggf. vorhandene Positionen leeren --- + If EZA.eza_WARENPOS.Count > 0 Then + If vbYes = MsgBox("Sollen vorhandene Positionen gelöscht werden?", vbYesNo) Then + EZA.eza_WARENPOS.Clear() + End If + End If + + Me.Cursor = Cursors.WaitCursor + Dim cnt As Integer = 0 + + For Each filePath As String In f.LIST_FILES + If Not (filePath.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase) OrElse filePath.EndsWith(".xls", StringComparison.OrdinalIgnoreCase)) Then + Continue For + End If + + Dim xlApp As Excel.Application = Nothing + Dim wb As Excel.Workbook = Nothing + Dim ws As Excel.Worksheet = Nothing + + Try + xlApp = New Excel.Application() + xlApp.DisplayAlerts = False + xlApp.CutCopyMode = False + + wb = xlApp.Workbooks.Open(filePath) + ws = CType(wb.Worksheets(1), Excel.Worksheet) + wb.Activate() + + ' Falls Autofilter aktiv: ShowAllData() versuchen (optional) + Try + ws.ShowAllData() + Catch + End Try + + ' ---------- VERSIONSPRÜFUNG V1 und V1.1 unterstützt ---------- + Dim versionTag As String = GetCellStr(ws, 2, 8) ' H2 + If Not String.Equals(versionTag, "2025-V1", StringComparison.OrdinalIgnoreCase) Or + Not String.Equals(versionTag, "2025-V1.1", StringComparison.OrdinalIgnoreCase) Then + Throw New ApplicationException("Version nicht unterstützt (gefunden: '" & versionTag & "', erwartet: '2025-V1').") + End If + + ' ---------- 1) HEADER KEY/VALUE (A/B) ---------- + Dim header As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase) + Dim usedRows As Integer = ws.UsedRange.Rows.Count + Dim r As Integer + + For r = 3 To Math.Min(80, usedRows + 5) + Dim k As String = GetCellStr(ws, r, 1) + Dim v As String = GetCellStr(ws, r, 2) + If Not String.IsNullOrWhiteSpace(k) Then header(k) = v + Next + + ' ein paar Kopfwerte ins EZA (alle optional) + Dim HandelsRgNr As String = "" + Dim HandelsRgDat As String = "" + If header.ContainsKey("Invoice No.") Then HandelsRgNr = header("Invoice No.") + If header.ContainsKey("Invoice Date") Then HandelsRgDat = header("Invoice Date") + If header.ContainsKey("Currency") Then EZA.eza_Rechnungswaehrung = header("Currency") + If header.ContainsKey("Delivery Terms (Incoterms)") Then EZA.eza_LieferbedingungCode = header("Delivery Terms (Incoterms)") + If header.ContainsKey("Total Gross Weight (kg)") Then EZA.eza_GesamtRohmasse = ToDoubleSafeVERAGTmpl(header("Total Gross Weight (kg)")) + If header.ContainsKey("Truck Plate (Tractor)") Then EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = header("Truck Plate (Tractor)") + + ' ---------- 2) CONSIGNOR / CONSIGNEE ---------- + Dim rowCons As Integer = -1 + Dim rowCee As Integer = -1 + For r = 3 To Math.Min(80, usedRows + 5) + Dim aVal As String = GetCellStr(ws, r, 1) + If rowCons < 0 AndAlso String.Equals(aVal, "Consignor / Exporter", StringComparison.OrdinalIgnoreCase) Then rowCons = r + If rowCee < 0 AndAlso String.Equals(aVal, "Consignee / Importer", StringComparison.OrdinalIgnoreCase) Then rowCee = r + If rowCons > 0 AndAlso rowCee > 0 Then Exit For + Next + + ' Kundennummern nur ermitteln, wenn die Blöcke auch existieren + Dim kdnrImp As String = If(rowCee > 0, GetCellStr(ws, rowCee + 1, 6), "") + Dim kdnrCons As String = If(rowCons > 0, GetCellStr(ws, rowCons + 1, 6), "") + + If rowCons > 0 Then + 'Prüfen, ob Adresse schon vorhanden: + If Not EZA.eza_ADRESSEN.Any(Function(a) a.ezaAd_AdressTyp IsNot Nothing AndAlso a.ezaAd_AdressTyp.ToString().ToUpper() = "CZ") Then + Dim rr As Integer = rowCons + 1 + Dim adrC As New cDakosy_EZA_Adressen() + adrC.ezaAd_AdressTyp = "CZ" + + If Not String.IsNullOrWhiteSpace(kdnrCons) Then + ' --- Daten aus Datenbank (cAdressen) laden --- + Dim AD As New cAdressen(kdnrCons) + Dim KD As New cKunde(kdnrCons) + adrC.ezaAd_NameFirma1 = AD.Name_1 + adrC.ezaAd_LandCode = cProgramFunctions.getISO2Land(AD.LandKz) + adrC.ezaAd_PLZ = AD.PLZ + adrC.ezaAd_Ort = AD.Ort + adrC.ezaAd_StrasseHausNr1 = AD.Straße + If Not String.IsNullOrWhiteSpace(KD.EORITIN) Then adrC.ezaAd_TeilnehmerEORI = KD.EORITIN + Else + ' --- Excel-Werte (alle optional) --- + Dim consCompany As String = GetCellStr(ws, rr, 1) + Dim consCountry As String = GetCellStr(ws, rr, 2).ToUpperInvariant() + Dim consZIP As String = GetCellStr(ws, rr, 3) + Dim consCity As String = GetCellStr(ws, rr, 4) + Dim consStreet As String = GetCellStr(ws, rr, 5) + If consCompany <> "" Then adrC.ezaAd_NameFirma1 = consCompany + If consCountry <> "" Then adrC.ezaAd_LandCode = consCountry + If consZIP <> "" Then adrC.ezaAd_PLZ = consZIP + If consCity <> "" Then adrC.ezaAd_Ort = consCity + If consStreet <> "" Then adrC.ezaAd_StrasseHausNr1 = consStreet + End If + + EZA.eza_ADRESSEN.Add(adrC) + End If + End If + + If rowCee > 0 Then + 'Prüfen, ob Adresse schon vorhanden: + If Not EZA.eza_ADRESSEN.Any(Function(a) a.ezaAd_AdressTyp IsNot Nothing AndAlso a.ezaAd_AdressTyp.ToString().ToUpper() = "CN") Then + Dim rr As Integer = rowCee + 1 + Dim adrE As New cDakosy_EZA_Adressen() + adrE.ezaAd_AdressTyp = "CN" + + If Not String.IsNullOrWhiteSpace(kdnrImp) Then + ' --- Daten aus Datenbank (cAdressen) laden --- + Dim AD As New cAdressen(kdnrImp) + Dim KD As New cKunde(kdnrImp) + adrE.ezaAd_NameFirma1 = AD.Name_1 + adrE.ezaAd_LandCode = cProgramFunctions.getISO2Land(AD.LandKz) + adrE.ezaAd_PLZ = AD.PLZ + adrE.ezaAd_Ort = AD.Ort + adrE.ezaAd_StrasseHausNr1 = AD.Straße + If Not String.IsNullOrWhiteSpace(KD.EORITIN) Then adrE.ezaAd_TeilnehmerEORI = KD.EORITIN + Else + ' --- Excel-Werte (alle optional) --- + Dim ceeCompany As String = GetCellStr(ws, rr, 1) + Dim ceeCountry As String = GetCellStr(ws, rr, 2).ToUpperInvariant() + Dim ceeZIP As String = GetCellStr(ws, rr, 3) + Dim ceeCity As String = GetCellStr(ws, rr, 4) + Dim ceeStreet As String = GetCellStr(ws, rr, 5) + If ceeCompany <> "" Then adrE.ezaAd_NameFirma1 = ceeCompany + If ceeCountry <> "" Then adrE.ezaAd_LandCode = ceeCountry + If ceeZIP <> "" Then adrE.ezaAd_PLZ = ceeZIP + If ceeCity <> "" Then adrE.ezaAd_Ort = ceeCity + If ceeStreet <> "" Then adrE.ezaAd_StrasseHausNr1 = ceeStreet + End If + + EZA.eza_ADRESSEN.Add(adrE) + End If + End If + + ' ---------- 3) ITEM-TABELLE (optional) ---------- + ' Finde Titelzeile "Item Lines (add as many as needed)" in Spalte A + Dim rowItemsTitle As Integer = -1 + For r = 10 To Math.Min(200, usedRows + 10) + If String.Equals(GetCellStr(ws, r, 1), "Item Lines (add as many as needed)", StringComparison.OrdinalIgnoreCase) Then + rowItemsTitle = r + Exit For + End If + Next + + If rowItemsTitle > 0 Then + Dim rowHdr As Integer = rowItemsTitle + 1 + Dim usedCols As Integer = ws.UsedRange.Columns.Count + + ' Header-Indices (alle optional) + Dim cLine As Integer = -1, cArticle As Integer = -1, cDesc As Integer = -1, cShortDesc As Integer = -1 + Dim cHs As Integer = -1, cOrigin As Integer = -1, cPkgs As Integer = -1, cPkgType As Integer = -1 + Dim cGross As Integer = -1, cNet As Integer = -1, cUnit As Integer = -1, cTotal As Integer = -1, cCurr As Integer = -1 + Dim cPrefCountry = "", cBenefit = "", cCurrProc = "", cPrevProc = "", cprefCode = "", cprefDocNo = "", cYCodes = "" + + Dim c As Integer + For c = 1 To usedCols + Dim h As String = GetCellStr(ws, rowHdr, c).ToLowerInvariant().Replace(vbNewLine, "") + h = h.Replace("(optional)", "").Trim() + Select Case h + Case "line no.", "line no" : cLine = c + Case "article no.", "article no" : cArticle = c + Case "goods description" : cDesc = c + Case "short description" : cShortDesc = c + Case "hs code" : cHs = c + Case "origin country" : cOrigin = c + Case "packages" : cPkgs = c + Case "package type" : cPkgType = c + Case "gross weight (kg)" : cGross = c + Case "net weight (kg)" : cNet = c + Case "unit price" : cUnit = c + Case "total value" : cTotal = c + Case "currency" : cCurr = c + + 'Case "Invoice Line No." + Case "preferential country origin" : cPrefCountry = c + Case "preferential treatment / benefit" : cBenefit = c + Case "requested procedure" : cCurrProc = c + Case "previous procedure" : cPrevProc = c + Case "preference code" : cprefCode = c + Case "preferential document no" : cprefDocNo = c + Case "y-codes" : cYCodes = c + + End Select + Next + + ' Datenzeilen lesen: ab rowHdr+1 bis zur ersten komplett leeren Zeile + Dim rData As Integer = rowHdr + 1 + Dim lastRow As Integer = ws.UsedRange.Rows.Count + 5 + Dim tariffCache As New Dictionary(Of String, String) + + While rData <= lastRow + Dim anyVal As Boolean = False + For c = 1 To usedCols + If GetCellStr(ws, rData, c) <> "" Then + anyVal = True + Exit For + End If + Next + If Not anyVal Then Exit While + + ' Werte nur holen, wenn es die Spalten gibt + Dim descTxt As String = If(cDesc > 0, GetCellStr(ws, rData, cDesc), "") + Dim hs As String = If(cHs > 0, GetCellStr(ws, rData, cHs), "") + + ' Wenn gar nichts Sinnvolles da ist, Zeile überspringen + If descTxt = "" AndAlso hs = "" AndAlso (cArticle <= 0 OrElse GetCellStr(ws, rData, cArticle) = "") Then + rData += 1 + Continue While + End If + + Dim pos As New cDakosy_EZA_Warenposition() + + If cLine > 0 Then pos.ezaWP_PositionsNummer = GetCellStr(ws, rData, cLine) + If cArticle > 0 Then pos.ezaWP_Artikelnummer = GetCellStr(ws, rData, cArticle) + + Dim shortTxt As String = If(cShortDesc > 0, GetCellStr(ws, rData, cShortDesc), "") + If shortTxt <> "" Then + pos.ezaWP_Warenbezeichnung = shortTxt + ElseIf descTxt <> "" Then + pos.ezaWP_Warenbezeichnung = descTxt + End If + If hs <> "" Then pos.ezaWP_WarennummerEZT = hs + + ' Optional: Zollartikel-Stammdaten überschreiben, wenn Kundennummer vorhanden + Dim Kdnr As String = If(Not String.IsNullOrWhiteSpace(kdnrImp), kdnrImp, If(Not String.IsNullOrWhiteSpace(kdnrCons), kdnrCons, "")) + If Kdnr <> "" Then + Try + Dim ZAL = cZollArtikel.GetListByKundenNr(Kdnr) ' Annahme: Methode vorhanden + ' Artikelnummer als Schlüssel: nur wenn vorhanden + Dim artKey As String = If(cArticle > 0, GetCellStr(ws, rData, cArticle), "") + If Not String.IsNullOrWhiteSpace(artKey) AndAlso ZAL IsNot Nothing Then + Dim Artikel = cZollArtikel.FindZollArtikelByNummer(ZAL, artKey) + If Artikel IsNot Nothing Then + If Artikel.zollArt_Warenbeschreibung IsNot Nothing AndAlso Artikel.zollArt_Warenbeschreibung.ToString() <> "" Then + pos.ezaWP_Warenbezeichnung = Artikel.zollArt_Warenbeschreibung.ToString() + End If + If Artikel.zollArt_Warencodenummer IsNot Nothing AndAlso Artikel.zollArt_Warencodenummer.ToString() <> "" Then + pos.ezaWP_WarennummerEZT = Artikel.zollArt_Warencodenummer.ToString() + End If + End If + End If + Catch + ' Stammdaten-Lookup ist optional; Fehler hier nicht fatal + End Try + End If + + + '------------------------------------------------ + + If OP_translate Then + cDeeplAPI.deepl_Translate(pos.ezaWP_Warenbezeichnung, pos.ezaWP_Warenbezeichnung, "DE") + End If + If OP_addKN8 Then + If pos.ezaWP_WarennummerEZT.ToString.Length >= 8 Then + Dim Kn8Text = cTariffKN8_Interface.getKN8FromTNR(pos.ezaWP_WarennummerEZT.ToString.Substring(0, 8)) + pos.ezaWP_Warenbezeichnung = Kn8Text & ",hier: " & If(pos.ezaWP_Warenbezeichnung, "") + End If + End If + If If(pos.ezaWP_Warenbezeichnung, "").Length > 240 Then + pos.ezaWP_Warenbezeichnung = pos.ezaWP_Warenbezeichnung.Substring(0, 240) + End If + + + 'Wenn EZT Nummer 8-stellig ist, dann auf 11-stellig erweitern + If OP_TNR8to11 Then + If If(pos.ezaWP_WarennummerEZT, "") <> "" AndAlso (pos.ezaWP_WarennummerEZT.ToString.Length >= 8 And pos.ezaWP_WarennummerEZT.ToString.Length < 11) Then + Dim hsTmp = pos.ezaWP_WarennummerEZT.ToString() + Dim COMM_TARIFF As String = "" + ' Prüfen ob bereits abgefragt + If tariffCache.ContainsKey(hsTmp) Then + pos.ezaWP_WarennummerEZT = tariffCache(hsTmp) + Else + pos.ezaWP_WarennummerEZT = VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.GetFullTariff_Only1Result(hsTmp, "TR") + tariffCache(hsTmp) = pos.ezaWP_WarennummerEZT + End If + End If + End If + + '------------------------------------------------ + + + If If(pos.ezaWP_Warenbezeichnung, "").Length > 240 Then + pos.ezaWP_Warenbezeichnung = pos.ezaWP_Warenbezeichnung.Substring(0, 240) + End If + + + Dim origin As String = If(cOrigin > 0, GetCellStr(ws, rData, cOrigin).ToUpperInvariant(), "") + If origin.Length >= 2 Then pos.ezaWP_UrsprungslandCode = origin.Substring(0, 2) + + If cPkgs > 0 Then + Dim pk As String = GetCellStr(ws, rData, cPkgs) + If pk <> "" Then pos.ezaWP_PackstueckAnzahl = pk + End If + If cPkgType > 0 Then + Dim pt As String = GetCellStr(ws, rData, cPkgType) + If pt <> "" Then pos.ezaWP_PackstueckArt = pt + End If + + If cGross > 0 Then + Dim g As Double = ToDoubleSafeVERAGTmpl(GetCellStr(ws, rData, cGross)) + If g > 0 Then pos.ezaWP_Rohmasse = g + End If + If cNet > 0 Then + Dim n As Double = ToDoubleSafeVERAGTmpl(GetCellStr(ws, rData, cNet)) + If n > 0 Then pos.ezaWP_Eigenmasse = n + End If + + If cTotal > 0 Then + Dim totalVal As Double = ToDoubleSafeVERAGTmpl(GetCellStr(ws, rData, cTotal)) + pos.ezaWP_Artikelpreis = totalVal + End If + + Dim curr As String = If(cCurr > 0, GetCellStr(ws, rData, cCurr).ToUpperInvariant(), "") + If curr = "" Then + If header.ContainsKey("Currency") Then + pos.ezaWP_ArtikelpreisWaehrung = header("Currency").ToUpperInvariant() + Else + pos.ezaWP_ArtikelpreisWaehrung = "EUR" + End If + Else + pos.ezaWP_ArtikelpreisWaehrung = curr + End If + + If cPrefCountry <> "" Then + If cPrefCountry.Length >= 2 Then pos.ezaWP_Praeferenzursprungsland = origin.Substring(0, 2) + End If + + If cBenefit <> "" Then + pos.ezaWP_BeguenstigungBenatragtCode = cBenefit + End If + + If cPrevProc <> "" Then + pos.ezaWP_VerfahrensCodeVorangegangenesVerfahren = cPrevProc + End If + + If cCurrProc <> "" Then + pos.ezaWP_AnmeldeVErfahren = cCurrProc + End If + + + If cYCodes <> "" Then + cYCodes = cYCodes.Replace(";", ",").Replace("/", ",").Replace("+", ",").Replace("-", ",") + If cYCodes.Contains(",") Then + Dim s = cYCodes.Split(",") + For Each ycode In s + If ycode.Trim() <> "" Then + pos.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = ycode.Trim(), + .ezaWpUl_Bereich = "5", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = cprefDocNo, + .ezaWpUl_DatumAusstellung = Nothing + }) + End If + Next + Else + pos.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = cYCodes, + .ezaWpUl_Bereich = "5", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = cprefDocNo, + .ezaWpUl_DatumAusstellung = Nothing + }) + End If + + + + End If + + If cprefCode <> "" And cprefDocNo <> "" Then + Try + Dim Pref_art = "" + Dim Pref_bereich = "" + + If cprefCode.Contains("/") Then + Dim s = cprefCode.Split("/") + Pref_art = s(1) + Pref_bereich = s(0) + Else + Pref_art = cprefCode + Select Case cprefCode + Case "N954" : Pref_bereich = "3" + Case "N018" : Pref_bereich = "6" + Case "ATR", "A.TR" : Pref_bereich = "N018" : Pref_art = "6" + Case "EUR1", "EUR.1" : Pref_bereich = "N954" : Pref_art = "3" + End Select + End If + + pos.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = Pref_art, + .ezaWpUl_Bereich = Pref_bereich, + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = cprefDocNo, + .ezaWpUl_DatumAusstellung = Nothing + }) + Catch + End Try + End If + + + If HandelsRgNr <> "" Then + Try + pos.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { + .ezaWpUl_Art = "N380", + .ezaWpUl_Bereich = "4", + .ezaWpUl_VorlageKz = "J", + .ezaWpUl_Nummer = HandelsRgNr, + .ezaWpUl_DatumAusstellung = If(HandelsRgDat <> "" AndAlso IsDate(HandelsRgDat), CDate(HandelsRgDat).ToShortDateString, Nothing) + }) + Catch + End Try + End If + + EZA.eza_WARENPOS.Add(pos) + cnt += 1 + rData += 1 + End While + End If ' rowItemsTitle > 0 (wenn nicht gefunden: Items optional – Abschnitt wird einfach übersprungen) + + Catch ex As Exception + MsgBox("FEHLER beim Einlesen (" & filePath & "):" & vbCrLf & ex.Message, vbCritical) + Finally + ' --- COM sauber freigeben --- + Try + If wb IsNot Nothing Then wb.Close(False) + Catch + End Try + Try + If xlApp IsNot Nothing Then xlApp.Quit() + Catch + End Try + Try + If ws IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ws) + Catch + End Try + Try + If wb IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(wb) + Catch + End Try + Try + If xlApp IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlApp) + Catch + End Try + ws = Nothing : wb = Nothing : xlApp = Nothing + GC.Collect() + GC.WaitForPendingFinalizers() + End Try + Next + + ' --- UI Refresh wie gehabt --- + + + MsgBox(cnt & " Datensätze wurden eingelesen.") + Me.Cursor = Cursors.Default + + Me.DialogResult = DialogResult.OK + Me.Close() + + Return True + End Function + + Private Function GetCellStr(ws As Excel.Worksheet, r As Integer, c As Integer) As String + Try + Dim v = ws.Cells(r, c).Value + Return If(v IsNot Nothing, v.ToString().Trim(), "") + Catch + Return "" + End Try + End Function + + Private Function ToDoubleSafeVERAGTmpl(v As Object) As Double + If v Is Nothing Then Return 0 + Dim s As String = v.ToString().Trim().Replace(",", ".") + Dim d As Double + If Double.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, d) Then + Return d + End If + Return 0 + End Function + + Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click + Try + ' Zielpfad im Temp-Ordner festlegen + Dim tempFile As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "Customs_Clearance_Template_2025V1.xlsx") + + ' Ressource (als Binärdatei eingebunden) schreiben + System.IO.File.WriteAllBytes(tempFile, My.Resources.Customs_Clearance_Template) + + ' Datei mit dem Standardprogramm öffnen (z. B. Excel) + Process.Start(New ProcessStartInfo(tempFile) With {.UseShellExecute = True}) + + Catch ex As Exception + MsgBox("Fehler beim Öffnen der Vorlage: " & ex.Message, vbCritical) + End Try + End Sub + + + + + + + '================================================================================================================================ + '================================================================================================================================ + '================================================================================================================================ + +End Class \ No newline at end of file diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb index 0fb75051..2420d7ff 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.Designer.vb @@ -59,9 +59,9 @@ Partial Class usrCntlATLAS_EZA Me.MEYLEXLSXToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.FressnapToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.VERAGIMPORTFormatToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.VERAGFormatÖffnen2025V1ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() Me.EZAIDToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.VERAGFormatÖffnen2025V1ToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() CType(Me.SplitContainer, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer.Panel1.SuspendLayout() Me.SplitContainer.SuspendLayout() @@ -483,6 +483,12 @@ Partial Class usrCntlATLAS_EZA Me.VERAGIMPORTFormatToolStripMenuItem.Size = New System.Drawing.Size(244, 22) Me.VERAGIMPORTFormatToolStripMenuItem.Text = "VERAG-IMPORT-Format (XLSX)" ' + 'VERAGFormatÖffnen2025V1ToolStripMenuItem + ' + Me.VERAGFormatÖffnen2025V1ToolStripMenuItem.Name = "VERAGFormatÖffnen2025V1ToolStripMenuItem" + Me.VERAGFormatÖffnen2025V1ToolStripMenuItem.Size = New System.Drawing.Size(244, 22) + Me.VERAGFormatÖffnen2025V1ToolStripMenuItem.Text = "VERAG-Format öffnen (2025-V1)" + ' 'ToolStripMenuItem1 ' Me.ToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.EZAIDToolStripMenuItem}) @@ -496,12 +502,6 @@ Partial Class usrCntlATLAS_EZA Me.EZAIDToolStripMenuItem.Size = New System.Drawing.Size(109, 22) Me.EZAIDToolStripMenuItem.Text = "EZA ID" ' - 'VERAGFormatÖffnen2025V1ToolStripMenuItem - ' - Me.VERAGFormatÖffnen2025V1ToolStripMenuItem.Name = "VERAGFormatÖffnen2025V1ToolStripMenuItem" - Me.VERAGFormatÖffnen2025V1ToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.VERAGFormatÖffnen2025V1ToolStripMenuItem.Text = "VERAG-Format öffnen (2025-V1)" - ' 'usrCntlATLAS_EZA ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb index 2a86af9e..49814671 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA.vb @@ -769,662 +769,18 @@ Public Class usrCntlATLAS_EZA Clipboard.SetText(lblBezugsnummer.Text) End Sub - Private Sub DynamicAutomotiveXLSToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DynamicAutomotiveXLSToolStripMenuItem.Click - importExcel_DynamicAutomotive() - End Sub - - - - Private Function checkExcel_DynamicAutomotive(Blatt As Excel.Worksheet) As Boolean - 'Prüfung - Try - If Blatt Is Nothing Then Return False - If Blatt.Range("B23") Is Nothing Then Return False - If Blatt.Range("B23").Value.ToString <> "Code" Then Return False - - Catch ex As Exception - MsgBox("Fehler bei der Prüfung!" & ex.Message) - Me.Cursor = Cursors.Default - Return False - End Try - Return True - - End Function - - Private Function checkExcel_Geze(Blatt As Excel.Worksheet) As Boolean - 'Prüfung - Try - If Blatt Is Nothing Then Return False - If Blatt.Range("I1") Is Nothing Then Return False - If Blatt.Range("I1").Value.ToString <> "Codenummer" Then Return False - - Catch ex As Exception - MsgBox("Fehler bei der Prüfung!" & ex.Message) - Me.Cursor = Cursors.Default - Return False - End Try - Return True - - End Function - - Private Function checkExcel_MEYLE(Blatt As Excel.Worksheet) As Boolean - 'Prüfung - Try - If Blatt Is Nothing Then Return False - If Blatt.Range("A3") Is Nothing Then Return False - If Blatt.Range("A3").Value.ToString <> "Eingangsrechnung Lieferant:" Then Return False - - Catch ex As Exception - MsgBox("Fehler bei der Prüfung!" & ex.Message) - Me.Cursor = Cursors.Default - Return False - End Try - Return True - - End Function - Private Function importExcel_DynamicAutomotive() As Boolean - - - Dim fd As New OpenFileDialog - fd.Filter = "Excel Dateien|*.xls;*.xlsx" - Dim result As DialogResult = fd.ShowDialog() - - If Not fd.FileName.EndsWith(".xls") And Not fd.FileName.EndsWith(".xlsx") Then - Me.Cursor = Cursors.Default - Return False - End If - - If result = System.Windows.Forms.DialogResult.OK Then - - - Me.Cursor = Cursors.WaitCursor - Dim exclApp As New Excel.Application 'Object 'as Application - Dim Datei As Excel.Workbook ' 'as WorkBook - Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet - - With exclApp - Try - - .CutCopyMode = False - - .DisplayAlerts = False - - - Datei = .Workbooks.Open(fd.FileName) - Blatt = Datei.Worksheets(1) - - Datei.Activate() - - Try - Blatt.ShowAllData() 'Falls Filter ausgewählt wurde - Catch ex As Exception - - End Try - - Dim startFound As Boolean = False - Dim endFound As Boolean = False - - If Not checkExcel_DynamicAutomotive(Blatt) Then 'VALIDIERUNG - Me.Cursor = Cursors.Default - Return False - End If - - If EZA.eza_WARENPOS.Count > 0 Then - If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then - EZA.eza_WARENPOS.Clear() 'Zurücksetzen - End If - End If - - Dim startRows As Integer = 24 - - Dim endRows As Integer = startRows - While endRows < Blatt.UsedRange.Rows.Count - If Not Blatt.Range("B" & endRows) Is Nothing AndAlso Not Blatt.Range("B" & endRows).Value Is Nothing AndAlso Not Blatt.Range("B" & endRows).Value.ToString.Trim = "" Then - endFound = True - Else - Exit While - End If - endRows += 1 - End While - endRows -= 1 - - If Not endFound Then - MsgBox("Keine Daten vorhanden!") - Me.Cursor = Cursors.Default - Return False - End If - - 'Laden des Bereiches aus dem Excel: - Dim myRange As Excel.Range - myRange = Blatt.Range("B" & startRows & ":I" & endRows & "") - Dim myArray As Object(,) '<-- declared as 2D Array - myArray = myRange.Value 'store the content of each cell - 'myArray(i_soll2 - startRows + 1, 4) - - - Dim cnt = 0 - - Try - For i As Integer = 1 To endRows - startRows + 1 Step 1 - Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition - POSITION.ezaWP_WarennummerEZT = myArray(i, 5).ToString() - POSITION.ezaWP_PackstueckAnzahl = myArray(i, 6).ToString() - POSITION.ezaWP_PackstueckArt = "PK" - POSITION.ezaWP_Artikelpreis = CDbl(myArray(i, 8).ToString()).ToString("N2") - POSITION.ezaWP_ArtikelpreisWaehrung = "EUR" - POSITION.ezaWP_Warenbezeichnung = myArray(i, 2).ToString() - Select Case myArray(i, 4).ToString - Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" - Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" - Case "SPAIN" : POSITION.ezaWP_UrsprungslandCode = "ES" - Case "GERMANY" : POSITION.ezaWP_UrsprungslandCode = "DE" - Case "CZECH REPUBLIC" : POSITION.ezaWP_UrsprungslandCode = "CZ" - Case "FRANCE" : POSITION.ezaWP_UrsprungslandCode = "FR" - - End Select - - EZA.eza_WARENPOS.Add(POSITION) - cnt += 1 - Next - Catch ex As Exception - MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) - Me.Cursor = Cursors.Default - Return False - End Try - - - .Visible = False - - ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose - 'Excelobjekte freistellten - ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} - ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) - ' Next - Datei.Close() - - Me.FindForm.SuspendLayout() - POSITIONEN.setValues(EZA, True) - btnPositionen.PerformClick() - MsgBox(cnt & " Datensätze wurden eingelesen. ") - Me.FindForm.ResumeLayout() - - Me.Cursor = Cursors.Default - Return True - Catch ex As Exception - ' - Me.Cursor = Cursors.Default - MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) - ' Return False - End Try - End With - Return True - Else - MsgBox("Keine Datei ausgewählt!") - End If - - Me.Cursor = Cursors.Default - Return False - - End Function - - Private Function importExcel_Geze() As Boolean - - - Dim fd As New OpenFileDialog - fd.Filter = "Excel Dateien|*.xls;*.xlsx" - Dim result As DialogResult = fd.ShowDialog() - - If Not fd.FileName.ToLower.EndsWith(".xls") And Not fd.FileName.ToLower.EndsWith(".xlsx") Then - Me.Cursor = Cursors.Default - Return False - End If - - If result = System.Windows.Forms.DialogResult.OK Then - - - Me.Cursor = Cursors.WaitCursor - Dim exclApp As New Excel.Application 'Object 'as Application - Dim Datei As Excel.Workbook ' 'as WorkBook - Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet - - With exclApp - Try - - .CutCopyMode = False - - .DisplayAlerts = False - - - Datei = .Workbooks.Open(fd.FileName) - Blatt = Datei.Worksheets(1) - - Datei.Activate() - - Try - Blatt.ShowAllData() 'Falls Filter ausgewählt wurde - Catch ex As Exception - - End Try - - Dim startFound As Boolean = False - Dim endFound As Boolean = False - - If Not checkExcel_Geze(Blatt) Then 'VALIDIERUNG - Me.Cursor = Cursors.Default - Return False - End If - - If EZA.eza_WARENPOS.Count > 0 Then - If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then - EZA.eza_WARENPOS.Clear() 'Zurücksetzen - End If - End If - - Dim startRows As Integer = 2 - - Dim endRows As Integer = startRows - While endRows < Blatt.UsedRange.Rows.Count - If Not Blatt.Range("I" & endRows) Is Nothing AndAlso Not Blatt.Range("I" & endRows).Value Is Nothing AndAlso Not Blatt.Range("I" & endRows).Value.ToString.Trim = "" Then - endFound = True - Else - Exit While - End If - endRows += 1 - End While - ' endRows -= 1 - - If Not endFound Then - MsgBox("Keine Daten vorhanden!") - Me.Cursor = Cursors.Default - Return False - End If - - 'Laden des Bereiches aus dem Excel: - Dim myRange As Excel.Range - myRange = Blatt.Range("A" & startRows & ":I" & endRows & "") - Dim myArray As Object(,) '<-- declared as 2D Array - myArray = myRange.Value 'store the content of each cell - 'myArray(i_soll2 - startRows + 1, 4) - - - 'For i As Integer = 1 To myArray.GetLength(0) - ' For j As Integer = 1 To myArray.GetLength(1) - ' Console.Write(myArray(i, j).ToString() & vbTab) - ' Next - ' Console.WriteLine() - 'Next - - Dim cnt = 0 - - Try - For i As Integer = 1 To endRows - startRows + 1 Step 1 - If myArray(i, 1) IsNot Nothing AndAlso myArray(i, 1).ToString() <> "" Then - - - Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition - POSITION.ezaWP_WarennummerEZT = myArray(i, 9).ToString() - POSITION.ezaWP_PackstueckAnzahl = "0" 'myArray(i, 6).ToString() - POSITION.ezaWP_PackstueckArt = "PK" - POSITION.ezaWP_Artikelpreis = CDbl(myArray(i, 7).ToString()).ToString("N2") - POSITION.ezaWP_ArtikelpreisWaehrung = myArray(i, 8).ToString() - POSITION.ezaWP_Warenbezeichnung = myArray(i, 4).ToString() - 'Select Case myArray(i, 4).ToString - ' Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" - ' Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" - ' Case "SPAIN" : POSITION.ezaWP_UrsprungslandCode = "ES" - ' Case "GERMANY" : POSITION.ezaWP_UrsprungslandCode = "DE" - ' Case "CZECH REPUBLIC" : POSITION.ezaWP_UrsprungslandCode = "CZ" - ' Case "FRANCE" : POSITION.ezaWP_UrsprungslandCode = "FR" - POSITION.ezaWP_PositionsZusatz = "ArtikelNr: " & myArray(i, 1).ToString() - POSITION.ezaWP_Artikelnummer = myArray(i, 1).ToString() - 'End Select - POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { - .ezaWpUl_Art = "N380", - .ezaWpUl_Bereich = "4", - .ezaWpUl_VorlageKz = "J", - .ezaWpUl_Nummer = myArray(i, 2).ToString(), - .ezaWpUl_DatumAusstellung = Nothing - }) - - EZA.eza_WARENPOS.Add(POSITION) - cnt += 1 - End If - - - Next - Catch ex As Exception - MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) - Me.Cursor = Cursors.Default - Return False - End Try - - - .Visible = False - - ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose - 'Excelobjekte freistellten - ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} - ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) - ' Next - Datei.Close() - - Me.FindForm.SuspendLayout() - POSITIONEN.setValues(EZA, True) - btnPositionen.PerformClick() - MsgBox(cnt & " Datensätze wurden eingelesen. ") - Me.FindForm.ResumeLayout() - - Me.Cursor = Cursors.Default - Return True - Catch ex As Exception - ' - Me.Cursor = Cursors.Default - MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) - ' Return False - End Try - End With - Return True - Else - MsgBox("Keine Datei ausgewählt!") - End If - - Me.Cursor = Cursors.Default - Return False - - End Function - - Private Function importExcel_MEYLE() As Boolean - - Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG) - f.ShowDialog(Me) - Dim LIST_FILES = f.LIST_FILES - If Not f.DialogResult = DialogResult.OK Then Return False - If LIST_FILES.Count = 0 Then Return False - - - - Dim cnt = 0 - - - If EZA.eza_WARENPOS.Count > 0 Then - If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then - EZA.eza_WARENPOS.Clear() 'Zurücksetzen - End If - End If - - Me.Cursor = Cursors.WaitCursor - - For Each filePath As String In LIST_FILES - If Not filePath.ToLower.EndsWith(".xls") AndAlso Not filePath.ToLower.EndsWith(".xlsx") Then - ' Ungültige Datei – überspringen oder abbrechen - Continue For - End If - - - - - Dim exclApp As New Excel.Application 'Object 'as Application - Dim Datei As Excel.Workbook ' 'as WorkBook - Dim Blatt As Excel.Worksheet 'Object 'as WorkSheet - - With exclApp - Try - - .CutCopyMode = False - .DisplayAlerts = False - - - Datei = .Workbooks.Open(filePath) - Blatt = Datei.Worksheets(1) - - Datei.Activate() - - Try - Blatt.ShowAllData() 'Falls Filter ausgewählt wurde - Catch ex As Exception - - End Try - - Dim startFound As Boolean = False - Dim endFound As Boolean = False - - If Not checkExcel_MEYLE(Blatt) Then 'VALIDIERUNG - Me.Cursor = Cursors.Default - Return False - End If - - - Dim startRows As Integer = 6 - - Dim endRows As Integer = startRows - While endRows < Blatt.UsedRange.Rows.Count - If Not Blatt.Range("A" & endRows) Is Nothing AndAlso Not Blatt.Range("A" & endRows).Value Is Nothing AndAlso Not Blatt.Range("A" & endRows).Value.ToString.Trim = "" Then - endFound = True - Else - Exit While - End If - endRows += 1 - End While - endRows -= 1 - - If Not endFound Then - MsgBox("Keine Daten vorhanden!") - Me.Cursor = Cursors.Default - Return False - End If - - - ' Neue DataTable erstellen - Dim DATA As New DataTable() - - ' Spalten anhand der Anzahl im Range anlegen - Dim colCount As Integer = Blatt.Range("A1:M1").Columns.Count - For c As Integer = 1 To colCount - DATA.Columns.Add("Spalte" & c, GetType(String)) - Next - - ' Range direkt durchlaufen - For r As Integer = startRows To endRows - Dim newRow As DataRow = DATA.NewRow() - For c As Integer = 1 To colCount - Dim value = Blatt.Cells(r, c).Value - newRow(c - 1) = If(value IsNot Nothing, value.ToString(), "") - Next - DATA.Rows.Add(newRow) - Next - - ' DataTable durchlaufen und Zeilen löschen, bei denen Spalte 6 "summe" enthält - For i As Integer = DATA.Rows.Count - 1 To 0 Step -1 - Dim cellValue As String = DATA.Rows(i)(6).ToString().ToLower() ' Spalte 6 = Index 5 - If cellValue.Contains("summe") Then - DATA.Rows.RemoveAt(i) - End If - Next - - - '-------------------------------------------------------------------------------------------------------------- - - ' Spaltenüberschriften ausgeben - For Each col As DataColumn In DATA.Columns - Console.Write(col.ColumnName & vbTab) - Next - Console.WriteLine() - - ' Alle Zeilen ausgeben - For Each row As DataRow In DATA.Rows - For Each col As DataColumn In DATA.Columns - Console.Write(row(col).ToString() & vbTab) - Next - Console.WriteLine() - Next - - '-------------------------------------------------------------------------------------------------------------- - '-------------HIER WERDEN DIE Zeilen kommuliert--------------------------------------------------------- - '-------------------------------------------------------------------------------------------------------------- - - ' Neue Tabelle mit gleicher Struktur - Dim resultDATA As DataTable = DATA.Clone() - '0 = Wartentarifnummer - '6 = Wartenbeschreibung - '12 = Währung (immer gleich)? - ' Gruppieren nach den Schlüsseln Spalte 0, 6 und 12 - Dim groups = From row In DATA.AsEnumerable() - Group row By key1 = row(0), key2 = row(6), key3 = row(12) Into grp = Group - Select key1, key2, key3, grp - - ' Gruppen durchlaufen und kumulierte Zeilen erstellen - For Each g In groups - Dim newRow As DataRow = resultDATA.NewRow() - - ' Gruppierungsspalten setzen - newRow(0) = g.key1 - newRow(6) = g.key2 - newRow(12) = g.key3 - - ' Summen berechnen - newRow(7) = g.grp.Sum(Function(r) ToDoubleSafe(r(7))) - newRow(9) = g.grp.Sum(Function(r) ToDoubleSafe(r(9))) - newRow(11) = g.grp.Sum(Function(r) ToDoubleSafe(r(11))) - - ' Restliche Spalten Nothing lassen (bleibt automatisch so) - - resultDATA.Rows.Add(newRow) - Next - - ' Falls du das Ergebnis in DATA zurückschreiben willst: - DATA = resultDATA - - '-------------------------------------------------------------------------------------------------------------- - '-------------------------------------------------------------------------------------------------------------- - - ' Spaltenüberschriften ausgeben - For Each col As DataColumn In DATA.Columns - Console.Write(col.ColumnName & vbTab) - Next - Console.WriteLine() - - ' Alle Zeilen ausgeben - For Each row As DataRow In DATA.Rows - For Each col As DataColumn In DATA.Columns - Console.Write(row(col).ToString() & vbTab) - Next - Console.WriteLine() - Next - - '-------------------------------------------------------------------------------------------------------------- - - - Dim HandlesRgNr = "" - If Blatt.Range("B3") IsNot Nothing AndAlso Blatt.Range("B3").Value IsNot Nothing Then - HandlesRgNr = Blatt.Range("B3").Value.ToString().Trim() - End If - Dim HandlesRgDat = "" - If Blatt.Range("B1") IsNot Nothing AndAlso Blatt.Range("B1").Value IsNot Nothing Then - HandlesRgDat = Blatt.Range("B1").Value.ToString().Trim() - End If - - ' MsgBox("A" & startRows & ":I" & endRows & "") - - - - Try - For Each row As DataRow In DATA.Rows - ' Prüfen, ob Spalte 1 (Index 0) gefüllt ist - If row(0) IsNot Nothing AndAlso row(0).ToString().Trim() <> "" Then - - Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition - POSITION.ezaWP_WarennummerEZT = row(0).ToString() - POSITION.ezaWP_PackstueckAnzahl = "0" ' row(5).ToString() - POSITION.ezaWP_PackstueckArt = "PK" - - ' Sicher konvertieren, falls leer oder ungültig - Dim preis As Double - Double.TryParse(row(11).ToString(), preis) - POSITION.ezaWP_Artikelpreis = preis.ToString("N2") - - POSITION.ezaWP_ArtikelpreisWaehrung = row(12).ToString() - POSITION.ezaWP_Warenbezeichnung = row(6).ToString() - - Dim masse As Double - Double.TryParse(row(9).ToString(), masse) - POSITION.ezaWP_Eigenmasse = masse.ToString("N1") - - ' Ursprungsland ggf. per Select Case setzen - 'Select Case row(3).ToString() - ' Case "TURKEY" : POSITION.ezaWP_UrsprungslandCode = "TR" - ' Case "ITALY" : POSITION.ezaWP_UrsprungslandCode = "IT" - ' ... - 'End Select - - POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { - .ezaWpUl_Art = "N380", - .ezaWpUl_Bereich = "4", - .ezaWpUl_VorlageKz = "J", - .ezaWpUl_Nummer = HandlesRgNr, - .ezaWpUl_DatumAusstellung = Nothing - }) - - EZA.eza_WARENPOS.Add(POSITION) - cnt += 1 - End If - Next - Catch ex As Exception - MsgBox("Fehler beim Einlesen der Excel-Datei!" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) - Me.Cursor = Cursors.Default - Return False - End Try - - - .Visible = False - - ' AddHandler exclApp.WorkbookBeforeClose, AddressOf BeforeBookClose - 'Excelobjekte freistellten - ' For Each obj In New Object() {exclApp, Datei, Datei, Blatt, Blatt} - ' System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj) - ' Next - Datei.Close() - - - - - Catch ex As Exception - ' - Me.Cursor = Cursors.Default - MsgBox("FEHLER! Datei im richtigen Format?" & vbNewLine & vbNewLine & ex.Message & ex.StackTrace) - ' Return False - End Try - End With - - - - ' >>> Hier kannst du jede gültige Excel-Datei weiterverarbeiten: - Console.WriteLine("Verarbeite Datei: " & filePath) - ' z. B. Excel öffnen, Range lesen etc. - Next + Private Sub DateiimportToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DateiimportToolStripMenuItem.Click + Dim f As New cATLAS_EZA_IMPORT(AVISO, SENDUNG, EZA) + f.ShowDialog(Me.FindForm) + EZA = f.EZA Me.FindForm.SuspendLayout() POSITIONEN.setValues(EZA, True) btnPositionen.PerformClick() Me.FindForm.ResumeLayout() - - MsgBox(cnt & " Datensätze wurden eingelesen. ") - - Me.Cursor = Cursors.Default - Return True - - - Me.Cursor = Cursors.Default - Return False - - End Function - - - - - Private Sub pnl_Paint_1(sender As Object, e As PaintEventArgs) Handles pnl.Paint - End Sub + Private Sub XMLExampleToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles XMLExampleToolStripMenuItem.Click Me.Refresh() @@ -1463,705 +819,5 @@ Public Class usrCntlATLAS_EZA End If End Sub - - Private Sub GEZEXLSXToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles GEZEXLSXToolStripMenuItem.Click - importExcel_Geze() - End Sub - - Private Sub MEYLEXLSXToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MEYLEXLSXToolStripMenuItem.Click - importExcel_MEYLE() - End Sub - - Private Sub FressnapToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FressnapToolStripMenuItem.Click - - importExcel_Fressnapf() - End Sub - - Private Function importExcel_Fressnapf() As Boolean - - Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG) - f.ShowDialog(Me) - Dim LIST_FILES = f.LIST_FILES - If Not f.DialogResult = DialogResult.OK Then Return False - If LIST_FILES.Count = 0 Then Return False - - - - - Dim cnt As Integer = 0 - - If EZA.eza_WARENPOS.Count > 0 Then - If vbYes = MsgBox("Sollten die aktuellen Einträge gelöscht werden?", vbYesNo) Then - EZA.eza_WARENPOS.Clear() - End If - End If - - Me.Cursor = Cursors.WaitCursor - - For Each filePath As String In LIST_FILES - If Not (filePath.ToLower().EndsWith(".xls") OrElse filePath.ToLower().EndsWith(".xlsx")) Then - Continue For - End If - - Dim exclApp As Excel.Application = Nothing - Dim Datei As Excel.Workbook = Nothing - Dim Blatt As Excel.Worksheet = Nothing - - Try - exclApp = New Excel.Application With { - .CutCopyMode = False, - .DisplayAlerts = False - } - - Datei = exclApp.Workbooks.Open(filePath) - Blatt = CType(Datei.Worksheets(1), Excel.Worksheet) - Datei.Activate() - - Try : Blatt.ShowAllData() : Catch : End Try - - ' --- Prüfe, ob Kopfzeile in Zeile 17 existiert - If Not checkExcelHeader_Fressnapf(Blatt) Then - Throw New ApplicationException("Excel-Struktur entspricht nicht dem erwarteten Layout (Header-Zeile 17).") - End If - - ' --- Spalten dynamisch per Header ermitteln (Zeile 17) - Dim colDesc = FindHeaderColumn(Blatt, 17, {"warenbeschreibung"}) - Dim colImpCode = FindHeaderColumn(Blatt, 17, {"importcodenummer", "warentarifnummer", "eztnummer", "ezt-nummer"}) - Dim colOrigin = FindHeaderColumn(Blatt, 17, {"ursprungsland", "ursprungslandcode"}) - Dim colCurrency = FindHeaderColumn(Blatt, 17, {"währung", "waehrung", "currency"}) - Dim colNetMass = FindHeaderColumn(Blatt, 17, {"nettomasse", "nettomas­se", "nettomasse kg", "eigenmasse"}) - Dim colQty = FindHeaderColumn(Blatt, 17, {"menge", "quantity", "qty"}) - Dim colValue = FindHeaderColumn(Blatt, 17, {"warenwert", "invoice value", "value"}) - - ' Minimal erforderliche Spalten prüfen - If colDesc = -1 OrElse colImpCode = -1 OrElse colOrigin = -1 OrElse colCurrency = -1 OrElse colValue = -1 Then - Throw New ApplicationException("Nicht alle erforderlichen Spaltenköpfe gefunden (Beschreibung/Warentarifnummer/Ursprungsland/Währung/Warenwert).") - End If - - ' --- Datenbereich bestimmen: ab Zeile 18 bis erste Leerzeile in Spalte A (Pos.) - Dim startRows As Integer = 18 - Dim endRows As Integer = startRows - Dim usedRows As Integer = Blatt.UsedRange.Rows.Count - - Do While endRows <= usedRows - Dim val = Blatt.Range("A" & endRows).Value - If val Is Nothing OrElse val.ToString().Trim() = "" Then Exit Do - endRows += 1 - Loop - endRows -= 1 - - If endRows < startRows Then - Throw New ApplicationException("Keine Positionsdaten im Excel gefunden.") - End If - - ' --- Spaltenanzahl mindestens so groß wie letzte genutzte Spalte - Dim colCount As Integer = Math.Max(Blatt.UsedRange.Columns.Count, Math.Max(Math.Max(Math.Max(colDesc, colImpCode), Math.Max(colOrigin, colCurrency)), Math.Max(colValue, If(colNetMass < 0, 0, colNetMass))) + 1) - If colCount < 19 Then colCount = 19 ' typischerweise A..S - - ' --- Rohdaten in DataTable übernehmen - Dim DATA As New DataTable() - For c As Integer = 1 To colCount - DATA.Columns.Add("Spalte" & c, GetType(String)) - Next - - For r As Integer = startRows To endRows - Dim newRow As DataRow = DATA.NewRow() - For c As Integer = 1 To colCount - Dim value = Blatt.Cells(r, c).Value - newRow(c - 1) = If(value IsNot Nothing, value.ToString(), "") - Next - ' Normalisierung für Gruppierung - If colCurrency >= 0 Then newRow(colCurrency) = newRow(colCurrency).ToString().Trim().ToUpper() - If colOrigin >= 0 Then newRow(colOrigin) = newRow(colOrigin).ToString().Trim().ToUpper() - DATA.Rows.Add(newRow) - Next - - ' --- Nur numerische Pos.-Zeilen behalten (Spalte A / Index 0) - For i As Integer = DATA.Rows.Count - 1 To 0 Step -1 - Dim posTxt As String = DATA.Rows(i)(0).ToString().Trim() - Dim posNum As Integer - If Not Integer.TryParse(posTxt, posNum) Then - DATA.Rows.RemoveAt(i) - End If - Next - - ' --- Gruppieren nach: Beschreibung, Warentarifnummer, Ursprungsland, Währung - Dim resultDATA As DataTable = DATA.Clone() - - Dim groups = From row In DATA.AsEnumerable() - Group row By - keyDesc = row(colDesc), - keyTariff = row(colImpCode), - keyOrigin = row(colOrigin), - keyCurr = row(colCurrency) - Into grp = Group - Select keyDesc, keyTariff, keyOrigin, keyCurr, grp - - For Each g In groups - Dim newRow As DataRow = resultDATA.NewRow() - - newRow(colDesc) = g.keyDesc - newRow(colImpCode) = g.keyTariff - newRow(colOrigin) = g.keyOrigin - newRow(colCurrency) = g.keyCurr - - ' Summenfelder (nur wenn vorhanden) - If colQty >= 0 Then newRow(colQty) = g.grp.Sum(Function(r) ToDoubleSafe(r(colQty))).ToString() - If colNetMass >= 0 Then newRow(colNetMass) = g.grp.Sum(Function(r) ToDoubleSafe(r(colNetMass))).ToString() - newRow(colValue) = g.grp.Sum(Function(r) ToDoubleSafe(r(colValue))).ToString() - - resultDATA.Rows.Add(newRow) - Next - - ' --- Kopfwerte optional (z. B. Belegnummer) - Dim HandlesRgNr As String = "" - Try - If Blatt.Range("A8") IsNot Nothing AndAlso Blatt.Range("A8").Value IsNot Nothing Then - HandlesRgNr = Blatt.Range("A8").Value.ToString().Trim() - End If - Catch - End Try - - ' --- Ergebniszeilen in EZA schreiben - For Each row As DataRow In resultDATA.Rows - Dim tariff As String = row(colImpCode).ToString().Trim() - Dim desc As String = row(colDesc).ToString().Trim() - If tariff = "" AndAlso desc = "" Then Continue For - - Dim POSITION As New DAKOSY_Worker.cDakosy_EZA_Warenposition - - ' *** WAREN­TARIFNUMMER *** - POSITION.ezaWP_WarennummerEZT = tariff - - ' Packstücke (nicht aus Excel, Standardwerte) - POSITION.ezaWP_PackstueckAnzahl = "0" - POSITION.ezaWP_PackstueckArt = "PK" - - ' *** ARTIKELPREIS (Warenwert) *** - Dim warenwert As Double = ToDoubleSafe(row(colValue)) - POSITION.ezaWP_Artikelpreis = warenwert.ToString("N2") - - ' *** WÄHRUNG *** - POSITION.ezaWP_ArtikelpreisWaehrung = row(colCurrency).ToString() - - ' *** BESCHREIBUNG *** - POSITION.ezaWP_Warenbezeichnung = desc - - ' *** EIGENMASSE (aus Nettomasse, wenn vorhanden) *** - If colNetMass >= 0 Then - Dim netto As Double = ToDoubleSafe(row(colNetMass)) - POSITION.ezaWP_Eigenmasse = netto.ToString("N1") - Else - POSITION.ezaWP_Eigenmasse = "0.0" - End If - - ' *** URSPRUNGS­LAND (2-stellig) *** - Dim ursprung As String = row(colOrigin).ToString().Trim().ToUpper() - If ursprung.Length >= 2 Then POSITION.ezaWP_UrsprungslandCode = ursprung.Substring(0, 2) - - ' Unterlagen (optional) - If Not String.IsNullOrWhiteSpace(HandlesRgNr) Then - POSITION.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { - .ezaWpUl_Art = "N380", - .ezaWpUl_Bereich = "4", - .ezaWpUl_VorlageKz = "J", - .ezaWpUl_Nummer = HandlesRgNr, - .ezaWpUl_DatumAusstellung = Nothing - }) - End If - - EZA.eza_WARENPOS.Add(POSITION) - cnt += 1 - Next - - Catch ex As Exception - Me.Cursor = Cursors.Default - MsgBox("FEHLER beim Einlesen: " & vbCrLf & ex.Message) - Finally - ' Ressourcen sauber freigeben - Try - If Datei IsNot Nothing Then Datei.Close(False) - Catch - End Try - Try - If exclApp IsNot Nothing Then exclApp.Quit() - Catch - End Try - Try - If Blatt IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Blatt) - Catch - End Try - Try - If Datei IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(Datei) - Catch - End Try - Try - If exclApp IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(exclApp) - Catch - End Try - Blatt = Nothing : Datei = Nothing : exclApp = Nothing - GC.Collect() - GC.WaitForPendingFinalizers() - End Try - - Console.WriteLine("Verarbeite Datei: " & filePath) - Next - - Me.FindForm.SuspendLayout() - POSITIONEN.setValues(EZA, True) - btnPositionen.PerformClick() - Me.FindForm.ResumeLayout() - - MsgBox(cnt & " Datensätze wurden eingelesen.") - Me.Cursor = Cursors.Default - Return True - End Function - - ' Liefert die 0-basierte Spaltennummer (DataTable-Index) anhand eines Header-Texts in rowIdx. - ' Gibt -1 zurück, wenn keine der gesuchten Varianten gefunden wird. - Private Function FindHeaderColumn(ws As Excel.Worksheet, rowIdx As Integer, headerVariants As IEnumerable(Of String)) As Integer - Dim maxScanCols As Integer = 35 ' etwas Puffer - For c As Integer = 1 To maxScanCols - Dim cell = ws.Cells(rowIdx, c).Value - If cell Is Nothing Then Continue For - Dim norm = cell.ToString().Trim().ToLower() - For Each hv In headerVariants - If norm.Contains(hv.ToLower()) Then - Return c - 1 ' DataTable ist 0-basiert - End If - Next - Next - Return -1 - End Function - - Private Function ToDoubleSafe(obj As Object) As Double - If obj Is Nothing Then Return 0 - Dim s As String = obj.ToString().Trim() - If s = "" Then Return 0 - ' Komma/Punkt robust behandeln, kulturinvariant parsen - Dim d As Double - ' Erst alle Tausenderpunkte/Kommas vereinheitlichen - s = s.Replace(" ", "") - ' Häufigster Fall: deutsches Komma - If s.Contains(",") AndAlso Not s.Contains(".") Then - s = s.Replace(".", "") - s = s.Replace(",", ".") - ElseIf s.Contains(".") AndAlso s.Contains(",") Then - ' Entferne Tausender-Trenner, behalte Dezimaltrennzeichen als Punkt - s = s.Replace(".", "") - s = s.Replace(",", ".") - End If - If Double.TryParse(s, Globalization.NumberStyles.Any, Globalization.CultureInfo.InvariantCulture, d) Then - Return d - End If - Return 0 - End Function - - ' Prüft Kopfzeile in Zeile 17: - ' A17="Pos.", D17 beginnt mit "Warenbeschreibung", - ' P17 beginnt mit "Importcodenummer", R17 beginnt mit "Ursprungsland" - Private Function checkExcelHeader_Fressnapf(ws As Excel.Worksheet) As Boolean - Try - Dim a = CStr(ws.Range("A17").Value) - Dim d = CStr(ws.Range("D17").Value) - If a Is Nothing OrElse d Is Nothing Then Return False - Return a.Trim().ToLower() = "pos." AndAlso - d.Trim().ToLower().StartsWith("warenbeschreibung") - Catch - Return False - End Try - End Function - - Private Sub VERAGIMPORTFormatToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VERAGIMPORTFormatToolStripMenuItem.Click - ImportExcel_CustomsTemplate_V1() - End Sub - - '================================================================================================================================ - '================================================================================================================================ - '================================================================================================================================ - Public Function ImportExcel_CustomsTemplate_V1() As Boolean - ' --- Dateiauswahl wie gehabt --- - Dim f As New frmImportFromAVISOAnhaenge(AVISO, SENDUNG) - f.ShowDialog(Me) - If f.DialogResult <> DialogResult.OK Then Return False - If f.LIST_FILES Is Nothing OrElse f.LIST_FILES.Count = 0 Then Return False - - ' --- ggf. vorhandene Positionen leeren --- - If EZA.eza_WARENPOS.Count > 0 Then - If vbYes = MsgBox("Sollen vorhandene Positionen gelöscht werden?", vbYesNo) Then - EZA.eza_WARENPOS.Clear() - End If - End If - - Me.Cursor = Cursors.WaitCursor - Dim cnt As Integer = 0 - - For Each filePath As String In f.LIST_FILES - If Not (filePath.EndsWith(".xlsx", StringComparison.OrdinalIgnoreCase) OrElse filePath.EndsWith(".xls", StringComparison.OrdinalIgnoreCase)) Then - Continue For - End If - - Dim xlApp As Excel.Application = Nothing - Dim wb As Excel.Workbook = Nothing - Dim ws As Excel.Worksheet = Nothing - - Try - xlApp = New Excel.Application() - xlApp.DisplayAlerts = False - xlApp.CutCopyMode = False - - wb = xlApp.Workbooks.Open(filePath) - ws = CType(wb.Worksheets(1), Excel.Worksheet) - wb.Activate() - - ' Falls Autofilter aktiv: ShowAllData() versuchen (optional) - Try - ws.ShowAllData() - Catch - End Try - - ' ---------- VERSIONSPRÜFUNG ---------- - Dim versionTag As String = GetCellStr(ws, 2, 8) ' H2 - If Not String.Equals(versionTag, "2025-V1", StringComparison.OrdinalIgnoreCase) Then - Throw New ApplicationException("Version nicht unterstützt (gefunden: '" & versionTag & "', erwartet: '2025-V1').") - End If - - ' ---------- 1) HEADER KEY/VALUE (A/B) ---------- - Dim header As New Dictionary(Of String, String)(StringComparer.OrdinalIgnoreCase) - Dim usedRows As Integer = ws.UsedRange.Rows.Count - Dim r As Integer - - For r = 3 To Math.Min(80, usedRows + 5) - Dim k As String = GetCellStr(ws, r, 1) - Dim v As String = GetCellStr(ws, r, 2) - If Not String.IsNullOrWhiteSpace(k) Then header(k) = v - Next - - ' ein paar Kopfwerte ins EZA (alle optional) - Dim HandelsRgNr As String = "" - If header.ContainsKey("Invoice No.") Then HandelsRgNr = header("Invoice No.") - If header.ContainsKey("Currency") Then EZA.eza_Rechnungswaehrung = header("Currency") - If header.ContainsKey("Delivery Terms (Incoterms)") Then EZA.eza_LieferbedingungCode = header("Delivery Terms (Incoterms)") - If header.ContainsKey("Total Gross Weight (kg)") Then EZA.eza_GesamtRohmasse = ToDoubleSafeVERAGTmpl(header("Total Gross Weight (kg)")) - If header.ContainsKey("Truck Plate (Tractor)") Then EZA.eza_KennzeichenNameBefoerderungsmittelAnkunft = header("Truck Plate (Tractor)") - - ' ---------- 2) CONSIGNOR / CONSIGNEE ---------- - Dim rowCons As Integer = -1 - Dim rowCee As Integer = -1 - For r = 3 To Math.Min(80, usedRows + 5) - Dim aVal As String = GetCellStr(ws, r, 1) - If rowCons < 0 AndAlso String.Equals(aVal, "Consignor / Exporter", StringComparison.OrdinalIgnoreCase) Then rowCons = r - If rowCee < 0 AndAlso String.Equals(aVal, "Consignee / Importer", StringComparison.OrdinalIgnoreCase) Then rowCee = r - If rowCons > 0 AndAlso rowCee > 0 Then Exit For - Next - - ' Kundennummern nur ermitteln, wenn die Blöcke auch existieren - Dim kdnrImp As String = If(rowCee > 0, GetCellStr(ws, rowCee + 1, 6), "") - Dim kdnrCons As String = If(rowCons > 0, GetCellStr(ws, rowCons + 1, 6), "") - - If rowCons > 0 Then - 'Prüfen, ob Adresse schon vorhanden: - If Not EZA.eza_ADRESSEN.Any(Function(a) a.ezaAd_AdressTyp IsNot Nothing AndAlso a.ezaAd_AdressTyp.ToString().ToUpper() = "CZ") Then - Dim rr As Integer = rowCons + 1 - Dim adrC As New cDakosy_EZA_Adressen() - adrC.ezaAd_AdressTyp = "CZ" - - If Not String.IsNullOrWhiteSpace(kdnrCons) Then - ' --- Daten aus Datenbank (cAdressen) laden --- - Dim AD As New cAdressen(kdnrCons) - Dim KD As New cKunde(kdnrCons) - adrC.ezaAd_NameFirma1 = AD.Name_1 - adrC.ezaAd_LandCode = cProgramFunctions.getISO2Land(AD.LandKz) - adrC.ezaAd_PLZ = AD.PLZ - adrC.ezaAd_Ort = AD.Ort - adrC.ezaAd_StrasseHausNr1 = AD.Straße - If Not String.IsNullOrWhiteSpace(KD.EORITIN) Then adrC.ezaAd_TeilnehmerEORI = KD.EORITIN - Else - ' --- Excel-Werte (alle optional) --- - Dim consCompany As String = GetCellStr(ws, rr, 1) - Dim consCountry As String = GetCellStr(ws, rr, 2).ToUpperInvariant() - Dim consZIP As String = GetCellStr(ws, rr, 3) - Dim consCity As String = GetCellStr(ws, rr, 4) - Dim consStreet As String = GetCellStr(ws, rr, 5) - If consCompany <> "" Then adrC.ezaAd_NameFirma1 = consCompany - If consCountry <> "" Then adrC.ezaAd_LandCode = consCountry - If consZIP <> "" Then adrC.ezaAd_PLZ = consZIP - If consCity <> "" Then adrC.ezaAd_Ort = consCity - If consStreet <> "" Then adrC.ezaAd_StrasseHausNr1 = consStreet - End If - - EZA.eza_ADRESSEN.Add(adrC) - End If - End If - - If rowCee > 0 Then - 'Prüfen, ob Adresse schon vorhanden: - If Not EZA.eza_ADRESSEN.Any(Function(a) a.ezaAd_AdressTyp IsNot Nothing AndAlso a.ezaAd_AdressTyp.ToString().ToUpper() = "CN") Then - Dim rr As Integer = rowCee + 1 - Dim adrE As New cDakosy_EZA_Adressen() - adrE.ezaAd_AdressTyp = "CN" - - If Not String.IsNullOrWhiteSpace(kdnrImp) Then - ' --- Daten aus Datenbank (cAdressen) laden --- - Dim AD As New cAdressen(kdnrImp) - Dim KD As New cKunde(kdnrImp) - adrE.ezaAd_NameFirma1 = AD.Name_1 - adrE.ezaAd_LandCode = cProgramFunctions.getISO2Land(AD.LandKz) - adrE.ezaAd_PLZ = AD.PLZ - adrE.ezaAd_Ort = AD.Ort - adrE.ezaAd_StrasseHausNr1 = AD.Straße - If Not String.IsNullOrWhiteSpace(KD.EORITIN) Then adrE.ezaAd_TeilnehmerEORI = KD.EORITIN - Else - ' --- Excel-Werte (alle optional) --- - Dim ceeCompany As String = GetCellStr(ws, rr, 1) - Dim ceeCountry As String = GetCellStr(ws, rr, 2).ToUpperInvariant() - Dim ceeZIP As String = GetCellStr(ws, rr, 3) - Dim ceeCity As String = GetCellStr(ws, rr, 4) - Dim ceeStreet As String = GetCellStr(ws, rr, 5) - If ceeCompany <> "" Then adrE.ezaAd_NameFirma1 = ceeCompany - If ceeCountry <> "" Then adrE.ezaAd_LandCode = ceeCountry - If ceeZIP <> "" Then adrE.ezaAd_PLZ = ceeZIP - If ceeCity <> "" Then adrE.ezaAd_Ort = ceeCity - If ceeStreet <> "" Then adrE.ezaAd_StrasseHausNr1 = ceeStreet - End If - - EZA.eza_ADRESSEN.Add(adrE) - End If - End If - - ' ---------- 3) ITEM-TABELLE (optional) ---------- - ' Finde Titelzeile "Item Lines (add as many as needed)" in Spalte A - Dim rowItemsTitle As Integer = -1 - For r = 10 To Math.Min(200, usedRows + 10) - If String.Equals(GetCellStr(ws, r, 1), "Item Lines (add as many as needed)", StringComparison.OrdinalIgnoreCase) Then - rowItemsTitle = r - Exit For - End If - Next - - If rowItemsTitle > 0 Then - Dim rowHdr As Integer = rowItemsTitle + 1 - Dim usedCols As Integer = ws.UsedRange.Columns.Count - - ' Header-Indices (alle optional) - Dim cLine As Integer = -1, cArticle As Integer = -1, cDesc As Integer = -1, cShortDesc As Integer = -1 - Dim cHs As Integer = -1, cOrigin As Integer = -1, cPkgs As Integer = -1, cPkgType As Integer = -1 - Dim cGross As Integer = -1, cNet As Integer = -1, cUnit As Integer = -1, cTotal As Integer = -1, cCurr As Integer = -1 - - Dim c As Integer - For c = 1 To usedCols - Dim h As String = GetCellStr(ws, rowHdr, c).ToLowerInvariant() - Select Case h - Case "line no.", "line no" : cLine = c - Case "article no.", "article no" : cArticle = c - Case "goods description" : cDesc = c - Case "short description" : cShortDesc = c - Case "hs code" : cHs = c - Case "origin country" : cOrigin = c - Case "packages" : cPkgs = c - Case "package type" : cPkgType = c - Case "gross weight (kg)" : cGross = c - Case "net weight (kg)" : cNet = c - Case "unit price" : cUnit = c - Case "total value" : cTotal = c - Case "currency" : cCurr = c - End Select - Next - - ' Datenzeilen lesen: ab rowHdr+1 bis zur ersten komplett leeren Zeile - Dim rData As Integer = rowHdr + 1 - Dim lastRow As Integer = ws.UsedRange.Rows.Count + 5 - - While rData <= lastRow - Dim anyVal As Boolean = False - For c = 1 To usedCols - If GetCellStr(ws, rData, c) <> "" Then - anyVal = True - Exit For - End If - Next - If Not anyVal Then Exit While - - ' Werte nur holen, wenn es die Spalten gibt - Dim descTxt As String = If(cDesc > 0, GetCellStr(ws, rData, cDesc), "") - Dim hs As String = If(cHs > 0, GetCellStr(ws, rData, cHs), "") - - ' Wenn gar nichts Sinnvolles da ist, Zeile überspringen - If descTxt = "" AndAlso hs = "" AndAlso (cArticle <= 0 OrElse GetCellStr(ws, rData, cArticle) = "") Then - rData += 1 - Continue While - End If - - Dim pos As New cDakosy_EZA_Warenposition() - - If cLine > 0 Then pos.ezaWP_PositionsNummer = GetCellStr(ws, rData, cLine) - If cArticle > 0 Then pos.ezaWP_Artikelnummer = GetCellStr(ws, rData, cArticle) - - Dim shortTxt As String = If(cShortDesc > 0, GetCellStr(ws, rData, cShortDesc), "") - If shortTxt <> "" Then - pos.ezaWP_Warenbezeichnung = shortTxt - ElseIf descTxt <> "" Then - pos.ezaWP_Warenbezeichnung = descTxt - End If - If hs <> "" Then pos.ezaWP_WarennummerEZT = hs - - ' Optional: Zollartikel-Stammdaten überschreiben, wenn Kundennummer vorhanden - Dim Kdnr As String = If(Not String.IsNullOrWhiteSpace(kdnrImp), kdnrImp, If(Not String.IsNullOrWhiteSpace(kdnrCons), kdnrCons, "")) - If Kdnr <> "" Then - Try - Dim ZAL = cZollArtikel.GetListByKundenNr(Kdnr) ' Annahme: Methode vorhanden - ' Artikelnummer als Schlüssel: nur wenn vorhanden - Dim artKey As String = If(cArticle > 0, GetCellStr(ws, rData, cArticle), "") - If Not String.IsNullOrWhiteSpace(artKey) AndAlso ZAL IsNot Nothing Then - Dim Artikel = cZollArtikel.FindZollArtikelByNummer(ZAL, artKey) - If Artikel IsNot Nothing Then - If Artikel.zollArt_Warenbeschreibung IsNot Nothing AndAlso Artikel.zollArt_Warenbeschreibung.ToString() <> "" Then - pos.ezaWP_Warenbezeichnung = Artikel.zollArt_Warenbeschreibung.ToString() - End If - If Artikel.zollArt_Warencodenummer IsNot Nothing AndAlso Artikel.zollArt_Warencodenummer.ToString() <> "" Then - pos.ezaWP_WarennummerEZT = Artikel.zollArt_Warencodenummer.ToString() - End If - End If - End If - Catch - ' Stammdaten-Lookup ist optional; Fehler hier nicht fatal - End Try - End If - - Dim origin As String = If(cOrigin > 0, GetCellStr(ws, rData, cOrigin).ToUpperInvariant(), "") - If origin.Length >= 2 Then pos.ezaWP_UrsprungslandCode = origin.Substring(0, 2) - - If cPkgs > 0 Then - Dim pk As String = GetCellStr(ws, rData, cPkgs) - If pk <> "" Then pos.ezaWP_PackstueckAnzahl = pk - End If - If cPkgType > 0 Then - Dim pt As String = GetCellStr(ws, rData, cPkgType) - If pt <> "" Then pos.ezaWP_PackstueckArt = pt - End If - - If cGross > 0 Then - Dim g As Double = ToDoubleSafeVERAGTmpl(GetCellStr(ws, rData, cGross)) - If g > 0 Then pos.ezaWP_Rohmasse = g - End If - If cNet > 0 Then - Dim n As Double = ToDoubleSafeVERAGTmpl(GetCellStr(ws, rData, cNet)) - If n > 0 Then pos.ezaWP_Eigenmasse = n - End If - - If cTotal > 0 Then - Dim totalVal As Double = ToDoubleSafeVERAGTmpl(GetCellStr(ws, rData, cTotal)) - pos.ezaWP_Artikelpreis = totalVal - End If - - Dim curr As String = If(cCurr > 0, GetCellStr(ws, rData, cCurr).ToUpperInvariant(), "") - If curr = "" Then - If header.ContainsKey("Currency") Then - pos.ezaWP_ArtikelpreisWaehrung = header("Currency").ToUpperInvariant() - Else - pos.ezaWP_ArtikelpreisWaehrung = "EUR" - End If - Else - pos.ezaWP_ArtikelpreisWaehrung = curr - End If - - If HandelsRgNr <> "" Then - Try - pos.ezaWP_UNTERLAGEN.Add(New DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen With { - .ezaWpUl_Art = "N380", - .ezaWpUl_Bereich = "4", - .ezaWpUl_VorlageKz = "J", - .ezaWpUl_Nummer = HandelsRgNr, - .ezaWpUl_DatumAusstellung = Nothing - }) - Catch - End Try - End If - - EZA.eza_WARENPOS.Add(pos) - cnt += 1 - rData += 1 - End While - End If ' rowItemsTitle > 0 (wenn nicht gefunden: Items optional – Abschnitt wird einfach übersprungen) - - Catch ex As Exception - MsgBox("FEHLER beim Einlesen (" & filePath & "):" & vbCrLf & ex.Message, vbCritical) - Finally - ' --- COM sauber freigeben --- - Try - If wb IsNot Nothing Then wb.Close(False) - Catch - End Try - Try - If xlApp IsNot Nothing Then xlApp.Quit() - Catch - End Try - Try - If ws IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(ws) - Catch - End Try - Try - If wb IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(wb) - Catch - End Try - Try - If xlApp IsNot Nothing Then System.Runtime.InteropServices.Marshal.FinalReleaseComObject(xlApp) - Catch - End Try - ws = Nothing : wb = Nothing : xlApp = Nothing - GC.Collect() - GC.WaitForPendingFinalizers() - End Try - Next - - ' --- UI Refresh wie gehabt --- - Me.FindForm.SuspendLayout() - POSITIONEN.setValues(EZA, True) - btnPositionen.PerformClick() - Me.FindForm.ResumeLayout() - - MsgBox(cnt & " Datensätze wurden eingelesen.") - Me.Cursor = Cursors.Default - Return True - End Function - - Private Function GetCellStr(ws As Excel.Worksheet, r As Integer, c As Integer) As String - Try - Dim v = ws.Cells(r, c).Value - Return If(v IsNot Nothing, v.ToString().Trim(), "") - Catch - Return "" - End Try - End Function - - Private Function ToDoubleSafeVERAGTmpl(v As Object) As Double - If v Is Nothing Then Return 0 - Dim s As String = v.ToString().Trim().Replace(",", ".") - Dim d As Double - If Double.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, d) Then - Return d - End If - Return 0 - End Function - - Private Sub VERAGFormatÖffnen2025V1ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VERAGFormatÖffnen2025V1ToolStripMenuItem.Click - Try - ' Zielpfad im Temp-Ordner festlegen - Dim tempFile As String = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "Customs_Clearance_Template_2025V1.xlsx") - - ' Ressource (als Binärdatei eingebunden) schreiben - System.IO.File.WriteAllBytes(tempFile, My.Resources.Customs_Clearance_Template) - - ' Datei mit dem Standardprogramm öffnen (z. B. Excel) - Process.Start(New ProcessStartInfo(tempFile) With {.UseShellExecute = True}) - - Catch ex As Exception - MsgBox("Fehler beim Öffnen der Vorlage: " & ex.Message, vbCritical) - End Try - End Sub - '================================================================================================================================ - '================================================================================================================================ - '================================================================================================================================ - End Class diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.Designer.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.Designer.vb index 45da35ab..3a546aaa 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.Designer.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.Designer.vb @@ -85,6 +85,8 @@ Partial Class usrCntlATLAS_EZA_Position Me.Label2 = New System.Windows.Forms.Label() Me.Label29 = New System.Windows.Forms.Label() Me.Label11 = New System.Windows.Forms.Label() + Me.sbPraeferenzursprungsland = New VERAG_PROG_ALLGEMEIN.MySearchBox() + Me.Label13 = New System.Windows.Forms.Label() Me.pnl.SuspendLayout() CType(Me.dgvUnterlage, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -93,6 +95,8 @@ Partial Class usrCntlATLAS_EZA_Position ' Me.pnl.AutoScroll = True Me.pnl.BackColor = System.Drawing.Color.FloralWhite + Me.pnl.Controls.Add(Me.sbPraeferenzursprungsland) + Me.pnl.Controls.Add(Me.Label13) Me.pnl.Controls.Add(Me.txtArtikelpreisWaehrung) Me.pnl.Controls.Add(Me.sbAHStatMasseinheit) Me.pnl.Controls.Add(Me.Label12) @@ -1037,6 +1041,40 @@ Partial Class usrCntlATLAS_EZA_Position Me.Label11.Text = "Ursprungsland:" Me.Label11.TextAlign = System.Drawing.ContentAlignment.TopRight ' + 'sbPraeferenzursprungsland + ' + Me.sbPraeferenzursprungsland._allowFreitext = False + Me.sbPraeferenzursprungsland._AllowSetValue = False + Me.sbPraeferenzursprungsland._allowSpaceAsSplitter = False + Me.sbPraeferenzursprungsland._autoSizeGross = False + Me.sbPraeferenzursprungsland._hideIfListEmpty = True + Me.sbPraeferenzursprungsland._value = "" + Me.sbPraeferenzursprungsland.conn_art = "FMZOLL" + Me.sbPraeferenzursprungsland.dgvpos = "LEFT" + Me.sbPraeferenzursprungsland.DISPLAY_PARAM = Nothing + Me.sbPraeferenzursprungsland.INVISIBLE_COLUMNS = Nothing + Me.sbPraeferenzursprungsland.key_visible = False + Me.sbPraeferenzursprungsland.KEYPARAM = Nothing + Me.sbPraeferenzursprungsland.Location = New System.Drawing.Point(628, 320) + Me.sbPraeferenzursprungsland.Name = "sbPraeferenzursprungsland" + Me.sbPraeferenzursprungsland.searchActive = True + Me.sbPraeferenzursprungsland.Size = New System.Drawing.Size(41, 20) + Me.sbPraeferenzursprungsland.SQL_ORDER_BY = Nothing + Me.sbPraeferenzursprungsland.SQL_SELECT = Nothing + Me.sbPraeferenzursprungsland.SQL_WHERE = Nothing + Me.sbPraeferenzursprungsland.SQL_WhereParamList = Nothing + Me.sbPraeferenzursprungsland.TabIndex = 62 + Me.sbPraeferenzursprungsland.usrcntl = Nothing + ' + 'Label13 + ' + Me.Label13.Location = New System.Drawing.Point(483, 323) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(139, 13) + Me.Label13.TabIndex = 61 + Me.Label13.Text = "Präferenz-Ursprungsland:" + Me.Label13.TextAlign = System.Drawing.ContentAlignment.TopRight + ' 'usrCntlATLAS_EZA_Position ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -1113,4 +1151,6 @@ Partial Class usrCntlATLAS_EZA_Position Friend WithEvents txtAHStatMenge As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents sbAHStatMasseinheit As VERAG_PROG_ALLGEMEIN.MySearchBox Friend WithEvents txtArtikelpreisWaehrung As VERAG_PROG_ALLGEMEIN.MySearchBox + Friend WithEvents sbPraeferenzursprungsland As VERAG_PROG_ALLGEMEIN.MySearchBox + Friend WithEvents Label13 As Label End Class diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.resx b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.resx index c86b6322..18ad2004 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.resx +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.resx @@ -121,15 +121,15 @@ iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m - dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHaSURBVEhLvdW7SlhBFIVh701EGyGKpEjAywv4Aham - iIXaio1dELXwFVRs7ARBQbHSwi5lijTBWhAvfSKExJBKEEWP/8iM7JmzziWKFh/k7Fl7FhgZG7Ise1Vy - 6JwPvG9S8+eSQ4fCTrxVZ88hhxQNYgvHdUvJNfq9bXUe5AYs9OEbMq9WKZkmbPidHZVxog+Cb7COa79Y - q5SzHizjD8KOLI0+CJ2ZhZQsZdaLXZ9J5UqjDwLhR1IkV8r3Ii79ufLF5h//ERBYSRZSD6VwvyB7uIXK - OXe4sPdHZQGhOqVryUz5iwl7d1RkEawqdZepefADs+iw90YlKcJVpUVO8VHdmRukWHxK6Qwa1X25gcLy - vrmszFd8QuE7LIcpLljwF1aZV/uWHAZc0I9N/PMXVvmJ0mdQDh0W2+DK1MVlSp9BOWShC0uwb+P/KCzN - DQi+g3tB1EXWoZhZsjT6cAit4sovlZlGnRep294flTnJgnKEKbT7fFXpub0/KnMITCYL1m+MiZ2iUvd3 - 9cBmo8WA0LhZCn5hDtHbaHZU6QmGbC5asgjaUvd/MaJyFplQegP36gyjxWaihRThUPpZnStkXel3fFDn - uUGKxTG0qrMi5EfRrM5yg5cmhy8na7gHtvbLF9T64qAAAAAASUVORK5CYII= + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHJSURBVEhLvZUxaxVBFIWfRm0STBNQkRQnYI5/IH8g + RSxioWnFxk6CWvgXEkljJwgRFKtY2FmmsBFrQUzszQHRBCshKObJwCwsZ+6+2fCMxdecmXM/2H1732A4 + HA7+J0XQIOK0Z/+CImgQMS3igufjUgQJEVdFPBfxqa9UxKnce+FnbYpAxBURb0UMM72k6RWI2Mydl37e + 4KVJEU9F/GoJq1IRl0Q8EvG91QmlXvxsoqpUxGURW8H9UOrl5pF0UUhFrIn4GdxteNMpzAM2glIhzT+Q + VyL+BHcajkTsjxQeQ/okyJ0DEStVYU9pGuZZmy8i7ok430vYU9rFrohrPq8qHEO6mhaBz+olzNLXwdCI + bRHLo/ZwEUSIeBgMj3jgXacITDQv4pmIH8HwiD3/Tp0iaMnOZZkPrVEsh6pQxIyIdduNx6FTWgQiZvMG + 8SHOhyCrSiPhYxGHwQDnTo9PJkkv1oRecj6KuC1iKt+vSVUT3gpKDd9E3Ag6XdL0v/p+pDAPuBmUv4q4 + 77uxIt0RsVAVBtL0Lpb8jtOS/s5bZ1HEmfadomQDGuldP+siS9+JmPOzRBE46Z2JOOv5KERcFzHheaII + TpoiOGn+Arb2yxeUX28vAAAAAElFTkSuQmCC diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.vb index e8176e9a..fec2e309 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Position.vb @@ -63,6 +63,7 @@ sbAHStatMasseinheit.initSearchBox(Me.FindForm, " CodeQualifier ,[Description] as Art, CodeQualifier + ' ' + Description as display FROM [tbl_DY_ZollDE_I0700_Masseinheiten]", {"CodeQualifier", "Description", "'%'+Code"}, " (StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE()) ", "CodeQualifier", "CodeQualifier", "display", "FMZOLL", , 400, 200) sbUrsprungsland.initSearchBox(Me.FindForm, " [Code] ,[Description] as Land FROM tbl_DY_ZollDE_C0008_LaenderFull", {"Code", "Description"}, " (StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE()) ", "Code", "Code", "Code", "FMZOLL", , 400, 200) + sbPraeferenzursprungsland.initSearchBox(Me.FindForm, " [Code] ,[Description] as Land FROM tbl_DY_ZollDE_C0008_LaenderFull", {"Code", "Description"}, " (StartDate is null OR StartDate< GETDATE()) AND (EndDate is null OR EndDate> GETDATE()) ", "Code", "Code", "Code", "FMZOLL", , 400, 200) cboZT.Items.Clear() cboZT.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Absender", "ABS")) @@ -163,6 +164,7 @@ Me.cboBeguenstigung.changeItem(If(WARE.ezaWP_BeguenstigungBenatragtCode, "")) Me.sbUrsprungsland.SET_VALUE(If(WARE.ezaWP_UrsprungslandCode, "")) + Me.sbPraeferenzursprungsland.SET_VALUE(If(WARE.ezaWP_Praeferenzursprungsland, "")) diff --git a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Positionen.vb b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Positionen.vb index b9557282..8ae9b465 100644 --- a/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Positionen.vb +++ b/SDL/ZOLLSYSTEM/DAKOSY/ATLAS/EZA/usrCntlATLAS_EZA_Positionen.vb @@ -272,6 +272,7 @@ POSITION.ezaWP_BeguenstigungBenatragtCode = cProgramFunctions.isLeerNothing(P.cboBeguenstigung._value) POSITION.ezaWP_UrsprungslandCode = cProgramFunctions.isLeerNothing(P.sbUrsprungsland._value) + POSITION.ezaWP_Praeferenzursprungsland = cProgramFunctions.isLeerNothing(P.sbPraeferenzursprungsland._value) POSITION.ezaWP_UNTERLAGEN = New List(Of DAKOSY_Worker.cDakosy_EZA_WarenpositionVorgelegteUnterlagen) For Each r As DataGridViewRow In P.dgvUnterlage.Rows diff --git a/SDL/cATLAS_FSS.vb b/SDL/cATLAS_FSS.vb index b52b3298..330a323d 100644 --- a/SDL/cATLAS_FSS.vb +++ b/SDL/cATLAS_FSS.vb @@ -230,6 +230,7 @@ Public Class cArtikel Property Ursprungsland As String = "" Property Kundennummer As String = "" Property Warencodenummer As String = "" + Property WarencodenummerUPDATE As String = "" Property Löschkennzeichen_Warencodenummer As String = "" Property Zusatzcode_1 As String = "" Property Löschkennzeichen_Zusatzcode_1 As String = "" @@ -259,5 +260,15 @@ Public Class cArtikel Property tmp_rueckgabetextSBG As String = "" Property tmp_rueckgabeSBG As Boolean = False Property status As String = "" + Property Y1 As String = "" + Property Y2 As String = "" + Property Y3 As String = "" + Property Y4 As String = "" + Property Y5 As String = "" + Property Y6 As String = "" + Property Y7 As String = "" + Property Y8 As String = "" + Property Y9 As String = "" + Property Y10 As String = "" End Class \ No newline at end of file diff --git a/SDL/cSqlDb.vb b/SDL/cSqlDb.vb index 9c60c45e..42aa6102 100644 --- a/SDL/cSqlDb.vb +++ b/SDL/cSqlDb.vb @@ -401,6 +401,7 @@ Public Class SQLZoll d.Dynamische_Ergänzung_1 = cSqlDb.checkNullStr(dr.Item("zollArt_Dynamische_Ergaenzung_1")) d.Dynamische_Ergänzung_1 = cSqlDb.checkNullStr(dr.Item("zollArt_Dynamische_Ergaenzung_2")) + d.WarencodenummerUPDATE = cSqlDb.checkNullStr(dr.Item("zollArt_WarencodenummerUPDATE")) d.Warencodenummer = cSqlDb.checkNullStr(dr.Item("zollArt_Warencodenummer")) d.Zusatzcode_1 = cSqlDb.checkNullStr(dr.Item("zollArt_Zusatzcode_1")) d.Zusatzcode_2 = cSqlDb.checkNullStr(dr.Item("zollArt_Zusatzcode_2")) @@ -414,6 +415,16 @@ Public Class SQLZoll d.Gewicht = cSqlDb.checkNullStr(dr.Item("zollArt_Gewicht")) d.Menge = cSqlDb.checkNullStr(dr.Item("zollArt_Menge")) d.status = cSqlDb.checkNullStr(dr.Item("zollArt_Status")) + d.Y1 = cSqlDb.checkNullStr(dr.Item("zollArt_Y1")) + d.Y2 = cSqlDb.checkNullStr(dr.Item("zollArt_Y2")) + d.Y3 = cSqlDb.checkNullStr(dr.Item("zollArt_Y3")) + d.Y4 = cSqlDb.checkNullStr(dr.Item("zollArt_Y4")) + d.Y5 = cSqlDb.checkNullStr(dr.Item("zollArt_Y5")) + d.Y6 = cSqlDb.checkNullStr(dr.Item("zollArt_Y6")) + d.Y7 = cSqlDb.checkNullStr(dr.Item("zollArt_Y7")) + d.Y8 = cSqlDb.checkNullStr(dr.Item("zollArt_Y8")) + d.Y9 = cSqlDb.checkNullStr(dr.Item("zollArt_Y9")) + d.Y10 = cSqlDb.checkNullStr(dr.Item("zollArt_Y10")) daten.Add(d) End While diff --git a/SDL/zoll/frmAddArtikelATLAS.Designer.vb b/SDL/zoll/frmAddArtikelATLAS.Designer.vb index 551ffdcc..55b9f8d7 100644 --- a/SDL/zoll/frmAddArtikelATLAS.Designer.vb +++ b/SDL/zoll/frmAddArtikelATLAS.Designer.vb @@ -28,6 +28,8 @@ Partial Class frmAddArtikelATLAS Me.Label1 = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() Me.Panel3 = New System.Windows.Forms.Panel() + Me.txtUrsprungsland = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label20 = New System.Windows.Forms.Label() Me.errWarencodenummer = New System.Windows.Forms.Label() Me.Label17 = New System.Windows.Forms.Label() Me.Label18 = New System.Windows.Forms.Label() @@ -90,8 +92,20 @@ Partial Class frmAddArtikelATLAS Me.ToolStripLabel1 = New System.Windows.Forms.ToolStripLabel() Me.Timer1 = New System.Windows.Forms.Timer(Me.components) Me.Label5 = New System.Windows.Forms.Label() - Me.txtUrsprungsland = New VERAG_PROG_ALLGEMEIN.MyTextBox() - Me.Label20 = New System.Windows.Forms.Label() + Me.Label21 = New System.Windows.Forms.Label() + Me.txtWarencodenummerUPDATE = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.Label22 = New System.Windows.Forms.Label() + Me.txtY1 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY2 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY3 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY6 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY5 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY4 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY9 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY8 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY7 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.txtY10 = New VERAG_PROG_ALLGEMEIN.MyTextBox() + Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() Me.Panel1.SuspendLayout() Me.Panel3.SuspendLayout() Me.Panel4.SuspendLayout() @@ -103,7 +117,7 @@ Partial Class frmAddArtikelATLAS 'lblError ' Me.lblError.ForeColor = System.Drawing.Color.Red - Me.lblError.Location = New System.Drawing.Point(220, 338) + Me.lblError.Location = New System.Drawing.Point(220, 394) Me.lblError.Name = "lblError" Me.lblError.Size = New System.Drawing.Size(342, 25) Me.lblError.TabIndex = 5 @@ -131,11 +145,25 @@ Partial Class frmAddArtikelATLAS Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(569, 540) + Me.Panel1.Size = New System.Drawing.Size(569, 605) Me.Panel1.TabIndex = 8 ' 'Panel3 ' + Me.Panel3.Controls.Add(Me.LinkLabel1) + Me.Panel3.Controls.Add(Me.txtY10) + Me.Panel3.Controls.Add(Me.txtY9) + Me.Panel3.Controls.Add(Me.txtY8) + Me.Panel3.Controls.Add(Me.txtY7) + Me.Panel3.Controls.Add(Me.txtY6) + Me.Panel3.Controls.Add(Me.txtY5) + Me.Panel3.Controls.Add(Me.txtY4) + Me.Panel3.Controls.Add(Me.txtY3) + Me.Panel3.Controls.Add(Me.txtY2) + Me.Panel3.Controls.Add(Me.txtY1) + Me.Panel3.Controls.Add(Me.Label22) + Me.Panel3.Controls.Add(Me.Label21) + Me.Panel3.Controls.Add(Me.txtWarencodenummerUPDATE) Me.Panel3.Controls.Add(Me.txtUrsprungsland) Me.Panel3.Controls.Add(Me.Label20) Me.Panel3.Controls.Add(Me.errWarencodenummer) @@ -178,9 +206,42 @@ Partial Class frmAddArtikelATLAS Me.Panel3.Dock = System.Windows.Forms.DockStyle.Fill Me.Panel3.Location = New System.Drawing.Point(0, 90) Me.Panel3.Name = "Panel3" - Me.Panel3.Size = New System.Drawing.Size(567, 448) + Me.Panel3.Size = New System.Drawing.Size(567, 513) Me.Panel3.TabIndex = 378 ' + 'txtUrsprungsland + ' + Me.txtUrsprungsland._DateTimeOnly = False + Me.txtUrsprungsland._numbersOnly = False + Me.txtUrsprungsland._numbersOnlyKommastellen = "" + Me.txtUrsprungsland._numbersOnlyTrennzeichen = False + Me.txtUrsprungsland._Prozent = False + Me.txtUrsprungsland._ShortDateNew = False + Me.txtUrsprungsland._ShortDateOnly = False + Me.txtUrsprungsland._TimeOnly = False + Me.txtUrsprungsland._TimeOnly_Seconds = False + Me.txtUrsprungsland._value = Nothing + Me.txtUrsprungsland._Waehrung = False + Me.txtUrsprungsland._WaehrungZeichen = False + Me.txtUrsprungsland.Location = New System.Drawing.Point(97, 133) + Me.txtUrsprungsland.MaxLength = 2 + Me.txtUrsprungsland.MaxLineLength = -1 + Me.txtUrsprungsland.MaxLines_Warning = "" + Me.txtUrsprungsland.MaxLines_Warning_Label = Nothing + Me.txtUrsprungsland.Name = "txtUrsprungsland" + Me.txtUrsprungsland.Size = New System.Drawing.Size(110, 20) + Me.txtUrsprungsland.TabIndex = 4 + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label20.Location = New System.Drawing.Point(8, 136) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(78, 13) + Me.Label20.TabIndex = 394 + Me.Label20.Text = "Ursprungsland:" + ' 'errWarencodenummer ' Me.errWarencodenummer.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(54, Byte), Integer), CType(CType(128, Byte), Integer)) @@ -222,7 +283,7 @@ Partial Class frmAddArtikelATLAS 'lblStatus ' Me.lblStatus.AutoSize = True - Me.lblStatus.Location = New System.Drawing.Point(94, 324) + Me.lblStatus.Location = New System.Drawing.Point(94, 380) Me.lblStatus.Name = "lblStatus" Me.lblStatus.Size = New System.Drawing.Size(54, 13) Me.lblStatus.TabIndex = 383 @@ -231,7 +292,7 @@ Partial Class frmAddArtikelATLAS 'Label4 ' Me.Label4.AutoSize = True - Me.Label4.Location = New System.Drawing.Point(8, 324) + Me.Label4.Location = New System.Drawing.Point(8, 380) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(40, 13) Me.Label4.TabIndex = 383 @@ -349,7 +410,7 @@ Partial Class frmAddArtikelATLAS Me.btnSave.ForeColor = System.Drawing.Color.Black Me.btnSave.Image = Global.SDL.My.Resources.Resources.save Me.btnSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSave.Location = New System.Drawing.Point(11, 408) + Me.btnSave.Location = New System.Drawing.Point(11, 464) Me.btnSave.Name = "btnSave" Me.btnSave.Size = New System.Drawing.Size(106, 39) Me.btnSave.TabIndex = 9 @@ -360,7 +421,7 @@ Partial Class frmAddArtikelATLAS 'Label13 ' Me.Label13.AutoSize = True - Me.Label13.Location = New System.Drawing.Point(8, 353) + Me.Label13.Location = New System.Drawing.Point(8, 409) Me.Label13.Name = "Label13" Me.Label13.Size = New System.Drawing.Size(94, 13) Me.Label13.TabIndex = 374 @@ -393,7 +454,7 @@ Partial Class frmAddArtikelATLAS 'Label14 ' Me.Label14.AutoSize = True - Me.Label14.Location = New System.Drawing.Point(8, 386) + Me.Label14.Location = New System.Drawing.Point(8, 442) Me.Label14.Name = "Label14" Me.Label14.Size = New System.Drawing.Size(96, 13) Me.Label14.TabIndex = 372 @@ -415,7 +476,7 @@ Partial Class frmAddArtikelATLAS Me.txtWarencodeZusatz1._Waehrung = False Me.txtWarencodeZusatz1._WaehrungZeichen = True Me.txtWarencodeZusatz1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtWarencodeZusatz1.Location = New System.Drawing.Point(329, 180) + Me.txtWarencodeZusatz1.Location = New System.Drawing.Point(329, 176) Me.txtWarencodeZusatz1.MaxLength = 4 Me.txtWarencodeZusatz1.MaxLineLength = -1 Me.txtWarencodeZusatz1.MaxLines_Warning = "" @@ -427,7 +488,7 @@ Partial Class frmAddArtikelATLAS 'lblErfassung ' Me.lblErfassung.AutoSize = True - Me.lblErfassung.Location = New System.Drawing.Point(106, 353) + Me.lblErfassung.Location = New System.Drawing.Point(106, 409) Me.lblErfassung.Name = "lblErfassung" Me.lblErfassung.Size = New System.Drawing.Size(0, 13) Me.lblErfassung.TabIndex = 371 @@ -459,7 +520,7 @@ Partial Class frmAddArtikelATLAS 'Label15 ' Me.Label15.AutoSize = True - Me.Label15.Location = New System.Drawing.Point(8, 369) + Me.Label15.Location = New System.Drawing.Point(8, 425) Me.Label15.Name = "Label15" Me.Label15.Size = New System.Drawing.Size(93, 13) Me.Label15.TabIndex = 373 @@ -481,7 +542,7 @@ Partial Class frmAddArtikelATLAS Me.txtWarencodeZusatz2._Waehrung = False Me.txtWarencodeZusatz2._WaehrungZeichen = True Me.txtWarencodeZusatz2.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtWarencodeZusatz2.Location = New System.Drawing.Point(445, 180) + Me.txtWarencodeZusatz2.Location = New System.Drawing.Point(445, 176) Me.txtWarencodeZusatz2.MaxLength = 4 Me.txtWarencodeZusatz2.MaxLineLength = -1 Me.txtWarencodeZusatz2.MaxLines_Warning = "" @@ -493,7 +554,7 @@ Partial Class frmAddArtikelATLAS 'lblAenderung ' Me.lblAenderung.AutoSize = True - Me.lblAenderung.Location = New System.Drawing.Point(107, 369) + Me.lblAenderung.Location = New System.Drawing.Point(107, 425) Me.lblAenderung.Name = "lblAenderung" Me.lblAenderung.Size = New System.Drawing.Size(0, 13) Me.lblAenderung.TabIndex = 370 @@ -525,7 +586,7 @@ Partial Class frmAddArtikelATLAS 'lblSachbearb ' Me.lblSachbearb.AutoSize = True - Me.lblSachbearb.Location = New System.Drawing.Point(106, 386) + Me.lblSachbearb.Location = New System.Drawing.Point(106, 442) Me.lblSachbearb.Name = "lblSachbearb" Me.lblSachbearb.Size = New System.Drawing.Size(0, 13) Me.lblSachbearb.TabIndex = 369 @@ -555,7 +616,7 @@ Partial Class frmAddArtikelATLAS ' Me.Label11.AutoSize = True Me.Label11.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label11.Location = New System.Drawing.Point(8, 244) + Me.Label11.Location = New System.Drawing.Point(8, 268) Me.Label11.Name = "Label11" Me.Label11.Size = New System.Drawing.Size(75, 13) Me.Label11.TabIndex = 15 @@ -576,7 +637,7 @@ Partial Class frmAddArtikelATLAS Me.txtKurztext._Waehrung = False Me.txtKurztext._WaehrungZeichen = True Me.txtKurztext.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtKurztext.Location = New System.Drawing.Point(97, 206) + Me.txtKurztext.Location = New System.Drawing.Point(97, 230) Me.txtKurztext.MaxLength = 600 Me.txtKurztext.MaxLineLength = -1 Me.txtKurztext.MaxLines_Warning = "" @@ -599,7 +660,7 @@ Partial Class frmAddArtikelATLAS Me.txtBeschreibung._value = Nothing Me.txtBeschreibung._Waehrung = False Me.txtBeschreibung._WaehrungZeichen = True - Me.txtBeschreibung.Location = New System.Drawing.Point(97, 241) + Me.txtBeschreibung.Location = New System.Drawing.Point(97, 265) Me.txtBeschreibung.MaxLength = 2400 Me.txtBeschreibung.MaxLineLength = -1 Me.txtBeschreibung.MaxLines_Warning = "" @@ -624,7 +685,7 @@ Partial Class frmAddArtikelATLAS Me.txtWarencodenummer._Waehrung = False Me.txtWarencodenummer._WaehrungZeichen = True Me.txtWarencodenummer.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtWarencodenummer.Location = New System.Drawing.Point(97, 180) + Me.txtWarencodenummer.Location = New System.Drawing.Point(97, 176) Me.txtWarencodenummer.MaxLength = 11 Me.txtWarencodenummer.MaxLineLength = -1 Me.txtWarencodenummer.MaxLines_Warning = "" @@ -637,7 +698,7 @@ Partial Class frmAddArtikelATLAS ' Me.Label12.AutoSize = True Me.Label12.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label12.Location = New System.Drawing.Point(8, 183) + Me.Label12.Location = New System.Drawing.Point(8, 179) Me.Label12.Name = "Label12" Me.Label12.Size = New System.Drawing.Size(83, 13) Me.Label12.TabIndex = 13 @@ -647,7 +708,7 @@ Partial Class frmAddArtikelATLAS ' Me.Label10.AutoSize = True Me.Label10.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label10.Location = New System.Drawing.Point(8, 209) + Me.Label10.Location = New System.Drawing.Point(8, 233) Me.Label10.Name = "Label10" Me.Label10.Size = New System.Drawing.Size(48, 13) Me.Label10.TabIndex = 13 @@ -662,9 +723,9 @@ Partial Class frmAddArtikelATLAS Me.Panel4.Controls.Add(Me.FlatButton3) Me.Panel4.Controls.Add(Me.cbxUeberschreiben) Me.Panel4.Controls.Add(Me.Label6) - Me.Panel4.Location = New System.Drawing.Point(220, 366) + Me.Panel4.Location = New System.Drawing.Point(480, 481) Me.Panel4.Name = "Panel4" - Me.Panel4.Size = New System.Drawing.Size(335, 84) + Me.Panel4.Size = New System.Drawing.Size(75, 25) Me.Panel4.TabIndex = 391 Me.Panel4.Visible = False ' @@ -853,7 +914,6 @@ Partial Class frmAddArtikelATLAS ' Me.BindingNavigatorPositionItem.AccessibleName = "Position" Me.BindingNavigatorPositionItem.AutoSize = False - Me.BindingNavigatorPositionItem.Font = New System.Drawing.Font("Segoe UI", 9.0!) Me.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem" Me.BindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 23) Me.BindingNavigatorPositionItem.Text = "0" @@ -920,44 +980,305 @@ Partial Class frmAddArtikelATLAS Me.Label5.TextAlign = System.Drawing.ContentAlignment.TopCenter Me.Label5.Visible = False ' - 'txtUrsprungsland + 'Label21 ' - Me.txtUrsprungsland._DateTimeOnly = False - Me.txtUrsprungsland._numbersOnly = False - Me.txtUrsprungsland._numbersOnlyKommastellen = "" - Me.txtUrsprungsland._numbersOnlyTrennzeichen = False - Me.txtUrsprungsland._Prozent = False - Me.txtUrsprungsland._ShortDateNew = False - Me.txtUrsprungsland._ShortDateOnly = False - Me.txtUrsprungsland._TimeOnly = False - Me.txtUrsprungsland._TimeOnly_Seconds = False - Me.txtUrsprungsland._value = Nothing - Me.txtUrsprungsland._Waehrung = False - Me.txtUrsprungsland._WaehrungZeichen = False - Me.txtUrsprungsland.Location = New System.Drawing.Point(97, 133) - Me.txtUrsprungsland.MaxLength = 2 - Me.txtUrsprungsland.MaxLineLength = -1 - Me.txtUrsprungsland.MaxLines_Warning = "" - Me.txtUrsprungsland.MaxLines_Warning_Label = Nothing - Me.txtUrsprungsland.Name = "txtUrsprungsland" - Me.txtUrsprungsland.Size = New System.Drawing.Size(110, 20) - Me.txtUrsprungsland.TabIndex = 4 + Me.Label21.AutoSize = True + Me.Label21.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label21.Location = New System.Drawing.Point(94, 201) + Me.Label21.Name = "Label21" + Me.Label21.Size = New System.Drawing.Size(130, 13) + Me.Label21.TabIndex = 398 + Me.Label21.Text = "Warencode-Nr. UPDATE:" ' - 'Label20 + 'txtWarencodenummerUPDATE ' - Me.Label20.AutoSize = True - Me.Label20.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label20.Location = New System.Drawing.Point(8, 136) - Me.Label20.Name = "Label20" - Me.Label20.Size = New System.Drawing.Size(78, 13) - Me.Label20.TabIndex = 394 - Me.Label20.Text = "Ursprungsland:" + Me.txtWarencodenummerUPDATE._DateTimeOnly = False + Me.txtWarencodenummerUPDATE._numbersOnly = False + Me.txtWarencodenummerUPDATE._numbersOnlyKommastellen = "" + Me.txtWarencodenummerUPDATE._numbersOnlyTrennzeichen = True + Me.txtWarencodenummerUPDATE._Prozent = False + Me.txtWarencodenummerUPDATE._ShortDateNew = False + Me.txtWarencodenummerUPDATE._ShortDateOnly = False + Me.txtWarencodenummerUPDATE._TimeOnly = False + Me.txtWarencodenummerUPDATE._TimeOnly_Seconds = False + Me.txtWarencodenummerUPDATE._value = Nothing + Me.txtWarencodenummerUPDATE._Waehrung = False + Me.txtWarencodenummerUPDATE._WaehrungZeichen = True + Me.txtWarencodenummerUPDATE.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!) + Me.txtWarencodenummerUPDATE.Location = New System.Drawing.Point(223, 198) + Me.txtWarencodenummerUPDATE.MaxLength = 1100 + Me.txtWarencodenummerUPDATE.MaxLineLength = -1 + Me.txtWarencodenummerUPDATE.MaxLines_Warning = "" + Me.txtWarencodenummerUPDATE.MaxLines_Warning_Label = Nothing + Me.txtWarencodenummerUPDATE.Name = "txtWarencodenummerUPDATE" + Me.txtWarencodenummerUPDATE.Size = New System.Drawing.Size(216, 20) + Me.txtWarencodenummerUPDATE.TabIndex = 397 + ' + 'Label22 + ' + Me.Label22.AutoSize = True + Me.Label22.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label22.Location = New System.Drawing.Point(7, 352) + Me.Label22.Name = "Label22" + Me.Label22.Size = New System.Drawing.Size(80, 13) + Me.Label22.TabIndex = 399 + Me.Label22.Text = "Y-Codierungen:" + ' + 'txtY1 + ' + Me.txtY1._DateTimeOnly = False + Me.txtY1._numbersOnly = False + Me.txtY1._numbersOnlyKommastellen = "" + Me.txtY1._numbersOnlyTrennzeichen = True + Me.txtY1._Prozent = False + Me.txtY1._ShortDateNew = False + Me.txtY1._ShortDateOnly = False + Me.txtY1._TimeOnly = False + Me.txtY1._TimeOnly_Seconds = False + Me.txtY1._value = "" + Me.txtY1._Waehrung = False + Me.txtY1._WaehrungZeichen = True + Me.txtY1.ForeColor = System.Drawing.Color.Black + Me.txtY1.Location = New System.Drawing.Point(97, 349) + Me.txtY1.MaxLength = 4 + Me.txtY1.MaxLineLength = -1 + Me.txtY1.MaxLines_Warning = "" + Me.txtY1.MaxLines_Warning_Label = Nothing + Me.txtY1.Name = "txtY1" + Me.txtY1.Size = New System.Drawing.Size(35, 20) + Me.txtY1.TabIndex = 400 + ' + 'txtY2 + ' + Me.txtY2._DateTimeOnly = False + Me.txtY2._numbersOnly = False + Me.txtY2._numbersOnlyKommastellen = "" + Me.txtY2._numbersOnlyTrennzeichen = True + Me.txtY2._Prozent = False + Me.txtY2._ShortDateNew = False + Me.txtY2._ShortDateOnly = False + Me.txtY2._TimeOnly = False + Me.txtY2._TimeOnly_Seconds = False + Me.txtY2._value = "" + Me.txtY2._Waehrung = False + Me.txtY2._WaehrungZeichen = True + Me.txtY2.ForeColor = System.Drawing.Color.Black + Me.txtY2.Location = New System.Drawing.Point(138, 349) + Me.txtY2.MaxLength = 4 + Me.txtY2.MaxLineLength = -1 + Me.txtY2.MaxLines_Warning = "" + Me.txtY2.MaxLines_Warning_Label = Nothing + Me.txtY2.Name = "txtY2" + Me.txtY2.Size = New System.Drawing.Size(35, 20) + Me.txtY2.TabIndex = 401 + ' + 'txtY3 + ' + Me.txtY3._DateTimeOnly = False + Me.txtY3._numbersOnly = False + Me.txtY3._numbersOnlyKommastellen = "" + Me.txtY3._numbersOnlyTrennzeichen = True + Me.txtY3._Prozent = False + Me.txtY3._ShortDateNew = False + Me.txtY3._ShortDateOnly = False + Me.txtY3._TimeOnly = False + Me.txtY3._TimeOnly_Seconds = False + Me.txtY3._value = "" + Me.txtY3._Waehrung = False + Me.txtY3._WaehrungZeichen = True + Me.txtY3.ForeColor = System.Drawing.Color.Black + Me.txtY3.Location = New System.Drawing.Point(179, 349) + Me.txtY3.MaxLength = 4 + Me.txtY3.MaxLineLength = -1 + Me.txtY3.MaxLines_Warning = "" + Me.txtY3.MaxLines_Warning_Label = Nothing + Me.txtY3.Name = "txtY3" + Me.txtY3.Size = New System.Drawing.Size(35, 20) + Me.txtY3.TabIndex = 402 + ' + 'txtY6 + ' + Me.txtY6._DateTimeOnly = False + Me.txtY6._numbersOnly = False + Me.txtY6._numbersOnlyKommastellen = "" + Me.txtY6._numbersOnlyTrennzeichen = True + Me.txtY6._Prozent = False + Me.txtY6._ShortDateNew = False + Me.txtY6._ShortDateOnly = False + Me.txtY6._TimeOnly = False + Me.txtY6._TimeOnly_Seconds = False + Me.txtY6._value = "" + Me.txtY6._Waehrung = False + Me.txtY6._WaehrungZeichen = True + Me.txtY6.ForeColor = System.Drawing.Color.Black + Me.txtY6.Location = New System.Drawing.Point(302, 349) + Me.txtY6.MaxLength = 4 + Me.txtY6.MaxLineLength = -1 + Me.txtY6.MaxLines_Warning = "" + Me.txtY6.MaxLines_Warning_Label = Nothing + Me.txtY6.Name = "txtY6" + Me.txtY6.Size = New System.Drawing.Size(35, 20) + Me.txtY6.TabIndex = 405 + ' + 'txtY5 + ' + Me.txtY5._DateTimeOnly = False + Me.txtY5._numbersOnly = False + Me.txtY5._numbersOnlyKommastellen = "" + Me.txtY5._numbersOnlyTrennzeichen = True + Me.txtY5._Prozent = False + Me.txtY5._ShortDateNew = False + Me.txtY5._ShortDateOnly = False + Me.txtY5._TimeOnly = False + Me.txtY5._TimeOnly_Seconds = False + Me.txtY5._value = "" + Me.txtY5._Waehrung = False + Me.txtY5._WaehrungZeichen = True + Me.txtY5.ForeColor = System.Drawing.Color.Black + Me.txtY5.Location = New System.Drawing.Point(261, 349) + Me.txtY5.MaxLength = 4 + Me.txtY5.MaxLineLength = -1 + Me.txtY5.MaxLines_Warning = "" + Me.txtY5.MaxLines_Warning_Label = Nothing + Me.txtY5.Name = "txtY5" + Me.txtY5.Size = New System.Drawing.Size(35, 20) + Me.txtY5.TabIndex = 404 + ' + 'txtY4 + ' + Me.txtY4._DateTimeOnly = False + Me.txtY4._numbersOnly = False + Me.txtY4._numbersOnlyKommastellen = "" + Me.txtY4._numbersOnlyTrennzeichen = True + Me.txtY4._Prozent = False + Me.txtY4._ShortDateNew = False + Me.txtY4._ShortDateOnly = False + Me.txtY4._TimeOnly = False + Me.txtY4._TimeOnly_Seconds = False + Me.txtY4._value = "" + Me.txtY4._Waehrung = False + Me.txtY4._WaehrungZeichen = True + Me.txtY4.ForeColor = System.Drawing.Color.Black + Me.txtY4.Location = New System.Drawing.Point(220, 349) + Me.txtY4.MaxLength = 4 + Me.txtY4.MaxLineLength = -1 + Me.txtY4.MaxLines_Warning = "" + Me.txtY4.MaxLines_Warning_Label = Nothing + Me.txtY4.Name = "txtY4" + Me.txtY4.Size = New System.Drawing.Size(35, 20) + Me.txtY4.TabIndex = 403 + ' + 'txtY9 + ' + Me.txtY9._DateTimeOnly = False + Me.txtY9._numbersOnly = False + Me.txtY9._numbersOnlyKommastellen = "" + Me.txtY9._numbersOnlyTrennzeichen = True + Me.txtY9._Prozent = False + Me.txtY9._ShortDateNew = False + Me.txtY9._ShortDateOnly = False + Me.txtY9._TimeOnly = False + Me.txtY9._TimeOnly_Seconds = False + Me.txtY9._value = "" + Me.txtY9._Waehrung = False + Me.txtY9._WaehrungZeichen = True + Me.txtY9.ForeColor = System.Drawing.Color.Black + Me.txtY9.Location = New System.Drawing.Point(425, 349) + Me.txtY9.MaxLength = 4 + Me.txtY9.MaxLineLength = -1 + Me.txtY9.MaxLines_Warning = "" + Me.txtY9.MaxLines_Warning_Label = Nothing + Me.txtY9.Name = "txtY9" + Me.txtY9.Size = New System.Drawing.Size(35, 20) + Me.txtY9.TabIndex = 408 + ' + 'txtY8 + ' + Me.txtY8._DateTimeOnly = False + Me.txtY8._numbersOnly = False + Me.txtY8._numbersOnlyKommastellen = "" + Me.txtY8._numbersOnlyTrennzeichen = True + Me.txtY8._Prozent = False + Me.txtY8._ShortDateNew = False + Me.txtY8._ShortDateOnly = False + Me.txtY8._TimeOnly = False + Me.txtY8._TimeOnly_Seconds = False + Me.txtY8._value = "" + Me.txtY8._Waehrung = False + Me.txtY8._WaehrungZeichen = True + Me.txtY8.ForeColor = System.Drawing.Color.Black + Me.txtY8.Location = New System.Drawing.Point(384, 349) + Me.txtY8.MaxLength = 4 + Me.txtY8.MaxLineLength = -1 + Me.txtY8.MaxLines_Warning = "" + Me.txtY8.MaxLines_Warning_Label = Nothing + Me.txtY8.Name = "txtY8" + Me.txtY8.Size = New System.Drawing.Size(35, 20) + Me.txtY8.TabIndex = 407 + ' + 'txtY7 + ' + Me.txtY7._DateTimeOnly = False + Me.txtY7._numbersOnly = False + Me.txtY7._numbersOnlyKommastellen = "" + Me.txtY7._numbersOnlyTrennzeichen = True + Me.txtY7._Prozent = False + Me.txtY7._ShortDateNew = False + Me.txtY7._ShortDateOnly = False + Me.txtY7._TimeOnly = False + Me.txtY7._TimeOnly_Seconds = False + Me.txtY7._value = "" + Me.txtY7._Waehrung = False + Me.txtY7._WaehrungZeichen = True + Me.txtY7.ForeColor = System.Drawing.Color.Black + Me.txtY7.Location = New System.Drawing.Point(343, 349) + Me.txtY7.MaxLength = 4 + Me.txtY7.MaxLineLength = -1 + Me.txtY7.MaxLines_Warning = "" + Me.txtY7.MaxLines_Warning_Label = Nothing + Me.txtY7.Name = "txtY7" + Me.txtY7.Size = New System.Drawing.Size(35, 20) + Me.txtY7.TabIndex = 406 + ' + 'txtY10 + ' + Me.txtY10._DateTimeOnly = False + Me.txtY10._numbersOnly = False + Me.txtY10._numbersOnlyKommastellen = "" + Me.txtY10._numbersOnlyTrennzeichen = True + Me.txtY10._Prozent = False + Me.txtY10._ShortDateNew = False + Me.txtY10._ShortDateOnly = False + Me.txtY10._TimeOnly = False + Me.txtY10._TimeOnly_Seconds = False + Me.txtY10._value = "" + Me.txtY10._Waehrung = False + Me.txtY10._WaehrungZeichen = True + Me.txtY10.ForeColor = System.Drawing.Color.Black + Me.txtY10.Location = New System.Drawing.Point(466, 349) + Me.txtY10.MaxLength = 4 + Me.txtY10.MaxLineLength = -1 + Me.txtY10.MaxLines_Warning = "" + Me.txtY10.MaxLines_Warning_Label = Nothing + Me.txtY10.Name = "txtY10" + Me.txtY10.Size = New System.Drawing.Size(35, 20) + Me.txtY10.TabIndex = 409 + ' + 'LinkLabel1 + ' + Me.LinkLabel1.AutoSize = True + Me.LinkLabel1.Location = New System.Drawing.Point(446, 201) + Me.LinkLabel1.Name = "LinkLabel1" + Me.LinkLabel1.Size = New System.Drawing.Size(66, 13) + Me.LinkLabel1.TabIndex = 410 + Me.LinkLabel1.TabStop = True + Me.LinkLabel1.Text = "übernehmen" ' 'frmAddArtikelATLAS ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font - Me.ClientSize = New System.Drawing.Size(569, 540) + Me.ClientSize = New System.Drawing.Size(569, 605) Me.Controls.Add(Me.Panel1) Me.Controls.Add(Me.Label5) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow @@ -1048,4 +1369,18 @@ Partial Class frmAddArtikelATLAS Friend WithEvents Label6 As System.Windows.Forms.Label Friend WithEvents txtUrsprungsland As VERAG_PROG_ALLGEMEIN.MyTextBox Friend WithEvents Label20 As Label + Friend WithEvents txtY1 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents Label22 As Label + Friend WithEvents Label21 As Label + Friend WithEvents txtWarencodenummerUPDATE As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY10 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY9 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY8 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY7 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY6 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY5 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY4 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY3 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents txtY2 As VERAG_PROG_ALLGEMEIN.MyTextBox + Friend WithEvents LinkLabel1 As LinkLabel End Class diff --git a/SDL/zoll/frmAddArtikelATLAS.resx b/SDL/zoll/frmAddArtikelATLAS.resx index 37867044..27380853 100644 --- a/SDL/zoll/frmAddArtikelATLAS.resx +++ b/SDL/zoll/frmAddArtikelATLAS.resx @@ -124,7 +124,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij + wQAADsEBuJFr7QAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij UKSbVIvatKhNi9oERRAGEQXhjJdp7Hd83/eGs2jhLGQ20QtndTgP71Gp/m0KZ1XInlTjM6XG+4EG5fuK yaTUIN8bIMUQ0gmtcuBtX/MLPMT0yoHnuA6kuA4iruI20lAZ+DiswWuyFum4Dk+7dbiP6kHEFVDBg+tQ My4DLbjwG3DqbcORxygHXxJakGIQRFwDEf0gwjKI4AYtzIHmHaA5Oxg/CsYPIb7YIQced+qluvTLCyIs @@ -136,7 +136,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAWtJREFUOE+1kE0ow2Ecx/9X5a2UiwtKOSCTmJBMhuQlMo3IvCUHDouEXHZwIOVC + wQAADsEBuJFr7QAAAWtJREFUOE+1kE0ow2Ecx/9X5a2UiwtKOSCTmJBMhuQlMo3IvCUHDouEXHZwIOVC DrhIDiQl5USy07zNa2tKf2laaRf84/J8xBCetab4XL/f76fn+SnKX4DrGLqrwbHDzywkWJlHdJYjLEbY Wg8q4eYKlma+d1hbgF4TotWIaC+FuYmAktcXCksx2HrknBOHX1KbiTDngrXhW0kMdSBM2TA5Io+/wuI0 oiz5TcRwB7hPYazfLx3rDz7+gCsXNBb4v1SdgajTQ19TaOMP2NtFmPSIilSo0v1y7FHBnAdZMWi6aO51 @@ -148,7 +148,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAATFJREFUOE9jYBg0oHDW8/9NC57/z5z4+D+6HAyEtz/AKceQO/PZ/1VH3v/HpSi+ + wQAADsEBuJFr7QAAATFJREFUOE9jYBg0oHDW8/9NC57/z5z4+D+6HAyEtz/AKceQO/PZ/1VH3v/HpSi+ +8H/4IZrWOXAIGPK0/8L933Aqii+5+H/pfv///evvoAhBwcJPU/+T9vyHkNRRPt9sObMWf//e5WewG1A ZNej/72rP6AoCm29B9bcuu7/f//Ov/9d8g/gNiCw+eH/uvnv4IqCW+7+X7T3//+Odf//Z8z5+d+u7ud/ +4ztuA3wqLr/P3/aGxRFdsW3/6fP+f3fv+vbf53Cd/8tEtbjNsC+9O7/7MmvMRTpp5z/b1L04r9K1qf/ @@ -159,7 +159,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAALtJREFUOE9jYBgyILz9wX90MaJBfPeD/8EN18gzIL7n4f+l+///96++QLoBEe33 + wQAADsEBuJFr7QAAALtJREFUOE9jYBgyILz9wX90MaJBfPeD/8EN18gzIL7n4f+l+///96++QLoBEe33 wZozZ/3/71V6gjQDQlvvgTW3rvv/37/z73+X/APEGxDccvf/or3//3es+/8/Y87P/3Z1P//bZ2wn3gAQ sCu+/T99zu///l3f/usUvvtvkbCeNANAQD/l/H+Tohf/VbI+/TeOXEa6ASBgkHTiv2za1/+6wfPIMwAE 9FMv/9fwnUa+ASCg4jGBMgMGLwAA0BRgmCws/7cAAAAASUVORK5CYII= @@ -168,7 +168,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5 + wQAADsEBuJFr7QAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5 8n/2vl//O7f+/e9Wepl0QyK7Hv2fsu3X/5Klf/8nTP/73yb3LGmGBDY//N+69j1Ys3HJl//S0df+G0cu I94Qj6r7/0vmvoNrVnTpIV4zCNiX3v0f2PKMPM0gYJF3579NwRXyNIOAYdZt8jWDgE7aDfI1D00AAKB+ X6Bjq5qXAAAAAElFTkSuQmCC @@ -177,7 +177,7 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - wgAADsIBFShKgAAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe + wQAADsEBuJFr7QAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe /w9vf4BVHgwypjz9P2//7/8JXXcwFIHkFu778D+44RqGHBwk9Dz5P3vfr/+dW//+dyu9jKIQJDdty/v/ /tUXcBsQ2fXo/5Rtv/6XLP37P2H63/82uWfhikFyvas//PcqPYHbgMDmh/9b174HazYu+fJfOvraf+PI ZWANILm6+e/+u+QfwG2AR9X9/yVz38E1K7r0wBWD5PKnvflvn7EdtwH2pXf/B7Y8w9AMk8ue/Pq/RcJ6 diff --git a/SDL/zoll/frmAddArtikelATLAS.vb b/SDL/zoll/frmAddArtikelATLAS.vb index ba1eac75..72fb7ee1 100644 --- a/SDL/zoll/frmAddArtikelATLAS.vb +++ b/SDL/zoll/frmAddArtikelATLAS.vb @@ -1,6 +1,7 @@ Imports System.ComponentModel Imports System.Text Imports System.IO +Imports javax.xml.bind.annotation Public Class frmAddArtikelATLAS ' Public bindingDataAdapter As New SqlDataAdapter @@ -141,6 +142,19 @@ Public Class frmAddArtikelATLAS txtUrsprungsland.DataBindings.Clear() txtUrsprungsland.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_Ursprungsland", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtWarencodenummerUPDATE.DataBindings.Clear() : txtWarencodenummerUPDATE.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_WarencodenummerUPDATE", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY1.DataBindings.Clear() : txtY1.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y1", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY2.DataBindings.Clear() : txtY2.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y2", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY3.DataBindings.Clear() : txtY3.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y3", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY4.DataBindings.Clear() : txtY4.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y4", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY5.DataBindings.Clear() : txtY5.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y5", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY6.DataBindings.Clear() : txtY6.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y6", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY7.DataBindings.Clear() : txtY7.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y7", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY8.DataBindings.Clear() : txtY8.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y8", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY9.DataBindings.Clear() : txtY9.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y9", True, DataSourceUpdateMode.OnPropertyChanged, "")) + txtY10.DataBindings.Clear() : txtY10.DataBindings.Add(New Binding("Text", binding.bindingSource, "zollArt_y10", True, DataSourceUpdateMode.OnPropertyChanged, "")) + + Try binding.bindingSource.Position = binding.bindingSource.Find("zollArt_id", cursorAtID) @@ -168,7 +182,7 @@ Public Class frmAddArtikelATLAS End Sub - + Public Sub bindingdataTable_TableNewRow_Adressen(sender As Object, e As DataTableNewRowEventArgs) @@ -240,6 +254,7 @@ Public Class frmAddArtikelATLAS artikel.Kurzbezeichnung = txtKurztext.Text artikel.Kundennummer = txtKdNr.Text + artikel.Warencodenummerupdate = txtWarencodenummerupdate.Text artikel.Warencodenummer = txtWarencodenummer.Text 'artikel.Löschkennzeichen_Warencodenummer As String = "" artikel.Zusatzcode_1 = txtWarencodeZusatz1.Text @@ -327,7 +342,7 @@ Public Class frmAddArtikelATLAS lblAufschubKtoEUST.Text = k.Aufschubkonto_EUSt lblStrasse.Text = k.Straße lblOrt.Text = k.LandKz & " " & k.PLZ & " " & k.Ort - + Else lblFirma.Text = "" lblEORINr.Text = "" @@ -394,5 +409,10 @@ Public Class frmAddArtikelATLAS End If End Sub - + Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked + If txtWarencodenummerUPDATE.Text.Length <= 11 And Not txtWarencodenummerUPDATE.Text.Contains(",") Then + txtWarencodenummer.Text = txtWarencodenummerUPDATE.Text + txtWarencodenummerUPDATE.Text = "" + End If + End Sub End Class diff --git a/SDL/zoll/usrCntlZollArtikel.Designer.vb b/SDL/zoll/usrCntlZollArtikel.Designer.vb index 6d28c8a0..5f3464a2 100644 --- a/SDL/zoll/usrCntlZollArtikel.Designer.vb +++ b/SDL/zoll/usrCntlZollArtikel.Designer.vb @@ -33,15 +33,17 @@ Partial Class usrCntlZollArtikel Me.BeschreibungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Label1 = New System.Windows.Forms.Label() Me.Panel1 = New System.Windows.Forms.Panel() + Me.Button5 = New System.Windows.Forms.Button() + Me.cntxtExcel = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ExcelEinlesenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ExcelListeÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TabelleInExcelÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.Button4 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button() Me.btnDelAll = New System.Windows.Forms.Button() Me.btnRefresh = New VERAG_PROG_ALLGEMEIN.FlatButton() Me.lblTestsystem = New System.Windows.Forms.Label() Me.btnExcel = New System.Windows.Forms.Button() - Me.cntxtExcel = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.ExcelEinlesenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ExcelListeÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TabelleInExcelÖffnenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.btnEdit = New System.Windows.Forms.Button() Me.btnNew = New System.Windows.Forms.Button() Me.btnDel = New System.Windows.Forms.Button() @@ -57,6 +59,7 @@ Partial Class usrCntlZollArtikel Me.btnTarifnummerKopieren = New System.Windows.Forms.Button() Me.cntxtVermerk = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.Button6 = New System.Windows.Forms.Button() CType(Me.dgvZollArtikel, System.ComponentModel.ISupportInitialize).BeginInit() Me.cntxtRightClick.SuspendLayout() Me.Panel1.SuspendLayout() @@ -71,7 +74,7 @@ Partial Class usrCntlZollArtikel Me.pnlFilter.BackColor = System.Drawing.Color.White Me.pnlFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.pnlFilter.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlFilter.Location = New System.Drawing.Point(0, 55) + Me.pnlFilter.Location = New System.Drawing.Point(0, 79) Me.pnlFilter.Name = "pnlFilter" Me.pnlFilter.Size = New System.Drawing.Size(1278, 28) Me.pnlFilter.TabIndex = 11 @@ -86,11 +89,11 @@ Partial Class usrCntlZollArtikel Me.dgvZollArtikel.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.dgvZollArtikel.ContextMenuStrip = Me.cntxtRightClick Me.dgvZollArtikel.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvZollArtikel.Location = New System.Drawing.Point(0, 83) + Me.dgvZollArtikel.Location = New System.Drawing.Point(0, 107) Me.dgvZollArtikel.MultiSelect = False Me.dgvZollArtikel.Name = "dgvZollArtikel" Me.dgvZollArtikel.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvZollArtikel.Size = New System.Drawing.Size(1278, 461) + Me.dgvZollArtikel.Size = New System.Drawing.Size(1278, 437) Me.dgvZollArtikel.TabIndex = 14 ' 'cntxtRightClick @@ -132,6 +135,9 @@ Partial Class usrCntlZollArtikel 'Panel1 ' Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.Button6) + Me.Panel1.Controls.Add(Me.Button5) + Me.Panel1.Controls.Add(Me.Button4) Me.Panel1.Controls.Add(Me.Button3) Me.Panel1.Controls.Add(Me.btnDelAll) Me.Panel1.Controls.Add(Me.btnRefresh) @@ -144,9 +150,63 @@ Partial Class usrCntlZollArtikel Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top Me.Panel1.Location = New System.Drawing.Point(0, 0) Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(1278, 55) + Me.Panel1.Size = New System.Drawing.Size(1278, 79) Me.Panel1.TabIndex = 13 ' + 'Button5 + ' + Me.Button5.ContextMenuStrip = Me.cntxtExcel + Me.Button5.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) + Me.Button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button5.ForeColor = System.Drawing.Color.Black + Me.Button5.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button5.Location = New System.Drawing.Point(995, 51) + Me.Button5.Name = "Button5" + Me.Button5.Size = New System.Drawing.Size(148, 27) + Me.Button5.TabIndex = 26 + Me.Button5.Text = "Alle eindeutige übernehm." + Me.Button5.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button5.UseVisualStyleBackColor = True + ' + 'cntxtExcel + ' + Me.cntxtExcel.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExcelEinlesenToolStripMenuItem, Me.ExcelListeÖffnenToolStripMenuItem, Me.TabelleInExcelÖffnenToolStripMenuItem}) + Me.cntxtExcel.Name = "cntxtExcel" + Me.cntxtExcel.Size = New System.Drawing.Size(192, 70) + ' + 'ExcelEinlesenToolStripMenuItem + ' + Me.ExcelEinlesenToolStripMenuItem.Name = "ExcelEinlesenToolStripMenuItem" + Me.ExcelEinlesenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) + Me.ExcelEinlesenToolStripMenuItem.Text = "Excel einlesen" + ' + 'ExcelListeÖffnenToolStripMenuItem + ' + Me.ExcelListeÖffnenToolStripMenuItem.Name = "ExcelListeÖffnenToolStripMenuItem" + Me.ExcelListeÖffnenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) + Me.ExcelListeÖffnenToolStripMenuItem.Text = "Excel Liste öffnen" + ' + 'TabelleInExcelÖffnenToolStripMenuItem + ' + Me.TabelleInExcelÖffnenToolStripMenuItem.Name = "TabelleInExcelÖffnenToolStripMenuItem" + Me.TabelleInExcelÖffnenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) + Me.TabelleInExcelÖffnenToolStripMenuItem.Text = "Tabelle in Excel öffnen" + ' + 'Button4 + ' + Me.Button4.Enabled = False + Me.Button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button4.ForeColor = System.Drawing.Color.Black + Me.Button4.Image = Global.SDL.My.Resources.Resources.zauberstab + Me.Button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button4.Location = New System.Drawing.Point(937, 2) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(206, 50) + Me.Button4.TabIndex = 25 + Me.Button4.Text = "8-Steller -> 11 Steller" + Me.Button4.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button4.UseVisualStyleBackColor = True + ' 'Button3 ' Me.Button3.Enabled = False @@ -154,7 +214,7 @@ Partial Class usrCntlZollArtikel Me.Button3.ForeColor = System.Drawing.Color.Black Me.Button3.Image = Global.SDL.My.Resources.Resources.transfer Me.Button3.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.Button3.Location = New System.Drawing.Point(898, 3) + Me.Button3.Location = New System.Drawing.Point(817, 2) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(114, 49) Me.Button3.TabIndex = 21 @@ -169,7 +229,7 @@ Partial Class usrCntlZollArtikel Me.btnDelAll.ForeColor = System.Drawing.Color.Black Me.btnDelAll.Image = Global.SDL.My.Resources.Resources.del Me.btnDelAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnDelAll.Location = New System.Drawing.Point(740, 11) + Me.btnDelAll.Location = New System.Drawing.Point(685, 10) Me.btnDelAll.Name = "btnDelAll" Me.btnDelAll.Size = New System.Drawing.Size(126, 27) Me.btnDelAll.TabIndex = 24 @@ -220,30 +280,6 @@ Partial Class usrCntlZollArtikel Me.btnExcel.TextAlign = System.Drawing.ContentAlignment.MiddleRight Me.btnExcel.UseVisualStyleBackColor = True ' - 'cntxtExcel - ' - Me.cntxtExcel.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExcelEinlesenToolStripMenuItem, Me.ExcelListeÖffnenToolStripMenuItem, Me.TabelleInExcelÖffnenToolStripMenuItem}) - Me.cntxtExcel.Name = "cntxtExcel" - Me.cntxtExcel.Size = New System.Drawing.Size(192, 70) - ' - 'ExcelEinlesenToolStripMenuItem - ' - Me.ExcelEinlesenToolStripMenuItem.Name = "ExcelEinlesenToolStripMenuItem" - Me.ExcelEinlesenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) - Me.ExcelEinlesenToolStripMenuItem.Text = "Excel einlesen" - ' - 'ExcelListeÖffnenToolStripMenuItem - ' - Me.ExcelListeÖffnenToolStripMenuItem.Name = "ExcelListeÖffnenToolStripMenuItem" - Me.ExcelListeÖffnenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) - Me.ExcelListeÖffnenToolStripMenuItem.Text = "Excel Liste öffnen" - ' - 'TabelleInExcelÖffnenToolStripMenuItem - ' - Me.TabelleInExcelÖffnenToolStripMenuItem.Name = "TabelleInExcelÖffnenToolStripMenuItem" - Me.TabelleInExcelÖffnenToolStripMenuItem.Size = New System.Drawing.Size(191, 22) - Me.TabelleInExcelÖffnenToolStripMenuItem.Text = "Tabelle in Excel öffnen" - ' 'btnEdit ' Me.btnEdit.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) @@ -436,6 +472,21 @@ Partial Class usrCntlZollArtikel Me.ToolStripMenuItem1.Size = New System.Drawing.Size(118, 22) Me.ToolStripMenuItem1.Text = "Löschen" ' + 'Button6 + ' + Me.Button6.ContextMenuStrip = Me.cntxtExcel + Me.Button6.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer), CType(CType(64, Byte), Integer)) + Me.Button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.Button6.ForeColor = System.Drawing.Color.Black + Me.Button6.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.Button6.Location = New System.Drawing.Point(937, 51) + Me.Button6.Name = "Button6" + Me.Button6.Size = New System.Drawing.Size(59, 27) + Me.Button6.TabIndex = 27 + Me.Button6.Text = "Use Last" + Me.Button6.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.Button6.UseVisualStyleBackColor = True + ' 'usrCntlZollArtikel ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -495,4 +546,7 @@ Partial Class usrCntlZollArtikel Friend WithEvents TabelleInExcelÖffnenToolStripMenuItem As ToolStripMenuItem Friend WithEvents btnDelAll As Button Friend WithEvents Button3 As Button + Friend WithEvents Button4 As Button + Friend WithEvents Button5 As Button + Friend WithEvents Button6 As Button End Class diff --git a/SDL/zoll/usrCntlZollArtikel.vb b/SDL/zoll/usrCntlZollArtikel.vb index 57156d24..4059bb3d 100644 --- a/SDL/zoll/usrCntlZollArtikel.vb +++ b/SDL/zoll/usrCntlZollArtikel.vb @@ -1,4 +1,6 @@ Imports System.Data.SqlClient +Imports com.sun.xml.internal.txw2.output +Imports GrapeCity.DataVisualization.TypeScript Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN @@ -26,7 +28,7 @@ Public Class usrCntlZollArtikel Private Sub Me_Load(sender As Object, e As EventArgs) Handles Me.Load If VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM Then lblTestsystem.Visible = True - + Button4.Enabled = True If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("ZOLL_Kundenzolltarif", "SDL") Then btnNew.Enabled = True btnEdit.Enabled = True @@ -50,7 +52,7 @@ Public Class usrCntlZollArtikel btnAtlas.Visible = False 'initDGVVermerke() - + FlatButton1.Visible = VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("Kunden_Vermerke_Erfassen", "SDL") @@ -67,7 +69,7 @@ Public Class usrCntlZollArtikel top = " TOP 200 " End If - newBinding("SELECT " & top & " zollArt_id, KundenNr, zollArt_Status, zollArt_Artikelnummer , zollArt_Warencodenummer, zollArt_Kennzeichen_Gueltig, zollArt_Kurzbezeichnung, zollArt_Ursprungsland, Erfassungsdatum, Aenderungsdatum, Sachbearbeiter,zollArt_Warenbeschreibung FROM tblZollArtikel WHERE 1=1 " & where) + newBinding("SELECT " & top & " zollArt_id, KundenNr, zollArt_Status, zollArt_Artikelnummer , zollArt_Warencodenummer, zollArt_WarencodenummerUPDATE,zollArt_Kennzeichen_Gueltig, zollArt_Kurzbezeichnung, zollArt_Ursprungsland, Erfassungsdatum, Aenderungsdatum, Sachbearbeiter,zollArt_Warenbeschreibung FROM tblZollArtikel WHERE 1=1 " & where) End Sub @@ -314,6 +316,10 @@ Public Class usrCntlZollArtikel .Columns("zollArt_Warencodenummer").HeaderText = "Tarifnummer" .Columns("zollArt_Warencodenummer").Width = 150 .Columns("zollArt_Warencodenummer").ReadOnly = True + + .Columns("zollArt_WarencodenummerUPDATE").HeaderText = "Update Tnr" + .Columns("zollArt_WarencodenummerUPDATE").Width = 100 + .Columns("zollArt_WarencodenummerUPDATE").ReadOnly = True ' .Columns("zollArt_Zusatzcode_1").HeaderText = "Zusatz 1" ' .Columns("zollArt_Zusatzcode_2").HeaderText = "Zusatz 2" .Columns("zollArt_Kennzeichen_Gueltig").Visible = False @@ -818,7 +824,7 @@ Public Class usrCntlZollArtikel End Sub - + Private Sub dgvKdVermerke_CellMouseDown(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvKdVermerke.CellMouseDown If e.Button = Windows.Forms.MouseButtons.Right Then dgvKdVermerke.ClearSelection() @@ -899,7 +905,7 @@ Public Class usrCntlZollArtikel .FremdAdressID = kdNrDHF, .FremdKennung = "EXT", .ArtikelCode = If(ZOLL_ARTIKEL.zollArt_Artikelnummer, ""), - .Bezeichnung = If(String.IsNullOrWhiteSpace(ZOLL_ARTIKEL.zollArt_Warenbeschreibung), "", ZOLL_ARTIKEL.zollArt_Warenbeschreibung.Substring(0, Math.Min(255, ZOLL_ARTIKEL.zollArt_Warenbeschreibung.Length))), + .Bezeichnung = If(String.IsNullOrWhiteSpace(ZOLL_ARTIKEL.zollArt_Warenbeschreibung), "", ZOLL_ARTIKEL.zollArt_Warenbeschreibung.Substring(0, Math.min(255, ZOLL_ARTIKEL.zollArt_Warenbeschreibung.Length))), .Eigenmasse = Nothing,' 12.5, .MengenEH = Nothing,'"kg", .GueltigAb = Date.Today, @@ -912,7 +918,7 @@ Public Class usrCntlZollArtikel Dim tarifNr = System.Text.RegularExpressions.Regex.Replace(ZOLL_ARTIKEL.zollArt_Warencodenummer, "[^\d]", "") Dim tarif1 As New DHF_ArtikelTarif With { .GueltigAb = Date.Today, - .TarifNr = If(String.IsNullOrWhiteSpace(tarifNr), "", tarifNr.Substring(0, Math.Min(10, tarifNr.Length))) + .TarifNr = If(String.IsNullOrWhiteSpace(tarifNr), "", tarifNr.substring(0, Math.min(10, tarifNr.Length))) } If ZOLL_ARTIKEL.zollArt_Zusatzcode_1 IsNot Nothing AndAlso ZOLL_ARTIKEL.zollArt_Zusatzcode_1 IsNot DBNull.Value AndAlso ZOLL_ARTIKEL.zollArt_Zusatzcode_1 <> "" Then @@ -956,4 +962,136 @@ Public Class usrCntlZollArtikel End If End Sub + + Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click + Try + + Dim comm As New List(Of String) + + For Each r In dgvZollArtikel.Rows + Dim tnr = r.Cells("zollArt_Warencodenummer").Value + If tnr.ToString.Length >= 8 And tnr.ToString.Length <= 10 Then + comm.Add(tnr.ToString.Trim()) + End If + Next + Dim COMM_TARIFF = VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.GetTariffInfo(comm, "TR") + + + For Each r In dgvZollArtikel.Rows + Dim tnr = r.Cells("zollArt_Warencodenummer").Value + Dim zollArt_id = r.Cells("zollArt_id").Value + + If tnr.ToString.Length >= 8 And tnr.ToString.Length <= 10 Then + + Dim found = False + Dim result = COMM_TARIFF.Find(Function(x) x.code = tnr) + If result IsNot Nothing Then + If result.error <> "" Then + 'Error bei der Abfrage der TNR + ' MsgBox(result.error) + + Else + ''Bei einem Ergebnis -> Treffer + + If result.mappings.Count > 0 Then + Dim ZOLL_ARTIKEL = New cZollArtikel(zollArt_id) + If result.mappings.Count = 1 Then + ' Row.Cells("zollArt_Warencodenummer").Value = result.mappings(0).commodity_code + ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE = result.mappings(0).commodity_code + ZOLL_ARTIKEL.SAVE() + found = True + Else + ' ''Wenn mehrere Optinen -> User Auswahl + Dim multi = String.Join(",", result.mappings.OfType(Of VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.cATEZ_TariffItem_Mapping)() _ + .Where(Function(x) x.commodity_code IsNot Nothing AndAlso x.commodity_code <> "") _ + .Select(Function(x) x.commodity_code)) + found = True + + ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE = multi + ZOLL_ARTIKEL.SAVE() + End If + End If + End If + End If + + 'Nicht gefudnen -> entsprechend zurückgegebn + If Not found Then + Else + + End If + + End If + Next + initSDLBinding() + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + + End Try + End Sub + + Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click + Try + Dim cnt = 0 + For Each r In dgvZollArtikel.Rows + Dim tnrUpd = r.Cells("zollArt_WarencodenummerUPDATE").Value + Dim zollArt_id = r.Cells("zollArt_id").Value + + If tnrUpd.ToString <> "" Then + Dim ZOLL_ARTIKEL = New cZollArtikel(zollArt_id) + + If ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE.ToString.Contains(",") Then + 'Mehrere Einträge + Else + ZOLL_ARTIKEL.zollArt_Warencodenummer = ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE + ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE = "" + ZOLL_ARTIKEL.SAVE() + cnt += 1 + End If + + End If + Next + + MsgBox(cnt & " Einträge wurden geändert!") + initSDLBinding() + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + + End Try + End Sub + + Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click + Dim str = "" + Try + Dim cnt = 0 + For Each r In dgvZollArtikel.Rows + Dim tnrUpd = r.Cells("zollArt_WarencodenummerUPDATE").Value + Dim zollArt_id = r.Cells("zollArt_id").Value + + If tnrUpd.ToString <> "" Then + Dim ZOLL_ARTIKEL = New cZollArtikel(zollArt_id) + + If ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE.ToString.Contains(",") Then + + str = ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE.ToString + Dim maxVal As Long = ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE.ToString.split(","). + Select(Function(x) CLng(x.Trim)).Max() + + ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE = (maxVal) + ZOLL_ARTIKEL.SAVE() + ' ZOLL_ARTIKEL.zollArt_WarencodenummerUPDATE = "" + cnt += 1 + End If + + End If + Next + + MsgBox(cnt & " Einträge wurden geändert!") + initSDLBinding() + Catch ex As Exception + MsgBox(str) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + + End Try + End Sub End Class diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb b/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb index f8f1e3b7..c09a5016 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cZollArtikel.vb @@ -30,6 +30,17 @@ Public Class cZollArtikel Property Sachbearbeiter As Object = Nothing Property zollArt_Status As Object = Nothing + Property zollArt_WarencodenummerUPDATE As Object = Nothing + Property zollArt_Y1 As Object = Nothing + Property zollArt_Y2 As Object = Nothing + Property zollArt_Y3 As Object = Nothing + Property zollArt_Y4 As Object = Nothing + Property zollArt_Y5 As Object = Nothing + Property zollArt_Y6 As Object = Nothing + Property zollArt_Y7 As Object = Nothing + Property zollArt_Y8 As Object = Nothing + Property zollArt_Y9 As Object = Nothing + Property zollArt_Y10 As Object = Nothing Public hasEntry As Boolean = False @@ -73,6 +84,18 @@ Public Class cZollArtikel list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Aenderungsdatum", Aenderungsdatum)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachbearbeiter", Sachbearbeiter)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Status", zollArt_Status)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_WarencodenummerUPDATE", zollArt_WarencodenummerUPDATE)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y1", zollArt_Y1)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y2", zollArt_Y2)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y3", zollArt_Y3)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y4", zollArt_Y4)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y5", zollArt_Y5)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y6", zollArt_Y6)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y7", zollArt_Y7)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y8", zollArt_Y8)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y9", zollArt_Y9)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zollArt_Y10", zollArt_Y10)) + Return list diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/TARIFF/cATEZ_Tariff.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/TARIFF/cATEZ_Tariff.vb index c0d4226b..b5eff583 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/TARIFF/cATEZ_Tariff.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/ATEZ/TARIFF/cATEZ_Tariff.vb @@ -1,4 +1,5 @@ Imports System.Text.RegularExpressions +Imports System.Web Imports System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel Imports Newtonsoft.Json Imports VERAG_PROG_ALLGEMEIN.cATEZ_Tariff @@ -27,6 +28,75 @@ Public Class cATEZ_Tariff Public Property description As String End Class + Public Shared Function GetFullTariff_Only1Result(commodityCode As String, fromCountry As String, Optional toCountry As String = "EU", Optional languageCode As String = "DE") As String + Dim list As New List(Of String) + list.Add(commodityCode) + + Dim COMM_TARIFF = VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.GetTariffInfo(list, fromCountry, toCountry) + + Dim result = COMM_TARIFF.Find(Function(x) x.code = commodityCode) + Dim found = False + + If result IsNot Nothing Then + If result.error <> "" Then + 'Error bei der Abfrage der TNR + ' MsgBox(result.error) + + Else + ''Bei einem Ergebnis -> Treffer + + If result.mappings.Count > 0 Then + If result.mappings.Count = 1 Then + found = True + Return result.mappings(0).commodity_code + Else + + found = True + Return "" ' -> problem + End If + End If + End If + End If + Return "" + End Function + + Public Shared Function GetFullTariff(commodityCode As String, fromCountry As String, Optional toCountry As String = "EU", Optional languageCode As String = "DE") As List(Of String) + Dim Resultlist As New List(Of String) + Dim list As New List(Of String) + list.Add(commodityCode) + + Dim COMM_TARIFF = VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.GetTariffInfo(list, fromCountry, toCountry) + + Dim result = COMM_TARIFF.Find(Function(x) x.code = commodityCode) + Dim found = False + + If result IsNot Nothing Then + If result.error <> "" Then + 'Error bei der Abfrage der TNR + ' MsgBox(result.error) + + Else + ''Bei einem Ergebnis -> Treffer + + If result.mappings.Count > 0 Then + If result.mappings.Count = 1 Then + found = True + Resultlist.Add(result.mappings(0).commodity_code) + Else + For Each item In result.mappings.OfType(Of VERAG_PROG_ALLGEMEIN.cATEZ_Tariff.cATEZ_TariffItem_Mapping)() + If item.commodity_code IsNot Nothing AndAlso item.commodity_code <> "" Then + Resultlist.Add(item.commodity_code) + End If + Next + + found = True + End If + End If + End If + End If + Return Resultlist + End Function + Public Shared Function GetTariffInfo(commodities As List(Of String), fromCountry As String, Optional toCountry As String = "EU", Optional languageCode As String = "DE") As List(Of cATEZ_TariffItem_RootItem) Try VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/WISE/cWiseBankApi.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/WISE/cWiseBankApi.vb new file mode 100644 index 00000000..3c34b396 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/WISE/cWiseBankApi.vb @@ -0,0 +1,46 @@ +Imports System.Net +Imports System.IO +Imports System.Text +Imports Newtonsoft.Json + +Public Class cWiseBankApi + + Private ReadOnly apiToken As String + Private ReadOnly profileId As String + Private ReadOnly balanceId As String + + Public Sub New(token As String, profile As String, balance As String) + apiToken = token + profileId = profile + balanceId = balance + End Sub + + ''' + ''' Ruft die Kontoumsätze der letzten 7 Tage ab. + ''' + Public Function GetLast7DaysStatement() As String + Dim fromDate As String = DateTime.UtcNow.AddDays(-7).ToString("yyyy-MM-dd") + Dim toDate As String = DateTime.UtcNow.ToString("yyyy-MM-dd") + + Dim url As String = + $"https://api.wise.com/v4/profiles/{profileId}/balance-statements/{balanceId}/statement.json?intervalStart={fromDate}&intervalEnd={toDate}" + + Dim request As HttpWebRequest = CType(WebRequest.Create(url), HttpWebRequest) + request.Method = "GET" + request.Headers.Add("Authorization", "Bearer " & apiToken) + + Try + Using response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse) + Using reader As New StreamReader(response.GetResponseStream()) + Return reader.ReadToEnd() + End Using + End Using + Catch ex As WebException + Using sr As New StreamReader(ex.Response.GetResponseStream()) + Dim errorText = sr.ReadToEnd() + Throw New Exception("Wise API Fehler: " & errorText) + End Using + End Try + End Function + +End Class diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index 2b533f16..c4c62cf7 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -750,6 +750,7 @@ True Reference.svcmap + True True @@ -1628,6 +1629,7 @@ + diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_Zollanmeldung/cVERAG_Zollanmeldung.vb b/VERAG_PROG_ALLGEMEIN/VERAG_Zollanmeldung/cVERAG_Zollanmeldung.vb new file mode 100644 index 00000000..50df559d --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/VERAG_Zollanmeldung/cVERAG_Zollanmeldung.vb @@ -0,0 +1,988 @@ +Imports System.Data.SqlClient +Imports System.Reflection + +' ========================================================================== +' MASTER CLASS +' Customs Declaration (Header + Items + Duties + Documents) +' ========================================================================== + +Public Class cVERAG_Zollanmeldung + + '=== KONSTRUKTOR ======================================================= + + Public Sub New() + End Sub + + Public Sub New(id As Integer) + za_Id = id + LOAD() + End Sub + + + '=== FELDER ============================================================ + + Public Property za_Id As Integer + Public Property za_System As String + Public Property za_ExternalSystem As Boolean + Public Property za_Firma As String + Public Property za_Niederlassung As String + + Public Property za_AvisoId As Integer? + Public Property za_SendungsId As Integer? + Public Property za_InternalRef As String + + Public Property za_MRN As String + Public Property za_LRN As String + Public Property za_DeclarationNo As String + + Public Property za_Procedure As String + Public Property za_RepresentationCode As String + Public Property za_FiscalRepresentation As Boolean? + + Public Property za_CountryDispatch As String + Public Property za_CountryDestination As String + Public Property za_CountryOrigin As String + + Public Property za_TotalItems As Integer? + Public Property za_TotalGross As Decimal? + Public Property za_TotalInvoice As Decimal? + Public Property za_TotalCustomsValue As Decimal? + + Public Property za_TransportMode_Border As Integer? + Public Property za_VehicleId As String + Public Property za_Incoterm As String + Public Property za_IncotermPlace As String + + Public Property za_DocumentsPresent As Boolean + + Public Property za_ReleaseDate As Date? + Public Property za_DeclarationDate As Date? + Public Property za_Created As Date = Now + Public Property za_Modified As Date = Now + + + '=== UNTERKLASSEN ====================================================== + + Public Property Items As New List(Of cVERAG_Zollanmeldung_Item) + Public Property Duties As New List(Of cVERAG_Zollanmeldung_Duty) + Public Property Documents As New List(Of cVERAG_Zollanmeldung_Document) + Public Property ItemDocuments As New List(Of cVERAG_Zollanmeldung_ItemDocument) + + + Private SQL As New VERAG_PROG_ALLGEMEIN.SQL + + + + + '======================================================================== + ' PARAMETERLISTE (Header) + '======================================================================== + + Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + Dim L As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Id", za_Id,, True, True)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_System", za_System)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_ExternalSystem", za_ExternalSystem)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Firma", za_Firma)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Niederlassung", za_Niederlassung)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_AvisoId", za_AvisoId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_SendungsId", za_SendungsId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_InternalRef", za_InternalRef)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_MRN", za_MRN)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_LRN", za_LRN)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_DeclarationNo", za_DeclarationNo)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Procedure", za_Procedure)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_RepresentationCode", za_RepresentationCode)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_FiscalRepresentation", za_FiscalRepresentation)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_CountryDispatch", za_CountryDispatch)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_CountryDestination", za_CountryDestination)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_CountryOrigin", za_CountryOrigin)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_TotalItems", za_TotalItems)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_TotalGross", za_TotalGross)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_TotalInvoice", za_TotalInvoice)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_TotalCustomsValue", za_TotalCustomsValue)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_TransportMode_Border", za_TransportMode_Border)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_VehicleId", za_VehicleId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Incoterm", za_Incoterm)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_IncotermPlace", za_IncotermPlace)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_DocumentsPresent", za_DocumentsPresent)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_ReleaseDate", za_ReleaseDate)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_DeclarationDate", za_DeclarationDate)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Created", za_Created)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("za_Modified", za_Modified)) + + Return L + + End Function + + + + + '======================================================================== + ' SAVE (HEADER) + '======================================================================== + + Public Function SAVE() As Boolean + + Dim list = getParameterList() + + Dim sqlstr As String = + " BEGIN TRAN " & + " IF EXISTS(SELECT 1 FROM tblVERAG_CustomsDeclarations WHERE za_Id=@za_Id) " & + " BEGIN " & getUpdateCmd() & " END " & + " ELSE BEGIN " & getInsertCmd() & " END " & + " COMMIT TRAN " + + za_Id = SQL.doSQLVarListID(za_Id, sqlstr, "VERAG", , list) + Return za_Id > 0 + + End Function + + + + + '======================================================================== + ' SAVE_ALL (Header + Items + Duties + Docs) + '======================================================================== + + Public Function SAVE_ALL() As Boolean + + If Not SAVE() Then Return False + If Not SAVE_Items() Then Return False + If Not SAVE_Duties() Then Return False + If Not SAVE_Documents() Then Return False + If Not SAVE_ItemDocuments() Then Return False + + Return True + + End Function + + + + + '======================================================================== + ' LOAD HEADER + '======================================================================== + + Public Function LOAD(Optional loadALL As Boolean = True) As Boolean + + If loadALL Then + Items.Clear() + Duties.Clear() + Documents.Clear() + ItemDocuments.Clear() + End If + + Using conn = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblVERAG_CustomsDeclarations WHERE za_Id=@id", conn) + cmd.Parameters.AddWithValue("@id", za_Id) + Using dr = cmd.ExecuteReader() + If dr.Read Then + + For Each p In getParameterList() + Dim prop = Me.GetType().GetProperty(p.Scalarvariable) + If prop IsNot Nothing Then + If IsDBNull(dr(p.Text)) Then + prop.SetValue(Me, Nothing) + Else + prop.SetValue(Me, dr(p.Text)) + End If + End If + Next + + dr.Close() + + If loadALL Then + LOAD_Items() + LOAD_Duties() + LOAD_Documents() + LOAD_ItemDocuments() + End If + + Return True + + End If + End Using + End Using + End Using + + Return False + + End Function + + + + + + '======================================================================== + ' SAVE ITEMS + '======================================================================== + + Private Function SAVE_Items() As Boolean + For Each it In Items + it.zaItem_DeclarationId = za_Id + If Not it.SAVE() Then Return False + Next + Return True + End Function + + + + '======================================================================== + ' SAVE DUTIES + '======================================================================== + + Private Function SAVE_Duties() As Boolean + For Each du In Duties + du.zaDuty_DeclarationId = za_Id + If Not du.SAVE() Then Return False + Next + Return True + End Function + + + + '======================================================================== + ' SAVE DOCS HEADER + '======================================================================== + + Private Function SAVE_Documents() As Boolean + For Each d In Documents + d.zaDoc_DeclarationId = za_Id + If Not d.SAVE() Then Return False + Next + Return True + End Function + + + + '======================================================================== + ' SAVE DOCS ITEM + '======================================================================== + + Private Function SAVE_ItemDocuments() As Boolean + For Each d In ItemDocuments + If Not d.SAVE() Then Return False + Next + Return True + End Function + + + + + + '======================================================================== + ' LOAD UNTERKLASSEN + '======================================================================== + + Private Sub LOAD_Items() + + Using conn = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblVERAG_CustomsDeclarations_Items WHERE zaItem_DeclarationId=@id ORDER BY zaItem_Line", conn) + cmd.Parameters.AddWithValue("@id", za_Id) + Using dr = cmd.ExecuteReader() + While dr.Read + Dim it As New cVERAG_Zollanmeldung_Item + it.LOAD_FROM_READER(dr) + Items.Add(it) + End While + End Using + End Using + End Using + + End Sub + + + + Private Sub LOAD_Duties() + + Using conn = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblVERAG_CustomsDeclarations_Duties WHERE zaDuty_DeclarationId=@id", conn) + cmd.Parameters.AddWithValue("@id", za_Id) + Using dr = cmd.ExecuteReader() + While dr.Read + Dim du As New cVERAG_Zollanmeldung_Duty + du.LOAD_FROM_READER(dr) + Duties.Add(du) + End While + End Using + End Using + End Using + + End Sub + + + + Private Sub LOAD_Documents() + + Using conn = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblVERAG_CustomsDeclarations_Documents WHERE zaDoc_DeclarationId=@id AND zaDoc_Level='H'", conn) + cmd.Parameters.AddWithValue("@id", za_Id) + Using dr = cmd.ExecuteReader() + While dr.Read + Dim d As New cVERAG_Zollanmeldung_Document + d.LOAD_FROM_READER(dr) + Documents.Add(d) + End While + End Using + End Using + End Using + + End Sub + + + + + Private Sub LOAD_ItemDocuments() + + Using conn = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM tblVERAG_CustomsDeclarations_Documents WHERE zaDoc_Level='I' AND zaDoc_DeclarationId=@id", conn) + cmd.Parameters.AddWithValue("@id", za_Id) + Using dr = cmd.ExecuteReader() + While dr.Read + Dim d As New cVERAG_Zollanmeldung_ItemDocument + d.LOAD_FROM_READER(dr) + ItemDocuments.Add(d) + End While + End Using + End Using + End Using + + End Sub + + + + + + '======================================================================== + ' SQL HELPERS + '======================================================================== + + Private Function getUpdateCmd() As String + + Dim cols As New Text.StringBuilder() + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + cols.Append("[" & p.Text & "]=@" & p.Scalarvariable & ",") + End If + Next + + Dim setClause = cols.ToString().TrimEnd(","c) + + Return "UPDATE tblVERAG_CustomsDeclarations SET " & setClause & " WHERE za_Id=@za_Id" + + End Function + + + + Private Function getInsertCmd() As String + + Dim C As New List(Of String) + Dim V As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + C.Add("[" & p.Text & "]") + V.Add("@" & p.Scalarvariable) + End If + Next + + Return "INSERT INTO tblVERAG_CustomsDeclarations (" & + String.Join(",", C) & + ") VALUES (" & + String.Join(",", V) & + ");" + + End Function + + + +End Class + + + + + + + + + +' ========================================================================== +' ITEM +' ========================================================================== + +Public Class cVERAG_Zollanmeldung_Item + + Public Property zaItem_Id As Integer + Public Property zaItem_DeclarationId As Integer + + Public Property zaItem_Line As Integer + Public Property zaItem_ArticleCode As String + Public Property zaItem_HSCode As String + Public Property zaItem_Description As String + + Public Property zaItem_Qty As Decimal? + Public Property zaItem_Unit As String + Public Property zaItem_Gross As Decimal? + Public Property zaItem_Net As Decimal? + + Public Property zaItem_InvoiceValue As Decimal? + Public Property zaItem_CustomsValue As Decimal? + Public Property zaItem_StatisticalValue As Decimal? + Public Property zaItem_Currency As String + + Public Property zaItem_OriginCountry As String + Public Property zaItem_PreferenceCode As String + + Private SQL As New VERAG_PROG_ALLGEMEIN.SQL + + + + '--- PARAMLIST ---------------------------------------------------------- + + Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + Dim L As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Id", zaItem_Id,, True, True)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_DeclarationId", zaItem_DeclarationId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Line", zaItem_Line)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_ArticleCode", zaItem_ArticleCode)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_HSCode", zaItem_HSCode)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Description", zaItem_Description)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Qty", zaItem_Qty)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Unit", zaItem_Unit)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Gross", zaItem_Gross)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Net", zaItem_Net)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_InvoiceValue", zaItem_InvoiceValue)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_CustomsValue", zaItem_CustomsValue)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_StatisticalValue", zaItem_StatisticalValue)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_Currency", zaItem_Currency)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_OriginCountry", zaItem_OriginCountry)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaItem_PreferenceCode", zaItem_PreferenceCode)) + + Return L + + End Function + + + + '--- SAVE --------------------------------------------------------------- + + Public Function SAVE() As Boolean + + Dim list = getParameterList() + + Dim sqlstr As String = + " BEGIN TRAN " & + " IF EXISTS(SELECT 1 FROM tblVERAG_CustomsDeclarations_Items WHERE zaItem_Id=@zaItem_Id) " & + " BEGIN " & getUpdateCmd() & " END " & + " ELSE BEGIN " & getInsertCmd() & " END " & + " COMMIT TRAN " + + zaItem_Id = SQL.doSQLVarListID(zaItem_Id, sqlstr, "VERAG", , list) + Return zaItem_Id > 0 + + End Function + + + + '--- LOAD FROM DATAREADER ---------------------------------------------- + + Public Sub LOAD_FROM_READER(dr As SqlDataReader) + + For Each p In getParameterList() + Dim prop = Me.GetType().GetProperty(p.Scalarvariable) + If prop IsNot Nothing Then + If IsDBNull(dr(p.Text)) Then + prop.SetValue(Me, Nothing) + Else + prop.SetValue(Me, dr(p.Text)) + End If + End If + Next + + End Sub + + + + + '--- SQL HELPERS -------------------------------------------------------- + + Private Function getUpdateCmd() As String + + Dim cols As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + cols.Add("[" & p.Text & "]=@" & p.Scalarvariable) + End If + Next + + Return "UPDATE tblVERAG_CustomsDeclarations_Items SET " & + String.Join(",", cols) & + " WHERE zaItem_Id=@zaItem_Id" + + End Function + + + + Private Function getInsertCmd() As String + + Dim C As New List(Of String) + Dim V As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + C.Add("[" & p.Text & "]") + V.Add("@" & p.Scalarvariable) + End If + Next + + Return "INSERT INTO tblVERAG_CustomsDeclarations_Items (" & + String.Join(",", C) & + ") VALUES (" & + String.Join(",", V) & + ")" + + End Function + + + +End Class + + + + + + + +' ========================================================================== +' DUTY +' ========================================================================== + +Public Class cVERAG_Zollanmeldung_Duty + + Public Property zaDuty_Id As Integer + Public Property zaDuty_DeclarationId As Integer + Public Property zaDuty_ItemId As Integer? + + Public Property zaDuty_Type As String + Public Property zaDuty_BaseAmountForeign As Decimal? + Public Property zaDuty_BaseCurrency As String + Public Property zaDuty_BaseAmountEUR As Decimal? + + Public Property zaDuty_Rate As String + Public Property zaDuty_AmountForeign As Decimal? + Public Property zaDuty_AmountCurrency As String + Public Property zaDuty_AmountEUR As Decimal? + + Public Property zaDuty_DeferredFlag As Boolean? + Public Property zaDuty_DeferredAccount As String + + Public Property zaDuty_MeasureId As String + Public Property zaDuty_Indicator As String + Public Property zaDuty_Remarks As String + + Private SQL As New VERAG_PROG_ALLGEMEIN.SQL + + + + '--- PARAMLIST ---------------------------------------------------------- + + Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + Dim L As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_Id", zaDuty_Id,, True, True)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_DeclarationId", zaDuty_DeclarationId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_ItemId", zaDuty_ItemId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_Type", zaDuty_Type)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_BaseAmountForeign", zaDuty_BaseAmountForeign)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_BaseCurrency", zaDuty_BaseCurrency)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_BaseAmountEUR", zaDuty_BaseAmountEUR)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_Rate", zaDuty_Rate)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_AmountForeign", zaDuty_AmountForeign)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_AmountCurrency", zaDuty_AmountCurrency)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_AmountEUR", zaDuty_AmountEUR)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_DeferredFlag", zaDuty_DeferredFlag)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_DeferredAccount", zaDuty_DeferredAccount)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_MeasureId", zaDuty_MeasureId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_Indicator", zaDuty_Indicator)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDuty_Remarks", zaDuty_Remarks)) + + Return L + + End Function + + + + '--- SAVE --------------------------------------------------------------- + + Public Function SAVE() As Boolean + + Dim list = getParameterList() + + Dim sqlstr As String = + " BEGIN TRAN " & + " IF EXISTS(SELECT 1 FROM tblVERAG_CustomsDeclarations_Duties WHERE zaDuty_Id=@zaDuty_Id) " & + " BEGIN " & getUpdateCmd() & " END " & + " ELSE BEGIN " & getInsertCmd() & " END " & + " COMMIT TRAN " + + zaDuty_Id = SQL.doSQLVarListID(zaDuty_Id, sqlstr, "VERAG", , list) + Return zaDuty_Id > 0 + + End Function + + + + '--- LOAD FROM DATAREADER ---------------------------------------------- + + Public Sub LOAD_FROM_READER(dr As SqlDataReader) + + For Each p In getParameterList() + Dim prop = Me.GetType().GetProperty(p.Scalarvariable) + If prop IsNot Nothing Then + If IsDBNull(dr(p.Text)) Then + prop.SetValue(Me, Nothing) + Else + prop.SetValue(Me, dr(p.Text)) + End If + End If + Next + + End Sub + + + + + '--- SQL HELPERS -------------------------------------------------------- + + Private Function getUpdateCmd() As String + + Dim cols As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + cols.Add("[" & p.Text & "]=@" & p.Scalarvariable) + End If + Next + + Return "UPDATE tblVERAG_CustomsDeclarations_Duties SET " & + String.Join(",", cols) & + " WHERE zaDuty_Id=@zaDuty_Id" + + End Function + + + + Private Function getInsertCmd() As String + + Dim C As New List(Of String) + Dim V As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + C.Add("[" & p.Text & "]") + V.Add("@" & p.Scalarvariable) + End If + Next + + Return "INSERT INTO tblVERAG_CustomsDeclarations_Duties (" & + String.Join(",", C) & + ") VALUES (" & + String.Join(",", V) & + ")" + + End Function + + + +End Class + + + + + + + +' ========================================================================== +' DOCUMENT (HEADER) +' ========================================================================== + +Public Class cVERAG_Zollanmeldung_Document + + Public Property zaDoc_Id As Integer + Public Property zaDoc_DeclarationId As Integer + + Public Property zaDoc_Level As String = "H" + + Public Property zaDoc_Code As String + Public Property zaDoc_Type As String + Public Property zaDoc_Reference As String + Public Property zaDoc_IssueDate As Date? + Public Property zaDoc_IssueCountry As String + Public Property zaDoc_IssueTIN As String + Public Property zaDoc_UID As String + Public Property zaDoc_ValidTo As Date? + Public Property zaDoc_Remarks As String + + Private SQL As New VERAG_PROG_ALLGEMEIN.SQL + + + + + '--- PARAMLIST ---------------------------------------------------------- + + Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + Dim L As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Id", zaDoc_Id,, True, True)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_DeclarationId", zaDoc_DeclarationId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Level", zaDoc_Level)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Code", zaDoc_Code)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Type", zaDoc_Type)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Reference", zaDoc_Reference)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_IssueDate", zaDoc_IssueDate)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_IssueCountry", zaDoc_IssueCountry)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_IssueTIN", zaDoc_IssueTIN)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_UID", zaDoc_UID)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_ValidTo", zaDoc_ValidTo)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Remarks", zaDoc_Remarks)) + + Return L + + End Function + + + + '--- SAVE --------------------------------------------------------------- + + Public Function SAVE() As Boolean + + Dim list = getParameterList() + + Dim sqlstr As String = + " BEGIN TRAN " & + " IF EXISTS(SELECT 1 FROM tblVERAG_CustomsDeclarations_Documents WHERE zaDoc_Id=@zaDoc_Id) " & + " BEGIN " & getUpdateCmd() & " END " & + " ELSE BEGIN " & getInsertCmd() & " END " & + " COMMIT TRAN " + + zaDoc_Id = SQL.doSQLVarListID(zaDoc_Id, sqlstr, "VERAG", , list) + Return zaDoc_Id > 0 + + End Function + + + + '--- LOAD FROM DATAREADER ---------------------------------------------- + + Public Sub LOAD_FROM_READER(dr As SqlDataReader) + + For Each p In getParameterList() + Dim prop = Me.GetType().GetProperty(p.Scalarvariable) + If prop IsNot Nothing Then + If IsDBNull(dr(p.Text)) Then + prop.SetValue(Me, Nothing) + Else + prop.SetValue(Me, dr(p.Text)) + End If + End If + Next + + End Sub + + + + + '--- SQL HELPERS -------------------------------------------------------- + + Private Function getUpdateCmd() As String + + Dim cols As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + cols.Add("[" & p.Text & "]=@" & p.Scalarvariable) + End If + Next + + Return "UPDATE tblVERAG_CustomsDeclarations_Documents SET " & + String.Join(",", cols) & + " WHERE zaDoc_Id=@zaDoc_Id" + + End Function + + + + Private Function getInsertCmd() As String + + Dim C As New List(Of String) + Dim V As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + C.Add("[" & p.Text & "]") + V.Add("@" & p.Scalarvariable) + End If + Next + + Return "INSERT INTO tblVERAG_CustomsDeclarations_Documents (" & + String.Join(",", C) & + ") VALUES (" & + String.Join(",", V) & + ")" + + End Function + + + +End Class + + + + + + + +' ========================================================================== +' DOCUMENT (ITEM) +' ========================================================================== + +Public Class cVERAG_Zollanmeldung_ItemDocument + + Public Property zaDoc_Id As Integer + Public Property zaDoc_DeclarationId As Integer? + Public Property zaDoc_ItemId As Integer? + + Public Property zaDoc_Level As String = "I" + + Public Property zaDoc_Code As String + Public Property zaDoc_Type As String + Public Property zaDoc_Reference As String + Public Property zaDoc_IssueDate As Date? + Public Property zaDoc_IssueCountry As String + Public Property zaDoc_IssueTIN As String + Public Property zaDoc_UID As String + Public Property zaDoc_ValidTo As Date? + Public Property zaDoc_Remarks As String + + Private SQL As New VERAG_PROG_ALLGEMEIN.SQL + + + + + '--- PARAMLIST ---------------------------------------------------------- + + Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + Dim L As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Id", zaDoc_Id,, True, True)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_DeclarationId", zaDoc_DeclarationId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_ItemId", zaDoc_ItemId)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Level", zaDoc_Level)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Code", zaDoc_Code)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Type", zaDoc_Type)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Reference", zaDoc_Reference)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_IssueDate", zaDoc_IssueDate)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_IssueCountry", zaDoc_IssueCountry)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_IssueTIN", zaDoc_IssueTIN)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_UID", zaDoc_UID)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_ValidTo", zaDoc_ValidTo)) + L.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("zaDoc_Remarks", zaDoc_Remarks)) + + Return L + + End Function + + + + '--- SAVE --------------------------------------------------------------- + + Public Function SAVE() As Boolean + + Dim list = getParameterList() + + Dim sqlstr As String = + " BEGIN TRAN " & + " IF EXISTS(SELECT 1 FROM tblVERAG_CustomsDeclarations_Documents WHERE zaDoc_Id=@zaDoc_Id) " & + " BEGIN " & getUpdateCmd() & " END " & + " ELSE BEGIN " & getInsertCmd() & " END " & + " COMMIT TRAN " + + zaDoc_Id = SQL.doSQLVarListID(zaDoc_Id, sqlstr, "VERAG", , list) + Return zaDoc_Id > 0 + + End Function + + + + '--- LOAD FROM DATAREADER ---------------------------------------------- + + Public Sub LOAD_FROM_READER(dr As SqlDataReader) + + For Each p In getParameterList() + Dim prop = Me.GetType().GetProperty(p.Scalarvariable) + If prop IsNot Nothing Then + If IsDBNull(dr(p.Text)) Then + prop.SetValue(Me, Nothing) + Else + prop.SetValue(Me, dr(p.Text)) + End If + End If + Next + + End Sub + + + + + '--- SQL HELPERS -------------------------------------------------------- + + Private Function getUpdateCmd() As String + + Dim cols As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + cols.Add("[" & p.Text & "]=@" & p.Scalarvariable) + End If + Next + + Return "UPDATE tblVERAG_CustomsDeclarations_Documents SET " & + String.Join(",", cols) & + " WHERE zaDoc_Id=@zaDoc_Id" + + End Function + + + + Private Function getInsertCmd() As String + + Dim C As New List(Of String) + Dim V As New List(Of String) + + For Each p In getParameterList() + If Not p.isPrimaryParam Then + C.Add("[" & p.Text & "]") + V.Add("@" & p.Scalarvariable) + End If + Next + + Return "INSERT INTO tblVERAG_CustomsDeclarations_Documents (" & + String.Join(",", C) & + ") VALUES (" & + String.Join(",", V) & + ")" + + End Function + + +End Class \ No newline at end of file