From 1b6f8c97f9340e7224d1c605c76ea8f4bbb77983 Mon Sep 17 00:00:00 2001
From: MaxED <j.maxed@gmail.com>
Date: Wed, 3 Oct 2012 18:46:13 +0000
Subject: [PATCH] Builder 1.13: UDMF: changing brightness of a wall or ceiling
 in GZDoom Visual mode will change brightness of selected surface, not sector
 brightness. Sector and Sidedef info panels show additional info if a map is
 in UDMF format. Fixed: GZDoom menu panel wasn't updated when a map was opened
 via "recent files" item click.

---
 .../Controls/LinedefInfoPanel.Designer.cs     | 674 +++++++++++++++---
 Source/Core/Controls/LinedefInfoPanel.cs      | 222 +++++-
 Source/Core/Controls/LinedefInfoPanel.resx    |  51 --
 .../Core/Controls/SectorInfoPanel.Designer.cs | 314 ++++++--
 Source/Core/Controls/SectorInfoPanel.cs       | 160 +++++
 Source/Core/Controls/SectorInfoPanel.resx     |  60 --
 Source/Core/GZBuilder/GZGeneral.cs            |   4 +-
 Source/Core/General/General.cs                |   3 +
 Source/Core/General/StepsList.cs              |  12 +
 Source/Core/Resources/GZDB2.ico               | Bin 11502 -> 24358 bytes
 Source/Core/Resources/Splash3_trans.png       | Bin 234493 -> 234542 bytes
 Source/Core/Windows/MainForm.Designer.cs      |   4 +-
 Source/Core/Windows/MainForm.resx             | 604 ++++++++++------
 .../GZDoomEditing/General/UndoGroup.cs        |   1 +
 .../VisualModes/BaseVisualGeometrySector.cs   |  20 +-
 .../VisualModes/BaseVisualGeometrySidedef.cs  |  20 +-
 .../VisualModes/BaseVisualMode.cs             | 100 ++-
 .../VisualModes/VisualCeiling.cs              |  36 +-
 .../GZDoomEditing/VisualModes/VisualLower.cs  |  31 +
 .../VisualModes/VisualMiddleDouble.cs         |  31 +
 .../VisualModes/VisualMiddleSingle.cs         |  31 +
 .../GZDoomEditing/VisualModes/VisualUpper.cs  |  31 +
 22 files changed, 1838 insertions(+), 571 deletions(-)

diff --git a/Source/Core/Controls/LinedefInfoPanel.Designer.cs b/Source/Core/Controls/LinedefInfoPanel.Designer.cs
index 093976321..c6327c33b 100644
--- a/Source/Core/Controls/LinedefInfoPanel.Designer.cs
+++ b/Source/Core/Controls/LinedefInfoPanel.Designer.cs
@@ -55,27 +55,79 @@ namespace CodeImp.DoomBuilder.Controls
 			this.action = new System.Windows.Forms.Label();
 			this.frontpanel = new System.Windows.Forms.GroupBox();
 			this.frontsector = new System.Windows.Forms.Label();
-			this.frontlowname = new System.Windows.Forms.Label();
-			this.frontlowtex = new System.Windows.Forms.Panel();
-			this.frontmidtex = new System.Windows.Forms.Panel();
-			this.fronthighname = new System.Windows.Forms.Label();
+			this.flowLayoutPanelFront = new System.Windows.Forms.FlowLayoutPanel();
+			this.panel4 = new System.Windows.Forms.Panel();
 			this.fronthightex = new System.Windows.Forms.Panel();
+			this.fronthighname = new System.Windows.Forms.Label();
+			this.panelUDMFFrontTop = new System.Windows.Forms.Panel();
+			this.frontTopUDMFScale = new System.Windows.Forms.Label();
+			this.frontTopUDMFOffset = new System.Windows.Forms.Label();
+			this.frontTopUDMFScaleLabel = new System.Windows.Forms.Label();
+			this.frontTopUDMFOffsetLabel = new System.Windows.Forms.Label();
+			this.panel7 = new System.Windows.Forms.Panel();
+			this.frontmidtex = new System.Windows.Forms.Panel();
 			this.frontmidname = new System.Windows.Forms.Label();
+			this.panelUDMFFrontMid = new System.Windows.Forms.Panel();
+			this.frontMidUDMFScale = new System.Windows.Forms.Label();
+			this.frontMidUDMFOffset = new System.Windows.Forms.Label();
+			this.frontMidUDMFScaleLabel = new System.Windows.Forms.Label();
+			this.frontMidUDMFOffsetLabel = new System.Windows.Forms.Label();
+			this.panelFrontLowTex = new System.Windows.Forms.Panel();
+			this.frontlowtex = new System.Windows.Forms.Panel();
+			this.frontlowname = new System.Windows.Forms.Label();
+			this.panelUDMFFrontBottom = new System.Windows.Forms.Panel();
+			this.frontBottomUDMFScale = new System.Windows.Forms.Label();
+			this.frontBottomUDMFOffset = new System.Windows.Forms.Label();
+			this.frontBottomUDMFScaleLabel = new System.Windows.Forms.Label();
+			this.frontBottomUDMFOffsetLabel = new System.Windows.Forms.Label();
 			this.backpanel = new System.Windows.Forms.GroupBox();
 			this.backsector = new System.Windows.Forms.Label();
-			this.backlowname = new System.Windows.Forms.Label();
-			this.backlowtex = new System.Windows.Forms.Panel();
-			this.backmidname = new System.Windows.Forms.Label();
-			this.backmidtex = new System.Windows.Forms.Panel();
-			this.backhighname = new System.Windows.Forms.Label();
+			this.flowLayoutPanelBack = new System.Windows.Forms.FlowLayoutPanel();
+			this.panel1 = new System.Windows.Forms.Panel();
 			this.backhightex = new System.Windows.Forms.Panel();
+			this.backhighname = new System.Windows.Forms.Label();
+			this.panelUDMFBackTop = new System.Windows.Forms.Panel();
+			this.backTopUDMFScale = new System.Windows.Forms.Label();
+			this.backTopUDMFOffset = new System.Windows.Forms.Label();
+			this.backTopUDMFScaleLabel = new System.Windows.Forms.Label();
+			this.backTopUDMFOffsetLabel = new System.Windows.Forms.Label();
+			this.panel2 = new System.Windows.Forms.Panel();
+			this.backmidtex = new System.Windows.Forms.Panel();
+			this.backmidname = new System.Windows.Forms.Label();
+			this.panelUDMFBackMid = new System.Windows.Forms.Panel();
+			this.backMidUDMFScale = new System.Windows.Forms.Label();
+			this.backMidUDMFOffset = new System.Windows.Forms.Label();
+			this.backMidUDMFScaleLabel = new System.Windows.Forms.Label();
+			this.backMidUDMFOffsetLabel = new System.Windows.Forms.Label();
+			this.panelBackLowTex = new System.Windows.Forms.Panel();
+			this.backlowtex = new System.Windows.Forms.Panel();
+			this.backlowname = new System.Windows.Forms.Label();
+			this.panelUDMFBackBottom = new System.Windows.Forms.Panel();
+			this.backBottomUDMFScale = new System.Windows.Forms.Label();
+			this.backBottomUDMFOffset = new System.Windows.Forms.Label();
+			this.backBottomUDMFScaleLabel = new System.Windows.Forms.Label();
+			this.backBottomUDMFOffsetLabel = new System.Windows.Forms.Label();
 			label1 = new System.Windows.Forms.Label();
 			label4 = new System.Windows.Forms.Label();
 			label3 = new System.Windows.Forms.Label();
 			label2 = new System.Windows.Forms.Label();
 			this.infopanel.SuspendLayout();
 			this.frontpanel.SuspendLayout();
+			this.flowLayoutPanelFront.SuspendLayout();
+			this.panel4.SuspendLayout();
+			this.panelUDMFFrontTop.SuspendLayout();
+			this.panel7.SuspendLayout();
+			this.panelUDMFFrontMid.SuspendLayout();
+			this.panelFrontLowTex.SuspendLayout();
+			this.panelUDMFFrontBottom.SuspendLayout();
 			this.backpanel.SuspendLayout();
+			this.flowLayoutPanelBack.SuspendLayout();
+			this.panel1.SuspendLayout();
+			this.panelUDMFBackTop.SuspendLayout();
+			this.panel2.SuspendLayout();
+			this.panelUDMFBackMid.SuspendLayout();
+			this.panelBackLowTex.SuspendLayout();
+			this.panelUDMFBackBottom.SuspendLayout();
 			this.SuspendLayout();
 			// 
 			// label1
@@ -92,7 +144,7 @@ namespace CodeImp.DoomBuilder.Controls
 			label4.AutoSize = true;
 			label4.Location = new System.Drawing.Point(24, 77);
 			label4.Name = "label4";
-			label4.Size = new System.Drawing.Size(28, 14);
+			label4.Size = new System.Drawing.Size(27, 14);
 			label4.TabIndex = 4;
 			label4.Text = "Tag:";
 			// 
@@ -287,12 +339,12 @@ namespace CodeImp.DoomBuilder.Controls
 			// 
 			// backoffsetlabel
 			// 
-			this.backoffsetlabel.AutoSize = true;
-			this.backoffsetlabel.Location = new System.Drawing.Point(111, 77);
+			this.backoffsetlabel.Location = new System.Drawing.Point(107, 77);
 			this.backoffsetlabel.Name = "backoffsetlabel";
-			this.backoffsetlabel.Size = new System.Drawing.Size(66, 14);
+			this.backoffsetlabel.Size = new System.Drawing.Size(70, 14);
 			this.backoffsetlabel.TabIndex = 14;
 			this.backoffsetlabel.Text = "Back offset:";
+			this.backoffsetlabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// frontoffset
 			// 
@@ -305,12 +357,12 @@ namespace CodeImp.DoomBuilder.Controls
 			// 
 			// frontoffsetlabel
 			// 
-			this.frontoffsetlabel.AutoSize = true;
-			this.frontoffsetlabel.Location = new System.Drawing.Point(110, 58);
+			this.frontoffsetlabel.Location = new System.Drawing.Point(107, 58);
 			this.frontoffsetlabel.Name = "frontoffsetlabel";
-			this.frontoffsetlabel.Size = new System.Drawing.Size(67, 14);
+			this.frontoffsetlabel.Size = new System.Drawing.Size(70, 14);
 			this.frontoffsetlabel.TabIndex = 8;
 			this.frontoffsetlabel.Text = "Front offset:";
+			this.frontoffsetlabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// tag
 			// 
@@ -353,15 +405,10 @@ namespace CodeImp.DoomBuilder.Controls
 			// frontpanel
 			// 
 			this.frontpanel.Controls.Add(this.frontsector);
-			this.frontpanel.Controls.Add(this.frontlowname);
-			this.frontpanel.Controls.Add(this.frontlowtex);
-			this.frontpanel.Controls.Add(this.frontmidtex);
-			this.frontpanel.Controls.Add(this.fronthighname);
-			this.frontpanel.Controls.Add(this.fronthightex);
-			this.frontpanel.Controls.Add(this.frontmidname);
+			this.frontpanel.Controls.Add(this.flowLayoutPanelFront);
 			this.frontpanel.Location = new System.Drawing.Point(467, 0);
 			this.frontpanel.Name = "frontpanel";
-			this.frontpanel.Size = new System.Drawing.Size(257, 100);
+			this.frontpanel.Size = new System.Drawing.Size(515, 100);
 			this.frontpanel.TabIndex = 2;
 			this.frontpanel.TabStop = false;
 			this.frontpanel.Text = " Front ";
@@ -376,41 +423,45 @@ namespace CodeImp.DoomBuilder.Controls
 			this.frontsector.TabIndex = 6;
 			this.frontsector.Text = "Sector 666";
 			// 
-			// frontlowname
-			// 
-			this.frontlowname.BackColor = System.Drawing.SystemColors.Control;
-			this.frontlowname.Location = new System.Drawing.Point(170, 80);
-			this.frontlowname.Name = "frontlowname";
-			this.frontlowname.Size = new System.Drawing.Size(82, 13);
-			this.frontlowname.TabIndex = 5;
-			this.frontlowname.Text = "BROWNHUG";
-			this.frontlowname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
-			this.frontlowname.UseMnemonic = false;
-			// 
-			// frontlowtex
+			// flowLayoutPanelFront
+			// 
+			this.flowLayoutPanelFront.Controls.Add(this.panel4);
+			this.flowLayoutPanelFront.Controls.Add(this.panelUDMFFrontTop);
+			this.flowLayoutPanelFront.Controls.Add(this.panel7);
+			this.flowLayoutPanelFront.Controls.Add(this.panelUDMFFrontMid);
+			this.flowLayoutPanelFront.Controls.Add(this.panelFrontLowTex);
+			this.flowLayoutPanelFront.Controls.Add(this.panelUDMFFrontBottom);
+			this.flowLayoutPanelFront.Location = new System.Drawing.Point(6, 14);
+			this.flowLayoutPanelFront.Margin = new System.Windows.Forms.Padding(0);
+			this.flowLayoutPanelFront.Name = "flowLayoutPanelFront";
+			this.flowLayoutPanelFront.Size = new System.Drawing.Size(503, 80);
+			this.flowLayoutPanelFront.TabIndex = 13;
+			this.flowLayoutPanelFront.WrapContents = false;
+			// 
+			// panel4
+			// 
+			this.panel4.Controls.Add(this.fronthightex);
+			this.panel4.Controls.Add(this.fronthighname);
+			this.panel4.Location = new System.Drawing.Point(0, 3);
+			this.panel4.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+			this.panel4.Name = "panel4";
+			this.panel4.Size = new System.Drawing.Size(90, 76);
+			this.panel4.TabIndex = 5;
 			// 
-			this.frontlowtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.frontlowtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-			this.frontlowtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.frontlowtex.Location = new System.Drawing.Point(177, 19);
-			this.frontlowtex.Name = "frontlowtex";
-			this.frontlowtex.Size = new System.Drawing.Size(68, 60);
-			this.frontlowtex.TabIndex = 4;
-			// 
-			// frontmidtex
+			// fronthightex
 			// 
-			this.frontmidtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.frontmidtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-			this.frontmidtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.frontmidtex.Location = new System.Drawing.Point(95, 19);
-			this.frontmidtex.Name = "frontmidtex";
-			this.frontmidtex.Size = new System.Drawing.Size(68, 60);
-			this.frontmidtex.TabIndex = 2;
+			this.fronthightex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.fronthightex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.fronthightex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.fronthightex.Location = new System.Drawing.Point(11, 2);
+			this.fronthightex.Name = "fronthightex";
+			this.fronthightex.Size = new System.Drawing.Size(68, 60);
+			this.fronthightex.TabIndex = 0;
 			// 
 			// fronthighname
 			// 
 			this.fronthighname.BackColor = System.Drawing.SystemColors.Control;
-			this.fronthighname.Location = new System.Drawing.Point(6, 80);
+			this.fronthighname.Location = new System.Drawing.Point(4, 63);
 			this.fronthighname.Name = "fronthighname";
 			this.fronthighname.Size = new System.Drawing.Size(82, 13);
 			this.fronthighname.TabIndex = 1;
@@ -418,20 +469,74 @@ namespace CodeImp.DoomBuilder.Controls
 			this.fronthighname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
 			this.fronthighname.UseMnemonic = false;
 			// 
-			// fronthightex
+			// panelUDMFFrontTop
 			// 
-			this.fronthightex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.fronthightex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-			this.fronthightex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.fronthightex.Location = new System.Drawing.Point(13, 19);
-			this.fronthightex.Name = "fronthightex";
-			this.fronthightex.Size = new System.Drawing.Size(68, 60);
-			this.fronthightex.TabIndex = 0;
+			this.panelUDMFFrontTop.Controls.Add(this.frontTopUDMFScale);
+			this.panelUDMFFrontTop.Controls.Add(this.frontTopUDMFOffset);
+			this.panelUDMFFrontTop.Controls.Add(this.frontTopUDMFScaleLabel);
+			this.panelUDMFFrontTop.Controls.Add(this.frontTopUDMFOffsetLabel);
+			this.panelUDMFFrontTop.Location = new System.Drawing.Point(90, 0);
+			this.panelUDMFFrontTop.Margin = new System.Windows.Forms.Padding(0);
+			this.panelUDMFFrontTop.Name = "panelUDMFFrontTop";
+			this.panelUDMFFrontTop.Size = new System.Drawing.Size(64, 76);
+			this.panelUDMFFrontTop.TabIndex = 6;
+			// 
+			// frontTopUDMFScale
+			// 
+			this.frontTopUDMFScale.Location = new System.Drawing.Point(0, 61);
+			this.frontTopUDMFScale.Name = "frontTopUDMFScale";
+			this.frontTopUDMFScale.Size = new System.Drawing.Size(64, 13);
+			this.frontTopUDMFScale.TabIndex = 10;
+			this.frontTopUDMFScale.Text = "-1.6, -1.6";
+			// 
+			// frontTopUDMFOffset
+			// 
+			this.frontTopUDMFOffset.Location = new System.Drawing.Point(0, 20);
+			this.frontTopUDMFOffset.Name = "frontTopUDMFOffset";
+			this.frontTopUDMFOffset.Size = new System.Drawing.Size(64, 13);
+			this.frontTopUDMFOffset.TabIndex = 9;
+			this.frontTopUDMFOffset.Text = "-100, -100";
+			// 
+			// frontTopUDMFScaleLabel
+			// 
+			this.frontTopUDMFScaleLabel.Location = new System.Drawing.Point(0, 47);
+			this.frontTopUDMFScaleLabel.Name = "frontTopUDMFScaleLabel";
+			this.frontTopUDMFScaleLabel.Size = new System.Drawing.Size(64, 14);
+			this.frontTopUDMFScaleLabel.TabIndex = 8;
+			this.frontTopUDMFScaleLabel.Text = "Scale:";
+			// 
+			// frontTopUDMFOffsetLabel
+			// 
+			this.frontTopUDMFOffsetLabel.Location = new System.Drawing.Point(0, 6);
+			this.frontTopUDMFOffsetLabel.Name = "frontTopUDMFOffsetLabel";
+			this.frontTopUDMFOffsetLabel.Size = new System.Drawing.Size(64, 13);
+			this.frontTopUDMFOffsetLabel.TabIndex = 7;
+			this.frontTopUDMFOffsetLabel.Text = "Offset:";
+			// 
+			// panel7
+			// 
+			this.panel7.Controls.Add(this.frontmidtex);
+			this.panel7.Controls.Add(this.frontmidname);
+			this.panel7.Location = new System.Drawing.Point(154, 3);
+			this.panel7.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+			this.panel7.Name = "panel7";
+			this.panel7.Size = new System.Drawing.Size(90, 76);
+			this.panel7.TabIndex = 7;
+			// 
+			// frontmidtex
+			// 
+			this.frontmidtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.frontmidtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.frontmidtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.frontmidtex.Location = new System.Drawing.Point(11, 2);
+			this.frontmidtex.Name = "frontmidtex";
+			this.frontmidtex.Size = new System.Drawing.Size(68, 60);
+			this.frontmidtex.TabIndex = 2;
 			// 
 			// frontmidname
 			// 
 			this.frontmidname.BackColor = System.Drawing.SystemColors.Control;
-			this.frontmidname.Location = new System.Drawing.Point(88, 80);
+			this.frontmidname.Location = new System.Drawing.Point(4, 63);
 			this.frontmidname.Name = "frontmidname";
 			this.frontmidname.Size = new System.Drawing.Size(82, 13);
 			this.frontmidname.TabIndex = 3;
@@ -439,18 +544,132 @@ namespace CodeImp.DoomBuilder.Controls
 			this.frontmidname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
 			this.frontmidname.UseMnemonic = false;
 			// 
+			// panelUDMFFrontMid
+			// 
+			this.panelUDMFFrontMid.Controls.Add(this.frontMidUDMFScale);
+			this.panelUDMFFrontMid.Controls.Add(this.frontMidUDMFOffset);
+			this.panelUDMFFrontMid.Controls.Add(this.frontMidUDMFScaleLabel);
+			this.panelUDMFFrontMid.Controls.Add(this.frontMidUDMFOffsetLabel);
+			this.panelUDMFFrontMid.Location = new System.Drawing.Point(244, 0);
+			this.panelUDMFFrontMid.Margin = new System.Windows.Forms.Padding(0);
+			this.panelUDMFFrontMid.Name = "panelUDMFFrontMid";
+			this.panelUDMFFrontMid.Size = new System.Drawing.Size(64, 76);
+			this.panelUDMFFrontMid.TabIndex = 11;
+			// 
+			// frontMidUDMFScale
+			// 
+			this.frontMidUDMFScale.Location = new System.Drawing.Point(0, 61);
+			this.frontMidUDMFScale.Name = "frontMidUDMFScale";
+			this.frontMidUDMFScale.Size = new System.Drawing.Size(64, 13);
+			this.frontMidUDMFScale.TabIndex = 10;
+			this.frontMidUDMFScale.Text = "-1.6, -1.6";
+			// 
+			// frontMidUDMFOffset
+			// 
+			this.frontMidUDMFOffset.Location = new System.Drawing.Point(0, 20);
+			this.frontMidUDMFOffset.Name = "frontMidUDMFOffset";
+			this.frontMidUDMFOffset.Size = new System.Drawing.Size(64, 13);
+			this.frontMidUDMFOffset.TabIndex = 9;
+			this.frontMidUDMFOffset.Text = "-100, -100";
+			// 
+			// frontMidUDMFScaleLabel
+			// 
+			this.frontMidUDMFScaleLabel.Location = new System.Drawing.Point(0, 47);
+			this.frontMidUDMFScaleLabel.Name = "frontMidUDMFScaleLabel";
+			this.frontMidUDMFScaleLabel.Size = new System.Drawing.Size(64, 14);
+			this.frontMidUDMFScaleLabel.TabIndex = 8;
+			this.frontMidUDMFScaleLabel.Text = "Scale:";
+			// 
+			// frontMidUDMFOffsetLabel
+			// 
+			this.frontMidUDMFOffsetLabel.Location = new System.Drawing.Point(0, 6);
+			this.frontMidUDMFOffsetLabel.Name = "frontMidUDMFOffsetLabel";
+			this.frontMidUDMFOffsetLabel.Size = new System.Drawing.Size(64, 13);
+			this.frontMidUDMFOffsetLabel.TabIndex = 7;
+			this.frontMidUDMFOffsetLabel.Text = "Offset:";
+			// 
+			// panelFrontLowTex
+			// 
+			this.panelFrontLowTex.Controls.Add(this.frontlowtex);
+			this.panelFrontLowTex.Controls.Add(this.frontlowname);
+			this.panelFrontLowTex.Location = new System.Drawing.Point(308, 3);
+			this.panelFrontLowTex.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+			this.panelFrontLowTex.Name = "panelFrontLowTex";
+			this.panelFrontLowTex.Size = new System.Drawing.Size(90, 76);
+			this.panelFrontLowTex.TabIndex = 12;
+			// 
+			// frontlowtex
+			// 
+			this.frontlowtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.frontlowtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.frontlowtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.frontlowtex.Location = new System.Drawing.Point(11, 2);
+			this.frontlowtex.Name = "frontlowtex";
+			this.frontlowtex.Size = new System.Drawing.Size(68, 60);
+			this.frontlowtex.TabIndex = 4;
+			// 
+			// frontlowname
+			// 
+			this.frontlowname.BackColor = System.Drawing.SystemColors.Control;
+			this.frontlowname.Location = new System.Drawing.Point(4, 63);
+			this.frontlowname.Name = "frontlowname";
+			this.frontlowname.Size = new System.Drawing.Size(82, 13);
+			this.frontlowname.TabIndex = 5;
+			this.frontlowname.Text = "BROWNHUG";
+			this.frontlowname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+			this.frontlowname.UseMnemonic = false;
+			// 
+			// panelUDMFFrontBottom
+			// 
+			this.panelUDMFFrontBottom.Controls.Add(this.frontBottomUDMFScale);
+			this.panelUDMFFrontBottom.Controls.Add(this.frontBottomUDMFOffset);
+			this.panelUDMFFrontBottom.Controls.Add(this.frontBottomUDMFScaleLabel);
+			this.panelUDMFFrontBottom.Controls.Add(this.frontBottomUDMFOffsetLabel);
+			this.panelUDMFFrontBottom.Location = new System.Drawing.Point(398, 0);
+			this.panelUDMFFrontBottom.Margin = new System.Windows.Forms.Padding(0);
+			this.panelUDMFFrontBottom.Name = "panelUDMFFrontBottom";
+			this.panelUDMFFrontBottom.Size = new System.Drawing.Size(64, 76);
+			this.panelUDMFFrontBottom.TabIndex = 12;
+			// 
+			// frontBottomUDMFScale
+			// 
+			this.frontBottomUDMFScale.Location = new System.Drawing.Point(0, 61);
+			this.frontBottomUDMFScale.Name = "frontBottomUDMFScale";
+			this.frontBottomUDMFScale.Size = new System.Drawing.Size(64, 13);
+			this.frontBottomUDMFScale.TabIndex = 10;
+			this.frontBottomUDMFScale.Text = "-1.6, -1.6";
+			// 
+			// frontBottomUDMFOffset
+			// 
+			this.frontBottomUDMFOffset.Location = new System.Drawing.Point(0, 20);
+			this.frontBottomUDMFOffset.Name = "frontBottomUDMFOffset";
+			this.frontBottomUDMFOffset.Size = new System.Drawing.Size(64, 13);
+			this.frontBottomUDMFOffset.TabIndex = 9;
+			this.frontBottomUDMFOffset.Text = "-100, -100";
+			// 
+			// frontBottomUDMFScaleLabel
+			// 
+			this.frontBottomUDMFScaleLabel.Location = new System.Drawing.Point(0, 47);
+			this.frontBottomUDMFScaleLabel.Name = "frontBottomUDMFScaleLabel";
+			this.frontBottomUDMFScaleLabel.Size = new System.Drawing.Size(64, 14);
+			this.frontBottomUDMFScaleLabel.TabIndex = 8;
+			this.frontBottomUDMFScaleLabel.Text = "Scale:";
+			// 
+			// frontBottomUDMFOffsetLabel
+			// 
+			this.frontBottomUDMFOffsetLabel.Location = new System.Drawing.Point(0, 6);
+			this.frontBottomUDMFOffsetLabel.Name = "frontBottomUDMFOffsetLabel";
+			this.frontBottomUDMFOffsetLabel.Size = new System.Drawing.Size(64, 13);
+			this.frontBottomUDMFOffsetLabel.TabIndex = 7;
+			this.frontBottomUDMFOffsetLabel.Text = "Offset:";
+			// 
 			// backpanel
 			// 
 			this.backpanel.Controls.Add(this.backsector);
