
public class Class93 {

   static int anInt912;
   static int anInt913;
   static int anInt914;
   static int[] anIntArray915;
   static int anInt916;
   static int anInt917;
   static int anInt918;
   static int anInt919;


   static void method1813(int[] var0, int var1, int var2) {
      int var3 = anInt912 + (var2 << 1);
      int var5;
      if(anIntArray915 == null || anIntArray915.length < var3) {
         int[] var4 = new int[var3];

         for(var5 = 0; var5 < anInt912; ++var5) {
            var4[var5] = anIntArray915[var5];
         }

         anIntArray915 = var4;
      }

      var2 += var1;
      int var8 = var2 - 2;

      for(var5 = var1; var5 < var2; var5 += 2) {
         int var6 = var0[var8 + 1];
         int var7 = var0[var5 + 1];
         if(var6 < var7) {
            anIntArray915[anInt912++] = var0[var8];
            anIntArray915[anInt912++] = var6;
            anIntArray915[anInt912++] = var0[var5];
            anIntArray915[anInt912++] = var7;
         } else if(var7 < var6) {
            anIntArray915[anInt912++] = var0[var5];
            anIntArray915[anInt912++] = var7;
            anIntArray915[anInt912++] = var0[var8];
            anIntArray915[anInt912++] = var6;
         }

         var8 = var5;
      }

   }

   static void method1814(int var0, int var1) {
      while(true) {
         if(var1 >= var0 + 8) {
            boolean var2 = true;

            for(int var3 = var0 + 4; var3 < var1; var3 += 4) {
               int var4 = anIntArray915[var3 - 4];
               int var5 = anIntArray915[var3];
               if(var4 > var5) {
                  var2 = false;
                  anIntArray915[var3 - 4] = var5;
                  anIntArray915[var3] = var4;
                  var4 = anIntArray915[var3 - 2];
                  anIntArray915[var3 - 2] = anIntArray915[var3 + 2];
                  anIntArray915[var3 + 2] = var4;
                  var4 = anIntArray915[var3 - 1];
                  anIntArray915[var3 - 1] = anIntArray915[var3 + 3];
                  anIntArray915[var3 + 3] = var4;
               }
            }

            if(!var2) {
               var1 -= 4;
               continue;
            }
         }

         return;
      }
   }

   public static void method1815(Class545 var0, int[] var1, int var2, int[] var3, int[] var4) {
      method1816(var0, var1, 0, var1.length, var2, var3, var4);
   }

   static void method1816(Class545 var0, int[] var1, int var2, int var3, int var4, int[] var5, int[] var6) {
      int[] var7 = new int[4];
      var0.qa(var7);
      if(var5 != null && var7[3] - var7[1] != var5.length) {
         throw new IllegalStateException();
      } else {
         method1817();
         method1833(var1, var2, var3);
         method1819(var7[1]);

         while(method1818(var7[3])) {
            int var8 = anInt913;
            int var9 = anInt917;
            int var10 = anInt914;
            if(var5 != null) {
               int var11 = var10 - var7[1];
               if(var8 < var5[var11] + var7[0]) {
                  var8 = var5[var11] + var7[0];
               }

               if(var9 > var5[var11] + var6[var11] + var7[0]) {
                  var9 = var5[var11] + var6[var11] + var7[0];
               }

               if(var9 - var8 <= 0) {
                  continue;
               }
            }

            var0.XA(var8, var10, var9 - var8, var4, 1);
         }

      }
   }

   static void method1817() {
      anInt912 = 0;
   }

