class E621FileThread extends Thread {

        private URL url;
        private String index;

        public E621FileThread(URL url, String index) {
            this.url = url;
            this.index = index;
        }

        @Override
        public void run() {
            try {
                String fullSizedImage = getFullSizedImage(url);
                if (fullSizedImage != null && !fullSizedImage.equals("")) {
                    addURLToDownload(new URL(fullSizedImage), index);
                }
            } catch (IOException e) {
                logger.error("Unable to get full sized image from " + url);
            }
        }

        private String getFullSizedImage(URL imageURL) throws IOException {<FILL_FUNCTION_BODY>}

    }

            Document page = getDocument(imageURL.toExternalForm(), 3);
            /*Elements video = page.select("video > source");
            Elements flash = page.select("embed");
            Elements image = page.select("a#highres");
            if (video.size() > 0) {
                return video.attr("src");
            } else if (flash.size() > 0) {
                return flash.attr("src");
            } else if (image.size() > 0) {
                return image.attr("href");
            } else {
                throw new IOException();
            }*/

            if (!page.select("div#image-download-link > a").isEmpty()) {
                return page.select("div#image-download-link > a").attr("abs:href");
            } else {
                if(!page.select("#blacklist-box").isEmpty())
                    sendUpdate(RipStatusMessage.STATUS.RIP_ERRORED, "Cannot download image - blocked by blacklist. Consider logging in. Search for \"e621\" in this wiki page: https://github.com/RipMeApp/ripme/wiki/Config-options");
                throw new IOException();
            }
        
<methods>public boolean addURLToDownload(java.net.URL, java.io.File, java.lang.String, Map<java.lang.String,java.lang.String>, java.lang.Boolean) ,public boolean addURLToDownload(java.net.URL, java.io.File) ,public boolean canRip(java.net.URL) ,public void downloadCompleted(java.net.URL, java.io.File) ,public void downloadErrored(java.net.URL, java.lang.String) ,public void downloadExists(java.net.URL, java.io.File) ,public int getCompletionPercentage() ,public int getCount() ,public abstract java.lang.String getHost() ,public Document getNextPage(Document) throws java.io.IOException,public java.lang.String getStatusText() ,public void rip() throws java.io.IOException,public java.net.URL sanitizeURL(java.net.URL) throws java.net.MalformedURLException,public boolean saveText(java.net.URL, java.lang.String, java.lang.String, int) ,public void setWorkingDir(java.net.URL) throws java.io.IOException<variables>private Map<java.net.URL,java.io.File> itemsCompleted,private Map<java.net.URL,java.lang.String> itemsErrored,private Map<java.net.URL,java.io.File> itemsPending