[[block]]
struct buf0 {
  one : u32;
};

[[group(0), binding(0)]] var<uniform> x_6 : buf0;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var a : u32;
  var b : u32;
  var c : u32;
  var d : u32;
  var e : u32;
  var f : u32;
  let x_41 : u32 = x_6.one;
  a = ((77u + x_41) >> 32u);
  let x_45 : u32 = x_6.one;
  b = ((3243u + x_45) >> 33u);
  let x_49 : u32 = x_6.one;
  c = ((23u + x_49) >> 345u);
  let x_53 : u32 = x_6.one;
  d = ((2395u + x_53) << 32u);
  let x_57 : u32 = x_6.one;
  e = ((290485u + x_57) << 33u);
  let x_61 : u32 = x_6.one;
  f = ((44321u + x_61) << 345u);
  let x_64 : u32 = a;
  if ((x_64 != 1u)) {
    a = 1u;
  }
  let x_68 : u32 = b;
  if ((x_68 != 0u)) {
    b = 0u;
  }
  let x_72 : u32 = c;
  if ((x_72 != 1u)) {
    c = 1u;
  }
  let x_76 : u32 = d;
  if ((x_76 != 0u)) {
    d = 0u;
  }
  let x_80 : u32 = e;
  if ((x_80 != 1u)) {
    e = 1u;
  }
  let x_84 : u32 = f;
  if ((x_84 != 0u)) {
    f = 0u;
  }
  let x_88 : u32 = a;
  let x_90 : u32 = b;
  let x_93 : u32 = c;
  let x_96 : u32 = d;
  let x_99 : u32 = e;
  let x_102 : u32 = f;
  if (((((((x_88 == 1u) && (x_90 == 0u)) && (x_93 == 1u)) && (x_96 == 0u)) && (x_99 == 1u)) && (x_102 == 0u))) {
    x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0);
  } else {
    x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 0.0);
  }
  return;
}

struct main_out {
  [[location(0)]]
  x_GLF_color_1 : vec4<f32>;
};

[[stage(fragment)]]
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}
