#include <metal_stdlib>

using namespace metal;
struct BST {
  int data;
  int leftIndex;
  int rightIndex;
};
struct buf0 {
  /* 0x0000 */ packed_float2 injectionSwitch;
};
struct tint_array_wrapper {
  BST arr[10];
};
struct main_out {
  float4 x_GLF_color_1;
};
struct tint_symbol_1 {
  float4 x_GLF_color_1 [[color(0)]];
};

void makeTreeNode_struct_BST_i1_i1_i11_i1_(thread BST* const tree, thread int* const data) {
  int const x_165 = *(data);
  (*(tree)).data = x_165;
  (*(tree)).leftIndex = -1;
  (*(tree)).rightIndex = -1;
  return;
}

void insert_i1_i1_(constant buf0& x_16, thread int* const treeIndex, thread int* const data_1, thread tint_array_wrapper* const tint_symbol_4) {
  int baseIndex = 0;
  BST param = {};
  int param_1 = 0;
  int x_170 = 0;
  BST param_2 = {};
  int param_3 = 0;
  baseIndex = 0;
  while (true) {
    int const x_175 = baseIndex;
    int const x_176 = *(treeIndex);
    if ((x_175 <= x_176)) {
    } else {
      break;
    }
    int const x_179 = *(data_1);
    int const x_180 = baseIndex;
    int const x_182 = (*(tint_symbol_4)).arr[x_180].data;
    if ((x_179 <= x_182)) {
      int const x_187 = baseIndex;
      int const x_189 = (*(tint_symbol_4)).arr[x_187].leftIndex;
      if ((x_189 == -1)) {
        int const x_194 = baseIndex;
        int const x_195 = *(treeIndex);
        (*(tint_symbol_4)).arr[x_194].leftIndex = x_195;
        float const x_198 = x_16.injectionSwitch.x;
        float const x_200 = x_16.injectionSwitch.y;
        if ((x_198 < x_200)) {
          int const x_204 = *(treeIndex);
          BST const x_206 = (*(tint_symbol_4)).arr[x_204];
          param = x_206;
          int const x_207 = *(data_1);
          param_1 = x_207;
          makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param), &(param_1));
          BST const x_209 = param;
          (*(tint_symbol_4)).arr[x_204] = x_209;
        }
        float const x_212 = x_16.injectionSwitch.x;
        float const x_214 = x_16.injectionSwitch.y;
        if ((x_212 < x_214)) {
          return;
        }
      } else {
        int const x_218 = baseIndex;
        int const x_220 = (*(tint_symbol_4)).arr[x_218].leftIndex;
        baseIndex = x_220;
        continue;
      }
    } else {
      float const x_222 = x_16.injectionSwitch.x;
      float const x_224 = x_16.injectionSwitch.y;
      if ((x_222 < x_224)) {
        int const x_229 = baseIndex;
        int const x_231 = (*(tint_symbol_4)).arr[x_229].rightIndex;
        x_170 = x_231;
      } else {
        int const x_232 = baseIndex;
        int const x_234 = (*(tint_symbol_4)).arr[x_232].rightIndex;
        x_170 = x_234;
      }
      int const x_235 = x_170;
      if ((x_235 == -1)) {
        int const x_240 = baseIndex;
        int const x_241 = *(treeIndex);
        (*(tint_symbol_4)).arr[x_240].rightIndex = x_241;
        int const x_243 = *(treeIndex);
        BST const x_245 = (*(tint_symbol_4)).arr[x_243];
        param_2 = x_245;
        int const x_246 = *(data_1);
        param_3 = x_246;
        makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_2), &(param_3));
        BST const x_248 = param_2;
        (*(tint_symbol_4)).arr[x_243] = x_248;
        return;
      } else {
        int const x_250 = baseIndex;
        int const x_252 = (*(tint_symbol_4)).arr[x_250].rightIndex;
        baseIndex = x_252;
        continue;
      }
      return;
    }
    float const x_254 = x_16.injectionSwitch.x;
    float const x_256 = x_16.injectionSwitch.y;
    if ((x_254 > x_256)) {
      return;
    }
  }
  return;
}

int search_i1_(thread int* const target, thread tint_array_wrapper* const tint_symbol_5) {
  int index = 0;
  BST currentNode = {};
  int x_261 = 0;
  index = 0;
  while (true) {
    int const x_266 = index;
    if ((x_266 != -1)) {
    } else {
      break;
    }
    int const x_269 = index;
    BST const x_271 = (*(tint_symbol_5)).arr[x_269];
    currentNode = x_271;
    int const x_273 = currentNode.data;
    int const x_274 = *(target);
    if ((x_273 == x_274)) {
      int const x_278 = *(target);
      return x_278;
    }
    int const x_279 = *(target);
    int const x_281 = currentNode.data;
    if ((x_279 > x_281)) {
      int const x_287 = currentNode.rightIndex;
      x_261 = x_287;
    } else {
      int const x_289 = currentNode.leftIndex;
      x_261 = x_289;
    }
    int const x_290 = x_261;
    index = x_290;
  }
  return -1;
}