   static boolean method1818(int var0) {
      int var1 = anInt918;
      int var2 = anInt916;
      int var3 = anInt914;

      while(var2 >= var1) {
         ++var3;
         anInt914 = var3;
         if(var3 >= var0) {
            return false;
         }

         int var4 = anInt919;

         while(true) {
            int var5;
            int var6;
            if(var1 < anInt912) {
               var5 = anIntArray915[var1 + 1];
               if(var3 >= var5) {
                  var6 = anIntArray915[var1];
                  int var7 = anIntArray915[var1 + 2];
                  int var8 = anIntArray915[var1 + 3];
                  int var9 = (var7 - var6 << 16) / (var8 - var5);
                  int var10 = (var6 << 16) + '\u8000';
                  anIntArray915[var1] = var10;
                  anIntArray915[var1 + 2] = var9;
                  var1 += 4;
                  continue;
               }
            }

            for(var5 = var4; var5 < var1; var5 += 4) {
               var6 = anIntArray915[var5 + 3];
               if(var3 >= var6) {
                  anIntArray915[var5] = anIntArray915[var4];
                  anIntArray915[var5 + 1] = anIntArray915[var4 + 1];
                  anIntArray915[var5 + 2] = anIntArray915[var4 + 2];
                  anIntArray915[var5 + 3] = anIntArray915[var4 + 3];
                  var4 += 4;
               }
            }

            if(var4 == anInt912) {
               anInt912 = 0;
               return false;
            }

            method1827(var4, var1);
            anInt919 = var4;
            anInt918 = var1;
            var2 = var4;
            break;
         }
      }

      anInt913 = anIntArray915[var2] >> 16;
      anInt917 = anIntArray915[var2 + 4] >> 16;
      anIntArray915[var2] += anIntArray915[var2 + 2];
      anIntArray915[var2 + 4] += anIntArray915[var2 + 6];
      var2 += 8;
      anInt916 = var2;
      return true;
   }

   static void method1819(int var0) {
      if(anInt912 < 0) {
         anInt916 = 0;
         anInt918 = 0;
         anInt919 = 0;
         anInt914 = 2147483646;
      } else {
         method1821(0, anInt912);
         int var1 = anIntArray915[1];
         if(var1 < var0) {
            var1 = var0;
         }

         byte var2 = 0;

         int var3;
         for(var3 = 0; var3 < anInt912; var3 += 4) {
            int var4 = anIntArray915[var3 + 1];
            if(var1 < var4) {
               break;
            }

            int var5 = anIntArray915[var3];
            int var6 = anIntArray915[var3 + 2];
            int var7 = anIntArray915[var3 + 3];
            int var8 = (var6 - var5 << 16) / (var7 - var4);
            int var9 = (var5 << 16) + '\u8000';
            anIntArray915[var3] = var9 + (var1 - var4) * var8;
            anIntArray915[var3 + 2] = var8;
         }

         anInt919 = var2;
         anInt918 = var3;
         anInt916 = var3;
         anInt914 = var1 - 1;
      }
   }

   static void method1820(int var0) {
      if(anInt912 < 0) {
         anInt916 = 0;
         anInt918 = 0;
         anInt919 = 0;
         anInt914 = 2147483646;
      } else {
         method1821(0, anInt912);
         int var1 = anIntArray915[1];
         if(var1 < var0) {
            var1 = var0;
         }

         byte var2 = 0;

         int var3;
         for(var3 = 0; var3 < anInt912; var3 += 4) {
            int var4 = anIntArray915[var3 + 1];
            if(var1 < var4) {
               break;
            }

            int var5 = anIntArray915[var3];
            int var6 = anIntArray915[var3 + 2];
            int var7 = anIntArray915[var3 + 3];
            int var8 = (var6 - var5 << 16) / (var7 - var4);
            int var9 = (var5 << 16) + '\u8000';
            anIntArray915[var3] = var9 + (var1 - var4) * var8;
            anIntArray915[var3 + 2] = var8;
         }

         anInt919 = var2;
         anInt918 = var3;
         anInt916 = var3;
         anInt914 = var1 - 1;
      }
   }

