// GLSL shader autogenerated by cg2glsl.py.
#if defined(VERTEX)

#if __VERSION__ >= 130
#define COMPAT_VARYING out
#define COMPAT_ATTRIBUTE in
#define COMPAT_TEXTURE texture
#else
#define COMPAT_VARYING varying 
#define COMPAT_ATTRIBUTE attribute 
#define COMPAT_TEXTURE texture2D
#endif

#ifdef GL_ES
#define COMPAT_PRECISION mediump
#else
#define COMPAT_PRECISION
#endif
COMPAT_VARYING     vec4 VARt7;
COMPAT_VARYING     vec4 VARt6;
COMPAT_VARYING     vec4 VARt5;
COMPAT_VARYING     vec4 VARt4;
COMPAT_VARYING     vec4 VARt3;
COMPAT_VARYING     vec4 VARt2;
COMPAT_VARYING     vec4 VARt1;
COMPAT_VARYING     vec2 _texCoord1;
COMPAT_VARYING     vec4 _color1;
COMPAT_VARYING     vec4 _position1;
COMPAT_VARYING     float _frame_rotation;
struct input_dummy {
    vec2 _video_size;
    vec2 _texture_size;
    vec2 _output_dummy_size;
    float _frame_count;
    float _frame_direction;
    float _frame_rotation;
};
struct out_vertex {
    vec4 _position1;
    vec4 _color1;
    vec2 _texCoord1;
    vec4 VARt1;
    vec4 VARt2;
    vec4 VARt3;
    vec4 VARt4;
    vec4 VARt5;
    vec4 VARt6;
    vec4 VARt7;
};
out_vertex _ret_0;
input_dummy _IN1;
vec4 _r0008;
COMPAT_ATTRIBUTE vec4 VertexCoord;
COMPAT_ATTRIBUTE vec4 COLOR;
COMPAT_ATTRIBUTE vec4 TexCoord;
COMPAT_VARYING vec4 COL0;
COMPAT_VARYING vec4 TEX0;
 
uniform mat4 MVPMatrix;
uniform int FrameDirection;
uniform int FrameCount;
uniform COMPAT_PRECISION vec2 OutputSize;
uniform COMPAT_PRECISION vec2 TextureSize;
uniform COMPAT_PRECISION vec2 InputSize;
void main()
{
    out_vertex _OUT;
    vec2 _ps;
    _r0008 = VertexCoord.x*MVPMatrix[0];
    _r0008 = _r0008 + VertexCoord.y*MVPMatrix[1];
    _r0008 = _r0008 + VertexCoord.z*MVPMatrix[2];
    _r0008 = _r0008 + VertexCoord.w*MVPMatrix[3];
    _ps = vec2(1.00000000E+00/TextureSize.x, 1.00000000E+00/TextureSize.y);
    _OUT.VARt1 = TexCoord.xxxy + vec4(-_ps.x, 0.00000000E+00, _ps.x, -2.00000000E+00*_ps.y);
    _OUT.VARt2 = TexCoord.xxxy + vec4(-_ps.x, 0.00000000E+00, _ps.x, -_ps.y);
    _OUT.VARt3 = TexCoord.xxxy + vec4(-_ps.x, 0.00000000E+00, _ps.x, 0.00000000E+00);
    _OUT.VARt4 = TexCoord.xxxy + vec4(-_ps.x, 0.00000000E+00, _ps.x, _ps.y);
    _OUT.VARt5 = TexCoord.xxxy + vec4(-_ps.x, 0.00000000E+00, _ps.x, 2.00000000E+00*_ps.y);
    _OUT.VARt6 = TexCoord.xyyy + vec4(-2.00000000E+00*_ps.x, -_ps.y, 0.00000000E+00, _ps.y);
    _OUT.VARt7 = TexCoord.xyyy + vec4(2.00000000E+00*_ps.x, -_ps.y, 0.00000000E+00, _ps.y);
    _ret_0._position1 = _r0008;
    _ret_0._color1 = COLOR;
    _ret_0._texCoord1 = TexCoord.xy;
    VARt1 = _OUT.VARt1;
    VARt2 = _OUT.VARt2;
    VARt3 = _OUT.VARt3;
    VARt4 = _OUT.VARt4;
    VARt5 = _OUT.VARt5;
    VARt6 = _OUT.VARt6;
    VARt7 = _OUT.VARt7;
    gl_Position = _r0008;
    COL0 = COLOR;
    TEX0.xy = TexCoord.xy;
    return;
    COL0 = _ret_0._color1;
    TEX0.xy = _ret_0._texCoord1;
} 
#elif defined(FRAGMENT)

