struct strided_arr {
  @size(16)
  el : i32,
}

alias Arr = array<strided_arr, 19u>;

struct buf0 {
  x_GLF_uniform_int_values : Arr,
}

@group(0) @binding(0) var<uniform> x_6 : buf0;

var<private> x_GLF_color : vec4<f32>;

fn main_1() {
  var A : array<i32, 17u>;
  var r : array<i32, 17u>;
  var a : i32;
  var i : i32;
  var ok : bool;
  var i_1 : i32;
  let x_52 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_54 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_56 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_58 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_60 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_62 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_64 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_66 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_68 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_70 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_72 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_74 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_76 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_78 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_80 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_82 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_84 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  A = array<i32, 17u>(x_52, x_54, x_56, x_58, x_60, x_62, x_64, x_66, x_68, x_70, x_72, x_74, x_76, x_78, x_80, x_82, x_84);
  let x_87 : i32 = x_6.x_GLF_uniform_int_values[3].el;
  let x_89 : i32 = x_6.x_GLF_uniform_int_values[4].el;
  let x_91 : i32 = x_6.x_GLF_uniform_int_values[5].el;
  let x_93 : i32 = x_6.x_GLF_uniform_int_values[6].el;
  let x_95 : i32 = x_6.x_GLF_uniform_int_values[7].el;
  let x_97 : i32 = x_6.x_GLF_uniform_int_values[8].el;
  let x_99 : i32 = x_6.x_GLF_uniform_int_values[9].el;
  let x_101 : i32 = x_6.x_GLF_uniform_int_values[10].el;
  let x_103 : i32 = x_6.x_GLF_uniform_int_values[11].el;
  let x_105 : i32 = x_6.x_GLF_uniform_int_values[12].el;
  let x_107 : i32 = x_6.x_GLF_uniform_int_values[13].el;
  let x_109 : i32 = x_6.x_GLF_uniform_int_values[14].el;
  let x_111 : i32 = x_6.x_GLF_uniform_int_values[15].el;
  let x_113 : i32 = x_6.x_GLF_uniform_int_values[16].el;
  let x_115 : i32 = x_6.x_GLF_uniform_int_values[17].el;
  let x_117 : i32 = x_6.x_GLF_uniform_int_values[18].el;
  let x_119 : i32 = x_6.x_GLF_uniform_int_values[1].el;
  r = array<i32, 17u>(x_87, x_89, x_91, x_93, x_95, x_97, x_99, x_101, x_103, x_105, x_107, x_109, x_111, x_113, x_115, x_117, x_119);
  let x_122 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  a = x_122;
  let x_124 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  i = x_124;
  loop {
    let x_129 : i32 = i;
    let x_131 : i32 = x_6.x_GLF_uniform_int_values[1].el;
    if ((x_129 < x_131)) {
    } else {
      break;
    }
    let x_134 : i32 = i;
    let x_135 : i32 = a;
    a = (x_135 - 1);
    A[x_134] = x_135;
    let x_138 : i32 = i;
    let x_140 : i32 = x_6.x_GLF_uniform_int_values[2].el;
    let x_142 : i32 = x_6.x_GLF_uniform_int_values[18].el;
    let x_144 : i32 = i;
    let x_146 : i32 = x_6.x_GLF_uniform_int_values[3].el;
    A[clamp(x_138, x_140, x_142)] = (x_144 + x_146);

    continuing {
      let x_149 : i32 = i;
      i = (x_149 + 1);
    }
  }
  ok = true;
  let x_152 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  i_1 = x_152;
  loop {
    let x_157 : i32 = i_1;
    let x_159 : i32 = x_6.x_GLF_uniform_int_values[1].el;
    if ((x_157 < x_159)) {
    } else {
      break;
    }
    let x_162 : i32 = i_1;
    let x_164 : i32 = A[x_162];
    let x_165 : i32 = i_1;
    let x_167 : i32 = r[x_165];
    if ((x_164 != x_167)) {
      ok = false;
    }

    continuing {
      let x_171 : i32 = i_1;
      i_1 = (x_171 + 1);
    }
  }
  let x_174 : i32 = x_6.x_GLF_uniform_int_values[2].el;
  let x_175 : f32 = f32(x_174);
  x_GLF_color = vec4<f32>(x_175, x_175, x_175, x_175);
  let x_177 : bool = ok;
  if (x_177) {
    let x_181 : i32 = x_6.x_GLF_uniform_int_values[3].el;
    let x_184 : i32 = x_6.x_GLF_uniform_int_values[2].el;
    let x_187 : i32 = x_6.x_GLF_uniform_int_values[2].el;
    let x_190 : i32 = x_6.x_GLF_uniform_int_values[3].el;
    x_GLF_color = vec4<f32>(f32(x_181), f32(x_184), f32(x_187), f32(x_190));
  }
  return;
}

struct main_out {
  @location(0)
  x_GLF_color_1 : vec4<f32>,
}

@fragment
fn main() -> main_out {
  main_1();
  return main_out(x_GLF_color);
}