   static void method1821(int var0, int var1) {
      if(var1 > var0 + 4) {
         int var2 = var0;
         int var3 = anIntArray915[var0];
         int var4 = anIntArray915[var0 + 1];
         int var5 = anIntArray915[var0 + 2];
         int var6 = anIntArray915[var0 + 3];

         for(int var7 = var0 + 4; var7 < var1; var7 += 4) {
            int var8 = anIntArray915[var7 + 1];
            if(var8 < var4) {
               anIntArray915[var2] = anIntArray915[var7];
               anIntArray915[var2 + 1] = var8;
               anIntArray915[var2 + 2] = anIntArray915[var7 + 2];
               anIntArray915[var2 + 3] = anIntArray915[var7 + 3];
               var2 += 4;
               anIntArray915[var7] = anIntArray915[var2];
               anIntArray915[var7 + 1] = anIntArray915[var2 + 1];
               anIntArray915[var7 + 2] = anIntArray915[var2 + 2];
               anIntArray915[var7 + 3] = anIntArray915[var2 + 3];
            }
         }

         anIntArray915[var2] = var3;
         anIntArray915[var2 + 1] = var4;
         anIntArray915[var2 + 2] = var5;
         anIntArray915[var2 + 3] = var6;
         method1821(var0, var2);
         method1821(var2 + 4, var1);
      }
   }

   static void method1822(int var0) {
      if(anInt912 < 0) {
         anInt916 = 0;
         anInt918 = 0;
         anInt919 = 0;
         anInt914 = 2147483646;
      } else {
         method1821(0, anInt912);
         int var1 = anIntArray915[1];
         if(var1 < var0) {
            var1 = var0;
         }

         byte var2 = 0;

         int var3;
         for(var3 = 0; var3 < anInt912; var3 += 4) {
            int var4 = anIntArray915[var3 + 1];
            if(var1 < var4) {
               break;
            }

            int var5 = anIntArray915[var3];
            int var6 = anIntArray915[var3 + 2];
            int var7 = anIntArray915[var3 + 3];
            int var8 = (var6 - var5 << 16) / (var7 - var4);
            int var9 = (var5 << 16) + '\u8000';
            anIntArray915[var3] = var9 + (var1 - var4) * var8;
            anIntArray915[var3 + 2] = var8;
         }

         anInt919 = var2;
         anInt918 = var3;
         anInt916 = var3;
         anInt914 = var1 - 1;
      }
   }

   static void method1823() {
      anInt912 = 0;
   }

   public static void method1824(Class545 var0, int[] var1, int var2) {
      method1816(var0, var1, 0, var1.length, var2, (int[])null, (int[])null);
   }

   public static void method1825(Class545 var0, int[] var1, int var2, int[] var3, int[] var4) {
      method1816(var0, var1, 0, var1.length, var2, var3, var4);
   }

   static void method1826(Class545 var0, int[] var1, int var2, int var3, int var4, int[] var5, int[] var6) {
      int[] var7 = new int[4];
      var0.qa(var7);
      if(var5 != null && var7[3] - var7[1] != var5.length) {
         throw new IllegalStateException();
      } else {
         method1817();
         method1833(var1, var2, var3);
         method1819(var7[1]);

         while(method1818(var7[3])) {
            int var8 = anInt913;
            int var9 = anInt917;
            int var10 = anInt914;
            if(var5 != null) {
               int var11 = var10 - var7[1];
               if(var8 < var5[var11] + var7[0]) {
                  var8 = var5[var11] + var7[0];
               }

               if(var9 > var5[var11] + var6[var11] + var7[0]) {
                  var9 = var5[var11] + var6[var11] + var7[0];
               }

               if(var9 - var8 <= 0) {
                  continue;
               }
            }

            var0.XA(var8, var10, var9 - var8, var4, 1);
         }

      }
   }

   static void method1827(int var0, int var1) {
      while(true) {
         if(var1 >= var0 + 8) {
            boolean var2 = true;

            for(int var3 = var0 + 4; var3 < var1; var3 += 4) {
               int var4 = anIntArray915[var3 - 4];
               int var5 = anIntArray915[var3];
               if(var4 > var5) {
                  var2 = false;
                  anIntArray915[var3 - 4] = var5;
                  anIntArray915[var3] = var4;
                  var4 = anIntArray915[var3 - 2];
                  anIntArray915[var3 - 2] = anIntArray915[var3 + 2];
                  anIntArray915[var3 + 2] = var4;
                  var4 = anIntArray915[var3 - 1];
                  anIntArray915[var3 - 1] = anIntArray915[var3 + 3];
                  anIntArray915[var3 + 3] = var4;
               }
            }

            if(!var2) {
               var1 -= 4;
               continue;
            }
         }

         return;
      }
   }

