Program: 12346
Project: 12346
Buggy source:
/** 
 * Initialize the contents of the frame.
 */
void initialize(){
  File configFile=mcu.getArchiveFolder().resolve("String_Node_Str").toFile();
  if (!configFile.exists()) {
    createDefaultConfig(configFile);
  }
  try {
    config.load(new FileInputStream(configFile));
    if (validateConfig(config)) {
      writeConfig(config);
    }
    mcu.setInstanceRoot(new File(config.getProperty("String_Node_Str")).toPath());
  }
 catch (  FileNotFoundException e1) {
    e1.printStackTrace();
  }
catch (  IOException e1) {
    e1.printStackTrace();
  }
  checkAccess();
  System.out.println("String_Node_Str" + canWriteMinecraft + "String_Node_Str"+ canWriteMCUpdater+ "String_Node_Str"+ canWriteInstances+ "String_Node_Str"+ canCreateLinks);
  if (canCreateLinks == false) {
    JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.WARNING_MESSAGE);
  }
  frmMain=new JFrame();
  frmMain.setTitle("String_Node_Str" + Version.VERSION + Version.BUILD_LABEL);
  frmMain.setResizable(false);
  frmMain.setBounds(100,100,1175,592);
  frmMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  mcuIcon=new ImageIcon(MainForm.class.getResource("String_Node_Str"));
  frmMain.setIconImage(mcuIcon.getImage());
  JPanel pnlFooter=new JPanel();
  frmMain.getContentPane().add(pnlFooter,BorderLayout.SOUTH);
  pnlFooter.setLayout(new BorderLayout(0,0));
  JPanel pnlButtons=new JPanel();
  pnlFooter.add(pnlButtons,BorderLayout.EAST);
  btnUpdate=new JButton("String_Node_Str");
  btnUpdate.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      new Thread(){
        public void run(){
          if (!mcu.checkVersionCache(window,selected.getVersion())) {
            JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.ERROR_MESSAGE);
            return;
          }
          btnUpdate.setEnabled(false);
          btnLaunchMinecraft.setEnabled(false);
          mcu.getMCVersion();
          int saveConfig=JOptionPane.showConfirmDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
          if (saveConfig == JOptionPane.YES_OPTION) {
            setLblStatus("String_Node_Str");
            setProgressBar(10);
            Calendar cal=Calendar.getInstance();
            SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str");
            String backDesc=(String)JOptionPane.showInputDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.QUESTION_MESSAGE,null,null,("String_Node_Str" + sdf.format(cal.getTime())));
            log("String_Node_Str" + backDesc + "String_Node_Str");
            mcu.saveConfig(backDesc);
            log("String_Node_Str");
          }
 else           if (saveConfig == JOptionPane.CANCEL_OPTION) {
            btnUpdate.setEnabled(true);
            btnLaunchMinecraft.setEnabled(true);
            return;
          }
          tabs.setSelectedIndex(tabs.getTabCount() - 1);
          Properties instData=new Properties();
          Path instanceFile=mcu.getMCFolder().resolve("String_Node_Str");
          try {
            instData.load(Files.newInputStream(instanceFile));
          }
 catch (          IOException e1) {
            e1.printStackTrace();
          }
          instData.setProperty("String_Node_Str",selected.getServerId());
          instData.setProperty("String_Node_Str",selected.getRevision());
          try {
            instData.store(Files.newOutputStream(instanceFile),"String_Node_Str");
          }
 catch (          IOException e) {
            e.printStackTrace();
          }
          List<Module> toInstall=new ArrayList<Module>();
          List<Component> selects=new ArrayList<Component>(Arrays.asList(pnlModList.getComponents()));
          Iterator<Component> it=selects.iterator();
          setLblStatus("String_Node_Str");
          log("String_Node_Str");
          setProgressBar(20);
          while (it.hasNext()) {
            Component baseEntry=it.next();
            if (baseEntry.getClass().toString().equals("String_Node_Str")) {
              JModuleCheckBox entry=(JModuleCheckBox)baseEntry;
              if (entry.isSelected()) {
                toInstall.add(entry.getModule());
              }
            }
          }
          try {
            setLblStatus("String_Node_Str");
            log("String_Node_Str");
            setProgressBar(25);
            mcu.installMods(selected,toInstall,chkHardUpdate.isSelected());
            if (selected.isGenerateList()) {
              setLblStatus("String_Node_Str");
              log("String_Node_Str");
              setProgressBar(90);
              mcu.writeMCServerFile(selected.getName(),selected.getAddress());
            }
            setLblStatus("String_Node_Str");
            setProgressBar(100);
          }
 catch (          FileNotFoundException fnf) {
            log("String_Node_Str" + fnf.getMessage());
            JOptionPane.showMessageDialog(null,fnf.getMessage(),"String_Node_Str",JOptionPane.ERROR_MESSAGE);
          }
          log("String_Node_Str");
          JOptionPane.showMessageDialog(frmMain,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE);
          btnUpdate.setEnabled(true);
          btnLaunchMinecraft.setEnabled(true);
        }
      }
