#include <metal_stdlib>

using namespace metal;
struct main_out {
  float4 x_GLF_color_1;
};
struct tint_symbol_1 {
  float4 x_GLF_color_1 [[color(0)]];
};

void main_1(thread int* const tint_symbol_4, thread float4* const tint_symbol_5) {
  float2x3 m23 = float2x3(0.0f);
  float2x4 m24 = float2x4(0.0f);
  float3x2 m32 = float3x2(0.0f);
  float3x3 m33 = float3x3(0.0f);
  float3x4 m34 = float3x4(0.0f);
  float4x2 m42 = float4x2(0.0f);
  float4x3 m43 = float4x3(0.0f);
  float4x4 m44 = float4x4(0.0f);
  int i = 0;
  int i_1 = 0;
  int i_2 = 0;
  int i_3 = 0;
  int i_4 = 0;
  int i_5 = 0;
  int i_6 = 0;
  int i_7 = 0;
  int i_8 = 0;
  int i_9 = 0;
  int i_10 = 0;
  int i_11 = 0;
  int i_12 = 0;
  int i_13 = 0;
  int i_14 = 0;
  int i_15 = 0;
  int i_16 = 0;
  int i_17 = 0;
  int i_18 = 0;
  int i_19 = 0;
  int i_20 = 0;
  int i_21 = 0;
  int i_22 = 0;
  int i_23 = 0;
  int i_24 = 0;
  int i_25 = 0;
  int i_26 = 0;
  int i_27 = 0;
  int i_28 = 0;
  int i_29 = 0;
  int i_30 = 0;
  int i_31 = 0;
  int i_32 = 0;
  int i_33 = 0;
  int i_34 = 0;
  int i_35 = 0;
  int i_36 = 0;
  int i_37 = 0;
  float sum = 0.0f;
  int r = 0;
  *(tint_symbol_4) = 0;
  m23 = float2x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
  m24 = float2x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
  m32 = float3x2(float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
  m33 = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
  m34 = float3x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
  m42 = float4x2(float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
  m43 = float4x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
  m44 = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
  i = 0;
  while (true) {
    int const x_105 = i;
    if ((x_105 < 1)) {
    } else {
      break;
    }
    i_1 = 0;
    while (true) {
      int const x_112 = i_1;
      if ((x_112 < 1)) {
      } else {
        break;
      }
      i_2 = 0;
      while (true) {
        int const x_119 = i_2;
        if ((x_119 < 1)) {
        } else {
          break;
        }
        i_3 = 0;
        while (true) {
          int const x_126 = i_3;
          if ((x_126 < 1)) {
          } else {
            break;
          }
          i_4 = 0;
          while (true) {
            int const x_133 = i_4;
            if ((x_133 < 1)) {
            } else {
              break;
            }
            i_5 = 0;
            while (true) {
              int const x_140 = i_5;
              if ((x_140 < 1)) {
              } else {
                break;
              }
              i_6 = 0;
              while (true) {
                int const x_147 = i_6;
                if ((x_147 < 1)) {
                } else {
                  break;
                }
                i_7 = 0;
                while (true) {
                  int const x_154 = i_7;
                  if ((x_154 < 1)) {
                  } else {
                    break;
                  }
                  i_8 = 0;
                  while (true) {
                    int const x_161 = i_8;
                    if ((x_161 < 1)) {
                    } else {
                      break;
                    }
                    i_9 = 0;
                    while (true) {
                      int const x_168 = i_9;
                      if ((x_168 < 1)) {
                      } else {
                        break;
                      }
                      i_10 = 0;
                      while (true) {
                        int const x_175 = i_10;
                        if ((x_175 < 1)) {
                        } else {
                          break;
                        }
                        i_11 = 0;
                        while (true) {
                          int const x_182 = i_11;
                          if ((x_182 < 1)) {
                          } else {
                            break;
                          }
                          i_12 = 0;
                          while (true) {
                            int const x_189 = i_12;
                            if ((x_189 < 1)) {
                            } else {
                              break;
                            }
                            i_13 = 0;
                            while (true) {
                              int const x_196 = i_13;
                              if ((x_196 < 1)) {
                              } else {
                                break;
                              }
                              i_14 = 0;
                              while (true) {
                                int const x_203 = i_14;
                                if ((x_203 < 1)) {
                                } else {
                                  break;
                                }
                                i_15 = 0;
                                while (true) {
                                  int const x_210 = i_15;
                                  if ((x_210 < 1)) {
                                  } else {
                                    break;
                                  }
                                  i_16 = 0;
                                  while (true) {
                                    int const x_217 = i_16;
                                    if ((x_217 < 1)) {
                                    } else {
                                      break;
                                    }
                                    i_17 = 0;
                                    while (true) {
                                      int const x_224 = i_17;
                                      if ((x_224 < 1)) {
                                      } else {
                                        break;
                                      }
                                      i_18 = 0;
                                      while (true) {
                                        int const x_231 = i_18;
                                        if ((x_231 < 1)) {
                                        } else {
                                          break;
                                        }
                                        i_19 = 0;
                                        while (true) {
                                          int const x_238 = i_19;
                                          if ((x_238 < 1)) {
                                          } else {
                                            break;
                                          }
                                          i_20 = 0;
                                          while (true) {
                                            int const x_245 = i_20;
                                            if ((x_245 < 1)) {
                                            } else {
                                              break;
                                            }
                                            i_21 = 0;
                                            while (true) {
                                              int const x_252 = i_21;
                                              if ((x_252 < 1)) {
                                              } else {
                                                break;
                                              }
                                              i_22 = 0;
                                              while (true) {
                                                int const x_259 = i_22;
                                                if ((x_259 < 1)) {
                                                } else {
                                                  break;
                                                }
                                                i_23 = 0;
                                                while (true) {
                                                  int const x_266 = i_23;
                                                  if ((x_266 < 1)) {
                                                  } else {
                                                    break;
                                                  }
                                                  i_24 = 0;
                                                  while (true) {
                                                    int const x_273 = i_24;
                                                    if ((x_273 < 1)) {
                                                    } else {
                                                      break;
                                                    }
                                                    i_25 = 0;
                                                    while (true) {
                                                      int const x_280 = i_25;
                                                      if ((x_280 < 1)) {
                                                      } else {
                                                        break;
                                                      }
                                                      i_26 = 0;
                                                      while (true) {
                                                        int const x_287 = i_26;
                                                        if ((x_287 < 1)) {
                                                        } else {
                                                          break;
                                                        }
                                                        i_27 = 0;
                                                        while (true) {
                                                          int const x_294 = i_27;
                                                          if ((x_294 < 1)) {
                                                          } else {
                                                            break;
                                                          }
                                                          i_28 = 0;
                                                          while (true) {
                                                            int const x_301 = i_28;
                                                            if ((x_301 < 1)) {
                                                            } else {
                                                              break;
                                                            }
                                                            i_29 = 0;
                                                            while (true) {
                                                              int const x_308 = i_29;
                                                              if ((x_308 < 1)) {
                                                              } else {
                                                                break;
                                                              }
                                                              i_30 = 0;
                                                              while (true) {
                                                                int const x_315 = i_30;
                                                                if ((x_315 < 1)) {
                                                                } else {
                                                                  break;
                                                                }
                                                                i_31 = 0;
                                                                while (true) {
                                                                  int const x_322 = i_31;
                                                                  if ((x_322 < 1)) {
                                                                  } else {
                                                                    break;
                                                                  }
                                                                  i_32 = 0;
                                                                  while (true) {
                                                                    int const x_329 = i_32;
                                                                    if ((x_329 < 1)) {
                                                                    } else {
                                                                      break;
                                                                    }
                                                                    i_33 = 0;
                                                                    while (true) {
                                                                      int const x_336 = i_33;
                                                                      if ((x_336 < 1)) {
                                                                      } else {
                                                                        break;
                                                                      }
                                                                      i_34 = 0;
                                                                      while (true) {
                                                                        int const x_343 = i_34;
                                                                        if ((x_343 < 1)) {
                                                                        } else {
                                                                          break;
                                                                        }
                                                                        i_35 = 0;
                                                                        while (true) {
                                                                          int const x_350 = i_35;
                                                                          if ((x_350 < 1)) {
                                                                          } else {
                                                                            break;
                                                                          }
                                                                          i_36 = 0;
                                                                          while (true) {
                                                                            int const x_357 = i_36;
                                                                            if ((x_357 < 1)) {
                                                                            } else {
                                                                              break;
                                                                            }
                                                                            i_37 = 0;
                                                                            while (true) {
                                                                              int const x_364 = i_37;
                                                                              if ((x_364 < 1)) {
                                                                              } else {
                                                                                break;
                                                                              }
                                                                              while (true) {
                                                                                int const x_371 = *(tint_symbol_4);
                                                                                *(tint_symbol_4) = (x_371 + 1);
                                                                                {
                                                                                  int const x_373 = *(tint_symbol_4);
                                                                                  if ((x_373 < 98)) {
                                                                                  } else {
                                                                                    break;
                                                                                  }
                                                                                }
                                                                              }
                                                                              int const x_375 = i_37;
                                                                              int const x_376 = i_37;
                                                                              m23[x_375][x_376] = 1.0f;
                                                                              int const x_378 = i_37;
                                                                              int const x_379 = i_37;
                                                                              m24[x_378][x_379] = 1.0f;
                                                                              int const x_381 = i_37;
                                                                              int const x_382 = i_37;
                                                                              m32[x_381][x_382] = 1.0f;
                                                                              int const x_384 = i_37;
                                                                              int const x_385 = i_37;
                                                                              m33[x_384][x_385] = 1.0f;
                                                                              int const x_387 = i_37;
                                                                              int const x_388 = i_37;
                                                                              m34[x_387][x_388] = 1.0f;
                                                                              int const x_390 = i_37;
                                                                              int const x_391 = i_37;
                                                                              m42[x_390][x_391] = 1.0f;
                                                                              int const x_393 = i_37;
                                                                              int const x_394 = i_37;
                                                                              m43[x_393][x_394] = 1.0f;
                                                                              int const x_396 = i_37;
                                                                              int const x_397 = i_37;
                                                                              m44[x_396][x_397] = 1.0f;
                                                                              {
                                                                                int const x_399 = i_37;
                                                                                i_37 = (x_399 + 1);
                                                                              }
                                                                            }
                                                                            {
                                                                              int const x_401 = i_36;
                                                                              i_36 = (x_401 + 1);
                                                                            }
                                                                          }
                                                                          {
                                                                            int const x_403 = i_35;
                                                                            i_35 = (x_403 + 1);
                                                                          }
                                                                        }
                                                                        {
                                                                          int const x_405 = i_34;
                                                                          i_34 = (x_405 + 1);
                                                                        }
                                                                      }
                                                                      {
                                                                        int const x_407 = i_33;
                                                                        i_33 = (x_407 + 1);
                                                                      }
                                                                    }
                                                                    {
                                                                      int const x_409 = i_32;
                                                                      i_32 = (x_409 + 1);
                                                                    }
                                                                  }
                                                                  {
                                                                    int const x_411 = i_31;
                                                                    i_31 = (x_411 + 1);
                                                                  }
                                                                }
                                                                {
                                                                  int const x_413 = i_30;
                                                                  i_30 = (x_413 + 1);
                                                                }
                                                              }
                                                              {
                                                                int const x_415 = i_29;
                                                                i_29 = (x_415 + 1);
                                                              }
                                                            }
                                                            {
                                                              int const x_417 = i_28;
                                                              i_28 = (x_417 + 1);
                                                            }
                                                          }
                                                          {
                                                            int const x_419 = i_27;
                                                            i_27 = (x_419 + 1);
                                                          }
                                                        }
                                                        {
                                                          int const x_421 = i_26;
                                                          i_26 = (x_421 + 1);
                                                        }
                                                      }
                                                      {
                                                        int const x_423 = i_25;
                                                        i_25 = (x_423 + 1);
                                                      }
                                                    }
                                                    {
                                                      int const x_425 = i_24;
                                                      i_24 = (x_425 + 1);
                                                    }
                                                  }
                                                  {
                                                    int const x_427 = i_23;
                                                    i_23 = (x_427 + 1);
                                                  }
                                                }
                                                {
                                                  int const x_429 = i_22;
                                                  i_22 = (x_429 + 1);
                                                }
                                              }
                                              {
                                                int const x_431 = i_21;
                                                i_21 = (x_431 + 1);
                                              }
                                            }
                                            {
                                              int const x_433 = i_20;
                                              i_20 = (x_433 + 1);
                                            }
                                          }
                                          {
                                            int const x_435 = i_19;
                                            i_19 = (x_435 + 1);
                                          }
                                        }
                                        {
                                          int const x_437 = i_18;
                                          i_18 = (x_437 + 1);
                                        }
                                      }
                                      {
                                        int const x_439 = i_17;
                                        i_17 = (x_439 + 1);
                                      }
                                    }
                                    {
                                      int const x_441 = i_16;
                                      i_16 = (x_441 + 1);
                                    }
                                  }
                                  {
                                    int const x_443 = i_15;
                                    i_15 = (x_443 + 1);
                                  }
                                }
                                {
                                  int const x_445 = i_14;
                                  i_14 = (x_445 + 1);
                                }
                              }
                              {
                                int const x_447 = i_13;
                                i_13 = (x_447 + 1);
                              }
                            }
                            {
                              int const x_449 = i_12;
                              i_12 = (x_449 + 1);
                            }
                          }
                          {
                            int const x_451 = i_11;
                            i_11 = (x_451 + 1);
                          }
                        }
                        {
                          int const x_453 = i_10;
                          i_10 = (x_453 + 1);
                        }
                      }
                      {
                        int const x_455 = i_9;
                        i_9 = (x_455 + 1);
                      }
                    }
                    {
                      int const x_457 = i_8;
                      i_8 = (x_457 + 1);
                    }
                  }
                  {
                    int const x_459 = i_7;
                    i_7 = (x_459 + 1);
                  }
                }
                {
                  int const x_461 = i_6;
                  i_6 = (x_461 + 1);
                }
              }
              {
                int const x_463 = i_5;
                i_5 = (x_463 + 1);
              }
            }
            {
              int const x_465 = i_4;
              i_4 = (x_465 + 1);
            }
          }
          {
            int const x_467 = i_3;
            i_3 = (x_467 + 1);
          }
        }
        {
          int const x_469 = i_2;
          i_2 = (x_469 + 1);
        }
      }
      {
        int const x_471 = i_1;
        i_1 = (x_471 + 1);
      }
    }
    {
      int const x_473 = i;
      i = (x_473 + 1);
    }
  }
  sum = 0.0f;
  r = 0;
  while (true) {
    int const x_479 = *(tint_symbol_4);
    if ((x_479 < 100)) {
    } else {
      break;
    }
    int const x_482 = *(tint_symbol_4);
    *(tint_symbol_4) = (x_482 + 1);
    int const x_484 = r;
    float const x_486 = m23[0][x_484];
    float const x_487 = sum;
    sum = (x_487 + x_486);
    int const x_489 = r;
    float const x_491 = m24[0][x_489];
    float const x_492 = sum;
    sum = (x_492 + x_491);
    int const x_494 = r;
    float const x_496 = m32[0][x_494];
    float const x_497 = sum;
    sum = (x_497 + x_496);
    int const x_499 = r;
    float const x_501 = m33[0][x_499];
    float const x_502 = sum;
    sum = (x_502 + x_501);
    int const x_504 = r;
    float const x_506 = m34[0][x_504];
    float const x_507 = sum;
    sum = (x_507 + x_506);
    int const x_509 = r;
    float const x_511 = m42[0][x_509];
    float const x_512 = sum;
    sum = (x_512 + x_511);
    int const x_514 = r;
    float const x_516 = m43[0][x_514];
    float const x_517 = sum;
    sum = (x_517 + x_516);
    int const x_519 = r;
    float const x_521 = m44[0][x_519];
    float const x_522 = sum;
    sum = (x_522 + x_521);
    {
      int const x_524 = r;
      r = (x_524 + 1);
    }
  }
  float const x_526 = sum;
  if ((x_526 == 8.0f)) {
    *(tint_symbol_5) = float4(1.0f, 0.0f, 0.0f, 1.0f);
  } else {
    *(tint_symbol_5) = float4(0.0f, 0.0f, 0.0f, 0.0f);
  }
  return;
}

fragment tint_symbol_1 tint_symbol() {
  thread int tint_symbol_6 = 0;
  thread float4 tint_symbol_7 = 0.0f;
  main_1(&(tint_symbol_6), &(tint_symbol_7));
  main_out const tint_symbol_2 = {.x_GLF_color_1=tint_symbol_7};
  tint_symbol_1 const tint_symbol_3 = {.x_GLF_color_1=tint_symbol_2.x_GLF_color_1};
  return tint_symbol_3;
}