   static void method1828(Class545 var0, int[] var1, int var2, int var3, int var4, int[] var5, int[] var6) {
      int[] var7 = new int[4];
      var0.qa(var7);
      if(var5 != null && var7[3] - var7[1] != var5.length) {
         throw new IllegalStateException();
      } else {
         method1817();
         method1833(var1, var2, var3);
         method1819(var7[1]);

         while(method1818(var7[3])) {
            int var8 = anInt913;
            int var9 = anInt917;
            int var10 = anInt914;
            if(var5 != null) {
               int var11 = var10 - var7[1];
               if(var8 < var5[var11] + var7[0]) {
                  var8 = var5[var11] + var7[0];
               }

               if(var9 > var5[var11] + var6[var11] + var7[0]) {
                  var9 = var5[var11] + var6[var11] + var7[0];
               }

               if(var9 - var8 <= 0) {
                  continue;
               }
            }

            var0.XA(var8, var10, var9 - var8, var4, 1);
         }

      }
   }

   static void method1829(int[] var0, int var1, int var2) {
      int var3 = anInt912 + (var2 << 1);
      int var5;
      if(anIntArray915 == null || anIntArray915.length < var3) {
         int[] var4 = new int[var3];

         for(var5 = 0; var5 < anInt912; ++var5) {
            var4[var5] = anIntArray915[var5];
         }

         anIntArray915 = var4;
      }

      var2 += var1;
      int var8 = var2 - 2;

      for(var5 = var1; var5 < var2; var5 += 2) {
         int var6 = var0[var8 + 1];
         int var7 = var0[var5 + 1];
         if(var6 < var7) {
            anIntArray915[anInt912++] = var0[var8];
            anIntArray915[anInt912++] = var6;
            anIntArray915[anInt912++] = var0[var5];
            anIntArray915[anInt912++] = var7;
         } else if(var7 < var6) {
            anIntArray915[anInt912++] = var0[var5];
            anIntArray915[anInt912++] = var7;
            anIntArray915[anInt912++] = var0[var8];
            anIntArray915[anInt912++] = var6;
         }

         var8 = var5;
      }

   }

   static void method1830(int var0) {
      if(anInt912 < 0) {
         anInt916 = 0;
         anInt918 = 0;
         anInt919 = 0;
         anInt914 = 2147483646;
      } else {
         method1821(0, anInt912);
         int var1 = anIntArray915[1];
         if(var1 < var0) {
            var1 = var0;
         }

         byte var2 = 0;

         int var3;
         for(var3 = 0; var3 < anInt912; var3 += 4) {
            int var4 = anIntArray915[var3 + 1];
            if(var1 < var4) {
               break;
            }

            int var5 = anIntArray915[var3];
            int var6 = anIntArray915[var3 + 2];
            int var7 = anIntArray915[var3 + 3];
            int var8 = (var6 - var5 << 16) / (var7 - var4);
            int var9 = (var5 << 16) + '\u8000';
            anIntArray915[var3] = var9 + (var1 - var4) * var8;
            anIntArray915[var3 + 2] = var8;
         }

         anInt919 = var2;
         anInt918 = var3;
         anInt916 = var3;
         anInt914 = var1 - 1;
      }
   }

   Class93() throws Throwable {
      throw new Error();
   }