.start();
    }
  }
);
  pnlButtons.add(btnUpdate);
  btnLaunchMinecraft=new JButton("String_Node_Str");
  btnLaunchMinecraft.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      if (!System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
        if (!requestLogin()) {
          if (loginData.getUserName().isEmpty()) {
            JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.ERROR_MESSAGE);
            return;
          }
        }
      }
      File outFile=mcu.getArchiveFolder().resolve("String_Node_Str").toFile();
      outFile.delete();
      btnLaunchMinecraft.setEnabled(false);
      tabs.setSelectedIndex(tabs.getTabCount() - 1);
      final PopupMenu menu=trayIcon.getPopupMenu();
      MenuItem killItem=null;
      for (int k=0; k < menu.getItemCount(); ++k) {
        final MenuItem item=menu.getItem(k);
        if (item.getLabel().equals("String_Node_Str")) {
          killItem=item;
          break;
        }
      }
      GenericLauncherThread thread;
      if (System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
        File launcher=mcu.getMCFolder().resolve("String_Node_Str").toFile();
        if (!launcher.exists()) {
          try {
            URL launcherURL=new URL("String_Node_Str");
            ReadableByteChannel rbc=Channels.newChannel(launcherURL.openStream());
            FileOutputStream fos=new FileOutputStream(launcher);
            fos.getChannel().transferFrom(rbc,0,1 << 24);
            fos.close();
          }
 catch (          MalformedURLException mue) {
            mue.printStackTrace();
          }
catch (          IOException ioe) {
            ioe.printStackTrace();
          }
        }
        thread=LauncherThread.launch(launcher,config.getProperty("String_Node_Str",System.getProperty("String_Node_Str")),config.getProperty("String_Node_Str"),config.getProperty("String_Node_Str"),Boolean.parseBoolean(config.getProperty("String_Node_Str")),outFile,console);
      }
 else {
        thread=NativeLauncherThread.launch(window,loginData,config.getProperty("String_Node_Str",System.getProperty("String_Node_Str")),config.getProperty("String_Node_Str"),config.getProperty("String_Node_Str"),outFile,console);
      }
      thread.register(window,btnLaunchMinecraft,killItem);
      thread.start();
    }
  }
);
  pnlButtons.add(btnLaunchMinecraft);
  JPanel pnlStatus=new JPanel();
  pnlFooter.add(pnlStatus,BorderLayout.CENTER);
  pnlStatus.setLayout(new BorderLayout(0,0));
  lblStatus=new JLabel("String_Node_Str");
  lblStatus.setHorizontalAlignment(SwingConstants.LEFT);
  pnlStatus.add(lblStatus);
  JPanel panel=new JPanel();
  pnlStatus.add(panel,BorderLayout.EAST);
  panel.setLayout(new BorderLayout(0,0));
  progressBar=new JProgressBar();
  panel.add(progressBar);
  progressBar.setStringPainted(true);
  Component TopStrut=Box.createVerticalStrut(5);
  panel.add(TopStrut,BorderLayout.NORTH);
  Component BottomStrut=Box.createVerticalStrut(5);
  panel.add(BottomStrut,BorderLayout.SOUTH);
  Component horizontalStrut=Box.createHorizontalStrut(5);
  pnlFooter.add(horizontalStrut,BorderLayout.WEST);
  JPanel pnlLeft=new JPanel();
  frmMain.getContentPane().add(pnlLeft,BorderLayout.WEST);
  pnlLeft.setLayout(new BorderLayout(0,0));
  JLabel lblServers=new JLabel("String_Node_Str");
  lblServers.setHorizontalAlignment(SwingConstants.CENTER);
  lblServers.setFont(new Font("String_Node_Str",Font.BOLD,14));
  pnlLeft.add(lblServers,BorderLayout.NORTH);
  slModel=new SLListModel();
  serverList=new JList<ServerListPacket>();
  serverList.setModel(slModel);
  serverList.setCellRenderer(new ServerListCellRenderer());
  serverList.addListSelectionListener(new ListSelectionListener(){
    @Override public void valueChanged(    ListSelectionEvent e){
      if (!e.getValueIsAdjusting()) {
        changeSelectedServer(((ServerListPacket)serverList.getSelectedValue()).getEntry());
        Properties instData=new Properties();
        try {
          instData.load(Files.newInputStream(mcu.getMCFolder().resolve("String_Node_Str")));
        }
 catch (        IOException e1) {
          e1.printStackTrace();
        }
        final boolean needUpdate=!selected.getRevision().equals(instData.getProperty("String_Node_Str"));
        final boolean needMCUUpgrade=Version.isVersionOld(selected.getMCUVersion());
        String warningMessage=null;
        if (needUpdate) {
          warningMessage="String_Node_Str";
        }
 else         if (needMCUUpgrade) {
          warningMessage="String_Node_Str";
        }
        if (warningMessage != null) {
          JOptionPane.showMessageDialog(null,warningMessage,"String_Node_Str",JOptionPane.WARNING_MESSAGE);
        }
      }
    }
  }
);
  JScrollPane serverScroller=new JScrollPane(serverList);
  pnlLeft.add(serverScroller,BorderLayout.CENTER);
  pnlRight=new JPanel();
  frmMain.getContentPane().add(pnlRight,BorderLayout.EAST);
  pnlRight.setLayout(new BorderLayout(0,0));
  JPanel pnlChangesTitle=new JPanel();
  pnlChangesTitle.setLayout(new BorderLayout(0,0));
  JLabel lblChanges=new JLabel("String_Node_Str");
  lblChanges.setHorizontalAlignment(SwingConstants.CENTER);
  lblChanges.setFont(new Font("String_Node_Str",Font.BOLD,14));
  pnlChangesTitle.add(lblChanges,BorderLayout.CENTER);
  pnlRight.add(pnlChangesTitle,BorderLayout.NORTH);
  Component hstrut_ChangesLeft=Box.createHorizontalStrut(75);
  pnlChangesTitle.add(hstrut_ChangesLeft,BorderLayout.WEST);
  Component hstrut_ChangesRight=Box.createHorizontalStrut(75);
  pnlChangesTitle.add(hstrut_ChangesRight,BorderLayout.EAST);
  JScrollPane modScroller=new JScrollPane(pnlModList);
  pnlRight.add(modScroller,BorderLayout.CENTER);
  pnlModList.setLayout(new BoxLayout(pnlModList,BoxLayout.Y_AXIS));
  JPanel pnlUpdateOptions=new JPanel();
  pnlRight.add(pnlUpdateOptions,BorderLayout.SOUTH);
  pnlUpdateOptions.setLayout(new GridLayout(0,1,0,0));
  chkHardUpdate=new JCheckBox("String_Node_Str");
  pnlUpdateOptions.add(chkHardUpdate);
  browser.setEditable(false);
  browser.setContentType("String_Node_Str");
  browser.addHyperlinkListener(new HyperlinkListener(){
    @Override public void hyperlinkUpdate(    HyperlinkEvent he){
      if (he.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
        try {
          MCUpdater.openLink(he.getURL().toURI());
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
);
  tabs=new JTabbedPane();
  browser.setText("String_Node_Str");
  JScrollPane browserScrollPane=new JScrollPane(browser);
  browserScrollPane.setViewportBorder(null);
  browser.setBorder(null);
  tabs.add("String_Node_Str",browserScrollPane);
  console.setBorder(null);
  console.setLineWrap(true);
  console.setEditable(false);
  Font f=new Font("String_Node_Str",Font.PLAIN,11);
  console.setFont(f);
  JScrollPane consoleScrollPane=new JScrollPane(console);
  consoleScrollPane.setViewportBorder(null);
  consoleScrollPane.setAutoscrolls(true);
  consoleScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  consoleScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  tabs.add("String_Node_Str",consoleScrollPane);
  log("String_Node_Str");
  frmMain.getContentPane().add(tabs,BorderLayout.CENTER);
  JToolBar toolBar=new JToolBar();
  toolBar.setFloatable(false);
  frmMain.getContentPane().add(toolBar,BorderLayout.NORTH);
  JButton btnManageServers=new JButton("String_Node_Str");
  btnManageServers.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      ServerManager sm=new ServerManager(window);
      sm.setVisible(true);
    }
  }
);
  btnManageServers.setToolTipText("String_Node_Str");
  btnManageServers.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  toolBar.add(btnManageServers);
  JButton btnOptions=new JButton("String_Node_Str");
  btnOptions.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      ClientConfig cc=new ClientConfig(window);
      cc.setVisible(true);
    }
  }
);
  btnOptions.setToolTipText("String_Node_Str");
  btnOptions.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  toolBar.add(btnOptions);
  JButton btnBackups=new JButton("String_Node_Str");
  btnBackups.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      BackupManager bm=new BackupManager(window);
      bm.setVisible(true);
    }
  }
);
  btnBackups.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  btnBackups.setToolTipText("String_Node_Str");
  toolBar.add(btnBackups);
  Component horizontalGlue=Box.createHorizontalGlue();
  toolBar.add(horizontalGlue);
  log("String_Node_Str" + mcu.getMCVersion());
  JLabel lblPlayerName1=new JLabel("String_Node_Str");
  toolBar.add(lblPlayerName1);
  lblAvatar=new JLabel();
  lblAvatar.setOpaque(true);
  lblAvatar.setHorizontalAlignment(JLabel.CENTER);
  lblAvatar.setVerticalAlignment(JLabel.CENTER);
  lblAvatar.setBackground(Color.WHITE);
  toolBar.add(lblAvatar);
  Component hStrut3=Box.createHorizontalStrut(5);
  toolBar.add(hStrut3);
  lblPlayerName2=new JLabel("String_Node_Str");
  toolBar.add(lblPlayerName2);
  JButton btnLogin=new JButton("String_Node_Str");
  btnLogin.setHorizontalAlignment(SwingConstants.TRAILING);
  btnLogin.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  btnLogin.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent arg0){
      LoginForm lf=new LoginForm(window);
      lf.setVisible(true);
    }
  }
);
  Component horizontalStrut_2=Box.createHorizontalStrut(5);
  toolBar.add(horizontalStrut_2);
  toolBar.add(btnLogin);
  Component horizontalStrut_1=Box.createHorizontalStrut(5);
  toolBar.add(horizontalStrut_1);
  File serverFile=mcu.getArchiveFolder().resolve("String_Node_Str").toFile();
  String packUrl=Customization.getString("String_Node_Str");
  while (!serverFile.exists() && !(serverFile.length() > 0)) {
    if (packUrl.isEmpty()) {
      packUrl=(String)JOptionPane.showInputDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE,null,null,"String_Node_Str");
      if (packUrl.isEmpty()) {
        JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.ERROR_MESSAGE);
        System.exit(0);
      }
    }
    if (!(packUrl.equals("String_Node_Str"))) {
      try {
        Document serverHeader=MCUpdater.readXmlFromUrl(packUrl);
        Element docEle=serverHeader.getDocumentElement();
        ServerList sl=new ServerList(docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),packUrl,docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),MCUpdater.parseBoolean(docEle.getAttribute("String_Node_Str")),docEle.getAttribute("String_Node_Str"));
        List<ServerList> servers=new ArrayList<ServerList>();
        servers.add(sl);
        mcu.writeServerList(servers);
      }
 catch (      Exception x) {
        x.printStackTrace();
        packUrl="String_Node_Str";
      }
    }
  }
  updateServerList();
  Properties instData=new Properties();
  try {
    instData.load(Files.newInputStream(mcu.getMCFolder().resolve("String_Node_Str")));
  }
 catch (  NoSuchFileException nsfe) {
    instData.setProperty("String_Node_Str","String_Node_Str");
  }