void main_1(constant buf0& x_16, thread tint_array_wrapper* const tint_symbol_6, thread float4* const tint_symbol_7) {
  int treeIndex_1 = 0;
  BST param_4 = {};
  int param_5 = 0;
  int param_6 = 0;
  int param_7 = 0;
  int param_8 = 0;
  int param_9 = 0;
  int param_10 = 0;
  int param_11 = 0;
  int param_12 = 0;
  int param_13 = 0;
  int param_14 = 0;
  int param_15 = 0;
  int param_16 = 0;
  int param_17 = 0;
  int param_18 = 0;
  int param_19 = 0;
  int param_20 = 0;
  int param_21 = 0;
  int param_22 = 0;
  int param_23 = 0;
  int count = 0;
  int i = 0;
  int result = 0;
  int param_24 = 0;
  treeIndex_1 = 0;
  BST const x_91 = (*(tint_symbol_6)).arr[0];
  param_4 = x_91;
  param_5 = 9;
  makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_4), &(param_5));
  BST const x_93 = param_4;
  (*(tint_symbol_6)).arr[0] = x_93;
  int const x_95 = treeIndex_1;
  treeIndex_1 = (x_95 + 1);
  int const x_97 = treeIndex_1;
  param_6 = x_97;
  param_7 = 5;
  insert_i1_i1_(x_16, &(param_6), &(param_7), tint_symbol_6);
  int const x_99 = treeIndex_1;
  treeIndex_1 = (x_99 + 1);
  int const x_101 = treeIndex_1;
  param_8 = x_101;
  param_9 = 12;
  insert_i1_i1_(x_16, &(param_8), &(param_9), tint_symbol_6);
  int const x_103 = treeIndex_1;
  treeIndex_1 = (x_103 + 1);
  int const x_105 = treeIndex_1;
  param_10 = x_105;
  param_11 = 15;
  insert_i1_i1_(x_16, &(param_10), &(param_11), tint_symbol_6);
  int const x_107 = treeIndex_1;
  treeIndex_1 = (x_107 + 1);
  int const x_109 = treeIndex_1;
  param_12 = x_109;
  param_13 = 7;
  insert_i1_i1_(x_16, &(param_12), &(param_13), tint_symbol_6);
  int const x_111 = treeIndex_1;
  treeIndex_1 = (x_111 + 1);
  int const x_113 = treeIndex_1;
  param_14 = x_113;
  param_15 = 8;
  insert_i1_i1_(x_16, &(param_14), &(param_15), tint_symbol_6);
  int const x_115 = treeIndex_1;
  treeIndex_1 = (x_115 + 1);
  int const x_117 = treeIndex_1;
  param_16 = x_117;
  param_17 = 2;
  insert_i1_i1_(x_16, &(param_16), &(param_17), tint_symbol_6);
  int const x_119 = treeIndex_1;
  treeIndex_1 = (x_119 + 1);
  int const x_121 = treeIndex_1;
  param_18 = x_121;
  param_19 = 6;
  insert_i1_i1_(x_16, &(param_18), &(param_19), tint_symbol_6);
  int const x_123 = treeIndex_1;
  treeIndex_1 = (x_123 + 1);
  int const x_125 = treeIndex_1;
  param_20 = x_125;
  param_21 = 17;
  insert_i1_i1_(x_16, &(param_20), &(param_21), tint_symbol_6);
  int const x_127 = treeIndex_1;
  treeIndex_1 = (x_127 + 1);
  int const x_129 = treeIndex_1;
  param_22 = x_129;
  param_23 = 13;
  insert_i1_i1_(x_16, &(param_22), &(param_23), tint_symbol_6);
  count = 0;
  i = 0;
  while (true) {
    int const x_135 = i;
    if ((x_135 < 20)) {
    } else {
      break;
    }
    int const x_138 = i;
    param_24 = x_138;
    int const x_139 = search_i1_(&(param_24), tint_symbol_6);
    result = x_139;
    int const x_140 = i;
    switch(x_140) {
      case 2:
      case 5:
      case 6:
      case 7:
      case 8:
      case 9:
      case 12:
      case 13:
      case 15:
      case 17: {
        int const x_150 = result;
        int const x_151 = i;
        if ((x_150 == x_151)) {
          int const x_155 = count;
          count = (x_155 + 1);
        }
        break;
      }
      default: {
        int const x_144 = result;
        if ((x_144 == -1)) {
          int const x_148 = count;
          count = (x_148 + 1);
        }
        break;
      }
    }
    {
      int const x_157 = i;
      i = (x_157 + 1);
    }
  }
  int const x_159 = count;
  if ((x_159 == 20)) {
    *(tint_symbol_7) = float4(1.0f, 0.0f, 0.0f, 1.0f);
  } else {
    *(tint_symbol_7) = float4(0.0f, 0.0f, 1.0f, 1.0f);
  }
  return;
}

fragment tint_symbol_1 tint_symbol(constant buf0& x_16 [[buffer(0)]]) {
  thread tint_array_wrapper tint_symbol_8 = {};
  thread float4 tint_symbol_9 = 0.0f;
  main_1(x_16, &(tint_symbol_8), &(tint_symbol_9));
  main_out const tint_symbol_2 = {.x_GLF_color_1=tint_symbol_9};
  tint_symbol_1 const tint_symbol_3 = {.x_GLF_color_1=tint_symbol_2.x_GLF_color_1};
  return tint_symbol_3;
}