   static void method1831(int var0) {
      if(anInt912 < 0) {
         anInt916 = 0;
         anInt918 = 0;
         anInt919 = 0;
         anInt914 = 2147483646;
      } else {
         method1821(0, anInt912);
         int var1 = anIntArray915[1];
         if(var1 < var0) {
            var1 = var0;
         }

         byte var2 = 0;

         int var3;
         for(var3 = 0; var3 < anInt912; var3 += 4) {
            int var4 = anIntArray915[var3 + 1];
            if(var1 < var4) {
               break;
            }

            int var5 = anIntArray915[var3];
            int var6 = anIntArray915[var3 + 2];
            int var7 = anIntArray915[var3 + 3];
            int var8 = (var6 - var5 << 16) / (var7 - var4);
            int var9 = (var5 << 16) + '\u8000';
            anIntArray915[var3] = var9 + (var1 - var4) * var8;
            anIntArray915[var3 + 2] = var8;
         }

         anInt919 = var2;
         anInt918 = var3;
         anInt916 = var3;
         anInt914 = var1 - 1;
      }
   }

   static void method1832(int var0) {
      if(anInt912 < 0) {
         anInt916 = 0;
         anInt918 = 0;
         anInt919 = 0;
         anInt914 = 2147483646;
      } else {
         method1821(0, anInt912);
         int var1 = anIntArray915[1];
         if(var1 < var0) {
            var1 = var0;
         }

         byte var2 = 0;

         int var3;
         for(var3 = 0; var3 < anInt912; var3 += 4) {
            int var4 = anIntArray915[var3 + 1];
            if(var1 < var4) {
               break;
            }

            int var5 = anIntArray915[var3];
            int var6 = anIntArray915[var3 + 2];
            int var7 = anIntArray915[var3 + 3];
            int var8 = (var6 - var5 << 16) / (var7 - var4);
            int var9 = (var5 << 16) + '\u8000';
            anIntArray915[var3] = var9 + (var1 - var4) * var8;
            anIntArray915[var3 + 2] = var8;
         }

         anInt919 = var2;
         anInt918 = var3;
         anInt916 = var3;
         anInt914 = var1 - 1;
      }
   }

   static void method1833(int[] var0, int var1, int var2) {
      int var3 = anInt912 + (var2 << 1);
      int var5;
      if(anIntArray915 == null || anIntArray915.length < var3) {
         int[] var4 = new int[var3];

         for(var5 = 0; var5 < anInt912; ++var5) {
            var4[var5] = anIntArray915[var5];
         }

         anIntArray915 = var4;
      }

      var2 += var1;
      int var8 = var2 - 2;

      for(var5 = var1; var5 < var2; var5 += 2) {
         int var6 = var0[var8 + 1];
         int var7 = var0[var5 + 1];
         if(var6 < var7) {
            anIntArray915[anInt912++] = var0[var8];
            anIntArray915[anInt912++] = var6;
            anIntArray915[anInt912++] = var0[var5];
            anIntArray915[anInt912++] = var7;
         } else if(var7 < var6) {
            anIntArray915[anInt912++] = var0[var5];
            anIntArray915[anInt912++] = var7;
            anIntArray915[anInt912++] = var0[var8];
            anIntArray915[anInt912++] = var6;
         }

         var8 = var5;
      }

   }

   public static void method1834(Class545 var0, int[] var1, int var2) {
      method1816(var0, var1, 0, var1.length, var2, (int[])null, (int[])null);
   }

   static boolean method1835(int var0) {
      int var1 = anInt918;
      int var2 = anInt916;
      int var3 = anInt914;

      while(var2 >= var1) {
         ++var3;
         anInt914 = var3;
         if(var3 >= var0) {
            return false;
         }

         int var4 = anInt919;

         while(true) {
            int var5;
            int var6;
            if(var1 < anInt912) {
               var5 = anIntArray915[var1 + 1];
               if(var3 >= var5) {
                  var6 = anIntArray915[var1];
                  int var7 = anIntArray915[var1 + 2];
                  int var8 = anIntArray915[var1 + 3];
                  int var9 = (var7 - var6 << 16) / (var8 - var5);
                  int var10 = (var6 << 16) + '\u8000';
                  anIntArray915[var1] = var10;
                  anIntArray915[var1 + 2] = var9;
                  var1 += 4;
                  continue;
               }
            }

            for(var5 = var4; var5 < var1; var5 += 4) {
               var6 = anIntArray915[var5 + 3];
               if(var3 >= var6) {
                  anIntArray915[var5] = anIntArray915[var4];
                  anIntArray915[var5 + 1] = anIntArray915[var4 + 1];
                  anIntArray915[var5 + 2] = anIntArray915[var4 + 2];
                  anIntArray915[var5 + 3] = anIntArray915[var4 + 3];
                  var4 += 4;
               }
            }

            if(var4 == anInt912) {
               anInt912 = 0;
               return false;
            }

            method1827(var4, var1);
            anInt919 = var4;
            anInt918 = var1;
            var2 = var4;
            break;
         }
      }

      anInt913 = anIntArray915[var2] >> 16;
      anInt917 = anIntArray915[var2 + 4] >> 16;
      anIntArray915[var2] += anIntArray915[var2 + 2];
      anIntArray915[var2 + 4] += anIntArray915[var2 + 6];
      var2 += 8;
      anInt916 = var2;
      return true;
   }

