2
0
Эх сурвалжийг харах

texturev: Added separate MSDF shader.

Branimir Karadžić 8 жил өмнө
parent
commit
624c050047

BIN
examples/runtime/textures/msdf.png


+ 427 - 0
tools/texturev/fs_texture_msdf.bin.h

@@ -0,0 +1,427 @@
+static const uint8_t fs_texture_msdf_glsl[598] =
+{
+	0x46, 0x53, 0x48, 0x05, 0x01, 0x83, 0xf2, 0xe1, 0x02, 0x00, 0x08, 0x75, 0x5f, 0x70, 0x61, 0x72, // FSH........u_par
+	0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x0a, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, // ams.......s_texC
+	0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x27, 0x02, 0x00, 0x00, 0x76, 0x61, // olor......'...va
+	0x72, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x33, // rying highp vec3
+	0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x75, 0x6e, //  v_texcoord0;.un
+	0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x68, 0x69, 0x67, 0x68, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, // iform highp vec4
+	0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x0a, 0x75, 0x6e, 0x69, 0x66, 0x6f, //  u_params;.unifo
+	0x72, 0x6d, 0x20, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x20, 0x73, 0x5f, 0x74, // rm sampler2D s_t
+	0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x6d, 0x61, // exColor;.void ma
+	0x69, 0x6e, 0x20, 0x28, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x76, // in ().{.  lowp v
+	0x65, 0x63, 0x33, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x3b, 0x0a, 0x20, 0x20, // ec3 tmpvar_1;.  
+	0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x75, // tmpvar_1 = textu
+	0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x20, 0x20, 0x20, 0x20, 0x28, 0x73, 0x5f, 0x74, 0x65, // re2DLod    (s_te
+	0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, // xColor, v_texcoo
+	0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x2c, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, // rd0.xy, u_params
+	0x2e, 0x78, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, 0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, // .x).xyz;.  lowp 
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x3b, 0x0a, // float tmpvar_2;.
+	0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, //   tmpvar_2 = (ma
+	0x78, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, // x (min (tmpvar_1
+	0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x2c, // .x, tmpvar_1.y),
+	0x20, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x28, //  min (.    max (
+	0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_1.x, tmpv
+	0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, // ar_1.y).  , tmpv
+	0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x29, 0x20, 0x2d, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x3b, // ar_1.z)) - 0.5);
+	0x0a, 0x20, 0x20, 0x6c, 0x6f, 0x77, 0x70, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, // .  lowp float tm
+	0x70, 0x76, 0x61, 0x72, 0x5f, 0x33, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // pvar_3;.  tmpvar
+	0x5f, 0x33, 0x20, 0x3d, 0x20, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, 0x74, 0x6d, // _3 = clamp (((tm
+	0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x2f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x28, 0x61, // pvar_2 / .    (a
+	0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x78, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, // bs(dFdx(tmpvar_2
+	0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, 0x28, 0x64, 0x46, 0x64, 0x79, 0x28, 0x74, 0x6d, // )) + abs(dFdy(tm
+	0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, 0x20, 0x2b, 0x20, // pvar_2))).  ) + 
+	0x30, 0x2e, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, 0x30, 0x29, 0x3b, // 0.5), 0.0, 1.0);
+	0x0a, 0x20, 0x20, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x70, 0x20, 0x76, 0x65, 0x63, 0x34, 0x20, // .  mediump vec4 
+	0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, // tmpvar_4;.  tmpv
+	0x61, 0x72, 0x5f, 0x34, 0x20, 0x3d, 0x20, 0x76, 0x65, 0x63, 0x34, 0x28, 0x74, 0x6d, 0x70, 0x76, // ar_4 = vec4(tmpv
+	0x61, 0x72, 0x5f, 0x33, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, // ar_3);.  gl_Frag
+	0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x34, // Color = tmpvar_4
+	0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00,                                                             // ;.}...
+};
+static const uint8_t fs_texture_msdf_spv[5178] =
+{
+	0x46, 0x53, 0x48, 0x05, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x08, 0x75, 0x5f, 0x70, 0x61, 0x72, // FSH........u_par
+	0x61, 0x6d, 0x73, 0x12, 0x01, 0x00, 0x00, 0x01, 0x00, 0x1c, 0x14, 0x00, 0x00, 0x03, 0x02, 0x23, // ams............#
+	0x07, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x08, 0x00, 0x53, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, // .........Sb.....
+	0x00, 0x11, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x06, 0x00, 0x01, 0x00, 0x00, // ................
+	0x00, 0x47, 0x4c, 0x53, 0x4c, 0x2e, 0x73, 0x74, 0x64, 0x2e, 0x34, 0x35, 0x30, 0x00, 0x00, 0x00, // .GLSL.std.450...
+	0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x08, // ................
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, 0x16, 0x00, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00, 0x00, // .........main...
+	0x00, 0x77, 0x0e, 0x00, 0x00, 0x74, 0x14, 0x00, 0x00, 0xd1, 0x0d, 0x00, 0x00, 0x10, 0x00, 0x03, // .w...t..........
+	0x00, 0x1f, 0x16, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, // ................
+	0x00, 0xf4, 0x01, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x1f, 0x16, 0x00, 0x00, 0x6d, 0x61, 0x69, // .............mai
+	0x6e, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x10, 0x00, 0xce, 0x14, 0x00, 0x00, 0x62, 0x67, 0x66, // n............bgf
+	0x78, 0x54, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x4c, 0x6f, 0x64, 0x28, 0x73, 0x74, // xTexture2DLod(st
+	0x72, 0x75, 0x63, 0x74, 0x2d, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // ruct-BgfxSampler
+	0x32, 0x44, 0x2d, 0x70, 0x31, 0x2d, 0x74, 0x32, 0x31, 0x31, 0x3b, 0x76, 0x66, 0x32, 0x3b, 0x66, // 2D-p1-t211;vf2;f
+	0x31, 0x3b, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0x7e, 0x17, 0x00, 0x00, 0x5f, 0x73, 0x61, // 1;.......~..._sa
+	0x6d, 0x70, 0x6c, 0x65, 0x72, 0x2e, 0x6d, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, // mpler.m_sampler.
+	0x00, 0x05, 0x00, 0x07, 0x00, 0xf7, 0x0d, 0x00, 0x00, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, // ........._sample
+	0x72, 0x2e, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, // r.m_texture.....
+	0x00, 0xe7, 0x15, 0x00, 0x00, 0x5f, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x00, 0x00, 0x05, 0x00, 0x04, // ....._coord.....
+	0x00, 0x2e, 0x12, 0x00, 0x00, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x00, 0x00, 0x05, 0x00, 0x07, // ....._level.....
+	0x00, 0xd2, 0x0c, 0x00, 0x00, 0x6d, 0x69, 0x78, 0x28, 0x76, 0x66, 0x34, 0x3b, 0x76, 0x66, 0x34, // .....mix(vf4;vf4
+	0x3b, 0x76, 0x66, 0x34, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0xc6, 0x0e, 0x00, // ;vf4;...........
+	0x00, 0x5f, 0x61, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0xc7, 0x0e, 0x00, 0x00, 0x5f, 0x62, 0x00, // ._a.........._b.
+	0x00, 0x05, 0x00, 0x03, 0x00, 0xd9, 0x0e, 0x00, 0x00, 0x5f, 0x74, 0x00, 0x00, 0x05, 0x00, 0x06, // ........._t.....
+	0x00, 0x35, 0x13, 0x00, 0x00, 0x76, 0x65, 0x63, 0x34, 0x5f, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x28, // .5...vec4_splat(
+	0x66, 0x31, 0x3b, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0xdd, 0x0e, 0x00, 0x00, 0x5f, 0x78, 0x00, // f1;.........._x.
+	0x00, 0x05, 0x00, 0x05, 0x00, 0xee, 0x0b, 0x00, 0x00, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x28, // .........median(
+	0x76, 0x66, 0x33, 0x3b, 0x00, 0x05, 0x00, 0x04, 0x00, 0xd0, 0x0f, 0x00, 0x00, 0x5f, 0x76, 0x61, // vf3;........._va
+	0x6c, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0xcc, 0x0d, 0x00, 0x00, 0x40, 0x6d, 0x61, // l............@ma
+	0x69, 0x6e, 0x28, 0x76, 0x66, 0x34, 0x3b, 0x76, 0x66, 0x33, 0x3b, 0x76, 0x66, 0x34, 0x3b, 0x00, // in(vf4;vf3;vf4;.
+	0x00, 0x05, 0x00, 0x05, 0x00, 0x61, 0x58, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .....aX..v_color
+	0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0xcd, 0x48, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0.........H..v_t
+	0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, 0x00, 0x97, 0x3e, 0x00, // excoord0......>.
+	0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x30, 0x5f, 0x00, // .gl_FragData_0_.
+	0x00, 0x05, 0x00, 0x06, 0x00, 0x61, 0x09, 0x00, 0x00, 0x42, 0x67, 0x66, 0x78, 0x53, 0x61, 0x6d, // .....a...BgfxSam
+	0x70, 0x6c, 0x65, 0x72, 0x32, 0x44, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x61, 0x09, 0x00, // pler2D.......a..
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, // .....m_sampler..
+	0x00, 0x06, 0x00, 0x06, 0x00, 0x61, 0x09, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x6d, 0x5f, 0x74, // .....a.......m_t
+	0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x08, 0x10, 0x00, // exture..........
+	0x00, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x00, 0x05, 0x00, 0x07, // .flattenTemp....
+	0x00, 0xb2, 0x0c, 0x00, 0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, // .....s_texColorS
+	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07, 0x00, 0xee, 0x0e, 0x00, // ampler..........
+	0x00, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x75, // .s_texColorTextu
+	0x72, 0x65, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x14, 0x11, 0x00, 0x00, 0x73, 0x5f, 0x74, // re...........s_t
+	0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x6d, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, // exColor.m_sample
+	0x72, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x08, 0x00, 0x50, 0x13, 0x00, 0x00, 0x73, 0x5f, 0x74, // r........P...s_t
+	0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x6d, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x75, 0x72, // exColor.m_textur
+	0x65, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0xa0, 0x11, 0x00, 0x00, 0x62, 0x67, 0x66, // e............bgf
+	0x78, 0x5f, 0x56, 0x6f, 0x69, 0x64, 0x46, 0x72, 0x61, 0x67, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // x_VoidFrag......
+	0x00, 0xa8, 0x51, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..Q..param......
+	0x00, 0x7a, 0x0b, 0x00, 0x00, 0x62, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x05, 0x00, 0x04, // .z...bgColor....
+	0x00, 0x04, 0x05, 0x00, 0x00, 0x66, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x00, 0x05, 0x00, 0x04, // .....fgColor....
+	0x00, 0xb0, 0x16, 0x00, 0x00, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x00, 0x00, 0x05, 0x00, 0x04, // .....sample.....
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x24, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x00, 0x06, 0x00, 0x06, // .]...$Global....
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x52, // .].......u_viewR
+	0x65, 0x63, 0x74, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, // ect......]......
+	0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x54, 0x65, 0x78, 0x65, 0x6c, 0x00, 0x06, 0x00, 0x05, // .u_viewTexel....
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x00, // .].......u_view.
+	0x00, 0x06, 0x00, 0x06, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, // .....].......u_i
+	0x6e, 0x76, 0x56, 0x69, 0x65, 0x77, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // nvView.......]..
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x00, 0x00, 0x06, 0x00, 0x06, // .....u_proj.....
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x50, 0x72, // .].......u_invPr
+	0x6f, 0x6a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x06, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x06, 0x00, 0x00, // oj.......]......
+	0x00, 0x75, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x00, 0x06, 0x00, 0x07, // .u_viewProj.....
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x69, 0x6e, 0x76, 0x56, 0x69, // .].......u_invVi
+	0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, 0x00, 0x00, 0x00, 0x06, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // ewProj.......]..
+	0x00, 0x08, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x00, 0x06, 0x00, 0x06, // .....u_model....
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, // .].......u_model
+	0x56, 0x69, 0x65, 0x77, 0x00, 0x06, 0x00, 0x07, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x0a, 0x00, 0x00, // View.....]......
+	0x00, 0x75, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x69, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x6a, // .u_modelViewProj
+	0x00, 0x06, 0x00, 0x06, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x61, // .....].......u_a
+	0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x66, 0x34, 0x00, 0x06, 0x00, 0x06, 0x00, 0x5d, 0x0a, 0x00, // lphaRef4.....]..
+	0x00, 0x0c, 0x00, 0x00, 0x00, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x00, 0x00, 0x00, // .....u_params...
+	0x00, 0x05, 0x00, 0x03, 0x00, 0x42, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // .....B..........
+	0x00, 0xdf, 0x4a, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..J..param......
+	0x00, 0xc9, 0x2d, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..-..param......
+	0x00, 0xca, 0x2d, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..-..param......
+	0x00, 0xcb, 0x2d, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..-..param......
+	0x00, 0xbd, 0x0e, 0x00, 0x00, 0x73, 0x69, 0x67, 0x44, 0x69, 0x73, 0x74, 0x00, 0x05, 0x00, 0x04, // .....sigDist....
+	0x00, 0xcc, 0x2d, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..-..param......
+	0x00, 0x69, 0x0e, 0x00, 0x00, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x00, 0x05, 0x00, 0x04, // .i...opacity....
+	0x00, 0xcd, 0x2d, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // ..-..param......
+	0x00, 0x02, 0x2e, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, // .....param......
+	0x00, 0x9c, 0x2b, 0x00, 0x00, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, // ..+..param......
+	0x00, 0xf4, 0x2b, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x30, 0x00, 0x00, 0x00, // ..+..v_color0...
+	0x00, 0x05, 0x00, 0x05, 0x00, 0x77, 0x0e, 0x00, 0x00, 0x76, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, // .....w...v_color
+	0x30, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x03, 0x3c, 0x00, 0x00, 0x76, 0x5f, 0x74, // 0.........<..v_t
+	0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x05, 0x00, 0x74, 0x14, 0x00, // excoord0.....t..
+	0x00, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x00, 0x05, 0x00, 0x06, // .v_texcoord0....
+	0x00, 0xce, 0x1c, 0x00, 0x00, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, // .....gl_FragData
+	0x5f, 0x30, 0x5f, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x85, 0x55, 0x00, 0x00, 0x70, 0x61, 0x72, // _0_.......U..par
+	0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x95, 0x38, 0x00, 0x00, 0x70, 0x61, 0x72, // am........8..par
+	0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x9a, 0x16, 0x00, 0x00, 0x70, 0x61, 0x72, // am...........par
+	0x61, 0x6d, 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0xd1, 0x0d, 0x00, 0x00, 0x67, 0x6c, 0x5f, // am...........gl_
+	0x46, 0x72, 0x61, 0x67, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x30, 0x5f, 0x00, 0x00, 0x47, 0x00, 0x04, // FragData_0_..G..
+	0x00, 0xb2, 0x0c, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, // .....".......G..
+	0x00, 0xb2, 0x0c, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, // .....!.......G..
+	0x00, 0xee, 0x0e, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, // .....".......G..
+	0x00, 0xee, 0x0e, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x04, // .....!.......G..
+	0x00, 0xef, 0x09, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, // [email protected]..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .].......#......
+	0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...].......#..
+	0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, // .....H...]......
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, // .....H...]......
+	0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // .#... ...H...]..
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, // .............H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, // .]...........H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, // .].......#...`..
+	0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // .H...]..........
+	0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, // .....H...]......
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x04, 0x00, 0x00, // .....H...]......
+	0x00, 0x23, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // .#.......H...]..
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, // .............H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, // .]...........H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, // .].......#......
+	0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // .H...]..........
+	0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x06, 0x00, 0x00, // .....H...]......
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x06, 0x00, 0x00, // .....H...]......
+	0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // .#... ...H...]..
+	0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, // .............H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, // .]...........H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, // .].......#...`..
+	0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // .H...]..........
+	0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x08, 0x00, 0x00, // .....H...]......
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x08, 0x00, 0x00, // .....H...]......
+	0x00, 0x23, 0x00, 0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // .#.......H...]..
+	0x00, 0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, // .............H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, // .]...........H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0xa0, 0x09, 0x00, // .].......#......
+	0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, // .H...]..........
+	0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x04, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x0a, 0x00, 0x00, // .....H...]......
+	0x00, 0x04, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x0a, 0x00, 0x00, // .....H...]......
+	0x00, 0x23, 0x00, 0x00, 0x00, 0xe0, 0x09, 0x00, 0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, // .#.......H...]..
+	0x00, 0x0a, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x48, 0x00, 0x05, // .............H..
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x20, 0x0a, 0x00, // .].......#... ..
+	0x00, 0x48, 0x00, 0x05, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x23, 0x00, 0x00, // .H...].......#..
+	0x00, 0x30, 0x0a, 0x00, 0x00, 0x47, 0x00, 0x03, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x02, 0x00, 0x00, // .0...G...]......
+	0x00, 0x47, 0x00, 0x04, 0x00, 0x42, 0x13, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...B..."......
+	0x00, 0x47, 0x00, 0x04, 0x00, 0x77, 0x0e, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G...w..........
+	0x00, 0x47, 0x00, 0x04, 0x00, 0x74, 0x14, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, // .G...t..........
+	0x00, 0x47, 0x00, 0x04, 0x00, 0xd1, 0x0d, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // .G..............
+	0x00, 0x13, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x00, 0x21, 0x00, 0x03, 0x00, 0x02, 0x05, 0x00, // .........!......
+	0x00, 0x08, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x02, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
+	0x00, 0x79, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x16, 0x00, 0x03, // .y..............
+	0x00, 0x0d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x19, 0x00, 0x09, 0x00, 0x96, 0x00, 0x00, // ..... ..........
+	0x00, 0x0d, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ................
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
+	0x00, 0x13, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
+	0x00, 0x13, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
+	0x00, 0x90, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, // ............. ..
+	0x00, 0x8a, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x17, 0x00, 0x04, // ................
+	0x00, 0x1d, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x21, 0x00, 0x07, // .............!..
+	0x00, 0x53, 0x0b, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x79, 0x04, 0x00, 0x00, 0x13, 0x03, 0x00, // .S.......y......
+	0x00, 0x90, 0x02, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, // ......... ......
+	0x00, 0x07, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x21, 0x00, 0x06, 0x00, 0xbb, 0x00, 0x00, // .........!......
+	0x00, 0x1d, 0x00, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x9a, 0x02, 0x00, // ................
+	0x00, 0x21, 0x00, 0x04, 0x00, 0xef, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x8a, 0x02, 0x00, // .!..............
+	0x00, 0x17, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, // ................
+	0x00, 0x20, 0x00, 0x04, 0x00, 0x95, 0x02, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, // . ..............
+	0x00, 0x21, 0x00, 0x04, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x95, 0x02, 0x00, // .!..............
+	0x00, 0x21, 0x00, 0x06, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x9a, 0x02, 0x00, // .!...}..........
+	0x00, 0x95, 0x02, 0x00, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x1e, 0x00, 0x04, 0x00, 0x61, 0x09, 0x00, // .............a..
+	0x00, 0xfc, 0x01, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, // ......... ......
+	0x00, 0x07, 0x00, 0x00, 0x00, 0x61, 0x09, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7a, 0x04, 0x00, // .....a... ...z..
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x7a, 0x04, 0x00, // .........;...z..
+	0x00, 0xb2, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x14, 0x03, 0x00, // ......... ......
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x14, 0x03, 0x00, // .........;......
+	0x00, 0xee, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x7b, 0x04, 0x00, // ......... ...{..
+	0x00, 0x06, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x7b, 0x04, 0x00, // .........;...{..
+	0x00, 0x14, 0x11, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, // ................
+	0x00, 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, // . .......+......
+	0x00, 0x0b, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x15, 0x03, 0x00, // ......... ......
+	0x00, 0x06, 0x00, 0x00, 0x00, 0x96, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x15, 0x03, 0x00, // .........;......
+	0x00, 0x50, 0x13, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, // .P.......+......
+	0x00, 0x0e, 0x0a, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x03, 0x00, 0xfe, 0x01, 0x00, // ................
+	0x00, 0x96, 0x00, 0x00, 0x00, 0x15, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, // ............. ..
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0a, 0x0a, 0x00, // .....+..........
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x0d, 0x0a, 0x00, // .....+..........
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0b, 0x00, 0x00, 0x00, 0x10, 0x0a, 0x00, // .....+..........
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0c, 0x0a, 0x00, // .....+..........
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x07, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x7a, 0x0b, 0x00, // .....,.......z..
+	0x00, 0x0c, 0x0a, 0x00, 0x00, 0x0c, 0x0a, 0x00, 0x00, 0x0c, 0x0a, 0x00, 0x00, 0x0c, 0x0a, 0x00, // ................
+	0x00, 0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, // .+..............
+	0x3f, 0x2c, 0x00, 0x07, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x8a, 0x00, 0x00, // ?,..............
+	0x00, 0x8a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x18, 0x00, 0x04, // ................
+	0x00, 0x65, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, // .e...........+..
+	0x00, 0x0b, 0x00, 0x00, 0x00, 0x6a, 0x0a, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x04, // .....j... ......
+	0x00, 0xef, 0x09, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x6a, 0x0a, 0x00, 0x00, 0x1e, 0x00, 0x0f, // .....e...j......
+	0x00, 0x5d, 0x0a, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, // .]...........e..
+	0x00, 0x65, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, // .e...e...e...e..
+	0x00, 0x65, 0x00, 0x00, 0x00, 0xef, 0x09, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x65, 0x00, 0x00, // .e.......e...e..
+	0x00, 0x1d, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x17, 0x01, 0x00, // ......... ......
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x5d, 0x0a, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x17, 0x01, 0x00, // .....]...;......
+	0x00, 0x42, 0x13, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0c, 0x00, 0x00, // .B.......+......
+	0x00, 0x2f, 0x0a, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x8b, 0x02, 0x00, // ./....... ......
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, // .........+......
+	0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x00, 0x04, 0x00, 0x9b, 0x02, 0x00, // ........? ......
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9b, 0x02, 0x00, // .........;......
+	0x00, 0x77, 0x0e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x96, 0x02, 0x00, // .w....... ......
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x96, 0x02, 0x00, // .........;......
+	0x00, 0x74, 0x14, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00, 0x9c, 0x02, 0x00, // .t....... ......
+	0x00, 0x03, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9c, 0x02, 0x00, // .........;......
+	0x00, 0xd1, 0x0d, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x36, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, // .........6......
+	0x00, 0x1f, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x05, 0x00, 0x00, 0xf8, 0x00, 0x02, // ................
+	0x00, 0x53, 0x61, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x08, 0x10, 0x00, // .Sa..;..........
+	0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x85, 0x55, 0x00, // .....;........U.
+	0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x95, 0x02, 0x00, 0x00, 0x95, 0x38, 0x00, // .....;........8.
+	0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x9a, 0x16, 0x00, // .....;..........
+	0x00, 0x07, 0x00, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x21, 0x43, 0x00, // .....=.......!C.
+	0x00, 0xb2, 0x0c, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, 0x00, 0x02, 0x33, 0x00, // .....=........3.
+	0x00, 0xee, 0x0e, 0x00, 0x00, 0x50, 0x00, 0x05, 0x00, 0x61, 0x09, 0x00, 0x00, 0x5e, 0x20, 0x00, // .....P...a...^ .
+	0x00, 0x21, 0x43, 0x00, 0x00, 0x02, 0x33, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x08, 0x10, 0x00, // .!C...3..>......
+	0x00, 0x5e, 0x20, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x79, 0x04, 0x00, 0x00, 0xf4, 0x56, 0x00, // .^ ..A...y....V.
+	0x00, 0x08, 0x10, 0x00, 0x00, 0x0b, 0x0a, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xfc, 0x01, 0x00, // .........=......
+	0x00, 0x1f, 0x1f, 0x00, 0x00, 0xf4, 0x56, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x14, 0x11, 0x00, // ......V..>......
+	0x00, 0x1f, 0x1f, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x13, 0x03, 0x00, 0x00, 0xee, 0x40, 0x00, // .....A........@.
+	0x00, 0x08, 0x10, 0x00, 0x00, 0x0e, 0x0a, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, // .........=......
+	0x00, 0xd3, 0x1e, 0x00, 0x00, 0xee, 0x40, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x50, 0x13, 0x00, // ......@..>...P..
+	0x00, 0xd3, 0x1e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0xf4, 0x2b, 0x00, // .....=........+.
+	0x00, 0x77, 0x0e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0x3c, 0x00, // .w...=........<.
+	0x00, 0x74, 0x14, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x85, 0x55, 0x00, 0x00, 0xf4, 0x2b, 0x00, // .t...>....U...+.
+	0x00, 0x3e, 0x00, 0x03, 0x00, 0x95, 0x38, 0x00, 0x00, 0x03, 0x3c, 0x00, 0x00, 0x39, 0x00, 0x07, // .>....8...<..9..
+	0x00, 0x08, 0x00, 0x00, 0x00, 0xbd, 0x26, 0x00, 0x00, 0xcc, 0x0d, 0x00, 0x00, 0x85, 0x55, 0x00, // ......&.......U.
+	0x00, 0x95, 0x38, 0x00, 0x00, 0x9a, 0x16, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, // ..8......=......
+	0x00, 0xce, 0x1c, 0x00, 0x00, 0x9a, 0x16, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xd1, 0x0d, 0x00, // .........>......
+	0x00, 0xce, 0x1c, 0x00, 0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00, 0x05, // .........8...6..
+	0x00, 0x1d, 0x00, 0x00, 0x00, 0xce, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x0b, 0x00, // .............S..
+	0x00, 0x37, 0x00, 0x03, 0x00, 0x79, 0x04, 0x00, 0x00, 0x7e, 0x17, 0x00, 0x00, 0x37, 0x00, 0x03, // .7...y...~...7..
+	0x00, 0x13, 0x03, 0x00, 0x00, 0xf7, 0x0d, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x90, 0x02, 0x00, // .........7......
+	0x00, 0xe7, 0x15, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x2e, 0x12, 0x00, // .....7..........
+	0x00, 0xf8, 0x00, 0x02, 0x00, 0xa0, 0x5f, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, // ......_..=......
+	0x00, 0x9c, 0x5c, 0x00, 0x00, 0xf7, 0x0d, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xfc, 0x01, 0x00, // .........=......
+	0x00, 0x21, 0x41, 0x00, 0x00, 0x7e, 0x17, 0x00, 0x00, 0x56, 0x00, 0x05, 0x00, 0xfe, 0x01, 0x00, // .!A..~...V......
+	0x00, 0x60, 0x35, 0x00, 0x00, 0x9c, 0x5c, 0x00, 0x00, 0x21, 0x41, 0x00, 0x00, 0x3d, 0x00, 0x04, // .`5......!A..=..
+	0x00, 0x13, 0x00, 0x00, 0x00, 0x95, 0x22, 0x00, 0x00, 0xe7, 0x15, 0x00, 0x00, 0x3d, 0x00, 0x04, // ......"......=..
+	0x00, 0x0d, 0x00, 0x00, 0x00, 0x05, 0x47, 0x00, 0x00, 0x2e, 0x12, 0x00, 0x00, 0x58, 0x00, 0x07, // ......G......X..
+	0x00, 0x1d, 0x00, 0x00, 0x00, 0x28, 0x3d, 0x00, 0x00, 0x60, 0x35, 0x00, 0x00, 0x95, 0x22, 0x00, // .....(=..`5...".
+	0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x47, 0x00, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x28, 0x3d, 0x00, // ......G......(=.
+	0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0xd2, 0x0c, 0x00, // .8...6..........
+	0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x9a, 0x02, 0x00, // .........7......
+	0x00, 0xc6, 0x0e, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x9a, 0x02, 0x00, 0x00, 0xc7, 0x0e, 0x00, // .....7..........
+	0x00, 0x37, 0x00, 0x03, 0x00, 0x9a, 0x02, 0x00, 0x00, 0xd9, 0x0e, 0x00, 0x00, 0xf8, 0x00, 0x02, // .7..............
+	0x00, 0x6d, 0x51, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x48, 0x1b, 0x00, // .mQ..=.......H..
+	0x00, 0xc6, 0x0e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x5e, 0x40, 0x00, // .....=.......^@.
+	0x00, 0xc7, 0x0e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x65, 0x3f, 0x00, // .....=.......e?.
+	0x00, 0xd9, 0x0e, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x5a, 0x42, 0x00, // .............ZB.
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x48, 0x1b, 0x00, 0x00, 0x5e, 0x40, 0x00, // .........H...^@.
+	0x00, 0x65, 0x3f, 0x00, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x5a, 0x42, 0x00, 0x00, 0x38, 0x00, 0x01, // .e?......ZB..8..
+	0x00, 0x36, 0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x35, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, // .6.......5......
+	0x00, 0xef, 0x00, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x8a, 0x02, 0x00, 0x00, 0xdd, 0x0e, 0x00, // .....7..........
+	0x00, 0xf8, 0x00, 0x02, 0x00, 0xb1, 0x24, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, // ......$..=......
+	0x00, 0x75, 0x56, 0x00, 0x00, 0xdd, 0x0e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, // .uV......=......
+	0x00, 0xba, 0x4d, 0x00, 0x00, 0xdd, 0x0e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, // ..M......=......
+	0x00, 0x5a, 0x38, 0x00, 0x00, 0xdd, 0x0e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, // .Z8......=......
+	0x00, 0x6d, 0x38, 0x00, 0x00, 0xdd, 0x0e, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x1d, 0x00, 0x00, // .m8......P......
+	0x00, 0xd9, 0x20, 0x00, 0x00, 0x75, 0x56, 0x00, 0x00, 0xba, 0x4d, 0x00, 0x00, 0x5a, 0x38, 0x00, // .. ..uV...M..Z8.
+	0x00, 0x6d, 0x38, 0x00, 0x00, 0xfe, 0x00, 0x02, 0x00, 0xd9, 0x20, 0x00, 0x00, 0x38, 0x00, 0x01, // .m8....... ..8..
+	0x00, 0x36, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xee, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, // .6..............
+	0x00, 0xf0, 0x00, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x95, 0x02, 0x00, 0x00, 0xd0, 0x0f, 0x00, // .....7..........
+	0x00, 0xf8, 0x00, 0x02, 0x00, 0x50, 0x3a, 0x00, 0x00, 0x41, 0x00, 0x05, 0x00, 0x8a, 0x02, 0x00, // .....P:..A......
+	0x00, 0x7a, 0x23, 0x00, 0x00, 0xd0, 0x0f, 0x00, 0x00, 0x0a, 0x0a, 0x00, 0x00, 0x3d, 0x00, 0x04, // .z#..........=..
+	0x00, 0x0d, 0x00, 0x00, 0x00, 0x27, 0x30, 0x00, 0x00, 0x7a, 0x23, 0x00, 0x00, 0x41, 0x00, 0x05, // .....'0..z#..A..
+	0x00, 0x8a, 0x02, 0x00, 0x00, 0x0c, 0x3e, 0x00, 0x00, 0xd0, 0x0f, 0x00, 0x00, 0x0d, 0x0a, 0x00, // ......>.........
+	0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x88, 0x5b, 0x00, 0x00, 0x0c, 0x3e, 0x00, // .=........[...>.
+	0x00, 0x0c, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xab, 0x1e, 0x00, 0x00, 0x01, 0x00, 0x00, // ................
+	0x00, 0x25, 0x00, 0x00, 0x00, 0x27, 0x30, 0x00, 0x00, 0x88, 0x5b, 0x00, 0x00, 0x41, 0x00, 0x05, // .%...'0...[..A..
+	0x00, 0x8a, 0x02, 0x00, 0x00, 0x96, 0x2d, 0x00, 0x00, 0xd0, 0x0f, 0x00, 0x00, 0x0a, 0x0a, 0x00, // ......-.........
+	0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x41, 0x33, 0x00, 0x00, 0x96, 0x2d, 0x00, // .=.......A3...-.
+	0x00, 0x41, 0x00, 0x05, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x0f, 0x3e, 0x00, 0x00, 0xd0, 0x0f, 0x00, // .A........>.....
+	0x00, 0x0d, 0x0a, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xd2, 0x47, 0x00, // .....=........G.
+	0x00, 0x0f, 0x3e, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xfa, 0x52, 0x00, // ..>...........R.
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x41, 0x33, 0x00, 0x00, 0xd2, 0x47, 0x00, // .....(...A3...G.
+	0x00, 0x41, 0x00, 0x05, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x90, 0x28, 0x00, 0x00, 0xd0, 0x0f, 0x00, // .A........(.....
+	0x00, 0x10, 0x0a, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x0d, 0x38, 0x00, // .....=........8.
+	0x00, 0x90, 0x28, 0x00, 0x00, 0x0c, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x26, 0x5b, 0x00, // ..(..........&[.
+	0x00, 0x01, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0xfa, 0x52, 0x00, 0x00, 0x0d, 0x38, 0x00, // .....%....R...8.
+	0x00, 0x0c, 0x00, 0x07, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x14, 0x5a, 0x00, 0x00, 0x01, 0x00, 0x00, // ..........Z.....
+	0x00, 0x28, 0x00, 0x00, 0x00, 0xab, 0x1e, 0x00, 0x00, 0x26, 0x5b, 0x00, 0x00, 0xfe, 0x00, 0x02, // .(.......&[.....
+	0x00, 0x14, 0x5a, 0x00, 0x00, 0x38, 0x00, 0x01, 0x00, 0x36, 0x00, 0x05, 0x00, 0x08, 0x00, 0x00, // ..Z..8...6......
+	0x00, 0xcc, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x37, 0x00, 0x03, // .........}...7..
+	0x00, 0x9a, 0x02, 0x00, 0x00, 0x61, 0x58, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x95, 0x02, 0x00, // .....aX..7......
+	0x00, 0xcd, 0x48, 0x00, 0x00, 0x37, 0x00, 0x03, 0x00, 0x9a, 0x02, 0x00, 0x00, 0x97, 0x3e, 0x00, // ..H..7........>.
+	0x00, 0xf8, 0x00, 0x02, 0x00, 0x04, 0x61, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x8a, 0x02, 0x00, // ......a..;......
+	0x00, 0xa8, 0x51, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x79, 0x04, 0x00, // ..Q......;...y..
+	0x00, 0xdf, 0x4a, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x13, 0x03, 0x00, // ..J......;......
+	0x00, 0xc9, 0x2d, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x90, 0x02, 0x00, // ..-......;......
+	0x00, 0xca, 0x2d, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x8a, 0x02, 0x00, // ..-......;......
+	0x00, 0xcb, 0x2d, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x95, 0x02, 0x00, // ..-......;......
+	0x00, 0xcc, 0x2d, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, // ..-......;......
+	0x00, 0xcd, 0x2d, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, // ..-......;......
+	0x00, 0x02, 0x2e, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3b, 0x00, 0x04, 0x00, 0x9a, 0x02, 0x00, // .........;......
+	0x00, 0x9c, 0x2b, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xa8, 0x51, 0x00, // ..+......>....Q.
+	0x00, 0x0c, 0x0a, 0x00, 0x00, 0x39, 0x00, 0x05, 0x00, 0x1d, 0x00, 0x00, 0x00, 0xa0, 0x11, 0x00, // .....9..........
+	0x00, 0x35, 0x13, 0x00, 0x00, 0xa8, 0x51, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0xfc, 0x01, 0x00, // .5....Q..=......
+	0x00, 0x67, 0x4e, 0x00, 0x00, 0x14, 0x11, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xdf, 0x4a, 0x00, // .gN......>....J.
+	0x00, 0x67, 0x4e, 0x00, 0x00, 0x3d, 0x00, 0x04, 0x00, 0x96, 0x00, 0x00, 0x00, 0x8e, 0x20, 0x00, // .gN..=........ .
+	0x00, 0x50, 0x13, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xc9, 0x2d, 0x00, 0x00, 0x8e, 0x20, 0x00, // .P...>....-... .
+	0x00, 0x3d, 0x00, 0x04, 0x00, 0x18, 0x00, 0x00, 0x00, 0xa3, 0x5f, 0x00, 0x00, 0xcd, 0x48, 0x00, // .=........_...H.
+	0x00, 0x4f, 0x00, 0x07, 0x00, 0x13, 0x00, 0x00, 0x00, 0x7c, 0x45, 0x00, 0x00, 0xa3, 0x5f, 0x00, // .O.......|E..._.
+	0x00, 0xa3, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, // .._..........>..
+	0x00, 0xca, 0x2d, 0x00, 0x00, 0x7c, 0x45, 0x00, 0x00, 0x41, 0x00, 0x06, 0x00, 0x8b, 0x02, 0x00, // ..-..|E..A......
+	0x00, 0x8b, 0x3c, 0x00, 0x00, 0x42, 0x13, 0x00, 0x00, 0x2f, 0x0a, 0x00, 0x00, 0x0a, 0x0a, 0x00, // ..<..B.../......
+	0x00, 0x3d, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x60, 0x5e, 0x00, 0x00, 0x8b, 0x3c, 0x00, // .=.......`^...<.
+	0x00, 0x3e, 0x00, 0x03, 0x00, 0xcb, 0x2d, 0x00, 0x00, 0x60, 0x5e, 0x00, 0x00, 0x39, 0x00, 0x08, // .>....-..`^..9..
+	0x00, 0x1d, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x00, 0x00, 0xce, 0x14, 0x00, 0x00, 0xdf, 0x4a, 0x00, // ......J.......J.
+	0x00, 0xc9, 0x2d, 0x00, 0x00, 0xca, 0x2d, 0x00, 0x00, 0xcb, 0x2d, 0x00, 0x00, 0x4f, 0x00, 0x08, // ..-...-...-..O..
+	0x00, 0x18, 0x00, 0x00, 0x00, 0xb0, 0x16, 0x00, 0x00, 0xa9, 0x4a, 0x00, 0x00, 0xa9, 0x4a, 0x00, // ..........J...J.
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x03, // .............>..
+	0x00, 0xcc, 0x2d, 0x00, 0x00, 0xb0, 0x16, 0x00, 0x00, 0x39, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, // ..-......9......
+	0x00, 0xb1, 0x38, 0x00, 0x00, 0xee, 0x0b, 0x00, 0x00, 0xcc, 0x2d, 0x00, 0x00, 0x83, 0x00, 0x05, // ..8.......-.....
+	0x00, 0x0d, 0x00, 0x00, 0x00, 0xbd, 0x0e, 0x00, 0x00, 0xb1, 0x38, 0x00, 0x00, 0xfc, 0x00, 0x00, // ..........8.....
+	0x00, 0xd1, 0x00, 0x04, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xf6, 0x38, 0x00, 0x00, 0xbd, 0x0e, 0x00, // ..........8.....
+	0x00, 0x88, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xfa, 0x4e, 0x00, 0x00, 0xbd, 0x0e, 0x00, // ..........N.....
+	0x00, 0xf6, 0x38, 0x00, 0x00, 0x81, 0x00, 0x05, 0x00, 0x0d, 0x00, 0x00, 0x00, 0xa3, 0x4c, 0x00, // ..8...........L.
+	0x00, 0xfa, 0x4e, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x0d, 0x00, 0x00, // ..N.............
+	0x00, 0x69, 0x0e, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x00, 0x00, 0xa3, 0x4c, 0x00, // .i.......+....L.
+	0x00, 0x0c, 0x0a, 0x00, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x50, 0x00, 0x07, 0x00, 0x1d, 0x00, 0x00, // .........P......
+	0x00, 0x52, 0x62, 0x00, 0x00, 0x69, 0x0e, 0x00, 0x00, 0x69, 0x0e, 0x00, 0x00, 0x69, 0x0e, 0x00, // .Rb..i...i...i..
+	0x00, 0x69, 0x0e, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0xcd, 0x2d, 0x00, 0x00, 0x7a, 0x0b, 0x00, // .i...>....-..z..
+	0x00, 0x3e, 0x00, 0x03, 0x00, 0x02, 0x2e, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00, 0x3e, 0x00, 0x03, // .>...........>..
+	0x00, 0x9c, 0x2b, 0x00, 0x00, 0x52, 0x62, 0x00, 0x00, 0x39, 0x00, 0x07, 0x00, 0x1d, 0x00, 0x00, // ..+..Rb..9......
+	0x00, 0x97, 0x29, 0x00, 0x00, 0xd2, 0x0c, 0x00, 0x00, 0xcd, 0x2d, 0x00, 0x00, 0x02, 0x2e, 0x00, // ..).......-.....
+	0x00, 0x9c, 0x2b, 0x00, 0x00, 0x3e, 0x00, 0x03, 0x00, 0x97, 0x3e, 0x00, 0x00, 0x97, 0x29, 0x00, // ..+..>....>...).
+	0x00, 0xfd, 0x00, 0x01, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00,                                     // .....8....
+};
+static const uint8_t fs_texture_msdf_mtl[890] =
+{
+	0x46, 0x53, 0x48, 0x05, 0x01, 0x83, 0xf2, 0xe1, 0x01, 0x00, 0x08, 0x75, 0x5f, 0x70, 0x61, 0x72, // FSH........u_par
+	0x61, 0x6d, 0x73, 0x02, 0x01, 0x00, 0x00, 0x01, 0x00, 0x5c, 0x03, 0x00, 0x00, 0x75, 0x73, 0x69, // ams..........usi
+	0x6e, 0x67, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x20, 0x6d, 0x65, 0x74, // ng namespace met
+	0x61, 0x6c, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // al;.struct xlatM
+	0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, // tlShaderInput {.
+	0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, //   float3 v_texco
+	0x6f, 0x72, 0x64, 0x30, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, // ord0;.};.struct 
+	0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, // xlatMtlShaderOut
+	0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x67, // put {.  float4 g
+	0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x3b, 0x0a, 0x7d, 0x3b, 0x0a, // l_FragColor;.};.
+	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, // struct xlatMtlSh
+	0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x7b, 0x0a, 0x20, 0x20, // aderUniform {.  
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x20, 0x75, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, // float4 u_params;
+	0x0a, 0x7d, 0x3b, 0x0a, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x78, 0x6c, 0x61, // .};.fragment xla
+	0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, // tMtlShaderOutput
+	0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x28, 0x78, 0x6c, //  xlatMtlMain (xl
+	0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x70, 0x75, 0x74, // atMtlShaderInput
+	0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, 0x20, 0x5b, 0x5b, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, //  _mtl_i [[stage_
+	0x69, 0x6e, 0x5d, 0x5d, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x78, // in]], constant x
+	0x6c, 0x61, 0x74, 0x4d, 0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x66, // latMtlShaderUnif
+	0x6f, 0x72, 0x6d, 0x26, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x20, 0x5b, 0x5b, 0x62, 0x75, // orm& _mtl_u [[bu
+	0x66, 0x66, 0x65, 0x72, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x0a, 0x20, 0x20, 0x2c, 0x20, 0x20, 0x20, // ffer(0)]].  ,   
+	0x74, 0x65, 0x78, 0x74, 0x75, 0x72, 0x65, 0x32, 0x64, 0x3c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3e, // texture2d<float>
+	0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x74, 0x65, //  s_texColor [[te
+	0x78, 0x74, 0x75, 0x72, 0x65, 0x28, 0x30, 0x29, 0x5d, 0x5d, 0x2c, 0x20, 0x73, 0x61, 0x6d, 0x70, // xture(0)]], samp
+	0x6c, 0x65, 0x72, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, // ler _mtlsmp_s_te
+	0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x5b, 0x5b, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x72, // xColor [[sampler
+	0x28, 0x30, 0x29, 0x5d, 0x5d, 0x29, 0x0a, 0x7b, 0x0a, 0x20, 0x20, 0x78, 0x6c, 0x61, 0x74, 0x4d, // (0)]]).{.  xlatM
+	0x74, 0x6c, 0x53, 0x68, 0x61, 0x64, 0x65, 0x72, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x20, 0x5f, // tlShaderOutput _
+	0x6d, 0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x33, 0x20, // mtl_o;.  float3 
+	0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, // tmpvar_1 = 0;.  
+	0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x20, 0x3d, 0x20, 0x73, 0x5f, 0x74, 0x65, 0x78, // tmpvar_1 = s_tex
+	0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2e, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x28, 0x5f, 0x6d, 0x74, // Color.sample(_mt
+	0x6c, 0x73, 0x6d, 0x70, 0x5f, 0x73, 0x5f, 0x74, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x2c, // lsmp_s_texColor,
+	0x20, 0x28, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x32, 0x29, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x69, //  (float2)(_mtl_i
+	0x2e, 0x76, 0x5f, 0x74, 0x65, 0x78, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x30, 0x2e, 0x78, 0x79, 0x29, // .v_texcoord0.xy)
+	0x2c, 0x20, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x28, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x75, 0x2e, 0x75, // , level(_mtl_u.u
+	0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x78, 0x29, 0x29, 0x2e, 0x78, 0x79, 0x7a, 0x3b, // _params.x)).xyz;
+	0x0a, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // .  float tmpvar_
+	0x32, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, // 2 = 0;.  tmpvar_
+	0x32, 0x20, 0x3d, 0x20, 0x28, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x74, // 2 = (max (min (t
+	0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, // mpvar_1.x, tmpva
+	0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x2c, 0x20, 0x6d, 0x69, 0x6e, 0x20, 0x28, 0x0a, 0x20, 0x20, // r_1.y), min (.  
+	0x20, 0x20, 0x6d, 0x61, 0x78, 0x20, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, //   max (tmpvar_1.
+	0x78, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x79, 0x29, 0x0a, 0x20, // x, tmpvar_1.y). 
+	0x20, 0x2c, 0x20, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x31, 0x2e, 0x7a, 0x29, 0x29, 0x20, //  , tmpvar_1.z)) 
+	0x2d, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x5f, 0x6d, 0x74, 0x6c, 0x5f, 0x6f, // - 0.5);.  _mtl_o
+	0x2e, 0x67, 0x6c, 0x5f, 0x46, 0x72, 0x61, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x3d, 0x20, // .gl_FragColor = 
+	0x66, 0x6c, 0x6f, 0x61, 0x74, 0x34, 0x28, 0x63, 0x6c, 0x61, 0x6d, 0x70, 0x20, 0x28, 0x28, 0x28, // float4(clamp (((
+	0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x20, 0x2f, 0x20, 0x0a, 0x20, 0x20, 0x20, 0x20, // tmpvar_2 / .    
+	0x28, 0x61, 0x62, 0x73, 0x28, 0x64, 0x66, 0x64, 0x78, 0x28, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, // (abs(dfdx(tmpvar
+	0x5f, 0x32, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x61, 0x62, 0x73, 0x28, 0x64, 0x66, 0x64, 0x79, 0x28, // _2)) + abs(dfdy(
+	0x2d, 0x74, 0x6d, 0x70, 0x76, 0x61, 0x72, 0x5f, 0x32, 0x29, 0x29, 0x29, 0x0a, 0x20, 0x20, 0x29, // -tmpvar_2))).  )
+	0x20, 0x2b, 0x20, 0x30, 0x2e, 0x35, 0x29, 0x2c, 0x20, 0x30, 0x2e, 0x30, 0x2c, 0x20, 0x31, 0x2e, //  + 0.5), 0.0, 1.
+	0x30, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x5f, 0x6d, // 0));.  return _m
+	0x74, 0x6c, 0x5f, 0x6f, 0x3b, 0x0a, 0x7d, 0x0a, 0x0a, 0x00,                                     // tl_o;.}...
+};