-			this.backpanel.Controls.Add(this.backlowname);
-			this.backpanel.Controls.Add(this.backlowtex);
-			this.backpanel.Controls.Add(this.backmidname);
-			this.backpanel.Controls.Add(this.backmidtex);
-			this.backpanel.Controls.Add(this.backhighname);
-			this.backpanel.Controls.Add(this.backhightex);
-			this.backpanel.Location = new System.Drawing.Point(730, 0);
+			this.backpanel.Controls.Add(this.flowLayoutPanelBack);
+			this.backpanel.Location = new System.Drawing.Point(988, 0);
 			this.backpanel.Name = "backpanel";
-			this.backpanel.Size = new System.Drawing.Size(257, 100);
+			this.backpanel.Size = new System.Drawing.Size(540, 100);
 			this.backpanel.TabIndex = 3;
 			this.backpanel.TabStop = false;
 			this.backpanel.Text = " Back ";
@@ -465,31 +684,120 @@ namespace CodeImp.DoomBuilder.Controls
 			this.backsector.TabIndex = 7;
 			this.backsector.Text = "Sector 666";
 			// 
-			// backlowname
+			// flowLayoutPanelBack
+			// 
+			this.flowLayoutPanelBack.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+			this.flowLayoutPanelBack.Controls.Add(this.panel1);
+			this.flowLayoutPanelBack.Controls.Add(this.panelUDMFBackTop);
+			this.flowLayoutPanelBack.Controls.Add(this.panel2);
+			this.flowLayoutPanelBack.Controls.Add(this.panelUDMFBackMid);
+			this.flowLayoutPanelBack.Controls.Add(this.panelBackLowTex);
+			this.flowLayoutPanelBack.Controls.Add(this.panelUDMFBackBottom);
+			this.flowLayoutPanelBack.Location = new System.Drawing.Point(6, 14);
+			this.flowLayoutPanelBack.Name = "flowLayoutPanelBack";
+			this.flowLayoutPanelBack.Size = new System.Drawing.Size(530, 80);
+			this.flowLayoutPanelBack.TabIndex = 4;
+			this.flowLayoutPanelBack.WrapContents = false;
+			// 
+			// panel1
+			// 
+			this.panel1.Controls.Add(this.backhightex);
+			this.panel1.Controls.Add(this.backhighname);
+			this.panel1.Location = new System.Drawing.Point(0, 3);
+			this.panel1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+			this.panel1.Name = "panel1";
+			this.panel1.Size = new System.Drawing.Size(90, 76);
+			this.panel1.TabIndex = 5;
 			// 
-			this.backlowname.BackColor = System.Drawing.SystemColors.Control;
-			this.backlowname.Location = new System.Drawing.Point(170, 80);
-			this.backlowname.Name = "backlowname";
-			this.backlowname.Size = new System.Drawing.Size(82, 13);
-			this.backlowname.TabIndex = 5;
-			this.backlowname.Text = "BROWNHUG";
-			this.backlowname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
-			this.backlowname.UseMnemonic = false;
+			// backhightex
 			// 
-			// backlowtex
+			this.backhightex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.backhightex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.backhightex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.backhightex.Location = new System.Drawing.Point(11, 2);
+			this.backhightex.Name = "backhightex";
+			this.backhightex.Size = new System.Drawing.Size(68, 60);
+			this.backhightex.TabIndex = 0;
 			// 
-			this.backlowtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.backlowtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-			this.backlowtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.backlowtex.Location = new System.Drawing.Point(177, 19);
-			this.backlowtex.Name = "backlowtex";
-			this.backlowtex.Size = new System.Drawing.Size(68, 60);
-			this.backlowtex.TabIndex = 4;
+			// backhighname
+			// 
+			this.backhighname.BackColor = System.Drawing.SystemColors.Control;
+			this.backhighname.Location = new System.Drawing.Point(4, 63);
+			this.backhighname.Name = "backhighname";
+			this.backhighname.Size = new System.Drawing.Size(82, 13);
+			this.backhighname.TabIndex = 1;
+			this.backhighname.Text = "BROWNHUG";
+			this.backhighname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+			this.backhighname.UseMnemonic = false;
+			// 
+			// panelUDMFBackTop
+			// 
+			this.panelUDMFBackTop.Controls.Add(this.backTopUDMFScale);
+			this.panelUDMFBackTop.Controls.Add(this.backTopUDMFOffset);
+			this.panelUDMFBackTop.Controls.Add(this.backTopUDMFScaleLabel);
+			this.panelUDMFBackTop.Controls.Add(this.backTopUDMFOffsetLabel);
+			this.panelUDMFBackTop.Location = new System.Drawing.Point(90, 0);
+			this.panelUDMFBackTop.Margin = new System.Windows.Forms.Padding(0);
+			this.panelUDMFBackTop.Name = "panelUDMFBackTop";
+			this.panelUDMFBackTop.Size = new System.Drawing.Size(64, 76);
+			this.panelUDMFBackTop.TabIndex = 6;
+			// 
+			// backTopUDMFScale
+			// 
+			this.backTopUDMFScale.Location = new System.Drawing.Point(0, 61);
+			this.backTopUDMFScale.Name = "backTopUDMFScale";
+			this.backTopUDMFScale.Size = new System.Drawing.Size(64, 13);
+			this.backTopUDMFScale.TabIndex = 10;
+			this.backTopUDMFScale.Text = "-1.6, -1.6";
+			// 
+			// backTopUDMFOffset
+			// 
+			this.backTopUDMFOffset.Location = new System.Drawing.Point(0, 20);
+			this.backTopUDMFOffset.Name = "backTopUDMFOffset";
+			this.backTopUDMFOffset.Size = new System.Drawing.Size(64, 13);
+			this.backTopUDMFOffset.TabIndex = 9;
+			this.backTopUDMFOffset.Text = "-100, -100";
+			// 
+			// backTopUDMFScaleLabel
+			// 
+			this.backTopUDMFScaleLabel.Location = new System.Drawing.Point(0, 47);
+			this.backTopUDMFScaleLabel.Name = "backTopUDMFScaleLabel";
+			this.backTopUDMFScaleLabel.Size = new System.Drawing.Size(64, 14);
+			this.backTopUDMFScaleLabel.TabIndex = 8;
+			this.backTopUDMFScaleLabel.Text = "Scale:";
+			// 
+			// backTopUDMFOffsetLabel
+			// 
+			this.backTopUDMFOffsetLabel.Location = new System.Drawing.Point(0, 6);
+			this.backTopUDMFOffsetLabel.Name = "backTopUDMFOffsetLabel";
+			this.backTopUDMFOffsetLabel.Size = new System.Drawing.Size(64, 13);
+			this.backTopUDMFOffsetLabel.TabIndex = 7;
+			this.backTopUDMFOffsetLabel.Text = "Offset:";
+			// 
+			// panel2
+			// 
+			this.panel2.Controls.Add(this.backmidtex);
+			this.panel2.Controls.Add(this.backmidname);
+			this.panel2.Location = new System.Drawing.Point(154, 3);
+			this.panel2.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+			this.panel2.Name = "panel2";
+			this.panel2.Size = new System.Drawing.Size(90, 76);
+			this.panel2.TabIndex = 7;
+			// 
+			// backmidtex
+			// 
+			this.backmidtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.backmidtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.backmidtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.backmidtex.Location = new System.Drawing.Point(11, 2);
+			this.backmidtex.Name = "backmidtex";
+			this.backmidtex.Size = new System.Drawing.Size(68, 60);
+			this.backmidtex.TabIndex = 2;
 			// 
 			// backmidname
 			// 
 			this.backmidname.BackColor = System.Drawing.SystemColors.Control;
-			this.backmidname.Location = new System.Drawing.Point(88, 80);
+			this.backmidname.Location = new System.Drawing.Point(4, 63);
 			this.backmidname.Name = "backmidname";
 			this.backmidname.Size = new System.Drawing.Size(82, 13);
 			this.backmidname.TabIndex = 3;
@@ -497,36 +805,124 @@ namespace CodeImp.DoomBuilder.Controls
 			this.backmidname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
 			this.backmidname.UseMnemonic = false;
 			// 
-			// backmidtex
+			// panelUDMFBackMid
 			// 
-			this.backmidtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.backmidtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-			this.backmidtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.backmidtex.Location = new System.Drawing.Point(95, 19);
-			this.backmidtex.Name = "backmidtex";
-			this.backmidtex.Size = new System.Drawing.Size(68, 60);
-			this.backmidtex.TabIndex = 2;
+			this.panelUDMFBackMid.Controls.Add(this.backMidUDMFScale);
+			this.panelUDMFBackMid.Controls.Add(this.backMidUDMFOffset);
+			this.panelUDMFBackMid.Controls.Add(this.backMidUDMFScaleLabel);
+			this.panelUDMFBackMid.Controls.Add(this.backMidUDMFOffsetLabel);
+			this.panelUDMFBackMid.Location = new System.Drawing.Point(244, 0);
+			this.panelUDMFBackMid.Margin = new System.Windows.Forms.Padding(0);
+			this.panelUDMFBackMid.Name = "panelUDMFBackMid";
+			this.panelUDMFBackMid.Size = new System.Drawing.Size(64, 76);
+			this.panelUDMFBackMid.TabIndex = 11;
 			// 
-			// backhighname
+			// backMidUDMFScale
 			// 
-			this.backhighname.BackColor = System.Drawing.SystemColors.Control;
-			this.backhighname.Location = new System.Drawing.Point(6, 80);
-			this.backhighname.Name = "backhighname";
-			this.backhighname.Size = new System.Drawing.Size(82, 13);
-			this.backhighname.TabIndex = 1;
-			this.backhighname.Text = "BROWNHUG";
-			this.backhighname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
-			this.backhighname.UseMnemonic = false;
+			this.backMidUDMFScale.Location = new System.Drawing.Point(0, 61);
+			this.backMidUDMFScale.Name = "backMidUDMFScale";
+			this.backMidUDMFScale.Size = new System.Drawing.Size(64, 13);
+			this.backMidUDMFScale.TabIndex = 10;
+			this.backMidUDMFScale.Text = "-1.6, -1.6";
 			// 
-			// backhightex
+			// backMidUDMFOffset
 			// 
-			this.backhightex.BackColor = System.Drawing.SystemColors.AppWorkspace;
-			this.backhightex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
-			this.backhightex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.backhightex.Location = new System.Drawing.Point(13, 19);
-			this.backhightex.Name = "backhightex";
-			this.backhightex.Size = new System.Drawing.Size(68, 60);
-			this.backhightex.TabIndex = 0;
+			this.backMidUDMFOffset.Location = new System.Drawing.Point(0, 20);
+			this.backMidUDMFOffset.Name = "backMidUDMFOffset";
+			this.backMidUDMFOffset.Size = new System.Drawing.Size(64, 13);
+			this.backMidUDMFOffset.TabIndex = 9;
+			this.backMidUDMFOffset.Text = "-100, -100";
+			// 
+			// backMidUDMFScaleLabel
+			// 
+			this.backMidUDMFScaleLabel.Location = new System.Drawing.Point(0, 47);
+			this.backMidUDMFScaleLabel.Name = "backMidUDMFScaleLabel";
+			this.backMidUDMFScaleLabel.Size = new System.Drawing.Size(64, 14);
+			this.backMidUDMFScaleLabel.TabIndex = 8;
+			this.backMidUDMFScaleLabel.Text = "Scale:";
+			// 
+			// backMidUDMFOffsetLabel
+			// 
+			this.backMidUDMFOffsetLabel.Location = new System.Drawing.Point(0, 6);
+			this.backMidUDMFOffsetLabel.Name = "backMidUDMFOffsetLabel";
+			this.backMidUDMFOffsetLabel.Size = new System.Drawing.Size(64, 13);
+			this.backMidUDMFOffsetLabel.TabIndex = 7;
+			this.backMidUDMFOffsetLabel.Text = "Offset:";
+			// 
+			// panelBackLowTex
+			// 
+			this.panelBackLowTex.Controls.Add(this.backlowtex);
+			this.panelBackLowTex.Controls.Add(this.backlowname);
+			this.panelBackLowTex.Location = new System.Drawing.Point(308, 3);
+			this.panelBackLowTex.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+			this.panelBackLowTex.Name = "panelBackLowTex";
+			this.panelBackLowTex.Size = new System.Drawing.Size(90, 76);
+			this.panelBackLowTex.TabIndex = 12;
+			// 
+			// backlowtex
+			// 
+			this.backlowtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
+			this.backlowtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+			this.backlowtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+			this.backlowtex.Location = new System.Drawing.Point(11, 2);
+			this.backlowtex.Name = "backlowtex";
+			this.backlowtex.Size = new System.Drawing.Size(68, 60);
+			this.backlowtex.TabIndex = 4;
+			// 
+			// backlowname
+			// 
+			this.backlowname.BackColor = System.Drawing.SystemColors.Control;
+			this.backlowname.Location = new System.Drawing.Point(4, 63);
+			this.backlowname.Name = "backlowname";
+			this.backlowname.Size = new System.Drawing.Size(82, 13);
+			this.backlowname.TabIndex = 5;
+			this.backlowname.Text = "BROWNHUG";
+			this.backlowname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
+			this.backlowname.UseMnemonic = false;
+			// 
+			// panelUDMFBackBottom
+			// 
+			this.panelUDMFBackBottom.Controls.Add(this.backBottomUDMFScale);
+			this.panelUDMFBackBottom.Controls.Add(this.backBottomUDMFOffset);
+			this.panelUDMFBackBottom.Controls.Add(this.backBottomUDMFScaleLabel);
+			this.panelUDMFBackBottom.Controls.Add(this.backBottomUDMFOffsetLabel);
+			this.panelUDMFBackBottom.Location = new System.Drawing.Point(398, 0);
+			this.panelUDMFBackBottom.Margin = new System.Windows.Forms.Padding(0);
+			this.panelUDMFBackBottom.Name = "panelUDMFBackBottom";
+			this.panelUDMFBackBottom.Size = new System.Drawing.Size(64, 76);
+			this.panelUDMFBackBottom.TabIndex = 12;
+			// 
+			// backBottomUDMFScale
+			// 
+			this.backBottomUDMFScale.Location = new System.Drawing.Point(0, 61);
+			this.backBottomUDMFScale.Name = "backBottomUDMFScale";
+			this.backBottomUDMFScale.Size = new System.Drawing.Size(64, 13);
+			this.backBottomUDMFScale.TabIndex = 10;
+			this.backBottomUDMFScale.Text = "-1.6, -1.6";
+			// 
+			// backBottomUDMFOffset
+			// 
+			this.backBottomUDMFOffset.Location = new System.Drawing.Point(0, 20);
+			this.backBottomUDMFOffset.Name = "backBottomUDMFOffset";
+			this.backBottomUDMFOffset.Size = new System.Drawing.Size(64, 13);
+			this.backBottomUDMFOffset.TabIndex = 9;
+			this.backBottomUDMFOffset.Text = "-100, -100";
+			// 
+			// backBottomUDMFScaleLabel
+			// 
+			this.backBottomUDMFScaleLabel.Location = new System.Drawing.Point(0, 47);
+			this.backBottomUDMFScaleLabel.Name = "backBottomUDMFScaleLabel";
+			this.backBottomUDMFScaleLabel.Size = new System.Drawing.Size(64, 14);
+			this.backBottomUDMFScaleLabel.TabIndex = 8;
+			this.backBottomUDMFScaleLabel.Text = "Scale:";
+			// 
+			// backBottomUDMFOffsetLabel
+			// 
+			this.backBottomUDMFOffsetLabel.Location = new System.Drawing.Point(0, 6);
+			this.backBottomUDMFOffsetLabel.Name = "backBottomUDMFOffsetLabel";
+			this.backBottomUDMFOffsetLabel.Size = new System.Drawing.Size(64, 13);
+			this.backBottomUDMFOffsetLabel.TabIndex = 7;
+			this.backBottomUDMFOffsetLabel.Text = "Offset:";
 			// 
 			// LinedefInfoPanel
 			// 
@@ -540,13 +936,27 @@ namespace CodeImp.DoomBuilder.Controls
 			this.MaximumSize = new System.Drawing.Size(10000, 100);
 			this.MinimumSize = new System.Drawing.Size(100, 100);
 			this.Name = "LinedefInfoPanel";
-			this.Size = new System.Drawing.Size(1047, 100);
+			this.Size = new System.Drawing.Size(1558, 100);
 			this.infopanel.ResumeLayout(false);
 			this.infopanel.PerformLayout();
 			this.frontpanel.ResumeLayout(false);
 			this.frontpanel.PerformLayout();
+			this.flowLayoutPanelFront.ResumeLayout(false);
+			this.panel4.ResumeLayout(false);
+			this.panelUDMFFrontTop.ResumeLayout(false);
+			this.panel7.ResumeLayout(false);
+			this.panelUDMFFrontMid.ResumeLayout(false);
+			this.panelFrontLowTex.ResumeLayout(false);
+			this.panelUDMFFrontBottom.ResumeLayout(false);
 			this.backpanel.ResumeLayout(false);
 			this.backpanel.PerformLayout();
+			this.flowLayoutPanelBack.ResumeLayout(false);
+			this.panel1.ResumeLayout(false);
+			this.panelUDMFBackTop.ResumeLayout(false);
+			this.panel2.ResumeLayout(false);
+			this.panelUDMFBackMid.ResumeLayout(false);
+			this.panelBackLowTex.ResumeLayout(false);
+			this.panelUDMFBackBottom.ResumeLayout(false);
 			this.ResumeLayout(false);
 
 		}
@@ -590,6 +1000,44 @@ namespace CodeImp.DoomBuilder.Controls
 		private System.Windows.Forms.Label label6;
 		private System.Windows.Forms.Label frontsector;
 		private System.Windows.Forms.Label backsector;
+		private System.Windows.Forms.FlowLayoutPanel flowLayoutPanelBack;
+		private System.Windows.Forms.Panel panel1;
+		private System.Windows.Forms.Panel panelUDMFBackTop;
+		private System.Windows.Forms.Label backTopUDMFScale;
+		private System.Windows.Forms.Label backTopUDMFOffset;
+		private System.Windows.Forms.Label backTopUDMFScaleLabel;
+		private System.Windows.Forms.Label backTopUDMFOffsetLabel;
+		private System.Windows.Forms.Panel panel2;
+		private System.Windows.Forms.Panel panelUDMFBackMid;
+		private System.Windows.Forms.Label backMidUDMFScale;
+		private System.Windows.Forms.Label backMidUDMFOffset;
+		private System.Windows.Forms.Label backMidUDMFScaleLabel;
+		private System.Windows.Forms.Label backMidUDMFOffsetLabel;
+		private System.Windows.Forms.Panel panelBackLowTex;
+		private System.Windows.Forms.Panel panelUDMFBackBottom;
+		private System.Windows.Forms.Label backBottomUDMFScale;
+		private System.Windows.Forms.Label backBottomUDMFOffset;
+		private System.Windows.Forms.Label backBottomUDMFScaleLabel;
+		private System.Windows.Forms.Label backBottomUDMFOffsetLabel;
+		private System.Windows.Forms.FlowLayoutPanel flowLayoutPanelFront;
+		private System.Windows.Forms.Panel panel4;
+		private System.Windows.Forms.Panel panelUDMFFrontTop;
+		private System.Windows.Forms.Label frontTopUDMFScale;
+		private System.Windows.Forms.Label frontTopUDMFOffset;
+		private System.Windows.Forms.Label frontTopUDMFScaleLabel;
+		private System.Windows.Forms.Label frontTopUDMFOffsetLabel;
+		private System.Windows.Forms.Panel panel7;
+		private System.Windows.Forms.Panel panelUDMFFrontMid;
+		private System.Windows.Forms.Label frontMidUDMFScale;
+		private System.Windows.Forms.Label frontMidUDMFOffset;
+		private System.Windows.Forms.Label frontMidUDMFScaleLabel;
+		private System.Windows.Forms.Label frontMidUDMFOffsetLabel;
+		private System.Windows.Forms.Panel panelFrontLowTex;
+		private System.Windows.Forms.Panel panelUDMFFrontBottom;
+		private System.Windows.Forms.Label frontBottomUDMFScale;
+		private System.Windows.Forms.Label frontBottomUDMFOffset;
+		private System.Windows.Forms.Label frontBottomUDMFScaleLabel;
+		private System.Windows.Forms.Label frontBottomUDMFOffsetLabel;
 
 	}
 }
