varying highp vec3 xlv_TEXCOORD1;
varying highp vec4 xlv_TEXCOORD0;
uniform highp vec4 unity_LightmapFade;
uniform highp vec4 _ZBufferParams;
uniform highp vec3 _WorldSpaceCameraPos;
uniform samplerCube _ShadowMapTexture;
uniform highp vec4 _ProjectionParams;
uniform sampler2D _LightTextureB0;
uniform samplerCube _LightTexture0;
uniform highp vec4 _LightShadowData;
uniform highp vec4 _LightPositionRange;
uniform highp vec4 _LightPos;
uniform highp mat4 _LightMatrix0;
uniform highp vec4 _LightColor;
uniform highp mat4 _CameraToWorld;
uniform sampler2D _CameraNormalsTexture;
uniform sampler2D _CameraDepthTexture;
void main ()
{
  mediump vec4 res_1;
  highp float spec_2;
  mediump vec3 h_3;
  highp float atten_4;
  mediump vec3 lightDir_5;
  highp float depth_6;
  mediump vec3 normal_7;
  mediump vec4 nspec_8;
  highp vec2 tmpvar_9;
  tmpvar_9 = (xlv_TEXCOORD0.xy / xlv_TEXCOORD0.w);
  lowp vec4 tmpvar_10;
  tmpvar_10 = texture2D (_CameraNormalsTexture, tmpvar_9);
  nspec_8 = tmpvar_10;
  normal_7 = normalize(((nspec_8.xyz * 2.0) - 1.0));
  lowp float tmpvar_11;
  tmpvar_11 = texture2D (_CameraDepthTexture, tmpvar_9).x;
  depth_6 = tmpvar_11;
  highp float tmpvar_12;
  tmpvar_12 = (1.0/(((_ZBufferParams.x * depth_6) + _ZBufferParams.y)));
  depth_6 = tmpvar_12;
  highp vec4 tmpvar_13;
  tmpvar_13.w = 1.0;
  tmpvar_13.xyz = ((xlv_TEXCOORD1 * (_ProjectionParams.z / xlv_TEXCOORD1.z)) * tmpvar_12);
  highp vec3 tmpvar_14;
  tmpvar_14 = (_CameraToWorld * tmpvar_13).xyz;
  highp vec3 tmpvar_15;
  tmpvar_15 = (tmpvar_14 - _LightPos.xyz);
  highp vec3 tmpvar_16;
  tmpvar_16 = -(normalize(tmpvar_15));
  lightDir_5 = tmpvar_16;
  highp vec2 tmpvar_17;
  tmpvar_17 = vec2((dot (tmpvar_15, tmpvar_15) * _LightPos.w));
  lowp float tmpvar_18;
  tmpvar_18 = texture2D (_LightTextureB0, tmpvar_17).w;
  atten_4 = tmpvar_18;
  highp float tmpvar_19;
  tmpvar_19 = ((sqrt(dot (tmpvar_15, tmpvar_15)) * _LightPositionRange.w) * 0.97);
  mediump vec4 shadows_20;
  highp vec4 shadowVals_21;
  highp vec3 vec_22;
  vec_22 = (tmpvar_15 + vec3(0.0078125, 0.0078125, 0.0078125));
  highp vec4 packDist_23;
  lowp vec4 tmpvar_24;
  tmpvar_24 = textureCube (_ShadowMapTexture, vec_22);
  packDist_23 = tmpvar_24;
  shadowVals_21.x = dot (packDist_23, vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  highp vec3 vec_25;
  vec_25 = (tmpvar_15 + vec3(-0.0078125, -0.0078125, 0.0078125));
  highp vec4 packDist_26;
  lowp vec4 tmpvar_27;
  tmpvar_27 = textureCube (_ShadowMapTexture, vec_25);
  packDist_26 = tmpvar_27;
  shadowVals_21.y = dot (packDist_26, vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  highp vec3 vec_28;
  vec_28 = (tmpvar_15 + vec3(-0.0078125, 0.0078125, -0.0078125));
  highp vec4 packDist_29;
  lowp vec4 tmpvar_30;
  tmpvar_30 = textureCube (_ShadowMapTexture, vec_28);
  packDist_29 = tmpvar_30;
  shadowVals_21.z = dot (packDist_29, vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  highp vec3 vec_31;
  vec_31 = (tmpvar_15 + vec3(0.0078125, -0.0078125, -0.0078125));
  highp vec4 packDist_32;
  lowp vec4 tmpvar_33;
  tmpvar_33 = textureCube (_ShadowMapTexture, vec_31);
  packDist_32 = tmpvar_33;
  shadowVals_21.w = dot (packDist_32, vec4(1.0, 0.00392157, 1.53787e-05, 6.22737e-09));
  bvec4 tmpvar_34;
  tmpvar_34 = lessThan (shadowVals_21, vec4(tmpvar_19));
  highp vec4 tmpvar_35;
  tmpvar_35 = _LightShadowData.xxxx;
  highp float tmpvar_36;
  if (tmpvar_34.x) {
    tmpvar_36 = tmpvar_35.x;
  } else {
    tmpvar_36 = 1.0;
  };
  highp float tmpvar_37;
  if (tmpvar_34.y) {
    tmpvar_37 = tmpvar_35.y;
  } else {
    tmpvar_37 = 1.0;
  };
  highp float tmpvar_38;
  if (tmpvar_34.z) {
    tmpvar_38 = tmpvar_35.z;
  } else {
    tmpvar_38 = 1.0;
  };
  highp float tmpvar_39;
  if (tmpvar_34.w) {
    tmpvar_39 = tmpvar_35.w;
  } else {
    tmpvar_39 = 1.0;
  };
  highp vec4 tmpvar_40;
  tmpvar_40.x = tmpvar_36;
  tmpvar_40.y = tmpvar_37;
  tmpvar_40.z = tmpvar_38;
  tmpvar_40.w = tmpvar_39;
  shadows_20 = tmpvar_40;
  mediump float tmpvar_41;
  tmpvar_41 = dot (shadows_20, vec4(0.25, 0.25, 0.25, 0.25));
  highp vec4 tmpvar_42;
  tmpvar_42.w = 1.0;
  tmpvar_42.xyz = tmpvar_14;
  lowp vec4 tmpvar_43;
  highp vec3 P_44;
  P_44 = (_LightMatrix0 * tmpvar_42).xyz;
  tmpvar_43 = textureCube (_LightTexture0, P_44);
  highp float tmpvar_45;
  tmpvar_45 = ((atten_4 * tmpvar_41) * tmpvar_43.w);
  atten_4 = tmpvar_45;
  mediump float tmpvar_46;
  tmpvar_46 = max (0.0, dot (lightDir_5, normal_7));
  highp vec3 tmpvar_47;
  tmpvar_47 = normalize((lightDir_5 - normalize((tmpvar_14 - _WorldSpaceCameraPos))));
  h_3 = tmpvar_47;
  mediump float tmpvar_48;
  tmpvar_48 = pow (max (0.0, dot (h_3, normal_7)), (nspec_8.w * 128.0));
  spec_2 = tmpvar_48;
  highp float tmpvar_49;
  tmpvar_49 = (spec_2 * clamp (tmpvar_45, 0.0, 1.0));
  spec_2 = tmpvar_49;
  highp vec3 tmpvar_50;
  tmpvar_50 = (_LightColor.xyz * (tmpvar_46 * tmpvar_45));
  res_1.xyz = tmpvar_50;
  mediump vec3 c_51;
  c_51 = _LightColor.xyz;
  mediump float tmpvar_52;
  tmpvar_52 = dot (c_51, vec3(0.22, 0.707, 0.071));
  highp float tmpvar_53;
  tmpvar_53 = (tmpvar_49 * tmpvar_52);
  res_1.w = tmpvar_53;
  highp float tmpvar_54;
  tmpvar_54 = clamp ((1.0 - ((tmpvar_13.z * unity_LightmapFade.z) + unity_LightmapFade.w)), 0.0, 1.0);
  mediump vec4 tmpvar_55;
  tmpvar_55 = (res_1 * tmpvar_54);
  res_1 = tmpvar_55;
  gl_FragData[0] = exp2(-(tmpvar_55));
}