+ 25 - 0
tools/texturev/fs_texture_msdf.sc

@@ -0,0 +1,25 @@
+$input v_texcoord0, v_color0
+
+/*
+ * Copyright 2011-2017 Branimir Karadzic. All rights reserved.
+ * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
+ */
+
+#include "common.sh"
+
+SAMPLER2D(s_texColor, 0);
+
+float median(vec3 _val)
+{
+	return max(min(_val.x, _val.y), min(max(_val.x, _val.y), _val.z) );
+}
+
+void main() {
+	vec4 bgColor = vec4(0.0, 0.0, 0.0, 0.0);
+	vec4 fgColor = vec4(1.0, 1.0, 1.0, 1.0);
+
+	vec3  sample  = texture2DLod(s_texColor, v_texcoord0.xy, u_textureLod).xyz;
+	float sigDist = median(sample) - 0.5;
+	float opacity = clamp(sigDist/fwidth(sigDist) + 0.5, 0.0, 1.0);
+	gl_FragColor  = mix(bgColor, fgColor, opacity);
+}

+ 16 - 1
tools/texturev/texturev.cpp

@@ -43,6 +43,7 @@ namespace stl = tinystl;
 #include "fs_texture_cube.bin.h"
 #include "fs_texture_cube2.bin.h"
 #include "fs_texture_sdf.bin.h"