diff --git a/Source/Core/Controls/LinedefInfoPanel.cs b/Source/Core/Controls/LinedefInfoPanel.cs
index 9436083d1..d97b8617a 100644
--- a/Source/Core/Controls/LinedefInfoPanel.cs
+++ b/Source/Core/Controls/LinedefInfoPanel.cs
@@ -57,6 +57,7 @@ namespace CodeImp.DoomBuilder.Controls
 			TypeHandler th;
 			bool upperunpegged, lowerunpegged;
 			string peggedness;
+			int defaultPanelWidth = 270; //mxd
 			
 			// Show/hide stuff depending on format
 			if(!General.Map.FormatInterface.HasActionArgs)
@@ -87,10 +88,6 @@ namespace CodeImp.DoomBuilder.Controls
 				arg5.Visible = true;
 				infopanel.Width = hexenformatwidth;
 			}
-
-			// Move panels
-			frontpanel.Left = infopanel.Left + infopanel.Width + infopanel.Margin.Right + frontpanel.Margin.Left;
-			backpanel.Left = frontpanel.Left + frontpanel.Width + frontpanel.Margin.Right + backpanel.Margin.Left;
 			
 			// Get line action information
 			LinedefActionInfo act = General.Map.Config.GetLinedefActionInfo(l.Action);
@@ -154,84 +151,245 @@ namespace CodeImp.DoomBuilder.Controls
 			// Front side available?
 			if(l.Front != null)
 			{
+				int addedWidth = 0; //mxd
+				
 				// Show sidedef info
+				frontpanel.Visible = true; //mxd
+
 				frontpanel.Text = " Front Sidedef " + l.Front.Index + " ";
 				frontsector.Text = " Sector " + l.Front.Sector.Index;
 				frontsector.Visible = true;
-				frontoffset.Text = l.Front.OffsetX + ", " + l.Front.OffsetY;
+				
+				//mxd
+				if(General.Map.UDMF) {
+					//light
+					frontoffsetlabel.Text = "Front light:";
+					setUDMFLight(l.Front.Fields, frontoffsetlabel, frontoffset);
+
+					bool hasTopFields = false;
+					bool hasMiddleFields = false;
+					bool hasBottomFields = false;
+					
+					//sidedef top
+					if(checkPairedUDMFFields(l.Front.Fields, "offsetx_top", "offsety_top", frontTopUDMFOffsetLabel, frontTopUDMFOffset))
+						hasTopFields = true;
+					if(checkPairedUDMFFields(l.Front.Fields, "scalex_top", "scaley_top", frontTopUDMFScaleLabel, frontTopUDMFScale))
+						hasTopFields = true;
+
+					//sidedef middle
+					if(checkPairedUDMFFields(l.Front.Fields, "offsetx_mid", "offsety_mid", frontMidUDMFOffsetLabel, frontMidUDMFOffset))
+						hasMiddleFields = true;
+					if(checkPairedUDMFFields(l.Front.Fields, "scalex_mid", "scaley_mid", frontMidUDMFScaleLabel, frontMidUDMFScale))
+						hasMiddleFields = true;
+
+					//sidedef bottom
+					if(checkPairedUDMFFields(l.Front.Fields, "offsetx_bottom", "offsety_bottom", frontBottomUDMFOffsetLabel, frontBottomUDMFOffset))
+						hasBottomFields = true;
+					if(checkPairedUDMFFields(l.Front.Fields, "scalex_bottom", "scaley_bottom", frontBottomUDMFScaleLabel, frontBottomUDMFScale))
+						hasBottomFields = true;
+
+					//visibility
+					panelUDMFFrontTop.Visible = hasTopFields;
+					panelUDMFFrontMid.Visible = hasMiddleFields;
+					panelUDMFFrontBottom.Visible = hasBottomFields;
+
+					//size
+					if(hasTopFields) addedWidth = 64;
+					if(hasMiddleFields) addedWidth += 64;
+					if(hasBottomFields) addedWidth += 64;
+				} else {
+					frontoffsetlabel.Text = "Front offset:";
+					frontoffset.Text = l.Front.OffsetX + ", " + l.Front.OffsetY;
+					frontoffsetlabel.Enabled = true;
+					frontoffset.Enabled = true;
+
+					panelUDMFFrontTop.Visible = false;
+					panelUDMFFrontMid.Visible = false;
+					panelUDMFFrontBottom.Visible = false;
+				}
+
+				//mxd. Resize panel
+				frontpanel.Width = defaultPanelWidth + addedWidth + 12;
+				flowLayoutPanelFront.Width = defaultPanelWidth + addedWidth;
+
 				fronthighname.Text = l.Front.HighTexture;
 				frontmidname.Text = l.Front.MiddleTexture;
 				frontlowname.Text = l.Front.LowTexture;
 				DisplaySidedefTexture(fronthightex, l.Front.HighTexture, l.Front.HighRequired());
 				DisplaySidedefTexture(frontmidtex, l.Front.MiddleTexture, l.Front.MiddleRequired());
 				DisplaySidedefTexture(frontlowtex, l.Front.LowTexture, l.Front.LowRequired());
-				frontoffsetlabel.Enabled = true;
-				frontoffset.Enabled = true;
-				frontpanel.Enabled = true;
+
+				//mxd. Position panel
+				frontpanel.Left = infopanel.Left + infopanel.Width + infopanel.Margin.Right + frontpanel.Margin.Left;
+
+				//mxd. Position label
+				frontsector.Left = frontpanel.Width - frontsector.Width - 12;
 			}
 			else
 			{
 				// Show no info
-				frontpanel.Text = " Front Sidedef ";
-				frontsector.Text = "";
-				frontsector.Visible = false;
+				//mxd
+				if(General.Map.UDMF) {
+					frontoffsetlabel.Text = "Front light:";
+					frontoffset.Text = "--";
+				} else {
+					frontoffsetlabel.Text = "Front offset:";
+					frontoffset.Text = "--, --";
+				}
+
 				frontoffsetlabel.Enabled = false;
 				frontoffset.Enabled = false;
-				frontpanel.Enabled = false;
-				frontoffset.Text = "--, --";
-				fronthighname.Text = "";
-				frontmidname.Text = "";
-				frontlowname.Text = "";
+
 				fronthightex.BackgroundImage = null;
 				frontmidtex.BackgroundImage = null;
 				frontlowtex.BackgroundImage = null;
+
+				frontpanel.Visible = false; //mxd
 			}
 
 			// Back size available?
 			if(l.Back != null)
 			{
+				int addedWidth = 0; //mxd
+				
 				// Show sidedef info
+				backpanel.Visible = true; //mxd
 				backpanel.Text = " Back Sidedef " + l.Back.Index + " ";
 				backsector.Text = " Sector " + l.Back.Sector.Index;
 				backsector.Visible = true;
-				backoffset.Text = l.Back.OffsetX + ", " + l.Back.OffsetY;
+
+				//mxd
+				if(General.Map.UDMF) {
+					//light
+					backoffsetlabel.Text = "Back light:";
+					setUDMFLight(l.Back.Fields, backoffsetlabel, backoffset);
+
+					bool hasTopFields = false;
+					bool hasMiddleFields = false;
+					bool hasBottomFields = false;
+
+					//sidedef top
+					if(checkPairedUDMFFields(l.Back.Fields, "offsetx_top", "offsety_top", backTopUDMFOffsetLabel, backTopUDMFOffset))
+						hasTopFields = true;
+					if(checkPairedUDMFFields(l.Back.Fields, "scalex_top", "scaley_top", backTopUDMFScaleLabel, backTopUDMFScale))
+						hasTopFields = true;
+
+					//sidedef middle
+					if(checkPairedUDMFFields(l.Back.Fields, "offsetx_mid", "offsety_mid", backMidUDMFOffsetLabel, backMidUDMFOffset))
+						hasMiddleFields = true;
+					if(checkPairedUDMFFields(l.Back.Fields, "scalex_mid", "scaley_mid", backMidUDMFScaleLabel, backMidUDMFScale))
+						hasMiddleFields = true;
+
+					//sidedef bottom
+					if(checkPairedUDMFFields(l.Back.Fields, "offsetx_bottom", "offsety_bottom", backBottomUDMFOffsetLabel, backBottomUDMFOffset))
+						hasBottomFields = true;
+					if(checkPairedUDMFFields(l.Back.Fields, "scalex_bottom", "scaley_bottom", backBottomUDMFScaleLabel, backBottomUDMFScale))
+						hasBottomFields = true;
+
+					//visibility
+					panelUDMFBackTop.Visible = hasTopFields;
+					panelUDMFBackMid.Visible = hasMiddleFields;
+					panelUDMFBackBottom.Visible = hasBottomFields;
+
+					//size
+					if(hasTopFields) addedWidth = 64;
+					if(hasMiddleFields) addedWidth += 64;
+					if(hasBottomFields) addedWidth += 64;
+				} else {
+					backoffsetlabel.Text = "Back offset:";
+					backoffset.Text = l.Back.OffsetX + ", " + l.Back.OffsetY;
+					backoffsetlabel.Enabled = true;
+					backoffset.Enabled = true;
+
+					panelUDMFBackTop.Visible = false;
+					panelUDMFBackMid.Visible = false;
+					panelUDMFBackBottom.Visible = false;
+				}
+
+				//mxd. Resize panel
+				backpanel.Width = defaultPanelWidth + addedWidth + 12;
+				flowLayoutPanelBack.Width = defaultPanelWidth + addedWidth;
+
 				backhighname.Text = l.Back.HighTexture;
 				backmidname.Text = l.Back.MiddleTexture;
 				backlowname.Text = l.Back.LowTexture;
 				DisplaySidedefTexture(backhightex, l.Back.HighTexture, l.Back.HighRequired());
 				DisplaySidedefTexture(backmidtex, l.Back.MiddleTexture, l.Back.MiddleRequired());
 				DisplaySidedefTexture(backlowtex, l.Back.LowTexture, l.Back.LowRequired());
-				backoffsetlabel.Enabled = true;
-				backoffset.Enabled = true;
-				backpanel.Enabled = true;
+
+				//mxd. Position panel
+				backpanel.Left = (l.Front != null ? frontpanel.Right : infopanel.Right) + 3;
+
+				//mxd. Position label
+				backsector.Left = backpanel.Width - backsector.Width - 12;
 			}
 			else
 			{
 				// Show no info
-				backpanel.Text = " Back Sidedef ";
-				backsector.Text = "";
-				backsector.Visible = false;
+				//mxd
+				if(General.Map.UDMF) {
+					backoffsetlabel.Text = "Back light:";
+					backoffset.Text = "--";
+				} else {
+					backoffsetlabel.Text = "Back offset:";
+					backoffset.Text = "--, --";
+				}
+
 				backoffsetlabel.Enabled = false;
 				backoffset.Enabled = false;
-				backpanel.Enabled = false;
-				backoffset.Text = "--, --";
-				backhighname.Text = "";
-				backmidname.Text = "";
-				backlowname.Text = "";
+
 				backhightex.BackgroundImage = null;
 				backmidtex.BackgroundImage = null;
 				backlowtex.BackgroundImage = null;
+
+				backpanel.Visible = false; //mxd
 			}
-			
-			// Position labels
-			frontsector.Left = frontlowtex.Right - frontsector.Width;
-			backsector.Left = backlowtex.Right - backsector.Width;
 
 			// Show the whole thing
 			this.Show();
 			this.Update();
 		}
 
+		//mxd
+		private bool checkPairedUDMFFields(UniFields fields, string paramX, string paramY, Label label, Label value) {
+			float x = 0;
+			float y = 0;
+
+			if(fields.ContainsKey(paramX))
+				x = (float)fields[paramX].Value;
+			if(fields.ContainsKey(paramY))
+				y = (float)fields[paramY].Value;
+
+			if(x != 0.0f || y != 0.0f) {
+				value.Text = x + ", " + y;
+				value.Enabled = true;
+				label.Enabled = true;
+				return true;
+			}
+
+			value.Text = "--, --";
+			value.Enabled = false;
+			label.Enabled = false;
+			return false;
+		}
+
+		//mxd
+		private void setUDMFLight(UniFields fields, Label label, Label value) {
+			if(fields.ContainsKey("light")) {
+				value.Text = fields["light"].Value.ToString();
+
+				if(fields.ContainsKey("lightabsolute") && Boolean.Parse(fields["lightabsolute"].Value.ToString()))
+					value.Text += " (abs)";
+
+				value.Enabled = true;
+				label.Enabled = true;
+			} else {
+				value.Text = "--";
+				label.Enabled = false;
+				value.Enabled = false;
+			}
+		}
+
 		// When visible changed
 		protected override void OnVisibleChanged(EventArgs e)
 		{
diff --git a/Source/Core/Controls/LinedefInfoPanel.resx b/Source/Core/Controls/LinedefInfoPanel.resx
index b680dcc82..27dc0cde9 100644
--- a/Source/Core/Controls/LinedefInfoPanel.resx
+++ b/Source/Core/Controls/LinedefInfoPanel.resx
@@ -183,15 +183,9 @@
   <metadata name="arg1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="backoffsetlabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="frontoffset.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="frontoffsetlabel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="tag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
@@ -204,55 +198,10 @@
   <metadata name="action.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="frontpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="frontsector.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="frontlowname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="frontlowtex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="frontmidtex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="fronthighname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="fronthightex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="frontmidname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="backpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="backsector.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="backlowname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="backlowtex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="backmidname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="backmidtex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="backhighname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="backhightex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
 </root>
\ No newline at end of file
diff --git a/Source/Core/Controls/SectorInfoPanel.Designer.cs b/Source/Core/Controls/SectorInfoPanel.Designer.cs
index a0f3f48c8..9711a3ea7 100644
--- a/Source/Core/Controls/SectorInfoPanel.Designer.cs
+++ b/Source/Core/Controls/SectorInfoPanel.Designer.cs
@@ -34,6 +34,14 @@ namespace CodeImp.DoomBuilder.Controls
 			System.Windows.Forms.Label label3;
 			System.Windows.Forms.Label label2;
 			System.Windows.Forms.Label label1;
+			this.ceilingLightLabel = new System.Windows.Forms.Label();
+			this.ceilingScaleLabel = new System.Windows.Forms.Label();
+			this.ceilingAngleLabel = new System.Windows.Forms.Label();
+			this.ceilingOffsetLabel = new System.Windows.Forms.Label();
+			this.floorOffsetLabel = new System.Windows.Forms.Label();
+			this.floorLightLabel = new System.Windows.Forms.Label();
+			this.floorAngleLabel = new System.Windows.Forms.Label();
+			this.floorScaleLabel = new System.Windows.Forms.Label();
 			this.sectorinfo = new System.Windows.Forms.GroupBox();
 			this.brightness = new System.Windows.Forms.Label();
 			this.height = new System.Windows.Forms.Label();
@@ -41,12 +49,23 @@ namespace CodeImp.DoomBuilder.Controls
 			this.floor = new System.Windows.Forms.Label();
 			this.ceiling = new System.Windows.Forms.Label();
 			this.effect = new System.Windows.Forms.Label();
+			this.ceilingLight = new System.Windows.Forms.Label();
+			this.ceilingScale = new System.Windows.Forms.Label();
+			this.ceilingAngle = new System.Windows.Forms.Label();
+			this.ceilingOffset = new System.Windows.Forms.Label();
 			this.ceilingpanel = new System.Windows.Forms.GroupBox();
+			this.ceilingInfo = new System.Windows.Forms.Panel();
 			this.ceilingname = new System.Windows.Forms.Label();
 			this.ceilingtex = new System.Windows.Forms.Panel();
 			this.floorpanel = new System.Windows.Forms.GroupBox();
+			this.floorInfo = new System.Windows.Forms.Panel();
+			this.floorLight = new System.Windows.Forms.Label();
+			this.floorScale = new System.Windows.Forms.Label();
+			this.floorOffset = new System.Windows.Forms.Label();
+			this.floorAngle = new System.Windows.Forms.Label();
 			this.floorname = new System.Windows.Forms.Label();
 			this.floortex = new System.Windows.Forms.Panel();
+			this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
 			label13 = new System.Windows.Forms.Label();
 			label5 = new System.Windows.Forms.Label();
 			label4 = new System.Windows.Forms.Label();
@@ -55,63 +74,138 @@ namespace CodeImp.DoomBuilder.Controls
 			label1 = new System.Windows.Forms.Label();
 			this.sectorinfo.SuspendLayout();
 			this.ceilingpanel.SuspendLayout();
+			this.ceilingInfo.SuspendLayout();
 			this.floorpanel.SuspendLayout();
+			this.floorInfo.SuspendLayout();
+			this.flowLayoutPanel1.SuspendLayout();
 			this.SuspendLayout();
 			// 
 			// label13
 			// 
-			label13.AutoSize = true;
-			label13.Location = new System.Drawing.Point(111, 77);
+			label13.Location = new System.Drawing.Point(103, 75);
 			label13.Name = "label13";
-			label13.Size = new System.Drawing.Size(62, 14);
+			label13.Size = new System.Drawing.Size(70, 14);
 			label13.TabIndex = 14;
 			label13.Text = "Brightness:";
+			label13.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// label5
 			// 
-			label5.AutoSize = true;
-			label5.Location = new System.Drawing.Point(133, 58);
+			label5.Location = new System.Drawing.Point(103, 55);
 			label5.Name = "label5";
-			label5.Size = new System.Drawing.Size(40, 14);
+			label5.Size = new System.Drawing.Size(70, 14);
 			label5.TabIndex = 8;
 			label5.Text = "Height:";
+			label5.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// label4
 			// 
-			label4.AutoSize = true;
-			label4.Location = new System.Drawing.Point(24, 77);
+			label4.Location = new System.Drawing.Point(8, 75);
 			label4.Name = "label4";
-			label4.Size = new System.Drawing.Size(28, 14);
+			label4.Size = new System.Drawing.Size(44, 14);
 			label4.TabIndex = 4;
 			label4.Text = "Tag:";
+			label4.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// label3
 			// 
-			label3.AutoSize = true;
-			label3.Location = new System.Drawing.Point(18, 58);
+			label3.Location = new System.Drawing.Point(8, 55);
 			label3.Name = "label3";
-			label3.Size = new System.Drawing.Size(34, 14);
+			label3.Size = new System.Drawing.Size(44, 14);
 			label3.TabIndex = 3;
 			label3.Text = "Floor:";
+			label3.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// label2
 			// 
-			label2.AutoSize = true;
-			label2.Location = new System.Drawing.Point(11, 39);
+			label2.Location = new System.Drawing.Point(8, 35);
 			label2.Name = "label2";
-			label2.Size = new System.Drawing.Size(41, 14);
+			label2.Size = new System.Drawing.Size(44, 14);
 			label2.TabIndex = 2;
 			label2.Text = "Ceiling:";
+			label2.TextAlign = System.Drawing.ContentAlignment.TopRight;
 			// 
 			// label1
 			// 
 			label1.AutoSize = true;
-			label1.Location = new System.Drawing.Point(13, 19);
+			label1.Location = new System.Drawing.Point(13, 15);
 			label1.Name = "label1";
 			label1.Size = new System.Drawing.Size(39, 14);
 			label1.TabIndex = 0;
 			label1.Text = "Effect:";
 			// 
+			// ceilingLightLabel
+			// 
+			this.ceilingLightLabel.Location = new System.Drawing.Point(3, 61);
+			this.ceilingLightLabel.Name = "ceilingLightLabel";
+			this.ceilingLightLabel.Size = new System.Drawing.Size(45, 14);
+			this.ceilingLightLabel.TabIndex = 27;
+			this.ceilingLightLabel.Text = "Light:";
+			this.ceilingLightLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// ceilingScaleLabel
+			// 
+			this.ceilingScaleLabel.Location = new System.Drawing.Point(3, 43);
+			this.ceilingScaleLabel.Name = "ceilingScaleLabel";
+			this.ceilingScaleLabel.Size = new System.Drawing.Size(45, 14);
+			this.ceilingScaleLabel.TabIndex = 26;
+			this.ceilingScaleLabel.Text = "Scale:";
+			this.ceilingScaleLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// ceilingAngleLabel
+			// 
+			this.ceilingAngleLabel.Location = new System.Drawing.Point(3, 25);
+			this.ceilingAngleLabel.Name = "ceilingAngleLabel";
+			this.ceilingAngleLabel.Size = new System.Drawing.Size(45, 14);
+			this.ceilingAngleLabel.TabIndex = 24;
+			this.ceilingAngleLabel.Text = "Angle:";
+			this.ceilingAngleLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// ceilingOffsetLabel
+			// 
+			this.ceilingOffsetLabel.Location = new System.Drawing.Point(3, 7);
+			this.ceilingOffsetLabel.Name = "ceilingOffsetLabel";
+			this.ceilingOffsetLabel.Size = new System.Drawing.Size(45, 14);
+			this.ceilingOffsetLabel.TabIndex = 22;
+			this.ceilingOffsetLabel.Text = "Offset:";
+			this.ceilingOffsetLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// floorOffsetLabel
+			// 
+			this.floorOffsetLabel.Location = new System.Drawing.Point(3, 7);
+			this.floorOffsetLabel.Name = "floorOffsetLabel";
+			this.floorOffsetLabel.Size = new System.Drawing.Size(45, 14);
+			this.floorOffsetLabel.TabIndex = 22;
+			this.floorOffsetLabel.Text = "Offset:";
+			this.floorOffsetLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// floorLightLabel
+			// 
+			this.floorLightLabel.Location = new System.Drawing.Point(3, 61);
+			this.floorLightLabel.Name = "floorLightLabel";
+			this.floorLightLabel.Size = new System.Drawing.Size(45, 14);
+			this.floorLightLabel.TabIndex = 27;
+			this.floorLightLabel.Text = "Light:";
+			this.floorLightLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// floorAngleLabel
+			// 
+			this.floorAngleLabel.Location = new System.Drawing.Point(3, 25);
+			this.floorAngleLabel.Name = "floorAngleLabel";
+			this.floorAngleLabel.Size = new System.Drawing.Size(45, 14);
+			this.floorAngleLabel.TabIndex = 24;
+			this.floorAngleLabel.Text = "Angle:";
+			this.floorAngleLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
+			// floorScaleLabel
+			// 
+			this.floorScaleLabel.Location = new System.Drawing.Point(3, 43);
+			this.floorScaleLabel.Name = "floorScaleLabel";
+			this.floorScaleLabel.Size = new System.Drawing.Size(45, 14);
+			this.floorScaleLabel.TabIndex = 26;
+			this.floorScaleLabel.Text = "Scale:";
+			this.floorScaleLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
+			// 
 			// sectorinfo
 			// 
 			this.sectorinfo.Controls.Add(this.brightness);
@@ -127,82 +221,127 @@ namespace CodeImp.DoomBuilder.Controls
 			this.sectorinfo.Controls.Add(this.effect);
 			this.sectorinfo.Controls.Add(label1);
 			this.sectorinfo.Location = new System.Drawing.Point(0, 0);
+			this.sectorinfo.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
 			this.sectorinfo.Name = "sectorinfo";
-			this.sectorinfo.Size = new System.Drawing.Size(230, 100);
+			this.sectorinfo.Size = new System.Drawing.Size(220, 100);
 			this.sectorinfo.TabIndex = 2;
 			this.sectorinfo.TabStop = false;
 			this.sectorinfo.Text = " Sector ";
 			// 
 			// brightness
 			// 
-			this.brightness.AutoSize = true;
-			this.brightness.Location = new System.Drawing.Point(177, 77);
+			this.brightness.Location = new System.Drawing.Point(177, 75);
 			this.brightness.Name = "brightness";
-			this.brightness.Size = new System.Drawing.Size(13, 14);
+			this.brightness.Size = new System.Drawing.Size(56, 14);
 			this.brightness.TabIndex = 17;
 			this.brightness.Text = "0";
 			// 
 			// height
 			// 
-			this.height.AutoSize = true;
-			this.height.Location = new System.Drawing.Point(177, 58);
+			this.height.Location = new System.Drawing.Point(177, 55);
 			this.height.Name = "height";
-			this.height.Size = new System.Drawing.Size(13, 14);
+			this.height.Size = new System.Drawing.Size(56, 14);
 			this.height.TabIndex = 11;
 			this.height.Text = "0";
 			// 
 			// tag
 			// 
-			this.tag.AutoSize = true;
-			this.tag.Location = new System.Drawing.Point(55, 77);
+			this.tag.Location = new System.Drawing.Point(55, 75);
 			this.tag.Name = "tag";
-			this.tag.Size = new System.Drawing.Size(13, 14);
+			this.tag.Size = new System.Drawing.Size(42, 14);
 			this.tag.TabIndex = 7;
 			this.tag.Text = "0";
 			// 
 			// floor
 			// 
-			this.floor.AutoSize = true;
-			this.floor.Location = new System.Drawing.Point(55, 58);
+			this.floor.Location = new System.Drawing.Point(55, 55);
 			this.floor.Name = "floor";
-			this.floor.Size = new System.Drawing.Size(25, 14);
+			this.floor.Size = new System.Drawing.Size(42, 14);
 			this.floor.TabIndex = 6;
 			this.floor.Text = "360";
 			// 
 			// ceiling
 			// 
-			this.ceiling.AutoSize = true;
-			this.ceiling.Location = new System.Drawing.Point(55, 39);
+			this.ceiling.Location = new System.Drawing.Point(55, 35);
 			this.ceiling.Name = "ceiling";
-			this.ceiling.Size = new System.Drawing.Size(31, 14);
+			this.ceiling.Size = new System.Drawing.Size(42, 14);
 			this.ceiling.TabIndex = 5;
 			this.ceiling.Text = "1024";
 			// 
 			// effect
 			// 
 			this.effect.AutoSize = true;
-			this.effect.Location = new System.Drawing.Point(55, 19);
+			this.effect.Location = new System.Drawing.Point(55, 15);
 			this.effect.Name = "effect";
 			this.effect.Size = new System.Drawing.Size(123, 14);
 			this.effect.TabIndex = 1;
 			this.effect.Text = "0 - Whacky Pool of Fluid";
 			// 
+			// ceilingLight
+			// 
+			this.ceilingLight.Location = new System.Drawing.Point(54, 61);
+			this.ceilingLight.Name = "ceilingLight";
+			this.ceilingLight.Size = new System.Drawing.Size(60, 14);
+			this.ceilingLight.TabIndex = 29;
+			this.ceilingLight.Text = "255 (abs.)";
+			// 
+			// ceilingScale
+			// 
+			this.ceilingScale.Location = new System.Drawing.Point(54, 43);
+			this.ceilingScale.Name = "ceilingScale";
+			this.ceilingScale.Size = new System.Drawing.Size(60, 14);
+			this.ceilingScale.TabIndex = 28;
+			this.ceilingScale.Text = "-1.0, -1.0";
+			// 
+			// ceilingAngle
+			// 
+			this.ceilingAngle.Location = new System.Drawing.Point(54, 25);
+			this.ceilingAngle.Name = "ceilingAngle";
+			this.ceilingAngle.Size = new System.Drawing.Size(60, 14);
+			this.ceilingAngle.TabIndex = 25;
+			this.ceilingAngle.Text = "45";
+			// 
+			// ceilingOffset
+			// 
+			this.ceilingOffset.Location = new System.Drawing.Point(54, 7);
+			this.ceilingOffset.Name = "ceilingOffset";
+			this.ceilingOffset.Size = new System.Drawing.Size(60, 14);
+			this.ceilingOffset.TabIndex = 23;
+			this.ceilingOffset.Text = "-100, -100";
+			// 
 			// ceilingpanel
 			// 
+			this.ceilingpanel.Controls.Add(this.ceilingInfo);
 			this.ceilingpanel.Controls.Add(this.ceilingname);
 			this.ceilingpanel.Controls.Add(this.ceilingtex);
-			this.ceilingpanel.Location = new System.Drawing.Point(349, 0);
+			this.ceilingpanel.Location = new System.Drawing.Point(426, 0);
+			this.ceilingpanel.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
 			this.ceilingpanel.Name = "ceilingpanel";
-			this.ceilingpanel.Size = new System.Drawing.Size(107, 100);
+			this.ceilingpanel.Size = new System.Drawing.Size(200, 100);
 			this.ceilingpanel.TabIndex = 3;
 			this.ceilingpanel.TabStop = false;
 			this.ceilingpanel.Text = " Ceiling ";
 			// 
+			// ceilingInfo
+			// 
+			this.ceilingInfo.Controls.Add(this.ceilingLight);
+			this.ceilingInfo.Controls.Add(this.ceilingOffsetLabel);
+			this.ceilingInfo.Controls.Add(this.ceilingScale);
+			this.ceilingInfo.Controls.Add(this.ceilingOffset);
+			this.ceilingInfo.Controls.Add(this.ceilingLightLabel);
+			this.ceilingInfo.Controls.Add(this.ceilingAngleLabel);
+			this.ceilingInfo.Controls.Add(this.ceilingScaleLabel);
+			this.ceilingInfo.Controls.Add(this.ceilingAngle);
+			this.ceilingInfo.Location = new System.Drawing.Point(82, 15);
+			this.ceilingInfo.Name = "ceilingInfo";
+			this.ceilingInfo.Size = new System.Drawing.Size(118, 80);
+			this.ceilingInfo.TabIndex = 2;
+			// 
 			// ceilingname
 			// 
-			this.ceilingname.Location = new System.Drawing.Point(11, 80);
+			this.ceilingname.Location = new System.Drawing.Point(8, 80);
 			this.ceilingname.Name = "ceilingname";
-			this.ceilingname.Size = new System.Drawing.Size(84, 13);
+			this.ceilingname.Size = new System.Drawing.Size(68, 13);
 			this.ceilingname.TabIndex = 1;
 			this.ceilingname.Text = "BROWNHUG";
 			this.ceilingname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
@@ -212,27 +351,76 @@ namespace CodeImp.DoomBuilder.Controls
 			this.ceilingtex.BackColor = System.Drawing.SystemColors.AppWorkspace;
 			this.ceilingtex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
 			this.ceilingtex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.ceilingtex.Location = new System.Drawing.Point(19, 19);
+			this.ceilingtex.Location = new System.Drawing.Point(8, 19);
 			this.ceilingtex.Name = "ceilingtex";
 			this.ceilingtex.Size = new System.Drawing.Size(68, 60);
 			this.ceilingtex.TabIndex = 0;
 			// 
 			// floorpanel
 			// 
+			this.floorpanel.Controls.Add(this.floorInfo);
 			this.floorpanel.Controls.Add(this.floorname);
 			this.floorpanel.Controls.Add(this.floortex);
-			this.floorpanel.Location = new System.Drawing.Point(236, 0);
+			this.floorpanel.Location = new System.Drawing.Point(223, 0);
+			this.floorpanel.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
 			this.floorpanel.Name = "floorpanel";
-			this.floorpanel.Size = new System.Drawing.Size(107, 100);
+			this.floorpanel.Size = new System.Drawing.Size(200, 100);
 			this.floorpanel.TabIndex = 4;
 			this.floorpanel.TabStop = false;
 			this.floorpanel.Text = " Floor ";
 			// 
+			// floorInfo
+			// 
+			this.floorInfo.Controls.Add(this.floorLight);
+			this.floorInfo.Controls.Add(this.floorOffsetLabel);
+			this.floorInfo.Controls.Add(this.floorScale);
+			this.floorInfo.Controls.Add(this.floorOffset);
+			this.floorInfo.Controls.Add(this.floorLightLabel);
+			this.floorInfo.Controls.Add(this.floorAngleLabel);
+			this.floorInfo.Controls.Add(this.floorScaleLabel);
+			this.floorInfo.Controls.Add(this.floorAngle);
+			this.floorInfo.Location = new System.Drawing.Point(82, 15);
+			this.floorInfo.Name = "floorInfo";
+			this.floorInfo.Size = new System.Drawing.Size(118, 80);
+			this.floorInfo.TabIndex = 30;
+			// 
+			// floorLight
+			// 
+			this.floorLight.Location = new System.Drawing.Point(54, 61);
+			this.floorLight.Name = "floorLight";
+			this.floorLight.Size = new System.Drawing.Size(60, 14);
+			this.floorLight.TabIndex = 29;
+			this.floorLight.Text = "255 (abs.)";
+			// 
+			// floorScale
+			// 
+			this.floorScale.Location = new System.Drawing.Point(54, 43);
+			this.floorScale.Name = "floorScale";
+			this.floorScale.Size = new System.Drawing.Size(60, 14);
+			this.floorScale.TabIndex = 28;
+			this.floorScale.Text = "-1.0, -1.0";
+			// 
+			// floorOffset
+			// 
+			this.floorOffset.Location = new System.Drawing.Point(54, 7);
+			this.floorOffset.Name = "floorOffset";
+			this.floorOffset.Size = new System.Drawing.Size(60, 14);
+			this.floorOffset.TabIndex = 23;
+			this.floorOffset.Text = "-100, -100";
+			// 
+			// floorAngle
+			// 
+			this.floorAngle.Location = new System.Drawing.Point(54, 25);
+			this.floorAngle.Name = "floorAngle";
+			this.floorAngle.Size = new System.Drawing.Size(60, 14);
+			this.floorAngle.TabIndex = 25;
+			this.floorAngle.Text = "45";
+			// 
 			// floorname
 			// 
-			this.floorname.Location = new System.Drawing.Point(11, 80);
+			this.floorname.Location = new System.Drawing.Point(8, 80);
 			this.floorname.Name = "floorname";
-			this.floorname.Size = new System.Drawing.Size(84, 13);
+			this.floorname.Size = new System.Drawing.Size(68, 13);
 			this.floorname.TabIndex = 1;
 			this.floorname.Text = "BROWNHUG";
 			this.floorname.TextAlign = System.Drawing.ContentAlignment.TopCenter;
@@ -242,27 +430,40 @@ namespace CodeImp.DoomBuilder.Controls
 			this.floortex.BackColor = System.Drawing.SystemColors.AppWorkspace;
 			this.floortex.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
 			this.floortex.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
-			this.floortex.Location = new System.Drawing.Point(19, 19);
+			this.floortex.Location = new System.Drawing.Point(8, 19);
 			this.floortex.Name = "floortex";
 			this.floortex.Size = new System.Drawing.Size(68, 60);
 			this.floortex.TabIndex = 0;
 			// 
+			// flowLayoutPanel1
+			// 
+			this.flowLayoutPanel1.Controls.Add(this.sectorinfo);
+			this.flowLayoutPanel1.Controls.Add(this.floorpanel);
+			this.flowLayoutPanel1.Controls.Add(this.ceilingpanel);
+			this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+			this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0);
+			this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+			this.flowLayoutPanel1.Size = new System.Drawing.Size(642, 100);
+			this.flowLayoutPanel1.TabIndex = 5;
+			this.flowLayoutPanel1.WrapContents = false;
+			// 
 			// SectorInfoPanel
 			// 
 			this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
 			this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