#if __VERSION__ >= 130
#define COMPAT_VARYING in
#define COMPAT_TEXTURE texture
out vec4 FragColor;
#else
#define COMPAT_VARYING varying
#define FragColor gl_FragColor
#define COMPAT_TEXTURE texture2D
#endif

#ifdef GL_ES
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif
#define COMPAT_PRECISION mediump
#else
#define COMPAT_PRECISION
#endif
COMPAT_VARYING     vec4 VARt7;
COMPAT_VARYING     vec4 VARt6;
COMPAT_VARYING     vec4 VARt5;
COMPAT_VARYING     vec4 VARt4;
COMPAT_VARYING     vec4 VARt3;
COMPAT_VARYING     vec4 VARt2;
COMPAT_VARYING     vec4 VARt1;
COMPAT_VARYING     vec2 _texCoord;
COMPAT_VARYING     vec4 _color;
COMPAT_VARYING     float _frame_rotation;
struct input_dummy {
    vec2 _video_size;
    vec2 _texture_size;
    vec2 _output_dummy_size;
    float _frame_count;
    float _frame_direction;
    float _frame_rotation;
};
struct out_vertex {
    vec4 _color;
    vec2 _texCoord;
    vec4 VARt1;
    vec4 VARt2;
    vec4 VARt3;
    vec4 VARt4;
    vec4 VARt5;
    vec4 VARt6;
    vec4 VARt7;
};
vec4 _ret_0;
vec3 _TMP33;
vec4 _TMP22;
vec4 _TMP21;
vec4 _TMP20;
vec4 _TMP19;
vec4 _TMP18;
vec4 _TMP17;
vec4 _TMP16;
vec4 _TMP15;
vec4 _TMP14;
vec4 _TMP13;
vec4 _TMP12;
vec4 _TMP11;
vec4 _TMP10;
vec4 _TMP9;
vec4 _TMP8;
vec4 _TMP7;
vec4 _TMP6;
vec4 _TMP5;
vec4 _TMP4;
vec4 _TMP3;
vec4 _TMP2;
vec4 _TMP1;
vec4 _TMP0;
out_vertex _VAR1;
uniform sampler2D Texture;
vec4 _r0089;
vec4 _r0099;
vec4 _r0109;
vec4 _r0119;
vec4 _r0129;
vec4 _r0139;
vec4 _TMP150;
vec4 _a0153;
vec4 _TMP154;
vec4 _a0157;
vec4 _TMP158;
vec4 _a0161;
vec4 _TMP162;
vec4 _a0165;
vec4 _TMP166;
vec4 _a0169;
vec4 _TMP172;
vec4 _a0175;
vec4 _TMP176;
vec4 _a0179;
vec4 _TMP180;
vec4 _a0183;
vec4 _TMP184;
vec4 _a0187;
vec4 _TMP188;
vec4 _a0191;
vec4 _TMP192;
vec4 _a0195;
vec4 _TMP196;
vec4 _a0199;
vec4 _TMP200;
vec4 _a0203;
vec4 _TMP204;
vec4 _a0207;
vec4 _a0209;
vec4 _a0211;
vec4 _a0213;
vec3 _x0217;
vec3 _TMP218;
 