   static boolean method1836(int var0) {
      int var1 = anInt918;
      int var2 = anInt916;
      int var3 = anInt914;

      while(var2 >= var1) {
         ++var3;
         anInt914 = var3;
         if(var3 >= var0) {
            return false;
         }

         int var4 = anInt919;

         while(true) {
            int var5;
            int var6;
            if(var1 < anInt912) {
               var5 = anIntArray915[var1 + 1];
               if(var3 >= var5) {
                  var6 = anIntArray915[var1];
                  int var7 = anIntArray915[var1 + 2];
                  int var8 = anIntArray915[var1 + 3];
                  int var9 = (var7 - var6 << 16) / (var8 - var5);
                  int var10 = (var6 << 16) + '\u8000';
                  anIntArray915[var1] = var10;
                  anIntArray915[var1 + 2] = var9;
                  var1 += 4;
                  continue;
               }
            }

            for(var5 = var4; var5 < var1; var5 += 4) {
               var6 = anIntArray915[var5 + 3];
               if(var3 >= var6) {
                  anIntArray915[var5] = anIntArray915[var4];
                  anIntArray915[var5 + 1] = anIntArray915[var4 + 1];
                  anIntArray915[var5 + 2] = anIntArray915[var4 + 2];
                  anIntArray915[var5 + 3] = anIntArray915[var4 + 3];
                  var4 += 4;
               }
            }

            if(var4 == anInt912) {
               anInt912 = 0;
               return false;
            }

            method1827(var4, var1);
            anInt919 = var4;
            anInt918 = var1;
            var2 = var4;
            break;
         }
      }

      anInt913 = anIntArray915[var2] >> 16;
      anInt917 = anIntArray915[var2 + 4] >> 16;
      anIntArray915[var2] += anIntArray915[var2 + 2];
      anIntArray915[var2 + 4] += anIntArray915[var2 + 6];
      var2 += 8;
      anInt916 = var2;
      return true;
   }

   static void method1837(int var0, int var1) {
      while(true) {
         if(var1 >= var0 + 8) {
            boolean var2 = true;

            for(int var3 = var0 + 4; var3 < var1; var3 += 4) {
               int var4 = anIntArray915[var3 - 4];
               int var5 = anIntArray915[var3];
               if(var4 > var5) {
                  var2 = false;
                  anIntArray915[var3 - 4] = var5;
                  anIntArray915[var3] = var4;
                  var4 = anIntArray915[var3 - 2];
                  anIntArray915[var3 - 2] = anIntArray915[var3 + 2];
                  anIntArray915[var3 + 2] = var4;
                  var4 = anIntArray915[var3 - 1];
                  anIntArray915[var3 - 1] = anIntArray915[var3 + 3];
                  anIntArray915[var3 + 3] = var4;
               }
            }

            if(!var2) {
               var1 -= 4;
               continue;
            }
         }

         return;
      }
   }

   public static void method1838(Class545 var0, int[] var1, int var2) {
      method1816(var0, var1, 0, var1.length, var2, (int[])null, (int[])null);
   }
}