-			this.Controls.Add(this.floorpanel);
-			this.Controls.Add(this.ceilingpanel);
-			this.Controls.Add(this.sectorinfo);
+			this.Controls.Add(this.flowLayoutPanel1);
 			this.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
 			this.MaximumSize = new System.Drawing.Size(10000, 100);
 			this.MinimumSize = new System.Drawing.Size(100, 100);
 			this.Name = "SectorInfoPanel";
-			this.Size = new System.Drawing.Size(481, 100);
+			this.Size = new System.Drawing.Size(642, 100);
 			this.sectorinfo.ResumeLayout(false);
 			this.sectorinfo.PerformLayout();
 			this.ceilingpanel.ResumeLayout(false);
+			this.ceilingInfo.ResumeLayout(false);
 			this.floorpanel.ResumeLayout(false);
+			this.floorInfo.ResumeLayout(false);
+			this.flowLayoutPanel1.ResumeLayout(false);
 			this.ResumeLayout(false);
 
 		}
@@ -282,5 +483,24 @@ namespace CodeImp.DoomBuilder.Controls
 		private System.Windows.Forms.Label floorname;
 		private System.Windows.Forms.Panel floortex;
 		private System.Windows.Forms.GroupBox sectorinfo;
+		private System.Windows.Forms.Label ceilingLight;
+		private System.Windows.Forms.Label ceilingScale;
+		private System.Windows.Forms.Label ceilingAngle;
+		private System.Windows.Forms.Label ceilingOffset;
+		private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
+		private System.Windows.Forms.Panel ceilingInfo;
+		private System.Windows.Forms.Panel floorInfo;
+		private System.Windows.Forms.Label floorLight;
+		private System.Windows.Forms.Label floorScale;
+		private System.Windows.Forms.Label floorOffset;
+		private System.Windows.Forms.Label floorAngle;
+		private System.Windows.Forms.Label ceilingLightLabel;
+		private System.Windows.Forms.Label ceilingScaleLabel;
+		private System.Windows.Forms.Label ceilingAngleLabel;
+		private System.Windows.Forms.Label ceilingOffsetLabel;
+		private System.Windows.Forms.Label floorOffsetLabel;
+		private System.Windows.Forms.Label floorLightLabel;
+		private System.Windows.Forms.Label floorAngleLabel;
+		private System.Windows.Forms.Label floorScaleLabel;
 	}
 }