catch (  IOException e1) {
    e1.printStackTrace();
  }
  int selectIndex=((SLListModel)serverList.getModel()).getEntryIdByTag(instData.getProperty("String_Node_Str"));
  serverList.setSelectedIndex(selectIndex);
  initTray();
  if (config.getProperty("String_Node_Str").toLowerCase().equals("String_Node_Str")) {
    if (config.containsKey("String_Node_Str")) {
      String user=config.getProperty("String_Node_Str");
      String password=decrypt(config.getProperty("String_Node_Str"));
      try {
        login(user,password);
      }
 catch (      MCLoginException e1) {
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * Initialize the contents of the frame.
 */
void initialize(){
  File configFile=mcu.getArchiveFolder().resolve("String_Node_Str").toFile();
  if (!configFile.exists()) {
    createDefaultConfig(configFile);
  }
  try {
    config.load(new FileInputStream(configFile));
    if (validateConfig(config)) {
      writeConfig(config);
    }
    mcu.setInstanceRoot(new File(config.getProperty("String_Node_Str")).toPath());
  }
 catch (  FileNotFoundException e1) {
    e1.printStackTrace();
  }
catch (  IOException e1) {
    e1.printStackTrace();
  }
  checkAccess();
  System.out.println("String_Node_Str" + canWriteMinecraft + "String_Node_Str"+ canWriteMCUpdater+ "String_Node_Str"+ canWriteInstances+ "String_Node_Str"+ canCreateLinks);
  if (canCreateLinks == false) {
    JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.WARNING_MESSAGE);
  }
  System.out.println("String_Node_Str");
  frmMain=new JFrame();
  frmMain.setTitle("String_Node_Str" + Version.VERSION + Version.BUILD_LABEL);
  frmMain.setResizable(false);
  frmMain.setBounds(100,100,1175,592);
  frmMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  mcuIcon=new ImageIcon(MainForm.class.getResource("String_Node_Str"));
  frmMain.setIconImage(mcuIcon.getImage());
  JPanel pnlFooter=new JPanel();
  frmMain.getContentPane().add(pnlFooter,BorderLayout.SOUTH);
  pnlFooter.setLayout(new BorderLayout(0,0));
  JPanel pnlButtons=new JPanel();
  pnlFooter.add(pnlButtons,BorderLayout.EAST);
  btnUpdate=new JButton("String_Node_Str");
  btnUpdate.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      new Thread(){
        public void run(){
          if (!mcu.checkVersionCache(window,selected.getVersion())) {
            JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.ERROR_MESSAGE);
            return;
          }
          btnUpdate.setEnabled(false);
          btnLaunchMinecraft.setEnabled(false);
          mcu.getMCVersion();
          int saveConfig=JOptionPane.showConfirmDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
          if (saveConfig == JOptionPane.YES_OPTION) {
            setLblStatus("String_Node_Str");
            setProgressBar(10);
            Calendar cal=Calendar.getInstance();
            SimpleDateFormat sdf=new SimpleDateFormat("String_Node_Str");
            String backDesc=(String)JOptionPane.showInputDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.QUESTION_MESSAGE,null,null,("String_Node_Str" + sdf.format(cal.getTime())));
            log("String_Node_Str" + backDesc + "String_Node_Str");
            mcu.saveConfig(backDesc);
            log("String_Node_Str");
          }
 else           if (saveConfig == JOptionPane.CANCEL_OPTION) {
            btnUpdate.setEnabled(true);
            btnLaunchMinecraft.setEnabled(true);
            return;
          }
          tabs.setSelectedIndex(tabs.getTabCount() - 1);
          Properties instData=new Properties();
          Path instanceFile=mcu.getMCFolder().resolve("String_Node_Str");
          try {
            instData.load(Files.newInputStream(instanceFile));
          }
 catch (          IOException e1) {
            e1.printStackTrace();
          }
          instData.setProperty("String_Node_Str",selected.getServerId());
          instData.setProperty("String_Node_Str",selected.getRevision());
          try {
            instData.store(Files.newOutputStream(instanceFile),"String_Node_Str");
          }
 catch (          IOException e) {
            e.printStackTrace();
          }
          List<Module> toInstall=new ArrayList<Module>();
          List<Component> selects=new ArrayList<Component>(Arrays.asList(pnlModList.getComponents()));
          Iterator<Component> it=selects.iterator();
          setLblStatus("String_Node_Str");
          log("String_Node_Str");
          setProgressBar(20);
          while (it.hasNext()) {
            Component baseEntry=it.next();
            if (baseEntry.getClass().toString().equals("String_Node_Str")) {
              JModuleCheckBox entry=(JModuleCheckBox)baseEntry;
              if (entry.isSelected()) {
                toInstall.add(entry.getModule());
              }
            }
          }
          try {
            setLblStatus("String_Node_Str");
            log("String_Node_Str");
            setProgressBar(25);
            mcu.installMods(selected,toInstall,chkHardUpdate.isSelected());
            if (selected.isGenerateList()) {
              setLblStatus("String_Node_Str");
              log("String_Node_Str");
              setProgressBar(90);
              mcu.writeMCServerFile(selected.getName(),selected.getAddress());
            }
            setLblStatus("String_Node_Str");
            setProgressBar(100);
          }
 catch (          FileNotFoundException fnf) {
            log("String_Node_Str" + fnf.getMessage());
            JOptionPane.showMessageDialog(null,fnf.getMessage(),"String_Node_Str",JOptionPane.ERROR_MESSAGE);
          }
          log("String_Node_Str");
          JOptionPane.showMessageDialog(frmMain,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE);
          btnUpdate.setEnabled(true);
          btnLaunchMinecraft.setEnabled(true);
        }
      }
.start();
    }
  }
);
  pnlButtons.add(btnUpdate);
  btnLaunchMinecraft=new JButton("String_Node_Str");
  btnLaunchMinecraft.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      if (!System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
        if (!requestLogin()) {
          if (loginData.getUserName().isEmpty()) {
            JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.ERROR_MESSAGE);
            return;
          }
        }
      }
      File outFile=mcu.getArchiveFolder().resolve("String_Node_Str").toFile();
      outFile.delete();
      btnLaunchMinecraft.setEnabled(false);
      tabs.setSelectedIndex(tabs.getTabCount() - 1);
      final PopupMenu menu=trayIcon.getPopupMenu();
      MenuItem killItem=null;
      for (int k=0; k < menu.getItemCount(); ++k) {
        final MenuItem item=menu.getItem(k);
        if (item.getLabel().equals("String_Node_Str")) {
          killItem=item;
          break;
        }
      }
      GenericLauncherThread thread;
      if (System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
        File launcher=mcu.getMCFolder().resolve("String_Node_Str").toFile();
        if (!launcher.exists()) {
          try {
            URL launcherURL=new URL("String_Node_Str");
            ReadableByteChannel rbc=Channels.newChannel(launcherURL.openStream());
            FileOutputStream fos=new FileOutputStream(launcher);
            fos.getChannel().transferFrom(rbc,0,1 << 24);
            fos.close();
          }
 catch (          MalformedURLException mue) {
            mue.printStackTrace();
          }
catch (          IOException ioe) {
            ioe.printStackTrace();
          }
        }
        thread=LauncherThread.launch(launcher,config.getProperty("String_Node_Str",System.getProperty("String_Node_Str")),config.getProperty("String_Node_Str"),config.getProperty("String_Node_Str"),Boolean.parseBoolean(config.getProperty("String_Node_Str")),outFile,console);
      }
 else {
        thread=NativeLauncherThread.launch(window,loginData,config.getProperty("String_Node_Str",System.getProperty("String_Node_Str")),config.getProperty("String_Node_Str"),config.getProperty("String_Node_Str"),outFile,console);
      }
      thread.register(window,btnLaunchMinecraft,killItem);
      thread.start();
    }
  }
);
  pnlButtons.add(btnLaunchMinecraft);
  JPanel pnlStatus=new JPanel();
  pnlFooter.add(pnlStatus,BorderLayout.CENTER);
  pnlStatus.setLayout(new BorderLayout(0,0));
  lblStatus=new JLabel("String_Node_Str");
  lblStatus.setHorizontalAlignment(SwingConstants.LEFT);
  pnlStatus.add(lblStatus);
  JPanel panel=new JPanel();
  pnlStatus.add(panel,BorderLayout.EAST);
  panel.setLayout(new BorderLayout(0,0));
  progressBar=new JProgressBar();
  panel.add(progressBar);
  progressBar.setStringPainted(true);
  Component TopStrut=Box.createVerticalStrut(5);
  panel.add(TopStrut,BorderLayout.NORTH);
  Component BottomStrut=Box.createVerticalStrut(5);
  panel.add(BottomStrut,BorderLayout.SOUTH);
  Component horizontalStrut=Box.createHorizontalStrut(5);
  pnlFooter.add(horizontalStrut,BorderLayout.WEST);
  JPanel pnlLeft=new JPanel();
  frmMain.getContentPane().add(pnlLeft,BorderLayout.WEST);
  pnlLeft.setLayout(new BorderLayout(0,0));
  JLabel lblServers=new JLabel("String_Node_Str");
  lblServers.setHorizontalAlignment(SwingConstants.CENTER);
  lblServers.setFont(new Font("String_Node_Str",Font.BOLD,14));
  pnlLeft.add(lblServers,BorderLayout.NORTH);
  slModel=new SLListModel();
  serverList=new JList<ServerListPacket>();
  serverList.setModel(slModel);
  serverList.setCellRenderer(new ServerListCellRenderer());
  serverList.addListSelectionListener(new ListSelectionListener(){
    @Override public void valueChanged(    ListSelectionEvent e){
      if (!e.getValueIsAdjusting()) {
        changeSelectedServer(((ServerListPacket)serverList.getSelectedValue()).getEntry());
        Properties instData=new Properties();
        try {
          instData.load(Files.newInputStream(mcu.getMCFolder().resolve("String_Node_Str")));
        }
 catch (        IOException e1) {
          e1.printStackTrace();
        }
        final boolean needUpdate=!selected.getRevision().equals(instData.getProperty("String_Node_Str"));
        final boolean needMCUUpgrade=Version.isVersionOld(selected.getMCUVersion());
        String warningMessage=null;
        if (needUpdate) {
          warningMessage="String_Node_Str";
        }
 else         if (needMCUUpgrade) {
          warningMessage="String_Node_Str";
        }
        if (warningMessage != null) {
          JOptionPane.showMessageDialog(null,warningMessage,"String_Node_Str",JOptionPane.WARNING_MESSAGE);
        }
      }
    }
  }
);
  JScrollPane serverScroller=new JScrollPane(serverList);
  pnlLeft.add(serverScroller,BorderLayout.CENTER);
  pnlRight=new JPanel();
  frmMain.getContentPane().add(pnlRight,BorderLayout.EAST);
  pnlRight.setLayout(new BorderLayout(0,0));
  JPanel pnlChangesTitle=new JPanel();
  pnlChangesTitle.setLayout(new BorderLayout(0,0));
  JLabel lblChanges=new JLabel("String_Node_Str");
  lblChanges.setHorizontalAlignment(SwingConstants.CENTER);
  lblChanges.setFont(new Font("String_Node_Str",Font.BOLD,14));
  pnlChangesTitle.add(lblChanges,BorderLayout.CENTER);
  pnlRight.add(pnlChangesTitle,BorderLayout.NORTH);
  Component hstrut_ChangesLeft=Box.createHorizontalStrut(75);
  pnlChangesTitle.add(hstrut_ChangesLeft,BorderLayout.WEST);
  Component hstrut_ChangesRight=Box.createHorizontalStrut(75);
  pnlChangesTitle.add(hstrut_ChangesRight,BorderLayout.EAST);
  JScrollPane modScroller=new JScrollPane(pnlModList);
  pnlRight.add(modScroller,BorderLayout.CENTER);
  pnlModList.setLayout(new BoxLayout(pnlModList,BoxLayout.Y_AXIS));
  JPanel pnlUpdateOptions=new JPanel();
  pnlRight.add(pnlUpdateOptions,BorderLayout.SOUTH);
  pnlUpdateOptions.setLayout(new GridLayout(0,1,0,0));
  chkHardUpdate=new JCheckBox("String_Node_Str");
  pnlUpdateOptions.add(chkHardUpdate);
  browser.setEditable(false);
  browser.setContentType("String_Node_Str");
  browser.addHyperlinkListener(new HyperlinkListener(){
    @Override public void hyperlinkUpdate(    HyperlinkEvent he){
      if (he.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
        try {
          MCUpdater.openLink(he.getURL().toURI());
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
);
  tabs=new JTabbedPane();
  browser.setText("String_Node_Str");
  JScrollPane browserScrollPane=new JScrollPane(browser);
  browserScrollPane.setViewportBorder(null);
  browser.setBorder(null);
  tabs.add("String_Node_Str",browserScrollPane);
  console.setBorder(null);
  console.setLineWrap(true);
  console.setEditable(false);
  Font f=new Font("String_Node_Str",Font.PLAIN,11);
  console.setFont(f);
  JScrollPane consoleScrollPane=new JScrollPane(console);
  consoleScrollPane.setViewportBorder(null);
  consoleScrollPane.setAutoscrolls(true);
  consoleScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  consoleScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
  tabs.add("String_Node_Str",consoleScrollPane);
  log("String_Node_Str");
  frmMain.getContentPane().add(tabs,BorderLayout.CENTER);
  JToolBar toolBar=new JToolBar();
  toolBar.setFloatable(false);
  frmMain.getContentPane().add(toolBar,BorderLayout.NORTH);
  JButton btnManageServers=new JButton("String_Node_Str");
  btnManageServers.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      ServerManager sm=new ServerManager(window);
      sm.setVisible(true);
    }
  }
);
  btnManageServers.setToolTipText("String_Node_Str");
  btnManageServers.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  toolBar.add(btnManageServers);
  JButton btnOptions=new JButton("String_Node_Str");
  btnOptions.addActionListener(new ActionListener(){
    @Override public void actionPerformed(    ActionEvent e){
      ClientConfig cc=new ClientConfig(window);
      cc.setVisible(true);
    }
  }
);
  btnOptions.setToolTipText("String_Node_Str");
  btnOptions.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  toolBar.add(btnOptions);
  JButton btnBackups=new JButton("String_Node_Str");
  btnBackups.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent e){
      BackupManager bm=new BackupManager(window);
      bm.setVisible(true);
    }
  }
);
  btnBackups.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  btnBackups.setToolTipText("String_Node_Str");
  toolBar.add(btnBackups);
  Component horizontalGlue=Box.createHorizontalGlue();
  toolBar.add(horizontalGlue);
  log("String_Node_Str" + mcu.getMCVersion());
  JLabel lblPlayerName1=new JLabel("String_Node_Str");
  toolBar.add(lblPlayerName1);
  lblAvatar=new JLabel();
  lblAvatar.setOpaque(true);
  lblAvatar.setHorizontalAlignment(JLabel.CENTER);
  lblAvatar.setVerticalAlignment(JLabel.CENTER);
  lblAvatar.setBackground(Color.WHITE);
  toolBar.add(lblAvatar);
  Component hStrut3=Box.createHorizontalStrut(5);
  toolBar.add(hStrut3);
  lblPlayerName2=new JLabel("String_Node_Str");
  toolBar.add(lblPlayerName2);
  JButton btnLogin=new JButton("String_Node_Str");
  btnLogin.setHorizontalAlignment(SwingConstants.TRAILING);
  btnLogin.setIcon(new ImageIcon(MainForm.class.getResource("String_Node_Str")));
  btnLogin.addActionListener(new ActionListener(){
    public void actionPerformed(    ActionEvent arg0){
      LoginForm lf=new LoginForm(window);
      lf.setVisible(true);
    }
  }
);
  Component horizontalStrut_2=Box.createHorizontalStrut(5);
  toolBar.add(horizontalStrut_2);
  toolBar.add(btnLogin);
  Component horizontalStrut_1=Box.createHorizontalStrut(5);
  toolBar.add(horizontalStrut_1);
  System.out.println("String_Node_Str");
  File serverFile=mcu.getArchiveFolder().resolve("String_Node_Str").toFile();
  String packUrl=Customization.getString("String_Node_Str");
  if (packUrl.equals("String_Node_Str")) {
    packUrl="String_Node_Str";
  }
  while (!serverFile.exists() && !(serverFile.length() > 0)) {
    if (packUrl.isEmpty()) {
      packUrl=(String)JOptionPane.showInputDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.INFORMATION_MESSAGE,null,null,"String_Node_Str");
      if (packUrl.isEmpty()) {
        JOptionPane.showMessageDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.ERROR_MESSAGE);
        System.exit(0);
      }
    }
    try {
      Document serverHeader=MCUpdater.readXmlFromUrl(packUrl);
      Element docEle=serverHeader.getDocumentElement();
      ServerList sl=new ServerList(docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),packUrl,docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),docEle.getAttribute("String_Node_Str"),MCUpdater.parseBoolean(docEle.getAttribute("String_Node_Str")),docEle.getAttribute("String_Node_Str"));
      List<ServerList> servers=new ArrayList<ServerList>();
      servers.add(sl);
      mcu.writeServerList(servers);
    }
 catch (    Exception x) {
      x.printStackTrace();
      packUrl="String_Node_Str";
    }
  }
  updateServerList();
  Properties instData=new Properties();
  try {
    instData.load(Files.newInputStream(mcu.getMCFolder().resolve("String_Node_Str")));
  }
 catch (  NoSuchFileException nsfe) {
    instData.setProperty("String_Node_Str","String_Node_Str");
  }
catch (  IOException e1) {
    e1.printStackTrace();
  }
  int selectIndex=((SLListModel)serverList.getModel()).getEntryIdByTag(instData.getProperty("String_Node_Str"));
  serverList.setSelectedIndex(selectIndex);
  initTray();
  if (config.getProperty("String_Node_Str").toLowerCase().equals("String_Node_Str")) {
    if (config.containsKey("String_Node_Str")) {
      String user=config.getProperty("String_Node_Str");
      String password=decrypt(config.getProperty("String_Node_Str"));
      try {
        login(user,password);
      }
 catch (      MCLoginException e1) {
      }
    }
  }
}