Bläddra i källkod

improved perfomance and fexed some bugs

Kolja Strohm 2 år sedan
förälder
incheckning
5c45e91e10

+ 21 - 28
FactoryCraft/Block.cpp

@@ -32,31 +32,9 @@ void Block::beforeRender(GraphicsApi* api, Shader* zVertexShader, Shader* zPixel
 	CustomDX11API* cApi = dynamic_cast<CustomDX11API*>(api);
 	if (cApi && model->getVertexAnzahl() == 24)
 	{
-		char data[24 * 4 * 4];
-		float dayLightFactor = 1.0; // TODO: day (1.f) - night (0.1f) adjustment
-		const Vertex3D* verticies = model->zVertexBuffer();
-		for (int i = 0; i < 24; i++)
-		{ // TODO: calculate rotations
-			Directions dirs = getDirectionsFromVector(verticies[i].pos);
-			Vec3<float> light( 0.f, 0.f, 0.f);
-			for (int d = 0; d < 6; d++)
-			{
-				if ((dirs | getDirectionFromIndex(d)) == dirs)
-				{
-					Vec3<float> dayLight = (Vec3<float>((float)lightData[d * 6], (float)lightData[d * 6 + 1], (float)lightData[d * 6 + 2]) / 255.f) * dayLightFactor;
-					light = Vec3<float>(max(dayLight.x, light.x), max(dayLight.y, light.y), max(dayLight.z, light.z));
-					Vec3<float> dynamicLight = Vec3<float>((float)lightData[d * 6 + 3], (float)lightData[d * 6 + 4], (float)lightData[d * 6 + 5]) / 255.f;
-					light = Vec3<float>(max(dynamicLight.x, light.x), max(dynamicLight.y, light.y), max(dynamicLight.z, light.z));
-				}
-			}
-			*(float*)(data + i * 4 * 4) = light.x;
-			*(float*)(data + i * 4 * 4 + 4) = light.y;
-			*(float*)(data + i * 4 * 4 + 8) = light.z;
-			*(float*)(data + i * 4 * 4 + 12) = 0.f;
-		}
 		int count = 24;
 		zVertexShader->füllConstBuffer((char*)&count, cApi->getVertexShaderLightBufferIndex(), 4);
-		zVertexShader->füllConstBuffer(data, cApi->getVertexShaderLightBufferIndex() + 1, 24 * 4 * 4);
+		zVertexShader->füllConstBuffer(lightBuffer, cApi->getVertexShaderLightBufferIndex() + 1, 24 * 4);
 	}
 }
 
@@ -94,11 +72,26 @@ void Block::setSideVisible(Direction dir, bool visible)
 void Block::setLightData(Direction dir, unsigned char* data)
 {
 	memcpy(lightData + getDirectionIndex(dir) * 6, data, 6);
-}
-
-void setLightData(Direction dir, char* data)
-{
-
+	if (model->getVertexAnzahl() == 24)
+	{
+		float dayLightFactor = 1.0; // TODO: day (1.f) - night (0.1f) adjustment
+		const Vertex3D* verticies = model->zVertexBuffer();
+		for (int i = 0; i < 24; i++)
+		{ // TODO: calculate rotations
+			Directions dirs = getDirectionsFromVector(verticies[i].pos);
+			Vec3<unsigned char> light(0, 0, 0);
+			for (int d = 0; d < 6; d++)
+			{
+				if ((dirs | getDirectionFromIndex(d)) == dirs)
+				{
+					light = Vec3<unsigned char>(max((unsigned char)((float)lightData[d * 6] * dayLightFactor), light.x), max((unsigned char)((float)lightData[d * 6 + 1] * dayLightFactor), light.y), max((unsigned char)((float)lightData[d * 6 + 2] * dayLightFactor), light.z));
+					light = Vec3<float>(max(lightData[d * 6 + 3], light.x), max(lightData[d * 6 + 4], light.y), max(lightData[d * 6 + 5], light.z));
+				}
+			}
+			int l = ((((light.x << 8) | light.y) << 8) | light.z) << 8;
+			*(int*)(lightBuffer + i * 4) = l;
+		}
+	}
 }
 
 Vec3<int> Block::getLocation() const

+ 1 - 0
FactoryCraft/Block.h

@@ -22,6 +22,7 @@ protected:
 	Vec3<int> location;
 	Framework::Textur* breakTextur;
 	unsigned char lightData[6 * 6];
+	char lightBuffer[24 * 4];
 
 	void beforeRender(GraphicsApi* api, Shader* zVertexShader, Shader* zPixelShader) override;
 	void afterRender(GraphicsApi* api, Shader* zVertexShader, Shader* zPixelShader) override;

+ 36 - 3
FactoryCraft/Chunk.cpp