diff --git a/Source/Core/Controls/SectorInfoPanel.cs b/Source/Core/Controls/SectorInfoPanel.cs
index 5909398e3..b5a72edd6 100644
--- a/Source/Core/Controls/SectorInfoPanel.cs
+++ b/Source/Core/Controls/SectorInfoPanel.cs
@@ -33,11 +33,14 @@ namespace CodeImp.DoomBuilder.Controls
 {
 	internal partial class SectorInfoPanel : UserControl
 	{
+		private int fullWidth; //mxd
+		
 		// Constructor
 		public SectorInfoPanel()
 		{
 			// Initialize
 			InitializeComponent();
+			fullWidth = floorpanel.Width; //mxd
 		}
 
 		// This shows the info
@@ -68,6 +71,163 @@ namespace CodeImp.DoomBuilder.Controls
 			General.DisplayZoomedImage(floortex, General.Map.Data.GetFlatImage(s.FloorTexture).GetPreview());
 			General.DisplayZoomedImage(ceilingtex, General.Map.Data.GetFlatImage(s.CeilTexture).GetPreview());
 
+			//mxd
+			bool showExtededFloorInfo = false;
+			bool showExtededCeilingInfo = false;
+			if(General.Map.UDMF && s.Fields != null) {
+				//light
+				if(s.Fields.ContainsKey("lightceiling")) {
+					showExtededCeilingInfo = true;
+					ceilingLight.Enabled = true;
+					ceilingLightLabel.Enabled = true;
+
+					ceilingLight.Text = s.Fields["lightceiling"].Value.ToString();
+
+					if(s.Fields.ContainsKey("lightceilingabsolute") && Boolean.Parse(s.Fields["lightceilingabsolute"].Value.ToString()))
+						ceilingLight.Text += " (abs.)";
+				} else {
+					ceilingLight.Text = "--";
+					ceilingLight.Enabled = false;
+					ceilingLightLabel.Enabled = false;
+				}
+
+				if(s.Fields.ContainsKey("lightfloor")) {
+					showExtededFloorInfo = true;
+					floorLight.Enabled = true;
+					floorLightLabel.Enabled = true;
+
+					floorLight.Text = s.Fields["lightfloor"].Value.ToString();
+
+					if(s.Fields.ContainsKey("lightfloorabsolute") && Boolean.Parse(s.Fields["lightfloorabsolute"].Value.ToString()))
+						floorLight.Text += " (abs.)";
+				} else {
+					floorLight.Text = "--";
+					floorLight.Enabled = false;
+					floorLightLabel.Enabled = false;
+				}
+
+				//offsets
+				float panX = 0f;
+				float panY = 0f;
+
+				if(s.Fields.ContainsKey("xpanningceiling"))
+					panX = (float)s.Fields["xpanningceiling"].Value;
+				if(s.Fields.ContainsKey("ypanningceiling"))
+					panY = (float)s.Fields["ypanningceiling"].Value;
+
+				if(panX != 0 || panY != 0) {
+					showExtededCeilingInfo = true;
+					ceilingOffset.Enabled = true;
+					ceilingOffsetLabel.Enabled = true;
+					ceilingOffset.Text = panX + ", " + panY;
+				} else {
+					ceilingOffset.Text = "--, --";
+					ceilingOffset.Enabled = false;
+					ceilingOffsetLabel.Enabled = false;
+				}
+
+				panX = 0f;
+				panY = 0f;
+
+				if(s.Fields.ContainsKey("xpanningfloor"))
+					panX = (float)s.Fields["xpanningfloor"].Value;
+				if(s.Fields.ContainsKey("ypanningfloor"))
+					panY = (float)s.Fields["ypanningfloor"].Value;
+
+				if(panX != 0 || panY != 0) {
+					showExtededFloorInfo = true;
+					floorOffset.Enabled = true;
+					floorOffsetLabel.Enabled = true;
+					floorOffset.Text = panX + ", " + panY;
+				} else {
+					floorOffset.Text = "--, --";
+					floorOffset.Enabled = false;
+					floorOffsetLabel.Enabled = false;
+				}
+
+				//scale
+				float scaleX = 1.0f;
+				float scaleY = 1.0f;
+
+				if(s.Fields.ContainsKey("xscaleceiling"))
+					scaleX = (float)s.Fields["xscaleceiling"].Value;
+				if(s.Fields.ContainsKey("yscaleceiling"))
+					scaleY = (float)s.Fields["yscaleceiling"].Value;
+
+
+				if(scaleX != 1.0f || scaleY != 1.0f) {
+					showExtededCeilingInfo = true;
+					ceilingScale.Enabled = true;
+					ceilingScaleLabel.Enabled = true;
+					ceilingScale.Text = scaleX + ", " + scaleY;
+				} else {
+					ceilingScale.Text = "--, --";
+					ceilingScale.Enabled = false;
+					ceilingScaleLabel.Enabled = false;
+				}
+
+				scaleX = 1.0f;
+				scaleY = 1.0f;
+
+				if(s.Fields.ContainsKey("xscalefloor"))
+					scaleX = (float)s.Fields["xscalefloor"].Value;
+				if(s.Fields.ContainsKey("yscalefloor"))
+					scaleY = (float)s.Fields["yscalefloor"].Value;
+
+
+				if(scaleX != 1.0f || scaleY != 1.0f) {
+					showExtededFloorInfo = true;
+					floorScale.Enabled = true;
+					floorScaleLabel.Enabled = true;
+					floorScale.Text = scaleX + ", " + scaleY;
+				} else {
+					floorScale.Text = "--, --";
+					floorScale.Enabled = false;
+					floorScaleLabel.Enabled = false;
+				}
+
+				//rotation
+				if(s.Fields.ContainsKey("rotationceiling")) {
+					showExtededCeilingInfo = true;
+					ceilingAngle.Enabled = true;
+					ceilingAngleLabel.Enabled = true;
+					ceilingAngle.Text = s.Fields["rotationceiling"].Value.ToString() + "\u00B0";
+				} else {
+					ceilingAngle.Text = "-";
+					ceilingAngle.Enabled = false;
+					ceilingAngleLabel.Enabled = false;
+				}
+
+				if(s.Fields.ContainsKey("rotationfloor")) {
+					showExtededFloorInfo = true;
+					floorAngle.Enabled = true;
+					floorAngleLabel.Enabled = true;
+					floorAngle.Text = s.Fields["rotationfloor"].Value.ToString() + "\u00B0";
+				} else {
+					floorAngle.Text = "-";
+					floorAngle.Enabled = false;
+					floorAngleLabel.Enabled = false;
+				}
+			}
+
+			//panels size
+			if(showExtededCeilingInfo) {
+				ceilingpanel.Width = fullWidth;
+				ceilingInfo.Visible = true;
+			} else {
+				ceilingInfo.Visible = false;
+				ceilingpanel.Width = 84;
+			}
+
+			if(showExtededFloorInfo) {
+				floorpanel.Width = fullWidth;
+				floorInfo.Visible = true;
+			} else {
+				floorInfo.Visible = false;
+				floorpanel.Width = 84;
+			}
+
+
 			// Show the whole thing
 			this.Show();
 			this.Update();
diff --git a/Source/Core/Controls/SectorInfoPanel.resx b/Source/Core/Controls/SectorInfoPanel.resx
index 2dcf42926..faaec4cf2 100644
--- a/Source/Core/Controls/SectorInfoPanel.resx
+++ b/Source/Core/Controls/SectorInfoPanel.resx
@@ -117,82 +117,22 @@
   <resheader name="writer">
     <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
   </resheader>
-  <metadata name="label13.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label13.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label5.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label4.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label3.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label2.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="label1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
-  <metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="brightness.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="height.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="tag.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="floor.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="ceiling.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="effect.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="ceilingpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="ceilingname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="ceilingtex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="floorpanel.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="floorname.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="floortex.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
 </root>
\ No newline at end of file
diff --git a/Source/Core/GZBuilder/GZGeneral.cs b/Source/Core/GZBuilder/GZGeneral.cs
index 50c6d22bb..af9e9b1cb 100644
--- a/Source/Core/GZBuilder/GZGeneral.cs
+++ b/Source/Core/GZBuilder/GZGeneral.cs
@@ -32,8 +32,8 @@ namespace CodeImp.DoomBuilder.GZBuilder
         public static int[] ACS_SPECIALS { get { return acsSpecials; } }
 
         //version
-        public const float Version = 1.12f;
-        public const char Revision = 'i';
+        public const float Version = 1.13f;
+        public const char Revision = ' ';
 
         //debug console
 #if DEBUG
diff --git a/Source/Core/General/General.cs b/Source/Core/General/General.cs
index ae3cdd8da..99fcb5c12 100644
--- a/Source/Core/General/General.cs
+++ b/Source/Core/General/General.cs
@@ -1163,6 +1163,9 @@ namespace CodeImp.DoomBuilder
 			{
 				// Add recent file
 				mainwindow.AddRecentFile(filename);
+
+				//mxd
+				mainwindow.UpdateGZDoomPannel();
 			}
 			else
 			{
diff --git a/Source/Core/General/StepsList.cs b/Source/Core/General/StepsList.cs
index 019918ce4..cfd1e5d06 100644
--- a/Source/Core/General/StepsList.cs
+++ b/Source/Core/General/StepsList.cs
@@ -72,6 +72,18 @@ namespace CodeImp.DoomBuilder
 			return base[low];
 		}
 
+		//mxd. This returns a step higher for UDMF relative light range (-255..255)
+		public int GetNextHigher(int level, bool absolute) {
+			if(absolute || level >= 0) return GetNextHigher(level);
+			return -GetNextLower(Math.Abs(level));
+		}
+
+		//mxd. This returns a step lower for UDMF relative light range (-255..255)
+		public int GetNextLower(int level, bool absolute) {
+			if(absolute || level > 0) return GetNextLower(level);
+			return -GetNextHigher(Math.Abs(level));
+		}
+
 		// This returns the nearest step
 		public int GetNearest(int level)
 		{
diff --git a/Source/Core/Resources/GZDB2.ico b/Source/Core/Resources/GZDB2.ico
index 60af1d366ae5c5ace9d071b36670c43cfb159678..7b4041b3b92aff837788e15537108b50d68be748 100644
GIT binary patch
literal 24358
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

literal 11502
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

diff --git a/Source/Core/Resources/Splash3_trans.png b/Source/Core/Resources/Splash3_trans.png
index 76b769ce8e1d536d9983316e09b87c34e903e2d3..5133b08f6434e3730173828a14caa0edd75f1e86 100644
GIT binary patch
delta 21733
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
M07*qoM6N<$g7-T9%m4rY

delta 21684
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
P00000NkvXXu0mjfAT<NA

diff --git a/Source/Core/Windows/MainForm.Designer.cs b/Source/Core/Windows/MainForm.Designer.cs
index c8d6118ea..9a10a3ecb 100644
--- a/Source/Core/Windows/MainForm.Designer.cs
+++ b/Source/Core/Windows/MainForm.Designer.cs
@@ -1669,7 +1669,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.linedefinfo.MaximumSize = new System.Drawing.Size(10000, 100);
 			this.linedefinfo.MinimumSize = new System.Drawing.Size(100, 100);
 			this.linedefinfo.Name = "linedefinfo";
-			this.linedefinfo.Size = new System.Drawing.Size(1039, 100);
+			this.linedefinfo.Size = new System.Drawing.Size(1560, 100);
 			this.linedefinfo.TabIndex = 0;
 			this.linedefinfo.Visible = false;
 			// 
@@ -1691,7 +1691,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.sectorinfo.MaximumSize = new System.Drawing.Size(10000, 100);
 			this.sectorinfo.MinimumSize = new System.Drawing.Size(100, 100);
 			this.sectorinfo.Name = "sectorinfo";
-			this.sectorinfo.Size = new System.Drawing.Size(522, 100);
+			this.sectorinfo.Size = new System.Drawing.Size(642, 100);
 			this.sectorinfo.TabIndex = 2;
 			this.sectorinfo.Visible = false;
 			// 
diff --git a/Source/Core/Windows/MainForm.resx b/Source/Core/Windows/MainForm.resx
index b0323263a..375300916 100644
--- a/Source/Core/Windows/MainForm.resx
+++ b/Source/Core/Windows/MainForm.resx
@@ -198,30 +198,6 @@
   <metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>True</value>
   </metadata>
-  <metadata name="heightpanel1.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="vertexinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="labelcollapsedinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="buttontoggleinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="modename.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="linedefinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="thinginfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
-  <metadata name="sectorinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
-    <value>True</value>
-  </metadata>
   <metadata name="redrawtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
     <value>433, 17</value>
   </metadata>
@@ -257,198 +233,412 @@
   </metadata>
   <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
     <value>
-        AAABAAMAEBAAAAEAGABoAwAANgAAACAgAAABABgAqAwAAJ4DAAAwMAAAAQAYAKgcAABGEAAAKAAAABAA
-        AAAgAAAAAQAYAAAAAAAAAAAASAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwmOSQeNSAb
-        MSQeNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ
-        EBAQEBAQEAAAAAAAABAQENHR0dra2uPj4+zs7PT09BAQEBAQENnZ2eLi4urq6vLy8vn5+RAQEAAAAAAA
-        ABAQEMjIyBAQEBAQEBAQEOzs7BAQEBAQEM7OztfX1xAQEBAQEBAQEBAQEAAAAAAAABAQEMDAwBAQEE1B
-        vtra2uPj4+zs7BAQEBAQEMzMzNTU1BAQEBAQEBAQEAAAAAAAABAQELq6uhAQEBAQEBAQEBAQEBAQEBAQ
-        EBAQEBAQEBAQENLS0tvb2xAQEAAAAAAAABAQEBAQELq6usDAwMjIyNHR0RAQEBAQELW1tbq6usDAwMjI
-        yNDQ0BAQEAAAAAAAAFxRwhAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAA
-        AFBMwodwy1JCm2NPrn9kvB4aOAUDBQUDBR4aOCUkhyEgcSAcNCAcNBIQEwAAAAAAAAAAACskRyQfMltJ
-        q0s+lyYiWgoHEQUDBSQiciYiWiEcKSEcKSIdJAAAAAAAAAAAAHx0d4+GjExEhiUgPCEcKSUkhx4aOCQf
-        WyUkhykjKyQfJCslKmpfYmliZQAAALOtr7mytAAAAEI4aWNbXoh/gzs0jks+l0s+lzYvZV5TV29kZyId
-        IQAAAKaeoZ2XmgAAAAAAAAAAAG5iZpWNqoJwup+Rz5WC0YBp1Hdkx2JYnpGGjFNJTAAAAAAAAAAAAAAA
-        AAAAAHJobLu3ugAAAEg9ZXlwtJWJ0Y2B0Yd+tTcxSgAAAKylpoN9gAAAAAAAAAAAAAAAAKaeoQAAAKKc
-        nrCqrAAAAAAAAAAAAAAAALCqrJCMjgAAAJCHigAAAAAAAAAAAAAAAKaeoQAAAL24ugAAAAAAAAAAAAAA
-        AAAAAAAAALi0tgAAANDMzQAAAAAAAPw/AADAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAMAD
-        AACAAQAAIAQAAOAHAADAAwAA08sAANfrAAAoAAAAIAAAAEAAAAABABgAAAAAAAAAAABIAAAASAAAAAAA
+        AAABAAQAEBAAAAEAGABoAwAARgAAACAgAAABABgAqAwAAK4DAAAwMAAAAQAYAKgcAABWEAAAQEAAAAEA
+        GAAoMgAA/iwAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFAAAAAAAAAAAAAAAAAAAAAYGBgYGBgYGBgYGBgY
+        GBgYGBgYGBgYGBgYGBgYGBhQUFBQUFAAAAAAAAAAAAAdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0d
+        HR0dHR0dHR1QUFBQUFAAAAAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiJQ
+        UFAAAAAoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKChQUFAAAAAvLy8vLy8v
+        Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9QUFAAAAA2NjY2NjaGhob///////////+G
+        hob///////////////////82NjY2NjZQUFAAAAA9PT09PT3///9KSko9PT2Li4v///89PT3///9kZGQ9
+        PT09PT09PT09PT1QUFAAAABERERERET///9ERET///////////9ERERdXV3///9RUVFERERERERERERQ
+        UFAAAABLS0tLS0v///9XV1dLS0tvb2+Tk5NLS0tLS0uHh4f///9LS0tLS0tLS0tQUFAAAABSUlJSUlKX
+        l5f///////////90dHT///////////////+jo6NSUlJSUlJQUFAAAABYWFhYWFhYWFhYWFhYWFhYWFhY
+        WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhQUFAAAABdXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1d
+        XV1dXV1dXV1dXV0AAAAAAAAAAABiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIAAAAA
+        AAAAAAAAAAAAAABlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAwAA4AEAAMAAAACAAAAAgAAAAIAA
+        AACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAQAAwAMAAOAHAAD//wAAKAAAACAAAABAAAAAAQAYAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH19fVBPTy0sLB8dHR4cHB4cHB4cHB4cHB4cHB8cGx8c
+        HB8dHCAdHCAeHSEeHSEfHiEfHiEgHyIgHyEfHSEeHSEeHCEeHCEeHCEeHCMgHygmJT4+PmBgYHl5eQAA
+        AHp6emlpaRQSERQSERQSERQSERMSERQSERQSEhQSEhQSEhUTEhUTExYTExYUFBYUFBUTEhUTEhcVFRYU
+        FBgVFBcVExYTEhYTEhYTEhYTEhYTEhYTEicnJ0BAQF9fXwAAAG5ubi0sLBQSEhQSEhQSEv//////////
+        /yUjIzUzM////////////////4OCgv///////////////0A/PxYUFEZERP///////////3RycRcTEhcT
+        EhoXFicnJjw8PH9/fxsaGRgXFiMiIikoJ////////////////////0hHR////8HBwaChoqCio4KDhf//
+        /9HQ0KOiotjY2P///yclJHZ1df///6+urqKhofDv7////xgVFBcTEhYTEicjInl5eRgVFBgVFRgVGDY0
+        Nf///zc0MhkVExkVE////xgUEoSCgf///yYkNxkYKhgUEv///4SCgRgUEhkUEv///4SCgXVycv///xkV
+        ExkUFf///////xoVEhoVEhAQFSQgH3Z2dhgUExgVFRgVGFZUVP///xgUE////////////xgUEickIv//
+        /4SFjhgUEhgUEv///4SCgRkVFBkUEoWCgf///3Vycv///6OhoaOhovDw8YWCghkUEhkVEhkUESIfH3Z2
+        dhgUExgVFRgWGFZUVf///xgUExgUExgUEhgUEhgUEjMxRGxse////zczMhgUEv///5STmTMxPSwpNIB+
+        hP///3h2e/////////////Dv8BkVFBkVEhkVEhkUESIfHnZ2dhgUExgVFRgWGFZUVf///xgUExgUEhgU
+        EpORkRgUEisqPxgYKf///////xYTE////5iXnjw5RDw5Rf///////39+hP///xUTHlJRV////////xoU
+        ERkUERkUESIfHnZ2dhgUExgVFBgWGCcmJv///4SCgRgUEoSCgfDv7xgUEisqPRoaLzAwOvDw8GRkb///
+        /4SEjCsrQmNicv///1lZaHJyev///xsZJDEvOO/v8P///xkUERoUERkTESIfHnZ2dhgUExgVFRgVGBgW
+        FlVTUvDv7/////Dv71VSUTYzMv///////////////8XFyf///////////////4qKlQgRJnV1ff//////
+        /////5+epBAOGBEOEhkTEhkTESIfHnZ2dhgUExgVFBgWGBgWFxgVFBgUExgUEhgUEhgUEhgUEhgUEiMj
+        OR0fMiQkODo4SCQjOAkMGhgeMxEdOxAaNQsUKwoMGQcJExoXHxIPGw8OGw8OGA4NExUSFhkTESIfHnZ2
+        dhgUExgVFBgWGBgWFhgUExgUEhgUEhgUEhgUEhgUEhgUEhgUEh4eLxwdMTo3SiMjNggKFCkuOR0gKiEl
+        LRgdJhISHAgJDhwZJBMQGw8NGxAOGA4OFBgUExkTESIfHnp6ekI2ND84NUI7QkE8PkE4NUE2MkI3M0E1
+        M0I2NkA1N0I2NkI2NEE1M0I2NHBvr1pZhYGMp3V+qStGoV5ogGp3jTE1UhMbOVNLaTIpSi8oSy8pQDAq
+        PUI2Mi0sNjQvLXp6ekQ3NUM6N0M8Q0I9P0Q4NkI3M0I2NEE3N0I3QUE3Q0I2QkE3PUA5PoSAu0RGhiEg
+        XnNs5XdsyBEWNx8pXyEqTBUXKRIWKWxjhDIrTjEpSDUoQCkmNS4sOCgeLjQuLHp6ekM3NUA5NkI9P0E8
+        PkE4NUI3M0I2NEE3PYyT/43L/0Q8m3+A8oR/vUNBfBwpXXmHsTE9Z3R/nxsYListOBoeKRAQIBQWIX11
+        migtTDAoRi4nPDMwOSogMSUiMTQuLHp6ekI2NEA5NkI9P0E8PkE4NUI3M0I2NEE5OkVFXW+o5kM3S1tW
+        gzAvViAePCw8fh0iX5+y04SRqRUTKYGNpWp3hx0cLBYPHFxUcw08VyklQigiMxkTJB4WJyQbLzMuLHp6
+        ekE1Mz84NTs9PkA7PUA3NEI2NEI3M0M3NUA3OkE3PUE3PWNgjScpSCQzZC1MmzNRqChBhyY9gSU7fGpx
+        imx0hSMiNiUnMkQ0S06UsjIpQyMhLR8XKBoUJx8ZLDMuLHp6ekA0Mj43ND87QUA7PUA3NEE2MkE2MkE1
+        M0E1M0E1M0I2NGNlppCHwC4vUSk3ayI1cihGjSxMlTFLkSdDgBojSRcVM2tolkU3T4fJ+TcwRSMlMBkU
+        KRgUJxsXKjMuLHp6ekA0Mj83Nz87QT86PEA3NEE2MkE1M0E1M0E2MkI2MkI2NGtsqI2L15qT3ImBwHt2
+        o19aeU9QdjI1VENBXkE9VkpFbDo1UDUtTJG+/zAqQxkaKBwfLh8WKhgUJzIuLHp6ej00MD82Mz84Pz45
+        Oz41MkEyMM/Iz8C5vo+KjGdkhD4+UH6Cw3mFzWlzwGJkqnZ3wW5xtWBjp0BIhE5RiE9Pfz03YDMtTDAr
+        UoCc+zQrRhgaLBcXKRgUJxwcLDMuLHp6ej8zMT01NT43Pj84Oz41MkAzMc28wNzR1JyUyXRzn2FgiP//
+        /v3//3d+vWJor29xt8vr/4KJzllfjF9koz9Cb1FPfUtJdy4rUnmL5jgvSRoaLBsaKhcXJxgYKDMuLHp6
+        ej8zMT82Mz84Oz43Oj41Mj80MEE0Ms6+v5uX0mRklGBkjebk8Kei33h8w21ts3V5wP///////////4qR
+        yk5UgSsuVCoqUigrUWx1vjcuQhgbKhgZJxkZKRYYIzMuLXp6ej00MUA3ND83Pj43Oj41Mj4yMD8zM15W
+        dWBgpnJyrpKLyIaAuXVyqoN/xnVysH99v9vd5f///////////53H9md3nCMhPiMjRzg5dTAvPxcXJxsa
+        KhodKxwbJTMuLXp6ej4yMD40ND42PT02OT00MT4zLz8zMzk1SJeV7rWw/7Su/Xp4xFRXm2Ror4qEvVZU
+        glhceWlqhv////L+/4q25XiXxBkbOR4cQCQjVSIhNRYZKBwcLh4WJyQjMzQuLXp6ej4yMD40ND02PT02
+        OT00MT4zLz4zLz01NZ2b4ayp/6yo/4OC2HZ4zKmi97Cq62llmVFPeUJEZkROZkhTczM6WyIgPiIgPkE7
+        ZFVXgFFLajoyQzgxPh0XKComOTMuLHp6ejwzMD40ND43PDw1OD0zMz4zLz4zLz4yMD0zOWton7ux/np6
+        yGZptKul/I6O3IyKzH57uV9agTMwSjc2VignRz05Yj46Y1RQgX59r0E7Wo6DhZ2Znn96fEE5QDQtLHt6
+        ej4yMD0zMz00Pjw1Oj00MT4zLz4zLz4zLz8zMTwzNj8/V2lmmG9tqK6o9YmI0o2IxoqEv313smBbgjcy
+        USIiQDc0W0tIenNxs3h0pUA7W7uytauipa+nrpSQljQtLH19fT0xLz0zMzwzPT0zOT4yMj0xLz0yLj0y
+        Lj0xLz4yMEAzMT03Qm1rn1tYj5SOvYqDrm5qpYB8t3dwm2BVezIxUz45Zjw7bWxqpW9rnE5Ia6CTlaOX
+        nYd+gXRcVjo0NAAAAD0yMD0zMz4zPT0zOT00MT4zLz8zMT0zMz4zNT4zNj8zOUQ3R3Fun3dxolRUgl9d
+        h11chm1olWlihVhRdjo3Xk0/YTI0XVxbn2dlj0o/X2pbX2pVV0U5PyUiO05JSAAAAAAAAEU9PT4yPj4z
+        Oz4zNT4zNTwzNj0zOU9dqVFIYj8zOT8xNT8zMYiCpWRhk315olxZimRgiklCXUE8V0xPa09DX0E2VkI9
+        XEFBX1NDW1NGVicnRSYmQVFPUnd3dwAAAAAAAAAAAD0zPz00QTYxRo2m8D80PD80Nz4zNT0zMz8zMT8y
+        MD8zL0E1MV9bjFRSgIN9pmRej1BIcUM5XTgzUz40Ujw6XkQ6ZCkqUC40YysuVC0uVFBOVHFxcX9/fwAA
+        AAAAAAAAAGFeXldTUlZRUFZRUFZSUFZSUFdTUlhUU1dUUldTUlZSUVZSUVZSUVZSUVZSUVdSUVdSUVdS
+        UVdSUVdSUVdSUVdSUVlSUVlSUVlSUVpUU3V1dXx8fAAAAMAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ2dnHh4eHh4eHh4e
-        Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eIRs4Ix08GBQqCQgJFhYWFxcXFxcXFxcXFxcXFxcXGBgYGBgY
-        GBgYGBgYGBgYGhoaHh4eAAAAAAAAZmZmBgYGRkZG1tbW////////////////////////////pKSkHh4e
-        Hh4eHhkwFxQlHh4e////////////////////////////////////////////////Hh4eAAAAAAAAAAAA
-        FBQUfn5+5ubm6urq6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo////+vr6Hh4eHh4eHhk/Hh4e////////////////
-        zs7OysrK2tra2tra3Nzc6urq6Ojo/v7+Hh4eAAAAAAAACQkJHh4eHh4eHh4eHh4eHh4eHh4eAAAAAAAA
-        AAAAAAAA////////5ubmHh4eOTBbHh4e////////////////Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e
-        Hh4eAAAAAAAAFxcX////////zs7OHh4emo6RHh4eSEhIeHh4cHBwcHBw////////////Hh4eEAwQHh4e
-        Hh4ewsLC/Pz8////////////Hh4eHh4ejIOFAAAAAAAAAAAAAAAAAAAAAAAAERER2tra/v7+tra2Hh4e
-        gHZ5Hh4e3Nzc////////////////////////Hh4eDAkNPzSCIR5bHh4eHh4eysrK6urq6urq////////
-        Hh4eHh4eAAAAAAAAAAAAAAAAAAAAExMTyMjI3t7eqKioHh4eSDtoHh4eUFBQhISEgoKChISEhISEiIiI
-        cHBwHh4eEQ4aOjSSJCF0Hx50FRRBHh4eHh4eurq62NjY0NDQ////9vb2Hh4eHh4eY2NjAAAAAAAACQkJ
-        Hh4eHh4eHh4eHh4eHh4eHh4eAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4eEg4XNC+NJCF0IiF7IR5kJCFo
-        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
-        mpKVvbm8AAAAAAAAOjJKPjN1RT2nXE66bly8dFzHYU/GUkKtYFKjNCtlJiE5ODM3AAAAsaqssaqsfHFz
-        ZV9iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY1ldnJSaqaGjAAAAAAAAZV9iaVpdYlZaYlZaAAAA
-        AAAAAAAAAAAAAAAAAAAAYlZaeW9yQzxAAAAAAAAAuLG0saqsVk1SAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAYlZavba5AAAAAAAAAAAAYlZata6wraaoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYlZaopqd
-        Vk1SAAAAAAAAsaqsjIOFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhHp+0s7QAAAAAAAAAAAAnJSa
-        uLG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAta6wbGJlAAAAAAAAAAAAw77AmpKVAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAjIOFAAAAAAAAAAAAAAAAkYaKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAnJSaAAAAAAAAAAAA0c3OqaGjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAOAAAADgAAABKAAAADAAAABgAAAAAQAYAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH19fWpqakhISDQ0NC4uLisrKyoqKioqKioqKioq
+        KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
+        KioqKioqKioqKioqKioqKioqKioqKioqKioqKi0tLTY2NkxMTGdnZ3l5eX9/fwAAAAAAAH9/f3JyclBP
+        TykoJx4cHBwaGRwaGRwaGRwaGRwaGRwZGRwaGRwaGRwZGRwZGRwaGR0aGR0aGh0aGh0aGh4bGh4bGh4c
+        Gx8cGx8cHB8dHB8eHR8eHR8dHR8dGx8cGx8cGx4bGh8bGh8bGh8bGh8bGh8bGh8bGiAcGyEfHiMjIy0t
+        LUVFRWZmZnt7ewAAAAAAAHh4eFtbWxcVFRQSERQSERQSERQSERQSERQSERMSERQSERQSERQSEhQSEhQS
+        EhQSEhUTEhUTExUTExYTExYUFBYUFBYUFBUTExUTEhUTEhYUFBcVFRYUFBgWFRgVFBcVExYUExYTEhYT
+        EhYTEhYTEhYTEhYTEhYTEhYTEh8cGiIhISwsLEpKSm1tbQAAAAAAAG1tbSwqKRQSEhQSEhQSEhQSEhQS
+        EhQTEhUTEhUTExUTExUTExUUExUUExYUExYUExYUExUTExUTEhUTEhYUExcVFRwaGiYlJC0sLDU0NEJB
+        QUlISEA/PxcWFRYUFBgVFRgVFBcVFBcUExYUEhcUEhcTEhcTEhcTEhcTEhYTEhoXFiIhITQ0NFpaWgAA
+        AH9/f1FRUBUTEhUTExUTExUTExYUE0FAQOLi4vDw8MXExP///8TExDEvLxUTE7e3t///////////////
+        /////////9DQ0EhHR////////////////+jo6KGhoUREQy8tLR8dHf///////////////////7e2tTQx
+        MBcUExcUEhcTEhcTEh4aGi0tLVFRUQAAAH5+fhsaGRgXFiAfHyMiIikoJ01MTPPz87e3t0lJSElISFJS
+        Us7NzczMzCwrKkhHRv///318fBEUFhEVFxIWGBMWGRQWGRkYGP///1JQUBgWFhcVFYaGhfLy8qmoqBcV
+        FRsZGP///3d3djc2NRoXFzQxMdTT08XFxBgVFBgVFBcUExcTEhYTEiYjIk9PTwAAAHd3dxkUFBgVFBgV
+        FRQWGBgVFqinp+Li4hgUExkVExkVFBkVFIyKicXExBgUExgUEoyJifHx8kZDUiclOB4dLxgXJhkUExkU
+        E////1JPTRgUEhgUEhkUEmFeXP///0RAPxkVFP///1NPTxoUExkUFBkUFnR+kP///xkVFBoVEhoVEhsV
+        EhAQFSQgH09PTwAAAHNychgVFBgVFBgVFhQWGRgVF8XFxYuKiRgUExkVExkVExkVE4yKicXExBgUExgU
+        EhgUEtXV2MrKzxkaLRgUEhkUEhgUEhgUEv///1JPTRgUEhgUEhkUEhkUEvHw8H57ehkVFf///1NPThkV
+        ExkUFBkUF5qfr/Hw8RkUFBkUEhkVEhkVEhkVEyMfH09PTwAAAHNychgVFBgVFBgVFhMWGRgVF8XExYyJ
+        iRgUExgUE////////////8XExBgUEhgUEhgTFVBQYvHx83t7hBgUEhgUEhgUEhgUEv///1ZUWBkXHRcV
+        GRYUFBkUEsbExIyKiRkUFP///6mnp4yJiYyKiZqYmf///3BsbhkUFBkUEhkVEhkVEhkVEiIfH09PTwAA
+        AHNychgUExgVFBgVFhQWGRgWGMXFxYyJiRgUExgUExgUExgUExgUEhgUEhgUEhgUEjEwRCQlO3t8hf//
+        /0JAPhgTEhgTEhgUEv///2hmbzY0PzYzPickLy4rNMnIypKQlB0aIP///6inp4yKiYyKieLi4tjZ4Cgj
+        JRkUFBkUEhkVEhkVEhkVEiIfHk9PTwAAAHNychgUExgVFBgVFhQXGBgWGMXFxZqYmBgUEhgUExgUEhgU
+        EjUxMENAPxgUEhgUES4rQR8gNQsLFcLCxNLS0hgTEhgUEi8tPP///21rdEE+RT46RDg1PzczOv///3x5
+        fiknLv///1JQVhEPFhkVFCcjJvLy9HBsbhkUFBkVEhkUERoUERkUESIfHk9PTwAAAHNychgUExgVFBgV
+        FhQXGBgWGJqZmeLi4iYjIRgUExgUEhgUEqinpsXExBgUEhgUEicnPBgYKw8PGysqMfHx8oqLkxYTFDQx
+        Rv///21qdT47R0E9SD46R5ybov///0lIViwqOf///1ZTWxgVIhEOGREPG+Xl6IyJixkUExoUERkUERkU
+        ERkUESIfHk9PTwAAAHNychgUExgVFBgVFhQXGBgWGCYkJPHw8MXExDUxMCYjIX17ev///2BdXBgUEjUx
+        MGFgcFdXZk5PWkxMU6enrP///0hHUjAuQv///4GAiWZkcmVjcrGwuP///3V1ghwcMRcYKv///4B+hFZU
+        XFBOV7S0t////y0sNRkUExoUERkUERkUERkUESIfHk9PTwAAAHNychgUExgUExgVFhQXGBgWGBcVFTUy
+        MainpsXExMXExMXExGBdXBgUEhcTEm5sa8vKz8fHzcXFycbGysXFycbGyn59hyYmPMXFysbGysXFycnJ
+        z66ttlhYaBscMBkaLB8eLcbFycrJzMjHycXEx6alqkFBUxAOGQ4NFRMSFRoUERkTERkTESIfHk9PTwAA
+        AHNychgUExgUExgVFhQXGBgWGBcVFRgUExgUEhgUEhgTEhgUEhgUEhgUEhgUEhgUEiopOh0eMxwcLxkZ
+        KBYXKyAgMzg1SC0rPiAfMA8PHg8UIA8bNhAbNRIcNQ4XLwkRJRUUJBAQHSkoOiMfKBQRHRIPHBAPIg8O
+        Gg8OGA8OFBAOFBkTERkTESIfHk9PTwAAAHNychgUExgVFBgVFhQXGBgVFxcVFRgUExgUExgUExgUEhgU
+        EhgUEhgUEhgUEhgUEhwYGyMjORobLx8eMx8eMx8fMzw5SS0sPiAgLwgLFwgKExIdOw8bNwsVLQ8YMwoT
+        KQkNGwcLFy0rOx8dKBUSHA8PHA4OHw8OGQ8OGA8OFRAPFRgTEhkTESIfHk9PTwAAAHNychgVFBgVFBgW
+        FhQXGRgWGBcVFRgUExgUExgUEhgUEhgUEhgUEhgUEhgUEhgUEhgUEiIiMyAgNx0dMR8eMx0eMTYzRicm
+        PBsbKggKEx8hKBMbMA4XMA8YMhEZNAoTJwgLGAgKFCAdLSMgLBgTHA4PHA8NHBAOGg8NGA8OFQ4OFBkT
+        ERkTESIfHk9PTwAAAHd2dkA3NEA3NEA5PDU+QkE7QEA7OkA3NEE2MkE2MkE2MkE2MkE2MkE3MEE1M0A1
+        MUA1MUA1MUA1MUxKYFBQhl9cjYN+u0tMiDw+ZltidnmGpn+Lpzg+a3mFnTxDXHJ9kTc2UBoaKiQkPGtj
+        gj8xTR4xUigkSC4oRysmQSckNCknM0Q0LUQ0LTQvLU9PTwAAAHd2dkA3NEA3NEA5PDU+QkE7QD45OEI2
+        NEE2MkE2MkE2MkE2MkE2MkE1M0E1M0E1M0E1M0E1M0E2MkE1M0E2MqigyXd1sW1rmSorUY2dumhzpTI1
+        YiZAlIGMpyY5coucsTU5VhMYLRseOnFqjTUrSRtJaDEnSzMrSjIpQy4oOScmMEU2LS8uODQvLU9PTwAA
+        AHd2dkI2NEE4NUA5PDY/Q0E7QD86OUI2NEI3M0I3M0I3M0I3M0E3N0E5OkI3OkI3OUI3OUM3N0E3N0M3
+        N09GWo6IuVlZmVhWhBkgS3eGtBUaQRUZPDBGtjRFiClHlIKPqS0wTBQWLhYaM312oTgsSEiFpSslSC8n
+        RTEpQCkmNiknLS4tNzg3OzQuLU9PTwAAAHd2dkM3NUI5NkE7PDg+Q0I9P0I6OkM4NEI2NEI3M0I2NEE3
+        N0E2QEI0UEI2SEI3Rz0xTUI3P0I3P0I2Qn55tlpcolhTomlg2H9+7ElMlhgcRRcZNxUXLxwhSBYbPGBp
+        fRUXKRASKhQWKJePuEEyTnS23y0nRi4nQi8oPSonNysqNCgoNiYhMDQuLE9PTwAAAHd2dkE4NEE4NUA5
+        PDg+Q0E7QD86OUE4NUI3M0I3M0A3NEI2PEE2RnyX7Tw0XIzG/0A1VTQrampl2IOA7m9xxVZVgTA4YICM
+        rlBVhk5Yh254mjA1ThYZLigsNxscKhUWJBcYJhYXJRYXJZqRvDsxT47J/y0pRjEoQi0mOy0sNiUaLisq
+        NCglNDQuLE9PTwAAAHd2dkI2NEE4NUA6Ozc9QkE7QD86OUI2NEI3M0I3M0E4NUA3OkM5SnzL9nF75zMw
+        Z0I0UEE3RIR+rW5oozk2XRonVY+ds4STuhkYOJGjyIWQrmNsgBgVKxUSIigpNyAhKxodJSUoLSUoLZWO
+        uTovT5W8/y4qRzAnQScjNi0uOCAYKSUbLCUjLzMuLE9PTwAAAHd2dkE1M0E4NUE6PTc9QkE8Pj46OT85
+        NEI2NkI3M0M4NEI3OUI4RS87XV+lzXhwtkI3R05Jdjs2XS0sTiIgPjM7WTZJjSEnaIWUtJ+x0I2dtEtV
+        ZxUSK4SRqXuHmWFofDY4UBUPGhYPHGFfiT8yUo6n/ysqRC4mPSokNTIwNh4XJhwWJyMaLjMuLE9PTwAA
+        AHd2dkE2MkA3NEA5PDU+QkE8Pj86OUI2NEI3M0I3M0I3M0E4NUI4OEI3P0A2QkA3QUM4QFpYgjEyTiIh
+        QyMsUi9PmzZSpi9LnytGlis+d32Kqh0mUh0mUZaluISOn2NqfTI2UhkSJyMlMFJKaT8wUH6T9jY0SC0o
+        PSMgLx4XJhwWJxsVKB8ZLDMuLE9PTwAAAHd2dT82MkA3ND85OjY8QUA6Pz45OEE1M0E2MkE2MkE2MkE1
+        M0I2NEI2NkE2OEE2OEE2OIKBv2dkkS8vUxsdQCE2bSVAiidInjdcuDFNmixGki9LkjBOlS9DfR8pUVxk
+        dScrPSYrOmZgiUM3S0IzUnyL5zIuQSglNSEgKhkUIxsYKBkVKB8ZLDMvLE9PTwAAAHd2dUA0Mj82Mz84
+        OzQ9QUA6Pz45OEE1M0E2MkE2MkE2MkE2MkE2MkE1M0E1M0E1M0I2NFVbkKKc44+HvDU2WBofRh0waRgu
+        YiE/hidEjiZFkChDhi1GjCRBfhwtYBUaOxYUMRoYNVpXhEEzSz0wUHuF0zQrRiMgLx4gKxoUJRgUJxkV
+        KBoWKTMuLE9PTwAAAHd2dUA0Mj82Mz84OzQ9QUA6Pz45OEA3NEE2MkE1M0E2MkE1M0E2MkE2MkE2MkE1
+        M0I2NGFinmxytZWS4ZqT3IJ+wF5YkVxXhEpEZzs0WTMyWSw0WSkrSSgmQyonQDw2VVJOckQ9Xj0yTDgu
+        TC4mS2RmrDEpSB0dLRkaKBkZKRoUJRoWKRcTJjIuLE9PTwAAAHd2dT8zMT41Mj02OTQ6Pz85Pjw2Nz41
+        Mj8zMU1FRlpXWVhRVkAyMz8zMUA1MUE1M0Q7OHJvnW53wVRenoeJ0JCN3I6K1oODz4SCyIJ/xHJvrXt2
+        rVJXlGNilFtYik5JcERAZDw0UzkwSzIsSy8oTVFLhjEpRyUiMhcZKx0dLxwaLRkVKBkZKTIuLE9PTwAA
+        AHZ2dT00MT00MT02OTQ6Pz84PTw3Nj41Mj8zMayhqdnP1c7HzMO2uJmMlHhym2NehUJDWGdqlszX/+Hn
+        /2R0t2BnrExSjVddoG91vG91tmNopVlgn0dQj1FVj1BRi01Mfj89ZzYwUzEvTDczVjwyVkA0aDouTCkm
+        NhcXKRkZKRoaLBgWKRoaKjMuLE9PTwAAAHZ1dT00MT41Mj03ODY6P0A5Pj42Nj00MT8zMUE0Mubb3uLW
+        3NPGyJiQxX58qltZh2Jhif///v///////5Wj2G5zuF9lsG91wm1yqZeszHeDyV5ll1Zdj19ko1ZalUFB
+        b0BDb0lJeVFOey0tUTEsWTswYjcuSSMiMhoaLBYWJhsaKhcXJxgYKDMuLE9PTwAAAHZ2dT8zMT40ND83
+        ODU5Pj84PT42Nj8zMT8zMUM0Msm7vd/NzpiSx56Y0Xx7uWFgjFVWcP///////3qDvJWU2G91vnJyvnt+
+        wldtkP///////v///4WIv11jjlNajFBSiDM7ai4xXjQzWzEuVTQuVzsxWzwwThkYLBYYKhcXJxsaKhcX
+        JxgYJjMuLE9PTwAAAHZ1dT8zMT41Mjw2NzU4QD44PTs1Nj8zMT4zLz8zMUA0Msm7vY+KwZSQ0WVhklNV
+        hWJmm3N3uIyOzoWBwnh1vXZ1vW1usoiHx3mEn/////////////////3+/2Nvn0FJbjM0ViYnSSooTCwr
+        VSssWDAqUzUqRBcXKRYWKBcXJxwZKBoaKBgaJTMuLU9PTwAAAHZ1dT00MT0zMz03ODU4QD03PDs1Nj00
+        MT4yMD4yMD0zMz01NpGOxXBvuUJGdk9VfmtsnoB9r29spHl0sYB/w3h3u2Zlo318vmVqkf//////////
+        /v///////+j//42r2jg6XSAiQSAgPicmRignUysnUCwnRBgYKhgYKBgYKBcXJxQUIhkYITMuLU9PTwAA
+        AHZ1dT4yMD00MTw1ODQ3Pz43PD01Nj0zMz4zLz4zLz0zMz0zObiz+Kqm+Kym/ci+/8a7+Y2JymhprV5d
+        nXl6xG9vq2tnok9OgFlZd29zpP/+/////////////+j//42x4X6fzJi14R0eOh0fPh0fTx8eRh8gOhcX
+        KRkZKRsbLRsWJSIaKyYlNTMuLU9PTwAAAHZ1dT4yMD00MTw1ODQ3Pz02Oz01Nj8zMT4zLz4zLz0zMz00
+        N3l2rqaf9LKs/p6d/aah/H9+zkpUoXFwwGNntqSc4oiBumZjlEhIbFZbfFJSZGdtgPr+/+n+/7Lt/GOD
+        riEqSw4YNhsdOyIdPSoqWiMhRSIfOBkZKRYaLBsbLRoUJR4eLCAgMDQuLU9PTwAAAHZ1dT4yMD00MTw1
+        ODQ3Pz02Oz01Nj00MT4zLz4zLzwzMD0yND0yQpSP3qul/qWh/6qm/4OC2GFls4uK4KOg9sO796Sb3m1p
+        nVRSfEREaEVJbEhNYkRRZ0JQbEFPczY/YCUmQh8dOx0bOTErTkNJdjUyS1ZUcUY/WjgyQzkxPCUhLSAa
+        KyIeMTMuLE9PTwAAAHZ1dTkyLzwzMD41ODQ3Pz02Ozw0NT4yMD4zLz4zLz4zLz4yMD4zNlJJXpyV2Lqy
+        /7ex/omK4lthtICAzKSf9JSV8Kmj8JePznVvpG1pnUVEbjQ2VDM6Wy83VS8yUSgoUC8uVTQzWjAsTzIx
+        WXaVyoF9rkxHZzs1Tk1HYG1oal9ZXiwjLSIeMTQuLE9PTwAAAHd2djwzMD0zMzw1ODU2QD02Ozw0NT4y
+        MD4zLz4zLz4zLz4zLz8zMT8yOl1Zdqae37Ss8nx7w2dqtYmGzrGr+pyZ7o6L042LzYWDxXt5u3BmkEtG
+        ZjQvSjEyTjAuTB8ePjk3W0Q/ZkM/aUhFc5S97nl2pEtGZkI8W52SlKeipJWRl4aFh0dCRDQtLE9PTwAA
+        AHd2dj4yMD0zMz00NzY1Pj01PDw0NT00MT4zLz4zLz4zLz4zLz4yMD8zMT0zOT0yQpWMt25ro2trp2dp
+        qqul9KWg742J0YuHyIiGwoOAvn17t3lxmlJNbTMsTSsnRCQhQTQvTkdCb0tIeVtZjaDQ+nd0ojw3V4F7
+        jrSrrq6nqqqiqaWhppiZnTQtLFFRUQAAAHd2djwzMDwyMjwyODU0Pjw0Ozw0NT4yMD0xLz0yLj0yLj0y
+        Lj0yLj0xLz4yMD00MT8zM2VmjGZkkmRhmF9fjZ2a0oyHxZWNwoB8t3l3s357sntxn29mjkxFaDgxVCYl
+        Rzs6YktIeUpIfGFhoYjK82Jdij84WZuPla+jqbGnra6gpKGWmWpfYTUuLVZWVgAAAHt6ejo0LzwzMDwy
+        ODUzPz0yOjw0NT4yMD0xLz0xLz0xLz0xLz0yLj4yMD4yMD8zMT0zMz0zM2FhkV9clE1OiFZYgZePuIyD
+        q3t3qHFtqH97toB6r3hunGdfhEQ9YC0rTz44YUE6ZTk6bFRWlnu5719bhUE7WoJ2fJqPkpuQmJmOlm5g
+        ZHddVjw2NWNjYwAAAAAAAD0yMD0zMzwyODUzPz4zOzw0NT4yMD40LT40LT4yMD8zMT00MT0zMz4zNT4z
+        NT4zNj4zNjsyRn54qW1pnV5ckFRXhGhmil1chGNfkGtomoiBrmZeh1hQdU5EaDYxWDk0Wzg0WDE1ZktO
+        knCk515XgktDYoZ5e4h8fGlaXmdTWFxLTiclO09KSXZ2dgAAAAAAAEA3NT0zMzwyODcyQT4zPTwzNj0y
+        ND0zMz0zMz0yNDwzNjwzNj8zOTowQF9txYiKykI0Pz8yNH96mXRwoV5bjVZXinJwmlxbjVlXi1ZUglpZ
+        eVpYdUhJZTo3V0hAaVJFZTAsUCwqVDo4YnWV6FRNck1AWk8/V1hFVlhFVFBEViYlPyUkPmtpaH9/fwAA
+        AAAAAAAAAEU+PjwzNjMzQTwyPj0zOTwzNjwzNjwzNj0zOTYvRHeN5Xt2qT81Oz4zNj80N0AzNT8zMz8y
+        MIV+qYF7pG5pnGpnmHl2pGFdjmNei2JbgEQ/Xzk0Uzw1Vj1BWU9JXEk9WUxBW0ZCW3N/3zw4VURBV0VC
+        WEA9UyAiQCQjQyknRWdlaX9/fwAAAAAAAAAAAAAAAAAAAD0zOTYzQj00QT0zPzwzPXyEqXWX4zItSDwy
+        OD4yOD4zNj4zNT0zMz8zMz8zMT8yMD8zLz0zM1tahmJdkFtZh3RvlnRvomNekVZTgUlBaUE6Wzw1Vjk0
+        VDs2UTw2T0JAXkg9XV5cvCQlSyQnTSYtVCgqTCosSzIwTWppbgAAAAAAAAAAAAAAAAAAAAAAAAAAAHNx
+        ckxLUnqHnWJ4okVBTUtCR0lBRUlCQ0lCQklCQkxCQktDQUtCQEtCQEtCP0tCP0pCP0tDP0pDP1xZalpY
+        cFRSamtkfHVvg2pkeGJYck5HXUdBVUVAU0Q/UElDVExEWExFWkVBdTo6UUdJaElJZklJZk5LZwAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAtbCyAAAAAAAAAAAAAAAA/////8AAAAGAAAABgAAAAYAAAAGAAAAfgAAAD4AAAAGAAAABgAAAAcAA
-        AAHgAAAB4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH8AAAD/AAAA/gAAAPwAAAB4QAAAOeAABxvAAAPfgA
-        AD/4wAIf8YfjH/OP8Z/zn/nP97/9z////+8oAAAAMAAAAGAAAAABABgAAAAAAAAAAABIAAAASAAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAA
+        AAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAA
+        AACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAA
+        AAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAA
+        AACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAA
+        AAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAA
+        AACAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADgAAAAAAEAAPAAAAAABwAA8AAAAAAfAAD///////8AACgA
+        AABAAAAAgAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+fn53d3dr
+        a2teXl5UVFRNTU1LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
+        S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL
+        S0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tMTExRUVFZWVlkZGRxcXF8fHx/f38AAAAAAAAAAAAAAAAAAAAA
+        AAB9fX1xcXFaWlpCQkI0NDQuLi4rKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
+        KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
+        KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiotLS0xMTE6OjpOTk5nZ2d5eXl/f38A
+        AAAAAAAAAAAAAAB/f39ycnJUVFQ1NTUjIiIeHBwcGhocGhkcGhkcGhkcGhkcGhkcGhkcGRkcGhkcGhkc
+        GhkcGRkcGRkcGRkcGhkdGhkdGhkdGhodGhodGhoeGxoeGxoeGxoeHBsfHBsfHBsfHBwfHRwfHR0fHh0f
+        Hh0fHR0fHRwfHRsfHBsfHBseGxoeGxofGxofGxofGxofGxofGxofGxofGxofGxogHBshHx4hICAjIyMt
+        LS1FRUVmZmZ7e3sAAAAAAAAAAAAAAAB6enpfX18uLCwWFBQUEhEUEhEUEhEUEhEUEhEUEhEUEhEUEhET
+        EhEUEhEUEhEUEhEUEhIUEhIUEhIUEhIUEhIVExIVExMVExMVExMWExMWFBMWFBQWFBQWFBQWFBMVExMV
+        ExIVExIVExMWFBQXFRUWFBQXFRQYFhUYFRQXFRMXFBMWFBMWExIWExIWExIWExIWExIWExIWExIWExIW
+        ExIWExIWExIfHBoiISEsLCxLS0twcHB/f38AAAAAAAAAAABxcXEvLS0UEhIUEhIUEhIUEhIUEhIUEhIU
+        EhIUExIVExIVExIVExMVExMVExMVExMVFBMVFBMWFBMWFBMWFBMWFBMVExMVExMVExIVExIVExIWFBMX
+        FRUcGhohIB8mJSQtLCw1NDQ9PTxCQUFJSEhAPz8nJSUXFhUWFBQYFRUYFhUYFRQXFRQXFBMWFBMWFBIX
+        FBIXExIXExIXExIXExIXExIXExIWExIaFxYiISE4ODhiYmJ8fHwAAAAAAAAAAABUVFMVExIVExMVExMV
+        ExMVExMVFBMWFBMWFBQWFBRFQ0NUU1JUUlJTUlIkIiIUEhEUEhEVExM2NDRXVVVYV1dbWlpdXFxhYF9k
+        Y2NqaWlvbm5zcnJRUFBIR0dgYGB2dnZzcnJvbm5paGhjYmFJSEhEQ0NHRkZEREMvLS0fHR02NTRUU1JW
+        VFNWVFNWVFNVU1JGQ0IXFBMXFBMXFBMXFBMXFBIXExIXExIXExIeGhowMDBXV1d3d3cAAAAAAAB/f38s
+        KioWFRQXFRUXFRUXFRQWFBQVExMUExJEQkLg4OD////R0dHEw8P///////+hoaFJSUhDQ0KdnJz/////
+        //////////////////////////////9dXFwfHR2FhIT///////////////////////+dnZ0pJyYnJSU1
+        NDRFREScm5v////////////////////////g4OBlY2IYFRMYFBMXFBMXFBMXFBIXExIXExIrKilRUVF0
+        dHQAAAAAAAB+fn4bGhkYFxYdGxsgHx8jIiIpKCcvLi5OTk7y8vLZ2dlra2tJSUhJSEhHRkaampn///+t
+        ra0sKyo0MjLh4eHh4OAoJiUWFhYRFBYRFRcSFhgTFhkTFhkUFhkZGBiEgoL///8YFhUYFhYZFxcmJSSY
+        l5f////R0NAZFxYXFRUbGRiPjo7///9JSUk3NjUlIyIaFxc2MzPR0ND///83NTQYFRQYFRQXFBMXFBMX
+        ExIWExImIyJPT09zc3MAAAAAAAB3d3cZFRQcGRgcGRkaFhYgKC0dICUZFhWysbH///9HREMZFRQZFRQZ
+        FRQZFRQYFRPBwMDBwMAYFBMYFBNVUlH///+Xl54iIjQoJzckIzQfHi8bGigYFiAYFBUYFBKEgoH///8Z
+        FBIZFBIYFBIYFBIbFxV2c3L///+EgoEZFRMYFBKHhIv///8ZFBIbFhUcFxYcGBgaFRVAQ0////+EgYEa
+        FRQaFRMaFRIaFRIZFRMRERUeHCBPT09zc3MAAAAAAABzcnIYFBQYFRQYFRUXExQeJywcHiQXFBT///+j
+        oaEYFBMZFRMZFRMZFRMZFRMZFRPCwMDBwMAYFBMYFBIYFBKTkpL///9jYnAqKT4eHjIWFSAXExQYFBIY
+        FBIYFBKEgoH///8YFBEYFBEYFBEZFBIZFBIZFBLCwMDw7+8ZFBMYFBGHhY3///8YExEZFBMZFBMZFBQX
+        EhMkKTj///+EgYEZFBQaFBIaFRIaFRIaFRIWFBQeHCFPT09zc3MAAAAAAABzcnIYFRQYFRQYFRUXExQe
+        Jy0cHyVVU1P///+EgoEYFBMZFBMZFRMZFRMZFRMZFRPCwMDBwMAYFBMYFBIYExEnJCXi4uTj4+UzM0cW
+        FykVEhQZFBEYFBIYFBIYFBKEgYD///8XExIXExIXExIXExEYFBEYFBGEgoD///9HQ0IYExGIhY////8Y
+        ExEZFBMZFBMZFBQXExRfY3D///+EgYEaFBQaFBIZFBIZFRIaFRIaFRIkISFPT09zc3MAAAAAAABzcnIY
+        FBMYFBMYFRUXExQeKC0bHyVVUlP///9WU1IYFBMYFBNGQ0LBwMDBwMDBwMDw7+/BwMAYFBIYFBIXExEi
+        ICliYnH///+VlZ4RER0WEhIYFBIYFBIYFBIYExGFg4P///8nJCsmJCokIikeGyEXFBcZFhdYVVb///9W
+        U1MXExGIhY7///8YFBAZFBMZFBMoJCR0cnPx8fLw8PAoIyMZFBMZFBIZFRIZFRIZFRIZFBEpIx9PT09z
+        c3MAAAAAAABzcnIYFBMYFBMYFRUXExQeKC0cHyVVUlP///9WU1IYFBMYFBMoJCJWU1JWU1JWU1JWU1JG
+        Q0IYFBIXExEdGRwvLUEoJz6WlqD///9OTVITEBIYFBIYExIXExEaFhWQj5T///82Mz82Mz80MT0yLzon
+        JC8rKDFiYGf///9cWl8cGR+Fg4j////////////////////////U1dpKR04ZFBQZFBMZFBIZFRIZFRIZ
+        FRIZFBIpIh5PT09zc3MAAAAAAABzcnIYFBMYFRQYFRUXExQeKC0cHyVVU1P///9WU1IYFBMYFBMYFBMY
+        FBMYFBIYFBIYFBIYFBIYFBIWEg8hHicvLkQkJTokJDPf39/f3t8eHCIVEhMYExIWEg8mIyqVlJv///87
+        OEQ7OEM6N0I6N0I2Mz00MDl4dnv///9iYGYmJCyJh4z///9UUlhRUFRVUlJ1cnLR0NHx8fNJRk0ZFBQZ
+        FBMZFBIZFREZFBEaFBEaFBEpIR5PT09zc3MAAAAAAABzcnIYFBMYFRQYFRUXExQeKC0cHyVVU1P///+E
+        goEYFBMYFBMYFBMYFBIYFBIYFBIYFBIYFBIYFBIXEhAfHSQqKT8eHzMTEyFNTVH///+SkZcXFyYSDxMc
+        GBcsKjuOjZj///8/O0c/O0Y+O0U+O0U6N0I5NkGYlpv///9LSFIsKTSMio////8cGSEVEx0SEBgVEhYo
+        JSnx8fOzsbQZFBQZFBMaFBIaFBEaFBEZFBEZFBEpIR5PT09zc3MAAAAAAABzcnIYFBMYFRQYFRUXFBQe
+        KC0cHyUXFBX///+ysbAYFBMYFBMYFBMYFBMYFBMYFBLg4N/BwMAYFBIXExAdGx8nJzwdHjIUFCMODRWO
+        jZH///9ZWWgQEB4eHCI4NkiJiZb///87OEY+O0c+O0c+Okc6N0U2M0Tk5Obj4+YqKTsrKTmNjJX///8e
+        GyMZFyMXFSERDxkSEh3Fx87CwMIaFBQaFBMaFBEZFBEZFBEZFBEZFBEpIR5PT09zc3MAAAAAAABzcnIY
+        FBMYFRQYFRUXFBQeKCwcHyUXFBSjoaH///9WUlIYFBMYFBIYFBIYFBJVUlH///+EgYEYFBIXExAcGR4p
+        KT4gITYWFygPDxohICrg4OLh4eMnKDkiIjA1M0aHh5T///8iITIyMUQ1M0YyMEQtLECpqbH///9ra3kc
+        HDEaGiuFhY////8eGyYdGiQaGCQSEBshIi3i4+a/v8MTERYZFBMaFBEaFBEZFBEZFBEZExEpIR5PT09z
+        c3MAAAAAAABzcnIYFBMYFBMYFRUXExQeKCwcHyUXFBQnJCTR0NDw7+90cnEnIyInIyJ0cnHw7+/g4N8n
+        IyIXExImIiBXVVdjYnBdXW1WVmRSUltVVWCEg4v///+UlZ0nJjkqKj+Hh5L///9XV2JXWGVgYHFxcYDF
+        xcv///+lpq4aGi0WFykZGiqGhY3///9hX2hcWmFYV19hYGfAwMT///9fXmcPDRgRDxUUEhQXExIaFBEZ
+        ExEZExEpIR5PT09zc3MAAAAAAABzcnIYFBMYFBMXFRUXExQeKCwcHyUXFBQYFRQnJCOjoaD/////////
+        //////+ioaAnIyIYFBIXExJVUlH///////////////////////////////////8wLkAtLEGIiJP/////
+        //////////////+2tr5tbXsiIjYXGS0KECQXGCmFhYz////////////////////BwcRrb4EPDRoQDhkP
+        DhcPDhQSDxQWEhMZExAZExEoIR5PT09zc3MAAAAAAABzcnIYFBMYFBMXFRUXExQeKCwcHyUXFBQYFRQY
+        FBMYFBMYFBIYFBIYFBIYFBIYFBIYFBIYFBIYFBIXExIXExInJTQkJDoaGy8aGiwaGisYGSwaGy8gIDM1
+        M0QwLkEhITQdHSwODxwJDRsPGjQQGjURGjMUHDQUGjIMFSsIECUNECEPEB4LDhshITEmIy4ZFiATDxoW
+        FyUgJEAODBkQDhkPDRgPDRURDhQREBQZExEZExAoIR5PT09zc3MAAAAAAABzcnIYFBMYFRMYFRUXExQe
+        KCwcHyUXFBQYFRQYFBMYFBMYFBMYFBMYFBIYFBIYFBIYFBIYFBIYFBIYFBIXEhAiICooKD4cHTEdHTEd
+        HjIeHjMgIDUkIzc6N0gvLUAiITUXGCYIChYJCxcRGzcQHDoOGTUMFi8OGDINFy8KEycIDh4ICxgGCRQf
+        Hy0lIi4XFBwTDxoWGCceIj0OCxkPDhkPDRcPDRUQDhQREBUYExIZExApIR5PT09zc3MAAAAAAABzcnIY
+        FBMYFRQYFRUXFBQeKCwcICUXFBQYFRQYFBMYFBMYFBMYFBMYFBIYFBIYFBIYFBIYFBIYFBIYFBIXExEa
+        FhckIzQiIjkfHzQeHzMgIDQeHjIoJzk6N0kqKT4gIDMUFSQFBxIMDhUWHTEUHDMSGzUPGTQSHDYPGDEK
+        EicIDRwHChYFBxAfHyoqJzMZFB0UEBoXGikdIDkNCxgQDhkPDRgPDRYODhQREBUYFBIZExAoIR5PT09z
+        c3MAAAAAAAB3dnZBNzRBODVAOTg+NTZRbXhLVmQ+NjdAODZBNjNBNjJBNjJBNjJBNjJBNjJBNjJBNjJB
+        NjJANTFANTFANTE/NC5DOj1LSGZQUYRVV41RU4pISn58d6eVjsVjYp9aWYguMVYbIDhkb4Rxfplve5FG
+        U3dDU4FFTmwpOm03R3EwNVAdITkNECJTUWx9dJVBNlE2KURDT3dLU5AjHD4rJkQrJkEqJDsmJTUvLDdE
+        NTBENCw9MS1PT09zc3MAAAAAAAB3dnZANzRANzRAODg9NDZQbXhLVmQ+Njc/ODY/NjNBNjJBNjJBNjJB
+        NjJBNjJBNjJBNjJBNjJANTJANTFANTFANTE/NC4+My1BODxFQFBHSGxOT4CQiryEf7thYJpbWYQhJEZT
+        XXSKmrh/japXYIEoNGhhb5ZRWGs/Rl52gZNFSWEoK0ESEyBMS2eEfKA+NVEzJkJKVoBIT4gnIEAuKEUu
+        J0ArJTopJzczLTNGNSxFNS03MC9PT09zc3MAAAAAAAB3dnZANzRANzRAODg+NDZRbXhLVmQ+NjdAODZB
+        NjNBNjJBNjJBNjJBNjJBNjJBNjJCNjNBNTRBNTRBNTRBNTNBNTNBNTJBNTJANS9ANC06LytpYn2ak8lv
+        baxfX5ROTHYiJkiDkq59i7hpc50nNGofOIxca5ZIVHMwQG+Cj6RJT2oiJj8NESVCRGaHgKk+NlIvJD9M
+        XotIS4IsJEMwKUYyKUEuJzsqJzY3MDBDNzE0MDQvLC9PT09zc3MAAAAAAAB3dnZBNjRBODVBOTg+NTdR
+        bnhLVmQ/NzdBOTdCNjRCNzNCNzNCNzNCNzNCNzNBNjRBNzZANjU/NTRBNzhBNjdBNjZCNjZCNjVCNjVB
+        NTRBNTaNg6WPicJfYKBgXo84OGAnMFJ5ia01PG4lK1MbJFkvRK0+T444T5AqRIp0gZpGTWUXGjIMEio5
+        PmGIga1COlYtIj5RaJdER3otJEMvKEQyKUAtJjknJTIzMDM1NDoxMTgxLjBPT09zc3MAAAAAAAB3dnZC
+        NzRBODVBOTk+NTdSbnhMV2Q/NzdCOTdCNzRCNzNCNzNCNzNCNzNCNzRCNzdANThFP05OSGVANTtBNDo+
+        MDVBNjpCNzpCNzo8MTFhWG6Nib5qaKVbWpFNSnonKV09Q4JgZK45Noc9OIRIQZRGSKUgMoIfMnMhNG1j
+        b4s4PE8OESYPEyoyNVGJg7JLQl8xJD9WcKFBQ3UvJkMyKkUwJz8qJDcoJzEuLTYtLTcsKTQsJS5PT09z
+        c3MAAAAAAAB3dnZCNzVBODVBOjk+NTdSbnhMV2NANzdCOThDNzRCNzNCNzNCNzNCNjRCNzZCNzs9MjlZ
+        X5FRSXs7LTpJSV5aaoxEPk8+MTU8MDhLQlh+d7Z0csdkY7pkYbRcW65UVKlLTKE6PI0wL3MdHUsSEzQZ
+        HjQnLlIZHDwVGTU3PlIdHzEQEiUOESMtLkaRibVVTGkyJUBbdqg+P28vJkIyKEMvJjwqJjgrKjMsKTMo
+        JzQnJTMsJS5PT09zc3MAAAAAAAB3dnZBODRBODVAOTg+NTZRbXdLVmQ/NzdBOTdCNzRCNzNCNzNCNzNC
+        NzRBNzhANTxHQ1tmbLZKTnJdcqBphsNjbrJZUItYT4thWZh9d8t4ddZiX7VJSpJRWIuBjbFjbJUUG0Y6
+        RnVlb5pJUGsmKUIWFSgjJDMiJDQZGScREyEQEiITFCMQEh4oKT6Nh7JcUnIvJkJffa87PGYuJkEyKUEu
+        JzstKjcoJDAnIi8qKDMoKDMtKS9PT09zc3MAAAAAAAB3dnZCNjRBODVBOTg+NTZRbXZLVmM/NzdBOTdC
+        NzRCNzNCNzNCNzNBNzVBNzk9MDldcZh4neh1kd9mcMheVqRhV55ZUotZUoGDfbh6d7ZNTYEtL1YfKlF+
+        jaKSo8NcZY4sMVaNnMWMmLp+i6VSWW4bGS8PCx0gIC0iIy4ZGyYWGCIaHCUbHSQoKzqAe6hYT3AsJ0Rk
+        g7Y3OGAtJUAvJz4qJTctKjYkHy0gFyklHy8oJjMuKi9PT09zc3MAAAAAAAB3dnZCNzRBODVBOTg+NTdR
+        bXdLV2M/NzdAOTdBNzRCNjRCNzRCNjNCNzVCNzk+MTpWcISBtvZmdsVNSn1BNFE6LTk+ND1pYYZnY5NF
+        RXUuLVEaHD01PVx/j65vfKU0OV5rdpOfsdOMmbZ+i6FKUmUUESkyNElsdIdgaHlDR1gmJzEcGR8aGB8k
+        JDNsaZdUSWctK0hlhLs2NFsrJD4sJTsnIjQsKzUgHCkdFicfGCojHS4tKC9PT09zc3MAAAAAAAB3dnZC
+        NjRBODVAOTg+NTZRbXZLV2M/NzdBOTdBNzRCNjRCNzNCNjNBNzRBNzdBOD0/Mj9JTWpUYYdgfKFnfLNY
+        XIVIRGQ6OFouLE0qKEolJDsuOV8/Upk2TJoiM3kxP3ugsNKrvNmXpr5we44wM0QdGzJ/jKOJl6p6hpZg
+        Z3o9QFkcGSwRCRchHTBhX4lHOlcxMlBohsM3M1YrJT0sJTonIjEpKDEbFSUdFicdFykgGSwqIy1PT09z
+        c3MAAAAAAAB3dnZBNjNANzRAODg9NDZQbXZJVmM+NjdAODZCNjRCNjNCNjNCNjNCNjNCNzVBNzhBNz0/
+        NDw9MTs9MjxEQEtUY3peYZIyMlMuLkwlJEIlKkQrRIU0U6Y1UqgyTaIwS5tEV5hjc6BzgqQ+SW4gKE0t
+        NVV5hp2JlaZ/iJhiaXs6PlgbFi4VEiMyNUpZUnc+L0k7PFtpiMg8NFQuKD4pJDYjIS0jHyocFCYbFScb
+        FSgfGCwpIyxPT09zc3MAAAAAAAB3dnVANjNANzRBODc9NDVQbXZJVmM+Njc/ODZANjRBNjJBNjJBNjJB
+        NjJCNjNCNjVBNzZBNzhBNjpBNjpANDY+MTR0caZiXo0yMVMkKEcbIUUhNGokQIIqSZgvT6M1WLIxUKgm
+        QIooQIYtRo8tR44tRowmN247RGZlboJZX3IvNEseHzEcHytDQltORF5FMklCRGNphsg3LU8sKTwjITEk
+        IywgGiYcFicaFCcaFSgeGCsoIyxPT09zc3MAAAAAAAB3dnU/NTI/NjNAODc9MzVQbHZKVmM+NjZAODZB
+        NTNBNjJBNjJBNjJBNjJBNjJBNTJBNTNBNjRBNjRBNjVBNjU+My9bWYOgmt99d7JAPmYiI0gZH0YeMGUh
+        OnskPoQvS5k2WK8tTp4rS5gtTJkvSpQ0UJwyTZUkN3IcKFQeIkAaGjQeITQwMkVUUHVDNU1INUxCR2ln
+        gMM0JkkvLj0jIS8lJS8cGCcbFCcaFSgaFSgeGCsnIitPT09zc3MAAAAAAAB3dnVANDI/NjM+NzY8MzVP
+        bHZKVWM+NTZANzZBNTNBNjJBNjJBNjJBNjJBNjJBNjJBNjJBNjJBNjJBNTNBNTNANC9MSmh6fMOwqO2g
+        l9VgW5I8OmMmJ1AcI1AVIk4TJFUZL2keOXggPH4hOnkiOHMkO3UhOXAaLlwXHkUSFTMVFS8sK0tXU3tN
+        Rmk9MEhAL0pBSW5jergxJEYxLj4gIC0bHSoZFiYaEycZFCcaFikbFiklISpPT09zc3MAAAAAAAB3dnVA
+        NTI/NjM/Nzc8MzVPbHZJVmM9NTZAODZANjNBNjNANTE+Mi8+Mi8+Mi9ANDFBNjJBNjJBNjJBNTJBNTNA
+        NC9MR1xkaKmHhtGknemdl+GIgsV0b6tcV4lPTHRJR2lCQmI4OmA2PmswOmcqM1wnLlEoLU0oKkYnJ0Et
+        K0ZAPVxXUXhEPV49M00+MUwxJkZASnFecbAuIkQuKj4eHSwYGCcYGSgbGCoaFScaFSkYFCckIClPT09z
+        c3MAAAAAAAB2dnU/NTI/NjM+Nzc7MzRQa3VJVWI9NDU/NzU/NTI/MzFEODZMQkJNRENLQUE+NDI8MS48
+        MC0+Mi0+My9BNTFCNzBQS1xpbrRmbLF1ecCLi9aUkt6ZleGVkNiZkteclNOVjsiDfbh7dq6AeatzbZ9V
+        VIRdWoZgW4ZZVIFPSW5GQWNBO147M088MUs4LkosI0NFT3hdaqkvJEQuKD8cHCwXGSgbHCwdHS8cGCsb
+        FioZFSglIytPT09zc3MAAAAAAAB2dnU9NDE+NTI+NjU7MTRPanVJVGE8MzU+NjQ+NDE4LCpvYmTJwMjB
+        u8K3sbeZkpd7c3RaU1hOSVpQTGNDPk9DPT5XU2FxeMNvecJqd7xncbhla69zdrl9fsh7fMd9fcZ1dr5u
+        cLVmaaxmaKlYXJxHTYtVV5FTVIpRUIROSnhHQ2s7Nlo3ME4yK0guKEcuJkhNV4RZYaIzJkQxKkEdHC4Y
+        GSscGywaGiwbGSwZFCgbGSsmJCxPT09zc3MAAAAAAAB2dnU9NDE+NDE+NjU7MTRPanVJVGE8MzQ9NjQ+
+        NDE9MS5IOzrJu8Ln3uTZz9TUycvAtrl/e5d6d6Nyb5pdWoJGRV5bW27N0Ovs7vnn6fXQ2uuAkMdYX6lT
+        W6FRWZpWX5xgaalia7FjbKxeZqNYX5xUW5VVWZBOUYdMToJKSnxCQW03Nlw0MVU5NVs7OF43LVFOWYxX
+        Wpw3KUY0K0McHC0ZGSoYGSkZGSgaGywZGisYGSsjIitPT09zc3MAAAAAAAB2dXU+MzE+NDI9NTU7MTNP
+        aHNIU2E8MzQ+NTQ+NDE/MzE4KymTg4Xs3ePk2t/bz86qobmNiL2IhLZta5hcWodZWH66usX/////////
+        ///a6vSAi8djaLBeZbJlbLhkaKdod6+QotWDjc9pc7NXXpNZX5RcYpxXW5VLToJBQnFCQ3BJSHZJSHZI
+        RnQ1MlgtJkxNWpBSU5M2KUc3LUQcHC0YGSkWFycZGCgZGSkYGCgXGCkjIipPT09zc3MAAAAAAAB2dnU9
+        NDE9NDI+NTU7MTNPZ3NIUmA9MzM/NTQ/MzE/MzE9MC5NPz7Etbjr293LvsWclsmcl9CFg7pwbKNaWIJt
+        bYb5+vr////////CzOOMkc19fsRucrlqbbpydb5rb6awwdT////19v3h4/OprM1pb51VXJBYXpZQVIlG
+        Sn5ARXs+Qnc6PGs0MlsuK1EsJk1OXpFMToo5LEoyKz8XGCoXGCkXFycZGSgZGCgXFycZGCcjIihPT09z
+        c3MAAAAAAAB2dXU/MzE+NTI+NTU8MTJPZ3NIUmA9MzM/NTU/MzI/MzBAMzE4Kyl1Z2fbysm6rcCcmNOZ
+        lNGBfrxpZ5dNTXOAgpn+///U1uysrdiPj8yCgsh2ecF4eMBtbrd1d75ocanY4er////////////////m
+        5/WZncZVXo9LUX5RVIU3O2kmKlMqLFQyMVgvLVQnJEtNY5RIR381KkUuKDsVGCkXGSkXFycaGikZGSgZ
+        GSgXGCYjISZPT09zc3MAAAAAAAB2dXU+NDE9NDI9NTU6MTNPZ3NIUmA7MjQ8NTQ+MzE+MjA+MjA+MjA7
+        Ly+Qg4Oso8GMicSGhMhoZ55VV4RPU4Nla6F+g7Zxc6yAfbiHhMN6eL98esF1dLltbbB5ebxscqrQ1N3/
+        ///////////////////////F0ONqfadDSXExMVInJ0cnJkYoKEkrK1EnJ1FPapw/P3IxJ0MpJDcVFigY
+        GCkXFycaGSkYGCcXGCUXFyMjISRPT09zc3MAAAAAAAB2dXU9NDE9NDI9NTU7MTNPZ3NIUmA8MjQ9NTQ+
+        NDE+MjA+MjA/MzE7Ly9FOz6TjbmOjM9mZqdbW5JVV45nZ6Fycax1c6hyb6Rua6F4dLB8eb1/fMN5d7px
+        b6x6eLhwcq2PkrD////////////////////////////C6f92lcRQYYcrMFIfHj0jIT4mJUYkJEpQbp43
+        N2gsJUIhIDMWFygXGSgYGSgaGSkYGSkXFyUWFSApJitPT09zc3MAAAAAAAB2dXU+MzA9NDI9NTU7MDNO
+        ZnNIUmA8MjM9NDQ9MzE+MjA+MjA+MzA9MjI8MjmVkMino+mQjNmbluq3rfLCt/i+s+2eltBzcbFkYpxh
+        X5tzcrlxb7Nwb61ua6RbWIxcXIljZZWgosb4+P3////////////////////J8/+LteWBpNKEos4zOVsb
+        GzceHj0YGkBOcaMtLl4kIDweHjAWFygYGSkbHCwaGiodGSkgHSwkJS8sKS9PT09zc3MAAAAAAAB2dXU+
+        MjA9NDE9NDU6MDJOZnNHUWA7MjM9NDQ9MjE+Mi8+Mi89MjA9MjI6MTaDf6+loeykoPuvqv/Buf+9tf+5
+        sPaSjdNmZ7BUVppiY6tvcLxnaK17d7Z4c6pdW4xJSXBPUnNSVXqAgZvR0tz////////////0//+47P+F
+        q9x5mceTs94/SmkVFjMdHDsaG0FTeKwmJ1QcHTceHTAVFiYZGikbGywaGCkfFygiHSwkJDIqKC9PT09z
+        c3MAAAAAAAB2dXU+MjA9NDE9NDU6MDJOZXNHUWA7MjM9NDQ9MzA+Mi8+My8+MjA+MzE7MTNFPk55dKqk
+        oPStqf+sqP+jof+infmBgNVXXKxTWKN4ecdtb8CemeK2rOaUjcVvap5SUHtISGtMTm5KTWdUV26Hi5um
+        sbq0z9SbxtZqirJNX4Y6RGUvNFMcHjwZGDccGDknJktZfbMnI0wfGzUlIjUgHy8gIC8gHi0bFiYaFCYf
+        GioiHi8tKTJPT09zc3MAAAAAAAB2dXU+MjA9NDI9NDU6MDJOZXNHUWA7MTM9NDQ9MzE+Mi8+My8+Mi8+
+        MzA9MzM1Ky1hWHqfnO2nofiqpv+opP6opP+OjOVnartjZ7Z1d8Z9ftbEu//DuvmjnNx1calcWYdRTnhF
+        RWpESGpESmdBSGE/S2NAUGs/TnE6Q2gvNVYjJUEfHTsdGjkgHT0qJkg3Nl1ihbxAPGRGQmBHQl1AO043
+        MEE0LTwuJzMdFyYeGCkjHjAuKzVPT09zc3MAAAAAAAB2dXU9Mi88MzE8NDU6LzFOZXNIUWA8MTM9NDQ+
+        MjA+Mi89Mi89Mi8+Mi8+MzE7MTFGO0qDfrebluWuqP67tP+0rv+Wle1vcsVrb8F0d8iRj+ioo/ygnfSs
+        pe2UjcZybaBpZJVaWIZGRW04O102Pl46Q2M6Q2E4PlwvNFMpLU8nKEsqKU4sKUwuKUwzLlVGSXV1ltJ8
+        eKxnYYdGQV07Nk1CO09NR1VJREw7NTwiGyogGy8vKzdPT09zc3MAAAAAAAB2dXU8MzA9MzE9NDU6LzJO
+        ZXNHUWA8MTM9NDQ+MjE+My8+My8+My8+My8+Mi8/MzI6LzFHPU50cKOinOO8s/+wqvyKi99pbsBna7p4
+        esqhnfGin/iSkeqYleKXktaIhMJ8eLN1capgXItEQGE2NFExNFE0OVc0NVMuLk4oKUw0Mlo9OmI9Ol46
+        Nls+OGNcYpWCn96Beq9bVXs9OFRBO1N+dn2TjY6Df4JybnJVUFYzLTgtKTNPT09zc3MAAAAAAAB2dXU8
+        MzA9MzI9NDU6LzJOZHJHUGA7MTI9NDM+MzA+My8+My8+My8+My8+My8+MjA+MzM7MDM9NUVeWoCim9ap
+        oud+fMJub7Ztb7Z0dL2inu60rf6ZleWLiNGMic2LiMmFg8V7ebt9d6l0bJFUTW84M08uK0gyMEwtKUci
+        IEAyL1FAPGJFQGhDQGpPSntveLSEmt52cKBTT3M7N1ZpY3almpuupqioo6iinqOdm59/fH5BPD5PT09z
+        c3MAAAAAAAB3dnY+MjA9MzI9NDU6LzJNYnFHT187MTI9MzQ9MzE+My8+My8+My8+My8+My8+My8+MjA+
+        MzI9MjU5LjZQSF2FgKh5dqxtaqRzca9xca6PjNK3r/+aluOKh86NicqJhsSHg8CAfbt/e7aAeaxwaJJO
+        R2o3ME8vKUgqJkQkIUAuKUk/O2JJRXNIRXZXU4l/isiEltxybJtIRGhGQmGfl5+3rrGwqKytpaquqK+s
+        qK6np6xjXVxPT09zc3MAAAAAAAB3dnY9MjA9MzI9MzQ6LjJNYHFHTl87MDI9MzM9MzA+Mi8+My8+My8+
+        Mi8+My8+My8+My8+MjA+MzI+MzQ6Li9COkFnZYhoZphjYploZp1saqCknt+cltuJhseQiseKhcGDf7uC
+        frmCfbV+eKt1bZljWoFIQWQ4MlQqJ0gnJUQzMVNFRHBLSXlLSn1bWZSAjciBktdpY49CPGBcVnavo6e6
+        r7OwpKqsoKSupKmqo6iKh45XTEtRUVF0dHQAAAAAAAB3dnY8Mi88MzE7MzQ5LTJNX3FHTF86LzM9MjM+
+        MjA9MS89MS49Mi49Mi49Mi49Mi49MS8+MS8+MS8+MjA/NDE8MCxDPEVoZ5Jtap1WV4xSUoVubJmTjb+X
+        kMaWj8GJg7h4da91c7B8eLR8d618dKN2bJVhWH1IQWQ1MVQvLVA7OF9GQ3JHQ3RERHdYVpJ9i8Z+jdFh
+        WYVAOVtdVnGcj5OvoqauoaWsn6Sjl5yPhYp1ZmdMPT1WVlZ3d3cAAAAAAAB7eno8My88MzA7MzQ6LjJN
+        XnFHS187LzI8MzM+MjA9Mi89Mi89Mi89Mi8+Mi8+Mi8+MjA+MjA+MjE+MzE+MzM+MzM7MCxMRlpta5tj
+        YpdHSYNSU4lnZo+HgaeHf6V/eKBwbJ5saaJ9eLOIgruDfLB1bJlsY4pTS24+OFw0MVY4NFw/OWI9OGI1
+        OGxPT457icZ6h8peVoBDPF5jWm+Shomfk5ehlZuWjJR+cXduXF1lT081LTZgYGB7e3sAAAAAAAAAAAA9
+        MjA9MzE8MzQ6LTJNXXFHS187LzM9MzM+MzA+My8+My8+My8+MzA+MzE9MzE9MzI+MzM+MzM9MjI8MC88
+        LzA9MztIQ1hoZ5Z6dqdva5tgXZNXV4dcXIRuao9mYodeXIZiYI5taZuFfq2DfKlmXodbU3pUS29EPGI3
+        Mlk6NFtCOl4zMVc0NmhKS412hsZ5hcRdVX5IQGFiWG2Mf4CJe31+bnJwX2NoVVZRQkksJjs1MTttbW1/
+        f38AAAAAAAAAAABANzU9MzI9MzQ6LTNNXHJHS2A7LzM9MzQ9MzI+MzE9MzE9MzI9MzM9MzM9MjM9MTI7
+        Ly87MDRFPEtLRmZQUHxgZJtaXI5OSWB3cpx/eKhuaZhkYZFbW4loZ5NdXIxZV4ZaWIZcWoVlY4lvaotk
+        XoBaVHlRS28/O2E8OF9MQmZCOV0tK1AzMl0/PXRmebh9hsNbVHpIPlxKPlhfTFdnUVVoUVVpUlVFOkgh
+        IDkhHzlPTVJ6enoAAAAAAAAAAAAAAABcV1c9MzI9MzQ6LTNNXHJHS2A7LzQ8MzU9MzM9MzM9MzQ8MjM7
+        MDE5Li89NDtCPVFOTHFgY5xiZqFSUHpFPlZANT88Li85LChfV2eKg65zbptiYJBfXZFraZV3c6FgXY9a
+        V4hdWodeW4NYVHNJRV5CQFg9PlZCQ2RNSnJVSmhDOl40L1M4MlY7M1ZRZpRgaJ5OR2hPQVxRQlpTQlVZ
+        RVNXRVM/NUojI0AkI0EtKj93d3d/f38AAAAAAAAAAAAAAAAAAABFPj09MzQ6LTNNXHJHS2E7Lzc9Mjc8
+        MTM5LjA6MDVBOkVHRV5YXotjaqBUVYVKSGtHP1M8MTc7Li8+MTI/MjM/MzM+MjA9MS1oYX98eKh0b59r
+        Z5tmZJVyb5lzb6FgXI5gW4tgW4dTTnRBO1w5NFM7NlQ7N1Q9PFhEQFZIQ1hMQ1lLQ1pDOlNUaZhPUIE1
+        MU4uK0kyME8vLUgtK0QoKEIhI0ElJkUrKkhnZWp/f38AAAAAAAAAAAAAAAAAAAAAAAAAAABLQ0U6LTNN
+        XHNFR144KzM+NkJCQFVQVndhbqBbZJZQT3NLRl5AN0U7LzI8MC88MTE+MzQ/MzM/MzM/MzE/MjA/MjA+
+        MixCNzdaV3hjYZJjYJNeXI1eXYd8d6F1b6BjXpBcV4lQTXtGP2ZBOVs+N1k5M1Q4M1M4NFE7Nk4/PFVC
+        P1tCOFVbb6JFRnsjI0YgIkonLVkkKU8jJkolKEopKkwzMk5ram8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+        AAAAAAAAAABzcXFYYGpVX3RYXnVgZ4NVWXNSUWNOSVRIQERIP0BJP0BJQUFKQkJLQkJLQ0JLQ0FMQkBL
+        QkBLQj9LQj9KQj9LQj9KQT5MREFUT1hcWW5eW3dZV3FgXnVybYN0boRtZXxlXnZcVGxQSV5KRFlHQFVF
+        P1RFP1JHQVNJQ1VMRVlMQ1hbZodDQ2M4Nk1DQl5GR2VGRmJGRmFKSGJgXWoAAAAAAAAAAAAAAAAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
         AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4ehoaG////////////////
-        ////////////////hoaGHh4eAAAAJSAlAAAAAAAA////////////////////////////////////////
-        ////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlVYAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAHh4ehoaG////////////////////////////////////////7u7uHh4eAAAAJSAlAAAA////////
-        ////////////////////////////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAkYaJUk1RAAAAAAAAAAAAAAAANTA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        ////////7u7uAAAAJSA7AAAA////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvba4dWlsPTg8AAAAAAAAHBkdIR0jAAAA////////////
-        AAAAMCyILCh7AAAAAAAAAAAAAAAAAAAA////////////AAAAKiNDAAAAxsbG7u7u7u7u////////////
-        ////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAraWrqqKkcmNm
-        OTE1KSMnGRUaIBsfAAAA7u7u////////AAAAKyiVLCqaAAAA////////////////////////////AAAA
-        KSJLJiBDAAAAAAAAtra2xsbG7u7u7u7u////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-        AAAAAAAAAAAAAAAAAAAAqqKkyMPFo5mbZF1gOTE1OC80IR0jAAAAtra2xsbG7u7uAAAALCusLCqaAAAA
-        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
-        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
-        AAAAfwAA/gAAAAAfAAD+AAAAAAcAAP8AAAAAAwAA/wAAAAABAAD+AAAAAAEAAP4AAAAAAQAA/AAAAAAB
-        AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAA
-        AAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAB8AAPgAAAAAHwAA+AAAAAAf
-        AAD4AAAAAD8AAPwAAAAAPwAA/AAAAAA/AAD4AAAAAB8AAPAAAAAADwAA4AAAAAAHAADDgAAAAcMAAMfA
-        AAAD4wAAn4AAAAP5AAD/gAAAAf8AAP8GAAAB/wAA/w4AAGD/AAD+HhAIcP8AAP48H/w4fwAA/Dw//jh/
-        AAD8fH//PH8AAPz8//8+fwAA/Pz//75/AAD9/f//v38AAP///////wAA
+        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4AAAAAAAAA/AAAAAAAAAB4AAAAAAAAAHgAAAAAAAAAOAA
+        AAAAAAAA4AAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAA
+        AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAA
+        AAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAA
+        AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAA
+        AAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAA
+        AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAA
+        AAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAA4AAAAAAA
+        AADgAAAAAAAAAeAAAAAAAAAB8AAAAAAAAAP4AAAAAAAAD/wAAAAAAAA//////////////////////w==
 </value>
   </data>
 </root>
\ No newline at end of file
diff --git a/Source/Plugins/GZDoomEditing/General/UndoGroup.cs b/Source/Plugins/GZDoomEditing/General/UndoGroup.cs
index 0e2a6d200..a805fc1ef 100644
--- a/Source/Plugins/GZDoomEditing/General/UndoGroup.cs
+++ b/Source/Plugins/GZDoomEditing/General/UndoGroup.cs
@@ -40,5 +40,6 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 		public const int SectorHeightChange = 5;
         public const int ThingMove = 6; //mxd
         public const int ThingRotate = 7; //mxd
+		public const int SurfaceBrightnessChange = 8; //mxd
 	}
 }
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs
index 32a8d0cc6..9305f33e7 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySector.cs
@@ -244,14 +244,18 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 					float deltaz = General.Map.VisualCamera.AngleZ - dragstartanglez;
 					if((Math.Abs(deltaxy) + Math.Abs(deltaz)) > DRAG_ANGLE_TOLERANCE)
 					{
-						mode.PreAction(UndoGroup.TextureOffsetChange);
-						mode.CreateUndo("Change texture offsets");
-
-						// Start drag now
-						uvdragging = true;
-						mode.Renderer.ShowSelection = false;
-						mode.Renderer.ShowHighlight = false;
-						UpdateDragUV();
+						if(General.Map.UDMF) { //mxd
+							mode.PreAction(UndoGroup.TextureOffsetChange);
+							mode.CreateUndo("Change texture offsets");
+
+							// Start drag now
+							uvdragging = true;
+							mode.Renderer.ShowSelection = false;
+							mode.Renderer.ShowHighlight = false;
+							UpdateDragUV();
+						} else {
+							General.ShowErrorMessage(BaseVisualMode.TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+						}
 					}
 				}
 			}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs
index 72cc5ea4f..e44bfad5c 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualGeometrySidedef.cs
@@ -861,14 +861,18 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 					float deltaz = General.Map.VisualCamera.AngleZ - dragstartanglez;
 					if((Math.Abs(deltaxy) + Math.Abs(deltaz)) > DRAG_ANGLE_TOLERANCE)
 					{
-						mode.PreAction(UndoGroup.TextureOffsetChange);
-						mode.CreateUndo("Change texture offsets");
-
-						// Start drag now
-						uvdragging = true;
-						mode.Renderer.ShowSelection = false;
-						mode.Renderer.ShowHighlight = false;
-						UpdateDragUV();
+						if(General.Map.UDMF) { //mxd
+							mode.PreAction(UndoGroup.TextureOffsetChange);
+							mode.CreateUndo("Change texture offsets");
+
+							// Start drag now
+							uvdragging = true;
+							mode.Renderer.ShowSelection = false;
+							mode.Renderer.ShowHighlight = false;
+							UpdateDragUV();
+						} else {
+							General.ShowErrorMessage(BaseVisualMode.TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+						}
 					}
 				}
 			}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs
index e18f23a4e..5e1c8377e 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs
@@ -50,7 +50,9 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 	public class BaseVisualMode : VisualMode
 	{
 		#region ================== Constants
-		
+		//mxd
+		public const string TEXTURE_OFFSET_CHANGE_ERROR = "Texture offsets cannot be changed in this mode if the map is not in UDMF format.\nPlease use Visual mode to change them.";
+
 		// Object picking
 		private const float PICK_INTERVAL = 80.0f;
 		private const float PICK_RANGE = 0.98f;
@@ -1427,73 +1429,105 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 		[BeginAction("movetextureleft", Library = "BuilderModes")]
 		public void MoveTextureLeft1()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(-1, 0);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(-1, 0);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetextureright", Library = "BuilderModes")]
 		public void MoveTextureRight1()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(1, 0);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(1, 0);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetextureup", Library = "BuilderModes")]
 		public void MoveTextureUp1()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, -1);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, -1);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetexturedown", Library = "BuilderModes")]
 		public void MoveTextureDown1()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, 1);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, 1);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetextureleft8", Library = "BuilderModes")]
 		public void MoveTextureLeft8()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(-8, 0);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(-8, 0);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetextureright8", Library = "BuilderModes")]
 		public void MoveTextureRight8()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(8, 0);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(8, 0);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetextureup8", Library = "BuilderModes")]
 		public void MoveTextureUp8()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, -8);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, -8);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("movetexturedown8", Library = "BuilderModes")]
 		public void MoveTextureDown8()
 		{
-			PreAction(UndoGroup.TextureOffsetChange);
-			List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
-			foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, 8);
-			PostAction();
+			if(General.Map.UDMF) {
+				PreAction(UndoGroup.TextureOffsetChange);
+				List<IVisualEventReceiver> objs = GetSelectedObjects(true, true, true);
+				foreach(IVisualEventReceiver i in objs) i.OnChangeTextureOffset(0, 8);
+				PostAction();
+			} else {
+				General.ShowErrorMessage(TEXTURE_OFFSET_CHANGE_ERROR, MessageBoxButtons.OK);
+			}
 		}
 
 		[BeginAction("textureselect", Library = "BuilderModes")]
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs
index 275e79c58..2c9dae1d7 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualCeiling.cs
@@ -169,18 +169,12 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 		{
             //mxd
             Sector s = GetControlSector();
+			s.Fields.BeforeFieldsChange();
             float oldx = s.Fields.GetValue("xpanningceiling", 0.0f);
             float oldy = s.Fields.GetValue("ypanningceiling", 0.0f);
             s.Fields["xpanningceiling"] = new UniValue(UniversalType.Float, oldx + (float)xy.X);
             s.Fields["ypanningceiling"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y);
             s.UpdateNeeded = true;
-
-            /*Sector.Sector.Fields.BeforeFieldsChange();
-			float oldx = Sector.Sector.Fields.GetValue("xpanningceiling", 0.0f);
-			float oldy = Sector.Sector.Fields.GetValue("ypanningceiling", 0.0f);
-			Sector.Sector.Fields["xpanningceiling"] = new UniValue(UniversalType.Float, oldx + (float)xy.X);
-			Sector.Sector.Fields["ypanningceiling"] = new UniValue(UniversalType.Float, oldy + (float)xy.Y);
-			Sector.Sector.UpdateNeeded = true;*/
 		}
 
 		// Paste texture