+#include "fs_texture_msdf.bin.h"
 #include "fs_texture_3d.bin.h"
 
 #define BACKGROUND_VIEW_ID 0
@@ -63,6 +64,7 @@ static const bgfx::EmbeddedShader s_embeddedShaders[] =
 	BGFX_EMBEDDED_SHADER(fs_texture_cube),
 	BGFX_EMBEDDED_SHADER(fs_texture_cube2),
 	BGFX_EMBEDDED_SHADER(fs_texture_sdf),
+	BGFX_EMBEDDED_SHADER(fs_texture_msdf),
 	BGFX_EMBEDDED_SHADER(fs_texture_3d),
 
 	BGFX_EMBEDDED_SHADER_END()
@@ -1198,6 +1200,12 @@ int _main_(int _argc, char** _argv)
 		, true
 		);
 
+	bgfx::ProgramHandle textureMsdfProgram = bgfx::createProgram(
+		  vsTexture
+		, bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_texture_msdf")
+		, true
+		);
+
 	bgfx::ProgramHandle texture3DProgram = bgfx::createProgram(
 		  vsTexture
 		, bgfx::createEmbeddedShader(s_embeddedShaders, type, "fs_texture_3d")
@@ -1842,7 +1850,14 @@ int _main_(int _argc, char** _argv)
 			}
 			else if (view.m_sdf)
 			{
-				program = textureSdfProgram;
+				if (8 < bimg::getBitsPerPixel(bimg::TextureFormat::Enum(view.m_textureInfo.format) ) )
+				{
+					program = textureMsdfProgram;
+				}
+				else
+				{
+					program = textureSdfProgram;
+				}
 			}
 
 			bgfx::submit(IMAGE_VIEW_ID, program);