diff --git a/.gitignore b/.gitignore
index 1bc915c..dd5adc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -154,3 +154,4 @@ $RECYCLE.BIN/
# Mac desktop service store files
.DS_Store
+/app/.vs/DD_PM_WINDREAM/v15/Server/sqlite3
diff --git a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj
index 967b5b2..1c64134 100644
--- a/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj
+++ b/app/DD_PM_WINDREAM/DD_PM_WINDREAM.vbproj
@@ -109,6 +109,9 @@
P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Oracle.ManagedDataAccess.dll
+
+ P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\PdfSharp-gdi.dll
+
@@ -166,6 +169,12 @@
Form
+
+ frmAnnotations.vb
+
+
+ Form
+
frmConnection.vb
@@ -275,6 +284,9 @@
frmAdminPasswort.vb
+
+ frmAnnotations.vb
+
frmConnection.vb
Designer
diff --git a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb
index 750e87c..2a8fef6 100644
--- a/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb
+++ b/app/DD_PM_WINDREAM/ModuleRuntimeVariables.vb
@@ -5,6 +5,7 @@
Public CURRENT_ProfilName As String
Public CURRENT_HTML_DOC As String
Public CURRENT_DOC_ID As Integer
+ Public CURRENT_DOC_PATH As String
Public ERROR_STATE = ""
Public USER_IS_ADMIN As Boolean = False
Public CURRENT_USERID
diff --git a/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb b/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb
index d906ef4..4d2a526 100644
--- a/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb
+++ b/app/DD_PM_WINDREAM/My Project/AssemblyInfo.vb
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
'
-
+
diff --git a/app/DD_PM_WINDREAM/frmAnnotations.Designer.vb b/app/DD_PM_WINDREAM/frmAnnotations.Designer.vb
new file mode 100644
index 0000000..d6f1dff
--- /dev/null
+++ b/app/DD_PM_WINDREAM/frmAnnotations.Designer.vb
@@ -0,0 +1,137 @@
+ _
+Partial Class frmAnnotations
+ 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(frmAnnotations))
+ Me.Button1 = New System.Windows.Forms.Button()
+ Me.Label1 = New System.Windows.Forms.Label()
+ Me.Label3 = New System.Windows.Forms.Label()
+ Me.Seitenzahl = New System.Windows.Forms.Label()
+ Me.txttitle = New System.Windows.Forms.TextBox()
+ Me.txtcontent = New System.Windows.Forms.TextBox()
+ Me.txtSeitenzahl = New System.Windows.Forms.TextBox()
+ Me.SuspendLayout()
+ '
+ 'Button1
+ '
+ Me.Button1.Cursor = System.Windows.Forms.Cursors.Default
+ Me.Button1.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.add
+ Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
+ Me.Button1.Location = New System.Drawing.Point(447, 171)
+ Me.Button1.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.Button1.Name = "Button1"
+ Me.Button1.Size = New System.Drawing.Size(173, 37)
+ Me.Button1.TabIndex = 0
+ Me.Button1.Text = "Annotation hinzufügen"
+ Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
+ Me.Button1.UseVisualStyleBackColor = True
+ '
+ 'Label1
+ '
+ Me.Label1.AutoSize = True
+ Me.Label1.Location = New System.Drawing.Point(12, 28)
+ Me.Label1.Name = "Label1"
+ Me.Label1.Size = New System.Drawing.Size(38, 16)
+ Me.Label1.TabIndex = 1
+ Me.Label1.Text = "Titel:"
+ '
+ 'Label3
+ '
+ Me.Label3.AutoSize = True
+ Me.Label3.Location = New System.Drawing.Point(12, 56)
+ Me.Label3.Name = "Label3"
+ Me.Label3.Size = New System.Drawing.Size(38, 16)
+ Me.Label3.TabIndex = 3
+ Me.Label3.Text = "Text:"
+ '
+ 'Seitenzahl
+ '
+ Me.Seitenzahl.AutoSize = True
+ Me.Seitenzahl.Location = New System.Drawing.Point(12, 185)
+ Me.Seitenzahl.Name = "Seitenzahl"
+ Me.Seitenzahl.Size = New System.Drawing.Size(67, 16)
+ Me.Seitenzahl.TabIndex = 4
+ Me.Seitenzahl.Text = "Seitenzahl"
+ '
+ 'txttitle
+ '
+ Me.txttitle.Location = New System.Drawing.Point(97, 25)
+ Me.txttitle.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.txttitle.Name = "txttitle"
+ Me.txttitle.Size = New System.Drawing.Size(344, 23)
+ Me.txttitle.TabIndex = 5
+ '
+ 'txtcontent
+ '
+ Me.txtcontent.AcceptsReturn = True
+ Me.txtcontent.AcceptsTab = True
+ Me.txtcontent.Location = New System.Drawing.Point(97, 56)
+ Me.txtcontent.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.txtcontent.Multiline = True
+ Me.txtcontent.Name = "txtcontent"
+ Me.txtcontent.Size = New System.Drawing.Size(344, 119)
+ Me.txtcontent.TabIndex = 7
+ '
+ 'txtSeitenzahl
+ '
+ Me.txtSeitenzahl.Location = New System.Drawing.Point(404, 185)
+ Me.txtSeitenzahl.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.txtSeitenzahl.Name = "txtSeitenzahl"
+ Me.txtSeitenzahl.Size = New System.Drawing.Size(37, 23)
+ Me.txtSeitenzahl.TabIndex = 8
+ Me.txtSeitenzahl.Text = "0"
+ '
+ 'frmAnnotations
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 16.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(629, 219)
+ Me.Controls.Add(Me.txtSeitenzahl)
+ Me.Controls.Add(Me.txtcontent)
+ Me.Controls.Add(Me.txttitle)
+ Me.Controls.Add(Me.Seitenzahl)
+ Me.Controls.Add(Me.Label3)
+ Me.Controls.Add(Me.Label1)
+ Me.Controls.Add(Me.Button1)
+ Me.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
+ Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.MaximizeBox = False
+ Me.MinimizeBox = False
+ Me.Name = "frmAnnotations"
+ Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
+ Me.Text = "Annotationen"
+ Me.TopMost = True
+ Me.ResumeLayout(False)
+ Me.PerformLayout()
+
+ End Sub
+
+ Friend WithEvents Button1 As Button
+ Friend WithEvents Label1 As Label
+ Friend WithEvents Label3 As Label
+ Friend WithEvents Seitenzahl As Label
+ Friend WithEvents txttitle As TextBox
+ Friend WithEvents txtcontent As TextBox
+ Friend WithEvents txtSeitenzahl As TextBox
+End Class
diff --git a/app/DD_PM_WINDREAM/frmAnnotations.resx b/app/DD_PM_WINDREAM/frmAnnotations.resx
new file mode 100644
index 0000000..28abbb0
--- /dev/null
+++ b/app/DD_PM_WINDREAM/frmAnnotations.resx
@@ -0,0 +1,1270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+ AAABAA0AMDAQAAEABABoBgAA1gAAACAgEAABAAQA6AIAAD4HAAAYGBAAAQAEAOgBAAAmCgAAEBAQAAEA
+ BAAoAQAADgwAADAwAAABAAgAqA4AADYNAAAgIAAAAQAIAKgIAADeGwAAGBgAAAEACADIBgAAhiQAABAQ
+ AAABAAgAaAUAAE4rAAAAAAAAAQAgADmXAAC2MAAAMDAAAAEAIACoJQAA78cAACAgAAABACAAqBAAAJft
+ AAAYGAAAAQAgAIgJAAA//gAAEBAAAAEAIABoBAAAxwcBACgAAAAwAAAAYAAAAAEABAAAAAAAgAQAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/
+ /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dwiIiIiIiI
+ j4+P////////j4+IiIiIiIdwiIh3eHeHh4eHh4eHh4eHiHh4eHh3eIhwiIe4u4u4u4u4u4u4u4u4u4uL
+ uLi7h4hwB4h7i4uLi3uLe4tzd7i3i3t7i3t7eIcACIh7t7O3s7i5uLFVc5t7m3t7m3t5iIgAAHiHuzt7
+ m7m7exAhdzube5ube5u3iHAAAIiHububt7OzuTBCVzt7s7O3s7OYhwAAAAiIe7e7O5u5uzEAcjubm5ub
+ m5t/iAAAAAB4izs7s7t7O7NDQ7Ozs7Ozs7eIcAAAAACIh7u5u3ubs7Ozu5ubO5s7mziIcAAAAAAH+Hs7
+ e5uzubmzmzuzs7ube3iIAAAAAAAIiHu7m7O7OzQHZTubm5s7uYiHAAAAAAAAf4c7s7s7uzAANzs7s7O5
+ N/hwAAAAAAAACIizu3u5exAUFzubO5s7P4cAAAAAAAAAB4iLe7m7uzACQzs7s7ubf4gAAAAAAAAAAI+L
+ u7t7O1AABTu5ubO3j3AAAAAAAAAAAIj3uLi7uzBDQnm7O7uY94AAAAAAAAAAAAf4i7u3uDUlNTu3u5t/
+ iAAAAAAAAAAAAAiPe3u7izQ0Jzt7O3uPcAAAAAAAAAAAAAB/iLuLs3cWFju7u7f4cAAAAAAAAAAAAAAI
+ +Luzu3FnU3t7eXj3AAAAAAAAAAAAAAAIiIuLi3cWNDu3u4+IAAAAAAAAAAAAAAAAj4i7u1d3R3uLt/hw
+ AAAAAAAAAAAAAAAAiPe7ezdjcXuzt/iAAAAAAAAAAAAAAAAAB/iLu3d1dju4f4cAAAAAAAAAAAAAAAAA
+ AI97u1d3d3t7iIAAAAAAAAAAAAAAAAAAAHiIu3d3dzu3+HAAAAAAAAAAAAAAAAAAAAiIu3BwdHu4hwAA
+ AAAAAAAAAAAAAAAAAAiIe7u7u7t4iAAAAAAAAAAAAAAAAAAAAACIiLu7u7f4cAAAAAAAAAAAAAAAAAAA
+ AACIh7u7u7eIgAAAAAAAAAAAAAAAAAAAAAAIiIu7O3+HAAAAAAAAAAAAAAAAAAAAAAAAiHu7u4iAAAAA
+ AAAAAAAAAAAAAAAAAAAAiIe7t4hwAAAAAAAAAAAAAAAAAAAAAAAAB4i7iIcAAAAAAAAAAAAAAAAAAAAA
+ AAAACIh7eIgAAAAAAAAAAAAAAAAAAAAAAAAAAHiIiHAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIhwAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAiIiAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIgAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP///////wAAgAAAAAAB
+ AAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAACAAAAAAAMAAIAAAAAAAwAAwAAAAAAHAADAAAAAAA8AAOAA
+ AAAADwAA8AAAAAAfAADwAAAAAB8AAPgAAAAAPwAA+AAAAAA/AAD8AAAAAH8AAP4AAAAA/wAA/gAAAAD/
+ AAD/AAAAAf8AAP8AAAAB/wAA/4AAAAP/AAD/gAAAB/8AAP/AAAAH/wAA/+AAAA//AAD/4AAAD/8AAP/w
+ AAAf/wAA//AAAB//AAD/+AAAP/8AAP/8AAB//wAA//wAAH//AAD//gAA//8AAP/+AAD//wAA//8AAf//
+ AAD//wAB//8AAP//gAP//wAA///AB///AAD//8AH//8AAP//4A///wAA///gD///AAD///Af//8AAP//
+ +D///wAA///4P///AAD///x///8AAP///////wAA////////AAD///////8AAP///////wAAKAAAACAA
+ AABAAAAAAQAEAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
+ AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAIeHeHeHh4eHh4eHh3h3hwCIiIj4j4////+Pj4j4iIgAiIs7O3szszM7O3OzO3uIAAh3
+ uLubuLNXN7e7e4uXgAAIiLm7t7mxAXubm5ubOIAAAId7s7m7sQYTuzs7M4gAAACIg7m7OzszO5ubm5uI
+ AAAACIe7s7ubM7Ozs7s4gAAAAACIO7ubsQBbm7m5eIAAAAAAiIubs7AAc7O7O4gAAAAAAAiDu7uxADO7
+ mziAAAAAAAAI+LuzsQQzs7ufgAAAAAAAAI97u7cGG7uTiAAAAAAAAAAIi7i1JUO7t/gAAAAAAAAACPe7
+ s1J7s7iAAAAAAAAAAACIO7d1I7eIgAAAAAAAAAAAj4u1Z1uz+AAAAAAAAAAAAAiDt3djuIAAAAAAAAAA
+ AAAAiLM1O3iAAAAAAAAAAAAAAIh7u7uIAAAAAAAAAAAAAAAIi7u3iAAAAAAAAAAAAAAACIe7OIAAAAAA
+ AAAAAAAAAACHu3iAAAAAAAAAAAAAAAAAiHuIAAAAAAAAAAAAAAAAAAiIgAAAAAAAAAAAAAAAAAAAiIAA
+ AAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAP//////////AAAAAwAAAAMAAAADgAAAB4AAAAfAAAAPwAAAD+AAAB/wAAAf8AAAP/gA
+ AH/4AAB//AAA//4AAP/+AAH//wAB//8AA///gAf//8AH///AD///4A///+Af///wH///8D////h////8
+ f////f//////////////////KAAAABgAAAAwAAAAAQAEAAAAAAAgAQAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP//
+ /wAAAAAAAAAAAAAAAAAId3d3d3d3d3d3d4AI+P//j//4//j/j4gIg7M7OzM7M7M7OIgIiDuzu5BDs7mz
+ eIAAjzubOzMTubO5iAAAiIO7ubOzs7O3+AAACPezu7BTs7k/gAAACIi7mzALubuIgAAAAIh7u7QDuzeI
+ AAAAAAiHu7ULe7iIAAAAAAj4uzdLs5+AAAAAAACIO7Vju4gAAAAAAACIizdzt/gAAAAAAAAIiLdbP3AA
+ AAAAAAAIiDu7eIAAAAAAAAAAiIuz+AAAAAAAAAAACIO4iAAAAAAAAAAACPe4gAAAAAAAAAAAAIj4AAAA
+ AAAAAAAAAIiIAAAAAAAAAAAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AgAABAIAA
+ AACAAAAAgAABAMAAAwDAAAMA4AAHAOAABwDwAA8A+AAPAPgAHwD8AD8A/AA/AP4AfwD+AH8A/wD/AP+A
+ /wD/gf8A/8P/AP/D/wD/5/8A////AP///wAoAAAAEAAAACAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A
+ /wD//wAA////AAAAAAAAAAAAszMzMzMzMzt7u7u7u7u7i4t7mLAHt7m3A7i7MAu7i3AIu7e7i3uzgAA3
+ u4MbuLkAAAuLsAi7cAAAA7iwC4swAAAAO4ALiwAAAACLsAizAAAAAAOLi7AAAAAAC7i7cAAAAAAAO4sA
+ AAAAAACLtwAAAAAAAAOwAAAA//8AAAAAAAAAAAAAAAAAAIABAACAAQAAwAMAAOAHAADgBwAA8A8AAPAP
+ AAD4HwAA+B8AAPw/AAD8PwAA/n8AACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAB
+ AAAAAAAACgAAAAsLCwATDQwAEhEQAB0dHQAjFxQAIyEeACUkJAAoJycAIistACopKQA0Ly4ANTMzADs3
+ NgA+OTcAPTw8AEM7OgAWbHwAK2d5ACNwfgBEREQATENCAEJMTgBKSkoAU0ZDAFJLSwBcUE0AVFNTAFpW
+ VQBaWloAZF1bAGheXgBJen8AWHZ4AGNjYwBqZGQAa2trAHJmZQBxbWwAe25uAGVwcAB0dHQAeHZ2AHt6
+ egCBc3IAgH19ABVzhgAUcIoACnaUABN7kgA2eYMARXuAAEh7iwAPg58AGoKaADeCiwAripwAMIaTAAaI
+ qwAThaUAC4+zABaMugAbirkABZS5ABmQswAmh6cAO4WnACSMsAAwjLUAMZe8AD60vwBFhIkAQ4SWAE2O
+ kABCmZ4AQ4OkAEmKpgBbj6kAQZOtAEeUsABDnbgAYYykAG6YoQBvmK4Ad5alAH2VpwB/lqkARKG3AFyn
+ tgBRt74AfautAGiotwBzr7QAZba6AHaytQANlsIABJzZACqYwgABpdYAEbHcACulwwA/tckAKafSAAWl
+ 4AAKpeAAAavjAA2r4wAQqOIAAbPlAAq35wAEuuUACrvmAAG36gADuekACrzpAB6x5AAQveYAGrTqABq7
+ 6QAgr+MANrnnADS66QBBrMEAW7bEAFG5zABBstcAf7rCAE295wAowt8ACsLmAArI5wAGxOsAC8PpAATK
+ 7AAKyeoAE8HnABrD5wAby+cAFMTqAB7B6QASzOwAGsvtABvU7QAXz/EAHNXxACLF5gAgxOkAL8LtACLP
+ 7QAtzuwAMcTsADXK7AAk0uwANNnmACfa8gAK4ugADOvzABjp9wAG9fwAFPL7ACzr7wA85u4AJ+X2ADbn
+ 8gBcx8oAT8zQAFbN1wB0w8gAYsvTAHfJ0ABNxe0AScjvAFLE6wBYw+oAVsvtAFjM7gBX0O4AWNHuAFPc
+ 6wBKzfEAVcnwAE3R8ABK2PUAU9bzAETk8ACBgYEAgJidAJKRkQCWn58AnZycAKCdnQCCmqsAhZ6wAIif
+ sQCMpKYAlqSoAIOlsgCKorQAgaq3AI6muACPqLoAmKm0AJOrvQCIuLsAmrG1AKKiogCop6cAoqutAKuq
+ qgCwr68AubCvAKWxtgCzs7MAu7OzALi3uACzvb4AvLu7AMG5twDDvLsAyb68AMXAvgCWrsAAt7zBAMS/
+ wACSxsoAu8DBAMPBwQDKxcMAzsnGAMbJzADNy8sA0cTDANLLygDbzcwA1tHPANnQzQDU0tEA2tXUANzb
+ 2wDg1NIA4tzaAOrg3QDl4uIA7OXkAO3p5gDu7OwA8enlAPLs6wD57ewA9fDuAPnx7wD18fAA+fTyAP34
+ 9gD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwsLCsrKyssKywsLCwsLCwuLLouurq6ui4suiws
+ LCwsLCwsLCsrKysrKysrK7oAzuPZ293j5OPk5enr7vHy8/X4/P3+/v7+/v7+/v78+PX08vHu6+nl5OTj
+ 5Nvj0boA2ePZ4sFWV8FXwcHBwcHGxsnJycnJ3t7e3t7e3snJycnGxsbBwcHBwVdXVt/Z2bwA2dnbx7iy
+ sq+xsa+vr6+xr6+vr7CvtbC1tbW1rq6urq6urq6urq6urq6wgMHdzr4AAM7jvn23tra2tra2trS0trS0
+ tLS0rFFJT36rrLWrrquuq66rq6ustKysTdnZvgAAANfV3VOWmJiYmJiYmJiYmJSYlJSUEw0aJTVnenp6
+ enl6enp5eXp5eXpiyuS/zwAAAAC+5c57j5KSk5OMjIyMdox2d3NBBAgVHyVEdnR0eHh4eHh4eHh4eGtM
+ 5NW+AAAAAADlz+W7ko2LiIh1dW5ubm5ubnIwAQUNHB9CbWtra2xsbGxsbGxsaz/U6b4AAAAAAAAAzubT
+ WYSCgoJuboJucHBtbXBABAMLFR5gampqaWtoaWlpaWlpYVLu0b4AAAAAAAAAAM7rvYGEgoKCgm6CcHBw
+ bW1yMQoMFzxtampqaGpoaGhpaGloReDkvwAAAAAAAAAAANHj212Hh4KIgoKCcHBwcHBxcGM9Y3Ftampq
+ amhqaGhoaWhhVe7RvgAAAAAAAAAAAAC+7tVmhIKCgoKCgnBwcHBtY2NjY2Nqam1qampqamhraGhD7uS+
+ AAAAAAAAAAAAAADZ1e7Dio2NgoKCgoKCcIJAAwcOGh47cW1qampqampoamHE8b/RAAAAAAAAAAAAAAAA
+ zuvdfIaGjYKCgoKCgoQ2AAMIFSQ7bW1tbWptampqaE7y2b4AAAAAAAAAAAAAAAAAANHzz5mGhoONgoKC
+ goQyAAQIEB48cW1tbWptampqPubxvwAAAAAAAAAAAAAAAAAAAM7l6X+Rj42Gg4KCgoQvAAIFDRo8cG1t
+ bW1qbW1oVPfVvgAAAAAAAAAAAAAAAAAAAADP9tWzo6Obj4+NjYcSAAAECBA3bXBwbW1tbWpG7vG/AAAA
+ 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
+ FgA1JCAAOCopACk4OgA7NTQAPDg3ADE7PQA6PT4ARDg1AAA5RQAAPU0AAEJVAABKXQAVSlMAJENMAD1F
+ RgA9T1MAAFp2AC1eZQA4WmQAOmdsAEFAQABLRkUAT05NAFZLSgBKVFUARFVaAFtXVgBXXV8AZFxbAHRe
+ XgBFbnAAQ3J0AEV9fwBRcXQAW3V2AGplZQBlbW0AcWdnAHtlZAAGZYAAAHCQAD6GnQAzlZgAAIm0ABaL
+ uAAfj7sAAJG7ACOIswA2jLEAI5G2ADeWvAA+prsATpa1AGSZsAB1nrEAQ6W7AEmkvwBMrb0AU6q2AFCl
+ uQBlq7oAd6uzAHOqtgBtsrgABovDAAaXzgAAnMsABpzRAAOY2gAZn9EAIZjEACObyQAmmsgAIp7KACSe
+ ywAins0AA6TNAAWtzwAbosMAHqLJAB+3xAAeuMcAFbTLABq1yQAAodEAAqrUAA2u0QAAotsAC7zSAAaw
+ 2AARt9IAK6PAACaiywAgpMwAMazEACC3xgA9tsYAAKPmAACr5QAApukAAavrAAO55AAAsewAALvtAACz
+ 8gAAu/IAIbjsACm+8gApv/QARavDAEOtwwBkq8IAd6vCAGa3wwB5tsUADsDRAAfK3AANztwAEcbWAB3C
+ 1wAVxd4ACsbmAA3K5AAAwu0AAMjuAAbT4AAG2+QAAcLxAADI8QAFyPMAAMr2AADN9QAFzPUAAMv7AAHT
+ 9QAL0/cACNf5AAbZ/wAL2/sAEdf1ACjC9wAkzPcAJ8L5ACLK+AAmzfgAIM7/ACjR+AAj2f4ABuTzAAbl
+ /wAK6/kAE+P/ABnk/gAV6v8AGev/AAH1/AAO8P8AAP7/ABL1/wAZ8P8AmpeXAJuYlwCamJgAnJqYAJ6c
+ mwCenZwAoJ2dAKKhnQCNq7kAkLC1AKOhoQCkoqEAp6enAKyurgCzrq4Ata6uAL+urQC0sK8AoK+xAKa2
+ tgCguL0ArLi4ALWysQC4srIAvbKyALu0swC+tLIAuba2AL62tQCwtLoAt7+/ALq6ugC/u7wAvby8AMK0
+ tADEt7QAwbm3AMW7tgDLuLUAw7q7AMe5uADBvLoAwL69AMe+vQDLvLkAjLbIAJe/wQCMxMcAncPHAJzD
+ ygCswsIAu8XLALHJyQC+0toAw8LCAMvFxADOyMUAxcnIAMnJyQDMyskAzs7NANPEwwDUyMUA2svGANjN
+ ywDd0MsAys7SAM/O0ADNz9QAztHVANfX1gDR1NgA19jYANba3QDY2t8A49XUAOXZ2ADd3+MA4+TnAOjm
+ 5wDm5+oA5+rtAO7p6ADq6+4A6u3vAPTr6QDr7fAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxq2pp6eoqampra2usbGxsbGx
+ sa6trampqamoqamxAAC94unp6enu7vH09/r6+v39+vr49fXx7u7u6+np6t0AAMbLRWRkY1FRUVFRUWRR
+ TTRNUU1RT1FRUU9RUTnEvgAAALW5dJqZmZeXlJeXmFYUHzBxk3JycnJycpNMPMkAAAAAxstEYIiIhoaG
+ bnBwEQIOIkpva2tra2traDbOvgAAAAAAtsM+boaGbm5ucHAXAAYZXmtramhoampHPdMAAAAAAADh07BU
+ g4aGhm5ucFsvLjJva2tqamhoSzfkzgAAAAAAAAC95EKGg4aChoaGWzI1W2lra2tramtHr9MAAAAAAAAA
+ AAC+vF2Kg4OGhooSAAcgXHBtbWtrSzvm4QAAAAAAAAAAAMbzQ4ONg4ODhhAABBZccG1tbWs02s4AAAAA
+ AAAAAAAAAMnvdJyPjY2DDwACCVtwcG1vW3foAAAAAAAAAAAAAAAA3fLXf6Gfn5ITAwUMVIyGhm42+s4A
+ AAAAAAAAAAAAAAAAw/lAo6GhnRgIChVhkIqKW9ToAAAAAAAAAAAAAAAAAAAA5Nt/o6adGg4LC2GRkmw/
+ /N0AAAAAAAAAAAAAAAAAAAC+/Hibo50lHhwbWp6PVdzlAAAAAAAAAAAAAAAAAAAAAADO4H6koygjIR1Y
+ oIB2/OIAAAAAAAAAAAAAAAAAAAAAAODy1oSiKSwqI1ijYvXOAAAAAAAAAAAAAAAAAAAAAAAAAL7jZ6Ir
+ LS0kV4B55QAAAAAAAAAAAAAAAAAAAAAAAAAAANPVezElJSeEZeXOAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ veRApKSkpF/Y0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvrp7pKSkOuTRAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAADRyUGkpF+7yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1tH2FQNPiAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAOK3RljGvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi8274AAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAL7O5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7wAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAADAAAAAwAA
+ AAOAAAAHgAAAB8AAAA/AAAAP4AAAH/AAAB/wAAA/+AAAf/gAAH/8AAD//gAA//4AAf//AAH//wAD//+A
+ B///wAf//8AP///gD///4B////Af///wP///+H////x////9//////////////////8oAAAAGAAAADAA
+ AAABAAgAAAAAAEACAAAAAAAAAAAAAAABAAAAAQAAAAAAAAADBAAJCQsAHQgDAAEWHQASEhMAJBANADIm
+ JAA+KicAOjM0AEokFgBIMzEAHDlBAAFCVQBOSEcAXkxJAGRaWQB7W1oAel9fAFptbgBgZWQAHH6kABGD
+ rAAJib0AGI27ABWcvwAii7IAKouwACOTugA2mbQAP526AB2puwAcrL4AI6G+ACOtvwAqrLsAM6W6AD+l
+ ugBCnrUAR5y8AE2ougBVpr4AX6u+AGKmtwBmpL0AYq6+AAySwwABmc8AA57PAByVwQAfmscAHprIAB2c
+ ywAAnNMAGZ/QAA+gxAAZoMYAEanFABypwgAboMkAHKLKABuzzAAAo9cAAKbaAACj3wAPpdwADajeABSm
+ 1wAEst0AGLbVABO90gAltccALLLCACK9zQAsvM0AAJ3iAACj5gAApecAAKXqAACo6gAArOsAAKvtAACu
+ 7AAIru0ABLfhAAS84wAEv+YAALboAACx7wAAve0AAK/xAAey8QAAtfAAA7X1AAiw8AAAufMAALzyAAC+
+ 9ABDscMAZ63AAG+txAB9tMMACsPeAA/F3QAFz9wAGsDRABbM3gAJw+EAAMLuAADE7gAKwesABMztABDJ
+ 4QAC2eQAAdfsAA7e7wAV0eQAGdTjABfb6gABwfEAAMXzAAbF8wAAyvEAAc7yAADJ+AADyv8AAM78AAPT
+ /AAA1v8ACNj8ABDf/AAF4usABurrAATs7QAE6vAADeT7ABLp/wAU6P4AAP//AAj//wAY9/8AkpGQAJqY
+ mACvsbEAsbKyALSzsgC1tLMAtra2ALi2tgC4uLcAtri4ALe/vwC5uLgAvLq6AL29vQDBv74AgL7LAIi4
+ ygCKwMsAmMLMAInL1wC9wMAArc3YAKnW3gCy0tkAu9PcALvf5ADAwMAAxcTDAMbFxQDIx8YAysrJAMzL
+ ywDNzc0AytPVAM3e3wDU0tIA0dTUANXW1QDT29sA1tnaANfb3ADQ3d4A2dvaANjc2wDY29wA2dzdAODf
+ 3gDJ2uAA093gANje4ADI5ecAzujqANbl5QDZ4OAA2OnoANbv8ADh4eAA6+3sAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACa
+ jY2NjY2NjY2NjY2NjY2NjY2NjY2OAACRxbq6urq6uri4uLq4urq4uLi4uLqsrACWvx04PDw8PENCFhVB
+ NjIyMzMzMSyqrACplqA3bnl5eX0wAgoaXV1TU15RG66UAAAAmq8dVG1ZWWE/DQwuWk5NTU4XopoAAAAA
+ rKGjGVZtbXlUNTU+WFFRTksnupoAAAAAAJa4HVZ6bX1rBAc6YVFRURivmgAAAAAAALChpiFveoBmAAM5
+ YV1YP2SsmwAAAAAAAACauCpwiYlmBQY5enlhHL6aAAAAAAAAAAAAmsAkc4xqCQgggYBEnampAAAAAAAA
+ AAAAm7CcRot1DgsggnoeuJgAAAAAAAAAAAAAAJrBJYZ2EA8ih0WlmgAAAAAAAAAAAAAAAKmsnml2EhJI
+ cimwmgAAAAAAAAAAAAAAAACVwSh0ExRJPb2RAAAAAAAAAAAAAAAAAACsrJ9HhYVxY6ypAAAAAAAAAAAA
+ AAAAAAAAkcIrg4pKwpEAAAAAAAAAAAAAAAAAAAAAAKmkI2hlmqwAAAAAAAAAAAAAAAAAAAAAAJqyY2K4
+ jwAAAAAAAAAAAAAAAAAAAAAAAACRxMaPAAAAAAAAAAAAAAAAAAAAAAAAAACqrKyaAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAkZUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAP///wCAAAEAgAAAAIAAAACAAAEAwAADAMAAAwDgAAcA4AAHAPAADwD4AA8A+AAfAPwA
+ PwD8AD8A/gB/AP4AfwD/AP8A/4D/AP+B/wD/w/8A/8P/AP/n/wD///8A////ACgAAAAQAAAAIAAAAAEA
+ CAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAHGhxAA+MqQAVqcoAFqvNABeszQAYrs8AJq7OACG5
+ 1QAku9YAJr/ZADe00QBHu9UAKcLbACvG3wAsxt0AEsDwABXC8AAWxPEAGMXxABvI8QAeyvIAJcXjACHD
+ 5AAmxuQAKsfgACXJ6QAhzPIAJtHzACfS9AAo0/QALNb0ADPa8wAw2fUANNv0ADvi9wA84/cAPuT3AD/m
+ +AByyt8AReXxAEDl9QBH6vYASOjzAEjq9QBL7PUARer5AEnu+QBL8PoATvL6AFH0+wBb9vsAgtDiAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAwCAgICAgICAgICAgIC
+ AgwLGhMRERERERERERERERcLJwYbFBEREQAAExQUFBsFJwALFx4bFBsAABscHh4XCwAANAYiIiEeHiIh
+ ISIiBjQAAAALDiYlJQEBJSUlDgsAAAAAAAUqMC8AAC4uJQUAAAAAAAALDjAwAAAvLw4LAAAAAAAAAAUr
+ MgAAMCsFAAAAAAAAAAALCjMAADIPCwAAAAAAAAAAAAUrMjIrBgAAAAAAAAAAAAALCTIyDwsAAAAAAAAA
+ AAAAAAUrKwUAAAAAAAAAAAAAAAALCQ4LAAAAAAAAAAAAAAAAAAcHAAAAAAAAAP//AAAAAAAAAAAAAAAA
+ AACAAQAAgAEAAMADAADgBwAA4AcAAPAPAADwDwAA+B8AAPgfAAD8PwAA/D8AAP5/AACJUE5HDQoaCgAA
+ AA1JSERSAAABAAAAAQAIBgAAAFxyqGYAACAASURBVHic7L15lBz5XSf4+cWV933UpaOk0q1utW6pD3Wr
+ 1VIfkvuwaRsaGz9g2X3s7GNnWLOPHWbfPnbGw3uzB+cOy4KBEmMwhoExGHyDwYA97sa0bWz3pT7UUksl
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
+ AAAHAAAAEgAAABkAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsA
+ AAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsAAAAbAAAAGwAAABsA
+ AAAbAAAAGwAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABoAAAAaAAAAGgAAABkA
+ AAATAAAACQAAAAcAAAAfAAAAPwAAAFEAAABVAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYA
+ AABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVgAAAFYAAABWAAAAVQAAAFUA
+ AABVAAAAVQAAAFUAAABVAAAAVQAAAFUAAABVAAAAVQAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQA
+ AABUAAAAVAAAAFEAAABBAAAAIhwcHCxsa2u8bWxs5G1sbOptbGzrbWxs621sbOttbGzrbW1t625tbetu
+ bm7qb25u6nBvb+pxcHDqcnFx6nJxcepzcnLqc3Jy6nRzc+p0dHTqdXR06nV1dep1dXXqdnV16nZ1dep1
+ dHTqdHNz6nNyculycXHpcXBw6XFwcOlwb2/pb25u6G5ubuhtbW3obWxs6Gxra+hramroa2pq6Gppaedp
+ aWnnaWho52loaOdqaWnnamlp51pZWdEWFhaHAAAAPHV1dam7urrkvr29/8G+vf/FwL7/x8LA/8fCwP/I
+ w8H/y8XD/87Jxv/Szcv/1tHP/9rW0//f2tj/5N/c/+fj4f/t5+X/8Ozq//Xw7v/59PH/+/f1///6+P//
+ /vr////8/////P///vv///v5//z49v/59fH/9vHv//Hs6v/t6eb/6eTi/+Pf3P/g29n/29fT/9fRz//S
+ zcv/z8vI/8zGxP/Iw8H/x8LA/8fCwP/CwMD/wMDA/6qpqfVYV1e7AAAARqGgoLPFxMT/vbu7/7jAwv+H
+ nqr/fZWn/4CYqf+AmKn/gZmq/4ObrP+DnK//hZ2w/4efsf+IoLL/i6K1/42kt/+Oprj/j6i6/5Cqu/+T
+ q7z/lKu+/5Wrvv+Vrb//lq7B/5auwP+Vrb//lay//5Srvv+Tq73/kaq7/4+ouv+Oprn/jaS3/4uis/+J
+ oLL/iJ+x/4aesP+EnK//g5us/4GZq/+AmKr/f5ap/36Wp/+3vMH/wL29/7q5uf9zcnLGAAAAOp2cnbi7
+ urr/wbm3/4Gtt/9T1vP/V9Hu/1jR7v9X0O7/WM/u/1jO7f9Xzu7/V83t/1fM7v9XzO7/V8zu/1bM7v9W
+ y+7/Vcvu/1XL7v9Vye3/Vcfs/1bI7v9VyfD/UsTr/1PD6v9Wxez/V8Tr/1fD6v9Yw+r/WMPq/1jD6f9Y
+ wun/WMPp/1nD6f9Zw+r/WMPq/1jF6/9Zxez/WMbs/1jG7f9Yxu3/WMjv/0295/+CnrD/xsG+/6Sjo/tv
+ bm6vAAAAIpaXliGdnZ33ycXF/5mdnv9Rucz/Stj1/07V8P9O0/D/TdPw/03S8P9N0fH/TdHx/03Q8f9M
+ z/H/TNDx/0zP8f9LzvP/S87x/0vN8f9LzfH/S870/0nI7/9Dnbj/Q4SW/0GTrf9Bstf/TMXu/07G7v9O
+ xe3/TsXt/1DE7f9QxOz/UMTs/1DE7f9QxO3/TsXt/07F7f9Oxe7/Tcbu/03G7/9Nxu//SMjx/0mKpv+9
+ u73/ube3/5uamvQQEBA9AAAADQAAAACampqysbGx+Me+vP9umKH/L8/v/zXO7f82zO3/Nsvs/zbJ7P81
+ yOz/NMfs/zTH7P8zxez/MsXs/zLF7f8wxO3/MMPs/zDD7P8vw+7/L8Lt/ytnef81MjL/UExL/21sa/9I
+ e4v/KafS/zS97P81uun/Nrnp/za55/82uef/Nrnn/za55/82uef/Nrnn/za55/81uen/Nbnp/zW66f8z
+ vOz/KpjC/5iptP/LxcP/oJ+f+1xbW4oAAAAbAAAAAwAAAACWlpYcm5ub9snHxv+mpaX/QazB/xrL7v8h
+ xur/IcXq/yHD6v8gw+n/H8Lq/x/B6f8ewOn/HcDn/xu96f8bvOn/Gbvq/xm76v8KvOn/GZCz/xUTEf8k
+ ISH/RERE/2FfXf9wb23/JIyw/xq06v8esuX/H7Hk/yCv5P8hr+T/Ia/j/yGv4/8hr+P/Ia/j/yCv5P8g
+ r+T/IK/k/x+w5P8RreX/Q4Ok/83GxP+ysbH9jYyM4AAAAC8AAAAJAAAAAAAAAAAAAAAAmZmZgaenp/XP
+ x8X/gJid/yLF5v8Pxer/FMLp/xPC5/8Twef/Eb7m/xC85/8PvOf/Drvm/w265v8MuOf/C7fn/wq35/8F
+ uuf/FHCK/woAAP8bGxv/Nzc3/1FQUP9lX13/Joen/wSu5f8NreT/Dqzj/w+q4v8QqeL/Eaji/xGo4v8R
+ qOL/Eaji/xGo4v8RqOL/Eaji/wup4/8birn/p7C4/87Jxv+fnp77Pz4+ZQAAABYAAAABAAAAAAAAAAAA
+ AAAAm5ubBpubm+rHxsb/ubCv/1yntv8Hxez/DMLn/wzB5v8Mweb/C77m/wu95v8Ku+b/B7vm/wa65f8F
+ t+X/BLfl/wO25f8Eueb/BJK5/xAQEP8UDQz/LCsr/0hCQP9YWVn/DZbC/wKs4/8EquL/Bani/weo4v8J
+ p+H/Cabg/wql4P8LpeD/C6Xg/wul4P8LpeD/Cqbi/wCd3P9hjKT/2tDM/66trPyCgYHLAAAAKAAAAAcA
+ AAAAAAAAAAAAAAAAAAAAAAAAAJmZmUygoKDy1tHQ/5mgof8owt//BcTq/wzC5v8Lweb/C8Dm/wrA5v8J
+ veb/B7zm/wa75f8FueX/BLjl/wO25f8BtuX/ALnr/wp2lP8iKy3/NC8u/0JMTv8Ug6X/AK/m/wCu5P8A
+ quP/Aqni/wOo4v8EqOL/Bafh/wal4P8HpeD/B6Tg/wek4P8JpOD/AKPh/zCMtf/Ev8D/yMXF/52dnfkm
+ JiZMAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbm5vTwcDA/8S7uf9vrLf/Csjr/wrF5/8M
+ wub/DMHm/wvB5v8KwOb/CcDm/wm85v8GvOb/Bbvm/wO65v8Dt+X/Arjp/wS55/8EpND/C4+z/wGk0v8B
+ t+r/ALHn/wCu5P8AreT/AKzj/wKp4v8DqeL/BKji/wSn4f8Gp+H/B6Xg/wek4P8GpOH/AJva/3eWpf/g
+ 19P/p6am/GxsbKcAAAAhAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVlZUynJyc+NrW1v+0
+ sbH/P7XJ/wXJ7P8Mxef/DMTm/wzC5v8Lwub/CsHm/wnA5v8Jvub/Br3m/wa85v8Eu+f/AbHi/wGn1/8B
+ ptf/AabX/wKm1/8Bptf/AK3h/wKu5P8Ar+T/AK3k/wGs4/8CrOL/A6ri/wOo4v8Fp+H/Bqfg/wem4P8A
+ o+D/O4Wn/9vW1f/Gw8P/mJeX8QgICDkAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAmpqapbKysvjd1tb/iqSn/xvL5/8GyOv/DMfp/wzF5/8MxOb/DMLm/wvB5v8KwOb/CcDm/we+5v8I
+ wej/B5a6/xYODf8jIR7/Ozc2/1NNTf9ZXV3/Aomv/wG05/8AseX/AK/l/wCt5P8BreP/Aq3j/wOq4/8D
+ qeL/Baji/wKo4v8MnNb/lqGr/+Hc2v+hoKD7XFxciAAAABsAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAk5OTE5ubm/TV1NT/yL67/1u2xP8Dzu7/C8nq/wzH6f8Mxuf/DMTn/wzC5v8L
+ wub/CsHm/wnB5v8Iw+r/D4Of/wIAAP8QDg3/KCcn/0I+Pv9oZmX/C4eo/wG15/8AsuX/ALHl/wCv5f8A
+ ruT/Aa3k/wGt4/8DrOL/A6rj/wCk4P9bj6n/6uDd/7u6uv2OjY3fAAAALgAAAAkAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJiYmHGmpqb35+Li/6Crrv8s0Of/Aszs/wnJ6v8K
+ yOn/DMfp/wzF5/8MxOf/C8Ln/wrB5v8JxOr/E3uS/wEAAP8ODg7/JiYm/z48PP9cW1n/EYeo/wG15/8A
+ tOX/ALLl/wCx5f8AsOX/AK/l/wGt4/8CreP/AK3k/xaMuv/Gycz/4Nzb/6Cfn/w8PDxhAAAAFQAAAAEA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJubmwOcm5vgzMvL/dPJyP9/
+ usL/Gtrz/xXT7v8Qzuz/DMvq/wrI5/8Kxef/C8Tn/wrD5/8JxOn/FXOG/wAAAP8ICAj/Hh4e/zUzM/9Q
+ TUz/FIaj/wG25/8Bt+b/AbTl/wGz5f8AseX/AbHl/wCw5f8Ar+X/AKXd/2+Yrv/x6eX/tLOz+3t6esIA
+ AAAnAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACW
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWljadnZ34zcrK/6GZmf853OD/AP///zLu9P+k
+ paX/xMHB/56dnfo0NDRTAAAAEQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACampq2s7Oz/cu+vf90
+ sLH/AOTo/3KvsP/SxMT/o6Ki+G1sbKUAAAAiAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACW
+ lpYcnZ2d+cbExP+ztrb/iL6+/77Bwf+9u7v/m5qa9iAfHz0AAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAm5mZZaioqPrEwcH/xry8/8TCwv+fnp75XFtbdQAAABQAAAACAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnp2eBqanpom3trb/vby8/6+urv54d3eSAAAAHQAAAAYA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmclh+vrq2fs7Oz0JqZmZp0
+ c3M0AAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAP///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAQAAwAAAAAABAADAAAAAAAMAAOAAAAAA
+ AwAA8AAAAAAHAADwAAAAAA8AAPgAAAAADwAA+AAAAAAfAAD8AAAAAB8AAPwAAAAAPwAA/gAAAAA/AAD/
+ AAAAAH8AAP8AAAAA/wAA/4AAAAD/AAD/gAAAAf8AAP/AAAAB/wAA/+AAAAP/AAD/4AAAB/8AAP/wAAAH
+ /wAA//AAAA//AAD/+AAAD/8AAP/4AAAf/wAA//wAAB//AAD//gAAP/8AAP/+AAB//wAA//8AAH//AAD/
+ /wAA//8AAP//gAD//wAA///AAf//AAD//8AB//8AAP//4AP//wAA///gB///AAD///AH//8AAP//8A//
+ /wAA///4D///AAD///////8AAP///////wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAA
+ AAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAALgAAAC4AAAAuAAAALgAAAC4A
+ AAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAC4A
+ AAAuAAAALgAAAC4AAAAuAAAALgAAAC4AAAAuAAAALgAAAAAAAAAAi4qLlJmYmO2UkpLxlpKS8ZaSkvGW
+ k5Lxl5ST8ZeWlPGZl5bxnJeX8ZyYl/GdnJjxnpyc8Z6cnPGfnZzxn52d8Z+dnPGenJzwnpyc8J2cmPCc
+ mJfwm5eX8JiXlvCXlZTwl5ST8JaTkvCVkpHwlZKS8JSTk/GSkpLNCgkJIAAAAACko6LRzMrJ/8nP0v/K
+ z9P/y8/T/83P1P/O0dX/z9LW/9ba3f/d3+P/5ufq/+rr7v/q7e//6+3v/+vt8P/r7vD/6+3v/+vt7//n
+ 6u3/4+Xn/+Pk5//Y2t//0dTY/8/S1v/O0dX/zc/U/8vO0//Nz9T/z87Q/8C8vPs5ODhFAAAAAKOiorvA
+ uLf/c6q2/yCkzP8mo8v/JqHL/yafy/8knsv/JJ7L/ySey/8jnsv/Ip7K/yKeyv8ins7/IpjE/x+Pu/8g
+ mMX/I5vJ/yabyP8mmsj/JprI/yabyP8mm8n/JpvJ/yabyf8mm8r/Ip7M/zeWvP+wtLr/rqmn4Y+OjiIA
+ AAAAlpeXOLCrqvOgr7H/RavD/yPZ/v8p0/j/KND4/yfO+P8mzfj/JMz3/yPL+P8iyvj/IM7//x6iyf8k
+ Q0z/SlRV/z6Gnf8huOz/KML3/ym98/8qvfL/Kr/z/ym/8/8pv/P/Kb/0/yfC+f8Zn9H/ZJmw/7+0sv+X
+ lpVuAAAAAAAAAAAAAAAAn56ersS3tP93q7P/BrDY/wXI8/8GxfD/BcPw/wLB8P8BwO//ALzw/wC99P8A
+ wPX/AEJV/woAAP9EOTT/V11f/wac0f8As/P/BK7r/wWs6/8Gq+r/Bqvq/wWr6/8GrOz/A6Lh/yOIs/+/
+ u7z/p6KgxJCPkA8AAAAAAAAAAAAAAACWlpYgrqin5bi3t/9Dpbv/Ar/r/wDE7v8Awe7/AL/u/wC97v8A
+ uu3/ALrv/wC99P8AWnb/BQAA/zMbFv84WmT/AKLb/wCs7v8AqOr/AKfo/wCk5/8ApOf/AKTn/wCm6/8G
+ i8X/dZ6x/8S6tfmVlZVNAAAAAAAAAAAAAAAAAAAAAAAAAACcm5qNy7y5/5Cwtf8GrtX/AMjw/wDD7v8A
+ wu7/AMHu/wC97f8Au+3/ALvy/wCezf8AcJD/BmWA/wCKtv8AtPT/AKvr/wCp6v8AqOr/AKbn/wCk5/8A
+ o+f/A5jc/zaMsf/TxcL/oZ+fqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaWlhCopaTX0cXE/1Cluf8C
+ wer/AMjv/wDF7v8AxO7/AMLu/wDB7v8AwPD/AKHR/wCIs/8Akbv/AJvK/wCr5f8Ase3/AK7r/wCs6v8A
+ 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
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAJeYmDayq6v0rK6u/xHG1v8G2+T/Tay8/8u4tf+amZmBAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJudnYq/rq3/bbK4/x64x/+4u7v/q6KhzJ2bmxIA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlpeXHKmmpeG3v7//rMLC/7exsfma
+ mZlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnp+fQrWxse/D
+ urv/nZubi5eWlgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACd
+ npsFsbGvgK2srXidm5swAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////4AAAAMAAAABAAAAAQAAAAEA
+ AAADgAAAA4AAAAfAAAAPwAAAD+AAAB/gAAAf8AAAP/gAAD/4AAB//AAAf/wAAP/+AAH//gAB//8AA///
+ gAP//4AH///AB///wA///+Af///wH///8D////g////4f/////////////////8oAAAAGAAAADAAAAAB
+ ACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAiIeHGJGOjZODgoHgg4KB4IOCgeCDgoHgg4KB4IOCgeCDgoHgg4KB4IOCgeCDgoHgg4KB4IOCgeCD
+ goHgg4KB4IOCgeCDgoHgg4KB4IOCgeCDgoHgg4KB4IeFhdaLhoU0m5eWaLGvrvLh4eD9293e/9nd3f/Z
+ 3d7+2d3d/tjc3P7Y3Nv+19vb/tfb2/7X29z+2Nzd/tfb3P7Y29z+2Nzb/dfb2/7X2tv+19ra/tfb2/7U
+ 2dn/4N/e/8vLyf6npaaMqqinWbGzs+3I5ef/N5i0/xmgxv8do8v/HaLK/xyhyv8boMn/FKbX/w2o3v8R
+ g6z/HH6k/w+l3P8Zn9D/HprI/x+ax/8em8j/HpvI/x2cy/8clcH/ZqS9/sbFxPanpqWVv769FK+urbO1
+ vb32icvX/w+gxP8Kwev/B8fz/wXE8/8DwfL/A8r//wOez/8JCQv/SiQW/yKLsv8DtfX/B7Lx/wiu7f8I
+ ru3/CLDw/wKp6/8qi7D+ydPV+q2rqtqXlZUuAAAAAKqpqE2xsrLozd7f/DaatP8Et+H/AMPv/wC/7v8A
+ vO3/AL/1/wCm2v8BQlX/HDlB/wySw/8Ar/H/AKfq/wCl5/8Ao+b/AKTq/wmJvf+tzdj8vby89aSioXyG
+ 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
+ DwAA+B8AAPw/AAD8PwAA
+
+
+
\ No newline at end of file
diff --git a/app/DD_PM_WINDREAM/frmAnnotations.vb b/app/DD_PM_WINDREAM/frmAnnotations.vb
new file mode 100644
index 0000000..0ba0979
--- /dev/null
+++ b/app/DD_PM_WINDREAM/frmAnnotations.vb
@@ -0,0 +1,33 @@
+Imports PdfSharp.Pdf
+Imports PdfSharp.Pdf.Annotations
+Imports PdfSharp.Pdf.IO
+Imports PdfSharp.Drawing
+Public Class frmAnnotations
+ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+
+ Try
+ Dim doc As PdfDocument = PdfReader.Open(CURRENT_DOC_PATH, PdfDocumentOpenMode.Modify)
+ Dim firstPage As PdfPage = doc.Pages(txtSeitenzahl.Text)
+
+ Dim gfx As XGraphics = XGraphics.FromPdfPage(firstPage)
+ Dim rect As XRect = gfx.Transformer.WorldToDefaultPage(New XRect(New XPoint(30, 60), New XSize(30, 30)))
+
+ Dim annot As PdfTextAnnotation = New PdfTextAnnotation
+
+
+ annot.Title = txttitle.Text
+ 'annot.Subject = txtsubject.Text
+ annot.Contents = txtcontent.Text
+ annot.Rectangle = New PdfRectangle(rect)
+
+
+ firstPage.Annotations.Add(annot)
+ doc.Save(CURRENT_DOC_PATH)
+ Me.Close()
+ Catch ex As Exception
+ MsgBox(ex.Message, MsgBoxStyle.Critical)
+ End Try
+
+
+ End Sub
+End Class
\ No newline at end of file
diff --git a/app/DD_PM_WINDREAM/frmKonfig.vb b/app/DD_PM_WINDREAM/frmKonfig.vb
index 0eda6c2..95a246b 100644
--- a/app/DD_PM_WINDREAM/frmKonfig.vb
+++ b/app/DD_PM_WINDREAM/frmKonfig.vb
@@ -70,6 +70,7 @@ Public Class frmKonfig
.Title = "Pfad zu PDF XChange Viewer.exe:"
If .ShowDialog() = DialogResult.OK Then
Me.txtpdfxchange.Text = .FileName
+ PDFXChangeViewer = .FileName
SaveMySettingsValue("PDFXChangeViewer", txtpdfxchange.Text)
End If
End With
diff --git a/app/DD_PM_WINDREAM/frmMain.Designer.vb b/app/DD_PM_WINDREAM/frmMain.Designer.vb
index 5c6ce60..0650375 100644
--- a/app/DD_PM_WINDREAM/frmMain.Designer.vb
+++ b/app/DD_PM_WINDREAM/frmMain.Designer.vb
@@ -60,6 +60,8 @@ Partial Class frmMain
Me.TBPM_PROFILE_FILESBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.TBPM_PROFILE_FILESTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_PROFILE_FILESTableAdapter()
Me.TimerReminder = New System.Windows.Forms.Timer(Me.components)
+ Me.GridControlProfile = New DevExpress.XtraGrid.GridControl()
+ Me.GridViewProfile = New DevExpress.XtraGrid.Views.Grid.GridView()
CType(Me.DD_DMSLiteDataSet, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_PROFILEBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.ToolStrip1.SuspendLayout()
@@ -69,18 +71,19 @@ Partial Class frmMain
CType(Me.TBPM_USERBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_KONFIGURATIONBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TBPM_PROFILE_FILESBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.GridControlProfile, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.GridViewProfile, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'ListViewProfile
'
Me.ListViewProfile.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ProfilJob, Me.DocumentNumber, Me.Profilname})
- Me.ListViewProfile.Dock = System.Windows.Forms.DockStyle.Fill
Me.ListViewProfile.Font = New System.Drawing.Font("Verdana", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.ListViewProfile.FullRowSelect = True
- Me.ListViewProfile.Location = New System.Drawing.Point(0, 25)
+ Me.ListViewProfile.Location = New System.Drawing.Point(714, 37)
Me.ListViewProfile.Name = "ListViewProfile"
Me.ListViewProfile.ShowItemToolTips = True
- Me.ListViewProfile.Size = New System.Drawing.Size(889, 326)
+ Me.ListViewProfile.Size = New System.Drawing.Size(163, 101)
Me.ListViewProfile.SmallImageList = Me.ImageListProfile
Me.ListViewProfile.TabIndex = 1
Me.ListViewProfile.UseCompatibleStateImageBehavior = False
@@ -201,7 +204,7 @@ Partial Class frmMain
Me.tstrpbtn_Config.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.puzzle2
Me.tstrpbtn_Config.ImageTransparentColor = System.Drawing.Color.Magenta
Me.tstrpbtn_Config.Name = "tstrpbtn_Config"
- Me.tstrpbtn_Config.Size = New System.Drawing.Size(139, 22)
+ Me.tstrpbtn_Config.Size = New System.Drawing.Size(138, 22)
Me.tstrpbtn_Config.Text = "Verwaltungs-Konsole"
Me.tstrpbtn_Config.Visible = False
'
@@ -234,7 +237,7 @@ Partial Class frmMain
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.tsstlblUser.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.user
Me.tsstlblUser.Name = "tsstlblUser"
- Me.tsstlblUser.Size = New System.Drawing.Size(141, 20)
+ Me.tsstlblUser.Size = New System.Drawing.Size(140, 20)
Me.tsstlblUser.Text = "ToolStripStatusLabel1"
'
'tslblLicenses
@@ -263,11 +266,12 @@ Partial Class frmMain
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Right) _
Or System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom), System.Windows.Forms.ToolStripStatusLabelBorderSides)
Me.tslblVersion.Name = "tslblVersion"
- Me.tslblVersion.Size = New System.Drawing.Size(125, 20)
+ Me.tslblVersion.Size = New System.Drawing.Size(124, 20)
Me.tslblVersion.Text = "ToolStripStatusLabel1"
'
'Panel1
'
+ Me.Panel1.Controls.Add(Me.GridControlProfile)
Me.Panel1.Controls.Add(Me.ListViewProfile)
Me.Panel1.Controls.Add(Me.ToolStrip1)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
@@ -326,6 +330,43 @@ Partial Class frmMain
'TimerReminder
'
'
+ 'GridControlProfile
+ '
+ Me.GridControlProfile.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.GridControlProfile.Location = New System.Drawing.Point(12, 37)
+ Me.GridControlProfile.MainView = Me.GridViewProfile
+ Me.GridControlProfile.Name = "GridControlProfile"
+ Me.GridControlProfile.Size = New System.Drawing.Size(682, 311)
+ Me.GridControlProfile.TabIndex = 3
+ Me.GridControlProfile.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewProfile})
+ '
+ 'GridViewProfile
+ '
+ Me.GridViewProfile.Appearance.EvenRow.BackColor = System.Drawing.Color.Cyan
+ Me.GridViewProfile.Appearance.EvenRow.Options.UseBackColor = True
+ Me.GridViewProfile.Appearance.Row.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.GridViewProfile.Appearance.Row.Options.UseFont = True
+ Me.GridViewProfile.GridControl = Me.GridControlProfile
+ Me.GridViewProfile.GroupPanelText = "Ziehen Sie Spaltenüberschriften in diesen Bereich um nach diesen gruppieren zu la" &
+ "ssen"
+ Me.GridViewProfile.Name = "GridViewProfile"
+ Me.GridViewProfile.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False]
+ Me.GridViewProfile.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.[False]
+ Me.GridViewProfile.OptionsBehavior.Editable = False
+ Me.GridViewProfile.OptionsBehavior.ReadOnly = True
+ Me.GridViewProfile.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False]
+ Me.GridViewProfile.OptionsCustomization.AllowGroup = False
+ Me.GridViewProfile.OptionsSelection.EnableAppearanceFocusedCell = False
+ Me.GridViewProfile.OptionsSelection.EnableAppearanceFocusedRow = False
+ Me.GridViewProfile.OptionsSelection.EnableAppearanceHideSelection = False
+ Me.GridViewProfile.OptionsSelection.MultiSelect = True
+ Me.GridViewProfile.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect
+ Me.GridViewProfile.OptionsView.ColumnAutoWidth = False
+ Me.GridViewProfile.OptionsView.EnableAppearanceEvenRow = True
+ Me.GridViewProfile.OptionsView.ShowAutoFilterRow = True
+ Me.GridViewProfile.OptionsView.ShowGroupPanel = False
+ Me.GridViewProfile.OptionsView.ShowHorizontalLines = DevExpress.Utils.DefaultBoolean.[True]
+ '
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 21.0!)
@@ -351,6 +392,8 @@ Partial Class frmMain
CType(Me.TBPM_USERBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBPM_KONFIGURATIONBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TBPM_PROFILE_FILESBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.GridControlProfile, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.GridViewProfile, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -391,4 +434,6 @@ Partial Class frmMain
Friend WithEvents Profilname As System.Windows.Forms.ColumnHeader
Friend WithEvents tslblVersion As System.Windows.Forms.ToolStripStatusLabel
Friend WithEvents TimerReminder As System.Windows.Forms.Timer
+ Friend WithEvents GridControlProfile As DevExpress.XtraGrid.GridControl
+ Friend WithEvents GridViewProfile As DevExpress.XtraGrid.Views.Grid.GridView
End Class
diff --git a/app/DD_PM_WINDREAM/frmMain.resx b/app/DD_PM_WINDREAM/frmMain.resx
index 9a347a6..ef6c892 100644
--- a/app/DD_PM_WINDREAM/frmMain.resx
+++ b/app/DD_PM_WINDREAM/frmMain.resx
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADw
- CAAAAk1TRnQBSQFMAgEBAgEAAcgBAQHIAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
+ CAAAAk1TRnQBSQFMAgEBAgEAAdABAQHQAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
diff --git a/app/DD_PM_WINDREAM/frmMain.vb b/app/DD_PM_WINDREAM/frmMain.vb
index 041f1d7..0be296f 100644
--- a/app/DD_PM_WINDREAM/frmMain.vb
+++ b/app/DD_PM_WINDREAM/frmMain.vb
@@ -7,6 +7,7 @@ Public Class frmMain
Private _windreamPM As ClassPMWindream
Private UserLoggedin As Integer = 0
Private PROFILE_COUNT As Integer = 0
+ Private DTPROFIL As DataTable
Private Sub frmProfiles_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Try
TBPM_USERTableAdapter.cmdLoginOut(False, Environment.MachineName, Environment.UserName)
@@ -141,7 +142,42 @@ Public Class frmMain
Sub LoadProfile_PM()
Try
If Me.Visible = True And frmProfileDesigner.Visible = False Then
+ DTPROFIL = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_PROFILE WHERE GUID = " & CURRENT_ProfilGUID)
PROFILE_COUNT = 0
+ Dim sql = String.Format("Select T.PROFIL_ID, T.TITLE as 'Profil/Schritt', NO_OF_DOCUMENTS AS 'Anzahl Dateien',ISNULL([dbo].[FNPM_LASTWORKUSER_PROFIL] ( T.PROFIL_ID),'') as 'Letzter Bearbeiter' from VWPM_PROFILE_USER T" &
+ " Where(ACTIVE = 1) And (UPPER(USERNAME) = UPPER('{0}')) Order By PRIORITY", Environment.UserName)
+ Dim DTGRID As DataTable = ClassDatabase.Return_Datatable(sql, True)
+ If Not IsNothing(DTGRID) Then
+ GridControlProfile.DataSource = DTGRID
+ Try
+ GridViewProfile.Columns.Item("PROFIL_ID").Visible = False
+ Catch ex As Exception
+
+ End Try
+ 'Detail-Daten laden
+ Dim SQL_DETAILS
+ Try
+ SQL_DETAILS = DTPROFIL.Rows(0).Item("DETAIL_SQL")
+ Catch ex As Exception
+ SQL_DETAILS = String.Empty
+ End Try
+ If SQL_DETAILS <> String.Empty Then
+ Dim DT_DETAILS As DataTable = ClassDatabase.Return_Datatable(SQL_DETAILS, True)
+
+ End If
+
+
+ Else
+ GridControlProfile.DataSource = Nothing
+ Try
+ GridViewProfile.Columns.Clear()
+ Catch ex As Exception
+
+ End Try
+ End If
+
+
+
Me.VWPM_PROFILE_USERTableAdapter.FillByActive(Me.DD_DMSLiteDataSet.VWPM_PROFILE_USER, Environment.UserName)
Dim DT As DataTable = DD_DMSLiteDataSet.Tables("VWPM_PROFILE_USER")
If LogErrorsOnly = False Then ClassLogger.Add("", False)
diff --git a/app/DD_PM_WINDREAM/frmValidator.Designer.vb b/app/DD_PM_WINDREAM/frmValidator.Designer.vb
index 852bf54..f5a8a52 100644
--- a/app/DD_PM_WINDREAM/frmValidator.Designer.vb
+++ b/app/DD_PM_WINDREAM/frmValidator.Designer.vb
@@ -39,7 +39,6 @@ Partial Class frmValidator
Me.VWPM_PROFILE_USERBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.DD_DMSLiteDataSet = New DD_PM_WINDREAM.DD_DMSLiteDataSet()
Me.btnSave = New System.Windows.Forms.Button()
- Me.btnNavigatornext = New System.Windows.Forms.Button()
Me.DESCRIPTIONLabel = New System.Windows.Forms.Label()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.Label2 = New System.Windows.Forms.Label()
@@ -47,7 +46,6 @@ Partial Class frmValidator
Me.txtErstellt = New System.Windows.Forms.TextBox()
Me.txtDateipfad = New System.Windows.Forms.TextBox()
Me.pnldesigner = New System.Windows.Forms.Panel()
- Me.btnDelete = New System.Windows.Forms.Button()
Me.VWPM_PROFILE_USERTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.VWPM_PROFILE_USERTableAdapter()
Me.TableAdapterManager = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TableAdapterManager()
Me.TBPM_CONNECTIONTableAdapter = New DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.TBPM_CONNECTIONTableAdapter()
@@ -137,6 +135,10 @@ Partial Class frmValidator
Me.txtBetreff = New System.Windows.Forms.TextBox()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.grpbxMailBody = New System.Windows.Forms.GroupBox()
+ Me.ToolStrip1 = New System.Windows.Forms.ToolStrip()
+ Me.ToolStripButtonJumpFile = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripButtonDeleteFile = New System.Windows.Forms.ToolStripButton()
+ Me.ToolStripButtonAnnotation = New System.Windows.Forms.ToolStripButton()
CType(Me.BarAndDockingController3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.BarAndDockingController2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.BarAndDockingController1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -168,6 +170,7 @@ Partial Class frmValidator
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
Me.grpbxMailBody.SuspendLayout()
+ Me.ToolStrip1.SuspendLayout()
Me.SuspendLayout()
'
'BarAndDockingController3
@@ -225,16 +228,14 @@ Partial Class frmValidator
Me.Panel1.ContextMenuStrip = Me.ContextMenuStrip1
Me.Panel1.Controls.Add(Me.TITLELabel1)
Me.Panel1.Controls.Add(Me.btnSave)
- Me.Panel1.Controls.Add(Me.btnNavigatornext)
Me.Panel1.Controls.Add(Me.DESCRIPTIONLabel)
Me.Panel1.Controls.Add(Me.GroupBox1)
Me.Panel1.Controls.Add(Me.pnldesigner)
- Me.Panel1.Controls.Add(Me.btnDelete)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 0)
Me.Panel1.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Panel1.Name = "Panel1"
- Me.Panel1.Size = New System.Drawing.Size(477, 621)
+ Me.Panel1.Size = New System.Drawing.Size(477, 593)
Me.Panel1.TabIndex = 24
'
'ContextMenuStrip1
@@ -288,7 +289,7 @@ Partial Class frmValidator
Me.btnSave.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.btnSave.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.flag_pink
Me.btnSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.btnSave.Location = New System.Drawing.Point(7, 564)
+ Me.btnSave.Location = New System.Drawing.Point(7, 536)
Me.btnSave.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.btnSave.Name = "btnSave"
Me.btnSave.Size = New System.Drawing.Size(450, 50)
@@ -296,21 +297,6 @@ Partial Class frmValidator
Me.btnSave.Text = "Validierung speichern - Nächstes Dokument"
Me.btnSave.UseVisualStyleBackColor = True
'
- 'btnNavigatornext
- '
- Me.btnNavigatornext.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
- Me.btnNavigatornext.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.Nextrequest_10302
- Me.btnNavigatornext.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.btnNavigatornext.Location = New System.Drawing.Point(287, 119)
- Me.btnNavigatornext.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
- Me.btnNavigatornext.Name = "btnNavigatornext"
- Me.btnNavigatornext.Size = New System.Drawing.Size(171, 35)
- Me.btnNavigatornext.TabIndex = 3
- Me.btnNavigatornext.TabStop = False
- Me.btnNavigatornext.Text = "Datei überspringen"
- Me.btnNavigatornext.TextAlign = System.Drawing.ContentAlignment.MiddleRight
- Me.btnNavigatornext.UseVisualStyleBackColor = True
- '
'DESCRIPTIONLabel
'
Me.DESCRIPTIONLabel.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
@@ -331,7 +317,7 @@ Partial Class frmValidator
Me.GroupBox1.Controls.Add(Me.txtErstellt)
Me.GroupBox1.Controls.Add(Me.txtDateipfad)
Me.GroupBox1.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.GroupBox1.Location = New System.Drawing.Point(9, 428)
+ Me.GroupBox1.Location = New System.Drawing.Point(9, 400)
Me.GroupBox1.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Padding = New System.Windows.Forms.Padding(3, 4, 3, 4)
@@ -397,27 +383,12 @@ Partial Class frmValidator
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.pnldesigner.AutoScroll = True
Me.pnldesigner.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
- Me.pnldesigner.Location = New System.Drawing.Point(8, 162)
+ Me.pnldesigner.Location = New System.Drawing.Point(8, 119)
Me.pnldesigner.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.pnldesigner.Name = "pnldesigner"
- Me.pnldesigner.Size = New System.Drawing.Size(450, 258)
+ Me.pnldesigner.Size = New System.Drawing.Size(450, 273)
Me.pnldesigner.TabIndex = 18
'
- 'btnDelete
- '
- Me.btnDelete.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.delete_12x12
- Me.btnDelete.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
- Me.btnDelete.Location = New System.Drawing.Point(8, 119)
- Me.btnDelete.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
- Me.btnDelete.Name = "btnDelete"
- Me.btnDelete.Size = New System.Drawing.Size(117, 35)
- Me.btnDelete.TabIndex = 21
- Me.btnDelete.TabStop = False
- Me.btnDelete.Text = "Löschen"
- Me.btnDelete.TextAlign = System.Drawing.ContentAlignment.MiddleRight
- Me.btnDelete.UseVisualStyleBackColor = True
- Me.btnDelete.Visible = False
- '
'VWPM_PROFILE_USERTableAdapter
'
Me.VWPM_PROFILE_USERTableAdapter.ClearBeforeFill = True
@@ -977,8 +948,10 @@ Partial Class frmValidator
'
'SplitContainer1
'
- Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
- Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
+ Me.SplitContainer1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
+ Or System.Windows.Forms.AnchorStyles.Left) _
+ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
+ Me.SplitContainer1.Location = New System.Drawing.Point(0, 28)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
@@ -990,7 +963,7 @@ Partial Class frmValidator
Me.SplitContainer1.Panel2.Controls.Add(Me.grpbxMailBody)
Me.SplitContainer1.Panel2.Controls.Add(Me.pnlpdf)
Me.SplitContainer1.Panel2.Controls.Add(Me.grpBetreff)
- Me.SplitContainer1.Size = New System.Drawing.Size(962, 621)
+ Me.SplitContainer1.Size = New System.Drawing.Size(962, 593)
Me.SplitContainer1.SplitterDistance = 477
Me.SplitContainer1.TabIndex = 37
'
@@ -1005,11 +978,46 @@ Partial Class frmValidator
Me.grpbxMailBody.TabStop = False
Me.grpbxMailBody.Text = "Body:"
'
+ 'ToolStrip1
+ '
+ Me.ToolStrip1.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
+ Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButtonJumpFile, Me.ToolStripButtonDeleteFile, Me.ToolStripButtonAnnotation})
+ Me.ToolStrip1.Location = New System.Drawing.Point(0, 0)
+ Me.ToolStrip1.Name = "ToolStrip1"
+ Me.ToolStrip1.Size = New System.Drawing.Size(962, 25)
+ Me.ToolStrip1.TabIndex = 42
+ Me.ToolStrip1.Text = "ToolStrip1"
+ '
+ 'ToolStripButtonJumpFile
+ '
+ Me.ToolStripButtonJumpFile.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.Nextrequest_10302
+ Me.ToolStripButtonJumpFile.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButtonJumpFile.Name = "ToolStripButtonJumpFile"
+ Me.ToolStripButtonJumpFile.Size = New System.Drawing.Size(165, 22)
+ Me.ToolStripButtonJumpFile.Text = "Datei überspringen (F4)"
+ '
+ 'ToolStripButtonDeleteFile
+ '
+ Me.ToolStripButtonDeleteFile.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.delete_12x12
+ Me.ToolStripButtonDeleteFile.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButtonDeleteFile.Name = "ToolStripButtonDeleteFile"
+ Me.ToolStripButtonDeleteFile.Size = New System.Drawing.Size(106, 22)
+ Me.ToolStripButtonDeleteFile.Text = "Datei löschen"
+ '
+ 'ToolStripButtonAnnotation
+ '
+ Me.ToolStripButtonAnnotation.Image = Global.DD_PM_WINDREAM.My.Resources.Resources.flag_orange
+ Me.ToolStripButtonAnnotation.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.ToolStripButtonAnnotation.Name = "ToolStripButtonAnnotation"
+ Me.ToolStripButtonAnnotation.Size = New System.Drawing.Size(105, 22)
+ Me.ToolStripButtonAnnotation.Text = "Annotationen"
+ '
'frmValidator
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 17.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(962, 643)
+ Me.Controls.Add(Me.ToolStrip1)
Me.Controls.Add(Me.SplitContainer1)
Me.Controls.Add(Me.StatusStrip1)
Me.Controls.Add(Me.barDockControlLeft)
@@ -1060,6 +1068,8 @@ Partial Class frmValidator
Me.SplitContainer1.ResumeLayout(False)
Me.grpbxMailBody.ResumeLayout(False)
Me.grpbxMailBody.PerformLayout()
+ Me.ToolStrip1.ResumeLayout(False)
+ Me.ToolStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -1071,7 +1081,6 @@ Partial Class frmValidator
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents TITLELabel1 As System.Windows.Forms.Label
Friend WithEvents btnSave As System.Windows.Forms.Button
- Friend WithEvents btnNavigatornext As System.Windows.Forms.Button
Friend WithEvents DESCRIPTIONLabel As System.Windows.Forms.Label
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents Label2 As System.Windows.Forms.Label
@@ -1079,7 +1088,6 @@ Partial Class frmValidator
Friend WithEvents txtErstellt As System.Windows.Forms.TextBox
Friend WithEvents txtDateipfad As System.Windows.Forms.TextBox
Friend WithEvents pnldesigner As System.Windows.Forms.Panel
- Friend WithEvents btnDelete As System.Windows.Forms.Button
Friend WithEvents DD_DMSLiteDataSet As DD_PM_WINDREAM.DD_DMSLiteDataSet
Friend WithEvents VWPM_PROFILE_USERBindingSource As System.Windows.Forms.BindingSource
Friend WithEvents VWPM_PROFILE_USERTableAdapter As DD_PM_WINDREAM.DD_DMSLiteDataSetTableAdapters.VWPM_PROFILE_USERTableAdapter
@@ -1177,4 +1185,8 @@ Partial Class frmValidator
Friend WithEvents BarAndDockingController3 As DevExpress.XtraBars.BarAndDockingController
Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer
Friend WithEvents grpbxMailBody As System.Windows.Forms.GroupBox
+ Friend WithEvents ToolStrip1 As ToolStrip
+ Friend WithEvents ToolStripButtonJumpFile As ToolStripButton
+ Friend WithEvents ToolStripButtonDeleteFile As ToolStripButton
+ Friend WithEvents ToolStripButtonAnnotation As ToolStripButton
End Class
diff --git a/app/DD_PM_WINDREAM/frmValidator.resx b/app/DD_PM_WINDREAM/frmValidator.resx
index b33131b..f7355bf 100644
--- a/app/DD_PM_WINDREAM/frmValidator.resx
+++ b/app/DD_PM_WINDREAM/frmValidator.resx
@@ -204,6 +204,9 @@
197
+
+ 134, 251
+
17, 251
diff --git a/app/DD_PM_WINDREAM/frmValidator.vb b/app/DD_PM_WINDREAM/frmValidator.vb
index d9ad52f..7449a96 100644
--- a/app/DD_PM_WINDREAM/frmValidator.vb
+++ b/app/DD_PM_WINDREAM/frmValidator.vb
@@ -17,6 +17,7 @@ Public Class frmValidator
Dim PROFIL_VEKTORINDEX
Dim PROFIL_LOGINDEX
Dim Right_Delete As Boolean
+ Dim DTPROFIL As DataTable
Dim Delimiter As String
@@ -297,6 +298,7 @@ Public Class frmValidator
Me.Size = My.Settings.frmValidatorSize
End If
Try
+ DTPROFIL = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_PROFILE WHERE GUID = " & CURRENT_ProfilGUID)
TBPM_FILES_USER_NOT_INDEXEDTableAdapter.Connection.ConnectionString = MyConnectionString
TBPM_PROFILE_CONTROLSTableAdapter.Connection.ConnectionString = MyConnectionString
TBPM_CONNECTIONTableAdapter.Connection.ConnectionString = MyConnectionString
@@ -362,9 +364,9 @@ Public Class frmValidator
If LogErrorsOnly = False Then ClassLogger.Add(" >> PROFIL_sortbynewest: " & PROFIL_sortbynewest.ToString, False)
'Delete Button anzeigen ja/nein
If Right_Delete = True Then
- Me.btnDelete.Visible = True
+ Me.ToolStripButtonDeleteFile.Enabled = True
Else
- Me.btnDelete.Visible = False
+ Me.ToolStripButtonDeleteFile.Enabled = False
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Right_Delete: " & Right_Delete.ToString, False)
@@ -861,7 +863,7 @@ Public Class frmValidator
ClassLogger.Add("Unexpected Error in Eventhandler Variable SQL Result - ERROR: " & ex.Message)
End Try
If box.Name = last_control.Name Then
- Abschluss()
+ ' Abschluss()
Else
SendKeys.Send("{TAB}")
End If
@@ -1063,10 +1065,12 @@ Public Class frmValidator
Else
newGUID = TBPM_PROFILE_FILESTableAdapter.cmdGetNextFile_GUID(CURRENT_ProfilGUID, OLD_Document_Path, Environment.UserName)
End If
-
+ Document_Path = ""
+ CURRENT_DOC_PATH = ""
If newGUID > 0 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> newGUID: " & newGUID.ToString, False)
Document_Path = TBPM_PROFILE_FILESTableAdapter.CmdGetFilePath_2_GUID(newGUID)
+ CURRENT_DOC_PATH = Document_Path
If LogErrorsOnly = False Then ClassLogger.Add(" >> Document_Path: " & Document_Path, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Überprüfen ob File existiert?", False)
@@ -1079,6 +1083,8 @@ Public Class frmValidator
Dim Del = "DELETE FROM TBPM_PROFILE_FILES where GUID = " & newGUID
ClassDatabase.Execute_non_Query(Del, True)
errmessage = "Die windream-Datei existiert nicht!"
+ Document_Path = ""
+ CURRENT_DOC_PATH = ""
Return 0
End If
Loop
@@ -1225,67 +1231,11 @@ Public Class frmValidator
Me.grpbxMailBody.Visible = False
Me.grpBetreff.Visible = False
- If Viewer = "uviewer" Then
- pdfxchange = False
- sumatra = False
- If Document_Path.ToLower.EndsWith(".msg") Then
- Show_Email()
- Else
- ShowFile_UniversalViewer(Document_Path)
- End If
- ElseIf Viewer = "docview" Then
- PdfControls_visible(False)
- If Document_Path.ToLower.EndsWith(".pdf") And vpdfviewer <> "none" Then
- Select Case vpdfviewer
- Case "internal"
- PdfViewer1.LoadDocument(Document_Path)
- If LogErrorsOnly = False Then ClassLogger.Add(" >> Internal Viewer Path: " & Document_Path, False)
- PdfControls_visible(True)
- Me.Size = My.Settings.frmValidation_Size_PDFViewer
- PdfViewer1.ZoomMode = PDFViewer_ZoomMode
- pdfxchange = False
- sumatra = False
- Case "pdfxchange"
- Open_PDFXCHANGE(Document_Path)
- pdfxchange = True
- sumatra = False
- System.Threading.Thread.Sleep(1000)
- Me.Size = My.Settings.frmValidatorSize
- Case "sumatra"
- Open_Sumatra(Document_Path)
- sumatra = True
- pdfxchange = False
- System.Threading.Thread.Sleep(1000)
- Me.Size = My.Settings.frmValidatorSize
- Case "system"
- sumatra = False
- pdfxchange = False
- Open_PDF_withStandard()
- System.Threading.Thread.Sleep(1000)
- Me.Size = My.Settings.frmValidatorSize
- End Select
- ElseIf Document_Path.ToLower.EndsWith(".msg") Then
- Show_Email()
- Else
- Me.Size = My.Settings.frmValidatorSize
- pdfxchange = False
- sumatra = False
- DocView = Nothing
- DocView = CreateObject("WMPViewXNG.Viewer")
- ' open the viewer
- viewer_string = aktivesDokument.aPath.ToString
- DocView.ViewFile(viewer_string)
- End If
+ load_Viewer
+ If Document_Path.ToLower.EndsWith(".pdf") Then
+ ToolStripButtonAnnotation.Visible = True
Else
- PdfControls_visible(False)
- Me.Size = My.Settings.frmValidatorSize
- pdfxchange = False
- sumatra = False
- DocView = Nothing
- DocView = CreateObject("WMPViewXNG.Viewer")
- ' open the viewer
- viewer_string = aktivesDokument.aPath.ToString
- DocView.ViewFile(viewer_string)
+ ToolStripButtonAnnotation.Visible = False
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Viewer geladen", False)
@@ -1348,6 +1298,70 @@ Public Class frmValidator
frmError.ShowDialog()
End Try
End Sub
+ Sub load_viewer()
+ If Viewer = "uviewer" Then
+ pdfxchange = False
+ sumatra = False
+ If Document_Path.ToLower.EndsWith(".msg") Then
+ Show_Email()
+ Else
+ ShowFile_UniversalViewer(Document_Path)
+ End If
+ ElseIf Viewer = "docview" Then
+ PdfControls_visible(False)
+ If Document_Path.ToLower.EndsWith(".pdf") And vpdfviewer <> "none" Then
+ Select Case vpdfviewer
+ Case "internal"
+ PdfViewer1.LoadDocument(Document_Path)
+ If LogErrorsOnly = False Then ClassLogger.Add(" >> Internal Viewer Path: " & Document_Path, False)
+ PdfControls_visible(True)
+ Me.Size = My.Settings.frmValidation_Size_PDFViewer
+ PdfViewer1.ZoomFactor = PDFViewer_ZoomMode
+ pdfxchange = False
+ sumatra = False
+ Case "pdfxchange"
+ Open_PDFXCHANGE(Document_Path)
+ pdfxchange = True
+ sumatra = False
+ System.Threading.Thread.Sleep(1000)
+ Me.Size = My.Settings.frmValidatorSize
+ Case "sumatra"
+ Open_Sumatra(Document_Path)
+ sumatra = True
+ pdfxchange = False
+ System.Threading.Thread.Sleep(1000)
+ Me.Size = My.Settings.frmValidatorSize
+ Case "system"
+ sumatra = False
+ pdfxchange = False
+ Open_PDF_withStandard()
+ System.Threading.Thread.Sleep(1000)
+ Me.Size = My.Settings.frmValidatorSize
+ End Select
+ ElseIf Document_Path.ToLower.EndsWith(".msg") Then
+ Show_Email()
+ Else
+ Me.Size = My.Settings.frmValidatorSize
+ pdfxchange = False
+ sumatra = False
+ DocView = Nothing
+ DocView = CreateObject("WMPViewXNG.Viewer")
+ ' open the viewer
+ viewer_string = aktivesDokument.aPath.ToString
+ DocView.ViewFile(viewer_string)
+ End If
+ Else
+ PdfControls_visible(False)
+ Me.Size = My.Settings.frmValidatorSize
+ pdfxchange = False
+ sumatra = False
+ DocView = Nothing
+ DocView = CreateObject("WMPViewXNG.Viewer")
+ ' open the viewer
+ viewer_string = aktivesDokument.aPath.ToString
+ DocView.ViewFile(viewer_string)
+ End If
+ End Sub
Sub Show_Email()
Try
Me.grpBetreff.Dock = DockStyle.Top
@@ -1952,36 +1966,116 @@ Public Class frmValidator
'TBPM_PROFILE_FILESTableAdapter.CmdSETWORK(False, "", Document_ID)
''Das Dokument
'TBPM_PROFILE_FILESTableAdapter.CmdSetEdit(Document_ID)
+ Dim WORK_HISTORY_ENTRY = Nothing
- Close_document_viewer()
+ Try
+ WORK_HISTORY_ENTRY = DTPROFIL.Rows(0).Item("WORK_HISTORY_ENTRY")
+ If IsDBNull(WORK_HISTORY_ENTRY) Then
+ WORK_HISTORY_ENTRY = Nothing
+ End If
+ Catch ex As Exception
+ WORK_HISTORY_ENTRY = Nothing
+ End Try
- 'wenn Move2Folder aktiviert wurde
- If Move2Folder <> "" Then
- idxerr_message = allgFunk.Move2Folder(Document_Path, Move2Folder, CURRENT_ProfilGUID)
- If idxerr_message <> "" Then
- My.Settings.errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message
- My.Settings.Save()
- frmError.ShowDialog()
- _error = True
+ If Not IsNothing(WORK_HISTORY_ENTRY) Then
+ If WORK_HISTORY_ENTRY <> String.Empty Then
+ Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
+ ' einen Regulären Ausdruck laden
+ Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
+ ' die Vorkommen im SQL-String auslesen
+ Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(WORK_HISTORY_ENTRY)
+ '####
+ ' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
+ For Each element As System.Text.RegularExpressions.Match In elemente
+ Try
+ If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX WORK_HISTORY_ENTRY: " & element.Value, False)
+ Dim CTRL_ID = element.Value.Substring(2, element.Value.Length - 3)
+ CTRL_ID = CTRL_ID.Replace("CTRLID", "")
+ Dim value_from_control
+ For Each inctrl As Control In Me.pnldesigner.Controls
+ If IsNothing(inctrl.Tag) Then
+ Continue For
+ End If
+ If inctrl.Tag = CTRL_ID Then
+ '######
+ Dim Type As String = inctrl.GetType.ToString
+ Select Case Type
+ Case "System.Windows.Forms.TextBox"
+ Try
+ value_from_control = inctrl.Text
+ Catch ex As Exception
+ value_from_control = String.Empty
+ End Try
+
+ Case "System.Windows.Forms.ComboBox"
+ Dim cmb As ComboBox = inctrl
+ Try
+ value_from_control = cmb.SelectedValue
+ Catch ex As Exception
+ value_from_control = String.Empty
+ End Try
+ Case "System.Windows.Forms.DateTimePicker"
+ Dim dtp As DateTimePicker = inctrl
+ Try
+ value_from_control = dtp.Value.ToString
+ Catch ex As Exception
+ value_from_control = String.Empty
+ End Try
+
+ Case "System.Windows.Forms.CheckBox"
+ Dim chk As CheckBox = inctrl
+ Try
+ value_from_control = chk.Checked
+ Catch ex As Exception
+ value_from_control = String.Empty
+ End Try
+ End Select
+
+ End If
+ Next
+ If Not IsNothing(value_from_control) And value_from_control <> String.Empty Then
+ WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace(element.Value, value_from_control)
+ End If
+ Catch ex As Exception
+ ClassLogger.Add("Unexpected Error in Checking control values for WORK_HISTORY_ENTRY - ERROR: " & ex.Message)
+ End Try
+ Next
+ Else
+ WORK_HISTORY_ENTRY = ""
End If
End If
- 'Validierungsfile löschen wenn vorhanden
- allgFunk.Delete_xffres(Document_Path)
- If LogErrorsOnly = False Then ClassLogger.Add(" >> Delete_xffres ausgeführt", False)
- If LogErrorsOnly = False Then ClassLogger.Add(" >> All Input clear", False)
- Anzahl_validierte_Dok += 1
- 'tstrlbl_Info.Text = "Anzahl Dateien: " & TBPM_PROFILE_FILESTableAdapter.cmdGet_Anzahl(PROFIL_ID)
- If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl hochgesetzt", False)
- If LogErrorsOnly = False Then ClassLogger.Add(" >> Validierung erfolgreich abgeschlossen", False)
- ClassLogger.Add("", False)
+ sql = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY) VALUES ({0},{1},{'2'})", CURRENT_ProfilGUID, CURRENT_DOC_ID, Environment.UserName)
+ ClassDatabase.Execute_non_Query(sql)
+ Close_document_viewer()
- 'Das nächste Dokument laden
- Load_Next_Document(False)
- set_foreground()
- If first_control Is Nothing = False Then first_control.Focus()
- End If
+ 'wenn Move2Folder aktiviert wurde
+ If Move2Folder <> "" Then
+ idxerr_message = allgFunk.Move2Folder(Document_Path, Move2Folder, CURRENT_ProfilGUID)
+ If idxerr_message <> "" Then
+ My.Settings.errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message
+ My.Settings.Save()
+ frmError.ShowDialog()
+ _error = True
+ End If
+ End If
+ 'Validierungsfile löschen wenn vorhanden
+ allgFunk.Delete_xffres(Document_Path)
+ If LogErrorsOnly = False Then ClassLogger.Add(" >> Delete_xffres ausgeführt", False)
+ If LogErrorsOnly = False Then ClassLogger.Add(" >> All Input clear", False)
+ Anzahl_validierte_Dok += 1
+ 'tstrlbl_Info.Text = "Anzahl Dateien: " & TBPM_PROFILE_FILESTableAdapter.cmdGet_Anzahl(PROFIL_ID)
+ If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl hochgesetzt", False)
+ If LogErrorsOnly = False Then ClassLogger.Add(" >> Validierung erfolgreich abgeschlossen", False)
+ ClassLogger.Add("", False)
+
+ 'Das nächste Dokument laden
+ Load_Next_Document(False)
+
+ set_foreground()
+ If first_control Is Nothing = False Then first_control.Focus()
+ End If
Catch ex As Exception
My.Settings.errormessage = "Unvorhergesehener Fehler bei Abschluss:" & ex.Message
@@ -2514,7 +2608,7 @@ Public Class frmValidator
End If
End Sub
- Private Sub btnNavigatornext_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles btnNavigatornext.MouseDown
+ Private Sub btnNavigatornext_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Left Then
navStep = "next"
End If
@@ -2547,8 +2641,7 @@ Public Class frmValidator
End Sub
-
- Private Sub btnNavigatornext_Click(sender As System.Object, e As System.EventArgs) Handles btnNavigatornext.Click
+ Sub Datei_ueberspringen()
Try
If LogErrorsOnly = False Then ClassLogger.Add(" >> Dokument überspringen", False)
Close_document_viewer()
@@ -2562,10 +2655,9 @@ Public Class frmValidator
Catch ex As Exception
MsgBox("Fehler bei Überspringen:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
-
End Sub
- Private Sub btnDelete_Click(sender As System.Object, e As System.EventArgs) Handles btnDelete.Click
+ Private Sub delete_active_File()
Try
Dim result As MsgBoxResult
result = MessageBox.Show("Sind Sie sicher dass Sie dieses Dokument unwiderruflich löschen wollen?" & vbNewLine & "Danach wird die nächste Datei angezeigt!", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
@@ -2615,7 +2707,7 @@ Public Class frmValidator
Private Const SEE_MASK_NOCLOSEPROCESS = &H40
Private Const SEE_MASK_FLAG_NO_UI = &H400
Public Const SW_SHOW As Short = 5
- _
+
Public Shared Function ShellExecuteEx(ByRef lpExecInfo As SHELLEXECUTEINFO) As Boolean
End Function
Public Structure SHELLEXECUTEINFO
@@ -2699,10 +2791,11 @@ Public Class frmValidator
Private Sub PdfViewer1_ZoomChanged_1(sender As Object, e As DevExpress.XtraPdfViewer.PdfZoomChangedEventArgs) Handles PdfViewer1.ZoomChanged
If Not PdfViewer1.ZoomMode = DevExpress.XtraPdfViewer.PdfZoomMode.Custom Then
- SaveMySettingsValue("PDFViewer_ZoomMode", PdfViewer1.ZoomMode)
- PDFViewer_ZoomMode = PdfViewer1.ZoomMode
- End If
+ End If
+ Dim sdds = PdfViewer1.ZoomFactor
+ SaveMySettingsValue("PDFViewer_ZoomMode", PdfViewer1.ZoomFactor)
+ PDFViewer_ZoomMode = PdfViewer1.ZoomFactor
End Sub
Private Sub ToolStripDropDownButton1_Click(sender As Object, e As EventArgs) Handles ToolStripDropDownButton1.Click
@@ -2714,10 +2807,21 @@ Public Class frmValidator
btnSave.Enabled = False
Abschluss()
btnSave.Enabled = True
+ ElseIf e.KeyCode = Keys.F4 Then
+ Datei_ueberspringen()
End If
End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs)
+ Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButtonJumpFile.Click
+ Datei_ueberspringen()
+ End Sub
+ Private Sub ToolStripButtonDeleteFile_Click(sender As Object, e As EventArgs) Handles ToolStripButtonDeleteFile.Click
+ delete_active_File()
+ End Sub
+
+ Private Sub ToolStripButtonAnnotation_Click(sender As Object, e As EventArgs) Handles ToolStripButtonAnnotation.Click
+ frmAnnotations.ShowDialog()
+ load_viewer()
End Sub
End Class
\ No newline at end of file
diff --git a/app/Setup/Product.wxs b/app/Setup/Product.wxs
index c744839..23b0c39 100644
--- a/app/Setup/Product.wxs
+++ b/app/Setup/Product.wxs
@@ -58,13 +58,17 @@
+
+
+
+
@@ -78,7 +82,11 @@
-
+
+
+
+
+
@@ -128,6 +136,7 @@
+