home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / AnfyJava14 / data1.cab / Program_Files / Applet / flozoids / flozoids.jar / flozoids.class (.txt) next >
Encoding:
Java Class File  |  1998-11-29  |  18.6 KB  |  1,681 lines

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Container;
  5. import java.awt.Dimension;
  6. import java.awt.Event;
  7. import java.awt.Font;
  8. import java.awt.FontMetrics;
  9. import java.awt.Frame;
  10. import java.awt.Graphics;
  11. import java.awt.Image;
  12. import java.awt.Label;
  13. import java.awt.LayoutManager;
  14. import java.awt.MediaTracker;
  15. import java.awt.Panel;
  16. import java.awt.Toolkit;
  17. import java.awt.image.ImageObserver;
  18. import java.io.ByteArrayOutputStream;
  19. import java.io.DataInputStream;
  20. import java.io.FilterInputStream;
  21. import java.io.IOException;
  22. import java.io.InputStream;
  23. import java.io.OutputStream;
  24. import java.net.MalformedURLException;
  25. import java.net.URL;
  26.  
  27. public class flozoids extends Applet implements Runnable, ImageObserver {
  28.    // $FF: renamed from: a float
  29.    float field_0;
  30.    // $FF: renamed from: b float
  31.    float field_1;
  32.    // $FF: renamed from: c float
  33.    float field_2;
  34.    // $FF: renamed from: d int
  35.    private int field_3;
  36.    // $FF: renamed from: e java.awt.Frame
  37.    Frame field_4;
  38.    // $FF: renamed from: f boolean
  39.    boolean field_5 = false;
  40.    // $FF: renamed from: g java.lang.String
  41.    final String field_6 = method_16("\\\u000eO_]i^]J\u0018[\u001f]ZW==VF[~\u0017\u001f\u001bOj\t\u0011RV{");
  42.    // $FF: renamed from: h java.awt.Color
  43.    Color field_7;
  44.    // $FF: renamed from: i boolean
  45.    boolean field_8;
  46.    // $FF: renamed from: j float
  47.    float field_9;
  48.    // $FF: renamed from: k int
  49.    int field_10;
  50.    // $FF: renamed from: l long
  51.    long field_11;
  52.    // $FF: renamed from: m long
  53.    long field_12;
  54.    // $FF: renamed from: n int
  55.    int field_13;
  56.    // $FF: renamed from: o boolean
  57.    boolean field_14;
  58.    // $FF: renamed from: p java.awt.Color[]
  59.    Color[] field_15;
  60.    // $FF: renamed from: q int[]
  61.    int[] field_16;
  62.    // $FF: renamed from: r int[]
  63.    int[] field_17;
  64.    // $FF: renamed from: s float[]
  65.    float[] field_18;
  66.    // $FF: renamed from: t float[]
  67.    float[] field_19;
  68.    // $FF: renamed from: u float[]
  69.    float[] field_20;
  70.    // $FF: renamed from: v float[]
  71.    float[] field_21;
  72.    // $FF: renamed from: w boolean
  73.    boolean field_22 = false;
  74.    // $FF: renamed from: x java.awt.Font
  75.    Font field_23;
  76.    // $FF: renamed from: y int
  77.    int field_24;
  78.    // $FF: renamed from: z java.awt.Graphics
  79.    private Graphics field_25;
  80.    // $FF: renamed from: A int
  81.    int field_26;
  82.    // $FF: renamed from: B int
  83.    int field_27;
  84.    // $FF: renamed from: C int
  85.    int field_28;
  86.    // $FF: renamed from: D float
  87.    float field_29;
  88.    // $FF: renamed from: E float
  89.    float field_30;
  90.    // $FF: renamed from: F java.awt.Image
  91.    private Image field_31;
  92.    // $FF: renamed from: G java.awt.Image
  93.    Image field_32;
  94.    // $FF: renamed from: H boolean
  95.    boolean field_33;
  96.    // $FF: renamed from: I int
  97.    int field_34;
  98.    // $FF: renamed from: J int
  99.    int field_35;
  100.    // $FF: renamed from: K boolean
  101.    boolean field_36 = false;
  102.    // $FF: renamed from: L java.lang.String[]
  103.    String[] field_37;
  104.    // $FF: renamed from: M java.net.URL
  105.    URL field_38;
  106.    // $FF: renamed from: N float[]
  107.    float[] field_39;
  108.    // $FF: renamed from: O float[]
  109.    float[] field_40;
  110.    // $FF: renamed from: P float
  111.    float field_41;
  112.    // $FF: renamed from: Q int
  113.    int field_42;
  114.    // $FF: renamed from: R int
  115.    int field_43;
  116.    // $FF: renamed from: S java.lang.String
  117.    String field_44;
  118.    // $FF: renamed from: T java.lang.String
  119.    String field_45;
  120.    // $FF: renamed from: U int
  121.    int field_46;
  122.    // $FF: renamed from: V boolean
  123.    boolean field_47 = false;
  124.    // $FF: renamed from: W int
  125.    int field_48;
  126.    // $FF: renamed from: X int
  127.    int field_49;
  128.    // $FF: renamed from: Y java.awt.Graphics
  129.    private Graphics field_50;
  130.    // $FF: renamed from: Z java.awt.Image
  131.    private Image field_51;
  132.    // $FF: renamed from: ba boolean
  133.    boolean field_52 = false;
  134.    // $FF: renamed from: bb java.awt.Image
  135.    private Image field_53;
  136.    // $FF: renamed from: bc boolean
  137.    boolean field_54;
  138.    // $FF: renamed from: bd int
  139.    int field_55;
  140.    // $FF: renamed from: be int
  141.    int field_56;
  142.    // $FF: renamed from: bf int
  143.    int field_57;
  144.    // $FF: renamed from: bg int
  145.    int field_58;
  146.    // $FF: renamed from: bh int
  147.    int field_59;
  148.    // $FF: renamed from: bi boolean
  149.    boolean field_60 = false;
  150.    // $FF: renamed from: bj int
  151.    int field_61;
  152.    // $FF: renamed from: bk java.lang.String
  153.    String field_62;
  154.    // $FF: renamed from: bl int
  155.    int field_63;
  156.    // $FF: renamed from: bm int
  157.    int field_64;
  158.    // $FF: renamed from: bn int
  159.    int field_65;
  160.    // $FF: renamed from: bo java.awt.Color
  161.    Color field_66;
  162.    // $FF: renamed from: bp int
  163.    int field_67;
  164.    // $FF: renamed from: bq int
  165.    int field_68;
  166.    // $FF: renamed from: br int
  167.    int field_69;
  168.    // $FF: renamed from: bs int
  169.    int field_70;
  170.    // $FF: renamed from: bt int
  171.    int field_71;
  172.    // $FF: renamed from: bu int
  173.    int field_72;
  174.    // $FF: renamed from: bv int[]
  175.    int[] field_73;
  176.    // $FF: renamed from: bw int[]
  177.    int[] field_74;
  178.    // $FF: renamed from: bx java.lang.String
  179.    String field_75;
  180.    // $FF: renamed from: by java.awt.Color
  181.    Color field_76;
  182.    // $FF: renamed from: bz int
  183.    int field_77;
  184.    // $FF: renamed from: bA int
  185.    int field_78;
  186.    // $FF: renamed from: bB boolean
  187.    boolean field_79;
  188.    // $FF: renamed from: bC boolean
  189.    boolean field_80;
  190.    // $FF: renamed from: bD java.awt.Toolkit
  191.    Toolkit field_81;
  192.    // $FF: renamed from: bE java.lang.Thread
  193.    Thread field_82;
  194.    // $FF: renamed from: bF int
  195.    int field_83;
  196.    // $FF: renamed from: bG int
  197.    int field_84;
  198.    // $FF: renamed from: bH int
  199.    int field_85;
  200.    // $FF: renamed from: bI int
  201.    int field_86;
  202.    // $FF: renamed from: bJ int[]
  203.    int[] field_87;
  204.    // $FF: renamed from: bK int
  205.    int field_88;
  206.    // $FF: renamed from: bL int
  207.    int field_89;
  208.    // $FF: renamed from: bM int
  209.    int field_90;
  210.    // $FF: renamed from: bN Lware
  211.    Lware field_91;
  212.    // $FF: renamed from: bO int
  213.    int field_92;
  214.    // $FF: renamed from: bP int
  215.    int field_93;
  216.    // $FF: renamed from: bQ int
  217.    int field_94;
  218.    // $FF: renamed from: bR int
  219.    int field_95;
  220.    // $FF: renamed from: bS int
  221.    int field_96;
  222.    // $FF: renamed from: bT java.awt.Font[]
  223.    Font[] field_97;
  224.  
  225.    // $FF: renamed from: a () void
  226.    private final void method_0() {
  227.       while(true) {
  228.          ((Applet)this).showStatus(method_16("Y\u0011Q\u0014L=\fZ^Wk\u001b\u001fDOjP^]^d\u0014^EY3\u001dP^\u0018~\fZWQi\r\u001f_Qs\u001b\u001fZV=6k~t<"));
  229.  
  230.          try {
  231.             Thread.sleep(500L);
  232.          } catch (InterruptedException var1) {
  233.          }
  234.       }
  235.    }
  236.  
  237.    // $FF: renamed from: b () void
  238.    void method_1() {
  239.       float var1 = this.field_0;
  240.       float var2 = -1.0F * this.field_0;
  241.       float var3 = this.field_1;
  242.       float var4 = this.field_41;
  243.       float var5 = this.field_9;
  244.       float[] var6 = this.field_18;
  245.       float[] var7 = this.field_19;
  246.       int var8 = this.field_89;
  247.       int var9 = this.field_27;
  248.       int var10 = this.field_90;
  249.       int var11 = this.field_28;
  250.       int var12 = this.field_48;
  251.       int[] var13 = this.field_16;
  252.       int[] var14 = this.field_17;
  253.       float[] var15 = this.field_39;
  254.       float[] var16 = this.field_20;
  255.       float[] var17 = this.field_40;
  256.       float[] var18 = this.field_21;
  257.       int var21 = this.field_61;
  258.  
  259.       for(int var33 = 0; var33 < var12; ++var33) {
  260.          int var19 = var13[var33];
  261.          float var28 = var16[var33];
  262.          float var29 = var18[var33];
  263.          int var30 = var14[var19];
  264.          int var22 = (int)(var16[var30] - var28);
  265.          int var23 = (int)(var18[var30] - var29);
  266.          int var31 = var13[var33];
  267.          int var24 = (int)(var16[var31] - var28);
  268.          int var25 = (int)(var18[var31] - var29);
  269.          int var32 = var22 * var22 + var23 * var23;
  270.          if (var32 < var24 * var24 + var25 * var25 && var30 != var14[var33]) {
  271.             var13[var33] = var30;
  272.          }
  273.  
  274.          var31 = var14[var33];
  275.          var24 = (int)(var16[var31] - var28);
  276.          var25 = (int)(var18[var31] - var29);
  277.          if (var32 < var24 * var24 + var25 * var25 && var30 != var13[var33]) {
  278.             var14[var33] = var30;
  279.          }
  280.  
  281.          var19 = var14[var33];
  282.          var30 = var14[var19];
  283.          var22 = (int)(var16[var30] - var28);
  284.          var23 = (int)(var18[var30] - var29);
  285.          var31 = var13[var33];
  286.          var24 = (int)(var16[var31] - var28);
  287.          var25 = (int)(var18[var31] - var29);
  288.          var32 = var22 * var22 + var23 * var23;
  289.          if (var32 < var24 * var24 + var25 * var25 && var30 != var14[var33]) {
  290.             var13[var33] = var30;
  291.          }
  292.  
  293.          var31 = var14[var33];
  294.          var24 = (int)(var16[var31] - var28);
  295.          var25 = (int)(var18[var31] - var29);
  296.          if (var32 < var24 * var24 + var25 * var25 && var30 != var13[var33]) {
  297.             var14[var33] = var30;
  298.          }
  299.  
  300.          if (var13[var33] == var33) {
  301.             var13[var33] = (int)(Math.random() * (double)var12);
  302.          }
  303.  
  304.          if (var14[var33] == var33) {
  305.             var14[var33] = (int)(Math.random() * (double)var12);
  306.          }
  307.  
  308.          var15[var33] = var28;
  309.          var17[var33] = var29;
  310.          var30 = var13[var33];
  311.          float var26 = var16[var30];
  312.          float var27 = var18[var30];
  313.          var22 = (int)(var28 - var26);
  314.          var23 = (int)(var29 - var27);
  315.          float var20;
  316.          if (var22 * var22 + var23 * var23 < var21) {
  317.             var20 = var2;
  318.          } else {
  319.             var20 = var1;
  320.          }
  321.  
  322.          if (var28 < var26) {
  323.             var6[var33] += var20;
  324.          } else {
  325.             var6[var33] -= var20;
  326.          }
  327.  
  328.          if (var29 < var27) {
  329.             var7[var33] += var20;
  330.          } else {
  331.             var7[var33] -= var20;
  332.          }
  333.  
  334.          var31 = var14[var33];
  335.          var26 = var16[var31];
  336.          var27 = var18[var31];
  337.          var22 = (int)(var28 - var26);
  338.          var23 = (int)(var29 - var27);
  339.          if (var22 * var22 + var23 * var23 < var21) {
  340.             var20 = var2;
  341.          } else {
  342.             var20 = var1;
  343.          }
  344.  
  345.          if (var28 < var26) {
  346.             var6[var33] += var20;
  347.          } else {
  348.             var6[var33] -= var20;
  349.          }
  350.  
  351.          if (var29 < var27) {
  352.             var7[var33] += var20;
  353.          } else {
  354.             var7[var33] -= var20;
  355.          }
  356.  
  357.          if (var6[var33] > var4) {
  358.             var6[var33] = var4;
  359.          } else if (var6[var33] < -var4) {
  360.             var6[var33] = -var4;
  361.          }
  362.  
  363.          if (var7[var33] > var4) {
  364.             var7[var33] = var4;
  365.          } else if (var7[var33] < -var4) {
  366.             var7[var33] = -var4;
  367.          }
  368.  
  369.          if (var28 < 0.0F) {
  370.             var6[var33] = var5;
  371.          } else if (var28 > (float)var8) {
  372.             var6[var33] = -var5;
  373.          }
  374.  
  375.          if (var29 < 0.0F) {
  376.             var7[var33] = var5;
  377.          } else if (var29 > (float)var9) {
  378.             var7[var33] = -var5;
  379.          }
  380.  
  381.          if (var28 < (float)var10) {
  382.             var6[var33] += var3;
  383.          } else if (var28 > (float)var10) {
  384.             var6[var33] -= var3;
  385.          }
  386.  
  387.          if (var29 < (float)var11) {
  388.             var7[var33] += var3;
  389.          } else if (var29 > (float)var11) {
  390.             var7[var33] -= var3;
  391.          }
  392.  
  393.          var16[var33] += var6[var33];
  394.          var18[var33] += var7[var33];
  395.       }
  396.  
  397.    }
  398.  
  399.    // $FF: renamed from: c () boolean
  400.    public synchronized boolean method_2() {
  401.       ((Component)this).prepareImage(this.field_53, this);
  402.  
  403.       for(int var1 = 0; var1 < 3; ++var1) {
  404.          this.notifyAll();
  405.          Thread.yield();
  406.  
  407.          try {
  408.             Thread.sleep(100L);
  409.          } catch (InterruptedException var2) {
  410.          }
  411.       }
  412.  
  413.       return this.field_52;
  414.    }
  415.  
  416.    public void destroy() {
  417.       if (this.field_53 != null) {
  418.          this.field_53.flush();
  419.       }
  420.  
  421.       this.field_53 = null;
  422.       if (this.field_51 != null) {
  423.          this.field_51.flush();
  424.       }
  425.  
  426.       this.field_51 = null;
  427.       if (this.field_50 != null) {
  428.          this.field_50.dispose();
  429.       }
  430.  
  431.       this.field_50 = null;
  432.       System.gc();
  433.    }
  434.  
  435.    // $FF: renamed from: a (java.lang.String) java.awt.Image
  436.    Image method_3(String var1) {
  437.       try {
  438.          return this.method_4(var1);
  439.       } catch (NoSuchMethodError var2) {
  440.          return this.method_4(var1);
  441.       }
  442.    }
  443.  
  444.    // $FF: renamed from: b (java.lang.String) java.awt.Image
  445.    synchronized Image method_4(String var1) {
  446.       URL var2 = null;
  447.       Image var3 = null;
  448.  
  449.       try {
  450.          var2 = new URL(((Applet)this).getDocumentBase(), var1);
  451.       } catch (MalformedURLException var14) {
  452.       }
  453.  
  454.       try {
  455.          try {
  456.             InputStream var4 = this.getClass().getResourceAsStream(var2.toString());
  457.             if (var4 != null) {
  458.                ByteArrayOutputStream var5 = new ByteArrayOutputStream(1024);
  459.                byte[] var6 = new byte[512];
  460.                boolean var8 = false;
  461.                Object var9 = null;
  462.  
  463.                try {
  464.                   while(!var8) {
  465.                      int var7 = var4.read(var6, 0, 512);
  466.                      if (var7 != -1) {
  467.                         var5.write(var6, 0, var7);
  468.                         ((OutputStream)var5).flush();
  469.                      } else {
  470.                         var8 = true;
  471.                      }
  472.                   }
  473.  
  474.                   var21 = var5.toByteArray();
  475.                   ((OutputStream)var5).close();
  476.                   var4.close();
  477.                } catch (IOException var15) {
  478.                   var21 = null;
  479.                }
  480.  
  481.                System.gc();
  482.                if (var21 != null) {
  483.                   var3 = ((Component)this).getToolkit().createImage(var21);
  484.                   ((Component)this).prepareImage(var3, this);
  485.                }
  486.             }
  487.          } catch (NoSuchMethodError var16) {
  488.          }
  489.       } catch (SecurityException var17) {
  490.       }
  491.  
  492.       if (var3 == null) {
  493.          int var18 = 0;
  494.  
  495.          while(var18 < 5) {
  496.             try {
  497.                if (var18 % 2 == 0) {
  498.                   var3 = Toolkit.getDefaultToolkit().getImage(var2);
  499.                } else {
  500.                   var3 = ((Applet)this).getImage(var2);
  501.                }
  502.  
  503.                ++var18;
  504.                MediaTracker var20 = new MediaTracker(this);
  505.                this.notifyAll();
  506.                Thread.currentThread();
  507.                Thread.yield();
  508.  
  509.                try {
  510.                   var20.addImage(var3, 0);
  511.                   var20.waitForID(0);
  512.                } catch (InterruptedException var12) {
  513.                   var3 = null;
  514.                }
  515.  
  516.                if (var20.isErrorID(0)) {
  517.                   var3 = null;
  518.                } else {
  519.                   var18 = 6;
  520.                }
  521.             } catch (NullPointerException var13) {
  522.                System.gc();
  523.             }
  524.          }
  525.       }
  526.  
  527.       if (var3 == null) {
  528.          for(int var19 = 0; var19 < 25; ++var19) {
  529.             ((Applet)this).showStatus(method_16("T\u0013^T]=") + var1 + method_16("=\u0010PG\u0018{\u0011J]\\<"));
  530.  
  531.             try {
  532.                Thread.currentThread();
  533.                Thread.sleep(250L);
  534.             } catch (InterruptedException var11) {
  535.             }
  536.          }
  537.       } else {
  538.          while(var3.getWidth(this) < 0) {
  539.             this.notifyAll();
  540.             Thread.currentThread();
  541.             Thread.yield();
  542.  
  543.             try {
  544.                Thread.currentThread();
  545.                Thread.sleep(100L);
  546.             } catch (InterruptedException var10) {
  547.             }
  548.          }
  549.       }
  550.  
  551.       return var3;
  552.    }
  553.  
  554.    // $FF: renamed from: a (java.lang.String, int) void
  555.    public void method_5(String var1, int var2) {
  556.       try {
  557.          this.method_6(var1, var2);
  558.       } catch (NoSuchMethodError var3) {
  559.          this.method_6(var1, var2);
  560.       }
  561.    }
  562.  
  563.    // $FF: renamed from: b (java.lang.String, int) void
  564.    public void method_6(String var1, int var2) {
  565.       try {
  566.          URL var3 = new URL(((Applet)this).getDocumentBase(), var1);
  567.  
  568.          try {
  569.             DataInputStream var4 = new DataInputStream(var3.openStream());
  570.             if (var4 != null) {
  571.                ByteArrayOutputStream var5 = new ByteArrayOutputStream(1024);
  572.                byte[] var6 = new byte[512];
  573.                int var7 = 0;
  574.                int var8 = 0;
  575.                boolean var9 = false;
  576.  
  577.                try {
  578.                   while(!var9) {
  579.                      var7 = var4.read(var6, 0, 512);
  580.                      if (var7 == -1) {
  581.                         var9 = true;
  582.                      } else {
  583.                         var5.write(var6, 0, var7);
  584.                         ((OutputStream)var5).flush();
  585.                         var8 += var7;
  586.                      }
  587.                   }
  588.  
  589.                   byte[] var10 = var5.toByteArray();
  590.                   ((OutputStream)var5).close();
  591.                   Object var26 = null;
  592.                   ((FilterInputStream)var4).close();
  593.                   System.gc();
  594.                   if (var2 != 0) {
  595.                      int var29 = 1;
  596.  
  597.                      for(int var13 = 0; var13 < var8; ++var13) {
  598.                         if (var10[var13] == 10) {
  599.                            ++var29;
  600.                         }
  601.                      }
  602.  
  603.                      this.field_37 = new String[var29 - 1];
  604.                      int[] var14 = new int[var29 + 1];
  605.                      int[] var15 = new int[var29 + 1];
  606.                      var14[0] = 0;
  607.                      int var16 = 0;
  608.                      byte var17 = 0;
  609.  
  610.                      for(int var18 = 0; var18 < var8; ++var18) {
  611.                         byte var28 = var10[var18];
  612.                         if (var28 == 10) {
  613.                            var14[var16 + 1] = var18 + 1;
  614.                            if (var17 == 13) {
  615.                               var15[var16] = var18 - var14[var16] - 1;
  616.                            } else {
  617.                               var15[var16] = var18 - var14[var16];
  618.                            }
  619.  
  620.                            ++var16;
  621.                         }
  622.  
  623.                         var17 = var28;
  624.                      }
  625.  
  626.                      var15[var16] = var8 - var14[var16 + 1] - 1;
  627.  
  628.                      try {
  629.                         for(int var19 = 0; var19 < var29 - 1; ++var19) {
  630.                            try {
  631.                               this.field_37[var19] = new String(var10, var14[var19], var15[var19]);
  632.                            } catch (NoSuchMethodError var20) {
  633.                               this.field_37[var19] = new String(var10, 0, var14[var19], var15[var19]);
  634.                            }
  635.                         }
  636.  
  637.                         return;
  638.                      } catch (StringIndexOutOfBoundsException var22) {
  639.                         this.field_37 = null;
  640.                         return;
  641.                      }
  642.                   }
  643.  
  644.                   for(int var12 = 0; var12 < var8; ++var12) {
  645.                      byte var11 = var10[var12];
  646.                      if (var11 == 13 || var11 == 10) {
  647.                         var10[var12] = 32;
  648.                      }
  649.                   }
  650.  
  651.                   try {
  652.                      this.field_62 = new String(var10);
  653.                      return;
  654.                   } catch (NoSuchMethodError var21) {
  655.                      this.field_62 = new String(var10, 0);
  656.                      return;
  657.                   }
  658.                } catch (IOException var23) {
  659.                   return;
  660.                }
  661.             }
  662.          } catch (IOException var24) {
  663.             return;
  664.          }
  665.       } catch (MalformedURLException var25) {
  666.       }
  667.  
  668.    }
  669.  
  670.    // $FF: renamed from: a (java.awt.Graphics) void
  671.    public void method_7(Graphics var1) {
  672.       var1.setFont(this.field_23);
  673.       if (this.field_3 == 0) {
  674.          this.field_93 = this.field_94;
  675.       } else {
  676.          this.field_35 += this.field_83;
  677.          this.field_93 = this.field_94 - (int)Math.abs((double)this.field_3 * Math.sin((double)this.field_35 / (double)90.0F * Math.PI));
  678.       }
  679.  
  680.       if (this.field_68 != 0) {
  681.          for(int var2 = 0; var2 < this.field_85; ++var2) {
  682.             int var3 = this.field_73[this.field_67 + var2];
  683.             var1.copyArea(var2, var3, 1, this.field_70, 0, this.field_58 - var3);
  684.          }
  685.  
  686.          if (this.field_80) {
  687.             var1.setColor(this.field_66);
  688.             var1.drawString(this.field_62, this.field_92 + 1, this.field_58 + this.field_63 + 1);
  689.          }
  690.  
  691.          var1.setColor(this.field_76);
  692.          var1.drawString(this.field_62, this.field_92, this.field_58 + this.field_63);
  693.  
  694.          for(int var4 = 0; var4 < this.field_85; ++var4) {
  695.             var1.copyArea(var4, this.field_58, 1, this.field_71, 0, this.field_74[this.field_67 + var4]);
  696.          }
  697.  
  698.          this.field_67 -= this.field_72;
  699.          if (this.field_67 < 0) {
  700.             this.field_67 += 360;
  701.          }
  702.       } else {
  703.          if (this.field_80) {
  704.             var1.setColor(this.field_66);
  705.             var1.drawString(this.field_62, this.field_92 + 1, this.field_93 + 1);
  706.          }
  707.  
  708.          var1.setColor(this.field_76);
  709.          var1.drawString(this.field_62, this.field_92, this.field_93);
  710.       }
  711.  
  712.       this.field_92 -= this.field_84;
  713.       if (this.field_92 < -this.field_64) {
  714.          this.field_92 = this.field_85;
  715.       }
  716.  
  717.    }
  718.  
  719.    public boolean imageUpdate(Image var1, int var2, int var3, int var4, int var5, int var6) {
  720.       if (var1 == this.field_53) {
  721.          if (var2 == 16) {
  722.             this.field_52 = true;
  723.          }
  724.  
  725.          return true;
  726.       } else {
  727.          return true;
  728.       }
  729.    }
  730.  
  731.    public void init() {
  732.       ((Container)this).setLayout((LayoutManager)null);
  733.       ((Panel)this).addNotify();
  734.       this.field_75 = ((Applet)this).getParameter(method_16("n\n^GMn\u0013LT"));
  735.       this.field_89 = ((Component)this).size().width;
  736.       this.field_27 = ((Component)this).size().height;
  737.       this.field_90 = this.field_89 / 2;
  738.       this.field_28 = this.field_27 / 2;
  739.       Dimension var2 = ((Component)this).size();
  740.       this.field_59 = var2.width;
  741.       this.field_58 = var2.height;
  742.       this.field_88 = var2.width;
  743.       this.field_26 = var2.height;
  744.       Object var3 = null;
  745.       String var49 = ((Applet)this).getParameter(method_16("~\fZWQi\r"));
  746.       if (var49 != null) {
  747.          if (!var49.startsWith(method_16("\\\u000eO_]i^]J\u0018[\u001f]ZW==VF[~\u0017\u001f\u001bOj\t\u0011RV{"))) {
  748.             this.method_0();
  749.          }
  750.       } else {
  751.          this.method_0();
  752.       }
  753.  
  754.       Object var4 = null;
  755.       Object var5 = null;
  756.  
  757.       try {
  758.          var50 = ((Applet)this).getDocumentBase().getProtocol();
  759.       } catch (SecurityException var43) {
  760.          var50 = method_16("{\u0017SV");
  761.       }
  762.  
  763.       try {
  764.          var51 = ((Applet)this).getDocumentBase().getHost();
  765.       } catch (SecurityException var42) {
  766.          var51 = "";
  767.       }
  768.  
  769.       if (!var50.equalsIgnoreCase(method_16("{\u0017SV")) && var51.length() != 0 && !var51.equalsIgnoreCase(method_16("q\u0011\\RTu\u0011LG")) && !var51.equals(method_16(",L\b\u001d\b3N\u0011\u0002"))) {
  770.          if (var51.startsWith(method_16("j\tH\u001d"))) {
  771.             var51 = var51.substring(4);
  772.          }
  773.  
  774.          Object var6 = null;
  775.          String var52 = ((Applet)this).getParameter(method_16("o\u001bXPWy\u001b"));
  776.          if (var52 != null && !var52.equals("NO") && var52.length() > 10) {
  777.             int var7 = 1;
  778.  
  779.             try {
  780.                for(int var8 = 0; var8 < var52.length(); ++var8) {
  781.                   if (var52.charAt(var8) == '+') {
  782.                      ++var7;
  783.                   }
  784.                }
  785.             } catch (StringIndexOutOfBoundsException var45) {
  786.             }
  787.  
  788.             int[] var55 = new int[var7];
  789.             if (var7 == 1) {
  790.                var55[0] = var52.length();
  791.             } else {
  792.                int var9 = 0;
  793.  
  794.                try {
  795.                   for(int var10 = 0; var10 < var52.length(); ++var10) {
  796.                      if (var52.charAt(var10) == '+') {
  797.                         var55[var9] = var10;
  798.                         ++var9;
  799.                      }
  800.                   }
  801.                } catch (StringIndexOutOfBoundsException var44) {
  802.                }
  803.  
  804.                var55[var9] = var52.length();
  805.             }
  806.  
  807.             String[] var57 = new String[var7];
  808.             int var59 = 0;
  809.  
  810.             for(int var11 = 0; var11 < var7; ++var11) {
  811.                try {
  812.                   var57[var11] = var52.substring(var59, var55[var11]);
  813.                } catch (StringIndexOutOfBoundsException var41) {
  814.                }
  815.  
  816.                var59 = var55[var11] + 1;
  817.             }
  818.  
  819.             for(int var12 = 0; var12 < var7; ++var12) {
  820.                int var13 = var57[var12].length() - 8;
  821.                byte[] var17 = new byte[var13];
  822.                byte[] var18 = new byte[8];
  823.                var57[var12].getBytes(0, var13, var17, 0);
  824.                var57[var12].getBytes(var13, var13 + 8, var18, 0);
  825.                int var15 = var13 % 7;
  826.                int var16 = var13 % 3;
  827.  
  828.                for(int var19 = 0; var19 < var13; ++var19) {
  829.                   byte var14 = var17[var19];
  830.                   if (var14 >= 48 && var14 <= 57) {
  831.                      var17[var19] = this.method_10(var14, var15, 48, 57);
  832.                   } else if (var14 >= 65 && var14 <= 90) {
  833.                      var17[var19] = this.method_10(var14, var15, 65, 90);
  834.                   } else if (var14 >= 97 && var14 <= 122) {
  835.                      var17[var19] = this.method_10(var14, var15, 97, 122);
  836.                   } else if (var14 == 45) {
  837.                      var17[var19] = 46;
  838.                   } else if (var14 == 46) {
  839.                      var17[var19] = 45;
  840.                   }
  841.  
  842.                   if ((var15 += var16) > 7) {
  843.                      var15 = 1;
  844.                   }
  845.                }
  846.  
  847.                int var20 = 0;
  848.                int var21 = 0;
  849.  
  850.                for(int var22 = 0; var22 < 4; ++var22) {
  851.                   var18[var22] = (byte)(var18[var22] - 52);
  852.                }
  853.  
  854.                for(int var23 = 4; var23 < 8; ++var23) {
  855.                   var18[var23] = (byte)(var18[var23] - 55);
  856.                }
  857.  
  858.                for(int var24 = 0; var24 < var13; var24 += 2) {
  859.                   var20 += var17[var24];
  860.                }
  861.  
  862.                for(int var25 = 1; var25 < var13; var25 += 2) {
  863.                   var21 += var17[var25];
  864.                }
  865.  
  866.                String var26 = String.valueOf(var20);
  867.  
  868.                String var27;
  869.                for(var27 = String.valueOf(var21); var26.length() < 4; var26 = "0" + var26) {
  870.                }
  871.  
  872.                while(var27.length() < 4) {
  873.                   var27 = "0" + var27;
  874.                }
  875.  
  876.                byte[] var28 = new byte[8];
  877.                var26.getBytes(0, 4, var28, 0);
  878.                var27.getBytes(0, 4, var28, 4);
  879.                String var29 = new String(var28, 0);
  880.                if (var29.equals(new String(var18, 0))) {
  881.                   String var30 = new String(var17, 0);
  882.                   Object var31 = null;
  883.                   String var92;
  884.                   if (var30.startsWith(method_16("j\tH\u001d"))) {
  885.                      var92 = var30.substring(4);
  886.                   } else {
  887.                      var92 = var30;
  888.                   }
  889.  
  890.                   if (var51.equalsIgnoreCase(var92)) {
  891.                      this.field_60 = true;
  892.                   }
  893.                }
  894.             }
  895.          }
  896.       } else {
  897.          this.field_60 = true;
  898.       }
  899.  
  900.       String var53 = ((Applet)this).getParameter(method_16("o\u001bX_Qs\u0015"));
  901.       if (var53 != null && !var53.equalsIgnoreCase("NO")) {
  902.          try {
  903.             this.field_38 = new URL(((Applet)this).getDocumentBase(), var53);
  904.          } catch (MalformedURLException var40) {
  905.             this.field_38 = null;
  906.          }
  907.       }
  908.  
  909.       String var54 = ((Applet)this).getParameter(method_16("o\u001bX]]j\u0018MRUx"));
  910.       if (var54.equalsIgnoreCase(method_16("D;l"))) {
  911.          this.field_47 = true;
  912.       }
  913.  
  914.       Container var56;
  915.       for(var56 = ((Component)this).getParent(); !(var56 instanceof Frame); var56 = ((Component)var56).getParent()) {
  916.       }
  917.  
  918.       this.field_4 = (Frame)var56;
  919.       this.field_4.setCursor(3);
  920.       String var58 = ((Applet)this).getParameter(method_16("r\bZAQp\u0019"));
  921.       if (var58 != null && !var58.equalsIgnoreCase("NO")) {
  922.          this.field_53 = this.method_3(var58);
  923.          if (this.field_53 != null) {
  924.             String var60 = ((Applet)this).getParameter(method_16("r\bZAQp\u0019g"));
  925.             if (var60 == null) {
  926.                var60 = "0";
  927.             }
  928.  
  929.             this.field_55 = Integer.valueOf(var60);
  930.             String var69 = ((Applet)this).getParameter(method_16("r\bZAQp\u0019f"));
  931.             if (var69 == null) {
  932.                var69 = "0";
  933.             }
  934.  
  935.             this.field_56 = Integer.valueOf(var69);
  936.          }
  937.       }
  938.  
  939.       String var61 = ((Applet)this).getParameter(method_16("s\u000bRUTr\u0004"));
  940.       if (var61 == null) {
  941.          this.field_48 = 15;
  942.       } else {
  943.          this.field_48 = Integer.parseInt(var61);
  944.       }
  945.  
  946.       var61 = ((Applet)this).getParameter(method_16("{\u0012PI\\t\rKRV~\u001b"));
  947.       if (var61 == null) {
  948.          this.field_61 = 200;
  949.       } else {
  950.          this.field_61 = Integer.parseInt(var61);
  951.       }
  952.  
  953.       var61 = ((Applet)this).getParameter(method_16("i\u0011\\VVi\u001bM"));
  954.       if (var61 == null) {
  955.          this.field_1 = 0.1F;
  956.       } else {
  957.          Float var1 = new Float(var61);
  958.          this.field_1 = var1 / 1000.0F;
  959.          this.field_2 = this.field_1;
  960.       }
  961.  
  962.       var61 = ((Applet)this).getParameter(method_16("|\u001d\\VTx\f^GQr\u0010"));
  963.       if (var61 == null) {
  964.          this.field_0 = 0.3F;
  965.       } else {
  966.          Float var46 = new Float(var61);
  967.          this.field_0 = var46 / 100.0F;
  968.       }
  969.  
  970.       var61 = ((Applet)this).getParameter(method_16("t\u0010KVJ|\u001dKZNx"));
  971.       if (var61.equalsIgnoreCase(method_16("D;l"))) {
  972.          this.field_33 = true;
  973.       } else {
  974.          this.field_33 = false;
  975.       }
  976.  
  977.       var61 = ((Applet)this).getParameter(method_16("n\u000eZV\\"));
  978.       if (var61 == null) {
  979.          this.field_41 = 5.0F;
  980.       } else {
  981.          Float var47 = new Float(var61);
  982.          this.field_41 = var47;
  983.       }
  984.  
  985.       var61 = ((Applet)this).getParameter(method_16("\u007f\u001f\\XQp\u001fXV"));
  986.       if (var61 != null && !var61.equalsIgnoreCase("NO")) {
  987.          this.field_8 = true;
  988.          this.field_32 = this.method_3(var61);
  989.          if (this.field_32 == null) {
  990.             this.field_8 = false;
  991.          }
  992.       } else {
  993.          this.field_8 = false;
  994.       }
  995.  
  996.       Object var70 = null;
  997.       String var71 = ((Applet)this).getParameter(method_16("{\u0016ZR\\n"));
  998.       if (var71.equalsIgnoreCase(method_16("D;l"))) {
  999.          this.field_14 = true;
  1000.       } else {
  1001.          this.field_14 = false;
  1002.       }
  1003.  
  1004.       Object var72 = null;
  1005.       String var73 = ((Applet)this).getParameter(method_16("r\bZALx\u0006K"));
  1006.       if (var73.equalsIgnoreCase(method_16("D;l"))) {
  1007.          this.field_54 = true;
  1008.       } else {
  1009.          this.field_54 = false;
  1010.       }
  1011.  
  1012.       var61 = ((Applet)this).getParameter(method_16("n\u0017[VZr\u000bQPQs\u0019"));
  1013.       if (var61 == null) {
  1014.          this.field_9 = 0.8F;
  1015.       } else {
  1016.          Float var48 = new Float(var61);
  1017.          this.field_9 = var48 / 100.0F;
  1018.       }
  1019.  
  1020.       String var74 = ((Applet)this).getParameter(method_16("\u007f\u001f\\Xj"));
  1021.       String var75 = ((Applet)this).getParameter(method_16("\u007f\u001f\\X\u007f"));
  1022.       String var76 = ((Applet)this).getParameter(method_16("\u007f\u001f\\Xz"));
  1023.       String var77 = ((Applet)this).getParameter(method_16("{\u0012PIj,"));
  1024.       String var78 = ((Applet)this).getParameter(method_16("{\u0012PI\u007f,"));
  1025.       String var79 = ((Applet)this).getParameter(method_16("{\u0012PIz,"));
  1026.       String var80 = ((Applet)this).getParameter(method_16("{\u0012PIj/"));
  1027.       String var81 = ((Applet)this).getParameter(method_16("{\u0012PI\u007f/"));
  1028.       String var82 = ((Applet)this).getParameter(method_16("{\u0012PIz/"));
  1029.       int var83 = Integer.valueOf(var74);
  1030.       int var84 = Integer.valueOf(var75);
  1031.       int var85 = Integer.valueOf(var76);
  1032.       int var86 = Integer.valueOf(var77);
  1033.       int var87 = Integer.valueOf(var78);
  1034.       int var88 = Integer.valueOf(var79);
  1035.       int var89 = Integer.valueOf(var80);
  1036.       int var90 = Integer.valueOf(var81);
  1037.       int var91 = Integer.valueOf(var82);
  1038.       if (var83 > 255) {
  1039.          var83 = 255;
  1040.       } else if (var83 < 0) {
  1041.          var83 = 0;
  1042.       }
  1043.  
  1044.       if (var84 > 255) {
  1045.          var84 = 255;
  1046.       } else if (var83 < 0) {
  1047.          var83 = 0;
  1048.       }
  1049.  
  1050.       if (var85 > 255) {
  1051.          var85 = 255;
  1052.       } else if (var83 < 0) {
  1053.          var83 = 0;
  1054.       }
  1055.  
  1056.       this.field_7 = new Color(var83, var84, var85);
  1057.       this.field_15 = new Color[this.field_48];
  1058.       float var36 = 255.0F / (float)this.field_48;
  1059.  
  1060.       for(int var37 = 0; var37 < this.field_48; ++var37) {
  1061.          float var34 = var36 * (float)var37;
  1062.          float var35 = 255.0F - var34;
  1063.          int var93 = (int)((float)var86 * var34 / 256.0F + (float)var89 * var35 / 256.0F);
  1064.          int var32 = (int)((float)var87 * var34 / 256.0F + (float)var90 * var35 / 256.0F);
  1065.          int var33 = (int)((float)var88 * var34 / 256.0F + (float)var91 * var35 / 256.0F);
  1066.          this.field_15[var37] = new Color(var93, var32, var33);
  1067.       }
  1068.  
  1069.       this.field_44 = ((Applet)this).getParameter(method_16("p\u001bRW]q\u001fF"));
  1070.       this.field_45 = ((Applet)this).getParameter(method_16("m\fV\\Jt\nF"));
  1071.       this.field_42 = Integer.valueOf(this.field_44);
  1072.       this.field_57 = Integer.valueOf(this.field_45);
  1073.       this.field_45 = null;
  1074.       this.field_45 = ((Applet)this).getParameter(method_16("P\u0017Q`aS="));
  1075.       this.field_43 = Integer.valueOf(this.field_45);
  1076.       if (this.field_42 < 0) {
  1077.          this.field_42 = 0;
  1078.       }
  1079.  
  1080.       if (this.field_57 > 10) {
  1081.          this.field_57 = 10;
  1082.       } else if (this.field_57 < 1) {
  1083.          this.field_57 = 1;
  1084.       }
  1085.  
  1086.       this.field_20 = new float[this.field_48];
  1087.       this.field_21 = new float[this.field_48];
  1088.       this.field_18 = new float[this.field_48];
  1089.       this.field_19 = new float[this.field_48];
  1090.       this.field_16 = new int[this.field_48];
  1091.       this.field_17 = new int[this.field_48];
  1092.       this.field_39 = new float[this.field_48];
  1093.       this.field_40 = new float[this.field_48];
  1094.  
  1095.       for(int var38 = 0; var38 < this.field_48; ++var38) {
  1096.          this.field_39[var38] = this.field_20[var38] = (float)Math.random() * (float)(this.field_89 - 60) + 30.0F;
  1097.          this.field_40[var38] = this.field_21[var38] = (float)Math.random() * (float)(this.field_27 - 60) + 30.0F;
  1098.          this.field_18[var38] = (float)Math.random() * 4.0F - 2.0F;
  1099.          this.field_19[var38] = (float)Math.random() * 4.0F - 2.0F;
  1100.       }
  1101.  
  1102.       this.method_9();
  1103.       this.method_11();
  1104.       if (this.field_68 != 0) {
  1105.          this.field_51 = ((Component)this).createImage(this.field_89, this.field_27 + this.field_70);
  1106.       } else {
  1107.          this.field_51 = ((Component)this).createImage(this.field_89, this.field_27);
  1108.       }
  1109.  
  1110.       this.field_50 = this.field_51.getGraphics();
  1111.       if (!this.field_60) {
  1112.          Label var39 = new Label(method_16("[\u0012PIWt\u001aL\u0013Ym\u000eSVL=\u001cF\u0013~|\u001cV\\\u0018^\u0017JP[t^\u000e\n\u0001*Q\u0006\u000b\u0016"));
  1113.          this.field_91 = new Lware(((Applet)this).getAppletContext(), var39);
  1114.          this.field_91.setTitle(method_16("[\u0012PIWt\u001aL\u0013ym\u000eSVL=\u001cF\u0013~|\u001cV\\\u0018^\u0017JP[t"));
  1115.          this.field_91.hide();
  1116.       }
  1117.  
  1118.    }
  1119.  
  1120.    public final boolean mouseDown(Event var1, int var2, int var3) {
  1121.       if (!this.field_60) {
  1122.          this.field_91.show();
  1123.          this.field_91.toFront();
  1124.          this.field_91.requestFocus();
  1125.       } else if (this.field_38 != null) {
  1126.          if (this.field_47) {
  1127.             ((Applet)this).getAppletContext().showDocument(this.field_38, ((Applet)this).getParameter(method_16("o\u001bXUJ|\u0013Z]Yp\u001b")));
  1128.          } else {
  1129.             ((Applet)this).getAppletContext().showDocument(this.field_38);
  1130.          }
  1131.       }
  1132.  
  1133.       return true;
  1134.    }
  1135.  
  1136.    public final boolean mouseEnter(Event var1, int var2, int var3) {
  1137.       ((Applet)this).showStatus(this.field_75);
  1138.       return true;
  1139.    }
  1140.  
  1141.    public final boolean mouseExit(Event var1, int var2, int var3) {
  1142.       ((Applet)this).showStatus("");
  1143.       return true;
  1144.    }
  1145.  
  1146.    public final synchronized boolean mouseMove(Event var1, int var2, int var3) {
  1147.       if (this.field_33) {
  1148.          this.field_22 = true;
  1149.          this.field_12 = System.currentTimeMillis();
  1150.          this.field_90 = var2;
  1151.          this.field_28 = var3;
  1152.          this.field_1 = 0.5F;
  1153.       }
  1154.  
  1155.       return true;
  1156.    }
  1157.  
  1158.    public void paint(Graphics var1) {
  1159.       var1.drawImage(this.field_51, 0, 0, this);
  1160.    }
  1161.  
  1162.    // $FF: renamed from: d () void
  1163.    public synchronized void method_8() {
  1164.       if (this.field_5) {
  1165.          this.notifyAll();
  1166.  
  1167.          while(!this.field_52) {
  1168.             Thread.yield();
  1169.  
  1170.             try {
  1171.                Thread.sleep(8L);
  1172.             } catch (InterruptedException var1) {
  1173.             }
  1174.          }
  1175.  
  1176.          this.field_52 = false;
  1177.       }
  1178.  
  1179.       this.field_50.drawImage(this.field_53, this.field_55, this.field_56, this);
  1180.    }
  1181.  
  1182.    // $FF: renamed from: e () void
  1183.    void method_9() {
  1184.       int var1 = this.field_48;
  1185.       int[] var2 = this.field_16;
  1186.       int[] var3 = this.field_17;
  1187.  
  1188.       for(int var4 = 0; var4 < var1; ++var4) {
  1189.          var2[var4] = (int)(Math.random() * (double)var1);
  1190.          var3[var4] = (int)(Math.random() * (double)var1);
  1191.       }
  1192.  
  1193.    }
  1194.  
  1195.    public void run() {
  1196.       this.field_81 = ((Component)this).getToolkit();
  1197.       this.field_82.setPriority(this.field_57);
  1198.       ((Applet)this).showStatus("");
  1199.       System.gc();
  1200.       this.field_11 = System.currentTimeMillis();
  1201.       Graphics var1 = ((Component)this).getGraphics();
  1202.       if (this.field_53 != null && !this.field_5) {
  1203.          this.field_5 = this.method_2();
  1204.       }
  1205.  
  1206.       if (this.field_38 != null) {
  1207.          this.field_4.setCursor(12);
  1208.       } else {
  1209.          this.field_4.setCursor(0);
  1210.       }
  1211.  
  1212.       Color[] var2 = this.field_15;
  1213.       int var3 = this.field_48;
  1214.       float[] var4 = this.field_39;
  1215.       float[] var5 = this.field_20;
  1216.       float[] var6 = this.field_40;
  1217.       float[] var7 = this.field_21;
  1218.  
  1219.       while(this.field_82 != null) {
  1220.          this.method_1();
  1221.          if ((this.field_22 = true) && System.currentTimeMillis() - this.field_12 > 4000L) {
  1222.             this.field_22 = false;
  1223.             this.field_90 = this.field_89 / 2;
  1224.             this.field_28 = this.field_27 / 2;
  1225.             this.field_1 = this.field_2;
  1226.          }
  1227.  
  1228.          if (Math.random() < 0.05) {
  1229.             this.method_9();
  1230.          }
  1231.  
  1232.          if (++this.field_10 == this.field_42) {
  1233.             System.gc();
  1234.             this.field_10 = 0;
  1235.          }
  1236.  
  1237.          if (!this.field_8) {
  1238.             this.field_50.setColor(this.field_7);
  1239.             this.field_50.fillRect(0, 0, this.field_89, this.field_27);
  1240.          } else {
  1241.             this.field_50.drawImage(this.field_32, 0, 0, this);
  1242.          }
  1243.  
  1244.          if (this.field_79 && this.field_54) {
  1245.             this.method_12(this.field_50);
  1246.          }
  1247.  
  1248.          if (this.field_14) {
  1249.             for(int var9 = 0; var9 < var3; ++var9) {
  1250.                this.field_50.setColor(var2[var9]);
  1251.                this.field_50.drawLine((int)var4[var9], (int)var6[var9], (int)var5[var9], (int)var7[var9]);
  1252.                this.field_50.fillOval((int)var5[var9], (int)var7[var9] - 1, 3, 3);
  1253.             }
  1254.          } else {
  1255.             for(int var8 = 0; var8 < var3; ++var8) {
  1256.                this.field_50.setColor(var2[var8]);
  1257.                this.field_50.drawLine((int)var4[var8], (int)var6[var8], (int)var5[var8], (int)var7[var8]);
  1258.             }
  1259.          }
  1260.  
  1261.          if (this.field_53 != null) {
  1262.             this.method_8();
  1263.          }
  1264.  
  1265.          if (this.field_79 && !this.field_54) {
  1266.             this.method_12(this.field_50);
  1267.          }
  1268.  
  1269.          var1.drawImage(this.field_51, 0, 0, this);
  1270.          this.method_14();
  1271.       }
  1272.  
  1273.    }
  1274.  
  1275.    // $FF: renamed from: a (int, int, int, int) byte
  1276.    byte method_10(int var1, int var2, int var3, int var4) {
  1277.       int var5 = var1 - var2;
  1278.       if (var5 >= var3) {
  1279.          return (byte)var5;
  1280.       } else {
  1281.          int var6 = var3 - var5 - 1;
  1282.          return (byte)(var4 - var6);
  1283.       }
  1284.    }
  1285.  
  1286.    // $FF: renamed from: f () void
  1287.    public void method_11() {
  1288.       Object var2 = null;
  1289.       this.field_79 = false;
  1290.       String var20 = ((Applet)this).getParameter(method_16("i\u001bGGK~\fP_T"));
  1291.       if (var20 != null && !var20.equalsIgnoreCase("NO")) {
  1292.          Object var3 = null;
  1293.          String var21 = ((Applet)this).getParameter(method_16("i\u001bGGLd\u000eZ"));
  1294.          if (var21 == null) {
  1295.             var21 = method_16("u\u0011MZBr\u0010KRT");
  1296.          }
  1297.  
  1298.          if (var21.equals(method_16("u\u0011MZBr\u0010KRT"))) {
  1299.             this.field_65 = 0;
  1300.          } else if (var21.equals(method_16("k\u001bMGQ~\u001fS"))) {
  1301.             this.field_65 = 1;
  1302.          } else if (var21.equals(method_16("g\u0011P^Qs\u0019"))) {
  1303.             this.field_65 = 2;
  1304.          } else if (var21.equals(method_16("t\u0010IIWr\u0013V]_"))) {
  1305.             this.field_65 = 3;
  1306.          }
  1307.  
  1308.          if (this.field_65 == 0) {
  1309.             this.method_5(var20, 0);
  1310.             if (this.field_62 != null) {
  1311.                this.field_79 = true;
  1312.             }
  1313.          } else {
  1314.             this.method_5(var20, 1);
  1315.             if (this.field_37 != null) {
  1316.                this.field_79 = true;
  1317.             }
  1318.          }
  1319.       }
  1320.  
  1321.       if (this.field_79) {
  1322.          Object var22 = null;
  1323.          String var23 = ((Applet)this).getParameter(method_16("i\u001bGGKm\u001bZW"));
  1324.          if (var23 == null) {
  1325.             var23 = "0";
  1326.          }
  1327.  
  1328.          this.field_84 = Integer.valueOf(var23);
  1329.          Object var4 = null;
  1330.          String var24 = ((Applet)this).getParameter(method_16("i\u001bGG^r\u0010K"));
  1331.          if (var24 == null) {
  1332.             var24 = method_16("\\\fVRT");
  1333.          }
  1334.  
  1335.          int var5 = 0;
  1336.          Object var6 = null;
  1337.          String var25 = ((Applet)this).getParameter(method_16("i\u001bGGZr\u0012["));
  1338.          if (var25.equalsIgnoreCase(method_16("D;l"))) {
  1339.             ++var5;
  1340.          }
  1341.  
  1342.          Object var7 = null;
  1343.          String var26 = ((Applet)this).getParameter(method_16("i\u001bGGQi\u001fSZ["));
  1344.          if (var26 == null) {
  1345.             var26 = "NO";
  1346.          }
  1347.  
  1348.          if (var26.equalsIgnoreCase(method_16("D;l"))) {
  1349.             var5 += 2;
  1350.          }
  1351.  
  1352.          Object var8 = null;
  1353.          String var27 = ((Applet)this).getParameter(method_16("i\u001bGGKt\u0004Z"));
  1354.          if (var27 == null) {
  1355.             var27 = "12";
  1356.          }
  1357.  
  1358.          int var9 = Integer.valueOf(var27);
  1359.          this.field_23 = new Font(var24, var5, var9);
  1360.          Object var10 = null;
  1361.          String var28 = ((Applet)this).getParameter(method_16("i\u001bGGKu\u001f[\\O"));
  1362.          if (var28.equalsIgnoreCase(method_16("D;l"))) {
  1363.             this.field_80 = true;
  1364.          } else {
  1365.             this.field_80 = false;
  1366.          }
  1367.  
  1368.          this.field_76 = new Color(Integer.valueOf(((Applet)this).getParameter(method_16("I\u001bGG{r\u0012m"))), Integer.valueOf(((Applet)this).getParameter(method_16("I\u001bGG{r\u0012x"))), Integer.valueOf(((Applet)this).getParameter(method_16("I\u001bGG{r\u0012}"))));
  1369.          this.field_66 = new Color(Integer.valueOf(((Applet)this).getParameter(method_16("I\u001bGGk^\u0011Sa"))), Integer.valueOf(((Applet)this).getParameter(method_16("I\u001bGGk^\u0011St"))), Integer.valueOf(((Applet)this).getParameter(method_16("I\u001bGGk^\u0011Sq"))));
  1370.          this.field_85 = ((Component)this).size().width;
  1371.          this.field_86 = ((Component)this).size().height;
  1372.          if (this.field_65 == 0) {
  1373.             Object var11 = null;
  1374.             String var29 = ((Applet)this).getParameter(method_16("i\u001bGGW{\u0018LVL"));
  1375.             if (var29 == null) {
  1376.                var29 = "0";
  1377.             }
  1378.  
  1379.             this.field_94 = Integer.valueOf(var29);
  1380.             if (this.field_94 < 0) {
  1381.                this.field_94 = 0;
  1382.             }
  1383.  
  1384.             Object var12 = null;
  1385.             String var34 = ((Applet)this).getParameter(method_16("I\u001bGGrh\u0013OrUm"));
  1386.             if (var34 == null) {
  1387.                var34 = "0";
  1388.             }
  1389.  
  1390.             this.field_3 = Integer.valueOf(var34);
  1391.             Object var13 = null;
  1392.             String var38 = ((Applet)this).getParameter(method_16("I\u001bGGrh\u0013O`Hy"));
  1393.             if (var38 == null) {
  1394.                var38 = "0";
  1395.             }
  1396.  
  1397.             this.field_83 = Integer.valueOf(var38);
  1398.             Object var14 = null;
  1399.             String var41 = ((Applet)this).getParameter(method_16("I\u001bGGkt\u0010ZrUm"));
  1400.             if (var41 == null) {
  1401.                var41 = "0";
  1402.             }
  1403.  
  1404.             this.field_68 = Integer.valueOf(var41);
  1405.             Object var15 = null;
  1406.             String var42 = ((Applet)this).getParameter(method_16("I\u001bGGkt\u0010Z`Hy"));
  1407.             if (var42 == null) {
  1408.                var42 = "0";
  1409.             }
  1410.  
  1411.             this.field_72 = Integer.valueOf(var42);
  1412.             Object var16 = null;
  1413.             String var43 = ((Applet)this).getParameter(method_16("I\u001bGGkt\u0010ZrVz\u0012Z"));
  1414.             if (var43 == null) {
  1415.                var43 = "0";
  1416.             }
  1417.  
  1418.             this.field_69 = Integer.valueOf(var43);
  1419.             FontMetrics var17 = ((Component)this).getGraphics().getFontMetrics(this.field_23);
  1420.             this.field_64 = var17.stringWidth(this.field_62);
  1421.             this.field_63 = var17.getHeight();
  1422.             this.field_13 = var17.getMaxDescent();
  1423.             this.field_92 = this.field_85;
  1424.             if (this.field_94 < this.field_63 - this.field_13) {
  1425.                this.field_94 = this.field_63 - this.field_13;
  1426.             } else if (this.field_94 > this.field_86 - this.field_13) {
  1427.                this.field_94 = this.field_86 - this.field_13;
  1428.             }
  1429.  
  1430.             if (this.field_68 != 0) {
  1431.                this.field_73 = new int[this.field_85 + 360];
  1432.                this.field_74 = new int[this.field_85 + 360];
  1433.  
  1434.                for(int var1 = 0; var1 < this.field_85 + 360; ++var1) {
  1435.                   this.field_73[var1] = (int)((double)this.field_68 * Math.sin((double)this.field_69 * (double)var1 * Math.PI / (double)180.0F)) - this.field_63 - this.field_13 + this.field_94;
  1436.                   this.field_74[var1] = this.field_73[var1] - this.field_58;
  1437.                }
  1438.  
  1439.                this.field_67 = 360;
  1440.                this.field_70 = this.field_63 + this.field_13 + 1;
  1441.                this.field_71 = this.field_70 - 1;
  1442.                return;
  1443.             }
  1444.          } else {
  1445.             if (this.field_65 == 1) {
  1446.                Object var32 = null;
  1447.                String var33 = ((Applet)this).getParameter(method_16("i\u001bGGNn\u000e^P]"));
  1448.                if (var33 == null) {
  1449.                   var33 = "10";
  1450.                }
  1451.  
  1452.                int var37 = Integer.valueOf(var33);
  1453.                FontMetrics var40 = ((Component)this).getGraphics().getFontMetrics(this.field_23);
  1454.                this.field_24 = var40.getHeight() + var37;
  1455.                this.field_87 = new int[this.field_37.length];
  1456.  
  1457.                for(int var19 = 0; var19 < this.field_37.length; ++var19) {
  1458.                   this.field_87[var19] = (this.field_85 - var40.stringWidth(this.field_37[var19])) / 2;
  1459.                }
  1460.  
  1461.                this.field_46 = -this.field_24;
  1462.                return;
  1463.             }
  1464.  
  1465.             if (this.field_65 >= 2) {
  1466.                Object var30 = null;
  1467.                String var31 = ((Applet)this).getParameter(method_16("i\u001bGGUt\u0010Y\\Vi"));
  1468.                if (var31 == null) {
  1469.                   var31 = "2";
  1470.                }
  1471.  
  1472.                this.field_78 = Integer.valueOf(var31);
  1473.                Object var35 = null;
  1474.                String var36 = ((Applet)this).getParameter(method_16("i\u001bGGU|\u0006Y\\Vi"));
  1475.                if (var36 == null) {
  1476.                   var36 = "72";
  1477.                }
  1478.  
  1479.                this.field_77 = Integer.valueOf(var36);
  1480.                this.field_49 = this.field_77 - this.field_78;
  1481.                this.field_23 = null;
  1482.                this.field_97 = new Font[this.field_49];
  1483.                int var39 = this.field_78;
  1484.  
  1485.                for(int var18 = 0; var18 < this.field_49; ++var18) {
  1486.                   this.field_97[var18] = new Font(var24, var5, var39++);
  1487.                }
  1488.  
  1489.                this.field_30 = (float)this.field_85 / 2.0F;
  1490.                this.field_29 = (float)this.field_86 / 2.0F;
  1491.                if (this.field_65 == 3) {
  1492.                   this.field_96 = this.field_49 - 1;
  1493.                   return;
  1494.                }
  1495.  
  1496.                this.field_96 = 0;
  1497.             }
  1498.          }
  1499.       }
  1500.  
  1501.    }
  1502.  
  1503.    // $FF: renamed from: b (java.awt.Graphics) void
  1504.    public void method_12(Graphics var1) {
  1505.       switch (this.field_65) {
  1506.          case 0:
  1507.             this.method_7(var1);
  1508.             return;
  1509.          case 1:
  1510.             this.method_13(var1);
  1511.             return;
  1512.          default:
  1513.             this.method_15(var1);
  1514.       }
  1515.    }
  1516.  
  1517.    public void start() {
  1518.       if (this.field_82 == null) {
  1519.          this.field_82 = new Thread(this);
  1520.          this.field_82.start();
  1521.       }
  1522.  
  1523.    }
  1524.  
  1525.    public void stop() {
  1526.       if (this.field_82 != null && this.field_82.isAlive()) {
  1527.          this.field_82.stop();
  1528.       }
  1529.  
  1530.       this.field_82 = null;
  1531.    }
  1532.  
  1533.    public void update(Graphics var1) {
  1534.       this.paint(var1);
  1535.    }
  1536.  
  1537.    // $FF: renamed from: c (java.awt.Graphics) void
  1538.    public void method_13(Graphics var1) {
  1539.       var1.setFont(this.field_23);
  1540.       this.field_46 += this.field_84;
  1541.       if (this.field_46 > this.field_86 + this.field_37.length * this.field_24) {
  1542.          this.field_46 = -this.field_24;
  1543.       }
  1544.  
  1545.       if (this.field_80) {
  1546.          for(int var6 = 0; var6 < this.field_37.length; ++var6) {
  1547.             String var5 = this.field_37[var6];
  1548.             int var3 = this.field_87[var6];
  1549.             int var4 = this.field_86 - this.field_46 + var6 * this.field_24;
  1550.             var1.setColor(this.field_66);
  1551.             var1.drawString(var5, var3 + 1, var4 + 1);
  1552.             var1.setColor(this.field_76);
  1553.             var1.drawString(var5, var3, var4);
  1554.          }
  1555.  
  1556.       } else {
  1557.          var1.setColor(this.field_76);
  1558.  
  1559.          for(int var2 = 0; var2 < this.field_37.length; ++var2) {
  1560.             var1.drawString(this.field_37[var2], this.field_87[var2], this.field_86 - this.field_46 + var2 * this.field_24);
  1561.          }
  1562.  
  1563.       }
  1564.    }
  1565.  
  1566.    // $FF: renamed from: g () void
  1567.    public synchronized void method_14() {
  1568.       Thread.yield();
  1569.       this.field_81.sync();
  1570.       long var1 = 10L - (System.currentTimeMillis() - this.field_11);
  1571.       if (var1 > 0L) {
  1572.          try {
  1573.             Thread.sleep(var1);
  1574.          } catch (InterruptedException var5) {
  1575.          }
  1576.       } else {
  1577.          try {
  1578.             Thread.sleep(1L);
  1579.          } catch (InterruptedException var4) {
  1580.          }
  1581.       }
  1582.  
  1583.       this.field_11 = System.currentTimeMillis();
  1584.  
  1585.       try {
  1586.          Thread.sleep((long)this.field_43);
  1587.       } catch (InterruptedException var3) {
  1588.       }
  1589.    }
  1590.  
  1591.    // $FF: renamed from: d (java.awt.Graphics) void
  1592.    public void method_15(Graphics var1) {
  1593.       String var2 = this.field_37[this.field_95];
  1594.       var1.setFont(this.field_97[this.field_96]);
  1595.       FontMetrics var3 = var1.getFontMetrics(this.field_97[this.field_96]);
  1596.       int var4 = (int)(this.field_30 - (float)var3.stringWidth(var2) / 2.0F);
  1597.       int var5 = (int)(this.field_29 + (float)var3.getHeight() / 4.0F);
  1598.       if (this.field_80) {
  1599.          var1.setColor(this.field_66);
  1600.          var1.drawString(var2, var4 + 1, var5 + 1);
  1601.       }
  1602.  
  1603.       var1.setColor(this.field_76);
  1604.       var1.drawString(var2, var4, var5);
  1605.       if (this.field_65 == 3) {
  1606.          this.field_96 -= this.field_84;
  1607.          if (this.field_96 <= 1) {
  1608.             this.field_96 = this.field_49 - 1;
  1609.             ++this.field_95;
  1610.             if (this.field_95 >= this.field_37.length) {
  1611.                this.field_95 = 0;
  1612.                return;
  1613.             }
  1614.          }
  1615.       } else {
  1616.          this.field_96 += this.field_84;
  1617.          if (this.field_96 >= this.field_49) {
  1618.             this.field_96 = 0;
  1619.             ++this.field_95;
  1620.             if (this.field_95 >= this.field_37.length) {
  1621.                this.field_95 = 0;
  1622.             }
  1623.          }
  1624.       }
  1625.  
  1626.    }
  1627.  
  1628.    // $FF: renamed from: c (java.lang.String) java.lang.String
  1629.    private static String method_16(String var0) {
  1630.       char[] var1 = var0.toCharArray();
  1631.       int var2 = var1.length;
  1632.       int var3 = 0;
  1633.  
  1634.       label32:
  1635.       while(true) {
  1636.          int var4 = 0;
  1637.          byte var10000 = 29;
  1638.          char[] var10001 = var1;
  1639.          int var10002 = var3;
  1640.  
  1641.          label30:
  1642.          while(true) {
  1643.             var10001[var10002] ^= var10000;
  1644.  
  1645.             while(true) {
  1646.                ++var3;
  1647.                ++var4;
  1648.                if (var2 == var3) {
  1649.                   return new String(var1);
  1650.                }
  1651.  
  1652.                switch (var4) {
  1653.                   case 1:
  1654.                      var10000 = 126;
  1655.                      var10001 = var1;
  1656.                      var10002 = var3;
  1657.                      continue label30;
  1658.                   case 2:
  1659.                      var10000 = 63;
  1660.                      var10001 = var1;
  1661.                      var10002 = var3;
  1662.                      continue label30;
  1663.                   case 3:
  1664.                      var10000 = 51;
  1665.                      var10001 = var1;
  1666.                      var10002 = var3;
  1667.                      continue label30;
  1668.                   case 4:
  1669.                      var10000 = 56;
  1670.                      var10001 = var1;
  1671.                      var10002 = var3;
  1672.                      continue label30;
  1673.                   case 5:
  1674.                      continue label32;
  1675.                }
  1676.             }
  1677.          }
  1678.       }
  1679.    }
  1680. }
  1681.