@@ -83,7 +83,7 @@ Block* Chunk::zBlockAt(Framework::Vec3<int> location)
 	cs.lock();
 	for (Block* b : blocks)
 	{
-		if (Framework::Vec3<int>((int)floor(b->getPos().x), (int)floor(b->getPos().y), (int)floor(b->getPos().z)) == location)
+		if (b->getLocation() == location)
 		{
 			cs.unlock();
 			return b;
@@ -96,10 +96,10 @@ Block* Chunk::zBlockAt(Framework::Vec3<int> location)
 void Chunk::setBlock(Block* block)
 {
 	cs.lock();
-	Framework::Vec3<int> pos = (Framework::Vec3<int>)block->getPos();
+	Framework::Vec3<int> pos = block->getLocation();
 	for (Framework::Iterator<Block*> iterator = blocks.begin(); iterator; iterator++)
 	{
-		if (pos == (Framework::Vec3<int>)iterator->getPos())
+		if (pos == iterator->getLocation())
 		{
 			iterator->release();
 			iterator.set(block);
@@ -146,6 +146,39 @@ void Chunk::load(Framework::StreamReader* zReader)
 			setBlock(blockTypes[id]->createBlock({ pos.x + location.x - CHUNK_SIZE / 2, pos.y + location.y - CHUNK_SIZE / 2, pos.z }));
 		zReader->lese((char*)&id, 2);
 	}
+	int index = 0;
+	// light
+	zReader->lese((char*)&index, 4);
+	char lightData[6];
+	while (index >= 0)
+	{
+		zReader->lese(lightData, 6);
+		Framework::Vec3<int> location((index / WORLD_HEIGHT) / CHUNK_SIZE, (index / WORLD_HEIGHT) % CHUNK_SIZE, index % WORLD_HEIGHT);
+		for (int i = 0; i < 6; i++)
+		{
+			Framework::Vec3<int> pos = location + getDirection(getDirectionFromIndex(i));
+			if (pos.z >= 0 && pos.z < WORLD_HEIGHT)
+			{
+				if (pos.x >= 0 && pos.x < CHUNK_SIZE && pos.y >= 0 && pos.y < CHUNK_SIZE)
+				{
+					pos.x += this->location.x - CHUNK_SIZE / 2;
+					pos.y += this->location.y - CHUNK_SIZE / 2;
+					Block* zB = zBlockAt(pos);
+					if (zB)
+						zB->setLightData(getOppositeDirection(getDirectionFromIndex(i)), (unsigned char*)lightData);
+				}
+				else
+				{
+					pos.x += this->location.x - CHUNK_SIZE / 2;
+					pos.y += this->location.y - CHUNK_SIZE / 2;
+					Block* zB = currentGame->zBlockAt(pos);
+					if (zB)
+						zB->setLightData(getOppositeDirection(getDirectionFromIndex(i)), (unsigned char*)lightData);
+				}
+			}
+		}
+		zReader->lese((char*)&index, 4);
+	}
 	isLoading = 0;
 	updateVisibility();
 }

+ 1 - 1
FactoryCraft/Constants.h

@@ -2,5 +2,5 @@
 
 #define CHUNK_SIZE 16
 #define WORLD_HEIGHT 500
-#define CHUNK_VISIBILITY_RANGE 1
+#define CHUNK_VISIBILITY_RANGE 4
 #define MAX_VIEW_DISTANCE CHUNK_SIZE * CHUNK_VISIBILITY_RANGE

+ 1 - 1
FactoryCraft/CustomDX11API.cpp

@@ -17,7 +17,7 @@ Framework::DX11VertexShader* CustomDX11API::initializeVertexShader(unsigned char
 	DX11VertexShader* shader = DirectX11::initializeVertexShader((unsigned char*)CustomUIDX11VertexShader, sizeof(CustomUIDX11VertexShader));
 	vertexShaderLightBufferIndex = shader->getFirstUninitializedBufferIndex();
 	shader->erstelleConstBuffer(4, vertexShaderLightBufferIndex);
-	shader->erstelleConstBuffer(4 * 4 * 24, vertexShaderLightBufferIndex + 1);
+	shader->erstelleConstBuffer(4 * 24, vertexShaderLightBufferIndex + 1);
 	int count = 0;
 	shader->füllConstBuffer((char*)&count, vertexShaderLightBufferIndex, 4);
 	return shader;

+ 1405 - 1405
FactoryCraft/CustomUIDX11PixelShader.h

@@ -135,19 +135,75 @@ itof r1.xyz, l(0, 0, 0, 0)  // r1.x <- specularLight.x; r1.y <- specularLight.y;
 sample_indexable(texture2d)(float,float,float,float) r2.xyzw, v2.xyxx, t0.xyzw, s0  // r2.x <- materialColor.x; r2.y <- materialColor.y; r2.z <- materialColor.z; r2.w <- materialColor.w
 
 #line 72
+ine r0.w, l(0, 0, 0, 0), cb3[0].x
+if_nz r0.w
+
+#line 74
+  mov r0.w, l(-0.500000)
+  add r0.w, r0.w, v2.x
+  mov r1.w, l(-0.500000)
+  add r1.w, r1.w, v2.x
+  mul r0.w, r0.w, r1.w
+  mov r1.w, l(-0.500000)
+  add r1.w, r1.w, v2.y
+  mov r3.x, l(-0.500000)
+  add r3.x, r3.x, v2.y
+  mul r1.w, r1.w, r3.x
+  add r0.w, r0.w, r1.w
+  sqrt r0.w, r0.w
+  div r0.w, r0.w, l(0.707107)  // r0.w <- dist
+
+#line 75
+  lt r1.w, r0.w, cb3[0].y
+  if_nz r1.w
+
+#line 77
+    mov r0.w, -r0.w
+    add r0.w, r0.w, cb3[0].y
+    div r0.w, r0.w, l(0.200000)  // r0.w <- alphaMultiplier
+
+#line 78
+    itof r1.w, l(1)
+    lt r1.w, r1.w, r0.w
+    if_nz r1.w
+
+#line 79
+      mov r0.w, l(1.000000)
+    endif 
+
+#line 80
+    sample_indexable(texture2d)(float,float,float,float) r3.xyzw, v2.xyxx, t3.xyzw, s0  // r3.x <- effectColor.x; r3.y <- effectColor.y; r3.z <- effectColor.z; r3.w <- effectColor.w
+
+#line 81
+    mul r1.w, r0.w, r3.w
+    mul r4.xyzw, r1.wwww, r3.xyzw
+    itof r1.w, l(1)
+    mul r0.w, r0.w, r3.w
+    mov r0.w, -r0.w
+    add r0.w, r0.w, r1.w
+    mul r3.xyzw, r0.wwww, r2.xyzw
+    add r2.xyzw, r3.xyzw, r4.xyzw
+
+#line 82
+  endif 
+
+#line 83
+endif 
+
+#line 84
 itof r0.w, l(0)
 lt r0.w, r0.w, v4.w
 if_nz r0.w
 
-#line 74
+#line 86
   mul r3.x, r2.x, v4.x  // r3.x <- diffuseLight.x
   mul r3.y, r2.y, v4.y  // r3.y <- diffuseLight.y
   mul r3.z, r2.z, v4.z  // r3.z <- diffuseLight.z
 
-#line 75
+#line 87
 else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z <- diffuseLight.z
 
-#line 78
+#line 90
   mov r0.w, l(0)  // r0.w <- j
   mov r4.xyz, r0.xyzx  // r4.x <- diffuseLight.x; r4.y <- diffuseLight.y; r4.z <- diffuseLight.z
   mov r1.w, r0.w  // r1.w <- j
@@ -155,7 +211,7 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
     ilt r3.w, r1.w, cb2[0].x
     breakc_z r3.w
 
-#line 80
+#line 92
     ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r5.x, r1.w, l(0), t1.xxxx
     ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r5.y, r1.w, l(4), t1.xxxx
     ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r5.z, r1.w, l(8), t1.xxxx
@@ -165,12 +221,12 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
     lt r3.w, r3.w, r4.w
     if_nz r3.w
 
-#line 81
+#line 93
       iadd r1.w, r1.w, l(1)
       continue 
     endif 
 
-#line 82
+#line 94
     ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r5.x, r1.w, l(12), t1.xxxx
     ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r5.y, r1.w, l(16), t1.xxxx
     ld_structured_indexable(structured_buffer, stride=24)(mixed,mixed,mixed,mixed) r5.z, r1.w, l(20), t1.xxxx
@@ -182,13 +238,13 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
     mul r5.xyz, r3.wwww, r5.xyzx
     add r4.xyz, r4.xyzx, r5.xyzx
 
-#line 78
+#line 90
     iadd r1.w, r1.w, l(1)
 
-#line 83
+#line 95
   endloop 
 
-#line 84
+#line 96
   mov r0.x, l(0)  // r0.x <- i
   mov r0.yzw, r1.xxyz  // r0.y <- specularLight.x; r0.z <- specularLight.y; r0.w <- specularLight.z
   mov r3.yz, r4.yyzy  // r3.y <- diffuseLight.y; r3.z <- diffuseLight.z
@@ -198,43 +254,43 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
     ilt r3.w, r1.w, cb2[0].y
     breakc_z r3.w
 
-#line 86
+#line 98
     ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r5.x, r1.w, l(0), t2.xxxx
     ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r5.y, r1.w, l(4), t2.xxxx
     ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r5.z, r1.w, l(8), t2.xxxx
     mov r6.xyz, -v0.xyzx
     add r5.xyz, r5.xyzx, r6.xyzx  // r5.x <- lightDir.x; r5.y <- lightDir.y; r5.z <- lightDir.z
 
-#line 88
+#line 100
     dp3 r3.w, r5.xyzx, r5.xyzx
     sqrt r3.w, r3.w
     itof r4.w, l(1)
     lt r3.w, r3.w, r4.w
     if_nz r3.w
 
-#line 89
+#line 101
       itof r3.w, l(1)  // r3.w <- factor
     else 
 
-#line 91
+#line 103
       ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r4.w, r1.w, l(24), t2.xxxx
       dp3 r5.w, r5.xyzx, r5.xyzx
       sqrt r5.w, r5.w
       div r3.w, r4.w, r5.w  // r3.w <- factor
     endif 
 
-#line 92
+#line 104
     dp3 r4.w, r5.xyzx, r5.xyzx
     rsq r4.w, r4.w
     mul r6.xyz, r4.wwww, r5.xyzx
     dp3 r4.w, v3.xyzx, r6.xyzx  // r4.w <- f
 
-#line 93
+#line 105
     itof r5.w, l(0)
     lt r5.w, r5.w, r4.w
     if_nz r5.w
 
-#line 95
+#line 107
       ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r6.x, r1.w, l(12), t2.xxxx
       ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r6.y, r1.w, l(16), t2.xxxx
       ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r6.z, r1.w, l(20), t2.xxxx
@@ -242,7 +298,7 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
       mul r6.xyz, r3.wwww, r6.xyzx
       add r3.xyz, r6.xyzx, r3.xyzx
 
-#line 96
+#line 108
       mov r5.xyz, -r5.xyzx
       dp3 r4.w, r5.xyzx, r5.xyzx
       rsq r4.w, r4.w
@@ -262,12 +318,12 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
       mul r6.xyz, r4.wwww, r6.xyzx
       dp3 r4.w, r5.xyzx, r6.xyzx  // r4.w <- f
 
-#line 97
+#line 109
       itof r5.x, l(0)
       lt r5.x, r5.x, r4.w
       if_nz r5.x
 
-#line 98
+#line 110
         ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r5.x, r1.w, l(12), t2.xxxx
         ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r5.y, r1.w, l(16), t2.xxxx
         ld_structured_indexable(structured_buffer, stride=28)(mixed,mixed,mixed,mixed) r5.z, r1.w, l(20), t2.xxxx
@@ -276,71 +332,15 @@ else   // Prior locations: r0.x <- diffuseLight.x; r0.y <- diffuseLight.y; r0.z
         add r0.yzw, r0.yyzw, r5.xxyz
       endif 
 
-#line 99
+#line 111
     endif 
 
-#line 100
+#line 112
     iadd r1.w, r1.w, l(1)
   endloop 
   mov r1.xyz, r0.yzwy  // r1.x <- specularLight.x; r1.y <- specularLight.y; r1.z <- specularLight.z
 
-#line 101
-endif 
-
-#line 104
-ine r0.x, l(0, 0, 0, 0), cb3[0].x
-if_nz r0.x
-
-#line 106
-  mov r0.x, l(-0.500000)
-  add r0.x, r0.x, v2.x
-  mov r0.y, l(-0.500000)
-  add r0.y, r0.y, v2.x
-  mul r0.x, r0.y, r0.x
-  mov r0.y, l(-0.500000)
-  add r0.y, r0.y, v2.y
-  mov r0.z, l(-0.500000)
-  add r0.z, r0.z, v2.y
-  mul r0.y, r0.z, r0.y
-  add r0.x, r0.y, r0.x
-  sqrt r0.x, r0.x
-  div r0.x, r0.x, l(0.707107)  // r0.x <- dist
-
-#line 107
-  lt r0.y, r0.x, cb3[0].y
-  if_nz r0.y
-
-#line 109
-    mov r0.x, -r0.x
-    add r0.x, r0.x, cb3[0].y
-    div r0.x, r0.x, l(0.200000)  // r0.x <- alphaMultiplier
-
-#line 110
-    itof r0.y, l(1)
-    lt r0.y, r0.y, r0.x
-    if_nz r0.y
-
-#line 111
-      mov r0.x, l(1.000000)
-    endif 
-
-#line 112
-    sample_indexable(texture2d)(float,float,float,float) r4.xyzw, v2.xyxx, t3.xyzw, s0  // r4.x <- effectColor.x; r4.y <- effectColor.y; r4.z <- effectColor.z; r4.w <- effectColor.w
-
 #line 113
-    mul r0.y, r0.x, r4.w
-    mul r5.xyzw, r0.yyyy, r4.xyzw
-    itof r0.y, l(1)
-    mul r0.x, r0.x, r4.w
-    mov r0.x, -r0.x
-    add r0.x, r0.x, r0.y
-    mul r0.xyzw, r0.xxxx, r2.xyzw
-    add r2.xyzw, r0.xyzw, r5.xyzw
-
-#line 114
-  endif 
-
-#line 115
 endif 
 
 #line 116
@@ -373,10 +373,10 @@ ret
 
 const BYTE CustomUIDX11PixelShader[] =
 {
-     68,  88,  66,  67,  10,  34, 
-      8, 120, 233,  92,  82, 104, 
-    150, 224,  21, 142, 153, 175, 
-    213, 118,   1,   0,   0,   0, 
+     68,  88,  66,  67, 201, 167, 
+     21, 180,  66, 206, 143,  80, 
+     15, 182, 225,  57, 227, 210, 
+    169, 211,   1,   0,   0,   0, 
      16, 135,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
     192,   6,   0,   0, 104,   7, 
@@ -753,109 +753,205 @@ const BYTE CustomUIDX11PixelShader[] =
      16,   0,   2,   0,   0,   0, 
      70, 126,  16,   0,   0,   0, 
       0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  43,   0, 
-      0,   5, 130,   0,  16,   0, 
-      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,  39,   0, 
+      0,  11, 130,   0,  16,   0, 
+      0,   0,   0,   0,   2,  64, 
       0,   0,   0,   0,   0,   0, 
-     49,   0,   0,   7, 130,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     10, 128,  32,   0,   3,   0, 
+      0,   0,   0,   0,   0,   0, 
+     31,   0,   4,   3,  58,   0, 
      16,   0,   0,   0,   0,   0, 
-     58,   0,  16,   0,   0,   0, 
-      0,   0,  58,  16,  16,   0, 
-      4,   0,   0,   0,  31,   0, 
-      4,   3,  58,   0,  16,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   7,  18,   0,  16,   0, 
-      3,   0,   0,   0,  10,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0, 191,   0,   0,   0,   7, 
+    130,   0,  16,   0,   0,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  10,  16, 
      16,   0,   2,   0,   0,   0, 
-     10,  16,  16,   0,   4,   0, 
-      0,   0,  56,   0,   0,   7, 
-     34,   0,  16,   0,   3,   0, 
-      0,   0,  26,   0,  16,   0, 
-      2,   0,   0,   0,  26,  16, 
-     16,   0,   4,   0,   0,   0, 
-     56,   0,   0,   7,  66,   0, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   1,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0, 191,   0,   0,   0,   7, 
+    130,   0,  16,   0,   1,   0, 
+      0,   0,  58,   0,  16,   0, 
+      1,   0,   0,   0,  10,  16, 
+     16,   0,   2,   0,   0,   0, 
+     56,   0,   0,   7, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  58,   0,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      1,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0, 191, 
+      0,   0,   0,   7, 130,   0, 
+     16,   0,   1,   0,   0,   0, 
+     58,   0,  16,   0,   1,   0, 
+      0,   0,  26,  16,  16,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5,  18,   0,  16,   0, 
+      3,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0,   0, 191, 
+      0,   0,   0,   7,  18,   0, 
      16,   0,   3,   0,   0,   0, 
-     42,   0,  16,   0,   2,   0, 
-      0,   0,  42,  16,  16,   0, 
-      4,   0,   0,   0,  18,   0, 
-      0,   1,  54,   0,   0,   5, 
+     10,   0,  16,   0,   3,   0, 
+      0,   0,  26,  16,  16,   0, 
+      2,   0,   0,   0,  56,   0, 
+      0,   7, 130,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   1,   0,   0,   0, 
+     10,   0,  16,   0,   3,   0, 
+      0,   0,   0,   0,   0,   7, 
     130,   0,  16,   0,   0,   0, 
-      0,   0,   1,  64,   0,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 114,   0,  16,   0, 
-      4,   0,   0,   0,  70,   2, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   1,   0,   0,   0, 
+     75,   0,   0,   5, 130,   0, 
      16,   0,   0,   0,   0,   0, 
-     54,   0,   0,   5, 130,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  14,   0,   0,   7, 
+    130,   0,  16,   0,   0,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0, 243,   4,  53,  63, 
+     49,   0,   0,   8, 130,   0, 
      16,   0,   1,   0,   0,   0, 
      58,   0,  16,   0,   0,   0, 
-      0,   0,  48,   0,   0,   1, 
-     34,   0,   0,   8, 130,   0, 
-     16,   0,   3,   0,   0,   0, 
+      0,   0,  26, 128,  32,   0, 
+      3,   0,   0,   0,   0,   0, 
+      0,   0,  31,   0,   4,   3, 
      58,   0,  16,   0,   1,   0, 
-      0,   0,  10, 128,  32,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   3, 
-     58,   0,  16,   0,   3,   0, 
-      0,   0, 167,   0,   0, 139, 
-      2, 195,   0, 128, 131, 153, 
-     25,   0,  18,   0,  16,   0, 
-      5,   0,   0,   0,  58,   0, 
+      0,   0,  54,   0,   0,   6, 
+    130,   0,  16,   0,   0,   0, 
+      0,   0,  58,   0,  16, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
+    130,   0,  16,   0,   0,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,  26, 128, 
+     32,   0,   3,   0,   0,   0, 
+      0,   0,   0,   0,  14,   0, 
+      0,   7, 130,   0,  16,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0, 205, 204, 
+     76,  62,  43,   0,   0,   5, 
+    130,   0,  16,   0,   1,   0, 
+      0,   0,   1,  64,   0,   0, 
+      1,   0,   0,   0,  49,   0, 
+      0,   7, 130,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
-      1,  64,   0,   0,   0,   0, 
-      0,   0,   6, 112,  16,   0, 
-      1,   0,   0,   0, 167,   0, 
-      0, 139,   2, 195,   0, 128, 
-    131, 153,  25,   0,  34,   0, 
-     16,   0,   5,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  31,   0,   4,   3, 
      58,   0,  16,   0,   1,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,   0,  16,   0,   0,   0, 
       0,   0,   1,  64,   0,   0, 
-      4,   0,   0,   0,   6, 112, 
+      0,   0, 128,  63,  21,   0, 
+      0,   1,  69,   0,   0, 139, 
+    194,   0,   0, 128,  67,  85, 
+     21,   0, 242,   0,  16,   0, 
+      3,   0,   0,   0,  70,  16, 
+     16,   0,   2,   0,   0,   0, 
+     70, 126,  16,   0,   3,   0, 
+      0,   0,   0,  96,  16,   0, 
+      0,   0,   0,   0,  56,   0, 
+      0,   7, 130,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,   0,  16,   0,   3,   0, 
+      0,   0,  56,   0,   0,   7, 
+    242,   0,  16,   0,   4,   0, 
+      0,   0, 246,  15,  16,   0, 
+      1,   0,   0,   0,  70,  14, 
+     16,   0,   3,   0,   0,   0, 
+     43,   0,   0,   5, 130,   0, 
      16,   0,   1,   0,   0,   0, 
-    167,   0,   0, 139,   2, 195, 
-      0, 128, 131, 153,  25,   0, 
-     66,   0,  16,   0,   5,   0, 
+      1,  64,   0,   0,   1,   0, 
+      0,   0,  56,   0,   0,   7, 
+    130,   0,  16,   0,   0,   0, 
       0,   0,  58,   0,  16,   0, 
-      1,   0,   0,   0,   1,  64, 
-      0,   0,   8,   0,   0,   0, 
-      6, 112,  16,   0,   1,   0, 
-      0,   0,  54,   0,   0,   6, 
-    114,   0,  16,   0,   5,   0, 
-      0,   0,  70,   2,  16, 128, 
-     65,   0,   0,   0,   5,   0, 
-      0,   0,  16,   0,   0,   7, 
-    130,   0,  16,   0,   3,   0, 
-      0,   0,  70,  18,  16,   0, 
-      3,   0,   0,   0,  70,   2, 
-     16,   0,   5,   0,   0,   0, 
-     43,   0,   0,   5, 130,   0, 
-     16,   0,   4,   0,   0,   0, 
-      1,  64,   0,   0,   0,   0, 
-      0,   0,  49,   0,   0,   7, 
-    130,   0,  16,   0,   3,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   3,   0,   0,   0, 
+     54,   0,   0,   6, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,   0,  16, 128,  65,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   7, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
       0,   0,  58,   0,  16,   0, 
-      3,   0,   0,   0,  58,   0, 
+      1,   0,   0,   0,  56,   0, 
+      0,   7, 242,   0,  16,   0, 
+      3,   0,   0,   0, 246,  15, 
+     16,   0,   0,   0,   0,   0, 
+     70,  14,  16,   0,   2,   0, 
+      0,   0,   0,   0,   0,   7, 
+    242,   0,  16,   0,   2,   0, 
+      0,   0,  70,  14,  16,   0, 
+      3,   0,   0,   0,  70,  14, 
      16,   0,   4,   0,   0,   0, 
-     31,   0,   4,   3,  58,   0, 
+     21,   0,   0,   1,  21,   0, 
+      0,   1,  43,   0,   0,   5, 
+    130,   0,  16,   0,   0,   0, 
+      0,   0,   1,  64,   0,   0, 
+      0,   0,   0,   0,  49,   0, 
+      0,   7, 130,   0,  16,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,  16,  16,   0,   4,   0, 
+      0,   0,  31,   0,   4,   3, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  56,   0,   0,   7, 
+     18,   0,  16,   0,   3,   0, 
+      0,   0,  10,   0,  16,   0, 
+      2,   0,   0,   0,  10,  16, 
+     16,   0,   4,   0,   0,   0, 
+     56,   0,   0,   7,  34,   0, 
      16,   0,   3,   0,   0,   0, 
-     30,   0,   0,   7, 130,   0, 
+     26,   0,  16,   0,   2,   0, 
+      0,   0,  26,  16,  16,   0, 
+      4,   0,   0,   0,  56,   0, 
+      0,   7,  66,   0,  16,   0, 
+      3,   0,   0,   0,  42,   0, 
+     16,   0,   2,   0,   0,   0, 
+     42,  16,  16,   0,   4,   0, 
+      0,   0,  18,   0,   0,   1, 
+     54,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    114,   0,  16,   0,   4,   0, 
+      0,   0,  70,   2,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     48,   0,   0,   1,  34,   0, 
+      0,   8, 130,   0,  16,   0, 
+      3,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
-     58,   0,  16,   0,   1,   0, 
-      0,   0,   1,  64,   0,   0, 
-      1,   0,   0,   0,   7,   0, 
-      0,   1,  21,   0,   0,   1, 
+     10, 128,  32,   0,   2,   0, 
+      0,   0,   0,   0,   0,   0, 
+      3,   0,   0,   3,  58,   0, 
+     16,   0,   3,   0,   0,   0, 
     167,   0,   0, 139,   2, 195, 
       0, 128, 131, 153,  25,   0, 
      18,   0,  16,   0,   5,   0, 
       0,   0,  58,   0,  16,   0, 
       1,   0,   0,   0,   1,  64, 
-      0,   0,  12,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       6, 112,  16,   0,   1,   0, 
       0,   0, 167,   0,   0, 139, 
       2, 195,   0, 128, 131, 153, 
      25,   0,  34,   0,  16,   0, 
       5,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
-      1,  64,   0,   0,  16,   0, 
+      1,  64,   0,   0,   4,   0, 
       0,   0,   6, 112,  16,   0, 
       1,   0,   0,   0, 167,   0, 
       0, 139,   2, 195,   0, 128, 
@@ -863,281 +959,203 @@ const BYTE CustomUIDX11PixelShader[] =
      16,   0,   5,   0,   0,   0, 
      58,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
-     20,   0,   0,   0,   6, 112, 
+      8,   0,   0,   0,   6, 112, 
      16,   0,   1,   0,   0,   0, 
-    167,   0,   0, 139,   2, 195, 
-      0, 128, 131, 153,  25,   0, 
-     18,   0,  16,   0,   6,   0, 
-      0,   0,  58,   0,  16,   0, 
-      1,   0,   0,   0,   1,  64, 
+     54,   0,   0,   6, 114,   0, 
+     16,   0,   5,   0,   0,   0, 
+     70,   2,  16, 128,  65,   0, 
+      0,   0,   5,   0,   0,   0, 
+     16,   0,   0,   7, 130,   0, 
+     16,   0,   3,   0,   0,   0, 
+     70,  18,  16,   0,   3,   0, 
+      0,   0,  70,   2,  16,   0, 
+      5,   0,   0,   0,  43,   0, 
+      0,   5, 130,   0,  16,   0, 
+      4,   0,   0,   0,   1,  64, 
       0,   0,   0,   0,   0,   0, 
+     49,   0,   0,   7, 130,   0, 
+     16,   0,   3,   0,   0,   0, 
+     58,   0,  16,   0,   3,   0, 
+      0,   0,  58,   0,  16,   0, 
+      4,   0,   0,   0,  31,   0, 
+      4,   3,  58,   0,  16,   0, 
+      3,   0,   0,   0,  30,   0, 
+      0,   7, 130,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   1,   0,   0,   0, 
+      1,  64,   0,   0,   1,   0, 
+      0,   0,   7,   0,   0,   1, 
+     21,   0,   0,   1, 167,   0, 
+      0, 139,   2, 195,   0, 128, 
+    131, 153,  25,   0,  18,   0, 
+     16,   0,   5,   0,   0,   0, 
+     58,   0,  16,   0,   1,   0, 
+      0,   0,   1,  64,   0,   0, 
+     12,   0,   0,   0,   6, 112, 
+     16,   0,   1,   0,   0,   0, 
+    167,   0,   0, 139,   2, 195, 
+      0, 128, 131, 153,  25,   0, 
+     34,   0,  16,   0,   5,   0, 
+      0,   0,  58,   0,  16,   0, 
+      1,   0,   0,   0,   1,  64, 
+      0,   0,  16,   0,   0,   0, 
       6, 112,  16,   0,   1,   0, 
       0,   0, 167,   0,   0, 139, 
       2, 195,   0, 128, 131, 153, 
-     25,   0,  34,   0,  16,   0, 
-      6,   0,   0,   0,  58,   0, 
+     25,   0,  66,   0,  16,   0, 
+      5,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
-      1,  64,   0,   0,   4,   0, 
+      1,  64,   0,   0,  20,   0, 
       0,   0,   6, 112,  16,   0, 
       1,   0,   0,   0, 167,   0, 
       0, 139,   2, 195,   0, 128, 
-    131, 153,  25,   0,  66,   0, 
+    131, 153,  25,   0,  18,   0, 
      16,   0,   6,   0,   0,   0, 
      58,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
-      8,   0,   0,   0,   6, 112, 
-     16,   0,   1,   0,   0,   0, 
-     54,   0,   0,   6, 114,   0, 
-     16,   0,   6,   0,   0,   0, 
-     70,   2,  16, 128,  65,   0, 
-      0,   0,   6,   0,   0,   0, 
-     16,   0,   0,   7, 130,   0, 
-     16,   0,   3,   0,   0,   0, 
-     70,  18,  16,   0,   3,   0, 
-      0,   0,  70,   2,  16,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   7, 114,   0,  16,   0, 
-      5,   0,   0,   0, 246,  15, 
-     16,   0,   3,   0,   0,   0, 
-     70,   2,  16,   0,   5,   0, 
-      0,   0,   0,   0,   0,   7, 
-    114,   0,  16,   0,   4,   0, 
-      0,   0,  70,   2,  16,   0, 
-      4,   0,   0,   0,  70,   2, 
-     16,   0,   5,   0,   0,   0, 
-     30,   0,   0,   7, 130,   0, 
-     16,   0,   1,   0,   0,   0, 
-     58,   0,  16,   0,   1,   0, 
-      0,   0,   1,  64,   0,   0, 
-      1,   0,   0,   0,  22,   0, 
-      0,   1,  54,   0,   0,   5, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,   1,  64,   0,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5, 226,   0,  16,   0, 
-      0,   0,   0,   0,   6,   9, 
-     16,   0,   1,   0,   0,   0, 
-     54,   0,   0,   5,  98,   0, 
-     16,   0,   3,   0,   0,   0, 
-     86,   6,  16,   0,   4,   0, 
-      0,   0,  54,   0,   0,   5, 
-     18,   0,  16,   0,   3,   0, 
-      0,   0,  10,   0,  16,   0, 
-      4,   0,   0,   0,  54,   0, 
-      0,   5, 130,   0,  16,   0, 
-      1,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-     48,   0,   0,   1,  34,   0, 
-      0,   8, 130,   0,  16,   0, 
-      3,   0,   0,   0,  58,   0, 
+      0,   0,   0,   0,   6, 112, 
      16,   0,   1,   0,   0,   0, 
-     26, 128,  32,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   3,  58,   0, 
-     16,   0,   3,   0,   0,   0, 
-    167,   0,   0, 139,   2, 227, 
+    167,   0,   0, 139,   2, 195, 
       0, 128, 131, 153,  25,   0, 
-     18,   0,  16,   0,   5,   0, 
+     34,   0,  16,   0,   6,   0, 
       0,   0,  58,   0,  16,   0, 
       1,   0,   0,   0,   1,  64, 
-      0,   0,   0,   0,   0,   0, 
-      6, 112,  16,   0,   2,   0, 
+      0,   0,   4,   0,   0,   0, 
+      6, 112,  16,   0,   1,   0, 
       0,   0, 167,   0,   0, 139, 
-      2, 227,   0, 128, 131, 153, 
-     25,   0,  34,   0,  16,   0, 
-      5,   0,   0,   0,  58,   0, 
+      2, 195,   0, 128, 131, 153, 
+     25,   0,  66,   0,  16,   0, 
+      6,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
-      1,  64,   0,   0,   4,   0, 
+      1,  64,   0,   0,   8,   0, 
       0,   0,   6, 112,  16,   0, 
-      2,   0,   0,   0, 167,   0, 
-      0, 139,   2, 227,   0, 128, 
-    131, 153,  25,   0,  66,   0, 
-     16,   0,   5,   0,   0,   0, 
-     58,   0,  16,   0,   1,   0, 
-      0,   0,   1,  64,   0,   0, 
-      8,   0,   0,   0,   6, 112, 
-     16,   0,   2,   0,   0,   0, 
-     54,   0,   0,   6, 114,   0, 
-     16,   0,   6,   0,   0,   0, 
-     70,  18,  16, 128,  65,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   7, 114,   0, 
-     16,   0,   5,   0,   0,   0, 
-     70,   2,  16,   0,   5,   0, 
-      0,   0,  70,   2,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   6, 114,   0,  16,   0, 
+      6,   0,   0,   0,  70,   2, 
+     16, 128,  65,   0,   0,   0, 
       6,   0,   0,   0,  16,   0, 
       0,   7, 130,   0,  16,   0, 
-      3,   0,   0,   0,  70,   2, 
-     16,   0,   5,   0,   0,   0, 
-     70,   2,  16,   0,   5,   0, 
-      0,   0,  75,   0,   0,   5, 
-    130,   0,  16,   0,   3,   0, 
-      0,   0,  58,   0,  16,   0, 
-      3,   0,   0,   0,  43,   0, 
-      0,   5, 130,   0,  16,   0, 
-      4,   0,   0,   0,   1,  64, 
-      0,   0,   1,   0,   0,   0, 
-     49,   0,   0,   7, 130,   0, 
+      3,   0,   0,   0,  70,  18, 
      16,   0,   3,   0,   0,   0, 
-     58,   0,  16,   0,   3,   0, 
-      0,   0,  58,   0,  16,   0, 
-      4,   0,   0,   0,  31,   0, 
-      4,   3,  58,   0,  16,   0, 
-      3,   0,   0,   0,  43,   0, 
-      0,   5, 130,   0,  16,   0, 
-      3,   0,   0,   0,   1,  64, 
-      0,   0,   1,   0,   0,   0, 
-     18,   0,   0,   1, 167,   0, 
-      0, 139,   2, 227,   0, 128, 
-    131, 153,  25,   0, 130,   0, 
-     16,   0,   4,   0,   0,   0, 
-     58,   0,  16,   0,   1,   0, 
-      0,   0,   1,  64,   0,   0, 
-     24,   0,   0,   0,   6, 112, 
-     16,   0,   2,   0,   0,   0, 
-     16,   0,   0,   7, 130,   0, 
-     16,   0,   5,   0,   0,   0, 
-     70,   2,  16,   0,   5,   0, 
-      0,   0,  70,   2,  16,   0, 
-      5,   0,   0,   0,  75,   0, 
-      0,   5, 130,   0,  16,   0, 
-      5,   0,   0,   0,  58,   0, 
-     16,   0,   5,   0,   0,   0, 
-     14,   0,   0,   7, 130,   0, 
-     16,   0,   3,   0,   0,   0, 
-     58,   0,  16,   0,   4,   0, 
-      0,   0,  58,   0,  16,   0, 
-      5,   0,   0,   0,  21,   0, 
-      0,   1,  16,   0,   0,   7, 
-    130,   0,  16,   0,   4,   0, 
-      0,   0,  70,   2,  16,   0, 
-      5,   0,   0,   0,  70,   2, 
-     16,   0,   5,   0,   0,   0, 
-     68,   0,   0,   5, 130,   0, 
-     16,   0,   4,   0,   0,   0, 
-     58,   0,  16,   0,   4,   0, 
+     70,   2,  16,   0,   6,   0, 
       0,   0,  56,   0,   0,   7, 
-    114,   0,  16,   0,   6,   0, 
+    114,   0,  16,   0,   5,   0, 
       0,   0, 246,  15,  16,   0, 
-      4,   0,   0,   0,  70,   2, 
+      3,   0,   0,   0,  70,   2, 
      16,   0,   5,   0,   0,   0, 
-     16,   0,   0,   7, 130,   0, 
+      0,   0,   0,   7, 114,   0, 
      16,   0,   4,   0,   0,   0, 
-     70,  18,  16,   0,   3,   0, 
+     70,   2,  16,   0,   4,   0, 
       0,   0,  70,   2,  16,   0, 
-      6,   0,   0,   0,  43,   0, 
-      0,   5, 130,   0,  16,   0, 
-      5,   0,   0,   0,   1,  64, 
-      0,   0,   0,   0,   0,   0, 
-     49,   0,   0,   7, 130,   0, 
-     16,   0,   5,   0,   0,   0, 
-     58,   0,  16,   0,   5,   0, 
+      5,   0,   0,   0,  30,   0, 
+      0,   7, 130,   0,  16,   0, 
+      1,   0,   0,   0,  58,   0, 
+     16,   0,   1,   0,   0,   0, 
+      1,  64,   0,   0,   1,   0, 
+      0,   0,  22,   0,   0,   1, 
+     54,   0,   0,   5,  18,   0, 
+     16,   0,   0,   0,   0,   0, 
+      1,  64,   0,   0,   0,   0, 
+      0,   0,  54,   0,   0,   5, 
+    226,   0,  16,   0,   0,   0, 
+      0,   0,   6,   9,  16,   0, 
+      1,   0,   0,   0,  54,   0, 
+      0,   5,  98,   0,  16,   0, 
+      3,   0,   0,   0,  86,   6, 
+     16,   0,   4,   0,   0,   0, 
+     54,   0,   0,   5,  18,   0, 
+     16,   0,   3,   0,   0,   0, 
+     10,   0,  16,   0,   4,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,   0,  16,   0,   1,   0, 
+      0,   0,  10,   0,  16,   0, 
+      0,   0,   0,   0,  48,   0, 
+      0,   1,  34,   0,   0,   8, 
+    130,   0,  16,   0,   3,   0, 
       0,   0,  58,   0,  16,   0, 
-      4,   0,   0,   0,  31,   0, 
-      4,   3,  58,   0,  16,   0, 
-      5,   0,   0,   0, 167,   0, 
+      1,   0,   0,   0,  26, 128, 
+     32,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
+      0,   3,  58,   0,  16,   0, 
+      3,   0,   0,   0, 167,   0, 
       0, 139,   2, 227,   0, 128, 
     131, 153,  25,   0,  18,   0, 
-     16,   0,   6,   0,   0,   0, 
+     16,   0,   5,   0,   0,   0, 
      58,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
-     12,   0,   0,   0,   6, 112, 
+      0,   0,   0,   0,   6, 112, 
      16,   0,   2,   0,   0,   0, 
     167,   0,   0, 139,   2, 227, 
       0, 128, 131, 153,  25,   0, 
-     34,   0,  16,   0,   6,   0, 
+     34,   0,  16,   0,   5,   0, 
       0,   0,  58,   0,  16,   0, 
       1,   0,   0,   0,   1,  64, 
-      0,   0,  16,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
       6, 112,  16,   0,   2,   0, 
       0,   0, 167,   0,   0, 139, 
       2, 227,   0, 128, 131, 153, 
      25,   0,  66,   0,  16,   0, 
-      6,   0,   0,   0,  58,   0, 
+      5,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
-      1,  64,   0,   0,  20,   0, 
+      1,  64,   0,   0,   8,   0, 
       0,   0,   6, 112,  16,   0, 
-      2,   0,   0,   0,  56,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   6, 114,   0,  16,   0, 
+      6,   0,   0,   0,  70,  18, 
+     16, 128,  65,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   7, 114,   0,  16,   0, 
-      6,   0,   0,   0, 246,  15, 
-     16,   0,   4,   0,   0,   0, 
-     70,   2,  16,   0,   6,   0, 
-      0,   0,  56,   0,   0,   7, 
-    114,   0,  16,   0,   6,   0, 
-      0,   0, 246,  15,  16,   0, 
-      3,   0,   0,   0,  70,   2, 
-     16,   0,   6,   0,   0,   0, 
-      0,   0,   0,   7, 114,   0, 
-     16,   0,   3,   0,   0,   0, 
+      5,   0,   0,   0,  70,   2, 
+     16,   0,   5,   0,   0,   0, 
      70,   2,  16,   0,   6,   0, 
+      0,   0,  16,   0,   0,   7, 
+    130,   0,  16,   0,   3,   0, 
       0,   0,  70,   2,  16,   0, 
-      3,   0,   0,   0,  54,   0, 
-      0,   6, 114,   0,  16,   0, 
       5,   0,   0,   0,  70,   2, 
-     16, 128,  65,   0,   0,   0, 
-      5,   0,   0,   0,  16,   0, 
-      0,   7, 130,   0,  16,   0, 
-      4,   0,   0,   0,  70,   2, 
      16,   0,   5,   0,   0,   0, 
-     70,   2,  16,   0,   5,   0, 
-      0,   0,  68,   0,   0,   5, 
-    130,   0,  16,   0,   4,   0, 
-      0,   0,  58,   0,  16,   0, 
-      4,   0,   0,   0,  56,   0, 
-      0,   7, 114,   0,  16,   0, 
-      5,   0,   0,   0, 246,  15, 
-     16,   0,   4,   0,   0,   0, 
-     70,   2,  16,   0,   5,   0, 
-      0,   0,  16,   0,   0,   7, 
+     75,   0,   0,   5, 130,   0, 
+     16,   0,   3,   0,   0,   0, 
+     58,   0,  16,   0,   3,   0, 
+      0,   0,  43,   0,   0,   5, 
     130,   0,  16,   0,   4,   0, 
-      0,   0,  70,   2,  16,   0, 
-      5,   0,   0,   0,  70,  18, 
+      0,   0,   1,  64,   0,   0, 
+      1,   0,   0,   0,  49,   0, 
+      0,   7, 130,   0,  16,   0, 
+      3,   0,   0,   0,  58,   0, 
      16,   0,   3,   0,   0,   0, 
-      0,   0,   0,   7, 130,   0, 
-     16,   0,   4,   0,   0,   0, 
      58,   0,  16,   0,   4,   0, 
-      0,   0,  58,   0,  16,   0, 
-      4,   0,   0,   0,  54,   0, 
-      0,   6, 130,   0,  16,   0, 
+      0,   0,  31,   0,   4,   3, 
+     58,   0,  16,   0,   3,   0, 
+      0,   0,  43,   0,   0,   5, 
+    130,   0,  16,   0,   3,   0, 
+      0,   0,   1,  64,   0,   0, 
+      1,   0,   0,   0,  18,   0, 
+      0,   1, 167,   0,   0, 139, 
+      2, 227,   0, 128, 131, 153, 
+     25,   0, 130,   0,  16,   0, 
       4,   0,   0,   0,  58,   0, 
-     16, 128,  65,   0,   0,   0, 
-      4,   0,   0,   0,  56,   0, 
-      0,   7, 114,   0,  16,   0, 
-      6,   0,   0,   0, 246,  15, 
-     16,   0,   4,   0,   0,   0, 
-     70,  18,  16,   0,   3,   0, 
-      0,   0,   0,   0,   0,   7, 
-    114,   0,  16,   0,   5,   0, 
-      0,   0,  70,   2,  16,   0, 
+     16,   0,   1,   0,   0,   0, 
+      1,  64,   0,   0,  24,   0, 
+      0,   0,   6, 112,  16,   0, 
+      2,   0,   0,   0,  16,   0, 
+      0,   7, 130,   0,  16,   0, 
       5,   0,   0,   0,  70,   2, 
-     16,   0,   6,   0,   0,   0, 
-     16,   0,   0,   7, 130,   0, 
-     16,   0,   4,   0,   0,   0, 
+     16,   0,   5,   0,   0,   0, 
      70,   2,  16,   0,   5,   0, 
-      0,   0,  70,   2,  16,   0, 
-      5,   0,   0,   0,  68,   0, 
-      0,   5, 130,   0,  16,   0, 
-      4,   0,   0,   0,  58,   0, 
+      0,   0,  75,   0,   0,   5, 
+    130,   0,  16,   0,   5,   0, 
+      0,   0,  58,   0,  16,   0, 
+      5,   0,   0,   0,  14,   0, 
+      0,   7, 130,   0,  16,   0, 
+      3,   0,   0,   0,  58,   0, 
      16,   0,   4,   0,   0,   0, 
-     56,   0,   0,   7, 114,   0, 
-     16,   0,   5,   0,   0,   0, 
-    246,  15,  16,   0,   4,   0, 
-      0,   0,  70,   2,  16,   0, 
-      5,   0,   0,   0,  54,   0, 
-      0,   6, 114,   0,  16,   0, 
-      6,   0,   0,   0,  70,  18, 
-     16, 128,  65,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   8, 114,   0,  16,   0, 
-      6,   0,   0,   0,  70,   2, 
-     16,   0,   6,   0,   0,   0, 
-     70, 130,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+     58,   0,  16,   0,   5,   0, 
+      0,   0,  21,   0,   0,   1, 
      16,   0,   0,   7, 130,   0, 
      16,   0,   4,   0,   0,   0, 
-     70,   2,  16,   0,   6,   0, 
+     70,   2,  16,   0,   5,   0, 
       0,   0,  70,   2,  16,   0, 
-      6,   0,   0,   0,  68,   0, 
+      5,   0,   0,   0,  68,   0, 
       0,   5, 130,   0,  16,   0, 
       4,   0,   0,   0,  58,   0, 
      16,   0,   4,   0,   0,   0, 
@@ -1145,210 +1163,192 @@ const BYTE CustomUIDX11PixelShader[] =
      16,   0,   6,   0,   0,   0, 
     246,  15,  16,   0,   4,   0, 
       0,   0,  70,   2,  16,   0, 
-      6,   0,   0,   0,  16,   0, 
+      5,   0,   0,   0,  16,   0, 
       0,   7, 130,   0,  16,   0, 
-      4,   0,   0,   0,  70,   2, 
-     16,   0,   5,   0,   0,   0, 
+      4,   0,   0,   0,  70,  18, 
+     16,   0,   3,   0,   0,   0, 
      70,   2,  16,   0,   6,   0, 
       0,   0,  43,   0,   0,   5, 
-     18,   0,  16,   0,   5,   0, 
+    130,   0,  16,   0,   5,   0, 
       0,   0,   1,  64,   0,   0, 
       0,   0,   0,   0,  49,   0, 
-      0,   7,  18,   0,  16,   0, 
-      5,   0,   0,   0,  10,   0, 
+      0,   7, 130,   0,  16,   0, 
+      5,   0,   0,   0,  58,   0, 
      16,   0,   5,   0,   0,   0, 
      58,   0,  16,   0,   4,   0, 
       0,   0,  31,   0,   4,   3, 
-     10,   0,  16,   0,   5,   0, 
+     58,   0,  16,   0,   5,   0, 
       0,   0, 167,   0,   0, 139, 
       2, 227,   0, 128, 131, 153, 
      25,   0,  18,   0,  16,   0, 
-      5,   0,   0,   0,  58,   0, 
+      6,   0,   0,   0,  58,   0, 
      16,   0,   1,   0,   0,   0, 
       1,  64,   0,   0,  12,   0, 
       0,   0,   6, 112,  16,   0, 
       2,   0,   0,   0, 167,   0, 
       0, 139,   2, 227,   0, 128, 
     131, 153,  25,   0,  34,   0, 
-     16,   0,   5,   0,   0,   0, 
+     16,   0,   6,   0,   0,   0, 
      58,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
      16,   0,   0,   0,   6, 112, 
      16,   0,   2,   0,   0,   0, 
     167,   0,   0, 139,   2, 227, 
       0, 128, 131, 153,  25,   0, 
-     66,   0,  16,   0,   5,   0, 
+     66,   0,  16,   0,   6,   0, 
       0,   0,  58,   0,  16,   0, 
       1,   0,   0,   0,   1,  64, 
       0,   0,  20,   0,   0,   0, 
       6, 112,  16,   0,   2,   0, 
       0,   0,  56,   0,   0,   7, 
-    114,   0,  16,   0,   5,   0, 
+    114,   0,  16,   0,   6,   0, 
       0,   0, 246,  15,  16,   0, 
       4,   0,   0,   0,  70,   2, 
-     16,   0,   5,   0,   0,   0, 
+     16,   0,   6,   0,   0,   0, 
      56,   0,   0,   7, 114,   0, 
-     16,   0,   5,   0,   0,   0, 
+     16,   0,   6,   0,   0,   0, 
     246,  15,  16,   0,   3,   0, 
       0,   0,  70,   2,  16,   0, 
-      5,   0,   0,   0,   0,   0, 
-      0,   7, 226,   0,  16,   0, 
-      0,   0,   0,   0,  86,  14, 
-     16,   0,   0,   0,   0,   0, 
-      6,   9,  16,   0,   5,   0, 
-      0,   0,  21,   0,   0,   1, 
-     21,   0,   0,   1,  30,   0, 
-      0,   7, 130,   0,  16,   0, 
-      1,   0,   0,   0,  58,   0, 
-     16,   0,   1,   0,   0,   0, 
-      1,  64,   0,   0,   1,   0, 
-      0,   0,  22,   0,   0,   1, 
-     54,   0,   0,   5, 114,   0, 
-     16,   0,   1,   0,   0,   0, 
-    150,   7,  16,   0,   0,   0, 
-      0,   0,  21,   0,   0,   1, 
-     39,   0,   0,  11,  18,   0, 
-     16,   0,   0,   0,   0,   0, 
-      2,  64,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  10, 128,  32,   0, 
+      6,   0,   0,   0,   0,   0, 
+      0,   7, 114,   0,  16,   0, 
+      3,   0,   0,   0,  70,   2, 
+     16,   0,   6,   0,   0,   0, 
+     70,   2,  16,   0,   3,   0, 
+      0,   0,  54,   0,   0,   6, 
+    114,   0,  16,   0,   5,   0, 
+      0,   0,  70,   2,  16, 128, 
+     65,   0,   0,   0,   5,   0, 
+      0,   0,  16,   0,   0,   7, 
+    130,   0,  16,   0,   4,   0, 
+      0,   0,  70,   2,  16,   0, 
+      5,   0,   0,   0,  70,   2, 
+     16,   0,   5,   0,   0,   0, 
+     68,   0,   0,   5, 130,   0, 
+     16,   0,   4,   0,   0,   0, 
+     58,   0,  16,   0,   4,   0, 
+      0,   0,  56,   0,   0,   7, 
+    114,   0,  16,   0,   5,   0, 
+      0,   0, 246,  15,  16,   0, 
+      4,   0,   0,   0,  70,   2, 
+     16,   0,   5,   0,   0,   0, 
+     16,   0,   0,   7, 130,   0, 
+     16,   0,   4,   0,   0,   0, 
+     70,   2,  16,   0,   5,   0, 
+      0,   0,  70,  18,  16,   0, 
       3,   0,   0,   0,   0,   0, 
-      0,   0,  31,   0,   4,   3, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  54,   0,   0,   5, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,   1,  64,   0,   0, 
-      0,   0,   0, 191,   0,   0, 
-      0,   7,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-     10,  16,  16,   0,   2,   0, 
-      0,   0,  54,   0,   0,   5, 
-     34,   0,  16,   0,   0,   0, 
-      0,   0,   1,  64,   0,   0, 
-      0,   0,   0, 191,   0,   0, 
-      0,   7,  34,   0,  16,   0, 
-      0,   0,   0,   0,  26,   0, 
-     16,   0,   0,   0,   0,   0, 
-     10,  16,  16,   0,   2,   0, 
+      0,   7, 130,   0,  16,   0, 
+      4,   0,   0,   0,  58,   0, 
+     16,   0,   4,   0,   0,   0, 
+     58,   0,  16,   0,   4,   0, 
+      0,   0,  54,   0,   0,   6, 
+    130,   0,  16,   0,   4,   0, 
+      0,   0,  58,   0,  16, 128, 
+     65,   0,   0,   0,   4,   0, 
       0,   0,  56,   0,   0,   7, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  26,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-     54,   0,   0,   5,  34,   0, 
-     16,   0,   0,   0,   0,   0, 
-      1,  64,   0,   0,   0,   0, 
-      0, 191,   0,   0,   0,   7, 
-     34,   0,  16,   0,   0,   0, 
-      0,   0,  26,   0,  16,   0, 
-      0,   0,   0,   0,  26,  16, 
-     16,   0,   2,   0,   0,   0, 
-     54,   0,   0,   5,  66,   0, 
-     16,   0,   0,   0,   0,   0, 
+    114,   0,  16,   0,   6,   0, 
+      0,   0, 246,  15,  16,   0, 
+      4,   0,   0,   0,  70,  18, 
+     16,   0,   3,   0,   0,   0, 
+      0,   0,   0,   7, 114,   0, 
+     16,   0,   5,   0,   0,   0, 
+     70,   2,  16,   0,   5,   0, 
+      0,   0,  70,   2,  16,   0, 
+      6,   0,   0,   0,  16,   0, 
+      0,   7, 130,   0,  16,   0, 
+      4,   0,   0,   0,  70,   2, 
+     16,   0,   5,   0,   0,   0, 
+     70,   2,  16,   0,   5,   0, 
+      0,   0,  68,   0,   0,   5, 
+    130,   0,  16,   0,   4,   0, 
+      0,   0,  58,   0,  16,   0, 
+      4,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      5,   0,   0,   0, 246,  15, 
+     16,   0,   4,   0,   0,   0, 
+     70,   2,  16,   0,   5,   0, 
+      0,   0,  54,   0,   0,   6, 
+    114,   0,  16,   0,   6,   0, 
+      0,   0,  70,  18,  16, 128, 
+     65,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   8, 
+    114,   0,  16,   0,   6,   0, 
+      0,   0,  70,   2,  16,   0, 
+      6,   0,   0,   0,  70, 130, 
+     32,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   7, 130,   0,  16,   0, 
+      4,   0,   0,   0,  70,   2, 
+     16,   0,   6,   0,   0,   0, 
+     70,   2,  16,   0,   6,   0, 
+      0,   0,  68,   0,   0,   5, 
+    130,   0,  16,   0,   4,   0, 
+      0,   0,  58,   0,  16,   0, 
+      4,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      6,   0,   0,   0, 246,  15, 
+     16,   0,   4,   0,   0,   0, 
+     70,   2,  16,   0,   6,   0, 
+      0,   0,  16,   0,   0,   7, 
+    130,   0,  16,   0,   4,   0, 
+      0,   0,  70,   2,  16,   0, 
+      5,   0,   0,   0,  70,   2, 
+     16,   0,   6,   0,   0,   0, 
+     43,   0,   0,   5,  18,   0, 
+     16,   0,   5,   0,   0,   0, 
       1,  64,   0,   0,   0,   0, 
-      0, 191,   0,   0,   0,   7, 
-     66,   0,  16,   0,   0,   0, 
-      0,   0,  42,   0,  16,   0, 
-      0,   0,   0,   0,  26,  16, 
-     16,   0,   2,   0,   0,   0, 
-     56,   0,   0,   7,  34,   0, 
-     16,   0,   0,   0,   0,   0, 
-     42,   0,  16,   0,   0,   0, 
-      0,   0,  26,   0,  16,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,  18,   0,  16,   0, 
-      0,   0,   0,   0,  26,   0, 
-     16,   0,   0,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,  75,   0,   0,   5, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,  14,   0, 
-      0,   7,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-      1,  64,   0,   0, 243,   4, 
-     53,  63,  49,   0,   0,   8, 
-     34,   0,  16,   0,   0,   0, 
-      0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,  26, 128, 
-     32,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  31,   0, 
-      4,   3,  26,   0,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   6,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
-     16, 128,  65,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   8,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-     26, 128,  32,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     14,   0,   0,   7,  18,   0, 
-     16,   0,   0,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
-      0,   0,   1,  64,   0,   0, 
-    205, 204,  76,  62,  43,   0, 
-      0,   5,  34,   0,  16,   0, 
-      0,   0,   0,   0,   1,  64, 
-      0,   0,   1,   0,   0,   0, 
-     49,   0,   0,   7,  34,   0, 
-     16,   0,   0,   0,   0,   0, 
-     26,   0,  16,   0,   0,   0, 
+      0,   0,  49,   0,   0,   7, 
+     18,   0,  16,   0,   5,   0, 
       0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,  31,   0, 
-      4,   3,  26,   0,  16,   0, 
-      0,   0,   0,   0,  54,   0, 
-      0,   5,  18,   0,  16,   0, 
-      0,   0,   0,   0,   1,  64, 
-      0,   0,   0,   0, 128,  63, 
-     21,   0,   0,   1,  69,   0, 
-      0, 139, 194,   0,   0, 128, 
-     67,  85,  21,   0, 242,   0, 
-     16,   0,   4,   0,   0,   0, 
-     70,  16,  16,   0,   2,   0, 
-      0,   0,  70, 126,  16,   0, 
-      3,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     56,   0,   0,   7,  34,   0, 
-     16,   0,   0,   0,   0,   0, 
-     10,   0,  16,   0,   0,   0, 
+      5,   0,   0,   0,  58,   0, 
+     16,   0,   4,   0,   0,   0, 
+     31,   0,   4,   3,  10,   0, 
+     16,   0,   5,   0,   0,   0, 
+    167,   0,   0, 139,   2, 227, 
+      0, 128, 131, 153,  25,   0, 
+     18,   0,  16,   0,   5,   0, 
       0,   0,  58,   0,  16,   0, 
-      4,   0,   0,   0,  56,   0, 
-      0,   7, 242,   0,  16,   0, 
-      5,   0,   0,   0,  86,   5, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   4,   0, 
-      0,   0,  43,   0,   0,   5, 
-     34,   0,  16,   0,   0,   0, 
+      1,   0,   0,   0,   1,  64, 
+      0,   0,  12,   0,   0,   0, 
+      6, 112,  16,   0,   2,   0, 
+      0,   0, 167,   0,   0, 139, 
+      2, 227,   0, 128, 131, 153, 
+     25,   0,  34,   0,  16,   0, 
+      5,   0,   0,   0,  58,   0, 
+     16,   0,   1,   0,   0,   0, 
+      1,  64,   0,   0,  16,   0, 
+      0,   0,   6, 112,  16,   0, 
+      2,   0,   0,   0, 167,   0, 
+      0, 139,   2, 227,   0, 128, 
+    131, 153,  25,   0,  66,   0, 
+     16,   0,   5,   0,   0,   0, 
+     58,   0,  16,   0,   1,   0, 
       0,   0,   1,  64,   0,   0, 
-      1,   0,   0,   0,  56,   0, 
-      0,   7,  18,   0,  16,   0, 
-      0,   0,   0,   0,  10,   0, 
-     16,   0,   0,   0,   0,   0, 
-     58,   0,  16,   0,   4,   0, 
-      0,   0,  54,   0,   0,   6, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  10,   0,  16, 128, 
-     65,   0,   0,   0,   0,   0, 
+     20,   0,   0,   0,   6, 112, 
+     16,   0,   2,   0,   0,   0, 
+     56,   0,   0,   7, 114,   0, 
+     16,   0,   5,   0,   0,   0, 
+    246,  15,  16,   0,   4,   0, 
+      0,   0,  70,   2,  16,   0, 
+      5,   0,   0,   0,  56,   0, 
+      0,   7, 114,   0,  16,   0, 
+      5,   0,   0,   0, 246,  15, 
+     16,   0,   3,   0,   0,   0, 
+     70,   2,  16,   0,   5,   0, 
       0,   0,   0,   0,   0,   7, 
-     18,   0,  16,   0,   0,   0, 
-      0,   0,  10,   0,  16,   0, 
-      0,   0,   0,   0,  26,   0, 
-     16,   0,   0,   0,   0,   0, 
-     56,   0,   0,   7, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-      6,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   7, 242,   0,  16,   0, 
-      2,   0,   0,   0,  70,  14, 
+    226,   0,  16,   0,   0,   0, 
+      0,   0,  86,  14,  16,   0, 
+      0,   0,   0,   0,   6,   9, 
+     16,   0,   5,   0,   0,   0, 
+     21,   0,   0,   1,  21,   0, 
+      0,   1,  30,   0,   0,   7, 
+    130,   0,  16,   0,   1,   0, 
+      0,   0,  58,   0,  16,   0, 
+      1,   0,   0,   0,   1,  64, 
+      0,   0,   1,   0,   0,   0, 
+     22,   0,   0,   1,  54,   0, 
+      0,   5, 114,   0,  16,   0, 
+      1,   0,   0,   0, 150,   7, 
      16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   5,   0, 
-      0,   0,  21,   0,   0,   1, 
      21,   0,   0,   1,  56,   0, 
       0,   8, 114,   0,  16,   0, 
       0,   0,   0,   0,  70,   2, 
@@ -1869,11 +1869,11 @@ const BYTE CustomUIDX11PixelShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    148,  46,  49,   1, 140, 225, 
-    135,  98,   1,   0,   0,   0, 
-     20,  68, 135, 160, 164, 208, 
-    122,  64, 158, 125,  89,  23, 
-    245,  58, 104, 125,   0,   0, 
+    148,  46,  49,   1, 104, 142, 
+    136,  98,   1,   0,   0,   0, 
+     32, 206,  34, 225,  76,  33, 
+     74,  77, 186,   5,  51, 143, 
+    255,  83,  24, 220,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       1,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2045,9 +2045,9 @@ const BYTE CustomUIDX11PixelShader[] =
       1,   0,  43, 236,   3,   0, 
      28,  19,   2,   0,  65,  36, 
       1,   0, 236, 179,   1,   0, 
-    163, 154,   0,   0, 125,  10, 
+    171,  43,   2,   0, 125,  10, 
       2,   0, 125, 181,   2,   0, 
-    237, 183,   1,   0, 193,  33, 
+    186,  38,   0,   0, 193,  33, 
       3,   0,  65, 185,   2,   0, 
       9, 241,   2,   0, 146, 230, 
       3,   0, 125, 218,   1,   0, 
@@ -2490,182 +2490,6 @@ const BYTE CustomUIDX11PixelShader[] =
     105, 110, 112, 117, 116,  46, 
     116, 101, 120,  41,  59,  13, 
      10,   9, 105, 102,  32,  40, 
-    105, 110, 112, 117, 116,  46, 
-    108, 105, 103, 104, 116,  46, 
-    119,  32,  62,  32,  48,  41, 
-     13,  10,   9, 123,  13,  10, 
-      9,   9, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  32,  61,  32, 102, 
-    108, 111,  97, 116,  51,  40, 
-    109,  97, 116, 101, 114, 105, 
-     97, 108,  67, 111, 108, 111, 
-    114,  46, 120,  32,  42,  32, 
-    105, 110, 112, 117, 116,  46, 
-    108, 105, 103, 104, 116,  46, 
-    120,  44,  32, 109,  97, 116, 
-    101, 114, 105,  97, 108,  67, 
-    111, 108, 111, 114,  46, 121, 
-     32,  42,  32, 105, 110, 112, 
-    117, 116,  46, 108, 105, 103, 
-    104, 116,  46, 121,  44,  32, 
-    109,  97, 116, 101, 114, 105, 
-     97, 108,  67, 111, 108, 111, 
-    114,  46, 122,  32,  42,  32, 
-    105, 110, 112, 117, 116,  46, 
-    108, 105, 103, 104, 116,  46, 
-    122,  41,  59,  13,  10,   9, 
-    125,  13,  10,   9, 101, 108, 
-    115, 101,  13,  10,   9, 123, 
-     13,  10,   9,   9, 102, 111, 
-    114,  32,  40, 105, 110, 116, 
-     32, 106,  32,  61,  32,  48, 
-     59,  32, 106,  32,  60,  32, 
-    100, 105, 102, 102, 117, 115, 
-    101,  76, 105, 103, 104, 116, 
-     67, 111, 117, 110, 116,  59, 
-     32, 106,  43,  43,  41,  13, 
-     10,   9,   9, 123,  13,  10, 
-      9,   9,   9, 105, 102,  32, 
-     40, 100, 111, 116,  40, 105, 
-    110, 112, 117, 116,  46, 110, 
-    111, 114, 109,  97, 108,  44, 
-     32,  45, 100, 105, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116, 115,  91, 106,  93,  46, 
-    100, 105, 114, 101,  99, 116, 
-    105, 111, 110,  41,  32,  60, 
-     32,  48,  41,  13,  10,   9, 
-      9,   9,   9,  99, 111, 110, 
-    116, 105, 110, 117, 101,  59, 
-     13,  10,   9,   9,   9, 100, 
-    105, 102, 102, 117, 115, 101, 
-     76, 105, 103, 104, 116,  32, 
-     43,  61,  32, 100, 105, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116, 115,  91, 106,  93, 
-     46,  99, 111, 108, 111, 114, 
-     32,  42,  32, 100, 111, 116, 
-     40, 105, 110, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  44,  32,  45, 100, 105, 
-    102, 117, 115, 101,  76, 105, 
-    103, 104, 116, 115,  91, 106, 
-     93,  46, 100, 105, 114, 101, 
-     99, 116, 105, 111, 110,  41, 
-     59,  13,  10,   9,   9, 125, 
-     13,  10,   9,   9, 102, 111, 
-    114,  32,  40, 105, 110, 116, 
-     32, 105,  32,  61,  32,  48, 
-     59,  32, 105,  32,  60,  32, 
-    112, 111, 105, 110, 116,  76, 
-    105, 103, 104, 116,  67, 111, 
-    117, 110, 116,  59,  32, 105, 
-     43,  43,  41,  13,  10,   9, 
-      9, 123,  13,  10,   9,   9, 
-      9, 102, 108, 111,  97, 116, 
-     51,  32, 108, 105, 103, 104, 
-    116,  68, 105, 114,  32,  61, 
-     32, 112, 111, 105, 110, 116, 
-     76, 105, 103, 104, 116, 115, 
-     91, 105,  93,  46, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     32,  45,  32, 105, 110, 112, 
-    117, 116,  46, 119, 111, 114, 
-    108, 100,  80, 111, 115,  46, 
-    120, 121, 122,  59,  13,  10, 
-      9,   9,   9, 102, 108, 111, 
-     97, 116,  32, 102,  97,  99, 
-    116, 111, 114,  59,  13,  10, 
-      9,   9,   9, 105, 102,  32, 
-     40, 108, 101, 110, 103, 116, 
-    104,  40, 108, 105, 103, 104, 
-    116,  68, 105, 114,  41,  32, 
-     60,  32,  49,  41,  13,  10, 
-      9,   9,   9,   9, 102,  97, 
-     99, 116, 111, 114,  32,  61, 
-     32,  49,  59,  13,  10,   9, 
-      9,   9, 101, 108, 115, 101, 
-     13,  10,   9,   9,   9,   9, 
-    102,  97,  99, 116, 111, 114, 
-     32,  61,  32, 112, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116, 115,  91, 105,  93,  46, 
-    114,  97, 100, 105, 117, 115, 
-     32,  47,  32, 108, 101, 110, 
-    103, 116, 104,  40, 108, 105, 
-    103, 104, 116,  68, 105, 114, 
-     41,  59,  13,  10,   9,   9, 
-      9, 102, 108, 111,  97, 116, 
-     32, 102,  32,  61,  32, 100, 
-    111, 116,  40, 105, 110, 112, 
-    117, 116,  46, 110, 111, 114, 
-    109,  97, 108,  44,  32, 110, 
-    111, 114, 109,  97, 108, 105, 
-    122, 101,  40, 108, 105, 103, 
-    104, 116,  68, 105, 114,  41, 
-     41,  59,  13,  10,   9,   9, 
-      9, 105, 102,  32,  40, 102, 
-     32,  62,  32,  48,  41,  13, 
-     10,   9,   9,   9, 123,  13, 
-     10,   9,   9,   9,   9, 100, 
-    105, 102, 102, 117, 115, 101, 
-     76, 105, 103, 104, 116,  32, 
-     43,  61,  32, 112, 111, 105, 
-    110, 116,  76, 105, 103, 104, 
-    116, 115,  91, 105,  93,  46, 
-     99, 111, 108, 111, 114,  32, 
-     42,  32, 102,  32,  42,  32, 
-    102,  97,  99, 116, 111, 114, 
-     59,  13,  10,   9,   9,   9, 
-      9, 102,  32,  61,  32, 100, 
-    111, 116,  40, 110, 111, 114, 
-    109,  97, 108, 105, 122, 101, 
-     40, 114, 101, 102, 108, 101, 
-     99, 116,  40, 110, 111, 114, 
-    109,  97, 108, 105, 122, 101, 
-     40,  45, 108, 105, 103, 104, 
-    116,  68, 105, 114,  41,  44, 
-     32, 105, 110, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  41,  41,  44,  32, 110, 
-    111, 114, 109,  97, 108, 105, 
-    122, 101,  40, 107,  80, 111, 
-    115, 105, 116, 105, 111, 110, 
-     46, 120, 121, 122,  32,  45, 
-     32, 105, 110, 112, 117, 116, 
-     46, 119, 111, 114, 108, 100, 
-     80, 111, 115,  46, 120, 121, 
-    122,  41,  41,  59,  13,  10, 
-      9,   9,   9,   9, 105, 102, 
-     32,  40, 102,  32,  62,  32, 
-     48,  41,  13,  10,   9,   9, 
-      9,   9,   9, 115, 112, 101, 
-     99, 117, 108,  97, 114,  76, 
-    105, 103, 104, 116,  32,  43, 
-     61,  32, 112, 111, 105, 110, 
-    116,  76, 105, 103, 104, 116, 
-    115,  91, 105,  93,  46,  99, 
-    111, 108, 111, 114,  32,  42, 
-     32, 102,  32,  42,  32, 102, 
-     97,  99, 116, 111, 114,  59, 
-     13,  10,   9,   9,   9, 125, 
-     13,  10,   9,   9, 125,  13, 
-     10,   9, 125,  13,  10,   9, 
-     47,  47, 105, 102,  32,  40, 
-     33,  40, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  46, 120,  32,  62, 
-     61,  32,  48,  32,  38,  38, 
-     32, 100, 105, 102, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116,  46, 120,  32,  60,  61, 
-     32,  49,  41,  41,  13,  10, 
-      9,  47,  47,   9, 100, 105, 
-    102, 102, 117, 115, 101,  76, 
-    105, 103, 104, 116,  46, 120, 
-     32,  61,  32,  48,  59,  13, 
-     10,   9, 105, 102,  32,  40, 
     101, 102, 102, 101,  99, 116, 
      69, 110,  97,  98, 108, 101, 
     100,  41,  13,  10,   9, 123, 
@@ -2751,6 +2575,182 @@ const BYTE CustomUIDX11PixelShader[] =
     112, 108, 105, 101, 114,  41, 
      59,  13,  10,   9,   9, 125, 
      13,  10,   9, 125,  13,  10, 
+      9, 105, 102,  32,  40, 105, 
+    110, 112, 117, 116,  46, 108, 
+    105, 103, 104, 116,  46, 119, 
+     32,  62,  32,  48,  41,  13, 
+     10,   9, 123,  13,  10,   9, 
+      9, 100, 105, 102, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116,  32,  61,  32, 102, 108, 
+    111,  97, 116,  51,  40, 109, 
+     97, 116, 101, 114, 105,  97, 
+    108,  67, 111, 108, 111, 114, 
+     46, 120,  32,  42,  32, 105, 
+    110, 112, 117, 116,  46, 108, 
+    105, 103, 104, 116,  46, 120, 
+     44,  32, 109,  97, 116, 101, 
+    114, 105,  97, 108,  67, 111, 
+    108, 111, 114,  46, 121,  32, 
+     42,  32, 105, 110, 112, 117, 
+    116,  46, 108, 105, 103, 104, 
+    116,  46, 121,  44,  32, 109, 
+     97, 116, 101, 114, 105,  97, 
+    108,  67, 111, 108, 111, 114, 
+     46, 122,  32,  42,  32, 105, 
+    110, 112, 117, 116,  46, 108, 
+    105, 103, 104, 116,  46, 122, 
+     41,  59,  13,  10,   9, 125, 
+     13,  10,   9, 101, 108, 115, 
+    101,  13,  10,   9, 123,  13, 
+     10,   9,   9, 102, 111, 114, 
+     32,  40, 105, 110, 116,  32, 
+    106,  32,  61,  32,  48,  59, 
+     32, 106,  32,  60,  32, 100, 
+    105, 102, 102, 117, 115, 101, 
+     76, 105, 103, 104, 116,  67, 
+    111, 117, 110, 116,  59,  32, 
+    106,  43,  43,  41,  13,  10, 
+      9,   9, 123,  13,  10,   9, 
+      9,   9, 105, 102,  32,  40, 
+    100, 111, 116,  40, 105, 110, 
+    112, 117, 116,  46, 110, 111, 
+    114, 109,  97, 108,  44,  32, 
+     45, 100, 105, 102, 117, 115, 
+    101,  76, 105, 103, 104, 116, 
+    115,  91, 106,  93,  46, 100, 
+    105, 114, 101,  99, 116, 105, 
+    111, 110,  41,  32,  60,  32, 
+     48,  41,  13,  10,   9,   9, 
+      9,   9,  99, 111, 110, 116, 
+    105, 110, 117, 101,  59,  13, 
+     10,   9,   9,   9, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116,  32,  43, 
+     61,  32, 100, 105, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116, 115,  91, 106,  93,  46, 
+     99, 111, 108, 111, 114,  32, 
+     42,  32, 100, 111, 116,  40, 
+    105, 110, 112, 117, 116,  46, 
+    110, 111, 114, 109,  97, 108, 
+     44,  32,  45, 100, 105, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116, 115,  91, 106,  93, 
+     46, 100, 105, 114, 101,  99, 
+    116, 105, 111, 110,  41,  59, 
+     13,  10,   9,   9, 125,  13, 
+     10,   9,   9, 102, 111, 114, 
+     32,  40, 105, 110, 116,  32, 
+    105,  32,  61,  32,  48,  59, 
+     32, 105,  32,  60,  32, 112, 
+    111, 105, 110, 116,  76, 105, 
+    103, 104, 116,  67, 111, 117, 
+    110, 116,  59,  32, 105,  43, 
+     43,  41,  13,  10,   9,   9, 
+    123,  13,  10,   9,   9,   9, 
+    102, 108, 111,  97, 116,  51, 
+     32, 108, 105, 103, 104, 116, 
+     68, 105, 114,  32,  61,  32, 
+    112, 111, 105, 110, 116,  76, 
+    105, 103, 104, 116, 115,  91, 
+    105,  93,  46, 112, 111, 115, 
+    105, 116, 105, 111, 110,  32, 
+     45,  32, 105, 110, 112, 117, 
+    116,  46, 119, 111, 114, 108, 
+    100,  80, 111, 115,  46, 120, 
+    121, 122,  59,  13,  10,   9, 
+      9,   9, 102, 108, 111,  97, 
+    116,  32, 102,  97,  99, 116, 
+    111, 114,  59,  13,  10,   9, 
+      9,   9, 105, 102,  32,  40, 
+    108, 101, 110, 103, 116, 104, 
+     40, 108, 105, 103, 104, 116, 
+     68, 105, 114,  41,  32,  60, 
+     32,  49,  41,  13,  10,   9, 
+      9,   9,   9, 102,  97,  99, 
+    116, 111, 114,  32,  61,  32, 
+     49,  59,  13,  10,   9,   9, 
+      9, 101, 108, 115, 101,  13, 
+     10,   9,   9,   9,   9, 102, 
+     97,  99, 116, 111, 114,  32, 
+     61,  32, 112, 111, 105, 110, 
+    116,  76, 105, 103, 104, 116, 
+    115,  91, 105,  93,  46, 114, 
+     97, 100, 105, 117, 115,  32, 
+     47,  32, 108, 101, 110, 103, 
+    116, 104,  40, 108, 105, 103, 
+    104, 116,  68, 105, 114,  41, 
+     59,  13,  10,   9,   9,   9, 
+    102, 108, 111,  97, 116,  32, 
+    102,  32,  61,  32, 100, 111, 
+    116,  40, 105, 110, 112, 117, 
+    116,  46, 110, 111, 114, 109, 
+     97, 108,  44,  32, 110, 111, 
+    114, 109,  97, 108, 105, 122, 
+    101,  40, 108, 105, 103, 104, 
+    116,  68, 105, 114,  41,  41, 
+     59,  13,  10,   9,   9,   9, 
+    105, 102,  32,  40, 102,  32, 
+     62,  32,  48,  41,  13,  10, 
+      9,   9,   9, 123,  13,  10, 
+      9,   9,   9,   9, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116,  32,  43, 
+     61,  32, 112, 111, 105, 110, 
+    116,  76, 105, 103, 104, 116, 
+    115,  91, 105,  93,  46,  99, 
+    111, 108, 111, 114,  32,  42, 
+     32, 102,  32,  42,  32, 102, 
+     97,  99, 116, 111, 114,  59, 
+     13,  10,   9,   9,   9,   9, 
+    102,  32,  61,  32, 100, 111, 
+    116,  40, 110, 111, 114, 109, 
+     97, 108, 105, 122, 101,  40, 
+    114, 101, 102, 108, 101,  99, 
+    116,  40, 110, 111, 114, 109, 
+     97, 108, 105, 122, 101,  40, 
+     45, 108, 105, 103, 104, 116, 
+     68, 105, 114,  41,  44,  32, 
+    105, 110, 112, 117, 116,  46, 
+    110, 111, 114, 109,  97, 108, 
+     41,  41,  44,  32, 110, 111, 
+    114, 109,  97, 108, 105, 122, 
+    101,  40, 107,  80, 111, 115, 
+    105, 116, 105, 111, 110,  46, 
+    120, 121, 122,  32,  45,  32, 
+    105, 110, 112, 117, 116,  46, 
+    119, 111, 114, 108, 100,  80, 
+    111, 115,  46, 120, 121, 122, 
+     41,  41,  59,  13,  10,   9, 
+      9,   9,   9, 105, 102,  32, 
+     40, 102,  32,  62,  32,  48, 
+     41,  13,  10,   9,   9,   9, 
+      9,   9, 115, 112, 101,  99, 
+    117, 108,  97, 114,  76, 105, 
+    103, 104, 116,  32,  43,  61, 
+     32, 112, 111, 105, 110, 116, 
+     76, 105, 103, 104, 116, 115, 
+     91, 105,  93,  46,  99, 111, 
+    108, 111, 114,  32,  42,  32, 
+    102,  32,  42,  32, 102,  97, 
+     99, 116, 111, 114,  59,  13, 
+     10,   9,   9,   9, 125,  13, 
+     10,   9,   9, 125,  13,  10, 
+      9, 125,  13,  10,   9,  47, 
+     47, 105, 102,  32,  40,  33, 
+     40, 100, 105, 102, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116,  46, 120,  32,  62,  61, 
+     32,  48,  32,  38,  38,  32, 
+    100, 105, 102, 102, 117, 115, 
+    101,  76, 105, 103, 104, 116, 
+     46, 120,  32,  60,  61,  32, 
+     49,  41,  41,  13,  10,   9, 
+     47,  47,   9, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  46, 120,  32, 
+     61,  32,  48,  59,  13,  10, 
       9, 102, 108, 111,  97, 116, 
      52,  32, 116, 101, 120, 116, 
     117, 114, 101,  67, 111, 108, 
@@ -2979,8 +2979,8 @@ const BYTE CustomUIDX11PixelShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  27, 226,  48,   1, 
-    128,   0,   0,   0,  37, 155, 
-      6, 163, 121, 108, 216,   1, 
+    128,   0,   0,   0,  28, 168, 
+    199, 170, 224, 108, 216,   1, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2994,7 +2994,7 @@ const BYTE CustomUIDX11PixelShader[] =
       2,   0,   0,   0,   0,   0, 
       0,   0, 131,   0,   0,   0, 
      40,   0,   0,   0,  27, 226, 
-     48,   1, 190, 244, 254, 225, 
+     48,   1, 122, 173, 145, 167, 
     249,  17,   0,   0,   1,   0, 
       0,   0, 130,   0,   0,   0, 
     131,   0,   0,   0,   0,   0, 
@@ -3213,42 +3213,42 @@ const BYTE CustomUIDX11PixelShader[] =
       0,   0,  26,   0,  80,  17, 
       0,   0,   5,   0,   0,   0, 
       4,   0, 252,   0,   0,   0, 
-      1,   0,   8,   1, 164,   0, 
+      1,   0,  96,   4, 252,   3, 
      60,   0,   0,   0,   0,   0, 
      26,   0,  80,  17,   0,   0, 
       5,   0,   4,   0,   4,   0, 
     252,   0,   0,   0,   1,   0, 
-      8,   1, 192,   0,  32,   0, 
+     96,   4,  24,   4,  32,   0, 
       4,   0,   0,   0,  26,   0, 
      80,  17,   0,   0,   5,   0, 
       8,   0,   4,   0, 252,   0, 
-      0,   0,   1,   0,   8,   1, 
-    220,   0,   4,   0,   8,   0, 
+      0,   0,   1,   0,  96,   4, 
+     52,   4,   4,   0,   8,   0, 
       0,   0,  26,   0,  80,  17, 
       0,   0,   5,   0,   0,   0, 
-      4,   0, 160,   1,   0,   0, 
-      1,   0,  40,  15,  60,   0, 
+      4,   0, 248,   4,   0,   0, 
+      1,   0, 208,  11,  60,   0, 
     104,   3,  48,   0,   0,   0, 
      26,   0,  80,  17,   0,   0, 
       5,   0,   4,   0,   4,   0, 
-    188,   1,   0,   0,   1,   0, 
-    196,  13,  32,   0,  84,   3, 
+     20,   5,   0,   0,   1,   0, 
+    108,  10,  32,   0,  84,   3, 
      52,   0,   0,   0,  26,   0, 
      80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0, 216,   1, 
-      0,   0,   1,   0, 168,  13, 
+      8,   0,   4,   0,  48,   5, 
+      0,   0,   1,   0,  80,  10, 
       4,   0,  84,   3,  56,   0, 
       0,   0,  22,   0,  80,  17, 
       0,   0,   5,   0,   0,   0, 
-      4,   0,   4,   2,   0,   0, 
+      4,   0,  92,   5,   0,   0, 
       1,   0,  64,   3,  64,   0, 
       0,   0,  22,   0,  80,  17, 
       0,   0,   5,   0,   4,   0, 
-      4,   0,   4,   2,   0,   0, 
+      4,   0,  92,   5,   0,   0, 
       1,   0,  44,   3,  68,   0, 
       0,   0,  22,   0,  80,  17, 
       0,   0,   5,   0,   8,   0, 
-      4,   0,   4,   2,   0,   0, 
+      4,   0,  92,   5,   0,   0, 
       1,   0,  44,   3,  72,   0, 
       0,   0,  54,   0,  62,  17, 
       2,  16,   0,   0,   8,   0, 
@@ -3263,27 +3263,27 @@ const BYTE CustomUIDX11PixelShader[] =
      80,  17,   0,   0,   5,   0, 
       0,   0,   4,   0,  28,   1, 
       0,   0,   1,   0, 160,  14, 
-      0,   4, 200,   6,  16,   0, 
+     88,   7, 200,   6,  16,   0, 
       0,   0,  26,   0,  80,  17, 
       0,   0,   5,   0,   4,   0, 
       4,   0,  28,   1,   0,   0, 
-      1,   0, 160,  14,   0,   4, 
+      1,   0, 160,  14,  88,   7, 
     200,   6,  20,   0,   0,   0, 
      26,   0,  80,  17,   0,   0, 
       5,   0,   8,   0,   4,   0, 
      28,   1,   0,   0,   1,   0, 
-    160,  14,   0,   4, 200,   6, 
+    160,  14,  88,   7, 200,   6, 
      24,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-      0,   0,   4,   0,  28,   5, 
+      0,   0,   4,   0, 116,   8, 
       0,   0,   1,   0, 200,   6, 
       4,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-      4,   0,   4,   0,  28,   5, 
+      4,   0,   4,   0, 116,   8, 
       0,   0,   1,   0, 200,   6, 
       8,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0,  28,   5, 
+      8,   0,   4,   0, 116,   8, 
       0,   0,   1,   0, 200,   6, 
      12,   0,   0,   0,  54,   0, 
      62,  17,   0,  16,   0,   0, 
@@ -3311,130 +3311,130 @@ const BYTE CustomUIDX11PixelShader[] =
       5,   0,  12,   0,   4,   0, 
      72,   1,   0,   0,   1,   0, 
     128,  15,  44,   0,   0,   0, 
-     42,   0,  62,  17, 116,   0, 
-      0,   0,   0,   0, 106,   0, 
-      0,   0,   0,   0,   0,   0, 
+     42,   0,  62,  17,  64,   0, 
+      0,   0,   0,   0, 100, 105, 
+    115, 116,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,  22,   0,  80,  17, 
       0,   0,   1,   0,   0,   0, 
-      4,   0, 240,   1,   0,   0, 
-      1,   0,  40,   0,  12,   0, 
+      4,   0, 196,   2,   0,   0, 
+      1,   0,  68,   0,  12,   0, 
+      0,   0,  54,   0,  62,  17, 
+     64,   0,   0,   0,   0,   0, 
+     97, 108, 112, 104,  97,  77, 
+    117, 108, 116, 105, 112, 108, 
+    105, 101, 114,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     80,  17,   0,   0,   1,   0, 
+      0,   0,   4,   0,  68,   3, 
+      0,   0,   1,   0, 232,   0, 
+     12,   0,   0,   0,  50,   0, 
+     62,  17,   0,  16,   0,   0, 
+      8,   0, 101, 102, 102, 101, 
+     99, 116,  67, 111, 108, 111, 
+    114,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,  22,   0,  80,  17, 
-      0,   0,   1,   0,   0,   0, 
-      4,   0,  24,   2,   0,   0, 
-      1,   0,  64,   3,  28,   0, 
+      0,   0,   5,   0,   0,   0, 
+      4,   0, 196,   3,   0,   0, 
+      1,   0, 184,   0,  48,   0, 
+      0,   0,  22,   0,  80,  17, 
+      0,   0,   5,   0,   4,   0, 
+      4,   0, 196,   3,   0,   0, 
+      1,   0, 184,   0,  52,   0, 
+      0,   0,  22,   0,  80,  17, 
+      0,   0,   5,   0,   8,   0, 
+      4,   0, 196,   3,   0,   0, 
+      1,   0, 184,   0,  56,   0, 
+      0,   0,  22,   0,  80,  17, 
+      0,   0,   5,   0,  12,   0, 
+      4,   0, 196,   3,   0,   0, 
+      1,   0, 184,   0,  60,   0, 
       0,   0,  42,   0,  62,  17, 
     116,   0,   0,   0,   0,   0, 
-    105,   0,   0,   0,   0,   0, 
+    106,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   1,   0, 
-      0,   0,   4,   0,   8,   5, 
-      0,   0,   1,   0,  80,   0, 
-      0,   0,   0,   0,  22,   0, 
+      0,   0,   4,   0,  72,   5, 
+      0,   0,   1,   0,  40,   0, 
+     12,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   1,   0, 
-      0,   0,   4,   0,  88,   5, 
-      0,   0,   1,   0, 140,   6, 
-     28,   0,   0,   0,  46,   0, 
-     62,  17,   2,  16,   0,   0, 
-      8,   0, 108, 105, 103, 104, 
-    116,  68, 105, 114,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0, 112,   5, 
+      0,   0,   1,   0,  64,   3, 
+     28,   0,   0,   0,  42,   0, 
+     62,  17, 116,   0,   0,   0, 
+      0,   0, 105,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      0,   0,   4,   0,  64,   6, 
-      0,   0,   1,   0, 148,   2, 
-     80,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      4,   0,   4,   0,  64,   6, 
-      0,   0,   1,   0, 148,   2, 
-     84,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0,  64,   6, 
-      0,   0,   1,   0, 148,   2, 
-     88,   0,   0,   0,  46,   0, 
-     62,  17,  64,   0,   0,   0, 
-      0,   0, 102,  97,  99, 116, 
-    111, 114,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      1,   0,   0,   0,   4,   0, 
+     96,   8,   0,   0,   1,   0, 
+     80,   0,   0,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      1,   0,   0,   0,   4,   0, 
+    176,   8,   0,   0,   1,   0, 
+    140,   6,  28,   0,   0,   0, 
+     46,   0,  62,  17,   2,  16, 
+      0,   0,   8,   0, 108, 105, 
+    103, 104, 116,  68, 105, 114, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  26,   0, 
-     80,  17,   0,   0,   1,   0, 
-      0,   0,   4,   0, 192,   6, 
-      0,   0,   1,   0,  36,   5, 
-      4,   0, 120,   0,  60,   0, 
-      0,   0,  42,   0,  62,  17, 
-     64,   0,   0,   0,   0,   0, 
-    102,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  26,   0, 
-     80,  17,   0,   0,   1,   0, 
-      0,   0,   4,   0, 168,   7, 
-      0,   0,   1,   0,  60,   4, 
-     72,   1, 164,   1,  76,   0, 
-      0,   0,  42,   0,  62,  17, 
-     64,   0,   0,   0,   0,   0, 
-    100, 105, 115, 116,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   0,   0,   4,   0, 
+    152,   9,   0,   0,   1,   0, 
+    148,   2,  80,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   4,   0,   4,   0, 
+    152,   9,   0,   0,   1,   0, 
+    148,   2,  84,   0,   0,   0, 
+     22,   0,  80,  17,   0,   0, 
+      5,   0,   8,   0,   4,   0, 
+    152,   9,   0,   0,   1,   0, 
+    148,   2,  88,   0,   0,   0, 
+     46,   0,  62,  17,  64,   0, 
+      0,   0,   0,   0, 102,  97, 
+     99, 116, 111, 114,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   1,   0, 
-      0,   0,   4,   0, 100,  13, 
-      0,   0,   1,   0,  68,   0, 
-      0,   0,   0,   0,  54,   0, 
+      0,   0,   0,   0,   0,   0, 
+     26,   0,  80,  17,   0,   0, 
+      1,   0,   0,   0,   4,   0, 
+     24,  10,   0,   0,   1,   0, 
+     36,   5,   4,   0, 120,   0, 
+     60,   0,   0,   0,  42,   0, 
      62,  17,  64,   0,   0,   0, 
-      0,   0,  97, 108, 112, 104, 
-     97,  77, 117, 108, 116, 105, 
-    112, 108, 105, 101, 114,   0, 
+      0,   0, 102,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     22,   0,  80,  17,   0,   0, 
+     26,   0,  80,  17,   0,   0, 
       1,   0,   0,   0,   4,   0, 
-    228,  13,   0,   0,   1,   0, 
-    232,   0,   0,   0,   0,   0, 
-     50,   0,  62,  17,   0,  16, 
-      0,   0,   8,   0, 101, 102, 
-    102, 101,  99, 116,  67, 111, 
-    108, 111, 114,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      0,   0,   4,   0, 100,  14, 
-      0,   0,   1,   0, 216,   0, 
-     64,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      4,   0,   4,   0, 100,  14, 
-      0,   0,   1,   0, 216,   0, 
-     68,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0, 100,  14, 
-      0,   0,   1,   0, 216,   0, 
-     72,   0,   0,   0,  22,   0, 
-     80,  17,   0,   0,   5,   0, 
-     12,   0,   4,   0, 100,  14, 
-      0,   0,   1,   0, 216,   0, 
+      0,  11,   0,   0,   1,   0, 
+     60,   4,  72,   1, 164,   1, 
      76,   0,   0,   0,  50,   0, 
      62,  17,   0,  16,   0,   0, 
       8,   0, 116, 101, 120, 116, 
@@ -3463,9 +3463,9 @@ const BYTE CustomUIDX11PixelShader[] =
       0,   0,   2,   0,   6,   0, 
     244,   0,   0,   0,  24,   0, 
       0,   0,   1,   0,   0,   0, 
-     16,   1, 123,  32, 207,  94, 
-    162,  60, 102, 107, 102, 139, 
-    115, 151,  97,  60,   2, 187, 
+     16,   1,  91, 146, 150,  42, 
+     48,  81, 121, 222, 249,   7, 
+    197,  10, 175, 250,   6, 158, 
       0,   0, 242,   0,   0,   0, 
      72,  15,   0,   0,   0,   0, 
       0,   0,   1,   0,   1,   0, 
@@ -3482,385 +3482,385 @@ const BYTE CustomUIDX11PixelShader[] =
      71,   0,   0,   0,  72,   1, 
       0,   0,  72,   0,   0, 128, 
      72,   1,   0,   0,  72,   0, 
-      0,   0,  92,   1,   0,   0, 
-     72,   0,   0, 128,  92,   1, 
+      0,   0, 116,   1,   0,   0, 
+     72,   0,   0, 128, 116,   1, 
       0,   0,  72,   0,   0,   0, 
-    120,   1,   0,   0,  72,   0, 
-      0, 128, 120,   1,   0,   0, 
-     72,   0,   0,   0, 132,   1, 
+    128,   1,   0,   0,  74,   0, 
+      0, 128, 128,   1,   0,   0, 
+     74,   0,   0,   0, 148,   1, 
       0,   0,  74,   0,   0, 128, 
-    132,   1,   0,   0,  74,   0, 
-      0,   0, 160,   1,   0,   0, 
-     74,   0,   0, 128, 160,   1, 
+    148,   1,   0,   0,  74,   0, 
+      0,   0, 176,   1,   0,   0, 
+     74,   0,   0, 128, 176,   1, 
       0,   0,  74,   0,   0,   0, 
-    188,   1,   0,   0,  74,   0, 
-      0, 128, 188,   1,   0,   0, 
-     74,   0,   0,   0, 216,   1, 
+    196,   1,   0,   0,  74,   0, 
+      0, 128, 196,   1,   0,   0, 
+     74,   0,   0,   0, 224,   1, 
+      0,   0,  74,   0,   0, 128, 
+    224,   1,   0,   0,  74,   0, 
+      0,   0, 252,   1,   0,   0, 
+     74,   0,   0, 128, 252,   1, 
+      0,   0,  74,   0,   0,   0, 
+     16,   2,   0,   0,  74,   0, 
+      0, 128,  16,   2,   0,   0, 
+     74,   0,   0,   0,  44,   2, 
+      0,   0,  74,   0,   0, 128, 
+     44,   2,   0,   0,  74,   0, 
+      0,   0,  64,   2,   0,   0, 
+     74,   0,   0, 128,  64,   2, 
+      0,   0,  74,   0,   0,   0, 
+     92,   2,   0,   0,  74,   0, 
+      0, 128,  92,   2,   0,   0, 
+     74,   0,   0,   0, 120,   2, 
+      0,   0,  74,   0,   0, 128, 
+    120,   2,   0,   0,  74,   0, 
+      0,   0, 148,   2,   0,   0, 
+     74,   0,   0, 128, 148,   2, 
+      0,   0,  74,   0,   0,   0, 
+    168,   2,   0,   0,  74,   0, 
+      0, 128, 168,   2,   0,   0, 
+     74,   0,   0,   0, 196,   2, 
       0,   0,  75,   0,   0, 128, 
-    216,   1,   0,   0,  75,   0, 
-      0,   0, 220,   1,   0,   0, 
-     78,   0,   0, 128, 220,   1, 
-      0,   0,  78,   0,   0,   0, 
-    240,   1,   0,   0,  78,   0, 
-      0, 128, 240,   1,   0,   0, 
-     78,   0,   0,   0,   4,   2, 
+    196,   2,   0,   0,  75,   0, 
+      0,   0, 228,   2,   0,   0, 
+     75,   0,   0, 128, 228,   2, 
+      0,   0,  75,   0,   0,   0, 
+    240,   2,   0,   0,  77,   0, 
+      0, 128, 240,   2,   0,   0, 
+     77,   0,   0,   0,   8,   3, 
+      0,   0,  77,   0,   0, 128, 
+      8,   3,   0,   0,  77,   0, 
+      0,   0,  40,   3,   0,   0, 
+     77,   0,   0, 128,  40,   3, 
+      0,   0,  77,   0,   0,   0, 
+     68,   3,   0,   0,  78,   0, 
+      0, 128,  68,   3,   0,   0, 
+     78,   0,   0,   0,  88,   3, 
       0,   0,  78,   0,   0, 128, 
-      4,   2,   0,   0,  78,   0, 
-      0,   0,  24,   2,   0,   0, 
-     78,   0,   0, 128,  24,   2, 
+     88,   3,   0,   0,  78,   0, 
+      0,   0, 116,   3,   0,   0, 
+     78,   0,   0, 128, 116,   3, 
       0,   0,  78,   0,   0,   0, 
-     28,   2,   0,   0,  78,   0, 
-      0, 128,  28,   2,   0,   0, 
-     78,   0,   0,   0,  60,   2, 
-      0,   0,  78,   0,   0, 128, 
-     60,   2,   0,   0,  78,   0, 
-      0,   0,  72,   2,   0,   0, 
-     80,   0,   0, 128,  72,   2, 
-      0,   0,  80,   0,   0,   0, 
-    116,   2,   0,   0,  80,   0, 
-      0, 128, 116,   2,   0,   0, 
-     80,   0,   0,   0, 160,   2, 
-      0,   0,  80,   0,   0, 128, 
-    160,   2,   0,   0,  80,   0, 
-      0,   0, 204,   2,   0,   0, 
-     80,   0,   0, 128, 204,   2, 
+    128,   3,   0,   0,  79,   0, 
+      0, 128, 128,   3,   0,   0, 
+     79,   0,   0,   0, 148,   3, 
+      0,   0,  79,   0,   0, 128, 
+    148,   3,   0,   0,  79,   0, 
+      0,   0, 152,   3,   0,   0, 
+     80,   0,   0, 128, 152,   3, 
       0,   0,  80,   0,   0,   0, 
-    228,   2,   0,   0,  80,   0, 
-      0, 128, 228,   2,   0,   0, 
-     80,   0,   0,   0,   0,   3, 
-      0,   0,  80,   0,   0, 128, 
-      0,   3,   0,   0,  80,   0, 
-      0,   0,  20,   3,   0,   0, 
-     80,   0,   0, 128,  20,   3, 
-      0,   0,  80,   0,   0,   0, 
-     48,   3,   0,   0,  80,   0, 
-      0, 128,  48,   3,   0,   0, 
-     80,   0,   0,   0,  60,   3, 
+    196,   3,   0,   0,  81,   0, 
+      0, 128, 196,   3,   0,   0, 
+     81,   0,   0,   0, 224,   3, 
       0,   0,  81,   0,   0, 128, 
-     60,   3,   0,   0,  78,   0, 
-      0,   0,  88,   3,   0,   0, 
-     81,   0,   0, 128,  88,   3, 
+    224,   3,   0,   0,  81,   0, 
+      0,   0, 252,   3,   0,   0, 
+     81,   0,   0, 128, 252,   3, 
       0,   0,  81,   0,   0,   0, 
-     92,   3,   0,   0,  81,   0, 
-      0, 128,  92,   3,   0,   0, 
-     81,   0,   0,   0,  96,   3, 
-      0,   0,  82,   0,   0, 128, 
-     96,   3,   0,   0,  82,   0, 
-      0,   0, 140,   3,   0,   0, 
-     82,   0,   0, 128, 140,   3, 
-      0,   0,  82,   0,   0,   0, 
-    184,   3,   0,   0,  82,   0, 
-      0, 128, 184,   3,   0,   0, 
-     82,   0,   0,   0, 228,   3, 
-      0,   0,  82,   0,   0, 128, 
-    228,   3,   0,   0,  82,   0, 
-      0,   0,  16,   4,   0,   0, 
-     82,   0,   0, 128,  16,   4, 
-      0,   0,  82,   0,   0,   0, 
-     60,   4,   0,   0,  82,   0, 
-      0, 128,  60,   4,   0,   0, 
-     82,   0,   0,   0, 104,   4, 
-      0,   0,  82,   0,   0, 128, 
-    104,   4,   0,   0,  82,   0, 
-      0,   0, 128,   4,   0,   0, 
-     82,   0,   0, 128, 128,   4, 
+     16,   4,   0,   0,  81,   0, 
+      0, 128,  16,   4,   0,   0, 
+     81,   0,   0,   0,  44,   4, 
+      0,   0,  81,   0,   0, 128, 
+     44,   4,   0,   0,  81,   0, 
+      0,   0,  68,   4,   0,   0, 
+     81,   0,   0, 128,  68,   4, 
+      0,   0,  81,   0,   0,   0, 
+     96,   4,   0,   0,  81,   0, 
+      0, 128,  96,   4,   0,   0, 
+     81,   0,   0,   0, 124,   4, 
+      0,   0,  81,   0,   0, 128, 
+    124,   4,   0,   0,  81,   0, 
+      0,   0, 152,   4,   0,   0, 
+     82,   0,   0, 128, 152,   4, 
       0,   0,  82,   0,   0,   0, 
-    156,   4,   0,   0,  82,   0, 
+    156,   4,   0,   0,  83,   0, 
       0, 128, 156,   4,   0,   0, 
-     82,   0,   0,   0, 184,   4, 
-      0,   0,  82,   0,   0, 128, 
-    184,   4,   0,   0,  82,   0, 
-      0,   0, 212,   4,   0,   0, 
-     78,   0,   0, 128, 212,   4, 
-      0,   0,  78,   0,   0,   0, 
-    240,   4,   0,   0,  83,   0, 
-      0, 128, 240,   4,   0,   0, 
-     83,   0,   0,   0, 244,   4, 
-      0,   0,  84,   0,   0, 128, 
-    244,   4,   0,   0,  84,   0, 
-      0,   0,   8,   5,   0,   0, 
-     84,   0,   0, 128,   8,   5, 
-      0,   0,  84,   0,   0,   0, 
-     28,   5,   0,   0,  84,   0, 
-      0, 128,  28,   5,   0,   0, 
-     84,   0,   0,   0,  48,   5, 
-      0,   0,  84,   0,   0, 128, 
-     48,   5,   0,   0,  84,   0, 
-      0,   0,  68,   5,   0,   0, 
-     84,   0,   0, 128,  68,   5, 
-      0,   0,  84,   0,   0,   0, 
-     88,   5,   0,   0,  84,   0, 
-      0, 128,  88,   5,   0,   0, 
-     84,   0,   0,   0,  92,   5, 
+     83,   0,   0,   0, 160,   4, 
       0,   0,  84,   0,   0, 128, 
-     92,   5,   0,   0,  84,   0, 
-      0,   0, 124,   5,   0,   0, 
-     84,   0,   0, 128, 124,   5, 
+    160,   4,   0,   0,  84,   0, 
+      0,   0, 180,   4,   0,   0, 
+     84,   0,   0, 128, 180,   4, 
       0,   0,  84,   0,   0,   0, 
-    136,   5,   0,   0,  86,   0, 
-      0, 128, 136,   5,   0,   0, 
-     86,   0,   0,   0, 180,   5, 
+    208,   4,   0,   0,  84,   0, 
+      0, 128, 208,   4,   0,   0, 
+     84,   0,   0,   0, 220,   4, 
       0,   0,  86,   0,   0, 128, 
-    180,   5,   0,   0,  86,   0, 
-      0,   0, 224,   5,   0,   0, 
-     86,   0,   0, 128, 224,   5, 
+    220,   4,   0,   0,  86,   0, 
+      0,   0, 248,   4,   0,   0, 
+     86,   0,   0, 128, 248,   4, 
       0,   0,  86,   0,   0,   0, 
-     12,   6,   0,   0,  86,   0, 
-      0, 128,  12,   6,   0,   0, 
-     86,   0,   0,   0,  36,   6, 
-      0,   0,  86,   0,   0, 128, 
-     36,   6,   0,   0,  86,   0, 
-      0,   0,  64,   6,   0,   0, 
-     88,   0,   0, 128,  64,   6, 
-      0,   0,  88,   0,   0,   0, 
-     92,   6,   0,   0,  88,   0, 
-      0, 128,  92,   6,   0,   0, 
-     88,   0,   0,   0, 112,   6, 
-      0,   0,  88,   0,   0, 128, 
-    112,   6,   0,   0,  88,   0, 
-      0,   0, 132,   6,   0,   0, 
-     88,   0,   0, 128, 132,   6, 
-      0,   0,  88,   0,   0,   0, 
-    160,   6,   0,   0,  88,   0, 
-      0, 128, 160,   6,   0,   0, 
-     88,   0,   0,   0, 172,   6, 
-      0,   0,  89,   0,   0, 128, 
-    172,   6,   0,   0,  89,   0, 
-      0,   0, 192,   6,   0,   0, 
-     89,   0,   0, 128, 192,   6, 
-      0,   0,  89,   0,   0,   0, 
-    196,   6,   0,   0,  91,   0, 
-      0, 128, 196,   6,   0,   0, 
-     91,   0,   0,   0, 240,   6, 
-      0,   0,  91,   0,   0, 128, 
-    240,   6,   0,   0,  91,   0, 
-      0,   0,  12,   7,   0,   0, 
-     91,   0,   0, 128,  12,   7, 
-      0,   0,  91,   0,   0,   0, 
-     32,   7,   0,   0,  91,   0, 
-      0, 128,  32,   7,   0,   0, 
-     91,   0,   0,   0,  60,   7, 
-      0,   0,  91,   0,   0, 128, 
-     60,   7,   0,   0,  91,   0, 
-      0,   0,  64,   7,   0,   0, 
-     92,   0,   0, 128,  64,   7, 
+     20,   5,   0,   0,  86,   0, 
+      0, 128,  20,   5,   0,   0, 
+     86,   0,   0,   0,  48,   5, 
+      0,   0,  87,   0,   0, 128, 
+     48,   5,   0,   0,  87,   0, 
+      0,   0,  52,   5,   0,   0, 
+     90,   0,   0, 128,  52,   5, 
+      0,   0,  90,   0,   0,   0, 
+     72,   5,   0,   0,  90,   0, 
+      0, 128,  72,   5,   0,   0, 
+     90,   0,   0,   0,  92,   5, 
+      0,   0,  90,   0,   0, 128, 
+     92,   5,   0,   0,  90,   0, 
+      0,   0, 112,   5,   0,   0, 
+     90,   0,   0, 128, 112,   5, 
+      0,   0,  90,   0,   0,   0, 
+    116,   5,   0,   0,  90,   0, 
+      0, 128, 116,   5,   0,   0, 
+     90,   0,   0,   0, 148,   5, 
+      0,   0,  90,   0,   0, 128, 
+    148,   5,   0,   0,  90,   0, 
+      0,   0, 160,   5,   0,   0, 
+     92,   0,   0, 128, 160,   5, 
+      0,   0,  92,   0,   0,   0, 
+    204,   5,   0,   0,  92,   0, 
+      0, 128, 204,   5,   0,   0, 
+     92,   0,   0,   0, 248,   5, 
+      0,   0,  92,   0,   0, 128, 
+    248,   5,   0,   0,  92,   0, 
+      0,   0,  36,   6,   0,   0, 
+     92,   0,   0, 128,  36,   6, 
       0,   0,  92,   0,   0,   0, 
-     92,   7,   0,   0,  92,   0, 
-      0, 128,  92,   7,   0,   0, 
-     92,   0,   0,   0, 112,   7, 
+     60,   6,   0,   0,  92,   0, 
+      0, 128,  60,   6,   0,   0, 
+     92,   0,   0,   0,  88,   6, 
       0,   0,  92,   0,   0, 128, 
-    112,   7,   0,   0,  92,   0, 
-      0,   0, 140,   7,   0,   0, 
-     92,   0,   0, 128, 140,   7, 
+     88,   6,   0,   0,  92,   0, 
+      0,   0, 108,   6,   0,   0, 
+     92,   0,   0, 128, 108,   6, 
       0,   0,  92,   0,   0,   0, 
-    168,   7,   0,   0,  93,   0, 
-      0, 128, 168,   7,   0,   0, 
-     93,   0,   0,   0, 188,   7, 
+    136,   6,   0,   0,  92,   0, 
+      0, 128, 136,   6,   0,   0, 
+     92,   0,   0,   0, 148,   6, 
       0,   0,  93,   0,   0, 128, 
-    188,   7,   0,   0,  93,   0, 
-      0,   0, 216,   7,   0,   0, 
-     93,   0,   0, 128, 216,   7, 
+    148,   6,   0,   0,  90,   0, 
+      0,   0, 176,   6,   0,   0, 
+     93,   0,   0, 128, 176,   6, 
       0,   0,  93,   0,   0,   0, 
-    228,   7,   0,   0,  95,   0, 
-      0, 128, 228,   7,   0,   0, 
-     95,   0,   0,   0,  16,   8, 
-      0,   0,  95,   0,   0, 128, 
-     16,   8,   0,   0,  95,   0, 
-      0,   0,  60,   8,   0,   0, 
-     95,   0,   0, 128,  60,   8, 
-      0,   0,  95,   0,   0,   0, 
-    104,   8,   0,   0,  95,   0, 
-      0, 128, 104,   8,   0,   0, 
-     95,   0,   0,   0, 132,   8, 
-      0,   0,  95,   0,   0, 128, 
-    132,   8,   0,   0,  95,   0, 
-      0,   0, 160,   8,   0,   0, 
-     95,   0,   0, 128, 160,   8, 
-      0,   0,  95,   0,   0,   0, 
-    188,   8,   0,   0,  96,   0, 
-      0, 128, 188,   8,   0,   0, 
-     96,   0,   0,   0, 212,   8, 
-      0,   0,  96,   0,   0, 128, 
-    212,   8,   0,   0,  96,   0, 
-      0,   0, 240,   8,   0,   0, 
-     96,   0,   0, 128, 240,   8, 
-      0,   0,  96,   0,   0,   0, 
-      4,   9,   0,   0,  96,   0, 
-      0, 128,   4,   9,   0,   0, 
-     96,   0,   0,   0,  32,   9, 
-      0,   0,  96,   0,   0, 128, 
-     32,   9,   0,   0,  96,   0, 
-      0,   0,  60,   9,   0,   0, 
-     96,   0,   0, 128,  60,   9, 
-      0,   0,  96,   0,   0,   0, 
-     88,   9,   0,   0,  96,   0, 
-      0, 128,  88,   9,   0,   0, 
-     96,   0,   0,   0, 112,   9, 
-      0,   0,  96,   0,   0, 128, 
-    112,   9,   0,   0,  96,   0, 
-      0,   0, 140,   9,   0,   0, 
-     96,   0,   0, 128, 140,   9, 
-      0,   0,  96,   0,   0,   0, 
-    168,   9,   0,   0,  96,   0, 
-      0, 128, 168,   9,   0,   0, 
-     96,   0,   0,   0, 196,   9, 
+    180,   6,   0,   0,  93,   0, 
+      0, 128, 180,   6,   0,   0, 
+     93,   0,   0,   0, 184,   6, 
+      0,   0,  94,   0,   0, 128, 
+    184,   6,   0,   0,  94,   0, 
+      0,   0, 228,   6,   0,   0, 
+     94,   0,   0, 128, 228,   6, 
+      0,   0,  94,   0,   0,   0, 
+     16,   7,   0,   0,  94,   0, 
+      0, 128,  16,   7,   0,   0, 
+     94,   0,   0,   0,  60,   7, 
+      0,   0,  94,   0,   0, 128, 
+     60,   7,   0,   0,  94,   0, 
+      0,   0, 104,   7,   0,   0, 
+     94,   0,   0, 128, 104,   7, 
+      0,   0,  94,   0,   0,   0, 
+    148,   7,   0,   0,  94,   0, 
+      0, 128, 148,   7,   0,   0, 
+     94,   0,   0,   0, 192,   7, 
+      0,   0,  94,   0,   0, 128, 
+    192,   7,   0,   0,  94,   0, 
+      0,   0, 216,   7,   0,   0, 
+     94,   0,   0, 128, 216,   7, 
+      0,   0,  94,   0,   0,   0, 
+    244,   7,   0,   0,  94,   0, 
+      0, 128, 244,   7,   0,   0, 
+     94,   0,   0,   0,  16,   8, 
+      0,   0,  94,   0,   0, 128, 
+     16,   8,   0,   0,  94,   0, 
+      0,   0,  44,   8,   0,   0, 
+     90,   0,   0, 128,  44,   8, 
+      0,   0,  90,   0,   0,   0, 
+     72,   8,   0,   0,  95,   0, 
+      0, 128,  72,   8,   0,   0, 
+     95,   0,   0,   0,  76,   8, 
       0,   0,  96,   0,   0, 128, 
-    196,   9,   0,   0,  96,   0, 
-      0,   0, 216,   9,   0,   0, 
-     96,   0,   0, 128, 216,   9, 
+     76,   8,   0,   0,  96,   0, 
+      0,   0,  96,   8,   0,   0, 
+     96,   0,   0, 128,  96,   8, 
       0,   0,  96,   0,   0,   0, 
-    244,   9,   0,   0,  96,   0, 
-      0, 128, 244,   9,   0,   0, 
-     96,   0,   0,   0,  12,  10, 
+    116,   8,   0,   0,  96,   0, 
+      0, 128, 116,   8,   0,   0, 
+     96,   0,   0,   0, 136,   8, 
       0,   0,  96,   0,   0, 128, 
-     12,  10,   0,   0,  96,   0, 
-      0,   0,  44,  10,   0,   0, 
-     96,   0,   0, 128,  44,  10, 
+    136,   8,   0,   0,  96,   0, 
+      0,   0, 156,   8,   0,   0, 
+     96,   0,   0, 128, 156,   8, 
       0,   0,  96,   0,   0,   0, 
-     72,  10,   0,   0,  96,   0, 
-      0, 128,  72,  10,   0,   0, 
-     96,   0,   0,   0,  92,  10, 
+    176,   8,   0,   0,  96,   0, 
+      0, 128, 176,   8,   0,   0, 
+     96,   0,   0,   0, 180,   8, 
       0,   0,  96,   0,   0, 128, 
-     92,  10,   0,   0,  96,   0, 
-      0,   0, 120,  10,   0,   0, 
-     96,   0,   0, 128, 120,  10, 
+    180,   8,   0,   0,  96,   0, 
+      0,   0, 212,   8,   0,   0, 
+     96,   0,   0, 128, 212,   8, 
       0,   0,  96,   0,   0,   0, 
-    148,  10,   0,   0,  97,   0, 
-      0, 128, 148,  10,   0,   0, 
-     97,   0,   0,   0, 168,  10, 
-      0,   0,  97,   0,   0, 128, 
-    168,  10,   0,   0,  97,   0, 
-      0,   0, 196,  10,   0,   0, 
-     97,   0,   0, 128, 196,  10, 
-      0,   0,  97,   0,   0,   0, 
-    208,  10,   0,   0,  98,   0, 
-      0, 128, 208,  10,   0,   0, 
-     98,   0,   0,   0, 252,  10, 
+    224,   8,   0,   0,  98,   0, 
+      0, 128, 224,   8,   0,   0, 
+     98,   0,   0,   0,  12,   9, 
       0,   0,  98,   0,   0, 128, 
-    252,  10,   0,   0,  98,   0, 
-      0,   0,  40,  11,   0,   0, 
-     98,   0,   0, 128,  40,  11, 
+     12,   9,   0,   0,  98,   0, 
+      0,   0,  56,   9,   0,   0, 
+     98,   0,   0, 128,  56,   9, 
       0,   0,  98,   0,   0,   0, 
-     84,  11,   0,   0,  98,   0, 
-      0, 128,  84,  11,   0,   0, 
-     98,   0,   0,   0, 112,  11, 
+    100,   9,   0,   0,  98,   0, 
+      0, 128, 100,   9,   0,   0, 
+     98,   0,   0,   0, 124,   9, 
       0,   0,  98,   0,   0, 128, 
-    112,  11,   0,   0,  98,   0, 
-      0,   0, 140,  11,   0,   0, 
-     98,   0,   0, 128, 140,  11, 
-      0,   0,  98,   0,   0,   0, 
-    168,  11,   0,   0,  98,   0, 
-      0, 128, 168,  11,   0,   0, 
-     98,   0,   0,   0, 172,  11, 
-      0,   0,  99,   0,   0, 128, 
-    172,  11,   0,   0,  99,   0, 
-      0,   0, 176,  11,   0,   0, 
-    100,   0,   0, 128, 176,  11, 
-      0,   0,  84,   0,   0,   0, 
-    204,  11,   0,   0, 100,   0, 
-      0, 128, 204,  11,   0,   0, 
-    100,   0,   0,   0, 208,  11, 
+    124,   9,   0,   0,  98,   0, 
+      0,   0, 152,   9,   0,   0, 
+    100,   0,   0, 128, 152,   9, 
+      0,   0, 100,   0,   0,   0, 
+    180,   9,   0,   0, 100,   0, 
+      0, 128, 180,   9,   0,   0, 
+    100,   0,   0,   0, 200,   9, 
       0,   0, 100,   0,   0, 128, 
-    208,  11,   0,   0, 100,   0, 
-      0,   0, 228,  11,   0,   0, 
-    101,   0,   0, 128, 228,  11, 
+    200,   9,   0,   0, 100,   0, 
+      0,   0, 220,   9,   0,   0, 
+    100,   0,   0, 128, 220,   9, 
+      0,   0, 100,   0,   0,   0, 
+    248,   9,   0,   0, 100,   0, 
+      0, 128, 248,   9,   0,   0, 
+    100,   0,   0,   0,   4,  10, 
+      0,   0, 101,   0,   0, 128, 
+      4,  10,   0,   0, 101,   0, 
+      0,   0,  24,  10,   0,   0, 
+    101,   0,   0, 128,  24,  10, 
       0,   0, 101,   0,   0,   0, 
-    232,  11,   0,   0, 104,   0, 
-      0, 128, 232,  11,   0,   0, 
-    104,   0,   0,   0,  20,  12, 
+     28,  10,   0,   0, 103,   0, 
+      0, 128,  28,  10,   0,   0, 
+    103,   0,   0,   0,  72,  10, 
+      0,   0, 103,   0,   0, 128, 
+     72,  10,   0,   0, 103,   0, 
+      0,   0, 100,  10,   0,   0, 
+    103,   0,   0, 128, 100,  10, 
+      0,   0, 103,   0,   0,   0, 
+    120,  10,   0,   0, 103,   0, 
+      0, 128, 120,  10,   0,   0, 
+    103,   0,   0,   0, 148,  10, 
+      0,   0, 103,   0,   0, 128, 
+    148,  10,   0,   0, 103,   0, 
+      0,   0, 152,  10,   0,   0, 
+    104,   0,   0, 128, 152,  10, 
+      0,   0, 104,   0,   0,   0, 
+    180,  10,   0,   0, 104,   0, 
+      0, 128, 180,  10,   0,   0, 
+    104,   0,   0,   0, 200,  10, 
       0,   0, 104,   0,   0, 128, 
-     20,  12,   0,   0, 104,   0, 
-      0,   0,  32,  12,   0,   0, 
-    106,   0,   0, 128,  32,  12, 
-      0,   0, 106,   0,   0,   0, 
-     52,  12,   0,   0, 106,   0, 
-      0, 128,  52,  12,   0,   0, 
-    106,   0,   0,   0,  80,  12, 
-      0,   0, 106,   0,   0, 128, 
-     80,  12,   0,   0, 106,   0, 
-      0,   0, 100,  12,   0,   0, 
-    106,   0,   0, 128, 100,  12, 
-      0,   0, 106,   0,   0,   0, 
-    128,  12,   0,   0, 106,   0, 
-      0, 128, 128,  12,   0,   0, 
-    106,   0,   0,   0, 156,  12, 
-      0,   0, 106,   0,   0, 128, 
-    156,  12,   0,   0, 106,   0, 
-      0,   0, 176,  12,   0,   0, 
-    106,   0,   0, 128, 176,  12, 
-      0,   0, 106,   0,   0,   0, 
-    204,  12,   0,   0, 106,   0, 
-      0, 128, 204,  12,   0,   0, 
-    106,   0,   0,   0, 224,  12, 
-      0,   0, 106,   0,   0, 128, 
-    224,  12,   0,   0, 106,   0, 
-      0,   0, 252,  12,   0,   0, 
-    106,   0,   0, 128, 252,  12, 
-      0,   0, 106,   0,   0,   0, 
-     24,  13,   0,   0, 106,   0, 
-      0, 128,  24,  13,   0,   0, 
-    106,   0,   0,   0,  52,  13, 
-      0,   0, 106,   0,   0, 128, 
-     52,  13,   0,   0, 106,   0, 
-      0,   0,  72,  13,   0,   0, 
-    106,   0,   0, 128,  72,  13, 
-      0,   0, 106,   0,   0,   0, 
-    100,  13,   0,   0, 107,   0, 
-      0, 128, 100,  13,   0,   0, 
-    107,   0,   0,   0, 132,  13, 
+    200,  10,   0,   0, 104,   0, 
+      0,   0, 228,  10,   0,   0, 
+    104,   0,   0, 128, 228,  10, 
+      0,   0, 104,   0,   0,   0, 
+      0,  11,   0,   0, 105,   0, 
+      0, 128,   0,  11,   0,   0, 
+    105,   0,   0,   0,  20,  11, 
+      0,   0, 105,   0,   0, 128, 
+     20,  11,   0,   0, 105,   0, 
+      0,   0,  48,  11,   0,   0, 
+    105,   0,   0, 128,  48,  11, 
+      0,   0, 105,   0,   0,   0, 
+     60,  11,   0,   0, 107,   0, 
+      0, 128,  60,  11,   0,   0, 
+    107,   0,   0,   0, 104,  11, 
       0,   0, 107,   0,   0, 128, 
-    132,  13,   0,   0, 107,   0, 
-      0,   0, 144,  13,   0,   0, 
-    109,   0,   0, 128, 144,  13, 
-      0,   0, 109,   0,   0,   0, 
-    168,  13,   0,   0, 109,   0, 
-      0, 128, 168,  13,   0,   0, 
-    109,   0,   0,   0, 200,  13, 
+    104,  11,   0,   0, 107,   0, 
+      0,   0, 148,  11,   0,   0, 
+    107,   0,   0, 128, 148,  11, 
+      0,   0, 107,   0,   0,   0, 
+    192,  11,   0,   0, 107,   0, 
+      0, 128, 192,  11,   0,   0, 
+    107,   0,   0,   0, 220,  11, 
+      0,   0, 107,   0,   0, 128, 
+    220,  11,   0,   0, 107,   0, 
+      0,   0, 248,  11,   0,   0, 
+    107,   0,   0, 128, 248,  11, 
+      0,   0, 107,   0,   0,   0, 
+     20,  12,   0,   0, 108,   0, 
+      0, 128,  20,  12,   0,   0, 
+    108,   0,   0,   0,  44,  12, 
+      0,   0, 108,   0,   0, 128, 
+     44,  12,   0,   0, 108,   0, 
+      0,   0,  72,  12,   0,   0, 
+    108,   0,   0, 128,  72,  12, 
+      0,   0, 108,   0,   0,   0, 
+     92,  12,   0,   0, 108,   0, 
+      0, 128,  92,  12,   0,   0, 
+    108,   0,   0,   0, 120,  12, 
+      0,   0, 108,   0,   0, 128, 
+    120,  12,   0,   0, 108,   0, 
+      0,   0, 148,  12,   0,   0, 
+    108,   0,   0, 128, 148,  12, 
+      0,   0, 108,   0,   0,   0, 
+    176,  12,   0,   0, 108,   0, 
+      0, 128, 176,  12,   0,   0, 
+    108,   0,   0,   0, 200,  12, 
+      0,   0, 108,   0,   0, 128, 
+    200,  12,   0,   0, 108,   0, 
+      0,   0, 228,  12,   0,   0, 
+    108,   0,   0, 128, 228,  12, 
+      0,   0, 108,   0,   0,   0, 
+      0,  13,   0,   0, 108,   0, 
+      0, 128,   0,  13,   0,   0, 
+    108,   0,   0,   0,  28,  13, 
+      0,   0, 108,   0,   0, 128, 
+     28,  13,   0,   0, 108,   0, 
+      0,   0,  48,  13,   0,   0, 
+    108,   0,   0, 128,  48,  13, 
+      0,   0, 108,   0,   0,   0, 
+     76,  13,   0,   0, 108,   0, 
+      0, 128,  76,  13,   0,   0, 
+    108,   0,   0,   0, 100,  13, 
+      0,   0, 108,   0,   0, 128, 
+    100,  13,   0,   0, 108,   0, 
+      0,   0, 132,  13,   0,   0, 
+    108,   0,   0, 128, 132,  13, 
+      0,   0, 108,   0,   0,   0, 
+    160,  13,   0,   0, 108,   0, 
+      0, 128, 160,  13,   0,   0, 
+    108,   0,   0,   0, 180,  13, 
+      0,   0, 108,   0,   0, 128, 
+    180,  13,   0,   0, 108,   0, 
+      0,   0, 208,  13,   0,   0, 
+    108,   0,   0, 128, 208,  13, 
+      0,   0, 108,   0,   0,   0, 
+    236,  13,   0,   0, 109,   0, 
+      0, 128, 236,  13,   0,   0, 
+    109,   0,   0,   0,   0,  14, 
       0,   0, 109,   0,   0, 128, 
-    200,  13,   0,   0, 109,   0, 
-      0,   0, 228,  13,   0,   0, 
-    110,   0,   0, 128, 228,  13, 
+      0,  14,   0,   0, 109,   0, 
+      0,   0,  28,  14,   0,   0, 
+    109,   0,   0, 128,  28,  14, 
+      0,   0, 109,   0,   0,   0, 
+     40,  14,   0,   0, 110,   0, 
+      0, 128,  40,  14,   0,   0, 
+    110,   0,   0,   0,  84,  14, 
+      0,   0, 110,   0,   0, 128, 
+     84,  14,   0,   0, 110,   0, 
+      0,   0, 128,  14,   0,   0, 
+    110,   0,   0, 128, 128,  14, 
       0,   0, 110,   0,   0,   0, 
-    248,  13,   0,   0, 110,   0, 
-      0, 128, 248,  13,   0,   0, 
-    110,   0,   0,   0,  20,  14, 
+    172,  14,   0,   0, 110,   0, 
+      0, 128, 172,  14,   0,   0, 
+    110,   0,   0,   0, 200,  14, 
       0,   0, 110,   0,   0, 128, 
-     20,  14,   0,   0, 110,   0, 
-      0,   0,  32,  14,   0,   0, 
-    111,   0,   0, 128,  32,  14, 
-      0,   0, 111,   0,   0,   0, 
-     52,  14,   0,   0, 111,   0, 
-      0, 128,  52,  14,   0,   0, 
-    111,   0,   0,   0,  56,  14, 
+    200,  14,   0,   0, 110,   0, 
+      0,   0, 228,  14,   0,   0, 
+    110,   0,   0, 128, 228,  14, 
+      0,   0, 110,   0,   0,   0, 
+      0,  15,   0,   0, 110,   0, 
+      0, 128,   0,  15,   0,   0, 
+    110,   0,   0,   0,   4,  15, 
+      0,   0, 111,   0,   0, 128, 
+      4,  15,   0,   0, 111,   0, 
+      0,   0,   8,  15,   0,   0, 
+    112,   0,   0, 128,   8,  15, 
+      0,   0,  96,   0,   0,   0, 
+     36,  15,   0,   0, 112,   0, 
+      0, 128,  36,  15,   0,   0, 
+    112,   0,   0,   0,  40,  15, 
       0,   0, 112,   0,   0, 128, 
-     56,  14,   0,   0, 112,   0, 
-      0,   0, 100,  14,   0,   0, 
-    113,   0,   0, 128, 100,  14, 
-      0,   0, 113,   0,   0,   0, 
-    128,  14,   0,   0, 113,   0, 
-      0, 128, 128,  14,   0,   0, 
-    113,   0,   0,   0, 156,  14, 
-      0,   0, 113,   0,   0, 128, 
-    156,  14,   0,   0, 113,   0, 
-      0,   0, 176,  14,   0,   0, 
-    113,   0,   0, 128, 176,  14, 
-      0,   0, 113,   0,   0,   0, 
-    204,  14,   0,   0, 113,   0, 
-      0, 128, 204,  14,   0,   0, 
-    113,   0,   0,   0, 228,  14, 
-      0,   0, 113,   0,   0, 128, 
-    228,  14,   0,   0, 113,   0, 
-      0,   0,   0,  15,   0,   0, 
-    113,   0,   0, 128,   0,  15, 
-      0,   0, 113,   0,   0,   0, 
-     28,  15,   0,   0, 113,   0, 
-      0, 128,  28,  15,   0,   0, 
-    113,   0,   0,   0,  56,  15, 
-      0,   0, 114,   0,   0, 128, 
-     56,  15,   0,   0, 114,   0, 
+     40,  15,   0,   0, 112,   0, 
       0,   0,  60,  15,   0,   0, 
-    115,   0,   0, 128,  60,  15, 
-      0,   0, 115,   0,   0,   0, 
+    113,   0,   0, 128,  60,  15, 
+      0,   0, 113,   0,   0,   0, 
      64,  15,   0,   0, 116,   0, 
       0, 128,  64,  15,   0,   0, 
     116,   0,   0,   0,  96,  15, 
@@ -3908,6 +3908,54 @@ const BYTE CustomUIDX11PixelShader[] =
       2,   0,  40,   0,  25,   0, 
      39,   0,   2,   0,  68,   0, 
      25,   0,  67,   0,   2,   0, 
+     19,   0,   6,   0,  18,   0, 
+      2,   0,  19,   0,   2,   0, 
+     19,   0,   3,   0, 124,   0, 
+     22,   0,  39,   0,   3,   0, 
+    124,   0,  22,   0,  39,   0, 
+      3,   0, 124,   0,  45,   0, 
+     62,   0,   3,   0, 124,   0, 
+     45,   0,  62,   0,   3,   0, 
+    124,   0,  21,   0,  63,   0, 
+      3,   0, 124,   0,  68,   0, 
+     85,   0,   3,   0, 124,   0, 
+     68,   0,  85,   0,   3,   0, 
+    124,   0,  91,   0, 108,   0, 
+      3,   0, 124,   0,  91,   0, 
+    108,   0,   3,   0, 124,   0, 
+     67,   0, 109,   0,   3,   0, 
+    124,   0,  21,   0, 109,   0, 
+      3,   0, 124,   0,  16,   0, 
+    110,   0,   3,   0, 124,   0, 
+     16,   0, 123,   0,   3,   0, 
+     30,   0,   7,   0,  29,   0, 
+      3,   0,  30,   0,   3,   0, 
+     30,   0,   4,   0,  60,   0, 
+     29,   0,  51,   0,   4,   0, 
+     60,   0,  29,   0,  51,   0, 
+      4,   0,  60,   0,  28,   0, 
+     59,   0,   4,   0,  27,   0, 
+      8,   0,  26,   0,   4,   0, 
+     27,   0,   8,   0,  26,   0, 
+      4,   0,  27,   0,   4,   0, 
+     27,   0,   5,   0,  26,   0, 
+      5,   0,  25,   0,  26,   0, 
+     26,   0,  26,   0,  26,   0, 
+      4,   0,  72,   0,  25,   0, 
+     71,   0,   4,   0, 123,   0, 
+     35,   0,  65,   0,   4,   0, 
+    123,   0,  20,   0,  66,   0, 
+      4,   0, 123,   0,  87,   0, 
+    121,   0,   4,   0, 123,   0, 
+     91,   0, 121,   0,   4,   0, 
+    123,   0,  87,   0, 121,   0, 
+      4,   0, 123,   0,  87,   0, 
+    121,   0,   4,   0, 123,   0, 
+     70,   0, 122,   0,   4,   0, 
+    123,   0,  20,   0, 122,   0, 
+      3,   0,   3,   0,   3,   0, 
+      3,   0,   2,   0,   2,   0, 
+      2,   0,   2,   0,   2,   0, 
      23,   0,   6,   0,  22,   0, 
       2,   0,  23,   0,   6,   0, 
      22,   0,   2,   0,  23,   0, 
@@ -4048,54 +4096,6 @@ const BYTE CustomUIDX11PixelShader[] =
       3,   0,   3,   0,  40,   0, 
      42,   0,   3,   0,   3,   0, 
       3,   0,   3,   0,   3,   0, 
-      3,   0,   3,   0,   3,   0, 
-      2,   0,   2,   0,   2,   0, 
-      2,   0,   2,   0,  19,   0, 
-      6,   0,  18,   0,   2,   0, 
-     19,   0,   2,   0,  19,   0, 
-      3,   0, 124,   0,  22,   0, 
-     39,   0,   3,   0, 124,   0, 
-     22,   0,  39,   0,   3,   0, 
-    124,   0,  45,   0,  62,   0, 
-      3,   0, 124,   0,  45,   0, 
-     62,   0,   3,   0, 124,   0, 
-     21,   0,  63,   0,   3,   0, 
-    124,   0,  68,   0,  85,   0, 
-      3,   0, 124,   0,  68,   0, 
-     85,   0,   3,   0, 124,   0, 
-     91,   0, 108,   0,   3,   0, 
-    124,   0,  91,   0, 108,   0, 
-      3,   0, 124,   0,  67,   0, 
-    109,   0,   3,   0, 124,   0, 
-     21,   0, 109,   0,   3,   0, 
-    124,   0,  16,   0, 110,   0, 
-      3,   0, 124,   0,  16,   0, 
-    123,   0,   3,   0,  30,   0, 
-      7,   0,  29,   0,   3,   0, 
-     30,   0,   3,   0,  30,   0, 
-      4,   0,  60,   0,  29,   0, 
-     51,   0,   4,   0,  60,   0, 
-     29,   0,  51,   0,   4,   0, 
-     60,   0,  28,   0,  59,   0, 
-      4,   0,  27,   0,   8,   0, 
-     26,   0,   4,   0,  27,   0, 
-      8,   0,  26,   0,   4,   0, 
-     27,   0,   4,   0,  27,   0, 
-      5,   0,  26,   0,   5,   0, 
-     25,   0,  26,   0,  26,   0, 
-     26,   0,  26,   0,   4,   0, 
-     72,   0,  25,   0,  71,   0, 
-      4,   0, 123,   0,  35,   0, 
-     65,   0,   4,   0, 123,   0, 
-     20,   0,  66,   0,   4,   0, 
-    123,   0,  87,   0, 121,   0, 
-      4,   0, 123,   0,  91,   0, 
-    121,   0,   4,   0, 123,   0, 
-     87,   0, 121,   0,   4,   0, 
-    123,   0,  87,   0, 121,   0, 
-      4,   0, 123,   0,  70,   0, 
-    122,   0,   4,   0, 123,   0, 
-     20,   0, 122,   0,   3,   0, 
       3,   0,   3,   0,   3,   0, 
       2,   0,   2,   0,   2,   0, 
       2,   0,   2,   0, 224,   0, 
@@ -4310,14 +4310,14 @@ const BYTE CustomUIDX11PixelShader[] =
       6,  16,   0,   0,  23,   0, 
       1,   0,   5,  16,   0,   0, 
      14,   0,  23,  21,   0,  16, 
-      0,   0,   3,   2, 208,  46, 
+      0,   0,   3,   2,  96, 193, 
       0,   0, 242, 241,  10,   0, 
      24,  21,   8,  16,   0,   0, 
       1,   0,   1,   0,  10,   0, 
      24,  21,   9,  16,   0,   0, 
       1,   0,   0,   2,  14,   0, 
      23,  21,   0,   0,   0,   0, 
-     10,   2, 208,  46,   0,   0, 
+     10,   2,  96, 193,   0,   0, 
     242, 241,  10,   0,  24,  21, 
      11,  16,   0,   0,   1,   0, 
       1,   0,  10,   0,  24,  21, 
@@ -4668,182 +4668,6 @@ const BYTE CustomUIDX11PixelShader[] =
     112, 101,  44,  32, 105, 110, 
     112, 117, 116,  46, 116, 101, 
     120,  41,  59,  13,  10,   9, 
-    105, 102,  32,  40, 105, 110, 
-    112, 117, 116,  46, 108, 105, 
-    103, 104, 116,  46, 119,  32, 
-     62,  32,  48,  41,  13,  10, 
-      9, 123,  13,  10,   9,   9, 
-    100, 105, 102, 102, 117, 115, 
-    101,  76, 105, 103, 104, 116, 
-     32,  61,  32, 102, 108, 111, 
-     97, 116,  51,  40, 109,  97, 
-    116, 101, 114, 105,  97, 108, 
-     67, 111, 108, 111, 114,  46, 
-    120,  32,  42,  32, 105, 110, 
-    112, 117, 116,  46, 108, 105, 
-    103, 104, 116,  46, 120,  44, 
-     32, 109,  97, 116, 101, 114, 
-    105,  97, 108,  67, 111, 108, 
-    111, 114,  46, 121,  32,  42, 
-     32, 105, 110, 112, 117, 116, 
-     46, 108, 105, 103, 104, 116, 
-     46, 121,  44,  32, 109,  97, 
-    116, 101, 114, 105,  97, 108, 
-     67, 111, 108, 111, 114,  46, 
-    122,  32,  42,  32, 105, 110, 
-    112, 117, 116,  46, 108, 105, 
-    103, 104, 116,  46, 122,  41, 
-     59,  13,  10,   9, 125,  13, 
-     10,   9, 101, 108, 115, 101, 
-     13,  10,   9, 123,  13,  10, 
-      9,   9, 102, 111, 114,  32, 
-     40, 105, 110, 116,  32, 106, 
-     32,  61,  32,  48,  59,  32, 
-    106,  32,  60,  32, 100, 105, 
-    102, 102, 117, 115, 101,  76, 
-    105, 103, 104, 116,  67, 111, 
-    117, 110, 116,  59,  32, 106, 
-     43,  43,  41,  13,  10,   9, 
-      9, 123,  13,  10,   9,   9, 
-      9, 105, 102,  32,  40, 100, 
-    111, 116,  40, 105, 110, 112, 
-    117, 116,  46, 110, 111, 114, 
-    109,  97, 108,  44,  32,  45, 
-    100, 105, 102, 117, 115, 101, 
-     76, 105, 103, 104, 116, 115, 
-     91, 106,  93,  46, 100, 105, 
-    114, 101,  99, 116, 105, 111, 
-    110,  41,  32,  60,  32,  48, 
-     41,  13,  10,   9,   9,   9, 
-      9,  99, 111, 110, 116, 105, 
-    110, 117, 101,  59,  13,  10, 
-      9,   9,   9, 100, 105, 102, 
-    102, 117, 115, 101,  76, 105, 
-    103, 104, 116,  32,  43,  61, 
-     32, 100, 105, 102, 117, 115, 
-    101,  76, 105, 103, 104, 116, 
-    115,  91, 106,  93,  46,  99, 
-    111, 108, 111, 114,  32,  42, 
-     32, 100, 111, 116,  40, 105, 
-    110, 112, 117, 116,  46, 110, 
-    111, 114, 109,  97, 108,  44, 
-     32,  45, 100, 105, 102, 117, 
-    115, 101,  76, 105, 103, 104, 
-    116, 115,  91, 106,  93,  46, 
-    100, 105, 114, 101,  99, 116, 
-    105, 111, 110,  41,  59,  13, 
-     10,   9,   9, 125,  13,  10, 
-      9,   9, 102, 111, 114,  32, 
-     40, 105, 110, 116,  32, 105, 
-     32,  61,  32,  48,  59,  32, 
-    105,  32,  60,  32, 112, 111, 
-    105, 110, 116,  76, 105, 103, 
-    104, 116,  67, 111, 117, 110, 
-    116,  59,  32, 105,  43,  43, 
-     41,  13,  10,   9,   9, 123, 
-     13,  10,   9,   9,   9, 102, 
-    108, 111,  97, 116,  51,  32, 
-    108, 105, 103, 104, 116,  68, 
-    105, 114,  32,  61,  32, 112, 
-    111, 105, 110, 116,  76, 105, 
-    103, 104, 116, 115,  91, 105, 
-     93,  46, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  45, 
-     32, 105, 110, 112, 117, 116, 
-     46, 119, 111, 114, 108, 100, 
-     80, 111, 115,  46, 120, 121, 
-    122,  59,  13,  10,   9,   9, 
-      9, 102, 108, 111,  97, 116, 
-     32, 102,  97,  99, 116, 111, 
-    114,  59,  13,  10,   9,   9, 
-      9, 105, 102,  32,  40, 108, 
-    101, 110, 103, 116, 104,  40, 
-    108, 105, 103, 104, 116,  68, 
-    105, 114,  41,  32,  60,  32, 
-     49,  41,  13,  10,   9,   9, 
-      9,   9, 102,  97,  99, 116, 
-    111, 114,  32,  61,  32,  49, 
-     59,  13,  10,   9,   9,   9, 
-    101, 108, 115, 101,  13,  10, 
-      9,   9,   9,   9, 102,  97, 
-     99, 116, 111, 114,  32,  61, 
-     32, 112, 111, 105, 110, 116, 
-     76, 105, 103, 104, 116, 115, 
-     91, 105,  93,  46, 114,  97, 
-    100, 105, 117, 115,  32,  47, 
-     32, 108, 101, 110, 103, 116, 
-    104,  40, 108, 105, 103, 104, 
-    116,  68, 105, 114,  41,  59, 
-     13,  10,   9,   9,   9, 102, 
-    108, 111,  97, 116,  32, 102, 
-     32,  61,  32, 100, 111, 116, 
-     40, 105, 110, 112, 117, 116, 
-     46, 110, 111, 114, 109,  97, 
-    108,  44,  32, 110, 111, 114, 
-    109,  97, 108, 105, 122, 101, 
-     40, 108, 105, 103, 104, 116, 
-     68, 105, 114,  41,  41,  59, 
-     13,  10,   9,   9,   9, 105, 
-    102,  32,  40, 102,  32,  62, 
-     32,  48,  41,  13,  10,   9, 
-      9,   9, 123,  13,  10,   9, 
-      9,   9,   9, 100, 105, 102, 
-    102, 117, 115, 101,  76, 105, 
-    103, 104, 116,  32,  43,  61, 
-     32, 112, 111, 105, 110, 116, 
-     76, 105, 103, 104, 116, 115, 
-     91, 105,  93,  46,  99, 111, 
-    108, 111, 114,  32,  42,  32, 
-    102,  32,  42,  32, 102,  97, 
-     99, 116, 111, 114,  59,  13, 
-     10,   9,   9,   9,   9, 102, 
-     32,  61,  32, 100, 111, 116, 
-     40, 110, 111, 114, 109,  97, 
-    108, 105, 122, 101,  40, 114, 
-    101, 102, 108, 101,  99, 116, 
-     40, 110, 111, 114, 109,  97, 
-    108, 105, 122, 101,  40,  45, 
-    108, 105, 103, 104, 116,  68, 
-    105, 114,  41,  44,  32, 105, 
-    110, 112, 117, 116,  46, 110, 
-    111, 114, 109,  97, 108,  41, 
-     41,  44,  32, 110, 111, 114, 
-    109,  97, 108, 105, 122, 101, 
-     40, 107,  80, 111, 115, 105, 
-    116, 105, 111, 110,  46, 120, 
-    121, 122,  32,  45,  32, 105, 
-    110, 112, 117, 116,  46, 119, 
-    111, 114, 108, 100,  80, 111, 
-    115,  46, 120, 121, 122,  41, 
-     41,  59,  13,  10,   9,   9, 
-      9,   9, 105, 102,  32,  40, 
-    102,  32,  62,  32,  48,  41, 
-     13,  10,   9,   9,   9,   9, 
-      9, 115, 112, 101,  99, 117, 
-    108,  97, 114,  76, 105, 103, 
-    104, 116,  32,  43,  61,  32, 
-    112, 111, 105, 110, 116,  76, 
-    105, 103, 104, 116, 115,  91, 
-    105,  93,  46,  99, 111, 108, 
-    111, 114,  32,  42,  32, 102, 
-     32,  42,  32, 102,  97,  99, 
-    116, 111, 114,  59,  13,  10, 
-      9,   9,   9, 125,  13,  10, 
-      9,   9, 125,  13,  10,   9, 
-    125,  13,  10,   9,  47,  47, 
-    105, 102,  32,  40,  33,  40, 
-    100, 105, 102, 102, 117, 115, 
-    101,  76, 105, 103, 104, 116, 
-     46, 120,  32,  62,  61,  32, 
-     48,  32,  38,  38,  32, 100, 
-    105, 102, 102, 117, 115, 101, 
-     76, 105, 103, 104, 116,  46, 
-    120,  32,  60,  61,  32,  49, 
-     41,  41,  13,  10,   9,  47, 
-     47,   9, 100, 105, 102, 102, 
-    117, 115, 101,  76, 105, 103, 
-    104, 116,  46, 120,  32,  61, 
-     32,  48,  59,  13,  10,   9, 
     105, 102,  32,  40, 101, 102, 
     102, 101,  99, 116,  69, 110, 
      97,  98, 108, 101, 100,  41, 
@@ -4929,7 +4753,183 @@ const BYTE CustomUIDX11PixelShader[] =
     117, 108, 116, 105, 112, 108, 
     105, 101, 114,  41,  59,  13, 
      10,   9,   9, 125,  13,  10, 
-      9, 125,  13,  10,   9, 102, 
+      9, 125,  13,  10,   9, 105, 
+    102,  32,  40, 105, 110, 112, 
+    117, 116,  46, 108, 105, 103, 
+    104, 116,  46, 119,  32,  62, 
+     32,  48,  41,  13,  10,   9, 
+    123,  13,  10,   9,   9, 100, 
+    105, 102, 102, 117, 115, 101, 
+     76, 105, 103, 104, 116,  32, 
+     61,  32, 102, 108, 111,  97, 
+    116,  51,  40, 109,  97, 116, 
+    101, 114, 105,  97, 108,  67, 
+    111, 108, 111, 114,  46, 120, 
+     32,  42,  32, 105, 110, 112, 
+    117, 116,  46, 108, 105, 103, 
+    104, 116,  46, 120,  44,  32, 
+    109,  97, 116, 101, 114, 105, 
+     97, 108,  67, 111, 108, 111, 
+    114,  46, 121,  32,  42,  32, 
+    105, 110, 112, 117, 116,  46, 
+    108, 105, 103, 104, 116,  46, 
+    121,  44,  32, 109,  97, 116, 
+    101, 114, 105,  97, 108,  67, 
+    111, 108, 111, 114,  46, 122, 
+     32,  42,  32, 105, 110, 112, 
+    117, 116,  46, 108, 105, 103, 
+    104, 116,  46, 122,  41,  59, 
+     13,  10,   9, 125,  13,  10, 
+      9, 101, 108, 115, 101,  13, 
+     10,   9, 123,  13,  10,   9, 
+      9, 102, 111, 114,  32,  40, 
+    105, 110, 116,  32, 106,  32, 
+     61,  32,  48,  59,  32, 106, 
+     32,  60,  32, 100, 105, 102, 
+    102, 117, 115, 101,  76, 105, 
+    103, 104, 116,  67, 111, 117, 
+    110, 116,  59,  32, 106,  43, 
+     43,  41,  13,  10,   9,   9, 
+    123,  13,  10,   9,   9,   9, 
+    105, 102,  32,  40, 100, 111, 
+    116,  40, 105, 110, 112, 117, 
+    116,  46, 110, 111, 114, 109, 
+     97, 108,  44,  32,  45, 100, 
+    105, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116, 115,  91, 
+    106,  93,  46, 100, 105, 114, 
+    101,  99, 116, 105, 111, 110, 
+     41,  32,  60,  32,  48,  41, 
+     13,  10,   9,   9,   9,   9, 
+     99, 111, 110, 116, 105, 110, 
+    117, 101,  59,  13,  10,   9, 
+      9,   9, 100, 105, 102, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116,  32,  43,  61,  32, 
+    100, 105, 102, 117, 115, 101, 
+     76, 105, 103, 104, 116, 115, 
+     91, 106,  93,  46,  99, 111, 
+    108, 111, 114,  32,  42,  32, 
+    100, 111, 116,  40, 105, 110, 
+    112, 117, 116,  46, 110, 111, 
+    114, 109,  97, 108,  44,  32, 
+     45, 100, 105, 102, 117, 115, 
+    101,  76, 105, 103, 104, 116, 
+    115,  91, 106,  93,  46, 100, 
+    105, 114, 101,  99, 116, 105, 
+    111, 110,  41,  59,  13,  10, 
+      9,   9, 125,  13,  10,   9, 
+      9, 102, 111, 114,  32,  40, 
+    105, 110, 116,  32, 105,  32, 
+     61,  32,  48,  59,  32, 105, 
+     32,  60,  32, 112, 111, 105, 
+    110, 116,  76, 105, 103, 104, 
+    116,  67, 111, 117, 110, 116, 
+     59,  32, 105,  43,  43,  41, 
+     13,  10,   9,   9, 123,  13, 
+     10,   9,   9,   9, 102, 108, 
+    111,  97, 116,  51,  32, 108, 
+    105, 103, 104, 116,  68, 105, 
+    114,  32,  61,  32, 112, 111, 
+    105, 110, 116,  76, 105, 103, 
+    104, 116, 115,  91, 105,  93, 
+     46, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32,  45,  32, 
+    105, 110, 112, 117, 116,  46, 
+    119, 111, 114, 108, 100,  80, 
+    111, 115,  46, 120, 121, 122, 
+     59,  13,  10,   9,   9,   9, 
+    102, 108, 111,  97, 116,  32, 
+    102,  97,  99, 116, 111, 114, 
+     59,  13,  10,   9,   9,   9, 
+    105, 102,  32,  40, 108, 101, 
+    110, 103, 116, 104,  40, 108, 
+    105, 103, 104, 116,  68, 105, 
+    114,  41,  32,  60,  32,  49, 
+     41,  13,  10,   9,   9,   9, 
+      9, 102,  97,  99, 116, 111, 
+    114,  32,  61,  32,  49,  59, 
+     13,  10,   9,   9,   9, 101, 
+    108, 115, 101,  13,  10,   9, 
+      9,   9,   9, 102,  97,  99, 
+    116, 111, 114,  32,  61,  32, 
+    112, 111, 105, 110, 116,  76, 
+    105, 103, 104, 116, 115,  91, 
+    105,  93,  46, 114,  97, 100, 
+    105, 117, 115,  32,  47,  32, 
+    108, 101, 110, 103, 116, 104, 
+     40, 108, 105, 103, 104, 116, 
+     68, 105, 114,  41,  59,  13, 
+     10,   9,   9,   9, 102, 108, 
+    111,  97, 116,  32, 102,  32, 
+     61,  32, 100, 111, 116,  40, 
+    105, 110, 112, 117, 116,  46, 
+    110, 111, 114, 109,  97, 108, 
+     44,  32, 110, 111, 114, 109, 
+     97, 108, 105, 122, 101,  40, 
+    108, 105, 103, 104, 116,  68, 
+    105, 114,  41,  41,  59,  13, 
+     10,   9,   9,   9, 105, 102, 
+     32,  40, 102,  32,  62,  32, 
+     48,  41,  13,  10,   9,   9, 
+      9, 123,  13,  10,   9,   9, 
+      9,   9, 100, 105, 102, 102, 
+    117, 115, 101,  76, 105, 103, 
+    104, 116,  32,  43,  61,  32, 
+    112, 111, 105, 110, 116,  76, 
+    105, 103, 104, 116, 115,  91, 
+    105,  93,  46,  99, 111, 108, 
+    111, 114,  32,  42,  32, 102, 
+     32,  42,  32, 102,  97,  99, 
+    116, 111, 114,  59,  13,  10, 
+      9,   9,   9,   9, 102,  32, 
+     61,  32, 100, 111, 116,  40, 
+    110, 111, 114, 109,  97, 108, 
+    105, 122, 101,  40, 114, 101, 
+    102, 108, 101,  99, 116,  40, 
+    110, 111, 114, 109,  97, 108, 
+    105, 122, 101,  40,  45, 108, 
+    105, 103, 104, 116,  68, 105, 
+    114,  41,  44,  32, 105, 110, 
+    112, 117, 116,  46, 110, 111, 
+    114, 109,  97, 108,  41,  41, 
+     44,  32, 110, 111, 114, 109, 
+     97, 108, 105, 122, 101,  40, 
+    107,  80, 111, 115, 105, 116, 
+    105, 111, 110,  46, 120, 121, 
+    122,  32,  45,  32, 105, 110, 
+    112, 117, 116,  46, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
+     46, 120, 121, 122,  41,  41, 
+     59,  13,  10,   9,   9,   9, 
+      9, 105, 102,  32,  40, 102, 
+     32,  62,  32,  48,  41,  13, 
+     10,   9,   9,   9,   9,   9, 
+    115, 112, 101,  99, 117, 108, 
+     97, 114,  76, 105, 103, 104, 
+    116,  32,  43,  61,  32, 112, 
+    111, 105, 110, 116,  76, 105, 
+    103, 104, 116, 115,  91, 105, 
+     93,  46,  99, 111, 108, 111, 
+    114,  32,  42,  32, 102,  32, 
+     42,  32, 102,  97,  99, 116, 
+    111, 114,  59,  13,  10,   9, 
+      9,   9, 125,  13,  10,   9, 
+      9, 125,  13,  10,   9, 125, 
+     13,  10,   9,  47,  47, 105, 
+    102,  32,  40,  33,  40, 100, 
+    105, 102, 102, 117, 115, 101, 
+     76, 105, 103, 104, 116,  46, 
+    120,  32,  62,  61,  32,  48, 
+     32,  38,  38,  32, 100, 105, 
+    102, 102, 117, 115, 101,  76, 
+    105, 103, 104, 116,  46, 120, 
+     32,  60,  61,  32,  49,  41, 
+     41,  13,  10,   9,  47,  47, 
+      9, 100, 105, 102, 102, 117, 
+    115, 101,  76, 105, 103, 104, 
+    116,  46, 120,  32,  61,  32, 
+     48,  59,  13,  10,   9, 102, 
     108, 111,  97, 116,  52,  32, 
     116, 101, 120, 116, 117, 114, 
     101,  67, 111, 108, 111, 114, 
@@ -5072,8 +5072,8 @@ const BYTE CustomUIDX11PixelShader[] =
      32,  49,  41,  59,  42,  47, 
      13,  10, 125,   0,   7,   0, 
       0,   0,   0,   0,   0,   0, 
-    130,   0,   0,   0,   0,   0, 
-      0,   0,   4,   1,   0,   0, 
+    130,   0,   0,   0,   4,   1, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   1,   0, 
       0,   0, 131,   0,   0,   0, 
       4,   0,   0,   0,   0,   0, 
@@ -5539,10 +5539,10 @@ const BYTE CustomUIDX11PixelShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 148,  46,  49,   1, 
-    140, 225, 135,  98,   1,   0, 
-      0,   0,  20,  68, 135, 160, 
-    164, 208, 122,  64, 158, 125, 
-     89,  23, 245,  58, 104, 125, 
+    104, 142, 136,  98,   1,   0, 
+      0,   0,  32, 206,  34, 225, 
+     76,  33,  74,  77, 186,   5, 
+     51, 143, 255,  83,  24, 220, 
     174,   0,   0,   0,  47,  76, 
     105, 110, 107,  73, 110, 102, 
     111,   0,  47, 110,  97, 109, 
@@ -5642,7 +5642,7 @@ const BYTE CustomUIDX11PixelShader[] =
       0,   0,   0,   0,   2,   0, 
       9,   0,  80,   9,   0,   0, 
       0,   0,   0,   0, 124,  15, 
-      0,   0,   1,   0,  40, 145, 
+      0,   0,   1,   0, 109,  54, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
      84, 101, 120, 116, 117, 114, 

+ 1439 - 1231
FactoryCraft/CustomUIDX11VertexShader.h

@@ -23,14 +23,14 @@
 // cbuffer LightController
 // {
 //
-//   int lightLength;                   // Offset:    0 Size:     4
+//   uint lightLength;                  // Offset:    0 Size:     4
 //
 // }
 //
 // cbuffer Light
 // {
 //
-//   float4 light[24];                  // Offset:    0 Size:   384
+//   uint4 light[6];                    // Offset:    0 Size:    96
 //
 // }
 //
@@ -69,10 +69,14 @@
 //
 vs_5_0
 dcl_globalFlags refactoringAllowed | skipOptimization
+dcl_immediateConstantBuffer { { -1, 0, 0, 0},
+                              { 0, -1, 0, 0},
+                              { 0, 0, -1, 0},
+                              { 0, 0, 0, -1} }
 dcl_constantbuffer CB0[512], dynamicIndexed
 dcl_constantbuffer CB1[8], immediateIndexed
 dcl_constantbuffer CB2[1], immediateIndexed
-dcl_constantbuffer CB3[24], dynamicIndexed
+dcl_constantbuffer CB3[6], dynamicIndexed
 dcl_input v0.xyz
 dcl_input v1.xy
 dcl_input v2.xyz
@@ -83,7 +87,7 @@ dcl_output_siv o1.xyzw, position
 dcl_output o2.xy
 dcl_output o3.xyz
 dcl_output o4.xyzw
-dcl_temps 5
+dcl_temps 6
 //
 // Initial variable locations:
 //   v0.x <- input.position.x; v0.y <- input.position.y; v0.z <- input.position.z; v0.w <- input.position.w; 
@@ -136,41 +140,79 @@ dp4 r4.w, r1.xyzw, cb1[7].xyzw  // r4.w <- output.position.w
 mov r1.xyzw, l(1.000000,1.000000,1.000000,0)  // r1.x <- output.light.x; r1.y <- output.light.y; r1.z <- output.light.z; r1.w <- output.light.w
 
 #line 67
-mov r0.w, cb2[0].x
-ult r0.w, v4.x, r0.w
+ult r0.w, v4.x, cb2[0].x
 if_nz r0.w
   mov r0.w, v4.x  // r0.w <- input.id
 
 #line 69
-  mov r1.xyz, cb3[r0.w + 0].xyzx
+  mov r2.z, l(4)
+  udiv null, r2.z, r0.w, r2.z
+  mov r2.w, l(4)
+  udiv r2.w, null, r0.w, r2.w
+  and r5.xyzw, cb3[r2.w + 0].xyzw, icb[r2.z + 0].xyzw
+  or r2.zw, r5.yyyw, r5.xxxz
+  or r2.z, r2.w, r2.z
+  mov r2.w, l(24)
+  ushr r2.z, r2.z, r2.w
+  and r2.z, r2.z, l(255)
+  utof r2.z, r2.z
+  div r1.x, r2.z, l(255.000000)
 
 #line 70
-  mov r1.w, l(1.000000)
+  mov r2.z, l(4)
+  udiv null, r2.z, r0.w, r2.z
+  mov r2.w, l(4)
+  udiv r2.w, null, r0.w, r2.w
+  and r5.xyzw, cb3[r2.w + 0].xyzw, icb[r2.z + 0].xyzw
+  or r2.zw, r5.yyyw, r5.xxxz
+  or r2.z, r2.w, r2.z
+  mov r2.w, l(16)
+  ushr r2.z, r2.z, r2.w
+  and r2.z, r2.z, l(255)
+  utof r2.z, r2.z
+  div r1.y, r2.z, l(255.000000)
 
 #line 71
-endif 
+  mov r2.z, l(4)
+  udiv null, r2.z, r0.w, r2.z
+  mov r2.w, l(4)
+  udiv r0.w, null, r0.w, r2.w
+  and r5.xyzw, cb3[r0.w + 0].xyzw, icb[r2.z + 0].xyzw
+  or r2.zw, r5.yyyw, r5.xxxz
+  or r0.w, r2.w, r2.z
+  mov r2.z, l(8)
+  ushr r0.w, r0.w, r2.z
+  and r0.w, r0.w, l(255)
+  utof r0.w, r0.w
+  div r1.z, r0.w, l(255.000000)
+
+#line 72
+  mov r1.w, l(1.000000)
 
 #line 73
+endif 
+
+#line 75
 mov o0.xyzw, r3.xyzw
 mov o1.xyzw, r4.xyzw
 mov o4.xyzw, r1.xyzw
 mov o3.xyz, r0.xyzx
 mov o2.xy, r2.xyxx
 ret 
-// Approximately 37 instruction slots used
+// Approximately 71 instruction slots used
 #endif
 
 const BYTE CustomUIDX11VertexShader[] =
 {
-     68,  88,  66,  67, 162, 242, 
-    166, 194, 158, 218, 112, 138, 
-    202, 203, 192, 186,  84,  91, 
-     61,  25,   1,   0,   0,   0, 
-     24,  88,   0,   0,   6,   0, 
+     68,  88,  66,  67,  73,  86, 
+    187,  87,  91, 181, 243, 179, 
+    126,  42,  67, 247,  19, 249, 
+    135,  30,   1,   0,   0,   0, 
+    252,  91,   0,   0,   6,   0, 
       0,   0,  56,   0,   0,   0, 
      84,   3,   0,   0,  12,   4, 
       0,   0, 180,   4,   0,   0, 
-    116,   9,   0,   0,  16,  10, 
+     88,  13,   0,   0, 244,  13, 
       0,   0,  82,  68,  69,  70, 
      20,   3,   0,   0,   4,   0, 
       0,   0, 232,   0,   0,   0, 
@@ -224,8 +266,8 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,  16,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 224,   0,   0,   0, 
-      1,   0,   0,   0, 144,   2, 
-      0,   0, 128,   1,   0,   0, 
+      1,   0,   0,   0, 148,   2, 
+      0,   0,  96,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 112,   1,   0,   0, 
       0,   0,   0,   0,   0,  32, 
@@ -269,34 +311,34 @@ const BYTE CustomUIDX11VertexShader[] =
     111, 110,   0, 171,  92,   2, 
       0,   0,   0,   0,   0,   0, 
       4,   0,   0,   0,   2,   0, 
-      0,   0, 108,   2,   0,   0, 
+      0,   0, 112,   2,   0,   0, 
       0,   0,   0,   0, 255, 255, 
     255, 255,   0,   0,   0,   0, 
     255, 255, 255, 255,   0,   0, 
       0,   0, 108, 105, 103, 104, 
     116,  76, 101, 110, 103, 116, 
-    104,   0, 105, 110, 116,   0, 
-      0,   0,   2,   0,   1,   0, 
-      1,   0,   0,   0,   0,   0, 
+    104,   0, 100, 119, 111, 114, 
+    100,   0, 171, 171,   0,   0, 
+     19,   0,   1,   0,   1,   0, 
+      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 104,   2,   0,   0, 
-    184,   2,   0,   0,   0,   0, 
-      0,   0, 128,   1,   0,   0, 
-      2,   0,   0,   0, 200,   2, 
+    104,   2,   0,   0, 188,   2, 
       0,   0,   0,   0,   0,   0, 
+     96,   0,   0,   0,   2,   0, 
+      0,   0, 200,   2,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
     255, 255, 255, 255,   0,   0, 
-      0,   0, 255, 255, 255, 255, 
-      0,   0,   0,   0, 108, 105, 
-    103, 104, 116,   0, 102, 108, 
-    111,  97, 116,  52,   0, 171, 
-    171, 171,   1,   0,   3,   0, 
-      1,   0,   4,   0,  24,   0, 
+      0,   0, 108, 105, 103, 104, 
+    116,   0, 117, 105, 110, 116, 
+     52,   0,   1,   0,  19,   0, 
+      1,   0,   4,   0,   6,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 190,   2, 
+      0,   0,   0,   0, 194,   2, 
       0,   0,  77, 105,  99, 114, 
     111, 115, 111, 102, 116,  32, 
      40,  82,  41,  32,  72,  76, 
@@ -363,9 +405,21 @@ const BYTE CustomUIDX11VertexShader[] =
      84,  73,  79,  78,   0,  84, 
      69,  88,  67,  79,  79,  82, 
      68,   0, 171, 171,  83,  72, 
-     69,  88, 184,   4,   0,   0, 
-     80,   0,   1,   0,  46,   1, 
+     69,  88, 156,   8,   0,   0, 
+     80,   0,   1,   0,  39,   2, 
       0,   0, 106, 136,   0,   1, 
+     53,  24,   0,   0,  18,   0, 
+      0,   0, 255, 255, 255, 255, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
      89,   8,   0,   4,  70, 142, 
      32,   0,   0,   0,   0,   0, 
       0,   2,   0,   0,  89,   0, 
@@ -376,7 +430,7 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   1,   0,   0,   0, 
      89,   8,   0,   4,  70, 142, 
      32,   0,   3,   0,   0,   0, 
-     24,   0,   0,   0,  95,   0, 
+      6,   0,   0,   0,  95,   0, 
       0,   3, 114,  16,  16,   0, 
       0,   0,   0,   0,  95,   0, 
       0,   3,  50,  16,  16,   0, 
@@ -398,7 +452,7 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0, 101,   0,   0,   3, 
     242,  32,  16,   0,   4,   0, 
       0,   0, 104,   0,   0,   2, 
-      5,   0,   0,   0,  38,   0, 
+      6,   0,   0,   0,  38,   0, 
       0,   8,   0, 208,   0,   0, 
      18,   0,  16,   0,   0,   0, 
       0,   0,  10,  16,  16,   0, 
@@ -525,25 +579,179 @@ const BYTE CustomUIDX11VertexShader[] =
       2,  64,   0,   0,   0,   0, 
     128,  63,   0,   0, 128,  63, 
       0,   0, 128,  63,   0,   0, 
-      0,   0,  54,   0,   0,   6, 
-    130,   0,  16,   0,   0,   0, 
-      0,   0,  10, 128,  32,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,  79,   0,   0,   7, 
+      0,   0,  79,   0,   0,   8, 
     130,   0,  16,   0,   0,   0, 
       0,   0,  10,  16,  16,   0, 
-      4,   0,   0,   0,  58,   0, 
+      4,   0,   0,   0,  10, 128, 
+     32,   0,   2,   0,   0,   0, 
+      0,   0,   0,   0,  31,   0, 
+      4,   3,  58,   0,  16,   0, 
+      0,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      0,   0,   0,   0,  10,  16, 
+     16,   0,   4,   0,   0,   0, 
+     54,   0,   0,   5,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+      1,  64,   0,   0,   4,   0, 
+      0,   0,  78,   0,   0,   8, 
+      0, 208,   0,   0,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   4,   0,   0,   0, 
+     78,   0,   0,   8, 130,   0, 
+     16,   0,   2,   0,   0,   0, 
+      0, 208,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,   1,   0,   0,  10, 
+    242,   0,  16,   0,   5,   0, 
+      0,   0,  70, 142,  32,   4, 
+      3,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70, 158, 144,   0,  42,   0, 
+     16,   0,   2,   0,   0,   0, 
+     60,   0,   0,   7, 194,   0, 
+     16,   0,   2,   0,   0,   0, 
+     86,  13,  16,   0,   5,   0, 
+      0,   0,   6,   8,  16,   0, 
+      5,   0,   0,   0,  60,   0, 
+      0,   7,  66,   0,  16,   0, 
+      2,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     42,   0,  16,   0,   2,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,   0,  16,   0,   2,   0, 
+      0,   0,   1,  64,   0,   0, 
+     24,   0,   0,   0,  85,   0, 
+      0,   7,  66,   0,  16,   0, 
+      2,   0,   0,   0,  42,   0, 
+     16,   0,   2,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,   1,   0,   0,   7, 
+     66,   0,  16,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0, 255,   0,   0,   0, 
+     86,   0,   0,   5,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+     42,   0,  16,   0,   2,   0, 
+      0,   0,  14,   0,   0,   7, 
+     18,   0,  16,   0,   1,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0, 127,  67, 
+     54,   0,   0,   5,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+      1,  64,   0,   0,   4,   0, 
+      0,   0,  78,   0,   0,   8, 
+      0, 208,   0,   0,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   4,   0,   0,   0, 
+     78,   0,   0,   8, 130,   0, 
+     16,   0,   2,   0,   0,   0, 
+      0, 208,   0,   0,  58,   0, 
      16,   0,   0,   0,   0,   0, 
-     31,   0,   4,   3,  58,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,   1,   0,   0,  10, 
+    242,   0,  16,   0,   5,   0, 
+      0,   0,  70, 142,  32,   4, 
+      3,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     70, 158, 144,   0,  42,   0, 
+     16,   0,   2,   0,   0,   0, 
+     60,   0,   0,   7, 194,   0, 
+     16,   0,   2,   0,   0,   0, 
+     86,  13,  16,   0,   5,   0, 
+      0,   0,   6,   8,  16,   0, 
+      5,   0,   0,   0,  60,   0, 
+      0,   7,  66,   0,  16,   0, 
+      2,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     42,   0,  16,   0,   2,   0, 
+      0,   0,  54,   0,   0,   5, 
+    130,   0,  16,   0,   2,   0, 
+      0,   0,   1,  64,   0,   0, 
+     16,   0,   0,   0,  85,   0, 
+      0,   7,  66,   0,  16,   0, 
+      2,   0,   0,   0,  42,   0, 
+     16,   0,   2,   0,   0,   0, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,   1,   0,   0,   7, 
+     66,   0,  16,   0,   2,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0, 255,   0,   0,   0, 
+     86,   0,   0,   5,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+     42,   0,  16,   0,   2,   0, 
+      0,   0,  14,   0,   0,   7, 
+     34,   0,  16,   0,   1,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0, 127,  67, 
+     54,   0,   0,   5,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+      1,  64,   0,   0,   4,   0, 
+      0,   0,  78,   0,   0,   8, 
+      0, 208,   0,   0,  66,   0, 
+     16,   0,   2,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  42,   0,  16,   0, 
+      2,   0,   0,   0,  54,   0, 
+      0,   5, 130,   0,  16,   0, 
+      2,   0,   0,   0,   1,  64, 
+      0,   0,   4,   0,   0,   0, 
+     78,   0,   0,   8, 130,   0, 
      16,   0,   0,   0,   0,   0, 
-     54,   0,   0,   5, 130,   0, 
+      0, 208,   0,   0,  58,   0, 
      16,   0,   0,   0,   0,   0, 
-     10,  16,  16,   0,   4,   0, 
-      0,   0,  54,   0,   0,   7, 
-    114,   0,  16,   0,   1,   0, 
-      0,   0,  70, 130,  32,   4, 
+     58,   0,  16,   0,   2,   0, 
+      0,   0,   1,   0,   0,  10, 
+    242,   0,  16,   0,   5,   0, 
+      0,   0,  70, 142,  32,   4, 
       3,   0,   0,   0,  58,   0, 
      16,   0,   0,   0,   0,   0, 
+     70, 158, 144,   0,  42,   0, 
+     16,   0,   2,   0,   0,   0, 
+     60,   0,   0,   7, 194,   0, 
+     16,   0,   2,   0,   0,   0, 
+     86,  13,  16,   0,   5,   0, 
+      0,   0,   6,   8,  16,   0, 
+      5,   0,   0,   0,  60,   0, 
+      0,   7, 130,   0,  16,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   2,   0,   0,   0, 
+     42,   0,  16,   0,   2,   0, 
+      0,   0,  54,   0,   0,   5, 
+     66,   0,  16,   0,   2,   0, 
+      0,   0,   1,  64,   0,   0, 
+      8,   0,   0,   0,  85,   0, 
+      0,   7, 130,   0,  16,   0, 
+      0,   0,   0,   0,  58,   0, 
+     16,   0,   0,   0,   0,   0, 
+     42,   0,  16,   0,   2,   0, 
+      0,   0,   1,   0,   0,   7, 
+    130,   0,  16,   0,   0,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0, 255,   0,   0,   0, 
+     86,   0,   0,   5, 130,   0, 
+     16,   0,   0,   0,   0,   0, 
+     58,   0,  16,   0,   0,   0, 
+      0,   0,  14,   0,   0,   7, 
+     66,   0,  16,   0,   1,   0, 
+      0,   0,  58,   0,  16,   0, 
+      0,   0,   0,   0,   1,  64, 
+      0,   0,   0,   0, 127,  67, 
      54,   0,   0,   5, 130,   0, 
      16,   0,   1,   0,   0,   0, 
       1,  64,   0,   0,   0,   0, 
@@ -566,11 +774,11 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,  70,   0,  16,   0, 
       2,   0,   0,   0,  62,   0, 
       0,   1,  83,  84,  65,  84, 
-    148,   0,   0,   0,  37,   0, 
-      0,   0,   5,   0,   0,   0, 
-      0,   0,   0,   0,  10,   0, 
-      0,   0,  18,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
+    148,   0,   0,   0,  71,   0, 
+      0,   0,   6,   0,   0,   0, 
+      4,   0,   0,   0,  10,   0, 
+      0,   0,  21,   0,   0,   0, 
+      2,   0,   0,   0,  22,   0, 
       0,   0,   1,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -579,8 +787,8 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  13,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      0,   0,  20,   0,   0,   0, 
+      0,   0,   0,   0,   3,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -600,8 +808,8 @@ const BYTE CustomUIDX11VertexShader[] =
      26,  68,  83,   0,   0,   0, 
       0,   2,   0,   0,   2,   0, 
       0,   0,  39,   0,   0,   0, 
-    184,   0,   0,   0,   0,   0, 
-      0,   0,  35,   0,   0,   0, 
+    192,   0,   0,   0,   0,   0, 
+      0,   0,  37,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -764,7 +972,7 @@ const BYTE CustomUIDX11VertexShader[] =
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255,  56,   0,   0,   0, 
-    240, 255, 255, 255, 255, 255, 
+    192, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
     255, 255, 255, 255, 255, 255, 
@@ -1020,10 +1228,10 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0, 148,  46,  49,   1, 
-    163,  11, 136,  98,   1,   0, 
-      0,   0, 231,  16,  59, 216, 
-     65, 244,  53,  77, 132, 138, 
-     65, 198, 156, 251,   4, 207, 
+    155, 145, 136,  98,   1,   0, 
+      0,   0, 217, 186, 189, 110, 
+    192,  81, 179,  68, 136, 192, 
+    248,  53,  74,  65, 197, 182, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   1,   0,   0,   0, 
       1,   0,   0,   0,   0,   0, 
@@ -1110,23 +1318,23 @@ const BYTE CustomUIDX11VertexShader[] =
     114,  32,  58,  32, 114, 101, 
     103, 105, 115, 116, 101, 114, 
      40,  98,  50,  41,  13,  10, 
-    123,  13,  10,   9, 105, 110, 
-    116,  32, 108, 105, 103, 104, 
-    116,  76, 101, 110, 103, 116, 
-    104,  59,  13,  10, 125,  13, 
-     10,  13,  10,  99,  98, 117, 
-    102, 102, 101, 114,  32,  76, 
-    105, 103, 104, 116,  32,  58, 
-     32, 114, 101, 103, 105, 115, 
-    116, 101, 114,  40,  98,  51, 
-     41,  13,  10, 123,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
+    123,  13,  10,   9, 117, 105, 
+    110, 116,  32, 108, 105, 103, 
+    104, 116,  76, 101, 110, 103, 
+    116, 104,  59,  13,  10, 125, 
+     13,  10,  13,  10,  99,  98, 
+    117, 102, 102, 101, 114,  32, 
+     76, 105, 103, 104, 116,  32, 
+     58,  32, 114, 101, 103, 105, 
+    115, 116, 101, 114,  40,  98, 
+     51,  41,  13,  10, 123,  13, 
+     10,   9, 117, 105, 110, 116, 
      52,  32, 108, 105, 103, 104, 
-    116,  91,  50,  52,  93,  59, 
-     13,  10, 125,  13,  10,  13, 
-     10,  47,  47,  47,  47,  47, 
+    116,  91,  54,  93,  59,  13, 
+     10, 125,  13,  10,  13,  10, 
+     47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  32,  32,  32, 
+     47,  47,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1138,10 +1346,10 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10,  47,  47,  32,  84,  89, 
-     80,  69,  68,  69,  70,  83, 
-     32,  47,  47,  32,  32,  32, 
+     32,  32,  32,  32,  13,  10, 
+     47,  47,  32,  84,  89,  80, 
+     69,  68,  69,  70,  83,  32, 
+     47,  47,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1153,10 +1361,10 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10,  47,  47,  47,  47,  47, 
+     32,  32,  32,  32,  13,  10, 
+     47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  32,  32,  32, 
+     47,  47,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1168,28 +1376,28 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10, 115, 116, 114, 117,  99, 
-    116,  32,  86, 101, 114, 116, 
-    101, 120,  73, 110, 112, 117, 
-    116,  84, 121, 112, 101,  13, 
-     10, 123,  13,  10,   9, 102, 
-    108, 111,  97, 116,  52,  32, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  32,  58,  32,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,  59,  13,  10,   9, 102, 
-    108, 111,  97, 116,  50,  32, 
-    116, 101, 120,  32,  58,  32, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,  48,  59,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
-     51,  32, 110, 111, 114, 109, 
-     97, 108,  32,  58,  32,  78, 
-     79,  82,  77,  65,  76,  59, 
-     13,  10,   9, 117, 105, 110, 
-    116,  32, 107, 110, 111,  99, 
-    104, 101, 110,  32,  58,  32, 
+     32,  32,  32,  32,  13,  10, 
+    115, 116, 114, 117,  99, 116, 
+     32,  86, 101, 114, 116, 101, 
+    120,  73, 110, 112, 117, 116, 
+     84, 121, 112, 101,  13,  10, 
+    123,  13,  10,   9, 102, 108, 
+    111,  97, 116,  52,  32, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  32,  58,  32,  80,  79, 
+     83,  73,  84,  73,  79,  78, 
+     59,  13,  10,   9, 102, 108, 
+    111,  97, 116,  50,  32, 116, 
+    101, 120,  32,  58,  32,  84, 
+     69,  88,  67,  79,  79,  82, 
+     68,  48,  59,  13,  10,   9, 
+    102, 108, 111,  97, 116,  51, 
+     32, 110, 111, 114, 109,  97, 
+    108,  32,  58,  32,  78,  79, 
+     82,  77,  65,  76,  59,  13, 
+     10,   9, 117, 105, 110, 116, 
+     32, 107, 110, 111,  99, 104, 
+    101, 110,  32,  58,  32,  75, 
     198,  90,   0,   0, 117, 131, 
       1,   0,  76, 232,   3,   0, 
      81, 207,   1,   0, 146, 183, 
@@ -1200,11 +1408,11 @@ const BYTE CustomUIDX11VertexShader[] =
       1,   0,  73,  20,   1,   0, 
      19,  54,   2,   0,  65, 185, 
       2,   0, 153, 189,   3,   0, 
-    118,  19,   1,   0, 125, 218, 
-      1,   0,  65,  36,   1,   0, 
-     52,  37,   1,   0, 140, 144, 
-      3,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+    214,   6,   3,   0, 125, 218, 
+      1,   0, 169, 232,   3,   0, 
+    184, 232,   1,   0,  42, 187, 
+      0,   0, 220, 192,   1,   0, 
+      0,  16,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1321,22 +1529,22 @@ const BYTE CustomUIDX11VertexShader[] =
     114, 101, 103, 105, 115, 116, 
     101, 114,  40,  98,  50,  41, 
      13,  10, 123,  13,  10,   9, 
-    105, 110, 116,  32, 108, 105, 
-    103, 104, 116,  76, 101, 110, 
-    103, 116, 104,  59,  13,  10, 
-    125,  13,  10,  13,  10,  99, 
-     98, 117, 102, 102, 101, 114, 
-     32,  76, 105, 103, 104, 116, 
-     32,  58,  32, 114, 101, 103, 
-    105, 115, 116, 101, 114,  40, 
-     98,  51,  41,  13,  10, 123, 
-     13,  10,   9, 102, 108, 111, 
-     97, 116,  52,  32, 108, 105, 
-    103, 104, 116,  91,  50,  52, 
-     93,  59,  13,  10, 125,  13, 
-     10,  13,  10,  47,  47,  47, 
+    117, 105, 110, 116,  32, 108, 
+    105, 103, 104, 116,  76, 101, 
+    110, 103, 116, 104,  59,  13, 
+     10, 125,  13,  10,  13,  10, 
+     99,  98, 117, 102, 102, 101, 
+    114,  32,  76, 105, 103, 104, 
+    116,  32,  58,  32, 114, 101, 
+    103, 105, 115, 116, 101, 114, 
+     40,  98,  51,  41,  13,  10, 
+    123,  13,  10,   9, 117, 105, 
+    110, 116,  52,  32, 108, 105, 
+    103, 104, 116,  91,  54,  93, 
+     59,  13,  10, 125,  13,  10, 
+     13,  10,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  47,  32, 
+     47,  47,  47,  47,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1349,9 +1557,9 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10,  47,  47,  32, 
-     84,  89,  80,  69,  68,  69, 
-     70,  83,  32,  47,  47,  32, 
+     13,  10,  47,  47,  32,  84, 
+     89,  80,  69,  68,  69,  70, 
+     83,  32,  47,  47,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1364,9 +1572,9 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10,  47,  47,  47, 
+     13,  10,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  47,  32, 
+     47,  47,  47,  47,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1379,65 +1587,65 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10, 115, 116, 114, 
-    117,  99, 116,  32,  86, 101, 
-    114, 116, 101, 120,  73, 110, 
-    112, 117, 116,  84, 121, 112, 
-    101,  13,  10, 123,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
-     52,  32, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  58, 
-     32,  80,  79,  83,  73,  84, 
-     73,  79,  78,  59,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
-     50,  32, 116, 101, 120,  32, 
-     58,  32,  84,  69,  88,  67, 
-     79,  79,  82,  68,  48,  59, 
+     13,  10, 115, 116, 114, 117, 
+     99, 116,  32,  86, 101, 114, 
+    116, 101, 120,  73, 110, 112, 
+    117, 116,  84, 121, 112, 101, 
+     13,  10, 123,  13,  10,   9, 
+    102, 108, 111,  97, 116,  52, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32,  58,  32, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,  59,  13,  10,   9, 
+    102, 108, 111,  97, 116,  50, 
+     32, 116, 101, 120,  32,  58, 
+     32,  84,  69,  88,  67,  79, 
+     79,  82,  68,  48,  59,  13, 
+     10,   9, 102, 108, 111,  97, 
+    116,  51,  32, 110, 111, 114, 
+    109,  97, 108,  32,  58,  32, 
+     78,  79,  82,  77,  65,  76, 
+     59,  13,  10,   9, 117, 105, 
+    110, 116,  32, 107, 110, 111, 
+     99, 104, 101, 110,  32,  58, 
+     32,  75,  78,  79,  67,  72, 
+     69,  78,  95,  73,  68,  48, 
+     59,  13,  10,   9, 117, 105, 
+    110, 116,  32, 105, 100,  32, 
+     58,  32,  86,  69,  82,  84, 
+     69,  88,  95,  73,  68,  48, 
+     59,  13,  10, 125,  59,  13, 
+     10,  13,  10, 115, 116, 114, 
+    117,  99, 116,  32,  80, 105, 
+    120, 101, 108,  73, 110, 112, 
+    117, 116,  84, 121, 112, 101, 
+     13,  10, 123,  13,  10,   9, 
+    102, 108, 111,  97, 116,  52, 
+     32, 119, 111, 114, 108, 100, 
+     80, 111, 115,  32,  58,  32, 
+     80,  79,  83,  73,  84,  73, 
+     79,  78,  59,  13,  10,   9, 
+    102, 108, 111,  97, 116,  52, 
+     32, 112, 111, 115, 105, 116, 
+    105, 111, 110,  32,  58,  32, 
+     83,  86,  95,  80,  79,  83, 
+     73,  84,  73,  79,  78,  59, 
      13,  10,   9, 102, 108, 111, 
-     97, 116,  51,  32, 110, 111, 
-    114, 109,  97, 108,  32,  58, 
-     32,  78,  79,  82,  77,  65, 
-     76,  59,  13,  10,   9, 117, 
-    105, 110, 116,  32, 107, 110, 
-    111,  99, 104, 101, 110,  32, 
-     58,  32,  75,  78,  79,  67, 
-     72,  69,  78,  95,  73,  68, 
-     48,  59,  13,  10,   9, 117, 
-    105, 110, 116,  32, 105, 100, 
-     32,  58,  32,  86,  69,  82, 
-     84,  69,  88,  95,  73,  68, 
-     48,  59,  13,  10, 125,  59, 
-     13,  10,  13,  10, 115, 116, 
-    114, 117,  99, 116,  32,  80, 
-    105, 120, 101, 108,  73, 110, 
-    112, 117, 116,  84, 121, 112, 
-    101,  13,  10, 123,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
-     52,  32, 119, 111, 114, 108, 
-    100,  80, 111, 115,  32,  58, 
-     32,  80,  79,  83,  73,  84, 
-     73,  79,  78,  59,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
-     52,  32, 112, 111, 115, 105, 
-    116, 105, 111, 110,  32,  58, 
-     32,  83,  86,  95,  80,  79, 
-     83,  73,  84,  73,  79,  78, 
-     59,  13,  10,   9, 102, 108, 
-    111,  97, 116,  50,  32, 116, 
-    101, 120,  32,  58,  32,  84, 
-     69,  88,  67,  79,  79,  82, 
-     68,  48,  59,  13,  10,   9, 
-    102, 108, 111,  97, 116,  51, 
-     32, 110, 111, 114, 109,  97, 
-    108,  32,  58,  32,  84,  69, 
+     97, 116,  50,  32, 116, 101, 
+    120,  32,  58,  32,  84,  69, 
      88,  67,  79,  79,  82,  68, 
-     49,  59,  13,  10,   9, 102, 
-    108, 111,  97, 116,  52,  32, 
-    108, 105, 103, 104, 116,  32, 
-     58,  32,  84,  69,  88,  67, 
-     79,  79,  82,  68,  50,  59, 
-     13,  10, 125,  59,  13,  10, 
-     13,  10,  47,  47,  47,  47, 
+     48,  59,  13,  10,   9, 102, 
+    108, 111,  97, 116,  51,  32, 
+    110, 111, 114, 109,  97, 108, 
+     32,  58,  32,  84,  69,  88, 
+     67,  79,  79,  82,  68,  49, 
+     59,  13,  10,   9, 102, 108, 
+    111,  97, 116,  52,  32, 108, 
+    105, 103, 104, 116,  32,  58, 
+     32,  84,  69,  88,  67,  79, 
+     79,  82,  68,  50,  59,  13, 
+     10, 125,  59,  13,  10,  13, 
+     10,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -1450,10 +1658,10 @@ const BYTE CustomUIDX11VertexShader[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  47,  47,  13,  10, 
-     47,  47,  32,  86, 101, 114, 
-    116, 101, 120,  32,  83, 104, 
-     97, 100, 101, 114,  32,  32, 
+     47,  47,  47,  13,  10,  47, 
+     47,  32,  86, 101, 114, 116, 
+    101, 120,  32,  83, 104,  97, 
+    100, 101, 114,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1464,8 +1672,7 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  13,  10,  47,  47, 
-     47,  47,  47,  47,  47,  47, 
+     32,  13,  10,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -1478,20 +1685,21 @@ const BYTE CustomUIDX11VertexShader[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     13,  10,  80, 105, 120, 101, 
-    108,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  32,  84, 
-    101, 120, 116, 117, 114, 101, 
+     47,  47,  47,  47,  47,  13, 
+     10,  80, 105, 120, 101, 108, 
+     73, 110, 112, 117, 116,  84, 
+    121, 112, 101,  32,  84, 101, 
+    120, 116, 117, 114, 101,  86, 
+    101, 114, 116, 101, 120,  83, 
+    104,  97, 100, 101, 114,  40, 
      86, 101, 114, 116, 101, 120, 
-     83, 104,  97, 100, 101, 114, 
-     40,  86, 101, 114, 116, 101, 
-    120,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  32, 105, 
-    110, 112, 117, 116,  41,  13, 
-     10, 123,  13,  10,   9,  47, 
-     47, 114, 101, 116, 117, 114, 
-    110,  32, 105, 110, 112, 117, 
-    116,  59,  32,  32,  32,  32, 
+     73, 110, 112, 117, 116,  84, 
+    121, 112, 101,  32, 105, 110, 
+    112, 117, 116,  41,  13,  10, 
+    123,  13,  10,   9,  47,  47, 
+    114, 101, 116, 117, 114, 110, 
+     32, 105, 110, 112, 117, 116, 
+     59,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -1502,130 +1710,168 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10,   9,  80, 105, 120, 101, 
-    108,  73, 110, 112, 117, 116, 
-     84, 121, 112, 101,  32, 111, 
-    117, 116, 112, 117, 116,  59, 
-     13,  10,   9, 111, 117, 116, 
-    112, 117, 116,  46, 110, 111, 
-    114, 109,  97, 108,  32,  61, 
-     32, 110, 111, 114, 109,  97, 
-    108, 105, 122, 101,  40, 109, 
-    117, 108,  40, 105, 110, 112, 
+     32,  32,  32,  32,  13,  10, 
+      9,  80, 105, 120, 101, 108, 
+     73, 110, 112, 117, 116,  84, 
+    121, 112, 101,  32, 111, 117, 
+    116, 112, 117, 116,  59,  13, 
+     10,   9, 111, 117, 116, 112, 
     117, 116,  46, 110, 111, 114, 
-    109,  97, 108,  44,  32,  40, 
-    102, 108, 111,  97, 116,  51, 
-    120,  51,  41, 107, 110, 111, 
-     99, 104, 101, 110,  77,  97, 
-    116, 114, 105, 120,  91, 105, 
-    110, 112, 117, 116,  46, 107, 
-    110, 111,  99, 104, 101, 110, 
-     93,  41,  41,  59,  13,  10, 
-     13,  10,   9,  47,  47,  32, 
-     67, 104,  97, 110, 103, 101, 
-     32, 116, 104, 101,  32, 112, 
+    109,  97, 108,  32,  61,  32, 
+    110, 111, 114, 109,  97, 108, 
+    105, 122, 101,  40, 109, 117, 
+    108,  40, 105, 110, 112, 117, 
+    116,  46, 110, 111, 114, 109, 
+     97, 108,  44,  32,  40, 102, 
+    108, 111,  97, 116,  51, 120, 
+     51,  41, 107, 110, 111,  99, 
+    104, 101, 110,  77,  97, 116, 
+    114, 105, 120,  91, 105, 110, 
+    112, 117, 116,  46, 107, 110, 
+    111,  99, 104, 101, 110,  93, 
+     41,  41,  59,  13,  10,  13, 
+     10,   9,  47,  47,  32,  67, 
+    104,  97, 110, 103, 101,  32, 
+    116, 104, 101,  32, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     32, 118, 101,  99, 116, 111, 
+    114,  32, 116, 111,  32,  98, 
+    101,  32,  52,  32, 117, 110, 
+    105, 116, 115,  32, 102, 111, 
+    114,  32, 112, 114, 111, 112, 
+    101, 114,  32, 109,  97, 116, 
+    114, 105, 120,  32,  99,  97, 
+    108,  99, 117, 108,  97, 116, 
+    105, 111, 110, 115,  46,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  13,  10,   9, 105, 
+    110, 112, 117, 116,  46, 112, 
     111, 115, 105, 116, 105, 111, 
-    110,  32, 118, 101,  99, 116, 
-    111, 114,  32, 116, 111,  32, 
-     98, 101,  32,  52,  32, 117, 
-    110, 105, 116, 115,  32, 102, 
-    111, 114,  32, 112, 114, 111, 
-    112, 101, 114,  32, 109,  97, 
-    116, 114, 105, 120,  32,  99, 
-     97, 108,  99, 117, 108,  97, 
-    116, 105, 111, 110, 115,  46, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  13,  10,   9, 
-    105, 110, 112, 117, 116,  46, 
-    112, 111, 115, 105, 116, 105, 
-    111, 110,  46, 119,  32,  61, 
-     32,  49,  46,  48, 102,  59, 
-     13,  10,  13,  10,   9,  47, 
-     47,  32,  83, 116, 111, 114, 
-    101,  32, 116, 104, 101,  32, 
-    116, 101, 120, 116, 117, 114, 
-    101,  32,  99, 111, 111, 114, 
-    100, 105, 110,  97, 116, 101, 
-    115,  32, 102, 111, 114,  32, 
-    116, 104, 101,  32, 112, 105, 
-    120, 101, 108,  32, 115, 104, 
-     97, 100, 101, 114,  46,  32, 
+    110,  46, 119,  32,  61,  32, 
+     49,  46,  48, 102,  59,  13, 
+     10,  13,  10,   9,  47,  47, 
+     32,  83, 116, 111, 114, 101, 
+     32, 116, 104, 101,  32, 116, 
+    101, 120, 116, 117, 114, 101, 
+     32,  99, 111, 111, 114, 100, 
+    105, 110,  97, 116, 101, 115, 
+     32, 102, 111, 114,  32, 116, 
+    104, 101,  32, 112, 105, 120, 
+    101, 108,  32, 115, 104,  97, 
+    100, 101, 114,  46,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10,   9, 111, 117, 116, 112, 
-    117, 116,  46, 116, 101, 120, 
-     32,  61,  32, 105, 110, 112, 
-    117, 116,  46, 116, 101, 120, 
-     59,  13,  10,  13,  10,   9, 
-     47,  47,  32,  67,  97, 108, 
-     99, 117, 108,  97, 116, 101, 
-     32, 116, 104, 101,  32, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32, 111, 102,  32, 116, 
-    104, 101,  32, 118, 101, 114, 
-    116, 101, 120,  32,  97, 103, 
-     97, 105, 110, 115, 116,  32, 
-    116, 104, 101,  32, 119, 111, 
-    114, 108, 100,  44,  32, 118, 
-    105, 101, 119,  44,  32,  97, 
-    110, 100,  32, 112, 114, 111, 
-    106, 101,  99, 116, 105, 111, 
-    110,  32, 109,  97, 116, 114, 
-    105,  99, 101, 115,  46,  32, 
-     13,  10,   9, 111, 117, 116, 
-    112, 117, 116,  46, 119, 111, 
-    114, 108, 100,  80, 111, 115, 
-     32,  61,  32, 109, 117, 108, 
-     40, 105, 110, 112, 117, 116, 
-     46, 112, 111, 115, 105, 116, 
-    105, 111, 110,  44,  32, 107, 
-    110, 111,  99, 104, 101, 110, 
-     77,  97, 116, 114, 105, 120, 
-     91, 105, 110, 112, 117, 116, 
-     46, 107, 110, 111,  99, 104, 
-    101, 110,  93,  41,  59,  13, 
-     10,   9, 111, 117, 116, 112, 
-    117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  32, 
-     61,  32, 109, 117, 108,  40, 
-    111, 117, 116, 112, 117, 116, 
-     46, 119, 111, 114, 108, 100, 
-     80, 111, 115,  44,  32, 118, 
-    105, 101, 119,  41,  59,  13, 
+     32,  32,  32,  32,  13,  10, 
+      9, 111, 117, 116, 112, 117, 
+    116,  46, 116, 101, 120,  32, 
+     61,  32, 105, 110, 112, 117, 
+    116,  46, 116, 101, 120,  59, 
+     13,  10,  13,  10,   9,  47, 
+     47,  32,  67,  97, 108,  99, 
+    117, 108,  97, 116, 101,  32, 
+    116, 104, 101,  32, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     32, 111, 102,  32, 116, 104, 
+    101,  32, 118, 101, 114, 116, 
+    101, 120,  32,  97, 103,  97, 
+    105, 110, 115, 116,  32, 116, 
+    104, 101,  32, 119, 111, 114, 
+    108, 100,  44,  32, 118, 105, 
+    101, 119,  44,  32,  97, 110, 
+    100,  32, 112, 114, 111, 106, 
+    101,  99, 116, 105, 111, 110, 
+     32, 109,  97, 116, 114, 105, 
+     99, 101, 115,  46,  32,  13, 
      10,   9, 111, 117, 116, 112, 
-    117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  32, 
+    117, 116,  46, 119, 111, 114, 
+    108, 100,  80, 111, 115,  32, 
      61,  32, 109, 117, 108,  40, 
-    111, 117, 116, 112, 117, 116, 
-     46, 112, 111, 115, 105, 116, 
-    105, 111, 110,  44,  32, 112, 
-    114, 111, 106, 101,  99, 116, 
-    105, 111, 110,  41,  59,  13, 
-     10,   9, 111, 117, 116, 112, 
-    117, 116,  46, 108, 105, 103, 
-    104, 116,  32,  61,  32, 102, 
-    108, 111,  97, 116,  52,  40, 
-     49,  46,  48, 102,  44,  32, 
-     49,  46,  48, 102,  44,  32, 
-     49,  46,  48, 102,  44,  32, 
-     48,  46, 102,  41,  59,  13, 
-     10,   9, 105, 102,  32,  40, 
     105, 110, 112, 117, 116,  46, 
-    105, 100,  32,  60,  32, 108, 
-    105, 103, 104, 116,  76, 101, 
-    110, 103, 116, 104,  41,  13, 
-     10,   9, 123,  13,  10,   9, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  44,  32, 107, 110, 
+    111,  99, 104, 101, 110,  77, 
+     97, 116, 114, 105, 120,  91, 
+    105, 110, 112, 117, 116,  46, 
+    107, 110, 111,  99, 104, 101, 
+    110,  93,  41,  59,  13,  10, 
+      9, 111, 117, 116, 112, 117, 
+    116,  46, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32,  61, 
+     32, 109, 117, 108,  40, 111, 
+    117, 116, 112, 117, 116,  46, 
+    119, 111, 114, 108, 100,  80, 
+    111, 115,  44,  32, 118, 105, 
+    101, 119,  41,  59,  13,  10, 
+      9, 111, 117, 116, 112, 117, 
+    116,  46, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32,  61, 
+     32, 109, 117, 108,  40, 111, 
+    117, 116, 112, 117, 116,  46, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  44,  32, 112, 114, 
+    111, 106, 101,  99, 116, 105, 
+    111, 110,  41,  59,  13,  10, 
+      9, 111, 117, 116, 112, 117, 
+    116,  46, 108, 105, 103, 104, 
+    116,  32,  61,  32, 102, 108, 
+    111,  97, 116,  52,  40,  49, 
+     46,  48, 102,  44,  32,  49, 
+     46,  48, 102,  44,  32,  49, 
+     46,  48, 102,  44,  32,  48, 
+     46, 102,  41,  59,  13,  10, 
+      9, 105, 102,  32,  40, 105, 
+    110, 112, 117, 116,  46, 105, 
+    100,  32,  60,  32, 108, 105, 
+    103, 104, 116,  76, 101, 110, 
+    103, 116, 104,  41,  13,  10, 
+      9, 123,  13,  10,   9,   9, 
+    111, 117, 116, 112, 117, 116, 
+     46, 108, 105, 103, 104, 116, 
+     46, 120,  32,  61,  32,  40, 
+     40,  40,  40, 117, 105, 110, 
+    116,  91,  52,  93,  41, 108, 
+    105, 103, 104, 116,  91, 105, 
+    110, 112, 117, 116,  46, 105, 
+    100,  32,  47,  32,  52,  93, 
+     41,  91, 105, 110, 112, 117, 
+    116,  46, 105, 100,  32,  37, 
+     32,  52,  93,  32,  62,  62, 
+     32,  50,  52,  41,  32,  38, 
+     32,  48, 120,  70,  70,  41, 
+     32,  47,  32,  50,  53,  53, 
+     46, 102,  59,  13,  10,   9, 
       9, 111, 117, 116, 112, 117, 
     116,  46, 108, 105, 103, 104, 
-    116,  46, 120, 121, 122,  32, 
-     61,  32, 108, 105, 103, 104, 
-    116,  91, 105, 110, 112, 117, 
-    116,  46, 105, 100,  93,  46, 
-    120, 121, 122,  59,  13,  10, 
+    116,  46, 121,  32,  61,  32, 
+     40,  40,  40,  40, 117, 105, 
+    110, 116,  91,  52,  93,  41, 
+    108, 105, 103, 104, 116,  91, 
+    105, 110, 112, 117, 116,  46, 
+    105, 100,  32,  47,  32,  52, 
+     93,  41,  91, 105, 110, 112, 
+    117, 116,  46, 105, 100,  32, 
+     37,  32,  52,  93,  32,  62, 
+     62,  32,  49,  54,  41,  32, 
+     38,  32,  48, 120,  70,  70, 
+     41,  32,  47,  32,  50,  53, 
+     53,  46, 102,  59,  13,  10, 
+      9,   9, 111, 117, 116, 112, 
+    117, 116,  46, 108, 105, 103, 
+    104, 116,  46, 122,  32,  61, 
+     32,  40,  40,  40,  40, 117, 
+    105, 110, 116,  91,  52,  93, 
+     41, 108, 105, 103, 104, 116, 
+     91, 105, 110, 112, 117, 116, 
+     46, 105, 100,  32,  47,  32, 
+     52,  93,  41,  91, 105, 110, 
+    112, 117, 116,  46, 105, 100, 
+     32,  37,  32,  52,  93,  32, 
+     62,  62,  32,  56,  41,  32, 
+     38,  32,  48, 120,  70,  70, 
+     41,  32,  47,  32,  50,  53, 
+     53,  46, 102,  59,  13,  10, 
       9,   9, 111, 117, 116, 112, 
     117, 116,  46, 108, 105, 103, 
     104, 116,  46, 119,  32,  61, 
@@ -1664,46 +1910,8 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
     254, 239, 254, 239,   1,   0, 
-      0,   0, 112,   9,   0,   0, 
+      0,   0,  84,  10,   0,   0, 
       0,  67,  58,  92,  85, 115, 
     101, 114, 115,  92, 107, 111, 
     108, 106,  97,  92,  68, 101, 
@@ -1788,8 +1996,8 @@ const BYTE CustomUIDX11VertexShader[] =
      10, 125,  13,  10,  13,  10, 
      99,  98, 117, 102, 102, 101, 
     114,  32,  27, 226,  48,   1, 
-    128,   0,   0,   0, 219, 245, 
-     70, 185, 146, 108, 216,   1, 
+    128,   0,   0,   0,  98, 150, 
+     21, 147, 226, 108, 216,   1, 
       1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1803,8 +2011,8 @@ const BYTE CustomUIDX11VertexShader[] =
       1,   0,   0,   0,   0,   0, 
       0,   0, 132,   0,   0,   0, 
      40,   0,   0,   0,  27, 226, 
-     48,   1,  18, 222,  45,   5, 
-    105,   8,   0,   0,   1,   0, 
+     48,   1,  23, 200, 156, 199, 
+     77,   9,   0,   0,   1,   0, 
       0,   0, 131,   0,   0,   0, 
     132,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -1898,10 +2106,10 @@ const BYTE CustomUIDX11VertexShader[] =
      97, 100, 101, 114,   0,   0, 
      58,   0,  16,  17,   0,   0, 
       0,   0,  60,   6,   0,   0, 
-      0,   0,   0,   0, 232,   3, 
+      0,   0,   0,   0, 132,   7, 
       0,   0,   0,   0,   0,   0, 
-    232,   3,   0,   0,   9,  16, 
-      0,   0, 208,   0,   0,   0, 
+    132,   7,   0,   0,   9,  16, 
+      0,   0,  24,   1,   0,   0, 
       1,   0, 160,  84, 101, 120, 
     116, 117, 114, 101,  86, 101, 
     114, 116, 101, 120,  83, 104, 
@@ -1916,56 +2124,56 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,   0,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,   0,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,   0,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,   4,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,   4,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,   4,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,   8,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,   8,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,   8,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  12,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  12,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  12,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  16,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  16,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  16,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  20,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  20,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  20,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  24,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  32,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  32,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  28,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  36,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  36,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  32,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  40,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  40,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  36,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  48,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  48,   0,   0,   0, 
      22,   0,  80,  17,   1,   0, 
       5,   0,  40,   0,   4,   0, 
-    208,   0,   0,   0,   1,   0, 
-    232,   3,  64,   0,   0,   0, 
+     24,   1,   0,   0,   1,   0, 
+    132,   7,  64,   0,   0,   0, 
      22,   0,  80,  17,   0,   0, 
       5,   0,  12,   0,   4,   0, 
-    196,   1,   0,   0,   1,   0, 
+     12,   2,   0,   0,   1,   0, 
     100,   1,  28,   0,   0,   0, 
      22,   0,  80,  17,   0,   0, 
       5,   0,  40,   0,   4,   0, 
-     28,   4,   0,   0,   1,   0, 
-     52,   0,  12,   0,   0,   0, 
+     80,   4,   0,   0,   1,   0, 
+    240,   2,  12,   0,   0,   0, 
      74,   0,  62,  17,   8,  16, 
       0,   0, 136,   0,  60,  84, 
     101, 120, 116, 117, 114, 101, 
@@ -1980,72 +2188,72 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     52,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     52,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      64,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     56,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     56,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      68,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     60,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     60,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      72,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     64,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     64,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      76,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     40,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     40,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      48,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     44,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     44,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      52,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     48,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     48,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      56,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     32,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     32,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      32,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     36,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     36,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      36,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     16,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     16,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      16,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     20,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     20,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      20,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     24,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     24,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      24,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     28,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     28,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      28,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-      0,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+      0,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
       0,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-      4,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+      4,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
       4,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-      8,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+      8,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
       8,   0,   0,   0,  22,   0, 
      80,  17,   2,   0,   5,   0, 
-     12,   0,   4,   0, 208,   0, 
-      0,   0,   1,   0, 232,   3, 
+     12,   0,   4,   0,  24,   1, 
+      0,   0,   1,   0, 132,   7, 
      12,   0,   0,   0,  46,   0, 
      62,  17,   7,  16,   0,   0, 
       8,   0, 111, 117, 116, 112, 
@@ -2056,238 +2264,374 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     40,   0,   4,   0, 176,   1, 
-      0,   0,   1,   0,   8,   3, 
+     40,   0,   4,   0, 248,   1, 
+      0,   0,   1,   0, 164,   6, 
       0,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     44,   0,   4,   0, 176,   1, 
-      0,   0,   1,   0,   8,   3, 
+     44,   0,   4,   0, 248,   1, 
+      0,   0,   1,   0, 164,   6, 
       4,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     48,   0,   4,   0, 176,   1, 
-      0,   0,   1,   0,   8,   3, 
+     48,   0,   4,   0, 248,   1, 
+      0,   0,   1,   0, 164,   6, 
       8,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     32,   0,   4,   0, 216,   1, 
-      0,   0,   1,   0, 224,   2, 
+     32,   0,   4,   0,  32,   2, 
+      0,   0,   1,   0, 124,   6, 
      32,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     36,   0,   4,   0, 216,   1, 
-      0,   0,   1,   0, 224,   2, 
+     36,   0,   4,   0,  32,   2, 
+      0,   0,   1,   0, 124,   6, 
      36,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-      0,   0,   4,   0,  48,   2, 
-      0,   0,   1,   0, 136,   2, 
+      0,   0,   4,   0, 120,   2, 
+      0,   0,   1,   0,  36,   6, 
      48,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-      4,   0,   4,   0,  88,   2, 
-      0,   0,   1,   0,  96,   2, 
+      4,   0,   4,   0, 160,   2, 
+      0,   0,   1,   0, 252,   5, 
      52,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-      8,   0,   4,   0, 128,   2, 
-      0,   0,   1,   0,  56,   2, 
+      8,   0,   4,   0, 200,   2, 
+      0,   0,   1,   0, 212,   5, 
      56,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     12,   0,   4,   0, 168,   2, 
-      0,   0,   1,   0,  16,   2, 
+     12,   0,   4,   0, 240,   2, 
+      0,   0,   1,   0, 172,   5, 
      60,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     16,   0,   4,   0, 200,   2, 
+     16,   0,   4,   0,  16,   3, 
       0,   0,   1,   0, 128,   0, 
      16,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     20,   0,   4,   0, 232,   2, 
+     20,   0,   4,   0,  48,   3, 
       0,   0,   1,   0, 128,   0, 
      20,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     24,   0,   4,   0,   8,   3, 
+     24,   0,   4,   0,  80,   3, 
       0,   0,   1,   0, 128,   0, 
      24,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     28,   0,   4,   0,  40,   3, 
+     28,   0,   4,   0, 112,   3, 
       0,   0,   1,   0, 128,   0, 
      28,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     16,   0,   4,   0,  72,   3, 
-      0,   0,   1,   0, 112,   1, 
+     16,   0,   4,   0, 144,   3, 
+      0,   0,   1,   0,  12,   5, 
      64,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     20,   0,   4,   0, 104,   3, 
-      0,   0,   1,   0,  80,   1, 
+     20,   0,   4,   0, 176,   3, 
+      0,   0,   1,   0, 236,   4, 
      68,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     24,   0,   4,   0, 136,   3, 
-      0,   0,   1,   0,  48,   1, 
+     24,   0,   4,   0, 208,   3, 
+      0,   0,   1,   0, 204,   4, 
      72,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     28,   0,   4,   0, 168,   3, 
-      0,   0,   1,   0,  16,   1, 
+     28,   0,   4,   0, 240,   3, 
+      0,   0,   1,   0, 172,   4, 
      76,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     52,   0,   4,   0, 200,   3, 
-      0,   0,   1,   0, 240,   0, 
+     52,   0,   4,   0,  16,   4, 
+      0,   0,   1,   0, 140,   4, 
      16,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     56,   0,   4,   0, 200,   3, 
-      0,   0,   1,   0, 240,   0, 
+     56,   0,   4,   0,  16,   4, 
+      0,   0,   1,   0, 140,   4, 
      20,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     60,   0,   4,   0, 200,   3, 
-      0,   0,   1,   0, 240,   0, 
+     60,   0,   4,   0,  16,   4, 
+      0,   0,   1,   0, 140,   4, 
      24,   0,   0,   0,  22,   0, 
      80,  17,   0,   0,   5,   0, 
-     64,   0,   4,   0, 200,   3, 
-      0,   0,   1,   0, 240,   0, 
+     64,   0,   4,   0,  16,   4, 
+      0,   0,   1,   0, 140,   4, 
      28,   0,   0,   0,   2,   0, 
       6,   0, 244,   0,   0,   0, 
      24,   0,   0,   0,   1,   0, 
-      0,   0,  16,   1, 133,  19, 
-     82, 208,  59, 221, 207,  16, 
-     10, 196,  89,  20,  56,  18, 
-    126, 177,   0,   0, 242,   0, 
-      0,   0, 144,   3,   0,   0, 
+      0,   0,  16,   1, 231, 166, 
+      9, 195, 147, 174, 144,  84, 
+    167,  23, 216, 209,  47,  23, 
+    211,  45,   0,   0, 242,   0, 
+      0,   0, 192,   6,   0,   0, 
       0,   0,   0,   0,   1,   0, 
-      1,   0, 184,   4,   0,   0, 
-      0,   0,   0,   0,  74,   0, 
-      0,   0, 132,   3,   0,   0, 
-    208,   0,   0,   0,  54,   0, 
-      0, 128, 208,   0,   0,   0, 
-     54,   0,   0,   0, 240,   0, 
+      1,   0, 156,   8,   0,   0, 
+      0,   0,   0,   0, 142,   0, 
+      0,   0, 180,   6,   0,   0, 
+     24,   1,   0,   0,  54,   0, 
+      0, 128,  24,   1,   0,   0, 
+     54,   0,   0,   0,  56,   1, 
       0,   0,  54,   0,   0, 128, 
-    240,   0,   0,   0,  54,   0, 
-      0,   0,  20,   1,   0,   0, 
-     54,   0,   0, 128,  20,   1, 
+     56,   1,   0,   0,  54,   0, 
+      0,   0,  92,   1,   0,   0, 
+     54,   0,   0, 128,  92,   1, 
       0,   0,  54,   0,   0,   0, 
-     60,   1,   0,   0,  54,   0, 
-      0, 128,  60,   1,   0,   0, 
-     54,   0,   0,   0, 100,   1, 
+    132,   1,   0,   0,  54,   0, 
+      0, 128, 132,   1,   0,   0, 
+     54,   0,   0,   0, 172,   1, 
       0,   0,  54,   0,   0, 128, 
-    100,   1,   0,   0,  54,   0, 
-      0,   0, 128,   1,   0,   0, 
-     54,   0,   0, 128, 128,   1, 
+    172,   1,   0,   0,  54,   0, 
+      0,   0, 200,   1,   0,   0, 
+     54,   0,   0, 128, 200,   1, 
       0,   0,  54,   0,   0,   0, 
-    148,   1,   0,   0,  54,   0, 
-      0, 128, 148,   1,   0,   0, 
-     54,   0,   0,   0, 176,   1, 
+    220,   1,   0,   0,  54,   0, 
+      0, 128, 220,   1,   0,   0, 
+     54,   0,   0,   0, 248,   1, 
       0,   0,  57,   0,   0, 128, 
-    176,   1,   0,   0,  57,   0, 
-      0,   0, 196,   1,   0,   0, 
-     60,   0,   0, 128, 196,   1, 
+    248,   1,   0,   0,  57,   0, 
+      0,   0,  12,   2,   0,   0, 
+     60,   0,   0, 128,  12,   2, 
       0,   0,  60,   0,   0,   0, 
-    216,   1,   0,   0,  63,   0, 
-      0, 128, 216,   1,   0,   0, 
-     63,   0,   0,   0, 248,   1, 
+     32,   2,   0,   0,  63,   0, 
+      0, 128,  32,   2,   0,   0, 
+     63,   0,   0,   0,  64,   2, 
       0,   0,  63,   0,   0, 128, 
-    248,   1,   0,   0,  63,   0, 
-      0,   0,  12,   2,   0,   0, 
-     63,   0,   0, 128,  12,   2, 
+     64,   2,   0,   0,  63,   0, 
+      0,   0,  84,   2,   0,   0, 
+     63,   0,   0, 128,  84,   2, 
       0,   0,  63,   0,   0,   0, 
-     48,   2,   0,   0,  63,   0, 
-      0, 128,  48,   2,   0,   0, 
-     63,   0,   0,   0,  88,   2, 
+    120,   2,   0,   0,  63,   0, 
+      0, 128, 120,   2,   0,   0, 
+     63,   0,   0,   0, 160,   2, 
       0,   0,  63,   0,   0, 128, 
-     88,   2,   0,   0,  63,   0, 
-      0,   0, 128,   2,   0,   0, 
-     63,   0,   0, 128, 128,   2, 
+    160,   2,   0,   0,  63,   0, 
+      0,   0, 200,   2,   0,   0, 
+     63,   0,   0, 128, 200,   2, 
       0,   0,  63,   0,   0,   0, 
-    168,   2,   0,   0,  64,   0, 
-      0, 128, 168,   2,   0,   0, 
-     64,   0,   0,   0, 200,   2, 
+    240,   2,   0,   0,  64,   0, 
+      0, 128, 240,   2,   0,   0, 
+     64,   0,   0,   0,  16,   3, 
       0,   0,  64,   0,   0, 128, 
-    200,   2,   0,   0,  64,   0, 
-      0,   0, 232,   2,   0,   0, 
-     64,   0,   0, 128, 232,   2, 
+     16,   3,   0,   0,  64,   0, 
+      0,   0,  48,   3,   0,   0, 
+     64,   0,   0, 128,  48,   3, 
       0,   0,  64,   0,   0,   0, 
-      8,   3,   0,   0,  64,   0, 
-      0, 128,   8,   3,   0,   0, 
-     64,   0,   0,   0,  40,   3, 
+     80,   3,   0,   0,  64,   0, 
+      0, 128,  80,   3,   0,   0, 
+     64,   0,   0,   0, 112,   3, 
       0,   0,  65,   0,   0, 128, 
-     40,   3,   0,   0,  65,   0, 
-      0,   0,  72,   3,   0,   0, 
-     65,   0,   0, 128,  72,   3, 
+    112,   3,   0,   0,  65,   0, 
+      0,   0, 144,   3,   0,   0, 
+     65,   0,   0, 128, 144,   3, 
       0,   0,  65,   0,   0,   0, 
-    104,   3,   0,   0,  65,   0, 
-      0, 128, 104,   3,   0,   0, 
-     65,   0,   0,   0, 136,   3, 
+    176,   3,   0,   0,  65,   0, 
+      0, 128, 176,   3,   0,   0, 
+     65,   0,   0,   0, 208,   3, 
       0,   0,  65,   0,   0, 128, 
-    136,   3,   0,   0,  65,   0, 
-      0,   0, 168,   3,   0,   0, 
-     66,   0,   0, 128, 168,   3, 
+    208,   3,   0,   0,  65,   0, 
+      0,   0, 240,   3,   0,   0, 
+     66,   0,   0, 128, 240,   3, 
       0,   0,  66,   0,   0,   0, 
-    200,   3,   0,   0,  67,   0, 
-      0, 128, 200,   3,   0,   0, 
-     67,   0,   0,   0, 224,   3, 
+     16,   4,   0,   0,  67,   0, 
+      0, 128,  16,   4,   0,   0, 
+     67,   0,   0,   0,  48,   4, 
       0,   0,  67,   0,   0, 128, 
-    224,   3,   0,   0,  67,   0, 
-      0,   0, 252,   3,   0,   0, 
-     67,   0,   0, 128, 252,   3, 
+     48,   4,   0,   0,  67,   0, 
+      0,   0,  60,   4,   0,   0, 
+     67,   0,   0, 128,  60,   4, 
       0,   0,  67,   0,   0,   0, 
-      8,   4,   0,   0,  67,   0, 
-      0, 128,   8,   4,   0,   0, 
-     67,   0,   0,   0,  28,   4, 
+     80,   4,   0,   0,  69,   0, 
+      0, 128,  80,   4,   0,   0, 
+     69,   0,   0,   0, 100,   4, 
+      0,   0,  69,   0,   0, 128, 
+    100,   4,   0,   0,  69,   0, 
+      0,   0, 132,   4,   0,   0, 
+     69,   0,   0, 128, 132,   4, 
+      0,   0,  69,   0,   0,   0, 
+    152,   4,   0,   0,  69,   0, 
+      0, 128, 152,   4,   0,   0, 
+     69,   0,   0,   0, 184,   4, 
+      0,   0,  69,   0,   0, 128, 
+    184,   4,   0,   0,  69,   0, 
+      0,   0, 224,   4,   0,   0, 
+     69,   0,   0, 128, 224,   4, 
+      0,   0,  69,   0,   0,   0, 
+    252,   4,   0,   0,  69,   0, 
+      0, 128, 252,   4,   0,   0, 
+     69,   0,   0,   0,  24,   5, 
+      0,   0,  69,   0,   0, 128, 
+     24,   5,   0,   0,  69,   0, 
+      0,   0,  44,   5,   0,   0, 
+     69,   0,   0, 128,  44,   5, 
+      0,   0,  69,   0,   0,   0, 
+     72,   5,   0,   0,  69,   0, 
+      0, 128,  72,   5,   0,   0, 
+     69,   0,   0,   0, 100,   5, 
       0,   0,  69,   0,   0, 128, 
-     28,   4,   0,   0,  69,   0, 
-      0,   0,  56,   4,   0,   0, 
-     70,   0,   0, 128,  56,   4, 
+    100,   5,   0,   0,  69,   0, 
+      0,   0, 120,   5,   0,   0, 
+     69,   0,   0, 128, 120,   5, 
+      0,   0,  69,   0,   0,   0, 
+    148,   5,   0,   0,  70,   0, 
+      0, 128, 148,   5,   0,   0, 
+     70,   0,   0,   0, 168,   5, 
+      0,   0,  70,   0,   0, 128, 
+    168,   5,   0,   0,  70,   0, 
+      0,   0, 200,   5,   0,   0, 
+     70,   0,   0, 128, 200,   5, 
       0,   0,  70,   0,   0,   0, 
-     76,   4,   0,   0,  71,   0, 
-      0, 128,  76,   4,   0,   0, 
-     71,   0,   0,   0,  80,   4, 
-      0,   0,  73,   0,   0, 128, 
-     80,   4,   0,   0,  73,   0, 
-      0,   0, 100,   4,   0,   0, 
-     73,   0,   0, 128, 100,   4, 
-      0,   0,  73,   0,   0,   0, 
-    120,   4,   0,   0,  73,   0, 
-      0, 128, 120,   4,   0,   0, 
-     73,   0,   0,   0, 140,   4, 
+    220,   5,   0,   0,  70,   0, 
+      0, 128, 220,   5,   0,   0, 
+     70,   0,   0,   0, 252,   5, 
+      0,   0,  70,   0,   0, 128, 
+    252,   5,   0,   0,  70,   0, 
+      0,   0,  36,   6,   0,   0, 
+     70,   0,   0, 128,  36,   6, 
+      0,   0,  70,   0,   0,   0, 
+     64,   6,   0,   0,  70,   0, 
+      0, 128,  64,   6,   0,   0, 
+     70,   0,   0,   0,  92,   6, 
+      0,   0,  70,   0,   0, 128, 
+     92,   6,   0,   0,  70,   0, 
+      0,   0, 112,   6,   0,   0, 
+     70,   0,   0, 128, 112,   6, 
+      0,   0,  70,   0,   0,   0, 
+    140,   6,   0,   0,  70,   0, 
+      0, 128, 140,   6,   0,   0, 
+     70,   0,   0,   0, 168,   6, 
+      0,   0,  70,   0,   0, 128, 
+    168,   6,   0,   0,  70,   0, 
+      0,   0, 188,   6,   0,   0, 
+     70,   0,   0, 128, 188,   6, 
+      0,   0,  70,   0,   0,   0, 
+    216,   6,   0,   0,  71,   0, 
+      0, 128, 216,   6,   0,   0, 
+     71,   0,   0,   0, 236,   6, 
+      0,   0,  71,   0,   0, 128, 
+    236,   6,   0,   0,  71,   0, 
+      0,   0,  12,   7,   0,   0, 
+     71,   0,   0, 128,  12,   7, 
+      0,   0,  71,   0,   0,   0, 
+     32,   7,   0,   0,  71,   0, 
+      0, 128,  32,   7,   0,   0, 
+     71,   0,   0,   0,  64,   7, 
+      0,   0,  71,   0,   0, 128, 
+     64,   7,   0,   0,  71,   0, 
+      0,   0, 104,   7,   0,   0, 
+     71,   0,   0, 128, 104,   7, 
+      0,   0,  71,   0,   0,   0, 
+    132,   7,   0,   0,  71,   0, 
+      0, 128, 132,   7,   0,   0, 
+     71,   0,   0,   0, 160,   7, 
+      0,   0,  71,   0,   0, 128, 
+    160,   7,   0,   0,  71,   0, 
+      0,   0, 180,   7,   0,   0, 
+     71,   0,   0, 128, 180,   7, 
+      0,   0,  71,   0,   0,   0, 
+    208,   7,   0,   0,  71,   0, 
+      0, 128, 208,   7,   0,   0, 
+     71,   0,   0,   0, 236,   7, 
+      0,   0,  71,   0,   0, 128, 
+    236,   7,   0,   0,  71,   0, 
+      0,   0,   0,   8,   0,   0, 
+     71,   0,   0, 128,   0,   8, 
+      0,   0,  71,   0,   0,   0, 
+     28,   8,   0,   0,  72,   0, 
+      0, 128,  28,   8,   0,   0, 
+     72,   0,   0,   0,  48,   8, 
       0,   0,  73,   0,   0, 128, 
-    140,   4,   0,   0,  73,   0, 
-      0,   0, 160,   4,   0,   0, 
-     73,   0,   0, 128, 160,   4, 
-      0,   0,  73,   0,   0,   0, 
-    180,   4,   0,   0,  73,   0, 
-      0, 128, 180,   4,   0,   0, 
-     73,   0,   0,   0,   2,   0, 
-     86,   0,  56,   0,  83,   0, 
+     48,   8,   0,   0,  73,   0, 
+      0,   0,  52,   8,   0,   0, 
+     75,   0,   0, 128,  52,   8, 
+      0,   0,  75,   0,   0,   0, 
+     72,   8,   0,   0,  75,   0, 
+      0, 128,  72,   8,   0,   0, 
+     75,   0,   0,   0,  92,   8, 
+      0,   0,  75,   0,   0, 128, 
+     92,   8,   0,   0,  75,   0, 
+      0,   0, 112,   8,   0,   0, 
+     75,   0,   0, 128, 112,   8, 
+      0,   0,  75,   0,   0,   0, 
+    132,   8,   0,   0,  75,   0, 
+      0, 128, 132,   8,   0,   0, 
+     75,   0,   0,   0, 152,   8, 
+      0,   0,  75,   0,   0, 128, 
+    152,   8,   0,   0,  75,   0, 
+      0,   0,   2,   0,  86,   0, 
+     56,   0,  83,   0,   2,   0, 
+     86,   0,  28,   0,  84,   0, 
       2,   0,  86,   0,  28,   0, 
      84,   0,   2,   0,  86,   0, 
      28,   0,  84,   0,   2,   0, 
-     86,   0,  28,   0,  84,   0, 
+     86,   0,  18,   0,  85,   0, 
       2,   0,  86,   0,  18,   0, 
      85,   0,   2,   0,  86,   0, 
      18,   0,  85,   0,   2,   0, 
-     86,   0,  18,   0,  85,   0, 
-      2,   0,  25,   0,   2,   0, 
-     24,   0,   2,   0,  24,   0, 
-      2,   0,  23,   0,   2,   0, 
-     69,   0,  40,   0,  67,   0, 
+     25,   0,   2,   0,  24,   0, 
+      2,   0,  24,   0,   2,   0, 
+     23,   0,   2,   0,  69,   0, 
+     40,   0,  67,   0,   2,   0, 
+     69,   0,  20,   0,  68,   0, 
       2,   0,  69,   0,  20,   0, 
      68,   0,   2,   0,  69,   0, 
      20,   0,  68,   0,   2,   0, 
      69,   0,  20,   0,  68,   0, 
       2,   0,  69,   0,  20,   0, 
-     68,   0,   2,   0,  69,   0, 
-     20,   0,  68,   0,   2,   0, 
+     68,   0,   2,   0,  46,   0, 
+     20,   0,  45,   0,   2,   0, 
      46,   0,  20,   0,  45,   0, 
       2,   0,  46,   0,  20,   0, 
      45,   0,   2,   0,  46,   0, 
      20,   0,  45,   0,   2,   0, 
-     46,   0,  20,   0,  45,   0, 
+     52,   0,  20,   0,  51,   0, 
       2,   0,  52,   0,  20,   0, 
      51,   0,   2,   0,  52,   0, 
      20,   0,  51,   0,   2,   0, 
      52,   0,  20,   0,  51,   0, 
-      2,   0,  52,   0,  20,   0, 
-     51,   0,   2,   0,  46,   0, 
-      2,   0,  45,   0,   2,   0, 
-     28,   0,   6,   0,  27,   0, 
-      2,   0,  28,   0,   6,   0, 
-     27,   0,   2,   0,  28,   0, 
-      2,   0,  28,   0,   2,   0, 
+      2,   0,  46,   0,   2,   0, 
+     45,   0,   2,   0,  28,   0, 
+      6,   0,  27,   0,   2,   0, 
      28,   0,   2,   0,  28,   0, 
-      3,   0,  41,   0,   3,   0, 
-     40,   0,   3,   0,  23,   0, 
+      2,   0,  28,   0,   2,   0, 
+     28,   0,   3,   0,  89,   0, 
+     53,   0,  64,   0,   3,   0, 
+     89,   0,  53,   0,  64,   0, 
+      3,   0,  89,   0,  38,   0, 
+     49,   0,   3,   0,  89,   0, 
+     38,   0,  49,   0,   3,   0, 
+     89,   0,  22,   0,  65,   0, 
+      3,   0,  89,   0,  22,   0, 
+     65,   0,   3,   0,  89,   0, 
+     22,   0,  65,   0,   3,   0, 
+     89,   0,  22,   0,  71,   0, 
+      3,   0,  89,   0,  22,   0, 
+     71,   0,   3,   0,  89,   0, 
+     21,   0,  79,   0,   3,   0, 
+     89,   0,  20,   0,  88,   0, 
+      3,   0,  89,   0,  20,   0, 
+     88,   0,   3,   0,  89,   0, 
+     53,   0,  64,   0,   3,   0, 
+     89,   0,  53,   0,  64,   0, 
+      3,   0,  89,   0,  38,   0, 
+     49,   0,   3,   0,  89,   0, 
+     38,   0,  49,   0,   3,   0, 
+     89,   0,  22,   0,  65,   0, 
+      3,   0,  89,   0,  22,   0, 
+     65,   0,   3,   0,  89,   0, 
+     22,   0,  65,   0,   3,   0, 
+     89,   0,  22,   0,  71,   0, 
+      3,   0,  89,   0,  22,   0, 
+     71,   0,   3,   0,  89,   0, 
+     21,   0,  79,   0,   3,   0, 
+     89,   0,  20,   0,  88,   0, 
+      3,   0,  89,   0,  20,   0, 
+     88,   0,   3,   0,  88,   0, 
+     53,   0,  64,   0,   3,   0, 
+     88,   0,  53,   0,  64,   0, 
+      3,   0,  88,   0,  38,   0, 
+     49,   0,   3,   0,  88,   0, 
+     38,   0,  49,   0,   3,   0, 
+     88,   0,  22,   0,  65,   0, 
+      3,   0,  88,   0,  22,   0, 
+     65,   0,   3,   0,  88,   0, 
+     22,   0,  65,   0,   3,   0, 
+     88,   0,  22,   0,  70,   0, 
+      3,   0,  88,   0,  22,   0, 
+     70,   0,   3,   0,  88,   0, 
+     21,   0,  78,   0,   3,   0, 
+     88,   0,  20,   0,  87,   0, 
+      3,   0,  88,   0,  20,   0, 
+     87,   0,   3,   0,  23,   0, 
       3,   0,  22,   0,   2,   0, 
       2,   0,   2,   0,   2,   0, 
       2,   0,  15,   0,   2,   0, 
@@ -2334,75 +2678,24 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   2,  10,   0,  24,  21, 
-     11,  16,   0,   0,   1,   0, 
-      0,   2,  10,   0,  24,  21, 
-    116,   0,   0,   0,   1,   0, 
-      1,   0,  10,   0,  24,  21, 
-     15,  16,   0,   0,   1,   0, 
-      0,   2,  10,   0,  24,  21, 
-      0,  16,   0,   0,   1,   0, 
-      1,   0,  18,   0,  22,  21, 
-     17,  16,   0,   0,  34,   0, 
-      0,   0,  16,   0,   0,   0, 
-    128,   1,   0, 241,  10,   0, 
-     24,  21,  18,  16,   0,   0, 
-      1,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+      1,   0,   0,   2,  10,   0, 
+     24,  21,  11,  16,   0,   0, 
+      1,   0,   0,   2,  10,   0, 
+     24,  21, 117,   0,   0,   0, 
+      1,   0,   1,   0,  10,   0, 
+     24,  21,  15,  16,   0,   0, 
+      1,   0,   0,   2,  18,   0, 
+     27,  21, 117,   0,   0,   0, 
+      4,   0,   0,   0,  16,   0, 
+    117, 105, 110, 116,  52,   0, 
+     10,   0,  24,  21,  17,  16, 
+      0,   0,   1,   0,   1,   0, 
+     18,   0,  22,  21,  18,  16, 
+      0,   0,  34,   0,   0,   0, 
+     16,   0,   0,   0,  96,   0, 
+      0, 241,  10,   0,  24,  21, 
+     19,  16,   0,   0,   1,   0, 
+      0,   2,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2470,97 +2763,97 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     11, 202,  49,   1,  56,   0, 
-      0,   0,   0,  16,   0,   0, 
-     20,  16,   0,   0,  28,   2, 
-      0,   0,  10,   0, 255, 255, 
-      4,   0,   0,   0, 255, 255, 
-      3,   0,   0,   0,   0,   0, 
-     80,   0,   0,   0,  80,   0, 
-      0,   0,   8,   0,   0,   0, 
-     88,   0,   0,   0,   0,   0, 
-      0,   0,  22,   0,  27,  21, 
-     64,   0,   0,   0,   4,   0, 
-      0,   0,  16,   0, 102, 108, 
-    111,  97, 116,  52,   0, 243, 
-    242, 241,  22,   0,  27,  21, 
-     64,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0, 102, 108, 
-    111,  97, 116,  50,   0, 243, 
-    242, 241,  22,   0,  27,  21, 
-     64,   0,   0,   0,   3,   0, 
-      0,   0,  12,   0, 102, 108, 
-    111,  97, 116,  51,   0, 243, 
-    242, 241,  94,   0,   3,  18, 
-     13,  21,   3,   0,   0,  16, 
-      0,   0,   0,   0, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-      0, 241,  13,  21,   3,   0, 
-      1,  16,   0,   0,  16,   0, 
-    116, 101, 120,   0, 242, 241, 
-     13,  21,   3,   0,   2,  16, 
-      0,   0,  24,   0, 110, 111, 
-    114, 109,  97, 108,   0, 243, 
+      0,   0,  11, 202,  49,   1, 
+     56,   0,   0,   0,   0,  16, 
+      0,   0,  21,  16,   0,   0, 
+     48,   2,   0,   0,  10,   0, 
+    255, 255,   4,   0,   0,   0, 
+    255, 255,   3,   0,   0,   0, 
+      0,   0,  84,   0,   0,   0, 
+     84,   0,   0,   0,   8,   0, 
+      0,   0,  92,   0,   0,   0, 
+      0,   0,   0,   0,  22,   0, 
+     27,  21,  64,   0,   0,   0, 
+      4,   0,   0,   0,  16,   0, 
+    102, 108, 111,  97, 116,  52, 
+      0, 243, 242, 241,  22,   0, 
+     27,  21,  64,   0,   0,   0, 
+      2,   0,   0,   0,   8,   0, 
+    102, 108, 111,  97, 116,  50, 
+      0, 243, 242, 241,  22,   0, 
+     27,  21,  64,   0,   0,   0, 
+      3,   0,   0,   0,  12,   0, 
+    102, 108, 111,  97, 116,  51, 
+      0, 243, 242, 241,  94,   0, 
+      3,  18,  13,  21,   3,   0, 
+      0,  16,   0,   0,   0,   0, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,   0, 241,  13,  21, 
+      3,   0,   1,  16,   0,   0, 
+     16,   0, 116, 101, 120,   0, 
     242, 241,  13,  21,   3,   0, 
-    117,   0,   0,   0,  36,   0, 
-    107, 110, 111,  99, 104, 101, 
-    110,   0, 242, 241,  13,  21, 
+      2,  16,   0,   0,  24,   0, 
+    110, 111, 114, 109,  97, 108, 
+      0, 243, 242, 241,  13,  21, 
       3,   0, 117,   0,   0,   0, 
-     40,   0, 105, 100,   0, 243, 
-    242, 241,  38,   0,   5,  21, 
-      5,   0,   0,   0,   3,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  44,   0, 
-     86, 101, 114, 116, 101, 120, 
-     73, 110, 112, 117, 116,  84, 
-    121, 112, 101,   0, 242, 241, 
-     10,   0,   1,  18,   1,   0, 
-      0,   0,   4,  16,   0,   0, 
-     94,   0,   3,  18,  13,  21, 
-      3,   0,   0,  16,   0,   0, 
-      0,   0, 119, 111, 114, 108, 
-    100,  80, 111, 115,   0, 241, 
+     36,   0, 107, 110, 111,  99, 
+    104, 101, 110,   0, 242, 241, 
+     13,  21,   3,   0, 117,   0, 
+      0,   0,  40,   0, 105, 100, 
+      0, 243, 242, 241,  38,   0, 
+      5,  21,   5,   0,   0,   0, 
+      3,  16,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   0, 
+     44,   0,  86, 101, 114, 116, 
+    101, 120,  73, 110, 112, 117, 
+    116,  84, 121, 112, 101,   0, 
+    242, 241,  10,   0,   1,  18, 
+      1,   0,   0,   0,   4,  16, 
+      0,   0,  94,   0,   3,  18, 
      13,  21,   3,   0,   0,  16, 
-      0,   0,  16,   0, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
+      0,   0,   0,   0, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
       0, 241,  13,  21,   3,   0, 
-      1,  16,   0,   0,  32,   0, 
-    116, 101, 120,   0, 242, 241, 
-     13,  21,   3,   0,   2,  16, 
-      0,   0,  40,   0, 110, 111, 
-    114, 109,  97, 108,   0, 243, 
+      0,  16,   0,   0,  16,   0, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,   0, 241,  13,  21, 
+      3,   0,   1,  16,   0,   0, 
+     32,   0, 116, 101, 120,   0, 
     242, 241,  13,  21,   3,   0, 
-      0,  16,   0,   0,  52,   0, 
-    108, 105, 103, 104, 116,   0, 
-     38,   0,   5,  21,   5,   0, 
-      0,   0,   6,  16,   0,   0, 
+      2,  16,   0,   0,  40,   0, 
+    110, 111, 114, 109,  97, 108, 
+      0, 243, 242, 241,  13,  21, 
+      3,   0,   0,  16,   0,   0, 
+     52,   0, 108, 105, 103, 104, 
+    116,   0,  38,   0,   5,  21, 
+      5,   0,   0,   0,   6,  16, 
+      0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  68,   0, 
+     80, 105, 120, 101, 108,  73, 
+    110, 112, 117, 116,  84, 121, 
+    112, 101,   0, 243, 242, 241, 
+     10,   0,  24,  21,   7,  16, 
+      0,   0,   1,   0,   1,   0, 
+     14,   0,   8,  16,   8,  16, 
+      0,   0,  23,   0,   1,   0, 
+      5,  16,   0,   0,  30,   0, 
+     28,  21,  64,   0,   0,   0, 
+      4,   0,   0,   0,   4,   0, 
+      0,   0,  16,   0,   0,   0, 
+      0,  64,   0, 102, 108, 111, 
+     97, 116,  52, 120,  52,   0, 
+     10,   0,  24,  21,  10,  16, 
+      0,   0,   1,   0,   1,   0, 
+     18,   0,  22,  21,  11,  16, 
+      0,   0,  34,   0,   0,   0, 
+     64,   0,   0,   0,   0,  32, 
+      0, 241,  10,   0,  24,  21, 
+     12,  16,   0,   0,  11, 202, 
+     49,   1,  56,   0,   0,   0, 
+      0,  16,   0,   0,   0,  16, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  68,   0,  80, 105, 
-    120, 101, 108,  73, 110, 112, 
-    117, 116,  84, 121, 112, 101, 
-      0, 243, 242, 241,  10,   0, 
-     24,  21,   7,  16,   0,   0, 
-      1,   0,   1,   0,  14,   0, 
-      8,  16,   8,  16,   0,   0, 
-     23,   0,   1,   0,   5,  16, 
-      0,   0,  30,   0,  28,  21, 
-     64,   0,   0,   0,   4,   0, 
-      0,   0,   4,   0,   0,   0, 
-     16,   0,   0,   0,   0,  64, 
-      0, 102, 108, 111,  97, 116, 
-     52, 120,  52,   0,  10,   0, 
-     24,  21,  10,  16,   0,   0, 
-      1,   0,   1,   0,  18,   0, 
-     22,  21,  11,  16,   0,   0, 
-     34,   0,   0,   0,  64,   0, 
-      0,   0,   0,  32,   0, 241, 
-     10,   0,  24,  21,  12,  16, 
-      0,   0,  11, 202,  49,   1, 
-     56,   0,   0,   0,   0,  16, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,  11,   0, 
-    255, 255,   4,   0,   0,   0, 
-    255, 255,   3,   0,   0,   0, 
+     11,   0, 255, 255,   4,   0, 
+      0,   0, 255, 255,   3,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2640,44 +2933,44 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  75,  78, 
-     79,  67,  72,  69,  78,  95, 
-     73,  68,  48,  59,  13,  10, 
-      9, 117, 105, 110, 116,  32, 
-    105, 100,  32,  58,  32,  86, 
-     69,  82,  84,  69,  88,  95, 
-     73,  68,  48,  59,  13,  10, 
-    125,  59,  13,  10,  13,  10, 
-    115, 116, 114, 117,  99, 116, 
-     32,  80, 105, 120, 101, 108, 
-     73, 110, 112, 117, 116,  84, 
-    121, 112, 101,  13,  10, 123, 
-     13,  10,   9, 102, 108, 111, 
-     97, 116,  52,  32, 119, 111, 
-    114, 108, 100,  80, 111, 115, 
-     32,  58,  32,  80,  79,  83, 
-     73,  84,  73,  79,  78,  59, 
+      0,   0,   0,   0,   0,   0, 
+     78,  79,  67,  72,  69,  78, 
+     95,  73,  68,  48,  59,  13, 
+     10,   9, 117, 105, 110, 116, 
+     32, 105, 100,  32,  58,  32, 
+     86,  69,  82,  84,  69,  88, 
+     95,  73,  68,  48,  59,  13, 
+     10, 125,  59,  13,  10,  13, 
+     10, 115, 116, 114, 117,  99, 
+    116,  32,  80, 105, 120, 101, 
+    108,  73, 110, 112, 117, 116, 
+     84, 121, 112, 101,  13,  10, 
+    123,  13,  10,   9, 102, 108, 
+    111,  97, 116,  52,  32, 119, 
+    111, 114, 108, 100,  80, 111, 
+    115,  32,  58,  32,  80,  79, 
+     83,  73,  84,  73,  79,  78, 
+     59,  13,  10,   9, 102, 108, 
+    111,  97, 116,  52,  32, 112, 
+    111, 115, 105, 116, 105, 111, 
+    110,  32,  58,  32,  83,  86, 
+     95,  80,  79,  83,  73,  84, 
+     73,  79,  78,  59,  13,  10, 
+      9, 102, 108, 111,  97, 116, 
+     50,  32, 116, 101, 120,  32, 
+     58,  32,  84,  69,  88,  67, 
+     79,  79,  82,  68,  48,  59, 
      13,  10,   9, 102, 108, 111, 
-     97, 116,  52,  32, 112, 111, 
-    115, 105, 116, 105, 111, 110, 
-     32,  58,  32,  83,  86,  95, 
-     80,  79,  83,  73,  84,  73, 
-     79,  78,  59,  13,  10,   9, 
-    102, 108, 111,  97, 116,  50, 
-     32, 116, 101, 120,  32,  58, 
+     97, 116,  51,  32, 110, 111, 
+    114, 109,  97, 108,  32,  58, 
      32,  84,  69,  88,  67,  79, 
-     79,  82,  68,  48,  59,  13, 
+     79,  82,  68,  49,  59,  13, 
      10,   9, 102, 108, 111,  97, 
-    116,  51,  32, 110, 111, 114, 
-    109,  97, 108,  32,  58,  32, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,  49,  59,  13,  10, 
-      9, 102, 108, 111,  97, 116, 
-     52,  32, 108, 105, 103, 104, 
-    116,  32,  58,  32,  84,  69, 
-     88,  67,  79,  79,  82,  68, 
-     50,  59,  13,  10, 125,  59, 
-     13,  10,  13,  10,  47,  47, 
+    116,  52,  32, 108, 105, 103, 
+    104, 116,  32,  58,  32,  84, 
+     69,  88,  67,  79,  79,  82, 
+     68,  50,  59,  13,  10, 125, 
+     59,  13,  10,  13,  10,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -2691,10 +2984,10 @@ const BYTE CustomUIDX11VertexShader[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     13,  10,  47,  47,  32,  86, 
-    101, 114, 116, 101, 120,  32, 
-     83, 104,  97, 100, 101, 114, 
-     32,  32,  32,  32,  32,  32, 
+     47,  13,  10,  47,  47,  32, 
+     86, 101, 114, 116, 101, 120, 
+     32,  83, 104,  97, 100, 101, 
+    114,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -2704,8 +2997,8 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  13,  10, 
-     47,  47,  47,  47,  47,  47, 
+     32,  32,  32,  32,  32,  13, 
+     10,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
@@ -2718,20 +3011,20 @@ const BYTE CustomUIDX11VertexShader[] =
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
      47,  47,  47,  47,  47,  47, 
-     47,  47,  13,  10,  80, 105, 
-    120, 101, 108,  73, 110, 112, 
-    117, 116,  84, 121, 112, 101, 
-     32,  84, 101, 120, 116, 117, 
-    114, 101,  86, 101, 114, 116, 
-    101, 120,  83, 104,  97, 100, 
-    101, 114,  40,  86, 101, 114, 
-    116, 101, 120,  73, 110, 112, 
-    117, 116,  84, 121, 112, 101, 
-     32, 105, 110, 112, 117, 116, 
-     41,  13,  10, 123,  13,  10, 
-      9,  47,  47, 114, 101, 116, 
-    117, 114, 110,  32, 105, 110, 
-    112, 117, 116,  59,  32,  32, 
+     47,  47,  47,  13,  10,  80, 
+    105, 120, 101, 108,  73, 110, 
+    112, 117, 116,  84, 121, 112, 
+    101,  32,  84, 101, 120, 116, 
+    117, 114, 101,  86, 101, 114, 
+    116, 101, 120,  83, 104,  97, 
+    100, 101, 114,  40,  86, 101, 
+    114, 116, 101, 120,  73, 110, 
+    112, 117, 116,  84, 121, 112, 
+    101,  32, 105, 110, 112, 117, 
+    116,  41,  13,  10, 123,  13, 
+     10,   9,  47,  47, 114, 101, 
+    116, 117, 114, 110,  32, 105, 
+    110, 112, 117, 116,  59,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
@@ -2743,144 +3036,182 @@ const BYTE CustomUIDX11VertexShader[] =
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
      32,  32,  32,  32,  32,  32, 
-     32,  13,  10,   9,  80, 105, 
-    120, 101, 108,  73, 110, 112, 
-    117, 116,  84, 121, 112, 101, 
-     32, 111, 117, 116, 112, 117, 
-    116,  59,  13,  10,   9, 111, 
-    117, 116, 112, 117, 116,  46, 
+     32,  32,  13,  10,   9,  80, 
+    105, 120, 101, 108,  73, 110, 
+    112, 117, 116,  84, 121, 112, 
+    101,  32, 111, 117, 116, 112, 
+    117, 116,  59,  13,  10,   9, 
+    111, 117, 116, 112, 117, 116, 
+     46, 110, 111, 114, 109,  97, 
+    108,  32,  61,  32, 110, 111, 
+    114, 109,  97, 108, 105, 122, 
+    101,  40, 109, 117, 108,  40, 
+    105, 110, 112, 117, 116,  46, 
     110, 111, 114, 109,  97, 108, 
-     32,  61,  32, 110, 111, 114, 
-    109,  97, 108, 105, 122, 101, 
-     40, 109, 117, 108,  40, 105, 
-    110, 112, 117, 116,  46, 110, 
-    111, 114, 109,  97, 108,  44, 
-     32,  40, 102, 108, 111,  97, 
-    116,  51, 120,  51,  41, 107, 
-    110, 111,  99, 104, 101, 110, 
-     77,  97, 116, 114, 105, 120, 
-     91, 105, 110, 112, 117, 116, 
-     46, 107, 110, 111,  99, 104, 
-    101, 110,  93,  41,  41,  59, 
-     13,  10,  13,  10,   9,  47, 
-     47,  32,  67, 104,  97, 110, 
-    103, 101,  32, 116, 104, 101, 
-     32, 112, 111, 115, 105, 116, 
-    105, 111, 110,  32, 118, 101, 
-     99, 116, 111, 114,  32, 116, 
-    111,  32,  98, 101,  32,  52, 
-     32, 117, 110, 105, 116, 115, 
-     32, 102, 111, 114,  32, 112, 
-    114, 111, 112, 101, 114,  32, 
-    109,  97, 116, 114, 105, 120, 
-     32,  99,  97, 108,  99, 117, 
-    108,  97, 116, 105, 111, 110, 
-    115,  46,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  13, 
-     10,   9, 105, 110, 112, 117, 
-    116,  46, 112, 111, 115, 105, 
-    116, 105, 111, 110,  46, 119, 
-     32,  61,  32,  49,  46,  48, 
-    102,  59,  13,  10,  13,  10, 
-      9,  47,  47,  32,  83, 116, 
-    111, 114, 101,  32, 116, 104, 
-    101,  32, 116, 101, 120, 116, 
-    117, 114, 101,  32,  99, 111, 
-    111, 114, 100, 105, 110,  97, 
-    116, 101, 115,  32, 102, 111, 
-    114,  32, 116, 104, 101,  32, 
-    112, 105, 120, 101, 108,  32, 
-    115, 104,  97, 100, 101, 114, 
-     46,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  32,  32,  32,  32,  32, 
-     32,  13,  10,   9, 111, 117, 
-    116, 112, 117, 116,  46, 116, 
-    101, 120,  32,  61,  32, 105, 
-    110, 112, 117, 116,  46, 116, 
-    101, 120,  59,  13,  10,  13, 
-     10,   9,  47,  47,  32,  67, 
-     97, 108,  99, 117, 108,  97, 
-    116, 101,  32, 116, 104, 101, 
-     32, 112, 111, 115, 105, 116, 
-    105, 111, 110,  32, 111, 102, 
-     32, 116, 104, 101,  32, 118, 
-    101, 114, 116, 101, 120,  32, 
-     97, 103,  97, 105, 110, 115, 
-    116,  32, 116, 104, 101,  32, 
-    119, 111, 114, 108, 100,  44, 
-     32, 118, 105, 101, 119,  44, 
-     32,  97, 110, 100,  32, 112, 
-    114, 111, 106, 101,  99, 116, 
-    105, 111, 110,  32, 109,  97, 
-    116, 114, 105,  99, 101, 115, 
-     46,  32,  13,  10,   9, 111, 
-    117, 116, 112, 117, 116,  46, 
-    119, 111, 114, 108, 100,  80, 
-    111, 115,  32,  61,  32, 109, 
-    117, 108,  40, 105, 110, 112, 
-    117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  44, 
-     32, 107, 110, 111,  99, 104, 
-    101, 110,  77,  97, 116, 114, 
-    105, 120,  91, 105, 110, 112, 
-    117, 116,  46, 107, 110, 111, 
-     99, 104, 101, 110,  93,  41, 
-     59,  13,  10,   9, 111, 117, 
-    116, 112, 117, 116,  46, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32,  61,  32, 109, 117, 
-    108,  40, 111, 117, 116, 112, 
-    117, 116,  46, 119, 111, 114, 
-    108, 100,  80, 111, 115,  44, 
-     32, 118, 105, 101, 119,  41, 
-     59,  13,  10,   9, 111, 117, 
-    116, 112, 117, 116,  46, 112, 
-    111, 115, 105, 116, 105, 111, 
-    110,  32,  61,  32, 109, 117, 
-    108,  40, 111, 117, 116, 112, 
+     44,  32,  40, 102, 108, 111, 
+     97, 116,  51, 120,  51,  41, 
+    107, 110, 111,  99, 104, 101, 
+    110,  77,  97, 116, 114, 105, 
+    120,  91, 105, 110, 112, 117, 
+    116,  46, 107, 110, 111,  99, 
+    104, 101, 110,  93,  41,  41, 
+     59,  13,  10,  13,  10,   9, 
+     47,  47,  32,  67, 104,  97, 
+    110, 103, 101,  32, 116, 104, 
+    101,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32, 118, 
+    101,  99, 116, 111, 114,  32, 
+    116, 111,  32,  98, 101,  32, 
+     52,  32, 117, 110, 105, 116, 
+    115,  32, 102, 111, 114,  32, 
+    112, 114, 111, 112, 101, 114, 
+     32, 109,  97, 116, 114, 105, 
+    120,  32,  99,  97, 108,  99, 
+    117, 108,  97, 116, 105, 111, 
+    110, 115,  46,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     13,  10,   9, 105, 110, 112, 
     117, 116,  46, 112, 111, 115, 
-    105, 116, 105, 111, 110,  44, 
-     32, 112, 114, 111, 106, 101, 
-     99, 116, 105, 111, 110,  41, 
-     59,  13,  10,   9, 111, 117, 
+    105, 116, 105, 111, 110,  46, 
+    119,  32,  61,  32,  49,  46, 
+     48, 102,  59,  13,  10,  13, 
+     10,   9,  47,  47,  32,  83, 
+    116, 111, 114, 101,  32, 116, 
+    104, 101,  32, 116, 101, 120, 
+    116, 117, 114, 101,  32,  99, 
+    111, 111, 114, 100, 105, 110, 
+     97, 116, 101, 115,  32, 102, 
+    111, 114,  32, 116, 104, 101, 
+     32, 112, 105, 120, 101, 108, 
+     32, 115, 104,  97, 100, 101, 
+    114,  46,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  32,  32,  32,  32, 
+     32,  32,  13,  10,   9, 111, 
+    117, 116, 112, 117, 116,  46, 
+    116, 101, 120,  32,  61,  32, 
+    105, 110, 112, 117, 116,  46, 
+    116, 101, 120,  59,  13,  10, 
+     13,  10,   9,  47,  47,  32, 
+     67,  97, 108,  99, 117, 108, 
+     97, 116, 101,  32, 116, 104, 
+    101,  32, 112, 111, 115, 105, 
+    116, 105, 111, 110,  32, 111, 
+    102,  32, 116, 104, 101,  32, 
+    118, 101, 114, 116, 101, 120, 
+     32,  97, 103,  97, 105, 110, 
+    115, 116,  32, 116, 104, 101, 
+     32, 119, 111, 114, 108, 100, 
+     44,  32, 118, 105, 101, 119, 
+     44,  32,  97, 110, 100,  32, 
+    112, 114, 111, 106, 101,  99, 
+    116, 105, 111, 110,  32, 109, 
+     97, 116, 114, 105,  99, 101, 
+    115,  46,  32,  13,  10,   9, 
+    111, 117, 116, 112, 117, 116, 
+     46, 119, 111, 114, 108, 100, 
+     80, 111, 115,  32,  61,  32, 
+    109, 117, 108,  40, 105, 110, 
+    112, 117, 116,  46, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     44,  32, 107, 110, 111,  99, 
+    104, 101, 110,  77,  97, 116, 
+    114, 105, 120,  91, 105, 110, 
+    112, 117, 116,  46, 107, 110, 
+    111,  99, 104, 101, 110,  93, 
+     41,  59,  13,  10,   9, 111, 
+    117, 116, 112, 117, 116,  46, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  32,  61,  32, 109, 
+    117, 108,  40, 111, 117, 116, 
+    112, 117, 116,  46, 119, 111, 
+    114, 108, 100,  80, 111, 115, 
+     44,  32, 118, 105, 101, 119, 
+     41,  59,  13,  10,   9, 111, 
+    117, 116, 112, 117, 116,  46, 
+    112, 111, 115, 105, 116, 105, 
+    111, 110,  32,  61,  32, 109, 
+    117, 108,  40, 111, 117, 116, 
+    112, 117, 116,  46, 112, 111, 
+    115, 105, 116, 105, 111, 110, 
+     44,  32, 112, 114, 111, 106, 
+    101,  99, 116, 105, 111, 110, 
+     41,  59,  13,  10,   9, 111, 
+    117, 116, 112, 117, 116,  46, 
+    108, 105, 103, 104, 116,  32, 
+     61,  32, 102, 108, 111,  97, 
+    116,  52,  40,  49,  46,  48, 
+    102,  44,  32,  49,  46,  48, 
+    102,  44,  32,  49,  46,  48, 
+    102,  44,  32,  48,  46, 102, 
+     41,  59,  13,  10,   9, 105, 
+    102,  32,  40, 105, 110, 112, 
+    117, 116,  46, 105, 100,  32, 
+     60,  32, 108, 105, 103, 104, 
+    116,  76, 101, 110, 103, 116, 
+    104,  41,  13,  10,   9, 123, 
+     13,  10,   9,   9, 111, 117, 
     116, 112, 117, 116,  46, 108, 
-    105, 103, 104, 116,  32,  61, 
-     32, 102, 108, 111,  97, 116, 
-     52,  40,  49,  46,  48, 102, 
-     44,  32,  49,  46,  48, 102, 
-     44,  32,  49,  46,  48, 102, 
-     44,  32,  48,  46, 102,  41, 
-     59,  13,  10,   9, 105, 102, 
-     32,  40, 105, 110, 112, 117, 
-    116,  46, 105, 100,  32,  60, 
-     32, 108, 105, 103, 104, 116, 
-     76, 101, 110, 103, 116, 104, 
-     41,  13,  10,   9, 123,  13, 
-     10,   9,   9, 111, 117, 116, 
-    112, 117, 116,  46, 108, 105, 
-    103, 104, 116,  46, 120, 121, 
-    122,  32,  61,  32, 108, 105, 
+    105, 103, 104, 116,  46, 120, 
+     32,  61,  32,  40,  40,  40, 
+     40, 117, 105, 110, 116,  91, 
+     52,  93,  41, 108, 105, 103, 
+    104, 116,  91, 105, 110, 112, 
+    117, 116,  46, 105, 100,  32, 
+     47,  32,  52,  93,  41,  91, 
+    105, 110, 112, 117, 116,  46, 
+    105, 100,  32,  37,  32,  52, 
+     93,  32,  62,  62,  32,  50, 
+     52,  41,  32,  38,  32,  48, 
+    120,  70,  70,  41,  32,  47, 
+     32,  50,  53,  53,  46, 102, 
+     59,  13,  10,   9,   9, 111, 
+    117, 116, 112, 117, 116,  46, 
+    108, 105, 103, 104, 116,  46, 
+    121,  32,  61,  32,  40,  40, 
+     40,  40, 117, 105, 110, 116, 
+     91,  52,  93,  41, 108, 105, 
     103, 104, 116,  91, 105, 110, 
     112, 117, 116,  46, 105, 100, 
-     93,  46, 120, 121, 122,  59, 
-     13,  10,   9,   9, 111, 117, 
-    116, 112, 117, 116,  46, 108, 
-    105, 103, 104, 116,  46, 119, 
-     32,  61,  32,  49,  46, 102, 
-     59,  13,  10,   9, 125,  13, 
-     10,  13,  10,   9, 114, 101, 
-    116, 117, 114, 110,  32, 111, 
-    117, 116, 112, 117, 116,  59, 
-     13,  10, 125,   0,   7,   0, 
-      0,   0,   0,   0,   0,   0, 
-    131,   0,   0,   0, 132,   0, 
-      0,   0,   6,   1,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
+     32,  47,  32,  52,  93,  41, 
+     91, 105, 110, 112, 117, 116, 
+     46, 105, 100,  32,  37,  32, 
+     52,  93,  32,  62,  62,  32, 
+     49,  54,  41,  32,  38,  32, 
+     48, 120,  70,  70,  41,  32, 
+     47,  32,  50,  53,  53,  46, 
+    102,  59,  13,  10,   9,   9, 
+    111, 117, 116, 112, 117, 116, 
+     46, 108, 105, 103, 104, 116, 
+     46, 122,  32,  61,  32,  40, 
+     40,  40,  40, 117, 105, 110, 
+    116,  91,  52,  93,  41, 108, 
+    105, 103, 104, 116,  91, 105, 
+    110, 112, 117, 116,  46, 105, 
+    100,  32,  47,  32,  52,  93, 
+     41,  91, 105, 110, 112, 117, 
+    116,  46, 105, 100,  32,  37, 
+     32,  52,  93,  32,  62,  62, 
+     32,  56,  41,  32,  38,  32, 
+     48, 120,  70,  70,  41,  32, 
+     47,  32,  50,  53,  53,  46, 
+    102,  59,  13,  10,   9,   9, 
+    111, 117, 116, 112, 117, 116, 
+     46, 108, 105, 103, 104, 116, 
+     46, 119,  32,  61,  32,  49, 
+     46, 102,  59,  13,  10,   9, 
+    125,  13,  10,  13,  10,   9, 
+    114, 101, 116, 117, 114, 110, 
+     32, 111, 117, 116, 112, 117, 
+    116,  59,  13,  10, 125,   0, 
+      7,   0,   0,   0,   0,   0, 
+      0,   0, 131,   0,   0,   0, 
+    132,   0,   0,   0,   6,   1, 
+      0,   0,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
+      0,   0,   4,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2896,14 +3227,9 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  68,  51, 
-     68,  83,  72,  68,  82,   0, 
-    184,   4,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  32,   0, 
-      0,  96,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2949,10 +3275,13 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  68,  51,  68,  83, 
+     72,  68,  82,   0, 156,   8, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  32,   0,   0,  96, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -2982,23 +3311,11 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-    255, 255, 255, 255,  26,   9, 
-     47, 241,  48,   0,   0,   0, 
-     28,   2,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-     73,   0,   0,   0,   1,   0, 
-      0,   0, 133,   0,   0,   0, 
-      1,   0,   0,   0,  37,   0, 
-      0,   0,   1,   0,   0,   0, 
-    101,   0,   0,   0,   1,   0, 
-      0,   0, 165,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3007,11 +3324,6 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 128,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3025,9 +3337,6 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3051,13 +3360,24 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0, 255, 255, 
+    255, 255,  26,   9,  47, 241, 
+     48,   0,   0,   0,  28,   2, 
+      0,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,  73,   0, 
+      0,   0,   1,   0,   0,   0, 
+    133,   0,   0,   0,   1,   0, 
+      0,   0,  37,   0,   0,   0, 
+      1,   0,   0,   0, 101,   0, 
+      0,   0,   1,   0,   0,   0, 
+    165,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   4,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3065,10 +3385,11 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 128, 
+      0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0, 128,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3079,14 +3400,11 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  12,   0,   0,   0, 
-     24,   0,   0,   0,  36,   0, 
-      0,   0,  48,   0,   0,   0, 
-     60,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   4,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3112,6 +3430,7 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   0,   4, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3125,6 +3444,7 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0, 128,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3138,6 +3458,9 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     12,   0,   0,   0,  24,   0, 
+      0,   0,  36,   0,   0,   0, 
+     48,   0,   0,   0,  60,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3152,39 +3475,6 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  34,   0, 
-     37,  17,   0,   0,   0,   0, 
-    140,   0,   0,   0,   1,   0, 
-     84, 101, 120, 116, 117, 114, 
-    101,  86, 101, 114, 116, 101, 
-    120,  83, 104,  97, 100, 101, 
-    114,   0,   0,   0,  34,   0, 
-     81,  17,  13,  16,   0,   0, 
-      8,   0,   0,   0,   0,   0, 
-    255, 255, 255, 255, 255, 255, 
-    107, 110, 111,  99, 104, 101, 
-    110,  77,  97, 116, 114, 105, 
-    120,   0,   0,   0,  26,   0, 
-     81,  17,  14,  16,   0,   0, 
-      8,   0,   1,   0,   0,   0, 
-    255, 255, 255, 255, 255, 255, 
-    118, 105, 101, 119,   0,   0, 
-      0,   0,  30,   0,  81,  17, 
-     14,  16,   0,   0,   8,   0, 
-      1,   0,  64,   0, 255, 255, 
-    255, 255, 255, 255, 112, 114, 
-    111, 106, 101,  99, 116, 105, 
-    111, 110,   0,   0,  30,   0, 
-     81,  17,  16,  16,   0,   0, 
-      8,   0,   2,   0,   0,   0, 
-    255, 255, 255, 255, 255, 255, 
-    108, 105, 103, 104, 116,  76, 
-    101, 110, 103, 116, 104,   0, 
-     26,   0,  81,  17,  19,  16, 
-      0,   0,   8,   0,   3,   0, 
-      0,   0, 255, 255, 255, 255, 
-    255, 255, 108, 105, 103, 104, 
-    116,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3238,77 +3528,41 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     16,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  34,   0,  37,  17, 
+      0,   0,   0,   0, 140,   0, 
+      0,   0,   1,   0,  84, 101, 
+    120, 116, 117, 114, 101,  86, 
+    101, 114, 116, 101, 120,  83, 
+    104,  97, 100, 101, 114,   0, 
+      0,   0,  34,   0,  81,  17, 
+     13,  16,   0,   0,   8,   0, 
       0,   0,   0,   0, 255, 255, 
-    255, 255,  26,   9,  47, 241, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255, 107, 110, 
+    111,  99, 104, 101, 110,  77, 
+     97, 116, 114, 105, 120,   0, 
+      0,   0,  26,   0,  81,  17, 
+     14,  16,   0,   0,   8,   0, 
+      1,   0,   0,   0, 255, 255, 
+    255, 255, 255, 255, 118, 105, 
+    101, 119,   0,   0,   0,   0, 
+     30,   0,  81,  17,  14,  16, 
+      0,   0,   8,   0,   1,   0, 
+     64,   0, 255, 255, 255, 255, 
+    255, 255, 112, 114, 111, 106, 
+    101,  99, 116, 105, 111, 110, 
+      0,   0,  30,   0,  81,  17, 
+     16,  16,   0,   0,   8,   0, 
+      2,   0,   0,   0, 255, 255, 
+    255, 255, 255, 255, 108, 105, 
+    103, 104, 116,  76, 101, 110, 
+    103, 116, 104,   0,  26,   0, 
+     81,  17,  20,  16,   0,   0, 
+      8,   0,   3,   0,   0,   0, 
+    255, 255, 255, 255, 255, 255, 
+    108, 105, 103, 104, 116,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3323,51 +3577,8 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0, 148,  46,  49,   1, 
-    163,  11, 136,  98,   1,   0, 
-      0,   0, 231,  16,  59, 216, 
-     65, 244,  53,  77, 132, 138, 
-     65, 198, 156, 251,   4, 207, 
-    175,   0,   0,   0,  47,  76, 
-    105, 110, 107,  73, 110, 102, 
-    111,   0,  47, 110,  97, 109, 
-    101, 115,   0,  47, 115, 114, 
-     99,  47, 104, 101,  97, 100, 
-    101, 114,  98, 108, 111,  99, 
-    107,   0,  47, 115, 114,  99, 
-     47, 102, 105, 108, 101, 115, 
-     47,  99,  58,  92, 117, 115, 
-    101, 114, 115,  92, 107, 111, 
-    108, 106,  97,  92, 100, 101, 
-    115, 107, 116, 111, 112,  92, 
-    107, 111, 108, 106,  97,  45, 
-    115, 116, 114, 111, 104, 109, 
-     45, 103,  97, 109, 101, 115, 
-     92, 115, 112, 105, 101, 108, 
-    101,  32, 112, 108,  97, 116, 
-    102, 111, 114, 109,  92, 115, 
-    116,  97, 110, 100,  97, 108, 
-    111, 119, 110,  92, 107, 108, 
-    105, 101, 110, 116,  92, 102, 
-     97,  99, 116, 111, 114, 121, 
-     99, 114,  97, 102, 116,  92, 
-    102,  97,  99, 116, 111, 114, 
-    121,  99, 114,  97, 102, 116, 
-     92, 100, 120,  49,  49,  99, 
-    117, 115, 116, 111, 109, 118, 
-    101, 114, 116, 101, 120, 115, 
-    104,  97, 100, 101, 114,  46, 
-    104, 108, 115, 108,   0,   4, 
-      0,   0,   0,   6,   0,   0, 
-      0,   1,   0,   0,   0,  30, 
       0,   0,   0,   0,   0,   0, 
-      0,  17,   0,   0,   0,   7, 
-      0,   0,   0,  34,   0,   0, 
-      0,   8,   0,   0,   0,  10, 
-      0,   0,   0,   6,   0,   0, 
-      0,   0,   0,   0,   0,   5, 
       0,   0,   0,   0,   0,   0, 
-      0, 220,  81,  51,   1,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3405,85 +3616,13 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 255, 255, 
-    255, 255, 119,   9,  49,   1, 
-      1,   0,   0,   0,  13,   0, 
-      0, 142,  14,   0,  63,  92, 
-     15,   0,   0,   0,  92,   0, 
-      0,   0,  32,   0,   0,   0, 
-     44,   0,   0,   0, 144,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  22,   0, 
-      0,   0,  25,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 184,   4,   0,   0, 
-     32,   0,   0,  96,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      9,   0,  64,   6,   0,   0, 
-      0,   0,   0,   0, 196,   3, 
-      0,   0,   1,   0, 127, 200, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     84, 101, 120, 116, 117, 114, 
-    101,  86, 101, 114, 116, 101, 
-    120,  83, 104,  97, 100, 101, 
-    114,   0, 110, 111, 110, 101, 
-      0,   0,   0,   0,  45, 186, 
-     46, 241,   1,   0,   0,   0, 
-      0,   0,   0,   0, 184,   4, 
-      0,   0,  32,   0,   0,  96, 
-      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      2,   0,   2,   0,   7,   0, 
-      0,   0,   0,   0,   1,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0, 184,   4,   0,   0, 
-      8,   2,   0,   0,   0,   0, 
       0,   0, 255, 255, 255, 255, 
-      0,   0,   0,   0, 255, 255, 
-    255, 255,   1,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,  67,  58,  92,  85, 
-    115, 101, 114, 115,  92, 107, 
-    111, 108, 106,  97,  92,  68, 
-    101, 115, 107, 116, 111, 112, 
-     92,  75, 111, 108, 106,  97, 
-     45,  83, 116, 114, 111, 104, 
-    109,  45,  71,  97, 109, 101, 
-    115,  92,  83, 112, 105, 101, 
-    108, 101,  32,  80, 108,  97, 
-    116, 102, 111, 114, 109,  92, 
-     83, 116,  97, 110, 100,  97, 
-    108, 111, 119, 110,  92,  75, 
-    108, 105, 101, 110, 116,  92, 
-     70,  97,  99, 116, 111, 114, 
-    121,  67, 114,  97, 102, 116, 
-     92,  70,  97,  99, 116, 111, 
-    114, 121,  67, 114,  97, 102, 
-    116,  92,  68,  88,  49,  49, 
-     67, 117, 115, 116, 111, 109, 
-     86, 101, 114, 116, 101, 120, 
-     83, 104,  97, 100, 101, 114, 
-     46, 104, 108, 115, 108,   0, 
-      0,   0, 254, 239, 254, 239, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 255, 255, 255, 
-    255, 255, 255, 255, 255, 255, 
-    255,  12,   0, 255, 255, 255, 
-    255, 255, 255, 255, 255, 255, 
-    255,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
+     26,   9,  47, 241,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3494,38 +3633,6 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-     16,   0,   0,   0,  32,   0, 
-      0,   0,  11,   1,   0,   0, 
-     84,   2,   0,   0, 167,   1, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0, 160,   9, 
-      0,   0, 128,   0,   0,   0, 
-    105,   8,   0,   0,  32,  10, 
-      0,   0,  88,   0,   0,   0, 
-      0,   0,   0,   0,  40,   0, 
-      0,   0,  92,   2,   0,   0, 
-     44,   0,   0,   0, 192,   0, 
-      0,   0,   3,   0,   0,   0, 
-     32,   0,   0,   0,  22,   0, 
-      0,   0,  21,   0,   0,   0, 
-     33,   0,   0,   0,  23,   0, 
-      0,   0,  13,   0,   0,   0, 
-      6,   0,   0,   0,  24,   0, 
-      0,   0,  25,   0,   0,   0, 
-     26,   0,   0,   0,  14,   0, 
-      0,   0,   8,   0,   0,   0, 
-      9,   0,   0,   0,  10,   0, 
-      0,   0,  11,   0,   0,   0, 
-     12,   0,   0,   0,  15,   0, 
-      0,   0,  16,   0,   0,   0, 
-     17,   0,   0,   0,  18,   0, 
-      0,   0,  19,   0,   0,   0, 
-     20,   0,   0,   0,   7,   0, 
-      0,   0,  27,   0,   0,   0, 
-     28,   0,   0,   0,  29,   0, 
-      0,   0,  31,   0,   0,   0, 
-     30,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3579,47 +3686,6 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
-      0,   0,  34,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3636,6 +3702,51 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+    148,  46,  49,   1, 155, 145, 
+    136,  98,   1,   0,   0,   0, 
+    217, 186, 189, 110, 192,  81, 
+    179,  68, 136, 192, 248,  53, 
+     74,  65, 197, 182, 175,   0, 
+      0,   0,  47,  76, 105, 110, 
+    107,  73, 110, 102, 111,   0, 
+     47, 110,  97, 109, 101, 115, 
+      0,  47, 115, 114,  99,  47, 
+    104, 101,  97, 100, 101, 114, 
+     98, 108, 111,  99, 107,   0, 
+     47, 115, 114,  99,  47, 102, 
+    105, 108, 101, 115,  47,  99, 
+     58,  92, 117, 115, 101, 114, 
+    115,  92, 107, 111, 108, 106, 
+     97,  92, 100, 101, 115, 107, 
+    116, 111, 112,  92, 107, 111, 
+    108, 106,  97,  45, 115, 116, 
+    114, 111, 104, 109,  45, 103, 
+     97, 109, 101, 115,  92, 115, 
+    112, 105, 101, 108, 101,  32, 
+    112, 108,  97, 116, 102, 111, 
+    114, 109,  92, 115, 116,  97, 
+    110, 100,  97, 108, 111, 119, 
+    110,  92, 107, 108, 105, 101, 
+    110, 116,  92, 102,  97,  99, 
+    116, 111, 114, 121,  99, 114, 
+     97, 102, 116,  92, 102,  97, 
+     99, 116, 111, 114, 121,  99, 
+    114,  97, 102, 116,  92, 100, 
+    120,  49,  49,  99, 117, 115, 
+    116, 111, 109, 118, 101, 114, 
+    116, 101, 120, 115, 104,  97, 
+    100, 101, 114,  46, 104, 108, 
+    115, 108,   0,   4,   0,   0, 
+      0,   6,   0,   0,   0,   1, 
+      0,   0,   0,  30,   0,   0, 
+      0,   0,   0,   0,   0,  17, 
+      0,   0,   0,   7,   0,   0, 
+      0,  34,   0,   0,   0,   8, 
+      0,   0,   0,  10,   0,   0, 
+      0,   6,   0,   0,   0,   0, 
+      0,   0,   0,   5,   0,   0, 
+      0,   0,   0,   0,   0, 220, 
+     81,  51,   1,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3676,14 +3787,77 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+    119,   9,  49,   1,   1,   0, 
+      0,   0,  13,   0,   0, 142, 
+     14,   0,  63,  92,  15,   0, 
+      0,   0,  92,   0,   0,   0, 
+     32,   0,   0,   0,  44,   0, 
+      0,   0, 144,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,  22,   0,   0,   0, 
+     25,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   1,   0, 
       0,   0,   0,   0,   0,   0, 
+    156,   8,   0,   0,  32,   0, 
+      0,  96,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   2,   0,   9,   0, 
+     64,   6,   0,   0,   0,   0, 
+      0,   0, 244,   6,   0,   0, 
+      1,   0, 233,  36,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  84, 101, 
+    120, 116, 117, 114, 101,  86, 
+    101, 114, 116, 101, 120,  83, 
+    104,  97, 100, 101, 114,   0, 
+    110, 111, 110, 101,   0,   0, 
+      0,   0,  45, 186,  46, 241, 
+      1,   0,   0,   0,   0,   0, 
+      0,   0, 156,   8,   0,   0, 
+     32,   0,   0,  96,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,   2,   0, 
+      2,   0,   7,   0,   0,   0, 
+      0,   0,   1,   0, 255, 255, 
+    255, 255,   0,   0,   0,   0, 
+    156,   8,   0,   0,   8,   2, 
       0,   0,   0,   0,   0,   0, 
+    255, 255, 255, 255,   0,   0, 
+      0,   0, 255, 255, 255, 255, 
+      1,   0,   1,   0,   0,   0, 
+      1,   0,   0,   0,   0,   0, 
+     67,  58,  92,  85, 115, 101, 
+    114, 115,  92, 107, 111, 108, 
+    106,  97,  92,  68, 101, 115, 
+    107, 116, 111, 112,  92,  75, 
+    111, 108, 106,  97,  45,  83, 
+    116, 114, 111, 104, 109,  45, 
+     71,  97, 109, 101, 115,  92, 
+     83, 112, 105, 101, 108, 101, 
+     32,  80, 108,  97, 116, 102, 
+    111, 114, 109,  92,  83, 116, 
+     97, 110, 100,  97, 108, 111, 
+    119, 110,  92,  75, 108, 105, 
+    101, 110, 116,  92,  70,  97, 
+     99, 116, 111, 114, 121,  67, 
+    114,  97, 102, 116,  92,  70, 
+     97,  99, 116, 111, 114, 121, 
+     67, 114,  97, 102, 116,  92, 
+     68,  88,  49,  49,  67, 117, 
+    115, 116, 111, 109,  86, 101, 
+    114, 116, 101, 120,  83, 104, 
+     97, 100, 101, 114,  46, 104, 
+    108, 115, 108,   0,   0,   0, 
+    254, 239, 254, 239,   1,   0, 
+      0,   0,   1,   0,   0,   0, 
+      0,   1,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0, 255, 255, 255, 255, 255, 
+    255, 255, 255, 255, 255,  12, 
+      0, 255, 255, 255, 255, 255, 
+    255, 255, 255, 255, 255,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3698,6 +3872,39 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+      0,   0,   0,   0,  16,   0, 
+      0,   0,  32,   0,   0,   0, 
+     11,   1,   0,   0, 104,   2, 
+      0,   0, 167,   1,   0,   0, 
+     56,   0,   0,   0,   0,   0, 
+      0,   0, 132,  10,   0,   0, 
+    128,   0,   0,   0,  77,   9, 
+      0,   0,  80,  13,   0,   0, 
+     92,   0,   0,   0,   0,   0, 
+      0,   0,  40,   0,   0,   0, 
+     92,   2,   0,   0,  44,   0, 
+      0,   0, 192,   0,   0,   0, 
+      3,   0,   0,   0,  34,   0, 
+      0,   0,  23,   0,   0,   0, 
+     22,   0,   0,   0,  35,   0, 
+      0,   0,  24,   0,   0,   0, 
+     13,   0,   0,   0,   6,   0, 
+      0,   0,  25,   0,   0,   0, 
+     26,   0,   0,   0,  27,   0, 
+      0,   0,  28,   0,   0,   0, 
+     14,   0,   0,   0,   8,   0, 
+      0,   0,   9,   0,   0,   0, 
+     10,   0,   0,   0,  11,   0, 
+      0,   0,  12,   0,   0,   0, 
+     15,   0,   0,   0,  16,   0, 
+      0,   0,  17,   0,   0,   0, 
+     18,   0,   0,   0,  19,   0, 
+      0,   0,  20,   0,   0,   0, 
+     21,   0,   0,   0,   7,   0, 
+      0,   0,  29,   0,   0,   0, 
+     30,   0,   0,   0,  31,   0, 
+      0,   0,  33,   0,   0,   0, 
+     32,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
@@ -3751,6 +3958,7 @@ const BYTE CustomUIDX11VertexShader[] =
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
+     36,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 
       0,   0,   0,   0,   0,   0, 

+ 12 - 12
FactoryCraft/DX11CustomPixelShader.hlsl

@@ -69,6 +69,18 @@ float4 TexturePixelShader(PixelInputType input) : SV_TARGET
 	float3 diffuseLight = float3(0, 0, 0);
 	float3 specularLight = float3(0, 0, 0);
 	float4 materialColor = shaderTexture.Sample(SampleType, input.tex);
+	if (effectEnabled)
+	{
+		float dist = sqrt((input.tex.x - 0.5f) * (input.tex.x - 0.5f) + (input.tex.y - 0.5f) * (input.tex.y - 0.5f)) / sqrt(0.5f);
+		if (dist < effectPercentage)
+		{
+			float alphaMultiplier = (effectPercentage - dist) / 0.2f;
+			if (alphaMultiplier > 1)
+				alphaMultiplier = 1.f;
+			float4 effectColor = additionalTexture.Sample(SampleType, input.tex);
+			materialColor = effectColor * (effectColor.a * alphaMultiplier) + materialColor * (1 - effectColor.a * alphaMultiplier);
+		}
+	}
 	if (input.light.w > 0)
 	{
 		diffuseLight = float3(materialColor.x * input.light.x, materialColor.y * input.light.y, materialColor.z * input.light.z);
@@ -101,18 +113,6 @@ float4 TexturePixelShader(PixelInputType input) : SV_TARGET
 	}
 	//if (!(diffuseLight.x >= 0 && diffuseLight.x <= 1))
 	//	diffuseLight.x = 0;
-	if (effectEnabled)
-	{
-		float dist = sqrt((input.tex.x - 0.5f) * (input.tex.x - 0.5f) + (input.tex.y - 0.5f) * (input.tex.y - 0.5f)) / sqrt(0.5f);
-		if (dist < effectPercentage)
-		{
-			float alphaMultiplier = (effectPercentage - dist) / 0.2f;
-			if (alphaMultiplier > 1)
-				alphaMultiplier = 1.f;
-			float4 effectColor = additionalTexture.Sample(SampleType, input.tex);
-			materialColor = effectColor * (effectColor.a * alphaMultiplier) + materialColor * (1 - effectColor.a * alphaMultiplier);
-		}
-	}
 	float4 textureColor = saturate((materialColor * ambientFactor) + (float4(diffuseLight.x, diffuseLight.y, diffuseLight.z, 0) * diffusFactor) + (float4(specularLight.x, specularLight.y, specularLight.z, 0) * specularFactor));
 	textureColor.a = materialColor.a;
 	if (isnan(diffuseLight.x * diffusFactor))

+ 5 - 3
FactoryCraft/DX11CustomVertexShader.hlsl

@@ -15,12 +15,12 @@ cbuffer Kamera : register(b1)
 
 cbuffer LightController : register(b2)
 {
-	int lightLength;
+	uint lightLength;
 }
 
 cbuffer Light : register(b3)
 {
-	float4 light[24];
+	uint4 light[6];
 }
 
 //////////////                                                                          
@@ -66,7 +66,9 @@ PixelInputType TextureVertexShader(VertexInputType input)
 	output.light = float4(1.0f, 1.0f, 1.0f, 0.f);
 	if (input.id < lightLength)
 	{
-		output.light.xyz = light[input.id].xyz;
+		output.light.x = ((((uint[4])light[input.id / 4])[input.id % 4] >> 24) & 0xFF) / 255.f;
+		output.light.y = ((((uint[4])light[input.id / 4])[input.id % 4] >> 16) & 0xFF) / 255.f;
+		output.light.z = ((((uint[4])light[input.id / 4])[input.id % 4] >> 8) & 0xFF) / 255.f;
 		output.light.w = 1.f;
 	}
 

+ 4 - 1
FactoryCraft/Entity.cpp

@@ -383,8 +383,11 @@ bool Entity::tick(double time)
 		}
 		pos += frameSpeed;
 		currentGame->zKamera()->setPosition(pos + Vec3<float>(0.f, 0.f, 1.5f));
-		Block* b = dynamic_cast<Block*>(currentGame->zCurrentTarget());
+		Model3D* target = currentGame->getCurrentTarget();
+		Block* b = target ? dynamic_cast<Block*>(target) : 0;
 		((Game*)(Menu*)menuRegister->get("game"))->updatePosition(pos, b != 0, b ? b->getLocation() : Vec3<int>(0, 0, 0));
+		if(target)
+			target->release();
 		if (flags != lastFlags || direction != lastDirection || timeSinceSync >= 1 || hasCollided)
 		{
 			if (timeSinceSync > 0)

+ 3 - 3
FactoryCraft/Load.cpp

@@ -15,9 +15,9 @@
 void createDefaultCube(Bildschirm* zScreen)
 {
 	Model3DData* data = zScreen->zGraphicsApi()->createModel("cube");
-	data->setAmbientFactor(0.1f);
-	data->setDiffusFactor(0.8f);
-	data->setSpecularFactor(0.1f);
+	data->setAmbientFactor(0.f);
+	data->setDiffusFactor(1.f);
+	data->setSpecularFactor(0.f);
 	float size = 1;
 	float left, right, top, bottom;
 	// Calculate the screen coordinates of the left side of the bitmap.

+ 6 - 2
FactoryCraft/World.cpp

@@ -273,6 +273,7 @@ void World::setTarget(Framework::Model3D* zTarget)
 {
 	if (zTarget != currentTarget)
 	{
+		targetLock.lock();
 		if (currentTarget)
 		{
 			currentTarget->setAmbientFactor(currentTarget->getAmbientFactor() - 0.2f);
@@ -285,6 +286,7 @@ void World::setTarget(Framework::Model3D* zTarget)
 			if (currentTarget)
 				currentTarget->setAmbientFactor(currentTarget->getAmbientFactor() + 0.2f);
 		}
+		targetLock.unlock();
 	}
 }
 
@@ -314,7 +316,9 @@ void World::onChunkAdded(Punkt pos)
 	subLock.unlock();
 }
 
-Framework::Model3D* World::zCurrentTarget() const
+Framework::Model3D* World::getCurrentTarget() const
 {
-	return currentTarget;
+	while (targetLock.isLocked())
+		Sleep(1);
+	return currentTarget ? dynamic_cast<Framework::Model3D * >(currentTarget->getThis()) : 0;
 }

+ 2 - 1
FactoryCraft/World.h

@@ -20,6 +20,7 @@ private:
 	Framework::Model3D* currentTarget;
 	Array<Punkt> subscriptions;
 	Critical subLock;
+	Critical targetLock;
 
 public:
 	World(Framework::Bildschirm3D* zScreen);
@@ -44,5 +45,5 @@ public:
 	void lockWorld();
 	void unlockWorld();
 	void onChunkAdded(Punkt pos);
-	Framework::Model3D* zCurrentTarget() const;
+	Framework::Model3D* getCurrentTarget() const;
 };