uniform int FrameDirection;
uniform int FrameCount;
uniform COMPAT_PRECISION vec2 OutputSize;
uniform COMPAT_PRECISION vec2 TextureSize;
uniform COMPAT_PRECISION vec2 InputSize;
void main()
{
    bvec4 _edr;
    bvec4 _edr_left;
    bvec4 _edr_up;
    bvec4 _interp_restriction_lv1;
    bvec4 _interp_restriction_lv2_left;
    bvec4 _interp_restriction_lv2_up;
    vec3 _info;
    _TMP0 = COMPAT_TEXTURE(Texture, VARt1.xw);
    _TMP1 = COMPAT_TEXTURE(Texture, VARt1.yw);
    _TMP2 = COMPAT_TEXTURE(Texture, VARt1.zw);
    _TMP3 = COMPAT_TEXTURE(Texture, VARt2.xw);
    _TMP4 = COMPAT_TEXTURE(Texture, VARt2.yw);
    _TMP5 = COMPAT_TEXTURE(Texture, VARt2.zw);
    _TMP6 = COMPAT_TEXTURE(Texture, VARt3.xw);
    _TMP7 = COMPAT_TEXTURE(Texture, VARt3.yw);
    _TMP8 = COMPAT_TEXTURE(Texture, VARt3.zw);
    _TMP9 = COMPAT_TEXTURE(Texture, VARt4.xw);
    _TMP10 = COMPAT_TEXTURE(Texture, VARt4.yw);
    _TMP11 = COMPAT_TEXTURE(Texture, VARt4.zw);
    _TMP12 = COMPAT_TEXTURE(Texture, VARt5.xw);
    _TMP13 = COMPAT_TEXTURE(Texture, VARt5.yw);
    _TMP14 = COMPAT_TEXTURE(Texture, VARt5.zw);
    _TMP15 = COMPAT_TEXTURE(Texture, VARt6.xy);
    _TMP16 = COMPAT_TEXTURE(Texture, VARt6.xz);
    _TMP17 = COMPAT_TEXTURE(Texture, VARt6.xw);
    _TMP18 = COMPAT_TEXTURE(Texture, VARt7.xy);
    _TMP19 = COMPAT_TEXTURE(Texture, VARt7.xz);
    _TMP20 = COMPAT_TEXTURE(Texture, VARt7.xw);
    _r0089.x = dot(_TMP4.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0089.y = dot(_TMP6.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0089.z = dot(_TMP10.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0089.w = dot(_TMP8.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0099.x = dot(_TMP5.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0099.y = dot(_TMP3.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0099.z = dot(_TMP9.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0099.w = dot(_TMP11.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0109.x = dot(_TMP7.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0109.y = dot(_TMP7.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0109.z = dot(_TMP7.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0109.w = dot(_TMP7.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0119.x = dot(_TMP20.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0119.y = dot(_TMP2.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0119.z = dot(_TMP15.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0119.w = dot(_TMP12.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0129.x = dot(_TMP14.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0129.y = dot(_TMP18.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0129.z = dot(_TMP0.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0129.w = dot(_TMP17.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0139.x = dot(_TMP13.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0139.y = dot(_TMP19.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0139.z = dot(_TMP1.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _r0139.w = dot(_TMP16.xyz, vec3( 1.43519993E+01, 2.81760006E+01, 5.47200012E+00));
    _interp_restriction_lv1 = bvec4(_r0109.x != _r0089.w && _r0109.x != _r0089.z, _r0109.y != _r0089.x && _r0109.y != _r0089.w, _r0109.z != _r0089.y && _r0109.z != _r0089.x, _r0109.w != _r0089.z && _r0109.w != _r0089.y);
    _interp_restriction_lv2_left = bvec4(_r0109.x != _r0099.z && _r0089.y != _r0099.z, _r0109.y != _r0099.w && _r0089.z != _r0099.w, _r0109.z != _r0099.x && _r0089.w != _r0099.x, _r0109.w != _r0099.y && _r0089.x != _r0099.y);
    _interp_restriction_lv2_up = bvec4(_r0109.x != _r0099.x && _r0089.x != _r0099.x, _r0109.y != _r0099.y && _r0089.y != _r0099.y, _r0109.z != _r0099.z && _r0089.z != _r0099.z, _r0109.w != _r0099.w && _r0089.w != _r0099.w);
    _a0153 = _r0109 - _r0099;
    _TMP150 = abs(_a0153);
    _a0157 = _r0109 - _r0099.zwxy;
    _TMP154 = abs(_a0157);
    _a0161 = _r0099.wxyz - _r0139;
    _TMP158 = abs(_a0161);
    _a0165 = _r0099.wxyz - _r0139.yzwx;
    _TMP162 = abs(_a0165);
    _a0169 = _r0089.zwxy - _r0089.wxyz;
    _TMP166 = abs(_a0169);
    _TMP21 = _TMP150 + _TMP154 + _TMP158 + _TMP162 + 4.00000000E+00*_TMP166;
    _a0175 = _r0089.zwxy - _r0089.yzwx;
    _TMP172 = abs(_a0175);
    _a0179 = _r0089.zwxy - _r0129;
    _TMP176 = abs(_a0179);
    _a0183 = _r0089.wxyz - _r0119;
    _TMP180 = abs(_a0183);
    _a0187 = _r0089.wxyz - _r0089;
    _TMP184 = abs(_a0187);
    _a0191 = _r0109 - _r0099.wxyz;
    _TMP188 = abs(_a0191);
    _TMP22 = _TMP172 + _TMP176 + _TMP180 + _TMP184 + 4.00000000E+00*_TMP188;
    _edr = bvec4(_TMP21.x < _TMP22.x && _interp_restriction_lv1.x, _TMP21.y < _TMP22.y && _interp_restriction_lv1.y, _TMP21.z < _TMP22.z && _interp_restriction_lv1.z, _TMP21.w < _TMP22.w && _interp_restriction_lv1.w);
    _a0195 = _r0089.wxyz - _r0099.zwxy;
    _TMP192 = abs(_a0195);
    _a0199 = _r0089.zwxy - _r0099;
    _TMP196 = abs(_a0199);
    _edr_left = bvec4((2.00000000E+00*_TMP192).x <= _TMP196.x && _interp_restriction_lv2_left.x && _edr.x, (2.00000000E+00*_TMP192).y <= _TMP196.y && _interp_restriction_lv2_left.y && _edr.y, (2.00000000E+00*_TMP192).z <= _TMP196.z && _interp_restriction_lv2_left.z && _edr.z, (2.00000000E+00*_TMP192).w <= _TMP196.w && _interp_restriction_lv2_left.w && _edr.w);
    _a0203 = _r0089.wxyz - _r0099.zwxy;
    _TMP200 = abs(_a0203);
    _a0207 = _r0089.zwxy - _r0099;
    _TMP204 = abs(_a0207);
    _edr_up = bvec4(_TMP200.x >= (2.00000000E+00*_TMP204).x && _interp_restriction_lv2_up.x && _edr.x, _TMP200.y >= (2.00000000E+00*_TMP204).y && _interp_restriction_lv2_up.y && _edr.y, _TMP200.z >= (2.00000000E+00*_TMP204).z && _interp_restriction_lv2_up.z && _edr.z, _TMP200.w >= (2.00000000E+00*_TMP204).w && _interp_restriction_lv2_up.w && _edr.w);
    _a0209 = vec4(float(_edr.x), float(_edr.y), float(_edr.z), float(_edr.w));
    _info.x = dot(_a0209, vec4( 8.00000000E+00, 4.00000000E+00, 2.00000000E+00, 1.00000000E+00));
    _a0211 = vec4(float(_edr_left.x), float(_edr_left.y), float(_edr_left.z), float(_edr_left.w));
    _info.y = dot(_a0211, vec4( 8.00000000E+00, 4.00000000E+00, 2.00000000E+00, 1.00000000E+00));
    _a0213 = vec4(float(_edr_up.x), float(_edr_up.y), float(_edr_up.z), float(_edr_up.w));
    _info.z = dot(_a0213, vec4( 8.00000000E+00, 4.00000000E+00, 2.00000000E+00, 1.00000000E+00));
    _x0217 = _info/vec3( 2.55000000E+02, 2.55000000E+02, 2.55000000E+02);
    _TMP33 = min(vec3( 1.00000000E+00, 1.00000000E+00, 1.00000000E+00), _x0217);
    _TMP218 = max(vec3( 0.00000000E+00, 0.00000000E+00, 0.00000000E+00), _TMP33);
    _ret_0 = vec4(_TMP218.x, _TMP218.y, _TMP218.z, 1.00000000E+00);
    FragColor = _ret_0;
    return;
} 
#endif
