#include <metal_stdlib>

using namespace metal;
void main_1(thread uint* const tint_symbol_1) {
  *(tint_symbol_1) = 1u;
  bool guard10 = true;
  if (false) {
    *(tint_symbol_1) = 2u;
    guard10 = false;
  } else {
    if (guard10) {
      *(tint_symbol_1) = 3u;
      if (true) {
        guard10 = false;
      }
      if (guard10) {
        *(tint_symbol_1) = 4u;
        guard10 = false;
      }
    }
  }
  *(tint_symbol_1) = 5u;
  return;
}

fragment void tint_symbol() {
  thread uint tint_symbol_2 = 0u;
  main_1(&(tint_symbol_2));
  return;
}