@@ -233,7 +227,33 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
                     base.OnChangeTargetBrightness(up);
                 }
             } else {
-                base.OnChangeTargetBrightness(up);
+				if(!General.Map.UDMF) {
+					base.OnChangeTargetBrightness(up);
+					return;
+				}
+
+				int light = Sector.Sector.Fields.GetValue("lightceiling", 0);
+				bool absolute = Sector.Sector.Fields.GetValue("lightceilingabsolute", false);
+				int newLight = 0;
+
+				if(up)
+					newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
+				else
+					newLight = General.Map.Config.BrightnessLevels.GetNextLower(light, absolute);
+
+				if(newLight == light) return;
+
+				//create undo
+				mode.CreateUndo("Change ceiling brightness", UndoGroup.SurfaceBrightnessChange, Sector.Sector.FixedIndex);
+				Sector.Sector.Fields.BeforeFieldsChange();
+
+				//apply changes
+				Sector.Sector.Fields["lightceiling"] = new UniValue(UniversalType.Integer, newLight);
+				mode.SetActionResult("Changed ceiling brightness to " + newLight + ".");
+				Sector.Sector.UpdateCache();
+
+				//rebuild sector
+				Sector.UpdateSectorGeometry(false);
             }
         }
 
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs
index c646ec9f7..d3688b996 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualLower.cs
@@ -246,6 +246,37 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_bottom", 0.0f);
 			return new Point((int)oldx, (int)oldy);
 		}
+
+		//mxd
+		public override void OnChangeTargetBrightness(bool up) {
+			if(!General.Map.UDMF) {
+				base.OnChangeTargetBrightness(up);
+				return;
+			}
+
+			int light = Sidedef.Fields.GetValue("light", 0);
+			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
+			int newLight = 0;
+
+			if(up)
+				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
+			else
+				newLight = General.Map.Config.BrightnessLevels.GetNextLower(light, absolute);
+
+			if(newLight == light) return;
+
+			//create undo
+			mode.CreateUndo("Change lower wall brightness", UndoGroup.SurfaceBrightnessChange, Sector.Sector.FixedIndex);
+			Sidedef.Fields.BeforeFieldsChange();
+
+			//apply changes
+			Sidedef.Fields["light"] = new UniValue(UniversalType.Integer, newLight);
+			mode.SetActionResult("Changed lower wall brightness to " + newLight + ".");
+			Sector.Sector.UpdateCache();
+
+			//rebuild sector
+			Sector.UpdateSectorGeometry(false);
+		}
 		
 		#endregion
 	}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs
index 5a70f69b2..134a8d01b 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleDouble.cs
@@ -319,6 +319,37 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_mid", 0.0f);
 			return new Point((int)oldx, (int)oldy);
 		}
+
+		//mxd
+		public override void OnChangeTargetBrightness(bool up) {
+			if(!General.Map.UDMF) {
+				base.OnChangeTargetBrightness(up);
+				return;
+			}
+
+			int light = Sidedef.Fields.GetValue("light", 0);
+			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
+			int newLight = 0;
+
+			if(up)
+				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
+			else
+				newLight = General.Map.Config.BrightnessLevels.GetNextLower(light, absolute);
+
+			if(newLight == light) return;
+
+			//create undo
+			mode.CreateUndo("Change middle wall brightness", UndoGroup.SurfaceBrightnessChange, Sector.Sector.FixedIndex);
+			Sidedef.Fields.BeforeFieldsChange();
+
+			//apply changes
+			Sidedef.Fields["light"] = new UniValue(UniversalType.Integer, newLight);
+			mode.SetActionResult("Changed middle wall brightness to " + newLight + ".");
+			Sector.Sector.UpdateCache();
+
+			//rebuild sector
+			Sector.UpdateSectorGeometry(false);
+		}
 		
 		#endregion
 	}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs
index 9d8d94b57..3037e3815 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualMiddleSingle.cs
@@ -247,6 +247,37 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_mid", 0.0f);
 			return new Point((int)oldx, (int)oldy);
 		}
+
+		//mxd
+		public override void OnChangeTargetBrightness(bool up) {
+			if(!General.Map.UDMF) {
+				base.OnChangeTargetBrightness(up);
+				return;
+			}
+
+			int light = Sidedef.Fields.GetValue("light", 0);
+			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
+			int newLight = 0;
+
+			if(up)
+				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
+			else
+				newLight = General.Map.Config.BrightnessLevels.GetNextLower(light, absolute);
+
+			if(newLight == light) return;
+
+			//create undo
+			mode.CreateUndo("Change middle wall brightness", UndoGroup.SurfaceBrightnessChange, Sector.Sector.FixedIndex);
+			Sidedef.Fields.BeforeFieldsChange();
+
+			//apply changes
+			Sidedef.Fields["light"] = new UniValue(UniversalType.Integer, newLight);
+			mode.SetActionResult("Changed middle wall brightness to " + newLight + ".");
+			Sector.Sector.UpdateCache();
+
+			//rebuild sector
+			Sector.UpdateSectorGeometry(false);
+		}
 		
 		#endregion
 	}
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs b/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs
index b19aff1d1..dd47f94d3 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/VisualUpper.cs
@@ -246,6 +246,37 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 			float oldy = Sidedef.Fields.GetValue("offsety_top", 0.0f);
 			return new Point((int)oldx, (int)oldy);
 		}
+
+		//mxd
+		public override void OnChangeTargetBrightness(bool up) {
+			if(!General.Map.UDMF) {
+				base.OnChangeTargetBrightness(up);
+				return;
+			}
+
+			int light = Sidedef.Fields.GetValue("light", 0);
+			bool absolute = Sidedef.Fields.GetValue("lightabsolute", false);
+			int newLight = 0;
+
+			if(up)
+				newLight = General.Map.Config.BrightnessLevels.GetNextHigher(light, absolute);
+			else
+				newLight = General.Map.Config.BrightnessLevels.GetNextLower(light, absolute);
+
+			if(newLight == light) return;
+
+			//create undo
+			mode.CreateUndo("Change upper wall brightness", UndoGroup.SurfaceBrightnessChange, Sector.Sector.FixedIndex);
+			Sidedef.Fields.BeforeFieldsChange();
+
+			//apply changes
+			Sidedef.Fields["light"] = new UniValue(UniversalType.Integer, newLight);
+			mode.SetActionResult("Changed upper wall brightness to " + newLight + ".");
+			Sector.Sector.UpdateCache();
+
+			//rebuild sector
+			Sector.UpdateSectorGeometry(false);
+		}
 		
 		#endregion
 	}
-- 
GitLab