- //added dailyuploads.net
 - // ==UserScript==
 - // @name			W.A.R. Links Checker Customized Premium Link Version
 - // @description		        detects live, dead and premium links.
 - // @details			this script automatically checks links from hundreds of filehosts. For Firefox, Chrome, Opera, Safari. 
 - // @namespace		premium version
 - // @version			1.2.1.3
 - // @icon            http://sharenxs.com/photos/2014/02/14/52fd759db90ac/cooltext1428903746.png
 - // @license			GPL version 3 or any later version (http://www.gnu.org/copyleft/gpl.html)
 - // @author			mental
 - // @include			http://*
 - // @include			https://*
 - // @include			file:///*
 - // @grant			GM_setValue
 - // @grant			GM_getValue
 - // @grant			GM_xmlhttpRequest
 - // @grant			GM_log
 - // @grant			GM_addStyle
 - // @grant			GM_registerMenuCommand
 - // @grant			GM_getResourceText
 - // @grant			GM_info
 - // @require			https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
 - // @require			https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js
 - // @resource		jQueryUICSS https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css
 - // @homepage        http://www.warlc.5gbfree.com
 - // @namespace      http://www.warlc.5gbfree.com
 - // @noframes
 - // ==/UserScript==
 -  
 - //separate alternative domains with "|" char (first name is considered being main)
 - var allHostNames = [
 -  "1fichier.com|dl4free.com",
 -  "dailyuploads.net",
 -  "devilshare.net",
 -  "alfafile.net",
 -  "openload.co",
 -  "multiup.org",
 -  "uplea.com",
 -  "filenuke.com",
 -  "file.al",
 -  "inafile.com",
 -  "lolabits.es",
 -  "vidto.me",
 -  "storefiles.co",
 -  "filehost.pw",
 -  "vidspot.net",
 -  "turbobit.ru",
 -  "sharesix.com|sharesix.net",
 -  "movpod.in",
 -  "thefile.me",
 -  "vidzi.tv",
 -  "videoweed.es",
 -  "vodlocker.com",
 -  "nowvideo.sx",
 -  "cloudtime.to",
 -  "thevideo.me",
 -  "vidbull.com",
 -  "allmyvideos.net",
 -  "novamov.com",
 -  "filehoot.com",
 -  "stagevu.com",
 -  "gorillavid.in",
 -  "streamin.to",
 - 	"4upld.com",
 - 	"cloudshares.net",
 - 	"swoopshare.com",
 - 	"2shared.com",
 - 	"fileupload.pw",
 - 	"zxcfiles.com",
 -   "up07.net",
 - 	"4shared.com",
 - 	"adrive.com",
 - 	"aisfile.com",
 - 	"hexupload.com",
 -   "bezvadata.cz",
 - 	"xkeepfile.com|Gamesena.com",
 - 	"usersfiles.com",
 - 	"pan.baidu.com",
 - 	"radicalshare.com",
 -   "datei.to",
 - 	"daten-hoster.de|filehosting.org|xtraupload.de",
 - 	"demo.ovh.eu",
 - 	"depositfiles.com|depositfiles.lt|depositfiles.org|dfiles.ru|dfiles.eu",
 - 	"divshare.com",
 -   "easy-share.com|crocko.com",
 - 	"easybytez.com",
 - 	"edisk.cz",
 - 	"euroshare.eu",
 - 	"file-upload.net",
 - 	"yadi.sk",
 - 	"wizupload.com",
 -   "fastshare.cz",
 - 	"filefactory.com",
 - 	"share.vnn.vn",
 - 	"yunpan.cn",
 - 	"gulfup.com",
 - 	"tropicshare.com",
 - 	"cloudzilla.to",
 - 	"inclouddrive.com",
 -   "fileflyer.com",
 - 	"filerio.com|filekeen.com",
 - 	"up.4share.vn",
 - 	"upfile.vn",
 - 	"datafilehost.com",
 - 	"fileband.com",
 - 	"worldbytez.com",
 -   "files.mail.ru",
 - 	"filesflash.com",
 - 	"box.com",
 - 	"uptobox.com",
 - 	"box.net",
 - 	"goldbytez.com",
 - 	"sdilej.cz",
 - 	"ex-load.com",
 - 	"filesmonster.com",
 - 	"filestore.to",
 - 	"hulkload.com",
 - 	"filedropper.com",
 -   "free-uploading.com",
 - 	"gamefront.com|filefront.com",
 - 	"gettyfile.ru",
 - 	"gigapeta.com",
 - 	"gigasize.com",
 -   "hellshare.com",
 - 	"hellspy.com",
 - 	"hitfile.net",
 - 	"hostuje.net",
 - 	"freefilehosting.net",
 - 	"free.fr",
 -   "hulkshare.com",
 - 	"hyperfileshare.com",
 - 	"filecloud.io|ifile.it",
 - 	"ifolder.ru",
 - 	"jumbofiles.com",
 - 	"uploadrocket.net",
 - 	"lafiles.com",
 -   "leteckaposta.cz|sharegadget.com",
 - 	"letitbit.net",
 - 	"load.to",
 - 	"mediafire.com",
 - 	"megafileupload.com",
 - 	"megashares.com",
 -   "movshare.net",
 - 	"muchshare.net",
 - 	"myupload.dk",
 - 	"narod.ru|narod.yandex.ru",
 - 	"fboom.me|fileboom.me",
 -   "openfile.ru",
 - 	"partage-facile.com",
 - 	"plunder.com",
 - 	"sharerapid.cz",
 - 	"exclusiveloader.com",
 - 	"acefile.net",
 -   "queenshare.com",
 - 	"rapidgator.net",
 - 	"k2s.cc|keep2s.cc|keep2share.cc|keep2share.com",
 - 	"oboom.com",
 - 	"filepi.com",
 - 	"neodrive.co",
 -   "rarefile.net",
 - 	"rayfile.com",
 - 	"rghost.net",
 - 	"sendmyway.com",
 - 	"clicknupload.com",
 - 	"clicknupload.me",
 - 	"sharemods.com",
 - 	"hostr.co",
 -   "sendspace.com",
 - 	"sharecash.org",
 - 	"share-links.biz",
 - 	"share-online.biz|egoshare.com",
 - 	"megarapid.cz",
 -   "shareflare.net",
 - 	"solidfiles.com",
 - 	"led.wf",
 - 	"lan.wf",
 - 	"adlink.wf",
 - 	"click.tf",
 - 	"kyc.pm",
 - 	"ssh.tf",
 - 	"ssh.yt",
 - 	"yep.pm",
 -   "stahovanizasms.cz",
 - 	"turbobit.net",
 - 	"filecloud.cc",
 - 	"tikfile.com",
 - 	"cloudsix.me",
 -   "turboupload.com",
 - 	"uloz.to|ulozto.cz|bagruj.cz|zachowajto.pl",
 - 	"ulozisko.sk",
 - 	"uloziste.com",
 - 	"unibytes.com",
 -   "upload-il.net|przeslij.net",
 - 	"uploaded.to|ul.to",
 - 	"uploading.com",
 - 	"chayfile.com",
 - 	"rockfile.eu",
 - 	"24uploading.com", 
 -   "uploadspace.pl",
 - 	"upnito.sk",
 - 	"usaupload.net",
 - 	"veehd.com",
 - 	"videobb.com",
 -   "vip-file.com",
 - 	"webshare.cz",
 - 	"xdisk.cz",
 - 	"yunfile.com|filemarkets.com",
 - 	"ziddu.com",
 - 	"zippyshare.com",
 - 	"rodfile.com",
 - 	"wikiupload.com", 
 - 	"uploadstube.de",
 - 	"faststore.org",
 -   "flyfiles.net", 
 - 	"nowdownload.ch", 
 - 	"prefiles.com", 
 - 	"axifile.com",
 - 	"rapidsonic.com|fileparadox.com", 
 -   "hackerbox.org", 
 - 	"amonshare.com",
 - 	"data.hu",
 - 	"brupload.net",
 - 	"userscloud.com",
 -   "netkups.com",
 - 	"xfileload.com",
 - 	"kumpulbagi.com",
 -   "uppit.com|up.ht",
 - 	"downloadani.me", 
 - 	"filesabc.com",
 -   "180upload.com",
 - 	"verzend.be", 
 -   "4up.me", 
 - 	"extmatrix.com", 
 - 	"sendfiles.nl", 
 - 	"yourfilestore.com", 
 - 	"filebig.net",
 -   "nekaka.com",
 - 	"file4safe.com",
 - 	"tusfiles.net",
 -   "filemac.com", 
 - 	"idup.in",
 -   "fileswap.com",
 - 	"ozofiles.com",
 - 	"loudupload.net", 
 -   "nosupload.com", 
 - 	"gboxes.com",
 -   "myvdrive.com|fileserving.com",
 - 	"filesin.com", 
 - 	"novafile.com", 
 - 	"longfiles.com",
 -   "uploadhero.com", 
 - 	"uploadbaz.com",
 -   "bitupload.com",
 -   "indowebster.com",
 - 	"superload.cz", 
 - 	"mafiastorage.com",
 - 	"4upfiles.com",
 -   "filesmelt.com", 
 - 	"hellupload.com", 
 - 	"uploadingit.com", 
 - 	"stiahni.si",
 -   "sendspace.pl",
 - 	"fastshare.org",
 - 	"filejoker.net", 
 -   "filestore.com.ua",
 -   "secureupload.eu",
 - 	"rapidfileshare.net",
 - 	"stiahnito.sk",
 -   "rusfolder.com",
 - 	"fileover.net", 
 - 	"catshare.net",
 - 	"anonfiles.com", 
 - 	"mixturecloud.com", 
 -   "fileparadox.in",
 - 	"filedais.com", 
 - //	"imdb.com",
 - 	"nitroflare.com",    
 -   "akafile.com",
 - 	"creafile.net",
 - 	"hugefiles.net",
 - 	"vidxden.com",
 - 	"up.top4top.net",
 -   "upload.ee",
 - 	"shareplace.org",
 - 	"uploadc.com",
 - 	"remixshare.com",
 -   "exoshare.com",
 - 	"borncash.org",
 - 	"junocloud.me",
 - 	"expressleech.com",
 - 	"2downloadz.com",
 -   "mightyupload.com",
 - 	"anysend.com",
 - 	"datafile.com",
 - 	"upstore.net",
 - 	"upsto.re",
 - 	"speedy.sh",
 -   "sanshare.com",
 - 	"kingfiles.net",
 - 	"uploadhero.co",
 - 	"ge.tt",
 - 	"filesflash.net",
 -   "salefiles.com",
 - 	"megairon.net",
 -   "datoid.cz",
 - 	"cloudstor.es",
 - 	"streamfile.com",
 - 	"eyesfile.ca",
 - 	"filemoney.com",
 - 	"uploadboy.com",
 - 	"speedshare.eu",
 - 	"google.com",
 -   "unlimitzone.com",
 - 	"rioupload.com",
 - 	"rg.to",
 - 	"jumbofiles.org",
 - 	"fshare.vn",
 - 	"spaceforfiles.com",
 - 	"up.media1fire.com",
 - 	"depfile.com",
 -   "go4up.com",
 - 	"dropbox.com",
 - 	"redbunker.net",
 - 	"divxpress.com",
 -   "mega.nz|mega.co.nz",
 - 	"anafile.com",
 - 	"uploadable.ch",
 -   "arabloads.net",
 - 	"sharerepo.com",
 - 	"sfshare.se",
 - 	"files.fm",
 - 	"koofile.com",
 - 	"vidplay.net",
 - 	"storagon.com",
 - 	"doraupload.com",
 - 	"openload.io",
 - 	"geupload.com|lenfile.com",
 - 	"uploads.xxx",
 - 	"toutbox.fr",
 -          
 - ];
 -  
 - try
 - {
 - 	//iframes excluded
 - 	if (window.top != window.self)
 - 	{
 - 		return;
 - 	}
 - 	
 - 	//allHostNames sites excluded
 - 	if (window.location.href.match("https?:\/\/(www\.)?[\w\.-]*(?:" + 
 - 						allHostNames.join("|").replace(/\./g, "\\.").replace(/-/g, "\\-") + 
 - 																		")"))
 - 	{
 - 		return;
 - 	}
 - }
 - catch (e)
 - {
 - 	return;
 - }
 -  
 - //separate alternative domains with "|" char (first name is considered being main)
 - var allContainerNames = [
 - 	"adf.ly",
 - 	"linkcrypt.ws",
 - 	"linksafe.me",
 - 	"linksave.in",
 - 	"linkto.net",
 - 	"madlink.sk",
 - 	"multiload.cz",
 -   "mirrorcreator.com",
 - 	"ncrypt.in",
 - 	"redi.re",
 - 	"relink.us",
 - 	"safelinking.net",
 - 	"theloo.katt.it",
 - 	"bit.ly",
 -  
 - ];
 -  
 - //separate alternative domains with "|" char (first name is considered being main)
 - var allObsoleteNames = [
 - 	"uloz.cz",
 - 	"filepost.com|fp.io",
 - 	"newfileland.com",
 - 	"quickshare.cz",
 - 	"netload.in",
 - 	"movreel.com",
 - 	"migahost.com",
 - 	"krotix.net",
 - 	"jumbofile.net",
 - 	"edoc.com",
 - 	"down4files.com",
 - 	"cramit.in|cramitin.net",
 - 	"freakshare.com",
 - 	"burnupload.com|burnupload.ihiphop.com",
 - 	"freakshare.net",
 - 	"daj.to",
 - 	"bl.st",
 - 	"2drive.net",
 - 	"ryushare.com",
 - 	"crisshare.com",
 - 	"tufiles.ru",
 - 	"uncapped-downloads.com",
 - 	"sockshare.com",
 - 	"ddlstorage.com",
 - 	"dataport.cz",
 - 	"dizzcloud.com",
 - 	"sharebeast.com", 
 - 	"stahovadlo.cz",
 - 	"shared.com",
 - 	"storage.to",
 - 	"putlocker.com",
 - 	"lumfile.com",
 - 	"lumfile.se",
 - 	"lumfile.eu",
 - 	"firedrive.com",
 - 	"fileshare.in.ua",
 - 	"filecore.co.nz",
 - 	"iskladka.cz",
 - 	"file-rack.com",
 - 	"fast-load.net",
 - 	"subory.sk",
 - 	"bigandfree.com",
 -   "fileop.com",
 - 	"mujsoubor.cz",
 - 	"sendfile.to",
 - 	"superfastfile.com",
 - 	"quickyshare.com",
 - 	"duckload.com",
 - 	"uploadstore.net",
 - 	"meinupload.com",
 -   "dualshare.com",
 - 	"2xupload.to|2xupload.de",
 - 	"oxedion.com",
 - 	"uploadline.com",
 - 	"dll.bz",
 - 	"movieshare.in",
 - 	"milledrive.com",
 - 	"quickupload.net",
 -   "safelink.in",
 - 	"metadivx.com",
 - 	"divxlink.com",
 - 	"uploadrack.com",
 - 	"teradepot.com",
 - 	"dataup.to",
 - 	"upit.to",
 - 	"driveway.com",
 - 	"eatlime.com",
 -   "a2zuploads.com",
 - 	"friendlyfiles.net",
 - 	"flyfile.us",
 - 	"speedyshare.com",
 - 	"uploadspace.eu",
 - 	"keepfile.com",
 - 	"piggyshare.com",
 - 	"uplly.com",
 -   "filecrown.com",
 - 	"6giga.com",
 - 	"uploadjockey.com",
 - 	"bluehost.to",
 - 	"filegu.ru",
 - 	"filebase.to",
 - 	"up-file.com",
 - 	"xvideos.com",
 - 	"ufox.com",
 -   "filebling.com",
 - 	"loaded.it",
 - 	"uploadcell.com",
 - 	"uploadshare.cz",
 - 	"mangoshare.com",
 - 	"filestab.com",
 - 	"crazyupload.com",
 - 	"gaiafile.com",
 -   "sharejunky.com",
 - 	"fileho.com",
 - 	"bigandfree.com",
 - 	"bigfile.in",
 - 	"bigshare.eu",
 - 	"dahosting.org",
 - 	"digisofts.net",
 - 	"file4save.com",
 -   "filechip.com",
 - 	"filescloud.com",
 - 	"saveqube.com",
 - 	"turboshare.de",
 - 	"z-upload.com",
 - 	"youshare.com",
 - 	"jiffyupload.com",
 - 	"gigeshare.com",
 -   "datenklo.net",
 - 	"upload.dj",
 - 	"loadfiles.in",
 - 	"upit.to",
 - 	"dsfileshare.com",
 - 	"sharesimple.net",
 - 	"4files.net",
 - 	"wooupload.com", 
 -   "odsiebie.com",
 - 	"filenavi.com",
 - 	"3oof.com",
 - 	"meshwaar.com",
 - 	"maxupload.com",
 - 	"share.cx",
 - 	"atserver.eu",
 - 	"hotfiles.ws",
 - 	"esnips.com",
 - 	"tuxfile.com",
 -   "file2upload.net",
 - 	"filebling.com",
 - 	"turboshare.com",
 - 	"rarhost.com",
 - 	"isharehd.com",
 - 	"i741.com",
 - 	"dataup.de",
 - 	"fofly.com",
 - 	"shareonall.com",
 -   "sexuploader.com",
 - 	"megaupload.com|megavideo.com|megaporn.com|megarotic.com",
 - 	"uploadhyper.com",
 - 	"filespawn.com",
 - 	"caizzii.com",
 -   "volnyweb.cz",
 - 	"usershare.net",
 - 	"filescash.net",
 - 	"metahyper.com",
 - 	"combozip.com",
 - 	"x7.to",
 - 	"uploadbox.com",
 - 	"enterupload.com|flyupload.com",
 -   "filepoint.de",
 - 	"mystream.to",
 - 	"x-fs.com",
 - 	"shareator.com",
 - 	"srapid.eu",
 - 	"sosame.cz",
 - 	"filesdump.com",
 - 	"2-klicks.de",
 - 	"uploking.com",
 -   "silofiles.com",
 - 	"upfile.in",
 - 	"filehook.com",
 - 	"uploadking.com",
 - 	"uploadhere.com",
 - 	"kewlshare.com",
 - 	"rapidable.com",
 - 	"uploadwaste.com",
 - 	"filemup.com",
 -   "filesonic.com|sharingmatrix.com",
 - 	"fileserve.com",
 - 	"wupload.com",
 - 	"skipfile.com", 
 - 	"smartuploader.com",
 - 	"dualshare.com",
 - 	"storeandserve.com",
 -   "mountfile.com",
 - 	"transitfiles.com",
 - 	"uploadstation.com",
 - 	"filejungle.com",
 - 	"shareshared.com",
 - 	"quickyshare.com",
 - 	"save.am", 
 - 	"petandrive.com",
 -   "file2box.com",
 - 	"flyshare.cz",
 - 	"yabadaba.ru",
 - 	"cloudcache.cc",
 - 	"yourfilehost.com",
 - 	"jakfile.com",
 - 	"kickload.com",
 - 	"pyramidfiles.com",
 -   "refile.net",
 - 	"zshare.net", 
 - 	"ddlani.me|ddlanime.com", 
 - 	"ftp2share.com",
 - 	"fooget.com",
 - 	"rapidhide.com", 
 - 	"gotupload.com",
 - 	"mooload.com",
 -   "zupload.com",
 - 	"mytempdir.com",
 - 	"onionshare.com", 
 - 	"stahnu.to",
 - 	"oron.com",
 - 	"badongo.com",
 - 	"filereactor.com",
 - 	"filegaze.com",
 - 	"4bytez.com",
 -   "1hostclick.com",
 - 	"anonstream.com",
 - 	"batshare.com",
 - 	"bitroad.net",
 - 	"brontofile.com",
 - 	"cloudnxt.net",
 - 	"cloudnator.com|shragle.com",
 - 	"filesfrog.net",
 -   "coolshare.cz", 
 - 	"dotavi.com", 
 - 	"ezyfile.net", 
 - 	"file-bit.net", 
 - 	"filecosy.com", 
 - 	"fileduct.com|fileduct.net", 
 - 	"filefat.com", 
 - 	"filelaser.com", 
 - 	"filemashine.com",
 -   "fileserver.cc",
 - 	"filetechnology.com",
 - 	"fireuploads.net",
 - 	"gigfiles.net",
 - 	"holderfile.com",
 - 	"ihostia.com", 
 - 	"k2files.com",
 - 	"mojofile.com",
 -   "ovfile.com",
 - 	"qshare.com",
 - 	"shafiles.me", 
 - 	"sharefilehost.com",
 - 	"shareupload.com",
 - 	"stahuj.to", 
 - 	"ugotfile.com",
 - 	"uploadboost.com",
 - 	"fileom.com",
 -   "vidhog.com",
 - 	"xfileshare.eu", 
 - 	"bzlink.us", 
 - 	"bulletupload.com",
 - 	"bloggerarticles.com", 
 - 	"mojedata.sk", 
 - 	"sharpfile.com", 
 -   "upgrand.com", 
 - 	"nasdilej.cz",
 - 	"mediatack.cz",
 - 	"share-it.to",
 - 	"primeupload.com",
 - 	"filebeer.info",
 - 	"baberepublic",
 - 	"xtu.me",
 - 	"sharebase.de",
 - 	"luckyshare.net",
 -   "filerobo.com",
 - 	"filevelocity.com",
 - 	"filezpro.com",
 - 	"file4sharing.com",
 - 	"cing.be",
 - 	"ufile.eu",
 - 	"pigsonic.com",
 - 	"fileupped.com",
 - 	"sharerun.com",
 - 	"filesaur.com",
 -   "rapidslnare.com",
 - 	"bestsharing.com",
 - 	"savefiles.net",
 - 	"file2share.biz",
 - 	"filecache.de",
 - 	"monsteruploads.eu",
 - 	"b9bb.com",
 - 	"aiotool.net",
 - 	"jamber.info",
 -   "megaftp.com",
 - 	"desiupload.net",
 - 	"file27.com",
 - 	"yastorage.com",
 - 	"filehost.ws",
 - 	"copyload.com",
 - 	"venusfile.com",
 - 	"aieshare.com",
 - 	"terafile.co",
 - 	"terafile.com",
 -   "fileza.net",
 - 	"filerose.com",
 - 	"squillion.com",
 - 	"fileprohost.com",
 - 	"bitbonus.com",
 - 	"warserver.cz",
 - 	"uload.to",
 - 	"sharedbit.net",
 - 	"megaload.it",
 - 	"filewinds.com",
 -   "uploadcore.com",
 - 	"syfiles.com",
 - 	"eyesfile.com",
 - 	"hotfile.com",
 - 	"superupl.com",
 - 	"oteupload.com",
 - 	"henchfile.com",
 - 	"filegag.com",
 - 	"HenchFile.com",
 - 	"filedefend.com",
 -   "share-rapid.com|rapids.cz|share-credit.cz|share-central.cz|share-ms.cz|share-net.cz|srapid.cz|share-rapid.cz",
 - 	"megabitshare.com",
 - 	"cloudzer.com",
 - 	"asfile.com",
 -   "cloudzer.net",
 - 	"clz.to",
 - 	"extabit.com",
 - 	"247upload.com",
 - 	"2download.de",
 - 	"4fastfile.com",
 - 	"asixfiles.com",
 - 	"berofile.com",
 - 	"bigupload.com",
 - 	"cepzo.com",
 - 	"clouds.to",
 - 	"cobrashare.sk",
 -   "coraldrive.net",
 - 	"cyberlocker.ch",
 - 	"czshare.com",
 - 	"darkport.org",
 - 	"dark-uploads.com",
 - 	"davvas.com",
 - 	"enigmashare.com",
 - 	"erofly.cz",
 - 	"fastsonic.net",
 - 	"filebox.com",
 -   "filecity.net",
 - 	"filedap.com",
 - 	"filedino.com",
 - 	"filedownloads.org",
 - 	"filefolks.com",
 - 	"fileking.co",
 - 	"filemates.com",
 - 	"files.to",
 - 	"files2k.eu",
 - 	"filesector.cc",
 - 	"bitshare.com",
 -   "filesega.com",
 - 	"filesend.net",
 - 	"filestay.com",
 - 	"filestrum.com",
 - 	"fileuplo.de",
 - 	"fileupup.com",
 - 	"forunesia.com",
 - 	"freeuploads.fr",
 - 	"uploa.dk",
 - 	"getthebit.com",
 - 	"getzilla.net",
 -   "goldfile.eu",
 - 	"good.com",
 - 	"grupload.com",
 - 	"hellfile.com",
 - 	"hipfile.com",
 - 	"hitfile.com",
 - 	"hulkfile.eu|duckfile.net",
 - 	"i-filez.com",
 - 	"ifile.ws",
 - 	"kupload.org",
 - 	"packupload.com",
 -   "lemuploads.com",
 - 	"limelinx.com",
 - 	"maxshare.pl",
 - 	"megarelease.org",
 - 	"megashare.com",
 - 	"minus.com",
 - 	"mlfat4arab.com",
 - 	"multishare.cz",
 - 	"nirafile.com",
 - 	"ok2upload.com",
 - 	"peejeshare.com",
 -   "premiuns.org",
 - 	"przeklej.net",
 - 	"qkup.net",
 - 	"rapidupload.sk",
 - 	"rockdizfile.com",
 - 	"rocketfile.net",
 - 	"share-now.net",
 - 	"share76.com",
 - 	"sharebees.com",
 - 	"sharefiles.co",
 - 	"slingfile.com",
 -   "sms4file.com",	
 - 	"space4file.com",
 - 	"tigershare.net",
 - 	"toucansharing.com",
 - 	"ubuntuone.com",
 - 	"unextfiles.com",
 - 	"upaj.pl",
 - 	"upfile.biz",
 - 	"uploadbin.net",
 - 	"uploadic.com",
 - 	"uploadinc.com",
 -   "uploading4u.eu",
 - 	"uploadjet.net",
 - 	"uploadorb.com",
 - 	"upthe.net",
 - 	"uptorch.com",
 - 	"vidbox.yt",
 - 	"videozer.com",
 - 	"vreer.com",
 - 	"wallobit.com",
 - 	"zooupload.com",
 - 	"privatefiles.com",
 - 	"xerver.co",
 -   "BillionUploads.com",
 - 	"rapidshare.com",
 - 	"rapidshare.ru",
 - 	"4savefile.com",
 - 	"bayfiles.com",
 - 	"bayfiles.net",
 - 	"dodane.pl",
 - 	"dotsemper.com",
 - 	"egofiles.com",
 - 	"epicshare.net",
 - 	"fiberupload.net",
 -   "filemonkey.in",
 - 	"filemonster.net",
 - 	"filepom.com",
 - 	"filesbb.com",
 - 	"fileshareup.com",
 - 	"filevice.com",
 - 	"gigaup.fr",
 - 	"isavelink.com",
 - 	"loombo.com",
 - 	"megafiles.se",
 -   "migupload.com",
 - 	"mydisc.net",
 - 	"nitrobits.com",
 - 	"potload.com",
 - 	"redload.net",
 - 	"shareprofi.com",
 - 	"sharesuper.info",
 - 	"sinhro.net",
 - 	"speedfile.cz",
 - 	"speedshare.org",
 - 	"storage.novoro.net",
 -   "swankshare.com",
 - 	"swatupload.com",
 - 	"upafile.com",
 - 	"uploadmachine.com",
 - 	"uploadsat.com",
 - 	"upshared.com",
 - 	"usefile.com",
 - 	"yourfiles.to",
 - 	"zomgupload.com",
 - 	"ultramegabit.com",
 - 	"uploadto.us",
 -  
 - ];
 - ///////////////////////////////////////////////////////////////////////////////////////
 - var firstRun = GM_getValue("First_run", true);
 -  
 - var chromeBrowser = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase());
 - //////////////////////////////////////////////////////////////////////////////////////
 - try
 - {
 - 	var thisVersion = GM_info.script.version; //not supported in Scriptish and others
 - 	var last_known_version = GM_getValue("last_known_version", "");
 - 	if (!last_known_version)
 - 	{
 - 		last_known_version = thisVersion;
 - 		GM_setValue("last_known_version", last_known_version);
 - 	}
 - 	//var newVersion = !(thisVersion == last_known_version);
 - 	var newVersion = !(a.replace(/^(\d+\.\d+\.\d+).*/,'$1') == b.replace(/^(\d+\.\d+\.\d+).*/,'$1')); //true only if one of the first three numbers differs
 - 	GM_setValue("last_known_version", thisVersion);
 - }
 - catch (err)
 - {
 - 	var newVersion = false;
 - }
 -  
 - var now = (new Date()).getTime();
 - var last_custom_rules_nag = GM_getValue('last_custom_rules_nag', 0);
 - if (!last_custom_rules_nag)
 - {
 - 	last_custom_rules_nag = now;
 - 	GM_setValue('last_custom_rules_nag', ''+now);
 - }
 -  
 -  
 - allHostNames.sort();
 - allContainerNames.sort();
 - allObsoleteNames.sort();
 -  
 - var RAND_STRING = "8QyvpOSsRG3QWq";
 - var DEBUG_MODE = false;
 -  
 - var TOOLTIP_MAXWIDTH = 600; //in pixels
 - var TOOLTIP_THUMBWIDTH = 200;
 - 		
 - var containers_processed = false;
 -  
 - //settings for keyboard functions start
 - var CHECK_ALL_LINKS_KEY = "A";
 - var CONFIGURATION_KEY = "C";
 - var copy_to_dead_key = "D";
 - var toggle_autocheck_key = "W";
 - var toggle_Enable_Anonymizer_key = "Z";
 - var first_key_keycode = '17'; // 18=ALT 16=Shift 17=Ctrl 32=SPACE_BAR 9=TAB
 - var first_key_keycodename = 'CTRL';
 - var second_key_keycode = '18';
 - var second_key_keycodename = 'ALT';
 - var CHECK_ALL_LINKS_KEYCODE = CHECK_ALL_LINKS_KEY.charCodeAt(0);
 - var CONFIGURATION_KEYCODE = CONFIGURATION_KEY.charCodeAt(0);
 - var copy_to_dead_keycode = copy_to_dead_key.charCodeAt(0);
 - var toggle_autocheck_keycode = toggle_autocheck_key.charCodeAt(0);
 - var toggle_Enable_Anonymizer_keycode = toggle_Enable_Anonymizer_key.charCodeAt(0);
 - //settings for keyboard functions end
 -  
 - //global settings start
 - var Show_black_background_in_DL_links, Show_line_through_in_dead_links, Color_DL_links;
 - var Live_links_color, Dead_links_color, Temp_unavailable_links_color, Premium_links_color, Ref_anonymize_service;
 - var Do_not_linkify_DL_links, Keyboard_functions, Autocheck, Enable_Anonymizer;
 - var Show_progress_stats, Display_tooltip_info, Icon_set;
 - var Progress_box_pos_bottom, Progress_box_pos_right, Progress_box_opacity, Progress_box_background_color, Progress_box_item_color;
 - var Progress_box_refresh_rate;
 - var Obsolete_file_hosts;
 - var Custom_rules, Custom_rules_text;
 -  
 - var messageBox = document.createElement('b'); // top-left message box
 -  
 - var cLinksTotal = 0;
 - var cLinksDead = 0;
 - var cLinksAlive = 0;
 - var cLinksUnava = 0;
 - var cLinksprem = 0;
 - var cLinksProcessed = 0;
 -  
 - var intervalId; //for updateProgress()
 -  
 - //icon resources
 - var PAW_ICON_GREEN = 	'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAInSURBVHjadJJdaFJxGMaf//+c4/Ec9fhBM6fTaZON2kDZF5GwWEHJlrSyQBbedLGgBRV0U3QRQVd1E7Quoq4aERRFq+hieRPrxmAUJCbDstUkyZbOj6VHPd3MYUXP5fs+Dy8vvwdoEaHE3hW2PeBNqmBzpnWKIY1DOIb/yRlsvz+lHFRGH/bXAVhMHuni5Oo+JfDGp1CODjV9tPWQfodmsFKX0TZsoIQjZ7efcp5R6TmwIgtC0fF3yAhAycdLRcoQgBBQhvh1btFAKPA9mkO90khuhjiJ9e2dG0z1nHBElp9kFtKRLDKvfqD+q/E0G83Raq6G+I1UBMBnhqf9AAjs4+Z7x5UDSrjkVwy9uhkA5wFcAADCkHO8kXsOYGJk1vslmBxVtC5hml37WC5VCzJYHYstA/r9uVjBDQKztlOYKKbWb1V+ytds/rYXrpC1Q6kpECx8L83Hi3feXl5CJVtFPlHMSN2a04Gob+XQ+92P9zwa+Mqo6UmTV/JwDIN8oojVxbUY2fhtjFHTw5zE6sdf7zoiWtWoletQGTkk767gw0yqsvN6H794KbGUns8OkVZMI7PemPNouyjna8DGRqXnMD8WfZd+mb0NYA7A8iYnY5/uij2wVZQLNYAClCUglKAhN9A95ehpBv6Aq3NrPGpJBZXEAgpQ+FRGbb0OVmQhmHk1gOF/KsQIzPS2SWvaFbJ+0zqFBQBXBQv/rCtsS2s7hZsAxKb39wDZHLK7+slpUgAAAABJRU5ErkJggg==';
 - var PAW_ICON_RED = 		'data:image/png;base64,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';
 - var PAW_ICON_YELLOW =	'data:image/png;base64,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';
 - var	PAW_ICON_PINK =	  'data:image/png;base64,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';
 -  
 - var RSLC_ICON_GREEN =   'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AMJCQY36Sc4vgAAAlRJREFUeNpV0r9PE3EABfD3veu1lJYr15ZCoBHBqJBAMEbjL0hYFAkyOAmJMUYd/Q+cXF1wYPQPILppYkKIRARiMDGoaAKimBaKHMWDXnu93venE0Tf9Ib3tg/BP7m3NGgwxtKcM4vyIKSk4BBqnwux9/LGKjvckcNy9/1Akgk2ZJHMWNyw+qWUMSGZ51R2FzbdX1NSyOnZWznn6HRn8UqSCv6gLdz58GSsL2voURJIirAWhh+U1fLO4tbKztdJIvHsw/1NR7/97pJBOR9tDXc+6rMGsg4vkd3AhkMdVJgLounkdKLHdL1S13ZpdyMzbK5pnNF0I0mNn4r3Ze3AJrZvo0zL8KkPyil6rTOgipFzrRezLXVt4zWKtBbwWjIeTgyEQlHiUhepcBpNkSaYehxX20Yw2HYd3VYP6iNRYhrpAeojGfJqvs7rRIyKGpSUGOm4iYgWwX7wB72ps/hWXMZCbgaNkUYQrseUr3SNB0JQRj0DBnSlYWN/DcfNEzifuYzVvS94vf4cVeoiBB2ScY8IiBBnytk7KM5XG8qj9SRClrbnUKNVZKLNWMjPwKkWkYk146BSUbZrz0PC0ZuHzaBYLokq9S90p3pMJRnJl35gtfgZQnAko0lY4WY1+2lu63s+N0EE+agXXrkydc3czjtF7noHXccSx82mWIY0hBpgRVMIalK9WX67tfJzfZJo5EVuouAdieh4kk3KQA21J1rGmuoy/UToMSG5t+vaC5u/7Smikenc04LzHyMAaH+cNcBVGgyWClSIgHAA+2DYy00Wjuz9Bce5MucW9xnuAAAAAElFTkSuQmCC';
 - var RSLC_ICON_RED = 	  'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AMJCQkjdGXwDAAAAcpJREFUeNptkj9PFHEQhp/ZBcIhxyKHYgNCYUxogE0OpdDGxsQCY6e5ggS1Mn4Ce621u7MCYqOdX4DkSLTBqwyNiQmJBiJiDjmWP/ub1+IAMXGqmTx5M5nJY5wpwRiQHPfoL2rG8PVksDOBlKRYZWgwxcwkIQlc0o+fDe3sPu6E1dOQIGWg/yUT4zOUBiLtHYAHFBy6YvRrW+Hzl4/e/P2kAJ8iwRhJscrE+AzDwxG3Z2E/oO9bKMvhzj104aLZ1dFr9PZUWzDWASQMDaYqDZjdvAWzd2HkMlpcJKpUsMlJdHiI3i1Ffr4v9d29pEMnt7UyfOkNNjKKTU8Tl8tghq+sEGqvUZwjZA5EAiShPIetLXxhASSIY3An1Gr4xkabq70iar9OkOeoWCSqVMAM8hzMiObnIUnQ0RFyR0DkgNylzhh7cB+bmsLrdQ7n5gj1OlG5TPxoHro7kUsC4mdQUB5u0NdziW/r5q2M/PkLfG2NsLwMkRHevyVkWQib26t+FJYMIIOUvt5XdmXkunXEke/sQchRCNDdRfAQ8vXND97af1qCxqkRLUj9XKFq/cUUMMmRQHKFZquh7OBhCRr/aATQ/I97foxKZ9z7A9QA5voyr3dtAAAAAElFTkSuQmCC';
 - var RSLC_ICON_YELLOW =	'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2AQJDBgxYO68rwAAAZNJREFUeNptkr9LW1EcxT/3GhOTKIG8QTpm8B8IIoJTFkFwsXVyUaxFJHYoFzJYUVFHn4sKtoidCoKtIigWOtQOhRKowaFzJwcF0VeJ+fFe7nUwP57R7/S9nO+595z7PQJfGUgAsWqPaUBOC/yrHQI+QjKTXc7GQq4EhP+uKzdUcbtnelvhDzXQQHL2bCkbxhOA5GmZ24LUC73zPWE4lQYSmexynaCmjh5Nq9FdANER1uL9j7nfeUhIIFaVJNXEPrguKvPzgfD2G0iBGt8DkPG4CGiIyapZAWBvDUEoBOfnqPQxaANxC3v7Ze1hoQFpmsTbGwMQicLNNeTz2HaKYuO/4DnTauwLeC6i8wW4ZdSbA9rw/GtB6kaPmjyESATKZVZWUxAMQqnI9MTXOqdGcvRFoSw8o+0Pg1DxsD+PcFcJYH8aphSNsr71CkAH/17danAEQAGSa98zv7x4W9AIpGkRzap18cKU3vUv9lmQq6N5SH7cSZ8Uuqx205SI1rPL/6/HN1MW5GiKC84z2at6dixf9u4B/PqUtJuX27QAAAAASUVORK5CYII=';
 - var RSLC_ICON_PINK = 	  'data:image/png;base64,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';
 -  
 - var NEW_ICON_GREEN = 	'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACGklEQVR42mNkIBcwMWQwsDMrMZKhlZmRi2mCWYtE9st1bx+SagAPlwTLCt+pot6vrv/8t7/mnQcpBsjI6jNvDp4uZvDuMw/D8uA7U39/+Z9DrAGG5r5Mmz06pKQ//BVnWJl89daL0z8MgeLfiDHAN6SAaZlhjjzP+x8SDAcX3P1zuueVDVD8JEiSkVOcZbWAJKPi8wu/q4H8nSgBzcyQl9jN1ifvp8z8+acQw50brxk2Rd1u+fvzfy1MDaN7DOO7ohnSgqe2Pf0/rYJh1/N7/0uB4tdYuRknJMzgzZYyV2L89pub4c3Xbwwb4q+de3/9pwVQ/jfcAGYWhrJ5x207ZdSFGB59Ockwb+L3vydX/7oRPYFPW05DnuHbb1aGD79+MRyZev/H9TlvTIB6riK7EhQGbNr2rJe714eq/fjLwPD8x22GO5/eM/CzijN8BdoD0nz3/FuG/an3Sv7/ZehFDyBYIHplzFHcYullyPjp13eGj79/MHwEagRpfvPpB8OuuJsHvz785QRU9w+XAQwCMkyby3aZ+/xj5YBr/vDzD8OpngefHq55rw9U8gBbFCFHo4pljvAV60x19o+/fgMN+cNw79h7hjNFD5IZ/jPMwxXHKOmAmYOxPWCNWgWzKBfDm7c/GY4m3Nr089Uff3yJBD0h8Ug68tzQbVCUvtD66PWrXR91gWIvSTEABOw5pNlKfjz91QNkHySUTAGg7t0uvj1ytQAAAABJRU5ErkJggg==';
 - var NEW_ICON_RED = 		'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6klEQVQ4jbWTwWrCQBRFz6Rxnay6iuAXlJIg+BHZZR/d6++4t/5MpRQRf8CCrurGrDP6uumESTol04J3dbmPd7hvYBTAG5QBzIFH/PQpsBzDWm2gDGEFKM9lIxGYBSEsustRnpPWNZkImQip1sRF0QUoBQv1DgdgZE9SrdmGIX0Z8NFKni8XHqIIgEzkR+dMhGtVsYvjJgt6L+1Rq4FN/hcA2md01a0PjhPM8n44bDLjXeBf36A+nZzeG+Cr+wEGSeL0LsDZDq5VBcDT8dhkxpuZpbN6hXIAL76Vbd1gqgC+IX/6zhqWE1h/AYSwSjYrmXJlAAAAAElFTkSuQmCC';
 - var NEW_ICON_YELLOW =	'data:image/png;base64,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';
 - var	NEW_ICON_PINK =	  'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABUklEQVQ4jY3TsUuWURQG8F8WEvFNDREfIg5RURAOIeL0DhJBS0tDY9BQQ0Oj29kiIvoDhBpFQRTUD1GKi0sRtEs0SEQ0RBQIRcVXw3eF6+vrWwcunPvc53nuPffcS0uEmA0x38Y5cohwGjOYxBBe4VGI3j8NQlzHYhaW0cfNEAslWCfBw4yvYhkv8hjCgxD7yMdquw/jbJ4+xq2cz+AKdrJRv9EAv/EDx3Ft75QhtrHdcFpHy0mS/lSqcVzAFM7he6XaTNLXJoOmS+ziOc4XcB893A3xodUgm5zAHdzHSLH0DhdD/GwsoSjlV5Je5nK+YQUTOInXSXq7x6134RQuo4unGf6Me7iKMxgrNfUuXMJazr8U+DA6Of/UZrCF9xjFM3zELpZwOptulIKmLlQGNXdqS7u4EWK9BA9cYpJ2KtWcwaMazcInuB3iTZ3fGv/znf8CBMxX4hrPUbUAAAAASUVORK5CYII=';											
 -  
 - //global settings end
 - if (window.opera && !window.console)
 - {
 - 	window.console = {};
 -  
 - 	function fn()
 - 	{
 - 		opera.postError(arguments);
 - 	};
 - 	['log', 'debug', 'info', 'warn', 'error', 'assert', 'dir', 'dirxml', 'group', 'groupEnd', 'time', 'timeEnd', 'count', 'trace', 'profile', 'profileEnd'].forEach(function (name)
 - 	{
 - 		window.console[name] = fn;
 - 	});
 - }
 -  
 - //displays colored text in message box
 - function sendMessage(text, color)
 - {
 - 	var msgDiv = document.createElement('div');
 - 	msgDiv.style.color = color;
 - 	msgDiv.innerHTML = text;
 - 	messageBox.appendChild(msgDiv);
 - 	setTimeout(function(){messageBox.removeChild(msgDiv)}, 3000);
 - }
 -  
 - function linkify(totalourls)
 - { // code from http://userscripts.org/scripts/review/2254  Linkify ting
 - 	var ikkeTilladteTags;
 - 	
 - 	var allLinksRegex = "(?:http:\/\/.+?\\?)?(?:https?:\/\/)?"
 - 		+ "[0-9A-Za-z]+(?:[\\.-][0-9A-Za-z]+)*\\.[A-Za-z]+/"   //instead of totalourls
 - 		+ "[\\w\\–\\-\\.+$!*\\/()\\[\\]\',~%?:@#&=\\\\\\—;…×Ã\\_\\u0080-\\u03FF’‘" +    (Allow_spaces_in_DL_links ? "\\u0020" : "")    + "]*";
 - 	allLinksRegex = new RegExp(allLinksRegex, "g");
 - 	
 - 	var regexy = "^(?:http:\/\/.+?\\?)?(?:https?:\/\/)?(?:www\\.)?(?:" + totalourls + ")";
 -  
 - 	if (Do_not_linkify_DL_links)
 - 		ikkeTilladteTags = ['a', 'head', 'script', 'style', 'title', 'option', 'iframe', 'textarea', 'span']; //tags, hvor det der stAΞ’Β¥r inden i ikke skal vAΞ’Β¦re links
 - 	else
 - 		ikkeTilladteTags = ['a', 'head', 'script', 'style', 'title', 'option', 'iframe', 'textarea']; //tags, hvor det der stAΞ’Β¥r inden i ikke skal vAΞ’Β¦re links
 -  
 - 	var regex = new RegExp(regexy);
 - 	var textNode, muligtLink;
 -  
 - 	var path = "//text()[not(parent::" + ikkeTilladteTags.join(" or parent::") + ") and contains(.,'/')]";
 - 	var textNodes = document.evaluate(path, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 -  
 - 	var i = textNodes.snapshotLength;
 - 	
 - 	while (i--)
 - 	{
 - 		textNode = textNodes.snapshotItem(i);
 -  
 - 		muligtLink = textNode.nodeValue; //all links on page
 -  
 - 		var myArray = null;
 - 		var span = null;
 - 		var lastLastIndex = 0;
 - 		allLinksRegex.lastIndex = 0;
 - 		
 - 		if (/^https?:\/\/~[\w\s\~]*\//.test(muligtLink))
 - 		{
 - 			if (textNode.parentNode.className == "adead_link") continue;
 - 			var censoredLink = muligtLink;
 - 			var span = document.createElement('span');
 - 			span.className = "adead_link";
 - 			$(span).attr('warlc_error', "Cause of error: <b>Censored link.</b>");
 - 			$(span).html(censoredLink);
 - 			span.addEventListener("mouseover", displayTooltipError, false);
 - 			cLinksTotal++; cLinksProcessed++; cLinksDead++;
 - 			textNode.parentNode.replaceChild(span, textNode);
 - 			continue;
 - 			alert(censoredLink);
 - 		}
 - 		
 - 		while (myArray = allLinksRegex.exec(muligtLink)) //find all links
 - 		{
 - 			if (!regex.test(myArray[0]))  //this link is not recognized
 - 			{
 -  
 - 				continue;
 - 			}
 - 			
 - 			if (!span) 
 - 				span = document.createElement('span');
 -  
 - 			var link = myArray[0];
 - 			span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex, myArray.index))); //inds?t det der kommer for dette hit
 -  
 - 			var $a = $("<a>" + link + "</a>")
 - 			
 - 			if (!link.match(/https?:\/\//))
 - 			{
 - 				link = 'http://' + link;
 - 			}
 -  
 - 			$a.attr("href", link.replace(/\[\/hide:\w+\]/,""))
 - 				.addClass("processing_link")
 - 				.appendTo(span);
 - 			
 - 			
 - 			lastLastIndex = allLinksRegex.lastIndex;
 - 		}
 - 		
 - 		if (span)
 - 		{
 - 			span.appendChild(document.createTextNode(muligtLink.substring(lastLastIndex))); //ins?t det der kommer efter sidste hit
 - 			textNode.parentNode.replaceChild(span, textNode);
 - 		}
 - 	}
 - }
 -  
 - function add_WARLC_style()
 - {
 - 	if (!(document.getElementsByTagName('WARLC')[0]))
 - 	{
 - 		var meta_not_to_add_more_style = document.createElement("WARLC");
 - 		meta_not_to_add_more_style.setAttribute('content', 'war_links_checker');
 - 		meta_not_to_add_more_style.setAttribute('name', 'description');
 - 		document.getElementsByTagName('head')[0].appendChild(meta_not_to_add_more_style);
 - 	
 - 		alive_link_png = "";
 - 		adead_link_png = "";
 - 		unava_link_png = "";
 - 		prem_link_png = "";
 - 		switch(Icon_set)
 - 		{
 - 		//no icons
 - 		case 0:	break;
 - 		
 - 		// cat paws
 - 		case 1:	alive_link_png = PAW_ICON_GREEN;
 - 				adead_link_png = PAW_ICON_RED;
 - 				unava_link_png = PAW_ICON_YELLOW;
 - 				prem_link_png = PAW_ICON_PINK;
 - 				break;
 - 		
 - 		// classic RSLC look
 - 		case 2: alive_link_png = RSLC_ICON_GREEN;
 - 				adead_link_png = RSLC_ICON_RED;
 - 				unava_link_png = RSLC_ICON_YELLOW;
 - 				prem_link_png = RSLC_ICON_PINK;
 - 				break;
 - 				
 - 		// New Icons
 - 		case 3: alive_link_png = NEW_ICON_GREEN;
 - 				adead_link_png = NEW_ICON_RED;
 - 				unava_link_png = NEW_ICON_YELLOW;
 - 				prem_link_png = NEW_ICON_PINK;
 - 				break;				
 - 		
 - 		// cat paws
 - 		default:alive_link_png = PAW_ICON_GREEN;
 - 				adead_link_png = PAW_ICON_RED;
 - 				unava_link_png = PAW_ICON_YELLOW;
 - 				prem_link_png = PAW_ICON_PINK;
 - 				break;
 - 		}
 - 		
 - 		processing_link_gif = 'data:image/gif;base64,' + // or temporary anavailable
 - 		'R0lGODlhCgAKAJEDAMzMzP9mZv8AAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQFAAADACwAAAAACgAKAAACF5wncgaAGgJzJ647cWua4sOBFEd62VEAACH5BAUAAAMALAEAAAAIAAMAAAIKnBM2IoMDAFMQFAAh+QQFAAADACwAAAAABgAGAAACDJwHMBGofKIRItJYAAAh+QQFAAADACwAAAEAAwAIAAACChxgOBPBvpYQYxYAIfkEBQAAAwAsAAAEAAYABgAAAgoEhmPJHOGgEGwWACH5BAUAAAMALAEABwAIAAMAAAIKBIYjYhOhRHqpAAAh+QQFAAADACwEAAQABgAGAAACDJwncqi7EQYAA0p6CgAh+QQJAAADACwHAAEAAwAIAAACCpRmoxoxvQAYchQAOw%3D%3D';
 -  
 - 		var dead_color_css, live_color_css, unava_color_css, prem_color_css, black_background_css;
 -  
 - 		if (Color_DL_links)
 - 		{
 - 			dead_color_css = 'color:' + Dead_links_color + ' !important;';
 - 			live_color_css = 'color:' + Live_links_color + ' !important;';
 - 			unava_color_css = 'color:' + Temp_unavailable_links_color + ' !important;';
 - 			container_color_css = 'color:' + Container_links_color + ' !important;';
 - 			prem_color_css = 'color:' + Premium_links_color + ' !important;';
 - 		}
 - 		else
 - 		{
 - 			dead_color_css = live_color_css = unava_color_css = container_color_css = prem_color_css = '';
 - 		}
 -  
 - 		if (Show_black_background_in_DL_links)
 - 		{
 - 			black_background_css = 'background-color: black !important;';
 - 		}
 - 		else
 - 		{
 - 			black_background_css = '';
 - 		}
 -  
 - 		if (Show_line_through_in_dead_links)
 - 		{
 - 			line_through_css = 'text-decoration: line-through !important;';
 - 		}
 - 		else
 - 		{
 - 			line_through_css = '';
 - 		}
 -  
 - 		GM_addStyle(".alive_link {background:transparent url(" + alive_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;" + live_color_css + black_background_css + "}");
 - 		GM_addStyle(".adead_link {background:transparent url(" + adead_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;" + dead_color_css + black_background_css + line_through_css + "}");
 - 		GM_addStyle(".unava_link {background:transparent url(" + unava_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;" + unava_color_css + black_background_css + "}");
 - 		GM_addStyle(".processing_link {background:transparent url(" + processing_link_gif + ") no-repeat scroll 100% 50%;padding-right:15px;" + container_color_css + black_background_css + "}");
 - 		GM_addStyle(".container_link {background:transparent url(" + processing_link_gif + ") no-repeat scroll 100% 50%;padding-right:15px;" + container_color_css + black_background_css + "}");
 - 		GM_addStyle(".container_list {font-size:90%; list-style-type:square; padding: 0px 5% 0px; margin: 0px}");
 - 		GM_addStyle(".prem_link {background:transparent url(" + prem_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;" + prem_color_css + black_background_css + "}");
 - 	}
 - }
 -  
 - var warlcTooltip = null;
 - var mouseoverLink = null; //link href with mouse cursor over it
 -  
 - var lastX = 0;
 - var	lastY = 0;
 -  
 - $(document).ready(initTooltip);
 - 	
 - //inits tooltip	
 - function initTooltip()
 - {	warlcTooltip = document.createElement("div");
 - 	warlcTooltip.setAttribute("style", "background: #EAEAEA; box-shadow: 0 1px 5px rgba(0, 0, 0, 0.5);padding: 6px 6px 6px 6px; border-radius:2px; border:2px solid #6699CC; color:#000000;font-family:Verdana,sans-serif;font-size:11px;position:absolute;z-index:1000; max-width: " + TOOLTIP_MAXWIDTH + "px;");
 - 	warlcTooltip.style.visibility = "hidden";
 - 		
 - 	document.body.appendChild(warlcTooltip);
 - }	
 -  
 - //"mousemove" event handler for all links
 - function moveTooltip(event)
 - {
 - 	if ((Math.abs(lastX - event.clientX) + Math.abs(lastY - event.clientY)) < 6)
 - 	{	//no need to reflow if the cursor moved just a little
 - 		return;
 - 	}
 - 	else
 - 	{
 - 		lastX = event.clientX;
 - 		lastY = event.clientY;
 - 	}
 -  
 - 	posX = event.clientX + window.pageXOffset + 10;
 - 	posY = event.clientY + window.pageYOffset;
 - 	
 - 	var ttHeight = warlcTooltip.offsetHeight;
 - 	var ttFreeSpace = window.innerHeight - event.clientY;
 - 	
 - 	if (ttHeight > ttFreeSpace)
 - 	{	//prevents tooltip from getting out of the window
 - 		posY -= (ttHeight - (ttFreeSpace)) + 10;
 - 	}
 - 	else
 - 	{
 - 		posY += 7;
 - 	}
 - 	
 - 	warlcTooltip.style.top = posY + "px";
 - 	warlcTooltip.style.left = posX + "px";	
 - }
 -  
 - //"mouseout" event handler for all links
 - function hideTooltip(){
 - 	warlcTooltip.style.visibility = "hidden";
 - 	mouseoverLink = null;
 - }	
 -  
 -  
 - //"mouseover" event handler for dead links
 - //displays tooltip error message on dead links 
 - function displayTooltipError()
 - {
 - 	mouseoverLink = this.href;	
 - 	
 - 	this.addEventListener("mouseout", hideTooltip);
 - 	this.addEventListener("mousemove", function(event) { moveTooltip(event); });
 - 	
 - 	warlcTooltip.innerHTML = '<b>LOADING...</b>';
 - 	warlcTooltip.style.minWidth = 0;
 - 	warlcTooltip.style.visibility = "visible";
 - 	
 - 	if (this.warlc_error) //an error message is already known and stored in warlc_error attribute
 - 	{
 - 		warlcTooltip.innerHTML = this.warlc_error;
 - 	}
 - 	else
 - 	{
 - 		loadErrorInfo(this);
 - 	}
 - 	
 - 	function loadErrorInfo(link)
 - 	{
 - 		var href = link.href;
 - 		
 - 		href = href.replace(/quickshare\.cz\/.+/, "quickshare.cz/chyba");
 - 		
 - 		GM_xmlhttpRequest({
 - 			method: 'GET',
 - 			url: href.replace(Ref_anonymize_service, ""),
 - 			headers: {
 - 				'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 				'Accept': 'text/xml',
 - 				'Referer': ""
 - 			},
 - 			onload: function(result) {
 - 				var res = result.responseText;
 - 				
 - 				//TODO: errorRegexs - 
 - 				var errorRegexs = 	[	//generic error messages follow
 - 										/(empty directory)/i,
 - 										/(soubor nebyl nalezen)/i,
 - 										/((?:file|page|link|folder)(?:is|not|does|has been|was| ){1,}(?:found|available|blocked|exists?|deleted|removed))/i,
 - 																				
 - 										//server specific error messages follow
 - 										/msg error" style="cursor: default">(.+?)<\/div>/, //sendspace
 - 										/color:red;font\-weight:bold;border\-style:dashed;font-size:12px;border\-width:2px;><tr><td align=center>(.+?)<\/td>/, //fastshare
 - 										/(Takový soubor neexistuje. Je možné, že byl již smazán.)/, //quickshare
 - 										/file_info file_info_deleted">\s*<h1>(.+?)<\/h1>/, //filepost
 - 										/<br \/>\s*<p style="color:#000">(.+?)<\/p>\s*<\/center>/, //letitbit
 - 										/(?:error_div">|<\/h1><p>)<strong>(.+?)<\/strong>/, //share-rapid,quickshare
 - 										/class="red">(.+?)<(?:span|br)>/, //czshare, megashares
 - 										/class="wp640">\s*<h1 class="h1">(.+?)<\/h1>/, //uloz.to
 - 										/not-found">\s*<p>(.+?)<\/p>/, //bayfiles
 - 										/(Your file could not be found. Please check the download link.)/, //stahnu.to
 - 										/error_msg">\s*(<h3>.+?<\/h3><ul>(.+?)<\/ul>)/, //edisk
 - 										/id="obsah">\s*<h2>(.+?)<\/h2>/, //euroshare
 - 										/error">\s*(?:<[bp]>)?\s*(.+?)<\/[bp]>/, //filesmonster, shragle, gigapeta
 - 										///center aC">\s*<h1>(.+?)<br \/>/, //uploaded.to
 - 										/icon_err">\s*<h1>(.+?)<\/h1>/, //filejungle
 - 										/Code: ER_NFF_\d+<\/h2>\s*(.+?)\s*<\/div>/, //netload
 - 										/(File has been removed due to Copyright Claim)/, //filerio
 - 										
 - 									];
 - 				var errorIdx = errorRegexs.length;
 - 				
 - 				var error = "Cause of error: <b>unknown</b>";
 - 				var errorCandidate = "";
 - 				while(errorIdx--)
 - 				{
 - 					var errorCandidate = res.match(errorRegexs[errorIdx]);
 - 					if (errorCandidate != null)
 - 					{
 - 						error = "Cause of error: <b>" + errorCandidate[1].replace(/ /g," ") + "</b>";
 - 						break;
 - 					}
 - 				}
 - 				
 - 				//link attributes 
 - 				link.warlc_error = error;				
 - 				
 - 				if (mouseoverLink == link.href) //mouse cursor is still over the link
 - 				{
 - 					warlcTooltip.innerHTML = error;
 - 				}
 - 			}
 - 		});
 - 	}
 - }
 -  
 - //"mouseover" event handler for alive links
 - //displays tooltip info (file size, file name,...) on alive links 
 - function displayTooltipInfo()
 - {
 - 	mouseoverLink = this.href;
 - 	
 - 	//exclude direct download filehostings
 - 	if (this.href.match(/(?:uloziste\.com|filemonster\.net|uploadbin\.net|loombo\.com|adrive\.com|myupload\.dk|storage\.novoro\.net|ubuntuone\.com|multi-debrid\.com\/directdl|mms\.multishare\.cz\/html\/mms_process\.php|zevera\.com\/getFiles|filesmelt\.com)/))
 - 	{
 - 		return;
 - 	}
 - 	
 - 	this.addEventListener("mouseout", hideTooltip);
 - 	this.addEventListener("mousemove", function(event) { moveTooltip(event); });
 - 	
 - 	warlcTooltip.innerHTML = '<b>LOADING...</b>';
 - 	warlcTooltip.style.minWidth = 0;
 - 	warlcTooltip.style.visibility = "visible";
 - 	
 - 	if (this.warlc_tooltipcache) //file size is already known and stored in warlc_filename and warlc_filesize attributes
 - 	{
 - 		warlcTooltip.innerHTML = this.warlc_tooltipcache;
 - 	}
 - 	else
 - 	{
 - 		loadInfo(this);		
 - 	}
 - 	
 - 	function loadInfo(link)
 - 	{
 - 		var href = link.href;
 - 		
 - 		GM_xmlhttpRequest({
 - 			method: 'GET',
 - 			url: href.replace(Ref_anonymize_service, ""),
 - 			headers: {
 - 				'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 				'Accept': 'text/xml',
 - 				'Referer': ""
 - 			},
 - 			onload: function(result) {
 - 					
 - 				var res = result.responseText;
 - 				
 - 				var nameRegexs = 	[	/Filename: <b class="f_arial f_14px">(.+?)<\/b>/, //oron
 - 										/(?:finfo|file[-_]?name)">\s*(.+?)<\/?(?:h1|a|div|span style|td)/, //hellshare, netload, badongo, 4fastfile
 - 										/fl" title="(.+?)">/, //edisk
 - 										/<title>\s*(?:Download)?\s*(.+?)\s*(?::: DataPort|\| Ulož|- Share\-Rapid|- WEBSITENAME|download Extabit|- download now for free|\| refile)/, //dataport, uloz.to, share-rapid, shragle, extabit, refile.net
 - 										/<h3>Stahujete soubor: <\/h3>\s*<div class="textbox">(.+?)<\/div>/, //webshare
 - 										/<h3><b><span style=color:black;>(.+?)<\/b><\/h3><br>/, //fastshare
 - 										/title="download (.+?)">/, //sendspace
 - 										/Stáhnout soubor: (.+?)<\/h1>/, //quickshare
 - 										/fz24">Download:\s*<strong>(.+?)<\/strong>/, //crocko
 - //										/'file\-icon\d+ \w+'>(?:<\/span><span>)?(.+?)<\/span>/, //hitfile, turbobit
 - 										/d0FileName =  "(.+?)";/, //letitbit
 - 										/file(?:_name|-info)" title="">\w+: <span>(.+?)<\/span>/, //vip-file, shareflare
 - 										/recent-comments"><h2>(.+)  /, //xdisk
 - 										/fname" value="(.+?)">/, //syfiles, grupload, 
 - 										/download\-header">\s*<h2>File:<\/h2>\s*<p title="(.+?)">/, //bayfiles
 - 										/description">\s*<p><b>Soubor: (.+?)<\/b>/, //bezvadata
 - 										/Complete name                            : (.+?)<br \/>/, //bezvadata
 - 										/itemprop="name">(.+?)<\/span>/, //bezvadata
 - 									];
 - 				var nameIdx = nameRegexs.length;
 - 				
 - 				
 - 				//      [sizeRegexs]
 - 				//      /    \    \?
 - 				//   prefix (size) postfix
 - 				//           /   \
 - 				//          val  quant
 - 				
 - 				var quantRegex = '(?:M|G|K)?i?(?:B)(?:[y|i]te?s?)?';		
 - 				var valRegex = '\\d+(?:[\\., ]\\d+){0,2}'; 				// 111([., ]222)?([., ]333)?
 - 								
 - 				var uniSizeRegex = valRegex + '(?:\\s*| )' + quantRegex;
 - 				
 - 				var preSizeRegex = '(?::|\\(|>|>, | - )';
 - 				var postSizeRegex = '(?:\\))?';
 - 				
 - 				var sizeRegexs = 	[	 preSizeRegex + "\\s*(" + uniSizeRegex + ")\\s*" + postSizeRegex,
 - 										'FileSize_master">(.+?)<\/strong>', //hellshare
 - 									];
 - 				var sizeIdx = sizeRegexs.length;
 - 				
 - 				//
 - 				//
 - 				
 - 				var tooltip = "File Name: <b>";
 - 				
 - 				var fileName = "unknown";
 - 				var nameCandidate = "";
 - 				while(nameIdx--)
 - 				{
 - 					var nameCandidate = res.match(nameRegexs[nameIdx]);
 - 					if (nameCandidate != null)
 - 					{
 - 						fileName = nameCandidate[1].replace(/ /g," ");
 - 						break;
 - 					}
 - 				}
 - 				
 - 				tooltip += fileName + "</b><br>File Size:  <b>";
 - 				
 - 				var fileSize = "unknown";
 - 				var sizeCandidate = "";
 - 				while(sizeIdx--)
 - 				{
 - 					sizeCandidate = res.match(new RegExp(sizeRegexs[sizeIdx], "i"));
 - 					if (sizeCandidate != null)
 - 					{
 - 						fileSize = sizeCandidate[1].replace(/ /g," ");
 - 						if (/^\d+$/.test(fileSize) && fileSize >= 1024)  //assume bytes
 - 						{
 - 							if(fileSize > (1<<30)) fileSize = Math.round(10 * fileSize / (1<<30)) / 10 + ' GB';
 - 								else if(fileSize > (1<<20)) fileSize = Math.round(fileSize / (1<<20)) + ' MB';
 - 									else fileSize = Math.round(fileSize / 1024) + ' KB';
 - 						}
 - 						break;
 - 					}
 - 				}
 - 				
 - 				tooltip += fileSize + "</b>";
 - 				
 - 				// PROTOTYPE 
 - 				// video thumbnails
 - 				if (href.match('hellshare')) 
 - 				{
 - 					var thumbs;
 - 					thumbs = res.match(/http:\/\/static\d+\.helldata\.com\/thumbs(?:\/\d+){1,2}\/\d{1,2}"/g);
 - 					
 - 					if (thumbs)
 - 					{
 - 						tooltip += '<br>';
 - 						
 - 						var j = Math.min(thumbs.length, 9);
 - 						for (var i = 0; i < j; i++)
 - 						{
 - 							tooltip += '<img src="' + thumbs[i].replace('"',"") + '" width="' + TOOLTIP_THUMBWIDTH + 'px">';
 - 						}
 - 						
 - 						warlcTooltip.style.minWidth = TOOLTIP_MAXWIDTH;
 - 					}						
 - 				}
 - 				
 - 				if (href.match('czshare'))
 - 				{
 - 					var thumbs;
 - 					thumbs = res.match(/src="http:\/\/www(\d+)\.czshare\.com\/images_velke\/\d+\.(\d+)\.jpeg/);
 - 					
 - 					if (thumbs)
 - 					{
 - 						var thumbsServer = thumbs[1];
 - 						var thumbsId = thumbs[2];
 - 						
 - 						tooltip += '<br>';
 - 						for (var i = 1; i < 9; i++)
 - 						{
 - 							tooltip += '<img src="http://www' + thumbsServer + '.czshare.com/images_velke/' + i + '.' + thumbsId + '.jpeg" width="' + TOOLTIP_THUMBWIDTH + 'px">';
 - 						}
 - 						
 - 						warlcTooltip.style.minWidth = TOOLTIP_MAXWIDTH;
 - 					}						
 - 				}
 - 				
 - 				if (href.match('bezvadata'))
 - 				{
 - 					var thumbs;
 - 					thumbs = res.match(/http:\/\/nahledy\.bezvadata\.cz\/nahledy\/\d+\/\d+\/\d+_\d+_\d+x\d+_\w.jpg/g);
 - 					
 - 					if (thumbs)
 - 					{
 - 						tooltip += '<br>';
 - 						
 - 						var j = Math.min(thumbs.length, 9);
 - 						for (var i = 0; i < j; i++)
 - 						{
 - 							tooltip += '<img src="' + thumbs[i] + '" width="' + TOOLTIP_THUMBWIDTH + 'px">';
 - 						}
 - 						
 - 						warlcTooltip.style.minWidth = TOOLTIP_MAXWIDTH;
 - 					}						
 - 				}
 - 				
 - 				
 - 				link.warlc_tooltipcache = tooltip;
 - 				
 - 				if (mouseoverLink == link.href) //mouse cursor is still over the link
 - 				{
 - 					warlcTooltip.innerHTML = tooltip;
 - 				}			
 - 			}
 - 		});
 - 	}
 - }
 -  
 - 	function setVariables()
 - 	{
 - 		if (firstRun)
 - 		{
 - 			GM_log('First run, applying default settings...');
 - 			
 - 			GM_setValue("Icon_set",1);
 - 			GM_setValue("Display_tooltip_info",true);
 - 			GM_setValue("Show_black_background_in_DL_links",false);
 - 			GM_setValue("Show_line_through_in_dead_links",false);
 - 			GM_setValue("Display_full_links_in_link_containers",false);
 - 			GM_setValue("Allow_spaces_in_DL_links",false);
 - 			GM_setValue("Autocheck",true);
 - 			GM_setValue("Enable_Anonymizer",false);
 - 			GM_setValue("Do_not_linkify_DL_links",false);
 - 			GM_setValue("Show_progress_stats",true);
 - 			GM_setValue("Keyboard_functions",true);
 - 			GM_setValue("Obsolete_file_hosts",false);
 - 			GM_setValue("Color_DL_links",true);
 - 			GM_setValue("Live_links_color","Green");
 - 			GM_setValue("Dead_links_color","#FF3300");
 - 			GM_setValue("Temp_unavailable_links_color","#F7EF09");
 - 			GM_setValue("Container_links_color","DarkKhaki");
 - 			GM_setValue("Premium_links_color","DeepPink");
 - 			GM_setValue("Ref_anonymize_service","http://hiderefer.com/?");
 - 			GM_setValue("Custom_rules",false);
 - 			GM_setValue("Custom_rules_text","");
 - 			
 - 			GM_setValue("First_run", false);		
 - 		}
 - 		
 - 		//hidden settings
 - 		GM_setValue("Progress_box_pos_bottom", Progress_box_pos_bottom = GM_getValue("Progress_box_pos_bottom", 20));
 - 		GM_setValue("Progress_box_pos_right", Progress_box_pos_right = GM_getValue("Progress_box_pos_right", 10));
 - 		GM_setValue("Progress_box_opacity", Progress_box_opacity = GM_getValue("Progress_box_opacity", 85));
 - 		GM_setValue("Progress_box_background_color", Progress_box_background_color = GM_getValue("Progress_box_background_color", 'DimGray'));
 - 		GM_setValue("Progress_box_item_color", Progress_box_item_color = GM_getValue("Progress_box_item_color", 'DimGray'));
 - 		GM_setValue("Progress_box_refresh_rate", Progress_box_refresh_rate = GM_getValue("Progress_box_refresh_rate", 2000));
 - 		GM_setValue("Debug_mode", DEBUG_MODE = GM_getValue("Debug_mode", false));
 - 		//hidden settings end
 -  
 - 		Icon_set = GM_getValue("Icon_set", 1); //0 - no icons, 1 - cat paws, 2 - old RSLC style, 3 - New Icons,
 - 		Display_tooltip_info = GM_getValue("Display_tooltip_info", true);
 - 		Show_black_background_in_DL_links = GM_getValue("Show_black_background_in_DL_links", false);
 - 		Show_line_through_in_dead_links = GM_getValue("Show_line_through_in_dead_links", false);
 - 		Display_full_links_in_link_containers = GM_getValue("Display_full_links_in_link_containers", false);
 - 		Allow_spaces_in_DL_links = GM_getValue("Allow_spaces_in_DL_links", false);
 - 		Autocheck = GM_getValue("Autocheck", true);
 - 		Enable_Anonymizer = GM_getValue("Enable_Anonymizer", false);
 - 		Do_not_linkify_DL_links = GM_getValue("Do_not_linkify_DL_links", false);
 - 		Show_progress_stats = GM_getValue("Show_progress_stats", true);
 - 		Keyboard_functions = GM_getValue("Keyboard_functions", true);
 - 		Obsolete_file_hosts = GM_getValue("Obsolete_file_hosts", false);
 - 		Color_DL_links = GM_getValue("Color_DL_links", true);
 - 		Live_links_color = GM_getValue("Live_links_color", "Green");
 - 		Dead_links_color = GM_getValue("Dead_links_color", "#FF3300");
 - 		Temp_unavailable_links_color = GM_getValue("Temp_unavailable_links_color", "#F7EF09");
 - 		Container_links_color = GM_getValue("Container_links_color", "DarkKhaki");
 - 		Premium_links_color = GM_getValue("Premium_links_color", "DeepPink");
 - 		Ref_anonymize_service = GM_getValue("Ref_anonymize_service", "http://hiderefer.com/?");
 - 		Custom_rules = GM_getValue("Custom_rules", false);
 - 		Custom_rules_text = GM_getValue("Custom_rules_text", false);
 - 	}
 -  
 -  
 - 	// Delinkifies the links
 - 	// params:
 - 	// links -> list of links or link components (note they should be sufficiently unique to identify the link on page,
 - 	// e.g. 'uloz.to/xs68skxl8')
 - 	function delinkifySnapshot(snapshot)
 - 	{
 - 		var n = snapshot.snapshotLength;
 -  
 - 		while (n--)
 - 		{
 - 			thisLink = snapshot.snapshotItem(n);
 -  
 - 			var spanElm = document.createElement("span");
 - 			spanElm.className = thisLink.className;
 - 			spanElm.innerHTML = thisLink.innerHTML;
 -  
 - 			if (Display_tooltip_info)
 - 			{
 - 				spanElm.href = thisLink.href;
 - 						
 - 				switch (thisLink.className){
 - 				case "alive_link": spanElm.addEventListener("mouseover", displayTooltipInfo, false); break
 - 				case "adead_link": spanElm.addEventListener("mouseover", displayTooltipError, false); break;
 - 				case "unava_link": //reserved
 - 				default: 
 - 				}
 - 			}
 - 			
 - 			thisLink.parentNode.replaceChild(spanElm, thisLink);
 - 		}
 - 	}
 -  
 - 	function processContainers()
 - 	{
 - 		var redirectorTypes = {	"HTTP_302": 0, 
 - 								"INNER_LINK": 1, 
 - 								"THELOO_KATT_IT": 2,
 - 								"CING_BE": 3,
 - 								"ADF_LY": 4};
 - 		
 - 		var cMultiloadTotal = 0;
 - 		var cMultiloadProcessed = 0;
 -  
 - 		var cMirrorcreatorComTotal = 0;
 - 		var cMirrorcreatorComProcessed = 0;
 -  
 - 		var hostRestrictionRegex = "";
 - 		var multiloadComRestriction = "";
 - 		var multiloadComRestrictionRegex;
 -  
 - 		//
 - 		//HANDLING REDIRECTORS START
 - 		//
 -  
 - 		var redirectors = new Array();
 - 		initRedirectors();
 -  
 - 		var redirectorsCount = redirectors.length;
 -  
 - 		if (redirectorsCount > 0)
 - 		{
 - 			var allRedirectorsRegex = "";
 -  
 - 			//linkify redirector links
 - 			for(var redirIdx = 0; redirIdx < redirectorsCount; redirIdx++)
 - 			{
 - 				allRedirectorsRegex += redirectors[redirIdx].linkRegex + "|";
 - 			}
 - 			allRedirectorsRegex = allRedirectorsRegex.replace(/\|$/, "");
 - 			linkify(allRedirectorsRegex);
 - 			//
 - 			
 - 			//process redirector links
 - 			for(var redirIdx = 0; redirIdx < redirectorsCount; redirIdx++)
 - 			{
 - 				var redirectorsSnapshot = document.evaluate(redirectors[redirIdx].xpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 - 				redirectors[redirIdx].cTotal = redirectorsSnapshot.snapshotLength;
 -  
 - 				cLinksTotal += redirectors[redirIdx].cTotal;
 - 				var linkIdx = redirectors[redirIdx].cTotal;
 -  
 - 				while(linkIdx--)
 - 				{
 - 					switch(redirectors[redirIdx].type)
 - 					{
 - 					case redirectorTypes.HTTP_302:			processRedirectorLink(redirectorsSnapshot.snapshotItem(linkIdx), redirIdx); break;
 - 					case redirectorTypes.INNER_LINK:		processRedirectorLinkEx(redirectorsSnapshot.snapshotItem(linkIdx), redirIdx); break;
 - 					case redirectorTypes.THELOO_KATT_IT:	processThelooKattItLink(redirectorsSnapshot.snapshotItem(linkIdx), redirIdx); break;
 - 					case redirectorTypes.CING_BE:			processCingBeLink(redirectorsSnapshot.snapshotItem(linkIdx), redirIdx); break;
 - 					case redirectorTypes.ADF_LY:			processAdfLyLink(redirectorsSnapshot.snapshotItem(linkIdx), redirIdx); break;
 - 					default:
 - 					}
 - 				}
 - 			}
 - 			//
 - 		}
 -  
 - 		//HTTP_302
 - 		function processRedirectorLink(link, redirectorId)
 - 		{
 - 			link.className = 'container_link';
 -  
 - 			GM_xmlhttpRequest({
 - 				method: 'HEAD',
 - 				url: link.href,
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Accept': 'text/xml',
 - 					'Referer': ""
 - 				},
 - 				onload: function(result) {
 - 					if (result.finalUrl.replace("https", "http") == link.href) // service hasn't redirected anywhere
 - 					{
 - 						processRedirectorLink(link, redirectorId);
 - 					}					
 - 					else
 - 					{
 - 						redirectors[redirectorId].cProcessed++;
 - 											
 - 						link.href = result.finalUrl;
 - 						
 - 						if (redirectors[redirectorId].cProcessed >= redirectors[redirectorId].cTotal)
 - 						checkLinks('container_link');
 - 					}					
 - 				},
 - 				onerror: function(result) { //probably caused by unresponsive filehosting
 - 					redirectors[redirectorId].cProcessed++;
 - 					
 - 					link.className = 'unava_link';
 - 					cLinksProcessed++;
 - 					
 - 					if (redirectors[redirectorId].cProcessed >= redirectors[redirectorId].cTotal)
 - 						checkLinks('container_link');
 - 				}
 - 			});
 - 		}
 - 		
 - 		//INNER_LINK
 - 		function processRedirectorLinkEx(link, redirectorId)
 - 		{
 - 			link.className = 'container_link';
 - 					
 - 			GM_xmlhttpRequest({
 - 				method: 'GET',
 - 				url: link.href,
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Accept': 'text/xml',
 - 					'Referer': ""
 - 				},
 - 				onload: function(result) {
 - 					link.href = result.responseText.match(redirectors[redirectorId].innerLinkRegex)[1];
 - 					
 - 					redirectors[redirectorId].cProcessed++;
 - 					
 - 					if (redirectors[redirectorId].cProcessed >= redirectors[redirectorId].cTotal)
 - 						checkLinks('container_link');
 - 				}				
 - 			});
 - 		}
 - 		
 - 		//theloo.katt.it (wrapped safelinking.net)
 - 		function processThelooKattItLink(link, redirectorId)
 - 		{
 - 			link.className = 'container_link';
 - 					
 - 			GM_xmlhttpRequest({
 - 				method: 'GET',
 - 				url: link.href,
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Accept': 'text/xml',
 - 					'Referer': ""
 - 				},
 - 				onload: function(result) {
 - 					link.href = result.responseText.match(redirectors[redirectorId].innerLinkRegex)[1];
 - 					
 - 					redirectors[redirectorId].cProcessed++;
 - 					
 - 					
 - 					//the inner links are safelinking.net links, so lets proceed with it
 - 					if (GM_getValue("Check_safelinking_dot_net_links", false))
 - 					{
 - 						processRedirectorLink(link, 0);
 - 					}
 - 				}					
 - 			});
 - 		}
 - 		
 - 		//adf.ly (adf.ly/go innerLink, locking mechanism)
 - 		function processAdfLyLink(link, redirectorId)
 - 		{
 - 			link.className = 'container_link';
 - 					
 - 			GM_xmlhttpRequest({
 - 				method: 'GET',
 - 				url: link.href,
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0',
 - 					'Accept': 'text/xml',
 - 					'Referer': ""
 - 				},
 - 				onload: function(result) {
 - 				
 - 					if (result.finalUrl.match('/locked/'))
 - 					{
 - 						var delay = result.responseText.match(/countdown">(\d+)</)[1];
 - 						// GM_log(result.finalUrl + 'is locked. Repeating the request in ' + delay + 's.');
 - 						// setTimeout(function(){processAdfLyLink(link, redirectorId);}, delay * 1000);
 - 					}
 - 					else
 - 					{
 - 						// GM_log('Processing... ' + link.href);
 - 						// GM_log('Found...' + result.responseText.match(/\/go\/(\w+\/\w+)/)[1]);
 - 						
 - 						var directLink = 'http://adf.ly' + result.responseText.match(/(\/go\/\w+\/\w+)/)[1];
 - 						
 - 						var logToken = result.responseText.match(/flashy_(\w+)/)[1];
 - 						var users = result.responseText.match(/user=\d+&user2=\d+/);
 - 						
 - 						//confirm advert
 - 						GM_xmlhttpRequest(
 - 						{
 - 						method: 'POST',
 - 						url: 'http://adf.ly/l.php',
 - 						headers: {
 - 							'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0',
 - 							'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
 - 							'Referer': link.href
 - 						},
 - 						data: users + '<=' + logToken,
 - 						onload: function(result) {
 - 							
 - 							//retrieve final url from .../go/... link
 - 							GM_xmlhttpRequest({
 - 							method: 'GET',
 - 							url: directLink,
 - 							headers: {
 - 								'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0',
 - 								'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 								'Referer': link.href
 - 							},
 - 							onload: function(result) {
 - 							
 - 								link.href = result.finalUrl;
 - 								
 - 								redirectors[redirectorId].cProcessed++;
 - 							
 - 								if (redirectors[redirectorId].cProcessed >= redirectors[redirectorId].cTotal)
 - 									checkLinks('container_link');
 - 							}
 - 							});
 - 						}					
 - 						});						
 - 					}
 - 			
 - 				}					
 - 			});
 - 			
 - 			function proceedOK()
 - 			{
 - 			}
 - 		}
 - 		
 - 		//MULTILOAD.CZ START
 - 		if (GM_getValue("Check_multiload_dot_cz_links", false))
 - 		{
 - 			var mlRegex = 'multiload\\.cz\/stahnout\/\\d+\/';
 - 			var mlXpath = "//a[contains(@href,'http://www.multiload.cz/stahnout')]";
 -  
 - 			hostRestrictionRegex = 'Upload se nezdařil|limit exceeded|probíhá reupload|';
 -  
 - 			if (GM_getValue("Check_hellshare_dot_com_links", false))
 - 				hostRestrictionRegex += 'hellshare|';
 - 			if (GM_getValue("Check_share_dash_rapid_dot_com_links", false))
 - 				hostRestrictionRegex += 'share-rapid\\.com|';
 - 			if (GM_getValue("Check_quickshare_dot_cz_links", false))
 - 				hostRestrictionRegex += 'quickshare\\.cz|';
 - 			if (GM_getValue("Check_czshare_dot_com_links", false))
 - 				hostRestrictionRegex += 'czshare\\.com|';
 - 			if (GM_getValue("Check_uloz_dot_to_links", false))
 - 				hostRestrictionRegex += 'uloz\\.to|';
 - 			if (GM_getValue("Check_hellspy_dot_com_links", false))
 - 				hostRestrictionRegex += 'hellspy|';
 - 			if (GM_getValue("Check_multishare_dot_cz_links", false))
 - 				hostRestrictionRegex += 'multishare\\.cz|';
 -  
 - 			hostRestrictionRegex = hostRestrictionRegex.replace(/\|$/, "");
 -  
 - 			linkify(mlRegex);
 -  
 - 			var mlSnapshot = document.evaluate(mlXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 - 			var mlCount = mlSnapshot.snapshotLength;
 -  
 - 			if (mlCount > 0)
 - 			{
 - 				cMultiloadTotal += mlCount;
 -  
 - 				mlIdx = mlCount - 1;
 - 				do
 - 				{
 - 					processMultiloadLink(mlSnapshot.snapshotItem(mlIdx));
 - 				}
 - 				while(mlIdx--)
 - 			}
 - 		}
 - 		//MULTILOAD.CZ END
 -  
 -  
 -  
 - 		function processMultiloadLink(mlLink)
 - 		{
 - 			GM_xmlhttpRequest({
 - 				method: 'GET',
 - 				url: mlLink.href,
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Accept': 'text/xml',
 - 					'Referer': ""
 - 				},
 - 				onload: function(result) {
 - 					var res = result.responseText;
 -  
 - 					var innerBlockRegex = /<p class="manager-linky">(?:.|\s)+?<\/p>/g;
 - 					var innerLinksRegex = /(?:Upload se nezdařil \((?:chyba serveru|chybné přihlašovací údaje)\)\. <|>https?:\/\/(?:.|\s)+?<|Právě probíhá reupload, buďte trpěliví\.\.\.<)/g;
 - 					var innerLinkRegex = /((?:Upload se nezdařil.+|https?:\/\/(?:.|\s)+|Právě probíhá reupload, buďte trpěliví\.\.\.))</; 
 - 					var mlRestrictionRegex = new RegExp(hostRestrictionRegex,"g"); //what links should be displayed
 -  
 - 					var blocks; // blocks of links
 - 					var blockIdx;
 -  
 - 					mlLink.className = '';
 -  
 - 					if (result.status == 503) //service temporarily unavailable, repeat request in one second
 - 					{
 - 						setTimeout(function(){ processMultiloadLink(mlLink); }, 1000);
 - 						return;
 - 					}
 -  
 - 					blocks = res.match(innerBlockRegex);
 -  
 - 					if (blocks == null) //no links found, cancel further processing
 - 					{
 - 						mlLink.parentNode.appendChild(document.createTextNode(' | Požadovaný soubor neexistuje.'));
 - 						cMultiloadProcessed++;
 - 						if (cMultiloadTotal <= cMultiloadProcessed)
 - 						{
 - 							startBulkCheck('container_link');
 - 							start('container_link');
 - 						}
 - 						return;
 - 					}
 -  
 - 					blockIdx = blocks.length;
 -  
 - 					if (Display_full_links_in_link_containers)
 - 					{
 - 						var ulElm = document.createElement('ul');
 - 						ulElm.className = 'container_list'; //CSS smaller font, padding, margin, square style
 -  
 - 						while(blockIdx--)
 - 						{
 - 							if (blocks[blockIdx].match(mlRestrictionRegex) == null)
 - 							{
 - 								continue;
 - 							}
 -  
 - 							var innerLinks = blocks[blockIdx].match(innerLinksRegex);
 -  
 - 							var linkIdx = innerLinks.length;
 - 							while (linkIdx--)
 - 							{
 - 								var innerLink = innerLinks[linkIdx].match(innerLinkRegex)[1];
 -  
 - 								var liElm = document.createElement('li');
 -  
 - 								if (innerLink.match(/Upload se nezdařil|limit exceeded|probíhá reupload/))
 - 								{
 - 									liElm.appendChild(document.createTextNode(innerLink));
 - 								}
 - 								else
 - 								{
 - 									var aElm = document.createElement('a');
 - 									aElm.innerHTML = innerLink;
 - 									aElm.href = innerLink;
 - 									aElm.className = 'container_link';
 -  
 - 									liElm.appendChild(aElm);
 - 								}
 -  
 - 								ulElm.appendChild(liElm);
 - 								cLinksTotal++;
 - 							}
 - 						}
 -  
 - 						mlLink.parentNode.appendChild(ulElm);
 - 					}
 - 					else //compact view
 - 					{
 - 						mlLink.parentNode.appendChild(document.createTextNode("|"));
 -  
 - 						while(blockIdx--)
 - 						{
 - 							if (blocks[blockIdx].match(mlRestrictionRegex) == null)
 - 							{
 - 								continue;
 - 							}
 -  
 - 							var innerLinks = blocks[blockIdx].match(innerLinksRegex);
 -  
 - 							var linkIdx = innerLinks.length;
 - 							while (linkIdx--)
 - 							{
 - 								var innerLink = innerLinks[linkIdx].match(innerLinkRegex)[1];
 -  
 - 								if (innerLink.match(/Upload se nezdařil|limit exceeded|probíhá reupload/))
 - 								{
 - 									mlLink.parentNode.appendChild(document.createTextNode("----"));
 - 								}
 - 								else
 - 								{
 - 									var aElm = document.createElement('a');
 -  
 - 									var hostName = innerLink.match(/quickshare|hellshare|uloz\.to|multishare|hellspy|share\-rapid|czshare/);
 -  
 - 									//abbreviate host name
 - 									switch(hostName + ""){
 -  
 - 										case 'quickshare': aElm.innerHTML = 'QS'; break;
 - 										case 'hellshare': aElm.innerHTML = 'HS'; break;
 - 										case 'uloz.to': aElm.innerHTML = 'UT'; break;
 - 										case 'multishare': aElm.innerHTML = 'MS'; break;
 - 										case 'hellspy': aElm.innerHTML = 'hs'; break;
 - 										case 'share-rapid': aElm.innerHTML = 'SR'; break;
 - 										case 'czshare': aElm.innerHTML = 'CS'; break;
 - 										default: aElm.innerHTML = 'xx';
 -  
 - 									}
 -  
 - 									aElm.href = innerLink;
 - 									aElm.className = 'container_link';
 -  
 - 									mlLink.parentNode.appendChild(aElm);
 - 									cLinksTotal++;
 - 								}
 - 							}
 -  
 - 							mlLink.parentNode.appendChild(document.createTextNode("|")); //blocks delimiter
 -  
 - 						}
 - 					}
 -  
 - 					cMultiloadProcessed++;
 - 					if (cMultiloadTotal == cMultiloadProcessed) //start check when all ml links have been processed
 - 					{
 - 						if (Do_not_linkify_DL_links)
 - 						{
 - 							delinkifySnapshot(mlSnapshot);
 - 						}
 - 						
 - 						startBulkCheck('container_link');
 - 						start('container_link');
 - 					}
 - 				}
 - 			});
 - 		}
 -  
 -  
 - 		if (GM_getValue("Check_mirrorcreator_dot_com_links", false))
 - 		{
 - 			var mcRegex = 'mirrorcreator\\.com/files/(\\w+)';
 - 			var mcXpath = "//a[contains(@href,'mirrorcreator.com/files')]";
 - 			
 - 			var mcShortHostNames = 
 - 				 '?? RS MU ES DF Zs FF ?? SS ?? Ba NL LT MF MS ZS UL 2S ZI HF ST UP GF ?? UB Fr IF fs X7 UG ?? TB FS EB LB EU ?? OR ?? ?? DL EY ?? FK FH US BS WU FP PL FJ CR JF SM Ms Ff GU';
 - 				// 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
 - 				//??????      depositfiles sendspace  load.to     ul.to       storage.to  uploadbox   x7.to       fileserve   ??????      duckload    filehook    filepost    jumbofiles  glumbouploads
 - 				//   zshare      ??????      2shared     uploading   ugotfile    extabit     oron        eyvx       uploadstation putlocker  
 - 				//      megaupload  badongo     megashare   gamefront   ifile       ??????      letitbit    ??????      ??????      filejungle  megashares
 - 				//         easy-share  ??????      netload     zippyshare     ??????      filesonic   turbobit    enterupload ??????      filekeen    wupload     crocko      fileflyer
 -  
 - 			linkify(mcRegex);
 -  
 - 			var mcSnapshot = document.evaluate(mcXpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 - 			var mcCount = mcSnapshot.snapshotLength;
 -  
 - 			cMirrorcreatorComTotal = mcCount;
 -  
 - 			if (mcCount > 0)
 - 			{
 - 				mcShortHostNames = mcShortHostNames.split(' ');
 - 				mcIdx = mcCount;
 - 				while(mcIdx--)
 - 					processMirrorcreatorLink(mcSnapshot.snapshotItem(mcIdx));
 - 			}
 -  
 - 		}
 - 		//MIRRORCREATOR.CZ END
 -  
 -  
 - 		//mirrorcreator.com checking works like this:
 - 		//The base URL is http://www.mirrorcreator.com/files/XXXXXXXX/filename_links
 - 		//the actual list of mirrors is at http://www.mirrorcreator.com/status.php?uid=XXXXXXXX
 - 		//the list contains links in the form of (http://www.mirrorcreator.com)/redirect/XXXXXXXX/1
 - 		//these redirector links are extracted with mcLinkBlockRegex and the pages loaded
 - 		//they contain the actual filehost links, which are extracted with mcHostRegex and displayed in a container list
 - 		function processMirrorcreatorLink(mcLink)
 - 		{
 - 			var mcURL = mcLink.href.match(mcRegex);
 - 			if(!mcURL || !mcURL[1]) return;
 - 			mcURL = 'http://www.mirrorcreator.com/status.php?uid=' + mcURL[1]; //link correction
 - 			GM_xmlhttpRequest({
 - 				method: 'GET',
 - 				url: mcURL,
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*'+'/*;q=0.8',
 - 					'Referer': ""
 - 				},
 - 				onload: function(mcLinkResult) {
 - 					var mcLinkRes = mcLinkResult.responseText;
 -  
 - 					var mcLinkBlockRegex = /(\/redirect\/\w+\/(\d+))/gi;
 - 					var mcHostRegex = /<div id="redirectlink">.*?<a href="([^"]+)"/;
 -  
 - 					var mcRedirectors;
 - 					var mcHostURLs = [], mcRedirectorIDs = [], mcHostsFound = 0, mcHostsRetrieved = 0, mcHostsToProcess = 0;
 - 					
 - 					var m = mcLinkRes.match(mcLinkBlockRegex);
 - 					
 - 					if (m)
 - 						mcHostsFound = m.length;
 - 					else
 - 					{ //no files inside container
 - 						processMirrorcreatorFoundHosts(mcLink, []);
 - 						return;
 - 					}
 -  
 - 					var mcRedirectorURL, idx, timedOut = false;
 -  
 - 					var gmxhrFunc = function(mcRedirectorURL){ //Tampermonkey doesn't know neither this.url or result.finalUrl
 - 						GM_xmlhttpRequest({
 - 							method: 'GET',
 - 							url: mcRedirectorURL,
 - 							headers: {
 - 								'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 								'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*'+'/*;q=0.8',
 - 								'Referer': ""
 - 							},
 - 							onload: function(mcHostResult) {
 - 								if (timedOut) return; //too late, the list is already displayed
 - 								var mcHostRes = mcHostResult.responseText;
 - 								var mcHost = mcHostRes.match(mcHostRegex);
 - 								idx = mcHostURLs.indexOf(mcRedirectorURL);
 - 								if (mcHost && idx!=-1)
 - 								{
 - 									mcHostURLs[idx] = mcHost[1].replace(/^\s+|\s+$/g, '');
 - 									mcHostsRetrieved++;
 - 									mcHostsToProcess++;
 - 									if (mcHostsFound == mcHostsRetrieved) //this is the last one!
 - 									{
 - 										processMirrorcreatorFoundHosts(mcLink, mcHostURLs, mcRedirectorIDs);
 - 										mcHostsToProcess = 0;
 - 									}
 - 								}
 - 							} //end of onload: function
 - 						}); //end of GM_xmlhttpRequest call
 - 					};//end of var gmxhrFunc
 -  
 - 					while (mcRedirectors = mcLinkBlockRegex.exec(mcLinkRes))
 - 					{  //load individual redirector pages
 - 						mcRedirectorURL = 'http://www.mirrorcreator.com' + mcRedirectors[1];
 - 						mcHostURLs.push(mcRedirectorURL);
 - 						mcRedirectorIDs.push(mcRedirectors[2]);
 - 						gmxhrFunc(mcRedirectorURL);
 - 					} //end of while block
 -  
 - 					setTimeout(function(){ //in case the last page fails to load and call the function
 - 							timedOut = true;
 - 							if (mcHostsToProcess)
 - 								processMirrorcreatorFoundHosts(mcLink, mcHostURLs);
 - 						}, 60000);
 -  
 - 				} //end of onload function
 - 			}); //end of GM_xmlhttpRequest call
 - 		} //end of function processMirrorcreatorLink
 -  
 -  
 - 		function processMirrorcreatorFoundHosts(mcLink, mcHostURLs, mcRedirectorIDs)
 - 		{
 - 			var aEl, liEl, docFrag;
 - 			var hostName, mcRedirectorID, trimFilename = false;
 - 			
 - 			var i = mcHostURLs.length;
 - 			if (i == 0)
 - 			{
 - 				trimFilename = true;
 - 				mcLink.parentNode.insertBefore(document.createTextNode(' | No files inside container'), mcLink.nextSibling);
 - 			}
 - 			else
 - 			{
 - 				if (Display_full_links_in_link_containers)
 - 				{ //full view
 - 					var wrapperEl = document.createElement('span');
 - 					wrapperEl.style.display = 'block';
 - 					var ulistEl = document.createElement('ul');
 - 					ulistEl.className = 'container_list';
 - 					while (i--)
 - 					{
 - 						liEl = document.createElement('li');
 - 						aEl = document.createElement('a');
 - 						aEl.appendChild(document.createTextNode(mcHostURLs[i]));
 - 						aEl.href = mcHostURLs[i];
 - 						aEl.className = 'container_link';
 - 						liEl.appendChild(aEl);
 - 						ulistEl.appendChild(liEl);
 - 					}
 - 					wrapperEl.appendChild(ulistEl);
 - 					mcLink.parentNode.replaceChild(wrapperEl, mcLink);
 - 					wrapperEl.insertBefore(mcLink, wrapperEl.firstChild);
 - 				}
 - 				else 
 - 				{ //compact view
 - 					trimFilename = true;
 - 					docFrag = document.createDocumentFragment();
 - 					docFrag.appendChild(document.createTextNode(' |'));
 - 					while (i--)
 - 					{
 - 						mcRedirectorID = mcRedirectorIDs[i];
 - 						hostName = mcHostURLs[i];
 - 						if (mcRedirectorID > mcShortHostNames.length-1 || mcShortHostNames[mcRedirectorID] == '??')
 - 							hostName = hostName.replace(/https?:\/\/(?:www\.)?([-0-9a-z]+(?:\.[-0-9a-z]+)?)\.[a-z]+\/.*/i, '$1').toUpperCase();
 - 						else
 - 							hostName = mcShortHostNames[mcRedirectorID];
 - 							
 - 						aEl = document.createElement('a');
 - 						aEl.href = mcHostURLs[i];
 - 						aEl.className = 'container_link';
 - 						aEl.appendChild(document.createTextNode(hostName));
 - 						docFrag.appendChild(aEl);
 - 						docFrag.appendChild(document.createTextNode('|'));
 - 					}
 - 					mcLink.parentNode.insertBefore(docFrag, mcLink.nextSibling);
 - 				} //end of else block
 - 			} //end of else block
 - 			
 - 			mcLink.className = '';
 - 			if (trimFilename)
 - 				mcLink.firstChild.nodeValue = mcLink.firstChild.nodeValue.replace(/(https?:\/\/[^\/]+\/files\/\w+\/).+/, '$1...');
 - 			
 - 			cMirrorcreatorComProcessed++;
 - 			if (cMirrorcreatorComProcessed == cMirrorcreatorComTotal) //start check when all mc links have been processed
 - 			{
 - 				if (Do_not_linkify_DL_links)
 - 					delinkifySnapshot(mcSnapshot);
 - 				startBulkCheck('container_link');
 - 				start('container_link');
 - 			}
 - 		} //end of function processMirrorcreatorFoundHosts
 -  
 - 		containers_processed = true;
 -  
 -  
 - 		function initRedirectors()
 - 		{
 - 			function addRedirector(linkRegex, xpathEx, redirType, innerLinkRegex)
 - 			{
 - 				var redirector = new Object();
 - 				
 - 				redirector.linkRegex = linkRegex;
 - 				redirector.xpath = xpathEx; 				//xpath expression
 - 				redirector.cProcessed = 0; 					//processed links count
 - 				redirector.cTotal = 0; 						//total links count
 - 				redirector.type = redirType;				//redirectorTypes enum
 - 				redirector.innerLinkRegex = innerLinkRegex;	//innerLink, null if unused
 - 				
 - 				redirectors.push(redirector);
 - 			}
 - 			if (GM_getValue("Check_safelinking_dot_net_links", false))
 - 			{
 - 				addRedirector(
 - 				'safelinking\\.net\/d\/\\w+',
 - 				"//a[contains(@href,'safelinking.net/d/')]",
 - 				redirectorTypes.HTTP_302,
 - 				null);
 - 			}
 - 			if (GM_getValue("Check_linksafe_dot_me_links", false))
 - 			{
 - 				addRedirector(
 - 				'linksafe\\.me\/d\/\\w+',
 - 				"//a[contains(@href,'linksafe.me/d/')]",
 - 				redirectorTypes.HTTP_302,
 - 				null);
 - 			}
 - 			if (GM_getValue("Check_linkto_dot_net_links", false))
 - 			{
 - 				addRedirector(
 - 				'linkto\\.net\/\\?\\w+\\.\\d+',
 - 				"//a[contains(@href,'linkto.net/?')]",
 - 				redirectorTypes.INNER_LINK,
 - 				/<iframe id="iframe" name="iframe"  src="(.+?)\s*" frameborder="0"/);
 - 			}
 - 			if (GM_getValue("Check_theloo_dot_katt_dot_it_links", false))
 - 			{
 - 				addRedirector(
 - 				'(?:the)?loo\\.katt\\.it\/\\w+',
 - 				"//a[contains(@href,'loo.katt.it/')]",
 - 				redirectorTypes.THELOO_KATT_IT,
 - 				/Proceed to URL - <a href="(.+?)">/);
 - 			}
 - 			if (GM_getValue("Check_madlink_dot_sk_links", false))
 - 			{
 - 				addRedirector(
 - 				'madlink\\.sk\/\\w+',
 - 				"//a[contains(@href,'madlink.sk/')]",
 - 				redirectorTypes.INNER_LINK,
 - 				/name="url" value="(.+?)\s*"\/>/);
 - 			}
 - 			if (GM_getValue("Check_adf_dot_ly_links", false))
 - 			{
 - 				addRedirector(
 - 				'(?:adf\\.ly|[u9]\\.bb|[qj]\\.gs)\/\\w+',
 - 				"//a[contains(@href,'adf.ly/') (@href,'u.bb/') or contains(@href,'9.bb/') or contains(@href,'q.gs/') or contains(@href,'j.gs/')]",
 - 				redirectorTypes.ADF_LY,
 - 				null);
 - 			}
 - 			if (GM_getValue("Check_redi_dot_re_links", false))
 - 			{
 - 				addRedirector(
 - 				'redi\\.re\/\\w+',
 - 				"//a[contains(@href,'redi.re/')]",
 - 				redirectorTypes.HTTP_302,
 - 				null);
 - 			}
 - 			if (GM_getValue("Check_bit_dot_ly_links", false))
 - 			{
 - 				addRedirector(
 - 				'bit\\.ly\/\\w+',
 - 				"//a[contains(@href,'bit.ly/')]",
 - 				redirectorTypes.HTTP_302,
 - 				null);
 - 			}
 - 		}
 -  
 - 	}
 -  
 - 	var bulkHosts = new Array();
 - 	var bulkHostNames = new Array();
 - 	
 - 	function initBulkCheck()
 - 	{
 - 			
 - 		/////////////////////////////
 - 		// Inits filehost object
 - 		/////////////////////////////
 - 		// params :
 - 		// hostName 		-- 	[string]		host name (multiple domains separated with coma)
 - 		// linkRegex		-- 	[string] 		link regex 
 - 		// xpath 			-- 	[string] 		xpath expression to detect the link objects with evaluate
 - 		// blockSize 		-- 	[integer]		max. number of links sent in one request, 50 if null
 - 		// corrMatch		--	[regex]			link correction regex (match), applied prior to corrRepl
 - 		// corrReplWhat		-- 	[regex]			link correction regex (replace)
 - 		// corrReplWith		--  [string]		
 - 		// splitSeparator	-- 	[string]		POSTDATA links separator, "\r\n" if null
 - 		//						
 - 		// apiUrl			-- 	[string]		web linkchecker or API URL
 - 		// postData 		-- 	[string]		POSTDATA of xmlhttprequest
 - 		// resLinkRegex		--	[regex]		
 - 		// resLiveRegex		-- 	[regex]			matches substrings containing live links in the request response
 - 		// resDeadRegex		-- 	[regex]			matches substrings containing dead links in the request response
 - 		// resUnavaRegex	--	[regex]			matches substrings containing unava links in the request response
 - 		// func				-- 	[function]		bulkcheck handler, genBulkCheck if null
 - 		//
 - 		//////////////////////////////
 - 		function addHost(hostName, linkRegex, xpath, blockSize, corrMatch, corrReplWhat, corrReplWith, splitSeparator, 
 - 							apiUrl, postData, resLinkRegex, resLiveRegex, resDeadRegex, resUnavaRegex, func)
 - 		{
 - 			var fileHost = new Object();
 -  
 - 			fileHost.linkRegex = linkRegex;
 - 			fileHost.linkRegexObject = new RegExp(linkRegex, "");
 - 			fileHost.xpath = xpath;
 - 			fileHost.cFound = 0; //found links counter
 - 			fileHost.links = new Array(); //found links
 - 			
 - 			if (blockSize == null) 
 - 			{ 
 - 				fileHost.blockSize = 50;  
 - 			}
 - 			else
 - 			{
 - 				fileHost.blockSize = blockSize;
 - 			}
 - 			
 - 			fileHost.corrMatch = corrMatch; 
 - 			fileHost.corrReplWhat = corrReplWhat; 
 - 			fileHost.corrReplWith = corrReplWith;
 - 			
 - 			if (splitSeparator == null) 
 - 			{
 - 				fileHost.splitSeparator = "\r\n"; 
 - 			}
 - 			else
 - 			{
 - 				fileHost.splitSeparator = splitSeparator;
 - 			}
 - 			
 - 			fileHost.apiUrl = apiUrl;
 - 			fileHost.postData = postData;
 - 			fileHost.resLinkRegex = resLinkRegex;
 - 			fileHost.resLiveRegex = resLiveRegex;
 - 			fileHost.resDeadRegex = resDeadRegex;
 - 			fileHost.resUnavaRegex = resUnavaRegex;
 - 			
 - 			if (func == null)
 - 			{
 - 				fileHost.func = genBulkCheck;
 - 			}
 - 			else
 - 			{
 - 				fileHost.func = func;
 - 			}
 - 			
 - 			bulkHosts.push(fileHost);
 - 			
 - 			var names = hostName.split(',');
 - 			var i = names.length;
 - 			while(i--)
 - 			{
 - 				bulkHostNames[names[i]] = fileHost;			
 - 			}
 - 			
 - 		}
 - 		
 - 		var genType1 = [				
 - 							"rodfile.com",		"downloadani.me", //"migahost.com",
 - 							"rarefile.net",				
 - 							"filesabc.com",		
 - 							"180upload.com",	"verzend.be",
 - 						//	"movreel.com",
 - 							"4up.me",			
 - 							"file4safe.com",	"filemac.com",		"4upfiles.com",
 - 							"idup.in",			"novafile.com",		"longfiles.com",
 - 							"bitupload.com",    
 - 							"uploadbaz.com"     
 - 						];
 - 						
 - 		var genType2 = [	"queenshare.com", 	
 - 							"hulkload.com",
 - 							"amonshare.com",	//"edoc.com",
 - 								
 - 												
 - 							 		
 - 							      
 - 						];
 - 		
 - 		//xfilesharing 1.0
 - 		function addGenericType1()
 - 		{
 - 			var i = genType1.length;
 - 			
 - 			while(i--)
 - 			{
 - 				if (GM_getValue("Check_" + genType1[i].replace(/\./g, "_dot_").replace(/-/g, "_dash_") + "_links", false))
 - 				{
 - 					var regexSafe = genType1[i].replace(/\./g, "\\.").replace(/-/g, "\\-");
 - 					
 - 					addHost(
 - 						genType1[i].match(/[\w-]+/)[0], //hostname
 - 						regexSafe + "\/\\w+", //linkregex
 - 						"//a[contains(@href,'" + genType1[i] + "/')]", //xpath
 - 						null, //blocksize
 - 						new RegExp("(http:\/\/(?:|www\\.)" + regexSafe + "\/\\w+)",""),//, //corrmatch
 - 						null, //corrreplwhat
 - 						null, //corrreplwith
 - 						null, //separator
 - 						"http://" + genType1[i] + "/checkfiles.html", //api url
 - 						"op=checkfiles&process=Check+URLs&list=", //postdata
 - 						new RegExp("(" + regexSafe + "\/\\w+)",""), //linkregex
 - 						new RegExp("green'>http:\/\/(?:|www\.)" + regexSafe + "\/\\w+","g"), //liveregex
 - 						new RegExp("red'>http:\/\/(?:|www\.)" + regexSafe + "\/\\w+","g"), //deadregex
 - 						new RegExp("orange'>http:\/\/(?:|www\.)" + regexSafe + "\/\\w+","g"), //unavaregex
 - 						null //function delegate
 - 					)
 - 				}
 - 			}
 - 		}
 - 		
 - 		//xfilesharing 2.0
 - 		function addGenericType2()
 - 		{
 - 			var i = genType2.length;
 - 			
 - 			while(i--)
 - 			{
 - 				if (GM_getValue("Check_" + genType2[i].replace(/\./g, "_dot_").replace(/-/g, "_dash_") + "_links", false))
 - 				{
 - 					var regexSafe = genType2[i].replace(/\./g, "\\.").replace(/-/g, "\\-");
 - 					
 - 					addHost(
 - 						genType2[i].match(/[\w-]+/)[0], //hostname
 - 						regexSafe + "\/\\w+", //linkregex
 - 						"//a[contains(@href,'" + genType2[i] + "/')]", //xpath
 - 						null, //blocksize
 - 						new RegExp("(http:\/\/(?:|www\\.)" + regexSafe + "\/\\w+)",""),//, //corrmatch
 - 						null, //corrreplwhat
 - 						null, //corrreplwith
 - 						null, //separator
 - 						"http://www." + genType2[i] + "/?op=checkfiles", //api url
 - 						"op=checkfiles&process=Check+URLs&list=", //postdata
 - 						new RegExp("(" + regexSafe + "\/\\w+)",""), //linkregex
 - 						new RegExp(regexSafe + "\/\\w+.*?<\/td>\\s*<td style=\"color:green;\">","g"), //liveregex
 - 						new RegExp(regexSafe + "\/\\w+.*?<\/td>\\s*<td style=\"color:red;\">","g"), //deadregex
 - 						new RegExp(regexSafe + "\/\\w+.*?<\/td>\\s*<td style=\"color:orange;\">","g"), //unavaregex
 - 						null //function delegate
 - 					)
 - 				}
 - 			}
 - 		}				
 - 		
 - 		// TEMPLATE
 - 		// if (GM_getValue("Check__dot_com_links", false))
 - 		// {			
 - 			// addHost(
 - 				// "", //hostname
 - 				// "", //linkregex
 - 				// "//a[contains(@href,'.com/')]", //xpath
 - 				// null, //blocksize
 - 				// null, //corrmatch
 - 				// null, //corrreplwhat
 - 				// null, //corrreplwith
 - 				// null, //separator
 - 				// "", //api url
 - 				// "", //postdata
 - 				// /()/, //linkregex
 - 				// //liveregex
 - 				// //deadregex
 - 				// //unavaregex
 - 				// null //function delegate
 - 			// )			
 - 		// }	
 - 		
 - 		
 - 		addGenericType1();
 - 		addGenericType2();
 - 		
 -  
 - 		if (GM_getValue("Check_myvdrive_dot_com_links", false))
 - 		{	
 - 			addHost(
 - 				"myvdrive,fileserving", //hostname
 - 				"(?:fileserving|myvdrive)\\.com\/files\/[\\w-]+", //linkregex
 - 				"//a[contains(@href,'fileserving.com/files') or contains(@href,'myvdrive.com/files')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				"http://www.myvdrive.com/Public/linkchecker#", //api url
 - 				"links=", //postdata
 - 				/(?:fileserving|myvdrive)\.com\/(files\/\w+)/, //linkregex
 - 				/icon_file_check_valid"><\/span>\s*http:\/\/www\.(?:fileserving|myvdrive)\.com\/files\/[\w-]+/g, //liveregex
 - 				/icon_file_check_(?:removed|notvalid)"><\/span>\s*http:\/\/www\.(?:fileserving|myvdrive)\.com\/files\/[\w-]+/g, //deadregex
 - 				null, //unavaregex
 - 				null //function delegate
 - 			)				
 - 		}
 - 		if (GM_getValue("Check_hackerbox_dot_org_links", false))
 - 		{	
 - 			addHost(
 - 				"hackerbox", //hostname
 - 				"host\\.hackerbox\\.org\/\\w+", //linkregex
 - 				"//a[contains(@href,'host.hackerbox.org/')]", //xpath
 - 				null, //blocksize
 - 				/(http:\/\/host\.hackerbox\.org\/\w+)/, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				"http://host.hackerbox.org/checkfiles.html", //api url
 - 				"op=checkfiles&process=Check+URLs&list=", //postdata
 - 				/(host\.hackerbox\.org\/\w+)/, //linkregex
 - 				/green'>http:\/\/host\.hackerbox\.org\/\w+/g, //liveregex
 - 				/red'>http:\/\/host\.hackerbox\.org\/\w+/g, //deadregex
 - 				/orange'>http:\/\/host\.hackerbox\.org\/\w+/g, //unavaregex
 - 				null //function delegate
 - 			)				
 - 		}
 - 		if (GM_getValue("Check_hellshare_dot_com_links", false))
 - 		{			
 - 			addHost(
 - 				"hellshare", //hostname
 - 				"(?:|download\\.(?:cz\\.|en\\.|sk\\.|)|www\\.)hellshare\\.(?:com|sk|cz|pl|hu|COM|SK|CZ|PL|HU)\/[\\w-\\.]+\/(?:[\\w-\\.]+\/|)\\d{5,}", //linkregex
 - 				"//a[contains(@href,'hellshare.')]", //xpath
 - 				48, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				null, //api url
 - 				null, //postdata
 - 				null, //linkregex
 - 				null, //liveregex
 - 				null, //deadregex
 - 				null, //unavaregex
 - 				hellshareBulkCheck //function delegate
 - 			)				
 - 		}	
 - 		if (GM_getValue("Check_ncrypt_dot_in_links", false))
 - 		{			
 - 			addHost(
 - 				"ncrypt", //hostname
 - 				"ncrypt\\.in\/folder\\-\\w+", //linkregex
 - 				"//a[contains(@href,'ncrypt.in/folder')]", //xpath
 - 				100000, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				ncryptBulkCheck //function delegate
 - 			)			
 - 		}
 -     if (GM_getValue("Check_geupload_dot_com_links", false))
 - 		{
 - 			addHost(
 - 				"geupload,lenfile", //hostname
 - 				"(?:geupload\\.com|lenfile\\.com)\/\\w+", //linkregex
 - 				"//a[contains(@href,'geupload.com/') or contains(@href,'lenfile.com/')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				"\n", //separator
 - 				'http://geupload.com/?op=checkfiles',
 - 				'op=checkfiles&process=Check+URLs&list=',
 - 				/>http:\/\/(?:geupload|lenfile)\.com\/(\w+)/,
 - 				/>http:\/\/(?:geupload|lenfile)\.com\/\w+(?:[^>]+>)<td style=\"color\:green/g,
 - 				/>http:\/\/(?:geupload|lenfile)\.com\/\w+(?:[^>]+>)<td style=\"color\:red/g,
 - 				null,
 - 				null
 - 			)
 - 		}
 -     if (GM_getValue("Check_uploadrocket_dot_net_links", false))
 - 		{
 - 			addHost(
 - 				"uploadrocket", //hostname
 - 				"(?:uploadrocket\\.net)\/\\w+", //linkregex
 - 				"//a[contains(@href,'uploadrocket.net/')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				"\n", //separator
 - 				'http://uploadrocket.net/?op=checkfiles',
 - 				'op=checkfiles&process=Check+URLs&list=',
 - 				/uploadrocket.net\/(\w+)/,
 - 				/>http:\/\/uploadrocket.net\/\w+(?:[^>]+>)<td style="color:green/g,
 - 				/>http:\/\/uploadrocket.net\/\w+(?:[^>]+>)<td style="color:red/g,
 - 				null,
 - 				null //function delegate
 - 			)
 - 		}
 - 		if (GM_getValue("Check_k2s_dot_cc_links", false))
 -         {
 -            addHost(
 -                "k2s,keep2s,keep2share",
 -                "(?:(?:k2s\\.cc)|(?:keep2s\\.cc)|(?:keep2share\\.(?:cc|com)))\/file\/\\w+",
 -                "//a[contains(@href,'k2s.cc/file/') or contains(@href,'keep2s.cc/file/') or contains(@href,'keep2share.cc/file/') or contains(@href,'keep2share.com/file/')]",
 -                100000, //blocksize
 -                null, //corrmatch
 -                null, //corrreplwhat
 -                null, //corrreplwith
 -                null, //separator
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                k2sBulkCheck //function delegate
 -             )
 -         }
 - 		if (GM_getValue("Check_fboom_dot_me_links", false))
 -         {
 -            addHost(
 -                "fboom,fileboom",
 -                "(?:(?:fboom\\.me)|(?:fileboom\\.me))\/file\/\\w+",
 -                "//a[contains(@href,'fboom.me/file/') or contains(@href,'fileboom.me/file/')]",
 -                100000, //blocksize
 -                null, //corrmatch
 -                null, //corrreplwhat
 -                null, //corrreplwith
 -                null, //separator
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                fboomBulkCheck //function delegate
 -             )
 -         }
 -     		if (GM_getValue("Check_1fichier_dot_com_links", false))
 -         {
 -            addHost(
 -                "1fichier,dl4free",
 -                "(?:\\w{10}\\.(?:1fichier|dl4free)\\.com\/)|(?:(?:1fichier|dl4free)\\.com\/\\?\\w{10})|(?:www\\.)?\\w{6,}\\.1fichier\\.com",
 -                "//a[contains(@href,'.1fichier.com') or contains(@href,'1fichier.com?') or contains(@href,'1fichier.com/?') or contains(@href,'.dl4free.com') or contains(@href,'dl4free.com?')or contains(@href,'dl4free.com/?')]",
 -                100000, //blocksize
 -                null, //corrmatch
 -                null, //corrreplwhat
 -                null, //corrreplwith
 -                null, //separator
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                dl4free_1fichier_BulkCheck //function delegate
 -             )
 -         }
 - 		if (GM_getValue("Check_depositfiles_dot_com_links", false))
 -         {
 -            addHost(
 -                "depositfiles,dfiles",
 -                "(?:(?:depositfiles\\.(?:com|org|lt))|(?:dfiles\\.(?:ru|eu)))\/files\/|en/files\/\\w+",
 -                "//a[contains(@href,'depositfiles.lt/files/') or contains(@href,'depositfiles.com/files/') or contains(@href,'depositfiles.com/en/files/') or contains(@href,'depositfiles.org/files/') or contains(@href,'dfiles.ru/files/') or contains(@href,'dfiles.eu/files/')]",
 -                100000, //blocksize
 -                null, //corrmatch
 -                null, //corrreplwhat
 -                null, //corrreplwith
 -                null, //separator
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                depositfilesBulkCheck //function delegate
 -             )
 -         }
 - 		if (GM_getValue("Check_filesflash_dot_com_links", false))
 - 		{			
 - 			addHost(
 - 				"filesflash", //hostname
 - 				"filesflash\\.com\/\\w+", //linkregex
 - 				"//a[contains(@href,'filesflash.com')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				/http:\/\//, //corrreplwhat
 - 				'', //corrreplwith
 - 				null, //separator
 - 				'http://filesflash.com/checklinks.php',
 - 				'submit=Go&links=',
 - 				/filesflash\.com\/(\w+)/,
 - 				/<td>filesflash\.com\/\w+<\/td>\s*<td>Available/g,
 - 				/<td>filesflash\.com\/\w+<\/td>\s*<td>(?:Invalid|Deleted|Expired|Banned)?<\/td>/g,
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		}
 - 		if (GM_getValue("Check_jumbofiles_dot_com_links", false))
 - 		{	
 - 			addHost(
 - 				"jumbofiles", //hostname
 - 				"jumbofiles\\.com\/\\w+", //linkregex
 - 				"//a[contains(@href,'jumbofiles.com/')]", //xpath
 - 				null, //blocksize
 - 				/(http:\/\/(?:|www\.)jumbofiles\.com\/\w+)/, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				"http://jumbofiles.com/checkfiles.html", //api url
 - 				"op=checkfiles&process=Check+URLs&list=", //postdata
 - 				/(jumbofiles\.com\/\w+)/, //linkregex
 - 				/blue'>http:\/\/(?:|www\.)jumbofiles\.com\/\w+/g, //liveregex
 - 				/red'>http:\/\/(?:|www\.)jumbofiles\.com\/\w+/g, //deadregex
 - 				/orange'>http:\/\/(?:|www\.)jumbofiles\.com\/\w+/g, //unavaregex
 - 				null //function delegate
 - 			)				
 - 		}
 - 		if (GM_getValue("Check_edisk_dot_cz_links", false))
 - 		{			
 - 			addHost(
 - 				"edisk", //hostname
 - 				"(?:(?:muj|data)\\d*\\.|)edisk\\.(?:cz|sk|eu)\/(?:|(?:cz|sk|en|pl)\/)", //linkregex
 - 				"//a[contains(@href,'edisk.')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				/edisk\.\w{2}\/(?:|\w{2}\/)stahni/, //corrreplwhat
 - 				'edisk.cz/stahni', //corrreplwith
 - 				null, //separator
 - 				'http://www.edisk.cz/zkontrolovat-odkazy',
 - 				'submitBtn=Zkontrolovat&checkFiles=',
 - 				/((?:download|stahn(?:i|out-soubor))\/\d+)/,
 - 				/"ano"\/>\s*<\/td>\s*<td>\s*http:\/\/.+/g,
 - 				/"ne"\/>\s*<\/td>\s*<td>\s*http:\/\/.+/g,
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		}
 - 		if (GM_getValue("Check_bezvadata_dot_cz_links", false))
 - 		{			
 - 			GM_xmlhttpRequest( //age check skip
 - 			{
 - 				method: 'POST',
 - 				url: 'http://bezvadata.cz/vyhledavani/souhlas-zavadny-obsah',
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 					'Content-type': 'application/x-www-form-urlencoded',
 - 					'Referer': ""						
 - 				}
 - 			});
 - 			
 - 			addHost(
 - 				"bezvadata", //hostname
 - 				"(?:beta\\.|)bezvadata\.cz\/stahnout\/\\d+\\w+", //linkregex
 - 				"//a[contains(@href,'bezvadata.cz')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				'http://bezvadata.cz/nastroje/kontrola-odkazu?do=kontrolaOdkazuForm-submit',
 - 				'zkontrolovat=Zkontrolovat&odkazy=',
 - 				/(bezvadata\.cz\/stahnout\/\d+)/,
 - 				/bezvadata\.cz\/stahnout\/.+?<\/td>\s*<td style="background-color: #d9ffb2/g,
 - 				/bezvadata\.cz\/stahnout\/.+?<\/td>\s*<td style="background-color: #ffb2b2/g,
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		}
 - 		if (GM_getValue("Check_linkcrypt_dot_ws_links", false))
 - 		{			
 - 			addHost(
 - 				"linkcrypt", //hostname
 - 				"linkcrypt\\.ws\/dir\/\\w+", //linkregex
 - 				"//a[contains(@href,'linkcrypt.ws/dir')]", //xpath
 - 				100000, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				linkcryptBulkCheck //function delegate
 - 			)			
 - 		}
 - 		if (GM_getValue("Check_linksave_dot_in_links", false))
 - 		{			
 - 			addHost(
 - 				"linksave", //hostname
 - 				"linksave\\.in\/\\w+", //linkregex
 - 				"//a[contains(@href,'linksave.in')]", //xpath
 - 				100000, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				null,
 - 				linksaveBulkCheck //function delegate
 - 			)			
 - 		}
 - 		if (GM_getValue("Check_videobb_dot_com_links", false))
 - 		{			
 - 			addHost(
 - 				"videobb", //hostname
 - 				"videobb\\.com\/(?:video\/|watch_video\\.php\\?v=)\\w+", //linkregex
 - 				"//a[contains(@href,'videobb.com')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				/watch_video\.php\?v=/, //corrreplwhat
 - 				'video/', //corrreplwith
 - 				null, //separator
 - 				'http://www.videobb.com/link_checker.php',
 - 				'links=',
 - 				/videobb\.com\/video\/(\w+)/,
 - 				/<td>http:\/\/(?:www\.|)videobb.com\/video\/\w+<\/td>\s+<td>.+?<\/td>\s+<td>\d+:\d+<\/td>\s+<td>Available/g,
 - 				/<td>http:\/\/(?:www\.|)videobb.com\/video\/\w+<\/td>\s+<td><\/td>\s+<td>N\/A<\/td>\s+<td>Not Available/g,
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		}
 - /*		if (GM_getValue("Check_cramit_dot_in_links", false))
 - 		{			
 - 			addHost(
 - 				"cramit,cramitin", //hostname
 - 				"cramit(?:\\.in|in\\.net)\/", //linkregex
 - 				"//a[contains(@href,'cramitin.net') or contains(@href,'cramit.in')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				'http://cramit.in/checkfiles.html',
 - 				'op=checkfiles&process=CHECK+URL%27S&list=',
 - 				/(cramit(?:\.in|in\.net)\/\w+)/,
 - 				/green>http:\/\/(?:www\.|)cramit(?:\.in|in\.net)\/\w+/g,
 - 				/red'>http:\/\/(?:www\.|)cramit(?:\.in|in\.net)\/\w+/g,
 - 				/orange'>http:\/\/(?:www\.|)cramit(?:\.in|in\.net)\/\w+/g,
 - 				null //function delegate
 - 			)			
 - 		}
 -   	if (GM_getValue("Check_turbobit_dot_net_links", false))
 - 		{			
 - 			addHost(
 - 				"turbobit", //hostname
 - 				"turbobit\\.(?:net|pl)\/(?:\\w+\/|).+?\\.html", //linkregex
 - 				"//a[contains(@href,'turbobit.')]", //xpath
 - 				null, //blocksize
 - 				/(turbobit\.(?:net|pl)\/(?:\w+\/|).+?\.html)/, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				"\n", //separator
 - 				'http://turbobit.net/linkchecker/csv',
 - 				'links_to_check=',
 - 				/(turbobit\.(?:net|pl)\/\w+)/,
 - 				/turbobit\.(?:net|pl)\/.*?, 1/g,
 - 				/turbobit\.(?:net|pl)\/.*?, 0/g, 
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		} */
 - 		if (GM_getValue("Check_filerio_dot_com_links", false))
 - 		{			
 - 			addHost(
 - 				"filekeen,filerio", //hostname
 - 				//"file(?:keen|rio)\\.(?:com|in)\/\\w+\/.", //linkregex
 - 				"file(?:keen|rio)\\.(?:com|in)\/\\w+", //linkregex
 - 				"//a[contains(@href,'filekeen.com') or contains(@href,'filerio.')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				'http://filerio.in/checkfiles.html',
 - 				'op=checkfiles&process=Check+URLs&list=',
 - 				/(file(?:keen|rio)\.(?:com|in)\/\w+)/,
 - 				/green'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
 - 				/red'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
 - 				/orange'>http:\/\/(?:www\.|)file(?:keen|rio)\.(?:com|in)\/\w+/g,
 - 				null //function delegate
 - 			)			
 - 		}
 - 		if (GM_getValue("Check_share_dash_online_dot_biz_links", false))
 - 		{			
 - 			addHost(
 - 				"share-online,egoshare", //hostname
 - 				"(?:share-online\\.biz|egoshare\\.com)\/(?:dl\/|download\\.php\\?id=)", //linkregex
 - 				"//a[contains(@href,'share-online.biz') or contains(@href,'egoshare.com')]", //xpath
 - 				null, //blocksize
 - 				/http:\/\/(?:www\.)?(?:share-online\.biz|egoshare\.com)\/d(?:l\/|ownload\.php\?id=)(\w+)/, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				"\n", //separator
 - 				'http://api.share-online.biz/linkcheck.php',
 - 				'links=',
 - 				/(\w+);(?:OK|NOTFOUND|DELETED)/,
 - 				/\w+;OK/g,
 - 				/\w+;(?:NOTFOUND|DELETED)/g, 
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		}
 - /*		if (GM_getValue("Check_quickshare_dot_cz_links", false))
 - 		{			
 - 			addHost(
 - 				"quickshare", //hostname
 - 				"quickshare\\.cz\/stahnout-soubor\/\\d+", //linkregex
 - 				"//a[contains(@href,'quickshare.cz')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				'http://www.quickshare.cz/nastroje/link-checker',
 - 				'linky=',
 - 				/quickshare\.cz\/stahnout-soubor\/(\d+(?::\w+)?)/,
 - 				/quickshare\.cz\/stahnout-soubor\/\d+(?::[\w\-.+$!*\/()\[\]\',~%?:@#&=\\]+)?\s*<\/a><\/td><td><img src="\/img\/ok\.gif/g,
 - 				/quickshare\.cz\/stahnout-soubor\/\d+(?::[\w\-.+$!*\/()\[\]\',~%?:@#&=\\]+)?\s*<\/td><td><img src="\/img\/nenalezeno\.gif/g, 
 - 				null,
 - 				null //function delegate
 - 			)			
 - 		} */
 - 		if (GM_getValue("Check_oboom_dot_com_links", false))
 - 		{
 - 			addHost(
 - 				"oboom", //hostname
 - 				"oboom\\.com\/#?\\w{8}", //linkregex
 - 				"//a[contains(@href,'oboom.com/')]", //xpath
 - 				null, //blocksize
 - 				/oboom\.com\/#?(\w{8})/, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				null,
 - 				null,
 - 				null,
 - 				null, //liveregex
 - 				null, //deadregex
 - 				null,
 - 				oboomBulk //function delegate
 - 			)
 - 		}
 -   
 - if (GM_getValue("Check_mega_dot_nz_links", false))
 -         {
 -            addHost(
 -                "mega",
 -                "mega(?:\\.co)?\\.nz\/#!\\w+",
 -                "//a[contains(@href,'mega.co.nz/') or contains(@href,'mega.nz/')]",
 -                100000, //blocksize
 -                null, //corrmatch
 -                null, //corrreplwhat
 -                null, //corrreplwith
 -                null, //separator
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                null,
 -                megaBulkCheck //function delegate
 -             )    
 -         }  
 -  
 - 		//the same as GenType2, except api url is 'https://' instead of 'http://www.' and corrmatch is not??? needed
 -  
 - 		if (GM_getValue("Check_extabit_dot_com_links", false))
 - 		{			
 - 			addHost(
 - 				"extabit", //hostname
 - 				"extabit\\.com\/file\/\\w+", //linkregex
 - 				"//a[contains(@href,'extabit.com')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				"\n", //separator
 - 				"http://extabit.com/linkchecker.jsp", //api url
 - 				"url=", //postdata
 - 				/extabit\.com\/(file\/\w+)/, //linkregex
 - 				/extabit\.com\/file\/\w+\/[^<]+<\/a><\/td>\s*<td class="status"><span class="status_green">/g, //liveregex
 - 				/extabit\.com\/file\/\w+\/[^<]+<\/a><\/td>\s*<td class="status"><span class="status_red">/g, //deadregex
 - 				/extabit\.com\/file\/\w+\/[^<]+<\/a><\/td>\s*<td class="status"><span class="status_yellow">/g, //unavaregex
 - 				extabitBulkCheck //function delegate
 - 			)			
 - 		}				
 - 		if (GM_getValue("Check_junocloud_dot_me_links", false))
 - 		{			
 - 			addHost(
 - 				"junocloud", //hostname
 - 				"junocloud\\.me\/\\w+", //linkregex
 - 				"//a[contains(@href,'junocloud.me')]", //xpath
 - 				null, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				"\n", //separator
 - 				"http://junocloud.me/checkfiles.html", //api url
 - 				"op=checkfiles&process=Check+URLs&list=", //postdata
 - 				/(junocloud\.me\/\w+)/, //linkregex
 - 				/<a href="http:\/\/junocloud\.me\/\w+[^<]+<\/a>\s*<span style="color: green/g, //liveregex
 - 				/<a href="http:\/\/junocloud\.me\/\w+[^<]+<\/a>\s*<span style="color: red/g, //deadregex
 - 				null, //unavaregex
 - 				null //function delegate
 - 			)			
 - 		}				
 - 		if (GM_getValue("Check_webshare_dot_cz_links", false))
 - 		{
 - 			addHost(
 - 				"webshare", //hostname
 - 				"webshare\.cz\/(?:(?:#/)?file/\\w+|\\w+-.*)", //linkregex
 - 				"//a[contains(@href,'webshare.cz')]", //xpath
 - 				100000, //blocksize
 - 				null, //corrmatch
 - 				null, //corrreplwhat
 - 				null, //corrreplwith
 - 				null, //separator
 - 				null, //api url
 - 				null, //postdata
 - 				null, //linkregex
 - 				null, //liveregex
 - 				null, //deadregex
 - 				null, //unavaregex
 - 				webshareBulkCheck //function delegate
 - 			)			
 - 		}
 - 		
 - 		/////////////////////////////
 - 		// Common function delegate to send links to get checked by host linkchecker
 - 		/////////////////////////////
 - 		// If you define a new delegate, you may use following properties
 - 		// this.links 			[array] array of strings (link blocks). The links in each block separated with host.splitSeparator.
 - 		// this.apiUrl			[string] API or web linkchecker URL
 - 		// this.postData		[string] POSTDATA for POST request
 - 		// this.resLiveRegex 	[regex] matches live substrings in the request response
 - 		// this.resDeadRegex 	[regex] matches dead substrings in the request response
 - 		// this.resUnavaRegex 	[regex] matches unava substrings in the request response (the regex is often null!)
 - 		// 
 - 		// this.resLinkRegex 	[regex] matches links further passed to DisplayTheCheckedLinks
 - 		//
 - 		// See the code below for standard bulkcheck handling reference.
 - 		//////////////////////////////
 - 		function genBulkCheck()
 - 		{
 - 			var blockIdx = this.links.length;
 - 			
 - 			while (blockIdx--)
 - 			{
 - 				postRequest(this.apiUrl, this.postData, this.links[blockIdx], 
 - 					this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.resUnavaRegex);
 - 				
 - 			}
 - 			function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
 - 			{
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: 'POST',
 - 					url: api,
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 						'Content-type': 'application/x-www-form-urlencoded',
 - 						'Referer': api,
 - 						'X-Requested-With': 'XMLHttpRequest'						
 - 					},
 - 					data: postData + encodeURIComponent(links),
 - 					onload: function (result)
 - 					{
 - 						var res = result.responseText;
 - 						
 - 						// GM_log(res);
 - 						
 - 						var i;
 -  
 - 						var livelinks = res.match(liveRegex);
 - 						var deadlinks = res.match(deadRegex);						
 - 						
 - 						// GM_log(livelinks);
 - 						// GM_log(deadlinks);
 - 						
 - 						if (livelinks != null)
 - 						{
 - 							i = livelinks.length - 1;
 - 							do
 - 							{
 - 								livelinks[i] = livelinks[i].match(linkRegex)[1];
 - 							}
 - 							while (i--);
 - 							DisplayTheCheckedLinks(livelinks, 'alive_link');
 - 						}
 -  
 - 						if (deadlinks != null)
 - 						{
 - 							i = deadlinks.length - 1;
 - 							do
 - 							{
 - 								deadlinks[i] = deadlinks[i].match(linkRegex)[1];
 - 							}
 - 							while (i--);
 - 							DisplayTheCheckedLinks(deadlinks, 'adead_link');
 - 						}
 -  
 - 						if (unavaRegex != null)
 - 						{
 - 							var unavalinks = res.match(unavaRegex);
 - 							if (unavalinks)
 - 							{
 - 								i = unavalinks.length - 1;
 - 								do
 - 								{
 - 									unavalinks[i] = unavalinks[i].match(linkRegex)[1];
 - 								}
 - 								while (i--);
 - 								DisplayTheCheckedLinks(unavalinks, 'unava_link');
 - 							}
 - 						}
 - 					}
 - 				});
 - 				
 - 			}
 - 		}
 - 		
 - 		//specialized bulkchecking handlers follow
 - 		function webshareBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 - 			var i = arr.length;
 - 			
 - 			while(i--)
 - 			{	
 - 				postRequest(arr[i]);				
 - 			}
 - 			
 - 			//function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
 - 			function postRequest(wsLink)
 - 			{
 - 				var id = wsLink.match(/webshare\.cz\/(?:(?:#\/)?file\/)?(\w+)/)[1];
 - 				
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: 'POST',
 - 					url: "http://webshare.cz/api/file_info/",
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 						'Content-type': 'application/x-www-form-urlencoded',
 - 						'Referer': "",
 - 					},
 - 					data: "wst=&ident=" + id,
 - 					onload: function (result)
 - 					{
 - 						var res = result.responseText;
 - 						
 - 						if (res.match(/<name>.+?<\/name>/))
 - 						{
 - 							DisplayTheCheckedLinks([id], 'alive_link');
 - 						}
 - 						else
 - 						{
 - 							DisplayTheCheckedLinks([id], 'adead_link');
 - 						}
 - 					}
 - 				});
 - 				
 - 			}
 - 		}
 - 		//like genBulkCheck, but extabit linkchecker only works when logged in. If not logged in, non-bulk checking has to be used.
 - 		//extabit also doesn't like requests in fast succession, so some delays are added.
 - 		function extabitBulkCheck()
 - 		{
 - 			var timeoutDelay = 0;
 - 			
 - 			var blockIdx = this.links.length;
 - 			while (blockIdx--)
 - 			{
 - 				postRequest(this.apiUrl, this.postData, this.links[blockIdx], 
 - 					this.resLinkRegex, this.resLiveRegex, this.resDeadRegex, this.resUnavaRegex);
 - 				
 - 			}
 - 			
 - 			function postRequest(api, postData, links, linkRegex, liveRegex, deadRegex, unavaRegex)
 - 			{
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: 'POST',
 - 					url: api,
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 						'Content-type': 'application/x-www-form-urlencoded',
 - 						'Referer': api,
 - 						'X-Requested-With': 'XMLHttpRequest'
 - 					},
 - 					data: postData + encodeURIComponent(links),
 - 					onload: function (result)
 - 					{
 - 						var res = result.responseText;
 - 						
 - 						if (/id="registration_header"/.test(res))  //not logged in, have to use non-bulk
 - 						{
 - 							function geturlfunc(link, tryID) //basically the geturl function with some changes (compacted, displaythecheckedlinkS, multiple tries)
 - 							{
 - 								//GM_log(tryID + ': ' + link);
 - 								GM_xmlhttpRequest(
 - 								{
 - 									method: 'GET',
 - 									url: link,
 - 									headers: {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7','Referer': ""},
 - 									onload: function(result2)
 - 									{
 - 										var res2 = result2.responseText;
 - 										var res2Status = result.status;
 - 										if (/download-file-btn/.test(res2)) {DisplayTheCheckedLinks([link], 'alive_link'); return;}
 - 										if (/Search mirrors|id="mirrb"/.test(res2) || res2Status==404) {DisplayTheCheckedLinks([link], 'adead_link'); return;}
 - 										if (/currently unavailable|temporarily unavailable|disponible en estos momentos|vorläufig unerreichbar|Файл временно недоступен/.test(res2) || res2Status == 500 || res2Status == 503)
 - 										{
 - 											if (tryID < 7)
 - 												setTimeout(function(){geturlfunc(link,tryID+1)}, tryID * 1000 + (Math.random() * tryID * 2000));
 - 											else
 - 												{DisplayTheCheckedLinks([link], 'unava_link'); return;}
 - 										}
 - 									}
 - 								});
 - 							}
 - 							
 - 							//split the hrefs and check them one by one
 - 							GM_log('Using slow extabit.com link checking. Log in to extabit to use fast bulk checking.');
 - 							links = links.split('\n');
 - 							var i = links.length;
 - 							while (i--)
 - 							{
 - 								if (links[i])
 - 								{
 - 									(function(i){setTimeout(function(){geturlfunc(links[i],1)}, timeoutDelay);})(i);
 - 									timeoutDelay += 500;
 - 								}
 - 							}
 - 							
 - 							return;
 - 						}
 - 						
 - 																
 - 						var i;
 -  
 - 						var livelinks = res.match(liveRegex);
 - 						var deadlinks = res.match(deadRegex);						
 - 						
 - 						if (livelinks != null)
 - 						{
 - 							i = livelinks.length - 1;
 - 							do
 - 							{
 - 								livelinks[i] = livelinks[i].match(linkRegex)[1];
 - 							}
 - 							while (i--);
 - 							DisplayTheCheckedLinks(livelinks, 'alive_link');
 - 						}
 -  
 - 						if (deadlinks != null)
 - 						{
 - 							i = deadlinks.length - 1;
 - 							do
 - 							{
 - 								deadlinks[i] = deadlinks[i].match(linkRegex)[1];
 - 							}
 - 							while (i--);
 - 							DisplayTheCheckedLinks(deadlinks, 'adead_link');
 - 						}
 -  
 - 						if (unavaRegex != null)
 - 						{
 - 							var unavalinks = res.match(unavaRegex);
 - 							if (unavalinks)
 - 							{
 - 								i = unavalinks.length - 1;
 - 								do
 - 								{
 - 									unavalinks[i] = unavalinks[i].match(linkRegex)[1];
 - 								}
 - 								while (i--);
 - 								DisplayTheCheckedLinks(unavalinks, 'unava_link');
 - 							}
 - 						}
 - 					}
 - 				});
 - 				
 - 			}
 - 		}
 -  		function k2sBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 -             var i = arr.length;
 -             
 -             c=0;
 -             arrIDs=[];
 -             while(i--)
 -             {
 -             	id = arr[i].match(/\/file\/(\w+)/)[1];
 -             	k2salreadyexist=false;
 -             	for (j=0;j<arrIDs.length;j++)
 -             	{
 -             		if (arrIDs[j]==id)
 -             		{
 -             			k2salreadyexist=true;
 -             			break;
 -             		}
 -             	}
 -             	if (k2salreadyexist) continue;
 -             	arrIDs.push(id);
 -             	c++;
 -             	setTimeout(k2sRequest,c*500,arr[i]);
 -             }
 - 		}
 - 		function k2sRequest(K2SLink)
 - 		{
 - 			var id = K2SLink.match(/\/file\/(\w+)/)[1];
 - 			K2SLink2='http://k2s.cc/file/'+id;
 - 			GM_xmlhttpRequest(
 - 			{
 - 				method: 'GET',
 - 				url: K2SLink,
 - 				headers: {
 - 					'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 					'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 					'Referer': ''
 - 				},
 - 				onload: function (result)
 - 				{
 - 					var res = result.responseText;
 - 					
 - 					if (res.match('no longer available|div class="well2"|error 404|The system is unable to find the requested action|http://keep2share.cc/file/check.html|To avoid damaged files'))
 - 					{
 - 						DisplayTheCheckedLinks([K2SLink], 'adead_link');
 - 						return;
 - 					}
 - 					
 - 					if (res.match('method="post">Displaying'))
 - 					{
 - 						DisplayTheCheckedLinks([K2SLink], 'unava_link');
 - 						return;
 - 					}
 - 					
 - 					if (res.match('Premium only'))
 - 					{
 - 						DisplayTheCheckedLinks([K2SLink], 'prem_link');
 - 						return;
 - 					}
 - 					if (res.match('View File|download-file-info|div class="name fontmyriadpro"|style="color: #9fb143;"'))
 - 					{
 - 						slow_id=new RegExp('<input type="hidden" name="slow_id" value="(\\w+)">');
 - 						slID=slow_id.exec(res)[1];
 - 						GM_xmlhttpRequest(
 - 						{
 - 							method: 'POST',
 - 							url: K2SLink2,
 - 							headers: {
 - 								'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 								'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 								'Content-Type': 'application/x-www-form-urlencoded',
 - 								'Referer': K2SLink
 - 							},
 - 							data: 'slow_id='+slID+'&yt0=',
 - 							onload: function (result)
 - 							{
 - 								var newres = result.responseText;
 - 								newoversizedtest=new RegExp("Free user can't download large files.");
 - 								if (newoversizedtest.test(newres))
 - 								{
 - 									DisplayTheCheckedLinks([K2SLink], 'prem_link');
 - 									return;
 - 								}
 - 								else
 - 								{
 - 									DisplayTheCheckedLinks([K2SLink], 'alive_link');
 - 									return;
 - 								}
 - 								DisplayTheCheckedLinks([K2SLink], 'unava_link');
 - 								return;
 - 							}
 - 						});
 - 						/////////////////////end additional check for oversized links
 - 						return;
 - 					}
 - 					DisplayTheCheckedLinks([K2SLink], 'unava_link');
 - 					return;
 - 				},
 - 				onerror: function ()
 - 				{
 - 					DisplayTheCheckedLinks([K2SLink], 'unava_link');
 - 					return;
 - 				}
 - 			});
 - 		}
 - 		function fboomBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 -             var i = arr.length;
 -             
 -             c=0;
 -             arrIDs=[];
 -             while(i--)
 -             {
 -             	id = arr[i].match(/\/file\/(\w+)/)[1];
 -             	fbalreadyexist=false;
 -             	for (j=0;j<arrIDs.length;j++)
 -             	{
 -             		if (arrIDs[j]==id)
 -             		{
 -             			fbalreadyexist=true;
 -             			break;
 -             		}
 -             	}
 -             	if (fbalreadyexist) continue;
 -             	arrIDs.push(id);
 -             	c++;
 -             	setTimeout(fboomRequest,c*500,arr[i]);
 -             }
 - 		}
 - 		function fboomRequest(FBoomLink)
 - 		{
 - 			var id = FBoomLink.match(/\/file\/(\w+)/)[1];
 - 			FBoomLink2='http://fboom.me/file/'+id;
 - 			GM_xmlhttpRequest(
 - 			{
 - 				method: 'GET',
 - 				url: FBoomLink,
 - 				headers: {
 - 					'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 					'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 					'Referer': ''
 - 				},
 - 				onload: function (result)
 - 				{
 - 					var res = result.responseText;
 - 					
 - 					if (res.match('no longer available|class="error-v1-title">404<|File not found or deleted|no longer available'))
 - 					{
 - 						DisplayTheCheckedLinks([FBoomLink], 'adead_link');
 - 						return;
 - 					}
 - 					
 - 					if (res.match('method="post">Displaying'))
 - 					{
 - 						DisplayTheCheckedLinks([FBoomLink], 'unava_link');
 - 						return;
 - 					}
 - 					
 - 					if (res.match('only for premium members'))
 - 					{
 - 						DisplayTheCheckedLinks([FBoomLink], 'prem_link');
 - 						return;
 - 					}
 - 					if (res.match('id="download-free" href="#"'))
 - 					{
 - 						slow_id=new RegExp('<a id="download-free" href="#" class="free-button btn-u" data-slow-id="(\\w+)">');
 - 						slID=slow_id.exec(res)[1];
 - 						GM_xmlhttpRequest(
 - 						{
 - 							method: 'POST',
 - 							url: FBoomLink2,
 - 							headers: {
 - 								'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 								'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 								'Content-Type': 'application/x-www-form-urlencoded',
 - 								'Referer': FBoomLink
 - 							},
 - 							data: 'slow_id='+slID,
 - 							onload: function (result)
 - 							{
 - 								var newres = result.responseText;
 - 								newoversizedtest=new RegExp("Free user can't download large files.|Downloading is not possible");
 - 								if (newoversizedtest.test(newres))
 - 								{
 - 									DisplayTheCheckedLinks([FBoomLink], 'prem_link');
 - 									return;
 - 								}
 - 								else
 - 								{
 - 									DisplayTheCheckedLinks([FBoomLink], 'alive_link');
 - 									return;
 - 								}
 - 								DisplayTheCheckedLinks([FBoomLink], 'unava_link');
 - 								return;
 - 							}
 - 						});
 - 						/////////////////////end additional check for oversized links
 - 						return;
 - 					}
 - 					DisplayTheCheckedLinks([FBoomLink], 'unava_link');
 - 					return;
 - 				},
 - 				onerror: function ()
 - 				{
 - 					DisplayTheCheckedLinks([FBoomLink], 'unava_link');
 - 					return;
 - 				}
 - 			});
 - 		}
 -     		function dl4free_1fichier_BulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 -             var i = arr.length;
 -             while(i--)
 -             {
 -             	CorrectRE = new RegExp('(https?):\\/\\/(?:www\\.)?(\\w{5,15})\\.1fichier\\.com');
 -             	arr[i]=arr[i].replace(CorrectRE, '$1://1fichier.com/?$2');
 -             	gethead_dl4free_1fichier(arr[i]);
 -             }
 - 		}
 - 		function gethead_dl4free_1fichier(link)
 - 		{
 - 			var id = link.match(/(?:1fichier|dl4free)\.com(?:\/)?\?(\w{6,})/)[1];
 - 			GM_xmlhttpRequest(
 - 			{
 - 				method: 'HEAD',
 - 				url: link,
 - 				headers: {
 - 					'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 					'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 					'Referer': ''
 - 				},
 - 				onload: function (result)
 - 				{
 - 					if (result.responseHeaders.match(/Content-Disposition: attachment; filename=/))//direct download
 - 					{
 - 						DisplayTheCheckedLinks([id], 'alive_link');
 - 						return;
 - 					}
 - 					else
 - 					{
 - 						getlink_dl4free_1fichier(link);
 - 					}
 - 					return;
 - 				},
 - 				onerror: function ()
 - 				{
 - 					DisplayTheCheckedLinks([id], 'unava_link');
 - 				}
 - 			});
 - 		}
 - 		function getlink_dl4free_1fichier(link)
 - 		{
 - 			var id = link.match(/(?:1fichier|dl4free)\.com(?:\/)?\?(\w{6,})/)[1];
 - 			GM_xmlhttpRequest(
 - 			{
 - 				method: 'GET',
 - 				url: link,
 - 				headers: {
 - 					'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 					'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 					'Referer': ''
 - 				},
 - 				onload: function (result)
 - 				{
 - 					var res = result.responseText;
 - 					
 - 					deadRegex=new RegExp('The requested file has been deleted|File not found|file could not be found|Select files to send|Selectionnez les fichiers a envoyer|file has been deleted|Le fichier demande a ete supprime|Le fichier demandé n|<span class="spacer spacer-20"></span>');
 - 					if (deadRegex.test(res))
 - 					{
 - 						DisplayTheCheckedLinks([id], 'adead_link');
 - 						return;
 - 					}
 - 					
 - 					premiumRegex=new RegExp('only for premium users');
 - 					if (premiumRegex.test(res))
 - 					{
 - 						DisplayTheCheckedLinks([id], 'prem_link');
 - 						return;
 - 					}
 - 					liveRegex=new RegExp('<title>Download</title>|<br/>You must wait|submit" value="Download|Download without SSL encryption|submit" value="Telecharger|submit" value="Telecharger|<input type="submit" value="');
 - 					if (liveRegex.test(res))
 - 					{
 - 						DisplayTheCheckedLinks([id], 'alive_link');
 - 						return;
 - 					}
 - 					DisplayTheCheckedLinks([id], 'unava_link');
 - 				},
 - 				onerror: function ()
 - 				{
 - 					DisplayTheCheckedLinks([id], 'unava_link');
 - 				}
 - 			});
 - 		}
 - 		function depositfilesBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 -             var i = arr.length;
 -             var seqno = Math.floor(Math.random()*1000000000);
 -          
 -             while(i--)
 -             {
 -             	DFpostRequest(arr[i]);
 -             }
 - 		}
 - 		function DFpostRequest(DFLink)
 -         {
 - 			DFLink=DFLink.replace('depositfiles.lt/','depositfiles.com/');
 - 			DFLink=DFLink.replace('depositfiles.org/','depositfiles.com/');
 - 			DFLink=DFLink.replace('dfiles.ru/','depositfiles.com/');
 - 			DFLink=DFLink.replace('dfiles.eu/','depositfiles.com/');
 - 			DFLink=DFLink.replace('depositfiles.com/en/','depositfiles.com/');
 -             var id = DFLink.match(/depositfiles\.com\/files\/(\w+)/)[1];
 -                 GM_xmlhttpRequest(
 -                 {
 -                     method: "GET",
 -                     url: "http://depositfiles.com/api/get_download_info.php?id=" + id + "&format=json",
 -                     headers: {
 -                     'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Content-Type': 'application/x-www-form-urlencoded',
 - 					'Referer': ""
 - 					},
 - 		            onload: function (result)
 - 		            {
 - 		                var res = result.responseText;
 - 		                if (res.match('(?:no_file|file_ban)'))
 - 						{
 - 							DisplayTheCheckedLinks([id], 'adead_link');
 - 							return;
 - 						}
 - 						if (res.match('"download_li(?:nk|mit)|password_check|file_storage"'))
 - 						{
 - 							DisplayTheCheckedLinks([id], 'alive_link');
 - 							return;
 - 						}
 - 		                DisplayTheCheckedLinks([id], 'unava_link');
 - 		            }
 - 				});
 - 		}
 -  
 -         function megaBulkCheck()
 -         {
 -             var arr = this.links[0].split("\r\n");
 -             var i = arr.length;
 -             var seqno = Math.floor(Math.random()*1000000000);
 -          
 -             while(i--)
 -             {
 -             postRequest(arr[i]);        
 -             }
 -          
 - 		function postRequest(megaLink)
 -         {  
 - 					  megaLink=megaLink.replace('mega.nz/','mega.co.nz/');
 -             var id = megaLink.match(/mega\.co\.nz\/#!(\w+)(?:!\w+)?/)[1];
 -        
 -                     GM_xmlhttpRequest(
 -                     {
 -                             method: "POST",
 -                             url: 'https://g.api.mega.co.nz/cs?id=' + seqno++,
 -                             data: '[{"a":"g","p":"' + id + '","ssl": "1"}]',
 -                             headers: {
 -                             'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 -                             'Content-Type': 'application/xml',
 -                             'Referer': "https://mega.co.nz/"
 -                     },
 -                     onload: function (result)
 -                     {
 -                             var res = $.parseJSON(result.responseText.match(/\[(.+?)\]/)[1]);
 -                
 -                             if ((typeof res == "number" && (res == -9 || res == -16 || res == -6)) || res.d) 
 -                             { 
 -  
 -                                     DisplayTheCheckedLinks([id], 'adead_link');
 -                             } 
 -                             if (res.at) 
 -                             {
 -                             
 -                                     DisplayTheCheckedLinks([id], 'alive_link');
 -                             } 
 -                             if (res.e == "ETEMPUNAVAIL")
 -                             {
 -                            
 -                                     DisplayTheCheckedLinks([id], 'unava_link'); 
 - 							}
 - 						}
 - 					});
 - 			}       
 -  
 - 		}  
 -  
 - function oboomBulk() {
 - 			var a = [], b = [], c = [];
 - 			var array = this.links;
 -  
 - 			GM_xmlhttpRequest({
 - 				method: 'GET',
 - 				url: 'https://www.oboom.com/1/guestsession',
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 					'Content-type': 'application/x-www-form-urlencoded',
 - 					'Referer': 'https://www.oboom.com',
 - 					'X-Requested-With': 'XMLHttpRequest'						
 - 				},
 - 				onload: function(result) {
 - 					var blockIdx = array.length;
 - 					var token = JSON.parse(result.responseText)[1];
 - 					while (blockIdx--) {
 - 						startCheck(array[blockIdx].split('\r\n'), token);
 - 					}
 - 				}
 - 			});
 -  
 - 			function startCheck(links, token) {
 - 				GM_xmlhttpRequest({
 - 						method: 'POST',
 - 						url: "https://api.oboom.com/1/info",
 - 						headers: {
 - 							'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 							'Content-type': 'application/x-www-form-urlencoded',
 - 							'Referer': 'https://www.oboom.com/',
 - 							'X-Requested-With': 'XMLHttpRequest'						
 - 						},
 - 						data: "token=" + token + "&items=" + links.join(","),
 - 						onload: function(result) {
 - 							var res = JSON.parse(result.responseText)[1];
 - 							var i = res.length, s;
 -  
 - 							while (i--) {
 - 								s = res[i].state;
 - 								if (s == 'online') a.push(res[i].id);
 - 								else if (s == 'blocked' || s == 'abused' || s == 'lost' || s == 'not_found' || s == 'not_available'|| s == 'download_error' || s == 'offline' || s == 'expired' ) b.push(res[i].id);
 - 								else c.push(res[i].id);
 - 							}
 -  
 - 							if (a.length > 0) DisplayTheCheckedLinks(a, 'alive_link');
 - 							if (b.length > 0) DisplayTheCheckedLinks(b, 'adead_link');
 - 							if (c.length > 0) DisplayTheCheckedLinks(c, 'unava_link');
 - 						}
 - 					});
 - 			}
 - 		}
 - 		function linksaveBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 - 			var i = arr.length;
 - 			
 - 			while(i--)
 - 			{	
 - 				postRequest(arr[i]);				
 - 			}
 - 			
 - 			function postRequest(lsLink)
 - 			{
 - 				GM_xmlhttpRequest(
 - 					{
 - 						method: "GET",
 - 						url: lsLink + '-t.jpg',
 - 						headers: {
 - 							'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 							'Accept': 'text/xml',
 - 							'Referer': ""
 - 						},
 - 						onload: function (result)
 - 						{
 - 							var imgLen = result.responseHeaders.match(/Content-Length: (\d+)/)[1];
 - 							
 - 							if (imgLen == 965) //online
 - 							{
 - 								DisplayTheCheckedLinks([lsLink], 'alive_link');
 - 							}
 -  
 - 							if (imgLen == 972) //offline
 - 							{
 - 								DisplayTheCheckedLinks([lsLink], 'adead_link');
 - 							}
 - 							
 - 							if (imgLen == 978) //unava
 - 							{
 - 								DisplayTheCheckedLinks([lsLink], 'unava_link');
 - 							}
 - 						}
 - 					});
 - 			}       
 -  
 - 		}   
 - 		function linkcryptBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 - 			var i = arr.length;
 - 			
 - 			while(i--)
 - 			{	
 - 				postRequest(arr[i]);				
 - 			}
 - 			
 - 			function postRequest(lcLink)
 - 			{
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: "GET",
 - 					url: 'http://linkcrypt.ws/api.html?api=status_V1&folderKey=' + lcLink.match(/dir\/(\w+)/)[1],
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 						'Accept': 'text/xml',
 - 						'Referer': ""
 - 					},
 - 					onload: function (result)
 - 					{
 - 						var res = result.responseText;
 - 						
 - 						if (res.match(/<errorCode>1101|folderStatus>[23]/)) //Offline status
 - 						{
 - 							DisplayTheCheckedLinks([lcLink], 'adead_link');
 - 							return;
 - 						}
 - 						
 - 						if (res.match(/folderStatus>1/)) //Online status
 - 						{
 - 							DisplayTheCheckedLinks([lcLink], 'alive_link');
 - 						}
 - 						else
 - 						{
 - 							DisplayTheCheckedLinks([lcLink], 'unava_link');
 - 						}
 - 					}
 - 				});
 - 			}
 - 		}
 -  
 - 		function megashareBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 - 			var i = arr.length;
 - 			
 - 			while(i--)
 - 			{	
 - 				postRequest(arr[i]);				
 - 			}
 - 			
 - 			function postRequest(msLink)
 - 			{
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: "GET",
 - 					url: msLink,
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 						'Content-Type': 'application/x-www-form-urlencoded',
 - 						'Referer': ""
 - 					},
 - 					onload: function (result)
 - 					{
 - 						var prZVal = result.responseText.match(/name="(\d+prZVal)" value="(\d+)">/);
 - 						var btn3Name = result.responseText.match(/src="images\/dwn-btn3\.gif" name="(.+?)"/);
 - 						
 - 						if ((prZVal == null) || (btn3Name == null))
 - 						{
 - 							return;
 - 						}						
 - 						
 - 						GM_xmlhttpRequest(
 - 						{
 - 							method: "POST",
 - 							url: msLink,
 - 							headers: {
 - 								'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 								'Content-Type': 'application/x-www-form-urlencoded',
 - 								'Referer': ""
 - 							},
 - 							data: prZVal[1] + "=" + prZVal[2] + '&' + btn3Name[1] + '.x=1&' + btn3Name[1] + '.y=1',
 - 							onload: function (result)
 - 							{
 - 								var res = result.responseText;							
 - 							
 - 								if (res.match(/<div id="err">/))
 - 								{
 - 									DisplayTheCheckedLinks([msLink.match(/\.com(\/\d+)/)[1]], 'adead_link');
 - 								}
 - 								else
 - 								{
 - 									DisplayTheCheckedLinks([msLink.match(/\.com(\/\d+)/)[1]], 'alive_link');
 - 								}
 - 							}
 - 						});
 - 					}
 - 				});
 - 			}
 - 		}
 - 		function ncryptBulkCheck()
 - 		{
 - 			var arr = this.links[0].split("\r\n");
 - 			var i = arr.length;
 - 			
 - 			while(i--)
 - 			{	
 - 				postRequest(arr[i]);				
 - 			}
 - 			
 - 			function postRequest(ncryptLink)
 - 			{		
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: "POST",
 - 					url: 'http://ncrypt.in/api_status.php',
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 						'Content-Type': 'application/x-www-form-urlencoded',
 - 						'Referer': ""
 - 					},
 - 					data: 'link=' + encodeURI(ncryptLink),
 - 					onload: function (result)
 - 					{
 - 						var foldStatus = result.responseText.match(/(?:offline|online);/);
 - 												
 - 						switch(foldStatus + ""){
 - 						case "offline;": 	DisplayTheCheckedLinks([ncryptLink], 'adead_link'); break;
 - 						case "online;": 	DisplayTheCheckedLinks([ncryptLink], 'alive_link'); break;
 - 						default: 			DisplayTheCheckedLinks([ncryptLink], 'unava_link');
 - 						}
 - 					}
 - 				});
 - 			}
 - 		}
 - 		function hellshareBulkCheck()
 - 		{
 - 			var links = this.links;
 - 			
 - 			GM_xmlhttpRequest(
 - 			{
 - 				method: "GET",
 - 				url: 'http://www.hellshare.com',
 - 				headers: {
 - 					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
 - 					'Accept': 'text/xml',
 - 					'Referer': ""
 - 				},
 - 				onload: function (result)
 - 				{
 - 					var domain = result.responseText.match(/param_rau = "www\.hellshare\.(\w+)"/)[1];
 -  
 - 					var loc = 'check=Zkontrolovat+dostupnost+soubor%C5%AF&links=';
 - 					if (domain == 'sk')
 - 						loc = 'check=Skontrolova%C5%A5&links=';
 - 					if (domain == 'com')
 - 						loc = 'check=Check+availability&links=';
 - 					if (domain == 'hu')
 - 						loc = 'check=Kontrol%C3%A1lj&links=';
 - 					if (domain == 'pl')
 - 						loc = 'check=Sprawd%C5%BC+dost%C4%99pno%C5%9B%C4%87+plik%C3%B3w&links=';
 -  
 - 						
 - 					genBulkCheck.call({ 	links:			links,
 - 											apiUrl: 		'http://www.hellshare.' + domain + '/linkchecker?do=linkChecker-linkcheckerform-submit', 
 - 											postData: 		loc, 
 - 											resLinkRegex:	/hellshare\.(?:cz|com|sk|hu|pl)\/(?:[\w-\.]+\/|)([\w-\.]+\/\d{5,})/, 
 - 											resLiveRegex:	/OK" style="width:21px;height:20px;margin-right:10px;" \/><a href="http:\/\/download\.hellshare\.(?:cz|com|sk|hu|pl)\/(?:[\w-\.]+\/|)[\w-\.]+\/\d{5,}/g, 
 - 											resDeadRegex:	/<span style="color:gray">.*?<\/span> - <strong>/g, 
 - 											resUnavaRegex: 	null
 - 							});
 - 				}
 - 			});
 - 		}
 - 				
 - 		
 - 		/**
 - 		 * Displays check result
 - 		 * @param {Array} Array of links or link fragments.
 - 		 * @param {String} Check result status -> ['alive_link'|'adead_link'|'unava_link']
 - 		 */
 - 		function DisplayTheCheckedLinks(links, resultStatus)
 - 		{
 - 			//(a[href*=link_1], a[href*=link_2], ..., a[href*=link_n])
 - 			var $links = $('a[href*="' + links.join('"], a[href*="') + '"]');
 - 			
 - 			if (Do_not_linkify_DL_links)
 - 			{	//TODO into separate jQuery function
 - 				$links.replaceWith(function(){
 - 					return '<span href="' + this.href + '">' + $(this).text() + '</span>';
 - 				});
 - 				
 - 				$links = $('span[href*="' + links.join('"], span[href*="') + '"]');
 - 			}
 - 			
 - 			$links.removeClass().addClass(resultStatus);
 - 			$links.each(function() {
 - 				this.href = Ref_anonymize_service + $(this).attr("href");
 - 			});
 - 			
 - 			switch(resultStatus)
 - 			{
 - 				case "alive_link": 	cLinksAlive += $links.length; 
 - 									if (Display_tooltip_info) $links.mouseover(displayTooltipInfo);
 - 									break;
 - 				case "adead_link": 	cLinksDead += $links.length; 
 - 									if (Display_tooltip_info) $links.mouseover(displayTooltipError);
 - 									break;
 - 					case "prem_link": 	cLinksprem += $links.length; 
 - 					if (Display_tooltip_info) $links.mouseover(displayTooltipError);
 - 					break;
 - 				case "unava_link": 	cLinksUnava += $links.length; break;
 - 				default: 
 - 			}		
 - 			
 - 			cLinksProcessed += $links.length;
 - 		}
 - 	}
 - 	
 - 	// starts bulkchecking
 - 	//
 - 	// params
 - 	// filterId 	[string] restricts link detection with passed id attribute
 - 	function startBulkCheck(filterId)
 - 	{
 - 		var cHosts = bulkHosts.length;
 - 		
 - 		if (cHosts == 0) //no filehostings selected
 - 			return;		
 - 		
 - 		// STEP 1 linkify the links
 - 		var linkifyRegex = '';
 - 		var hostIdx = cHosts;
 - 		while(hostIdx--)
 - 		{
 - 			linkifyRegex += bulkHosts[hostIdx].linkRegex + "|";
 - 		}
 - 		linkifyRegex = linkifyRegex.replace(/\|$/, '');
 - 		linkify(linkifyRegex);
 - 		//		
 - 		
 - 		//STEP 2 detect link objects
 - 		var xpathAll = '';
 - 		
 - 		var hostIdx = cHosts;
 - 		while(hostIdx--)
 - 		{
 - 			xpathAll += bulkHosts[hostIdx].xpath + "|";
 - 		}	
 - 		
 - 		xpathAll = xpathAll.replace(/\]\|\/\/a\[/g, " or ");
 - 		xpathAll = xpathAll.replace(/\]\|/, ')]');
 - 				
 - 		if (filterId != null) //insert id restriction in the xpath
 - 		{
 - 			xpathAll = xpathAll.replace(/\[/, "[@class='" + filterId + "' and (");
 - 		}			
 - 		else
 - 		{
 - 			xpathAll = xpathAll.replace(/\[/, "[((not(@class)) or (@class!='alive_link' and @class!='adead_link' and @class!='unava_link')) and (");
 - 		}
 - 		
 - 		var links = document.evaluate(xpathAll, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 - 		
 - 		if (filterId == null)
 - 		{
 - 			cLinksTotal += links.snapshotLength;
 - 		}		
 - 		//
 - 		
 - 		//STEP 3 bind links with hostings 
 - 		var linkIdx = links.snapshotLength;
 - 		var href = null;
 - 		
 - 		if (linkIdx == 0) // no links found
 - 			return;
 - 		
 - 		var name;
 - 		while (linkIdx--)
 - 		{
 - 			href = links.snapshotItem(linkIdx).href; 
 - 			
 - 			try // DO NOT REMOVE, filters crap that went through xpath detection
 - 			{
 - 				name = gimmeHostName(href);
 - 				if (href.match(bulkHostNames[name].linkRegexObject) != null)
 - 					bulkHostNames[name].links.push(href);
 - 			}
 - 			catch(e)
 - 			{
 -  
 - 			}
 - 		}
 - 		//
 - 		
 - 		
 - 		//STEP 4 process the links for each filehosting
 - 		var hostIdx = cHosts;
 - 		var host;
 - 		var m,n;
 - 		var arr;
 - 				
 - 		while (hostIdx--)
 - 		{
 - 			host = bulkHosts[hostIdx];
 - 			arr = host.links;
 - 			
 - 			if (arr.length == 0) //no links for this hosting, skip
 - 			{
 - 				continue;
 - 			}
 - 			
 - 			//links match corrections
 - 			if (host.corrMatch != null)
 - 			{
 - 				var idx = arr.length;
 - 				while (idx--)
 - 				{
 - 					arr[idx] = arr[idx].match(host.corrMatch)[1];					
 - 				}
 - 			}
 - 			
 - 			//links replace corrections
 - 			if ((host.corrReplWhat != null) && (host.corrReplWith != null))
 - 			{
 - 				var idx = arr.length;
 - 				while (idx--)
 - 				{
 - 					arr[idx] = arr[idx].replace(host.corrReplWhat, host.corrReplWith);
 - 				}
 - 			}			
 - 			
 - 			m = arr.length;
 - 			n = host.blockSize;
 - 			if (m > n)
 - 			{
 - 				//insert block separators (RAND_STRING) into the array
 - 				for(var i = n; i < m; i += n + 1)
 - 				{
 - 					arr.splice(i, 0, RAND_STRING);
 - 				}
 - 			}	
 -  
 - 			
 - 			host.func.call({ 	links:			arr.join(host.splitSeparator).split(RAND_STRING),
 - 								apiUrl: 		host.apiUrl, 
 - 								postData: 		host.postData, 
 - 								resLinkRegex:	host.resLinkRegex, 
 - 								resLiveRegex:	host.resLiveRegex, 
 - 								resDeadRegex:	host.resDeadRegex, 
 - 								resUnavaRegex: 	host.resUnavaRegex
 - 							});		
 - 			
 - 			
 - 			//clean up
 - 			arr.length = 0;							
 - 		}		
 - 		//	
 -  
 -     function gimmeHostName(link)
 - 		{
 - 			return link.replace(/https?:\/\/.*?http(s)?:\/\//, "http$1://").match(/https?:\/\/(?:www\.|[\w\.])*?([\w-]+)\.(?:co\.uk|co\.nz|\w+)\//)[1];
 - 		}
 - 		
 - 	}
 - 	
 - 	
 - 	function checkLinks(filterId)
 - 	{
 - 		startBulkCheck(filterId);
 - 		start(filterId);
 - 	}
 -  
 - 	/**
 - 	 * Initialises progress box including event binding and CSS 
 - 	 */
 - 	function initProgressBox()
 - 	{
 - 		if ($("#warlc-progressbox").length > 0)
 - 			return;
 - 		
 - 		//progressbox css change size and color of progress box
 - 		GM_addStyle("#warlc-progressbox  {position:fixed; background:DimGray;" + Progress_box_background_color +
 - 					"; opacity:" + (Progress_box_opacity / 100) + 
 - 					"; bottom:" + Progress_box_pos_bottom +
 - 					"px; right:" + Progress_box_pos_right +
 - 					"px; padding:5px; font-size:20px; font-weight:bold; cursor:default;}\
 - 					\
 - 					.warlc-progressbar {text-align:center; color: DimGray; height:2px; margin-bottom:2px;}\
 - 					\
 - 					.warlc-progressitem {}\
 - 					\
 - 					.alive {color:#00FF7F; " + Live_links_color + 
 - 					"; background:transparent url(" + alive_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;} .dead {color:" + Dead_links_color +
 - 					"; background:transparent url(" + adead_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;} .unava {color: " + Temp_unavailable_links_color + 
 - 					"; background:transparent url(" + unava_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;} .processing {color:Black; " + Container_links_color +
 - 					"; background:transparent url(" + processing_link_gif + ") no-repeat scroll 100% 50%;padding-right:15px;} .prem {color:" + Premium_links_color +
 - 					"; background:transparent url(" + prem_link_png + ") no-repeat scroll 100% 50%;padding-right:15px;}"
 - 					);
 - 		//
 - 				
 - 		$('body').append('	<div id="warlc-progressbox">\
 - 							<div class="warlc-progressbar"></div>\
 - 							<span class="warlc-progressitem alive"></span> - \
 - 							<span class="warlc-progressitem dead"></span> - \
 - 							<span class="warlc-progressitem unava"></span> - \
 - 							<span class="warlc-progressitem prem"></span> - \
 - 							<span class="warlc-progressitem processing"></span>\
 - 							</div>');	
 - 		
 - 		$('#warlc-progressbox').hide().click(function(){
 - 												clearInterval(intervalId); 
 - 												$(this).hide(); 
 - 												return false;
 - 											});
 - 		
 - 		$(".warlc-progressbar").progressbar({complete: function(){
 - 												$(this).fadeOut();
 - 												clearInterval(intervalId); //stop refreshing the stats
 - 												} 
 - 											})
 - 								.one('progressbarchange', function(){$('#warlc-progressbox').show();});
 - 		
 - 	}
 - 	
 - 	/**
 - 	 * Updates progress data in progress box
 - 	 */
 - 	function updateProgress()
 - 	{
 - 		$("#warlc-progressbox").attr('aria-valuenow', Math.round(((100 / cLinksTotal) * cLinksProcessed)));
 - 		if (cLinksTotal) // some links were detected on page
 - 		{
 - 			var percProgress = Math.round(((100 / cLinksTotal) * cLinksProcessed));
 - 			var $progressItems = $('#warlc-progressbox > .warlc-progressitem');
 - 			
 - 			$(".warlc-progressbar").progressbar('option', 'value', percProgress);
 - 				
 - 						if ((cLinksTotal - cLinksProcessed) == 0)
 - 			{
 - 				$progressItems.first().text(cLinksAlive)
 - 							.next().text(cLinksDead)
 - 							.next().text(cLinksUnava)
 - 							.next().text(cLinksprem)
 - 							.next().remove();
 - 				$('#warlc-progressbox').html($('#warlc-progressbox').html().substr(0,$('#warlc-progressbox').html().lastIndexOf(">")+1));
 - 				$('#warlc-progressbox div:first-child').remove();
 - 			}
 - 			else
 - 			{
 - 				$progressItems.first().text(cLinksAlive)
 - 							.next().text(cLinksDead)
 - 							.next().text(cLinksUnava)
 - 							.next().text(cLinksprem)
 - 							.next().text(cLinksTotal - cLinksProcessed);
 - 			}			
 - 		}	
 - 	}
 - 	
 - 	
 -  
 - 	function check_all_links()
 - 	{
 - 		add_WARLC_style();
 -  
 - 		if (Show_progress_stats)
 - 		{
 - 			initProgressBox();			
 - 			intervalId = setInterval(function(){updateProgress();}, Progress_box_refresh_rate);
 - 		}
 -  
 - 		startBulkCheck(null);
 - 		start(null);
 -  
 - 		if (!containers_processed)
 - 		{
 - 			processContainers();
 - 		}
 - 		
 - 	}
 -  
 - 	//Copies all found dead links to clipboard - right now for Scriptish only
 - 	function copy_dead_to_clipboard()
 - 	{
 - 		initClipBoardTools();
 -  
 - 		var deadlinksxpath = "//.[@class='adead_link']";
 -  
 - 		var foundlinks = document.evaluate(deadlinksxpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 - 		var foundlinkstext = '';
 -  
 - 		var foundlinkIdx = foundlinks.snapshotLength;
 -  
 - 		while(foundlinkIdx--)
 - 		{
 - 			if (foundlinks.snapshotItem(foundlinkIdx).innerHTML != ' x')
 - 				foundlinkstext += foundlinks.snapshotItem(foundlinkIdx).innerHTML.replace(/\[\/hide:\w+\]/,"") + '\n';
 - 		}
 -  
 - 		unsafeWindow.copyToClipboard(foundlinkstext);
 - 	}
 -  
 - 	function toggle_autocheck()
 - 	{
 - 		var currentState = GM_getValue("Autocheck", false);
 - 		GM_setValue("Autocheck", !currentState);
 -  
 - 		if (currentState == true)
 - 		{
 - 			sendMessage('Autocheck disabled', 'red');
 - 		}
 - 		else
 - 		{
 - 			sendMessage('Autocheck enabled', 'SpringGreen');
 - 		}
 - 	}
 - 	
 - 	function toggle_Enable_Anonymizer()
 - 	{
 - 		var currentState = GM_getValue("Enable_Anonymizer", false);
 - 		GM_setValue("Enable_Anonymizer", !currentState);
 -  
 - 		if (currentState == true)
 - 		{
 - 			GM_setValue("Ref_anonymize_service", "");
 - 			sendMessage('Anonymizer Disabled', 'red');
 - 		}
 - 		else
 - 		{
 - 			GM_setValue("Ref_anonymize_service", "http://hiderefer.com/?");
 - 			sendMessage('Anonymizer Enabled', 'SpringGreen');
 - 		}
 - 	}	
 -  
 - 	function KeyDownHandler(event)
 - 	{
 - 		var kcode = (event.keyCode) ? event.keyCode : event.which;
 - 		if (event.ctrlKey && event.altKey)
 - 		{
 - 			switch(kcode)
 - 			{
 - 				case 65 : check_all_links(); break;
 - 				case 67 : configuration(); break;
 - 				case 68 : copy_dead_to_clipboard(); break;
 - 				case 87 : toggle_autocheck(); break;
 - 				case 90 : toggle_Enable_Anonymizer(); break;
 - 			}
 - 		}
 - 	}
 -  
 - 	//
 - 	//
 - 	//   SCRIPT EXECUTION START POINT
 - 	//
 - 	//
 - 	
 - 	// Safari specific GM_getResourceText override
 - 	if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) 
 - 	{
 - 		GM_getResourceText = function(res) {
 - 			var $cssText = GM_getValue("jquery_css", "");
 - 			
 - 			if ($cssText == "")
 - 			{
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: 'GET',
 - 					url: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css',
 - 					onload: function (result)
 - 					{
 - 						GM_setValue("jquery_css", result.responseText);
 - 						window.location.reload();
 - 					}
 - 				});
 - 			}
 - 			else
 - 			{
 - 				return $cssText;
 - 			}	
 - 		}
 - 	}
 - 	
 - 	var jQueryUICSS = GM_getResourceText("jQueryUICSS");
 - 	GM_addStyle(jQueryUICSS);
 - 	
 - 	//init the stuff
 - 	setVariables();
 - 	initBulkCheck();
 - 	
 - 	//init info boxes
 - 	messageBox.style.position = 'fixed';
 - 	messageBox.style.top = '20px';
 - 	messageBox.style.left = '10px';
 - 	messageBox.style.opacity = '0.85';
 - 	messageBox.style.background = 'DimGray';
 - 	messageBox.style.fontSize = '36px';
 - 	document.body.appendChild(messageBox);
 -  
 - 	//register GM menu commands & keyboard shortcut event handler
 - 	if (Keyboard_functions)
 - 	{
 - 		$(document).keydown(KeyDownHandler);
 - 		GM_registerMenuCommand("[W.A.R. Links Checker] Configuration  (" + first_key_keycodename + "+" + second_key_keycodename + "+" + String.fromCharCode(CONFIGURATION_KEYCODE) + ")", configuration);
 - 		GM_registerMenuCommand("[W.A.R. Links Checker] Check The Links In This Page (" + first_key_keycodename + "+" + second_key_keycodename + "+" + String.fromCharCode(CHECK_ALL_LINKS_KEYCODE) + ")", check_all_links);
 - 	}
 - 	else
 - 	{
 - 		GM_registerMenuCommand("[W.A.R. Links Checker] Configuration", configuration);
 - 		GM_registerMenuCommand("[W.A.R. Links Checker] Check The Links In This Page", check_all_links);
 - 	}
 -  
 - 	//start linkchecking
 - 	if (Autocheck)
 - 	{
 - 		$(document).ready(check_all_links);
 - 	}
 -  
 - 	//
 - 	//
 - 	//   SCRIPT EXECUTION END POINT
 - 	//
 - 	//
 -  
 - 	//shows configuration box
 - 	function configuration()
 - 	{
 -  
 - 		//prevent multiple creating of config window
 - 		if ($("#hideshow").length)
 - 		{
 - 			$("#hideshow").show();
 - 			return;
 - 		}
 -  
 - 		var configcss = '\
 - 		.popup_block .popup fieldset{\
 - 		   padding: 1%;\
 - 		   border-style: solid;\
 - 		   border-width: 1px;\
 - 		   border-color: gray;\
 - 		   margin-bottom: 1px;\
 - 		}\
 - 		#h3hideshowtitle{\
 - 		 font-size: 2em;\
 - 		}\
 - 		#h3hideshow{\
 - 		 font-size: 1.5em;\
 - 		}\
 - 		#imghideshow {\
 - 		 border: none;\
 - 		}\
 - 		#plusimage{\
 - 			display:inline;\
 - 			}\
 - 		#hideshow {\
 - 		 position: fixed;\
 - 		 width: 100%;\
 - 		 height: 100%;\
 - 		 top: 0;\
 - 		 left: 0;\
 - 		 font-size:12px;\
 - 		 z-index:2147483645;\
 - 		 text-align:left;\
 - 		}\
 - 		#fade {\
 - 		 background: #000;\
 - 		 position: fixed;\
 - 		 width: 100%;\
 - 		 height: 100%;\
 - 		 opacity: .80;\
 - 		 -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";\
 - 		 left: 0;\
 - 		 z-index: 10;\
 - 		}\
 - 		.popup_block {\
 - 		 font-family:verdana;\
 - 		 color:black;\
 - 		 background: #ddd;\
 - 		 padding: 10px 20px;\
 - 		 border: 2px solid DarkOrange;\
 - 		 float: left;\
 - 		 width: 700px;\
 - 		 position: absolute;\
 - 		 top: 7%;\
 - 		 left: 50%;\
 - 		 bottom: 7%;\
 - 		 margin: 0 0 0 -350px;\
 - 		 -moz-border-radius:10px;\
 - 		 z-index: 100;\
 - 		\
 - 		}\
 - 		.popup_block .popup {\
 - 		 float: left;\
 - 		 width: 100%;\
 - 		 background: #fff;\
 - 		 margin: 10px 0;\
 - 		 padding: 0px 0 0px;\
 - 		 border-left: 1px solid #bbb;\
 - 		 border-top: 1px solid #bbb;\
 - 		 border-right: 1px solid #bbb;\
 - 		}\
 - 		#h3hideshow{\
 - 		 margin: 1px 0 0px;\
 - 		 padding: 1px 10px;\
 - 		 border-bottom: 1px solid #bbb;\
 - 		 font-size: 1.5em;\
 - 		 font-weight: normal;\
 - 		 cursor:pointer;\
 - 		 background:#DDDDDD none repeat scroll 0 0;\
 - 		}\
 - 		#h3hideshow:hover{\
 - 		background:#C0BEBE none repeat scroll 0 0;\
 - 		}\
 - 		#h3hideshowtitle{\
 - 		 margin: 2px 0 0px;\
 - 		 padding: 7px 10px;\
 - 		 border-bottom: 1px solid #bbb;\
 - 		 font-size: 1.5em;\
 - 		 font-weight: normal;\
 - 		}\
 - 		.popup_block .popup a {\
 - 		 color:DarkSkyBlue;\
 - 		 text-decoration:none;\
 - 		}\
 - 		.popup p {\
 - 		 padding: 1px 10px;\
 - 		 margin: 0px 0;\
 - 		 -x-system-font:none;\
 - 		 font-family:verdana,geneva,lucida,"lucida grande",arial,helvetica,sans-serif;\
 - 		 font-size:10pt;\
 - 		 font-size-adjust:none;\
 - 		 font-stretch:normal;\
 - 		 font-style:normal;\
 - 		 font-variant:normal;\
 - 		 font-weight:normal;\
 - 		 line-height:normal;\
 - 		}\
 - 		#sites {\
 - 		 padding: 1px 10px;\
 - 		 margin: 0px 0;display:inline-block;width:16em;\
 - 		}\
 - 		#dev_ver {\
 - 		 color: #00FF00;\
 - 		 background: Black;\
 - 		 text-align: right;\
 - 		}\
 - 		#sites_suspended {\
 - 		 padding: 1px 10px;\
 - 		 margin: 0px 0;display:inline-block;width:16em;\
 - 		 text-decoration: line-through;\
 - 		}\
 - 		.popup img.cntrl {\
 - 		 position: absolute;\
 - 		 right: -15px;\
 - 		 top: -15px;\
 - 		}\
 - 		#bulk {\
 - 			font-size:8pt;\
 - 			color:orange;\
 - 			padding: 1px 10px;\
 - 			margin: 0px 0;\
 - 			display:inline-block;\
 - 			width:100px;\
 - 		}\
 - 		#note {\
 - 			font-size:7pt;\
 - 			color:gray;\
 - 			padding: 1px 10px;\
 - 			margin: 0px 0;display:inline-block;\
 - 			min-width:100px;\
 - 		}\
 - 		#rednote {\
 - 			font-size:7pt;\
 - 			color:red;\
 - 			padding: 1px 10px;\
 - 			margin: 0px 0;display:inline-block;\
 - 		}\
 - 		#configinfo {\
 - 			font-size:8pt;\
 - 			color:gray;\
 - 			padding: 1px 10px;\
 - 			margin: 0px 0;display:inline-block;width:60em;\
 - 		}\
 - 		#refAnonymizer, #inputColorLive, #inputColorprem, #hostSearchBox2, #hostSearchBox, #inputColorDead, #inputColorTemp, #inputColorCont, #selectAllButton, #selectNoneButton, #invertButton, #selectAllButton2, #selectNoneButton2, #invertButton2 {\
 - 			color:black;\
 - 			border-style: solid;\
 - 			border-width: 1px;\
 - 			border-color: gray;\
 - 		}\
 - 		#h3hideshowcontent {\
 - 		min-height:220px;\
 - 		max-height:220px;\
 - overflow:auto;\
 - 		 display: none;\
 - 		 padding: 10px 10px;\
 - 		}\
 - 		#specinfo{\
 - 		font-size:14px;\
 - 		}\
 - 		.warlc-ui-tab {\
 - 		height:300px;\
 - 		overflow:auto;\
 - 		}\
 - 		#warlcsitelist2, #warlcsitelist1 {\
 - 		height:220px;\
 - 		border-top: 1px solid #ddd;\
 - 		padding-top: 5px;\
 - 		overflow:auto;\
 - 		}\
 - 		input:hover+label {\
 - 		background:#F1F77C;\
 - 		font-size:110%;\
 - 		}\
 - 		';
 -  
 - 		GM_addStyle(configcss);
 -  
 - 		var customRulesRefHTML = 
 - 		'\
 - 		<br>\
 - 		A custom rule consists of <b>commands</b>. A command must be on its own line and in this form:<br>\
 - 		<b>@keyword</b> <i>parameter</i>\
 - 		<br><br>\
 - 		Empty lines, lines containing only whitespace and lines starting with // are ignored. Whitespace before and after a keyword is also ignored. Keywords are not case sensitive. \
 - 		<br><br>\
 - 		A special type of keyword is <b>@customrule</b> and its forms. This command marks the start of a new rule definition and also the rule type.\
 - 		Its <i>parameter</i> is the name of the rule. The name can contain letters, digits, periods, dashes and underscores and can be up to 30 characters long.\
 - 		At this point, there are no other restrictions for rule naming, however, in future versions, the name can be used to identify and catalogize custom rules.\
 - 		Therefore it is strongly recommended to use host names like <i>example.com</i> or <i>filehost.co.uk</i>. If the name is invalid, previous rule is saved,\
 - 		but all commands until the next valid @customrule are ignored.<br><br>\
 - 		Available forms and types:\
 - 		<ul>\
 - 		<li><b>@customrule</b> <i>name</i> - Classic checking. To determine whether a link is alive or dead, it is loaded and searched for specific patterns.\
 - 		<li><b>@customrule_headers</b> <i>name</i> - Only headers are loaded. Use for direct download hosts (e.g. if you are a paying member), where classic checking would silently download the whole file.\
 - 		<li><b>@customrule_obsolete</b> <i>name</i> - Nothing is loaded and no search patterns are needed. Links matching this rule are immediately deemed dead.\
 - 		<li><b>@#customrule</b>\, <b>@#customrule_headers</b>\, <b>@#customrule_obsolete</b> - write # after @ to quickly disable the whole rule. It is still parsed and checked for errors, but not used.\
 - 		</ul>\
 - 		Other available commands:<br>\
 - 		(Note: There can be more than 1 (up to 10) of these commands per rule. In that case, any of them will work.)\
 - 		<ul>\
 - 		<li><b>@baseurl</b> <i>url_pattern</i> - required. Used to find links for the rule. <i>url_pattern</i> must be the constant part of the url before, including and after the first slash.\
 - 			It can also specify multiple (up to 10) Top Level Domains (.com, .net etc.)<br>\
 - 			<ul>examples:<br>\
 - 			<li>good: <i>filehost.com/download/</i><br>\
 - 			<li>good: <i>download.filehost.net/?d=</i><br>\
 - 			<li>good: <i>filehost. com net co.uk /</i> - multiple TLDs (note the spaces before, between and after TLDs)<br>\
 - 			<li>ok: <i>filehost.com/</i> - works, but will also find links like filehost.com/login etc. Sometimes it\'s unavoidable though.<br>\
 - 			<li>bad: <i>d8523.filehost.com/</i> - d8523 probably is not constant<br>\
 - 			<li>bad: <i>filehost.com/3bfiq5d1</i> - 3bfiq5d1 probably is not constant<br>\
 - 			<li>bad: <i>filehost.com</i> - no slash<br>\
 - 			</ul>\
 - 		\
 - 		<li><b>@alivematch</b> <i>pattern</i> - ignored for type OBSOLETE, required for others. If <i>pattern</i> is found in the server\'s response, the link is deemed alive.\
 - 			Two or more spaces in the pattern will match any whitespace (spaces, tabulators, newlines). <i><div>  <p></i> will match \
 - 			<div>       <p> even if there are new lines, tabulators etc.\
 - 		<li><b>@deadmatch</b> <i>pattern</i> - ignored for OBSOLETE, required for others. (For HEADERS some servers return 404 Error \
 - 			which is automatically used to deem the link dead and therefore <i>pattern</i> is never used. In that case, just write some rubbish there.)\
 - 			Two spaces again match any whitespace.\
 - 		<li><b>@unavamatch</b> <i>pattern</i> - optional, ignored for OBSOLETE and HEADERS. If found, the link is deemed temporarily unavailable.\
 - 			Two spaces again match any whitespace.\
 - 		<li><b>@alivelink</b> <i>url</i> - optional, ignored for OBSOLETE. It\'s not really a part of the rule, it\'s just an example link to test the rule. \
 - 		<li><b>@deadlink</b> <i>url</i> - optional. Example dead link.\
 - 		</ul>\
 - 		\
 - 		';
 -  
 - 		//close image and css taken from = http://www.sohtanaka.com/web-design/examples/css-popup    icon_close.png;
 - 		var configurationinnerHTML = 
 - 		'<div id="fade"></div>\
 - 		<div class="popup_block">\
 - 			<div class="popup">\
 - 				<a href="#"><img id="imghideshow" title="Close" class="cntrl" src="data:image/png;base64,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%3D%3D"/></a>\
 - 			<div id="h3hideshowtitle"><img style="height:1.2em;" src="data:image/png;base64,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"></img> W.A.R. Links Checker Customized Premium Link version Configuration</div>\
 - 			<div id="warlc-conf-tabs">\
 - 				<ul>\
 - 					<li><a href="#tabs-1">Filehostings</a></li>\
 - 					<li><a href="#tabs-2">Containers</a></li>\
 - 					<li><a href="#tabs-5">Custom rules</a></li>\
 - 					<li><a href="#tabs-3">Settings</a></li>\
 - 					<li><a href="#tabs-4">About</a></li>\
 - 				</ul>\
 - 				<div id="tabs-1" class="warlc-ui-tab">\
 - 					<div class="warlc-ui-buttonset">\
 - 						<input type="button" class="warlc-ui-select-all" value="Select All">\
 - 						<input type="button" class="warlc-ui-select-none" value="Select None">\
 - 						<input type="button" class="warlc-ui-select-invert" value="Invert">\
 - 					</div><br>\
 - 					<div>Search: <input type="textbox" id="hostSearchBox" value=""></div><br>\
 - 					<div id="warlcsitelist1"><span>Empty</span></div>\
 - 				</div>\
 - 				<div id="tabs-2" class="warlc-ui-tab">\
 - 					<div class="warlc-ui-buttonset">\
 - 						<input type="button" class="warlc-ui-select-all" value="Select All">\
 - 						<input type="button" class="warlc-ui-select-none" value="Select None">\
 - 						<input type="button" class="warlc-ui-select-invert" value="Invert">\
 - 					</div><br>\
 - 					<div>Search: <input type="textbox" id="hostSearchBox2" value=""></div><br>\
 - 					<div id="warlcsitelist2"><span>Empty</span></div>\
 - 				</div>\
 - 				<div id="tabs-5" class="warlc-ui-tab">\
 - 					<div class="warlcsettings">\
 - 					<fieldset><input type="checkbox" id="Custom_rules"> Enable custom rules <div id="bulk">EXPERIMENTAL</div></fieldset>\
 - 					<br>\
 - 					<div>Edit custom rules: \
 - 						<a href="#" id="showCustomRulesReference">(<b>Click here to show/hide the reference</b>)</a>\
 - 						<div id="customRulesReference" style="display:none;">'
 - 							+ customRulesRefHTML + '\
 - 						</div>\
 - 						<textarea style="width:100%;height:200px;" id="Custom_rules_text"></textarea>\
 - 						</div>\
 - 					</div>\
 - 				</div>\
 - 				<div id="tabs-3" class="warlc-ui-tab">\
 - 					<div class="warlcsettings">\
 - 					<fieldset>\
 - 					<p><input type="checkbox" id="Keyboard_functions"> Enable keyboard shortcuts</p>\
 - 					<div id="configinfo">' + first_key_keycodename + '+' + second_key_keycodename + '+' + CONFIGURATION_KEY + ' = Configuration <br/>' + first_key_keycodename + '+' + second_key_keycodename + '+' + CHECK_ALL_LINKS_KEY + ' = Check all the links' + '<br/>' + first_key_keycodename + '+' + second_key_keycodename + '+' + copy_to_dead_key + ' = Copy found dead links to clipboard' + '<br/>' + first_key_keycodename + '+' + second_key_keycodename + '+' + toggle_autocheck_key + ' = Autocheck ON/OFF' + '<br/>' + first_key_keycodename + '+' + second_key_keycodename + '+' +  toggle_Enable_Anonymizer_key + ' = Anonymizer ON/OFF' + '</div>\
 - 					</fieldset>\
 - 					<fieldset>\
 - 					<p><input type="checkbox" id="Color_DL_links"> Color DL links</p>\
 - 					<div id="sites"><label for="inputColorLive">Live links color</label><input type="text" id="inputColorLive" style="background:' + Live_links_color + ';" value="' + Live_links_color + '"></div>\
 - 					<div id="sites"><label for="inputColorDead">Dead links color</label><input type="text" id="inputColorDead" style="background:' + Dead_links_color + ';" value="' + Dead_links_color + '"></div><br>\
 - 					<div id="sites"><label for="inputColorTemp">Temp. unavailable</label><input type="text" id="inputColorTemp" style="background:' + Temp_unavailable_links_color + ';" value="' + Temp_unavailable_links_color + '"></div>\
 - 					<div id="sites"><label for="inputColorCont">Container links color</label><input type="text" id="inputColorCont" style="background:' + Container_links_color + ';" value="' + Container_links_color + '"></div><br>\
 - 					<div id="sites"><label for="inputColorprem">Premium links color</label><input type="text" id="inputColorprem" style="background:' + Premium_links_color + ';" value="' + Premium_links_color + '"></div>\
 - 					<div id="configinfo">For no color leave a field blank.<br>Standard HTML color names are supported. See <a href="http://www.w3schools.com/html/html_colornames.asp">w3schools.com</a> for more info.</div><br>\
 - 					<p><input type="checkbox" id="Show_line_through_in_dead_links"> Show line through in dead links</p>\
 - 					<p><input type="checkbox" id="Show_black_background_in_DL_links"> Show black background in DL links</p>\
 - 					<p><input type="checkbox" id="Do_not_linkify_DL_links"> Do NOT linkify DL links</p>\
 - 					<p><input type="checkbox" id="Allow_spaces_in_DL_links"> Allow spaces in DL links<br><div id="configinfo">Note: All links must end with a new line!</div></p>\
 - 					<p><input type="checkbox" id="Display_full_links_in_link_containers"> Display full links in link containers</p><br>\
 - 					<fieldset>\
 - 					<p><input type="radio" name="warlciconset" value="0"> No icons</p>\
 - 					<p><input type="radio" name="warlciconset" value="1"> <img src=" ' + PAW_ICON_GREEN + '"> <img src=" ' + PAW_ICON_RED + '"> <img src=" ' + PAW_ICON_YELLOW + '"> <img src=" ' + PAW_ICON_PINK + '"></p>\
 - 					<p><input type="radio" name="warlciconset" value="2"> <img src=" ' + RSLC_ICON_GREEN + '"> <img src=" ' + RSLC_ICON_RED + '"> <img src=" ' + RSLC_ICON_YELLOW + '"> <img src=" ' + RSLC_ICON_PINK + '"></p>\
 - 					<p><input type="radio" name="warlciconset" value="3"> <img src=" ' + NEW_ICON_GREEN + '"> <img src=" ' + NEW_ICON_RED + '"> <img src=" ' + NEW_ICON_YELLOW + '"> <img src=" ' + NEW_ICON_PINK + '"></p>\
 - 					</fieldset>\
 - 					</fieldset>\
 - 					<fieldset>\
 - 					<div id="sites"><input type="checkbox" id="Autocheck"> Autocheck</div><br><div id="configinfo">Script starts check automatically.</div><br>\
 - 					</fieldset>\
 - 					<fieldset>\
 - 					<div id="sites"><input type="checkbox" id="Show_progress_stats"> Show progress stats</div><br>\
 - 					</fieldset>\
 - 					<fieldset>\
 - 					<div id="sites"><input type="checkbox" id="Display_tooltip_info"> Display tooltip info</div><div id="bulk"></div><br><div id="configinfo">Note: File name, file size, error messages etc.</div><br>\
 - 					</fieldset>\
 - 					<fieldset>\
 - 					<p><input type="checkbox" id="Enable_Anonymizer"> Enable Anonymizer</div><div id="bulk">EXPERIMENTAL Note: Checkbox does not work use CTRL+ALT+Z.</p>\
 - 					<div id="sites"><label for="refAnonymizer">Refererer anonymizing service</label><input type="text" id="refAnonymizer" value="' + Ref_anonymize_service + '"></div>\
 - 					</fieldset>\
 - 					</div>\
 - 				</div>\
 - 				<div id="tabs-4" class="warlc-ui-tab">\
 - 					<p><b>Author:</b> <a href="http://www.warlc.5gbfree.com/viewtopic.php?f=12&t=12">mental</a></p>\
 - 					<br />\
 - 					<p><b>Currently supported:</b><br>\
 - 					Filehostings: ' + allHostNames.length + '<br />\
 - 					Containers: ' + allContainerNames.length + '<br />\
 - 					Obsolete sites: ' + allObsoleteNames.length + '<br /></p>\
 - 					<br />\
 - 					<p><b>Based on:</b><br>\
 - 					<a href="http://userscripts-mirror.org/scripts/show/125631.html">W.A.R. Links Checker - Dev</a></p>\
 - 					<br />\
 - 					<p><b>Uses:</b></p>\
 - 					<p>adam_3\'s <a href="http://userscripts-mirror.org/scripts/show/2254">Linkify ting</a> (modified)</p>\
 - 					<p><a href="http://jquery.com/">jQuery</a> JavaScript Library</p>\
 - 					<br />\
 - 					<p>License: GPL version 3 or any later version (<a href="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</a>)</p>\
 - 				</div>\
 - 			</div>\
 - 		</div>\
 - 		</div>';
 - 		
 - 		$('body').append('<div id="hideshow">' + configurationinnerHTML + '</div>');
 - 		
 - 		$("#warlc-conf-tabs").tabs({ fx: { opacity: 'toggle', duration: 'fast' } });
 - 		
 - 		$("#imghideshow").click(function(event){$("#hideshow").hide(); event.preventDefault();});
 - 				
 - 		var elmHostList = document.getElementById("warlcsitelist1");
 - 		var elmContainerList = document.getElementById("warlcsitelist2");
 - 		
 - 		buildSettings();
 - 		buildSitelist("", allHostNames, elmHostList);
 - 		buildSitelist("", allContainerNames, elmContainerList);
 - 			
 - 		if (DEBUG_MODE)
 - 		{
 - 			//log all sites availability status
 - 			diagSites();
 - 		}
 - 			
 - 		//handler for checkbox state change
 - 		function changeConfiguration(e)
 - 		{
 - 			var element = e.target;
 -  
 - 			if (element.type == 'checkbox')
 - 			{
 - 				if (element.checked == 1)
 - 				{
 - 					GM_setValue(element.id, true);
 - 				}
 - 				else
 - 				{
 - 					GM_setValue(element.id, false);
 - 				}
 -  
 - 			}
 - 			setVariables();
 - 		}
 -  
 - 		//Selects all filehosting checkboxes
 - 		function selectAll()
 - 		{
 - 			$(":checkbox:visible:not(:checked)").prop("checked",true)
 - 						 .each(function(index, element){GM_setValue(this.id, true)});
 - 		}
 -  
 - 		//Deselects all filehosting checkboxes
 - 		function selectNone()
 - 		{
 - 			$(":checkbox:visible:checked").prop("checked",false)
 - 						 .each(function(index, element){GM_setValue(this.id, false)});
 - 		}
 -  
 - 		//Inverts filehosting checkboxes selection
 - 		function selectInvert()
 - 		{
 - 			var $checked = $(":checkbox:visible:checked");
 - 			var $unchecked = $(":checkbox:visible:not(:checked)");
 - 			
 - 			$unchecked.prop("checked",true)
 - 						 .each(function(index, element){GM_setValue(this.id, true)});
 - 			$checked.prop("checked",false)
 - 						 .each(function(index, element){GM_setValue(this.id, false)});
 - 		}
 - 		
 - 		//toggles anonymizer on off
 - 		function Enable_Anonymizer()
 - 		{
 - 			var $checked = $(":checkbox:visible:checked");
 - 			var $unchecked = $(":checkbox:visible:not(:checked)");
 - 			
 - 			$unchecked.prop("checked",true)
 - 						 .each(function(index, element){GM_setValue(this.id, true)});
 - 			$checked.prop("checked",false)
 - 						 .each(function(index, element){GM_setValue(this.id, false)});
 - 		 
 - 		}
 -  
 - 		function changeRefAnonymizer(){
 - 			GM_setValue("Ref_anonymize_service", $("#refAnonymizer").attr("value"));
 - 		}
 -  
 - 		
 - 		//Sets live links color
 - 		function changeColorLive()
 - 		{
 - 			var inColorLive = document.getElementById("inputColorLive");
 - 			inColorLive.style.background = inColorLive.value;
 - 			GM_setValue("Live_links_color", inColorLive.value);
 - 		}
 -  
 - 		//Sets dead links color
 - 		function changeColorDead()
 - 		{
 - 			var inColorDead = document.getElementById("inputColorDead");
 - 			inColorDead.style.background = inColorDead.value;
 - 			GM_setValue("Dead_links_color", inColorDead.value);
 - 		}
 -  
 - 		//Sets temp. unavailable links color
 - 		function changeColorTemp()
 - 		{
 - 			var inColorTemp = document.getElementById("inputColorTemp");
 - 			inColorTemp.style.background = inColorTemp.value;
 - 			GM_setValue("Temp_unavailable_links_color", inColorTemp.value);
 - 		}
 -  
 - 		//Sets temp. unavailable links color
 - 		function changeColorCont()
 - 		{
 - 			var inColorCont = document.getElementById("inputColorCont");
 - 			inColorCont.style.background = inColorCont.value;
 - 			GM_setValue("Container_links_color", inColorCont.value);
 - 		}
 - 		
 - 		//Sets premium. links color
 - 		function changeColorprem()
 - 		{
 - 			var inColorprem = document.getElementById("inputColorprem");
 - 			inColorprem.style.background = inColorprem.value;
 - 			GM_setValue("Premium_links_color", inColorprem.value);
 - 		}
 -  
 - 		//Diagnose sites for availability
 - 		function diagSites()
 - 		{
 - 			var boxes = document.getElementById("warlcsitelist1").getElementsByTagName("input");
 -  
 - 			for (var i = 0, n = boxes.length - 1; i < n; i++)
 - 			{
 - 				if (boxes[i].type == "checkbox")
 - 				{
 - 					checkAvailability(boxes[i]);
 - 				}
 - 			}
 -  
 - 			boxes = document.getElementById("warlcsitelist2").getElementsByTagName("input");
 -  
 - 			for (var i = 0, n = boxes.length - 1; i < n; i++)
 - 			{
 - 				if (boxes[i].type == "checkbox")
 - 				{
 - 					checkAvailability(boxes[i]);
 - 				}
 - 			}
 -  
 - 			function checkAvailability(cbElm)
 - 			{
 - 				var cb = cbElm;				
 - 				
 - 				GM_xmlhttpRequest(
 - 				{
 - 					method: 'HEAD',
 - 					url: 'http://' + cb.nextSibling.textContent.replace(' ', ''),
 - 					headers: {
 - 						'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 						'Accept': 'text/xml',
 - 						'Referer': ""
 - 					},
 - 					onload: function (result)
 - 					{
 - 						if (result.status != 200)
 - 						{
 - 							GM_log(cb.nextSibling.textContent + ' --- status: [' + result.status + '] ' + result.statusText + ', final url: ' + result.finalUrl);
 - 						}
 - 					},
 - 					onerror: function (result)
 - 					{
 - 						if (result.status != 200)
 - 						{
 - 							GM_log(cb.nextSibling.textContent + ' --- status: [' + result.status + '] ' + result.statusText + ', final url: ' + result.finalUrl);  
 - 						}
 - 					}
 - 				});
 - 			}
 - 		}
 - 		
 - 		function buildSettings()
 - 		{
 - 			$(".warlcsettings :checkbox").each(function(){
 - 				$(this).prop("checked", GM_getValue($(this).attr("id")))
 - 					.click(function(e){
 - 						GM_setValue($(this).attr("id"), $(this).prop("checked"));
 - 						setVariables();
 - 					});				
 - 			})
 - 		}
 - 		
 - 		//Dynamic build of host list
 - 		//param search 		[string]	searches for hostnames matching search substring 
 - 		//param siteNames 	[array]		array of site names
 - 		//param targetNode 	[DOM Node]	where the list should be built
 - 		//								first child node is replaced
 - 		function buildSitelist(search, siteNames, targetNode)
 - 		{
 - 			var searchRegex = new RegExp("\\|?([\\w\\.-]*" + search.replace(/\./g,"\\.").replace(/-/g, "\\-") + "[\\w\\.-]*)\\|?", "i");
 - 			
 - 			var $targetNode = $(targetNode).empty();
 - 			
 - 			var searchedSite = "";
 - 			$.each(siteNames, function(i, site){
 - 				if (searchedSite = site.match(searchRegex))
 - 				{
 - 					var baseSite = site.replace(/\|.+/, ""); //filehosting main domain
 - 					
 - 					//ensuring backward compatibility with the rest of code, to be refactored later
 - 					var oldRSLCvalue = "Check_" + baseSite.replace(/\|.+/, "").replace(/\./g,"_dot_").replace(/-/g, "_dash_") + "_links";
 - 					//
 - 										
 - 					$targetNode.append('<input type="checkbox" id="' + oldRSLCvalue +'" />\
 - 						<label for="' + oldRSLCvalue + '">' + searchedSite[1] + '</label>' +
 - 						((searchedSite[1] != baseSite) ? ('<div id="note"> ( ~ ' + baseSite + ' )</div>') : (""))
 - 						);
 - 					
 - 					$("#" + oldRSLCvalue).prop("checked", GM_getValue(oldRSLCvalue, false))
 - 										.change(changeConfiguration);
 - 										
 - 					$targetNode.append('<br />');
 - 				}
 - 			});
 - 			
 - 			$targetNode.append("<hr>");
 - 			
 - 			//obsolete hosts checkbox
 - 			$targetNode.append('<input type="checkbox" id="Obsolete_file_hosts" /><label for="Obsolete_file_hosts">Obsolete file hosts</label>');		
 - 			$("#Obsolete_file_hosts").prop("checked", GM_getValue("Obsolete_file_hosts", false))
 - 									.change(changeConfiguration);
 - 			
 - 			$targetNode.append('<br />');
 - 			
 - 			var foundName = "";
 - 			$.each(allObsoleteNames, function(i, site){
 - 				if (foundName = allObsoleteNames[i].match(searchRegex))
 - 				{
 - 					$targetNode.append('<div id="note">' + foundName[1] + '</div>');
 - 				}
 - 			})
 - 			
 - 		}
 - 		
 - 		var hostSearchBox = document.getElementById("hostSearchBox");
 - 		hostSearchBox.addEventListener('keyup', function(){buildSitelist(hostSearchBox.value, allHostNames, elmHostList);}, false);		
 - 		
 - 		var hostSearchBox2 = document.getElementById("hostSearchBox2");
 - 		hostSearchBox2.addEventListener('keyup', function(){buildSitelist(hostSearchBox2.value, allContainerNames, elmContainerList);}, false);		
 - 				
 - 		$(".warlc-ui-select-all").click(selectAll).button();
 - 		$(".warlc-ui-select-none").click(selectNone).button();
 - 		$(".warlc-ui-select-invert").click(selectInvert).button();
 - 		
 - 		$(".warlc-ui-buttonset").buttonset();
 - 		
 - 		var inColorLive = document.getElementById("inputColorLive");
 - 		inColorLive.addEventListener('keyup', changeColorLive, false);
 -  
 - 		var inColorDead = document.getElementById("inputColorDead");
 - 		inColorDead.addEventListener('keyup', changeColorDead, false);
 -  
 - 		var inColorTemp = document.getElementById("inputColorTemp");
 - 		inColorTemp.addEventListener('keyup', changeColorTemp, false);
 -  
 - 		var inColorCont = document.getElementById("inputColorCont");
 - 		inColorCont.addEventListener('keyup', changeColorCont, false);
 - 		
 - 		var inColorprem = document.getElementById("inputColorprem");
 - 		inColorprem.addEventListener('keyup', changeColorprem, false);
 - 		
 - 		
 - 		$("#refAnonymizer").change(changeRefAnonymizer);
 - 		//buttons and edit boxes init end
 -  
 - 		//icon sets radio buttons
 - 		var radioButtons = document.getElementsByName("warlciconset");
 - 		radioButtons[Icon_set].checked = "checked";
 -  
 - 		radioButtons[0].addEventListener("change", updateIconSet);
 - 		radioButtons[1].addEventListener("change", updateIconSet);
 - 		radioButtons[2].addEventListener("change", updateIconSet);
 - 		radioButtons[3].addEventListener("change", updateIconSet);
 - 		
 - 		function updateIconSet()
 - 		{
 - 			GM_setValue("Icon_set", this.value * 1);
 - 		}
 - 		//		
 - 		
 - 		
 - 		
 - 		$('#showCustomRulesReference').click(function(e){
 - 			e.preventDefault();
 - 			$('#customRulesReference').toggle();
 - 			});
 - 		
 - 		$('#Custom_rules_text')
 - 			.val(Custom_rules_text)
 - 			.change(saveCustomRules);
 - 		
 - 		function saveCustomRules(e)
 - 		{
 - 			var cr = parseCustomRules(this.value);
 - 			if (cr.info.length)
 - 				alert('Custom rules saved. However, there were ' + cr.error + ' errors, ' + cr.warning + ' warnings, ' + cr.note + ' notes found.\n' + cr.rules.length + ' valid rules found.\n\n' + JSON.stringify(cr.info, null, '  '));
 - 			GM_setValue('Custom_rules_text', this.value);
 - 			GM_setValue('last_custom_rules_nag', ''+new Date().getTime()); //reset nag
 - 		}
 - 		
 - 	}
 -  
 - //begin standard link checking algorithm
 - function start(filterId)
 - {
 - 	var doNotLinkify = Do_not_linkify_DL_links;
 -  
 - 	// USER SELECTED FILE HOSTS INITIALIZATION START
 - 	var http_file_hosts = new Array(); //standard hostings
 - 	var http_file_hosts_coded = new Array(); //hostings which has to be decoded to obtain real checkable link
 - 	var http_file_hosts_obsolete = new Array(); //dead hostings
 - 	var http_file_hosts_headers_only = new Array(); //hostings with direct download, must be handled via headers only
 -  
 - 	initFileHosts();
 - 	initFileHostsHeadersOnly();
 - 	initFileHostsCustom(); //CustomRules
 - 	// USER SELECTED FILE HOSTS INITIALIZATION END
 -  
 - 	// LINKIFICATION START
 - 	var totalxpath = '';
 - 	var totalxpathcoded = '';
 - 	var totalxpathobsolete = '';
 - 	var totalxpathheadersonly = '';
 - 	var totalourls = '';
 -  
 - 	var filehostLen = http_file_hosts.length;
 - 	var filehostCodedLen = http_file_hosts_coded.length;
 - 	var filehostObsoleteLen = http_file_hosts_obsolete.length;
 - 	var filehostHeadersOnlyLen = http_file_hosts_headers_only.length;
 -  
 - 	var filehostIdx = filehostLen;
 - 	var filehostCodedIdx = filehostCodedLen;
 - 	var filehostObsoleteIdx = filehostObsoleteLen;
 - 	var filehostHeadersOnlyIdx = filehostHeadersOnlyLen;
 -  
 - 	if ((filehostIdx == 0) && (filehostCodedIdx == 0) && (filehostHeadersOnlyIdx == 0) && (filehostObsoleteIdx == 0))
 - 		return;
 -  
 - 	while (filehostIdx--)
 - 	{
 - 		totalourls += http_file_hosts[filehostIdx][0] + '|';
 - 		totalxpath += http_file_hosts[filehostIdx][4] + '|';
 - 	}
 -  
 - 	while (filehostCodedIdx--)
 - 	{
 - 		totalourls += http_file_hosts_coded[filehostCodedIdx][0] + '|';
 - 		totalxpathcoded += http_file_hosts_coded[filehostCodedIdx][3] + '|';
 - 	}
 -  
 - 	while (filehostObsoleteIdx--)
 - 	{
 - 		totalourls += http_file_hosts_obsolete[filehostObsoleteIdx][0] + '|';
 - 		totalxpathobsolete += http_file_hosts_obsolete[filehostObsoleteIdx][1] + '|';
 - 	}
 -  
 - 	while (filehostHeadersOnlyIdx--)
 - 	{
 - 		totalourls += http_file_hosts_headers_only[filehostHeadersOnlyIdx][0] + '|';
 - 		totalxpathheadersonly += http_file_hosts_headers_only[filehostHeadersOnlyIdx][3] + '|';
 - 	}
 -  
 - 	totalourls = totalourls.replace(/\|$/g, "");
 - 	
 - 	//TODO: further refactoring needed
 - 	
 - 	totalxpath = totalxpath.replace(/\]\|\/\/a\[/g, " or ");
 - 	totalxpath = totalxpath.replace(/\]\|/, ')]');
 - 	totalxpathcoded = totalxpathcoded.replace(/\]\|\/\/a\[/g, " or ");
 - 	totalxpathcoded = totalxpathcoded.replace(/\]\|/, ')]');
 - 	totalxpathobsolete = totalxpathobsolete.replace(/\]\|\/\/a\[/g, " or ");
 - 	totalxpathobsolete = totalxpathobsolete.replace(/\]\|/, ')]');
 - 	totalxpathheadersonly = totalxpathheadersonly.replace(/\]\|\/\/a\[/g, " or ");
 - 	totalxpathheadersonly = totalxpathheadersonly.replace(/\]\|/, ')]');
 - 				
 - 	if (filterId != null) //insert id restriction in the xpath
 - 	{
 - 		totalxpath = totalxpath.replace(/\[/g, "[@class='" + filterId + "' and (");
 - 		totalxpathcoded = totalxpathcoded.replace(/\[/g, "[@class='" + filterId + "' and (");
 - 		totalxpathobsolete = totalxpathobsolete.replace(/\[/g, "[@class='" + filterId + "' and (");
 - 		totalxpathheadersonly = totalxpathheadersonly.replace(/\[/g, "[@class='" + filterId + "' and (");
 - 	}
 - 	else
 - 	{
 - 		totalxpath = totalxpath.replace(/\[/, "[((not(@class)) or (@class!='alive_link' and @class!='adead_link' and @class!='unava_link')) and (");
 - 		totalxpathcoded = totalxpathcoded.replace(/\[/, "[((not(@class)) or (@class!='alive_link' and @class!='adead_link' and @class!='unava_link')) and (");
 - 		totalxpathobsolete = totalxpathobsolete.replace(/\[/, "[((not(@class)) or (@class!='alive_link' and @class!='adead_link' and @class!='unava_link')) and (");
 - 		totalxpathheadersonly = totalxpathheadersonly.replace(/\[/, "[((not(@class)) or (@class!='alive_link' and @class!='adead_link' and @class!='unava_link')) and (");
 - 	}
 - 	
 - 	linkify(totalourls);
 - 	//LINKIFICATION END
 - 	
 - 	//ENCRYPTED LINKS PROCESSING START
 - 	if (http_file_hosts_coded.length > 0)
 - 	{
 - 		var linksCoded = document.evaluate(totalxpathcoded, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 -  
 - 		// decrypt coded links (redirects, link protectors etc.)
 - 		if (linksCoded.snapshotLength > 0)
 - 		{
 - 			var link;
 - 			var reallinkreg;
 - 			var reallinkcorrection;
 -  
 - 			if (filterId == null)
 - 			{
 - 				cLinksTotal += linksCoded.snapshotLength;
 - 			}
 -  
 - 			var y = linksCoded.snapshotLength - 1;
 - 			do
 - 			{
 - 				// linksCoded.snapshotItem(y).id = 'processing_link';
 - 				link = linksCoded.snapshotItem(y);
 - 				
 - 				filehostIdx = filehostCodedLen;
 - 				while (filehostIdx--)
 - 				{
 - 					if (link.href.match(http_file_hosts_coded[filehostIdx][0]))
 - 					{
 - 						link.href = link.href.replace(/http:\/\/.*?(?:\?|=)http:\/\//, 'http://');
 - 						reallinkreg = http_file_hosts_coded[filehostIdx][1];
 - 						reallinkcorrection = http_file_hosts_coded[filehostIdx][2];
 -  
 - 						decurl(link, reallinkreg, reallinkcorrection);
 - 						break;
 - 					}
 - 				}
 - 			}
 - 			while (y--);
 - 		}
 - 	}
 - 	//ENCRYPTED LINKS PROCESSING END
 -  
 - 	//STANDARD LINKCHECKING START
 - 	if (http_file_hosts.length > 0)
 - 	{
 - 		var lianks = document.evaluate(totalxpath, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 -  
 - 		if (filterId == null)
 - 		{
 - 			cLinksTotal += lianks.snapshotLength;
 - 		}
 -  
 - 		if (lianks.snapshotLength > 0)
 - 		{
 - 			var link;
 -  
 - 			var URL = "";
 - 			var name = "";
 - 			var isAliveRegex = "";
 - 			var isDeadRegex = "";
 - 			var isUnavaRegex = "";
 - 			var ispremRegex = "";
 - 			var tryLoop = false;
 -  
 - 			var y = lianks.snapshotLength;
 -  
 - 			while (y--)
 - 			{
 - 				link = lianks.snapshotItem(y);
 -  
 - 				filehostIdx = filehostLen;
 - 				while (filehostIdx--)
 - 				{
 - 					if (link.href.match(http_file_hosts[filehostIdx][0]))
 - 					{
 - 						link.href = link.href.replace(/http:\/\/.*?http:\/\//, 'http://'); //anonymizers
 - 						isAliveRegex = http_file_hosts[filehostIdx][1];
 - 						isDeadRegex = http_file_hosts[filehostIdx][2];
 - 						isUnavaRegex = http_file_hosts[filehostIdx][3];
 - 						ispremRegex = http_file_hosts[filehostIdx][6];
 - 						tryLoop = http_file_hosts[filehostIdx][5];
 -  
 - 						geturl(link, isAliveRegex, isDeadRegex, isUnavaRegex, ispremRegex, tryLoop);
 -  
 - 						break;
 - 					}
 - 				}
 - 			}
 - 		}	
 - 	}
 - 	//STANDARD LINKCHECKING END
 - 	
 - 	//OBSOLETE FILE HOSTS PROCESSING START
 - 	if (filehostObsoleteLen > 0)
 - 	{
 - 		var obsoletelinks = document.evaluate(totalxpathobsolete, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 -  
 - 		var obsoleteLink;
 -  
 - 		//check links
 - 		if (obsoletelinks.snapshotLength > 0)
 - 		{
 - 			var y = obsoletelinks.snapshotLength;
 -  
 - 			if (filterId == null)
 - 			{
 - 				cLinksTotal += y;
 - 			}
 -  
 - 			while (y--)
 - 			{
 - 				obsoleteLink = obsoletelinks.snapshotItem(y);
 -  
 - 				if (Display_tooltip_info)
 - 				{
 - 					obsoleteLink.warlc_error = 'Cause of error: <b>Obsolete filehosting.</b>';
 - 				}
 - 				
 - 				displayTheCheckedLink(obsoleteLink, 'adead_link');
 - 			}
 - 		}
 - 	}
 - 	//OBSOLETE FILE HOSTS PROCESSING END
 -  
 - 	//DIRECT LINKCHECKING START
 - 	if (http_file_hosts_headers_only.length > 0)
 - 	{
 - 		var links = document.evaluate(totalxpathheadersonly, document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
 -  
 - 		//check links
 - 		if (links.snapshotLength > 0)
 - 		{
 - 			var link;
 - 			var isAliveRegex;
 - 			var isDeadRegex;
 - 			var ispremRegex;
 -  
 - 			var y = links.snapshotLength;
 -  
 -  
 - 			if (filterId == null)
 - 			{
 - 				cLinksTotal += y;
 - 			}
 -  
 - 			while (y--)
 - 			{
 - 				// links.snapshotItem(y).id = 'processing_link';
 - 				link = links.snapshotItem(y);
 - 				
 - 				filehostIdx = filehostHeadersOnlyLen;
 - 				while (filehostIdx--)
 - 				{
 - 					if (link.href.match(http_file_hosts_headers_only[filehostIdx][0]))
 - 					{
 - 						link.href = link.href.replace(/http:\/\/.*?(?:\?|=)http:\/\//, 'http://');
 - 						isAliveRegex = http_file_hosts_headers_only[filehostIdx][1];
 - 						isDeadRegex = http_file_hosts_headers_only[filehostIdx][2];
 - 						ispremRegex = http_file_hosts_headers_only[filehostIdx][3];
 -  
 - 						geturlHeader(link, isAliveRegex, isDeadRegex, ispremRegex);
 -  
 - 						break;
 - 					}
 - 				}
 - 			}
 -  
 - 		}
 - 	}
 - 	//DIRECT LINKCHECKING END
 -  
 -  
 - 	//finds the real url on the page, replaces link.href with it and calls geturl
 - 	function decurl(link, reallinkreg, reallinkcorrection)
 - 	{
 -  
 - 		GM_xmlhttpRequest(
 - 		{
 - 			method: 'GET',
 - 			url: link.href,
 - 			headers: {
 - 				'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 				'Accept': 'text/xml',
 - 				'Referer': ""
 - 			},
 - 			onload: function (result)
 - 			{
 - 				// cLinksProcessed++;
 -  
 - 				var reallink = result.responseText.match(reallinkreg)[0];
 - 				reallink = reallink.replace(new RegExp(reallinkcorrection, "g"), "");
 -  
 - 				link.href = reallink;
 -  
 - 				var i = http_file_hosts.length - 1;
 - 				do
 - 				{
 - 					if ((reallink.match(http_file_hosts[i][0])))
 - 					{
 - 						link.href = link.href.replace(/http:\/\/.*?\?http:\/\//, 'http://');
 - 						var isAliveRegex = http_file_hosts[i][1];
 - 						var isDeadRegex = http_file_hosts[i][2];
 - 						var isUnavaRegex = http_file_hosts[i][3];
 - 						var ispremRegex = http_file_hosts[i][4];
 -  
 - 						geturl(link, isAliveRegex, isDeadRegex, isUnavaRegex, ispremRegex, 50);
 -  
 - 						break;
 - 					}
 - 				}
 - 				while (i--);
 - 				}
 - 		});
 - 	}
 -  
 - 	function randUA()
 - 	{
 - 		//TODO	
 - 	}
 - 	
 - 	//Processes link
 - 	//
 - 	// [string]		link			link URL
 - 	// [string] 	isAliveRegex	alive link regex
 - 	// [string] 	isDeadRegex		dead link regex
 - 	// [string] 	isUnavaRegex	unavailable link regex
 - 	// [string] 	ispremRegex	    premium link regex
 - 	// [boolean]	tryLoop			repeats request until succeeded	
 - 	function geturl(link, isAliveRegex, isDeadRegex, isUnavaRegex, ispremRegex, tryLoop)
 - 	{
 - 		GM_xmlhttpRequest(
 - 		{
 - 			method: 'GET',
 - 			url: link.href,
 - 			headers: {
 - 				'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 				'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 				'Referer': ""
 - 			},
 - 			onload: function (result)
 - 			{
 - 				var res = result.responseText;
 - 				
 - 				if (result.responseHeaders.match(/Content-Disposition: attachment; filename=/))//direct download, simple version
 - 				{
 - 					displayTheCheckedLink(link, 'alive_link');
 - 					return;
 - 				}
 -  
 - 				if (res.match(isAliveRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'alive_link');
 - 					return;
 - 				}
 -  
 - 				if (res.match(isDeadRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'adead_link');
 - 					return;
 - 				}
 -  
 - 				if (isUnavaRegex && res.match(isUnavaRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'unava_link');
 - 					return;
 - 				}
 - 				
 - 				if (res.match(ispremRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'prem_link');
 - 					return;
 - 				}
 -  
 - 				var resStatus = result.status;
 -  
 - 				if (resStatus == 404)
 - 				{
 - 					displayTheCheckedLink(link, 'adead_link');
 - 				}
 - 				
 - 				if (resStatus == 500 || resStatus == 503 || resStatus == 403) //not found/available/temp. unava
 - 				{
 - 					if (tryLoop)
 - 					{
 - 						//wait 1-5 seconds and repeat the request
 - 						setTimeout(function(){geturl(link, isAliveRegex, isDeadRegex, isUnavaRegex, ispremRegex, tryLoop)}, 1000 + (Math.random() * 4000));
 - 					}
 - 					else
 - 					{
 - 						displayTheCheckedLink(link, 'unava_link');
 - 					}
 -  
 - 					return;
 - 				}
 - 			},
 - 			onerror: function ()
 - 			{
 - 				displayTheCheckedLink(link, 'unava_link');
 - 			}
 - 		});
 - 	}
 -  
 - 	function geturlHeader(link, isAliveRegex, isDeadRegex, ispremRegex)
 - 	{
 - 		GM_xmlhttpRequest(
 - 		{
 - 			method: 'HEAD',
 - 			url: link.href,
 - 			headers: {
 - 				'User-agent': 'Mozilla/4.0 [en] (Windows NT 6.0; U)',
 - 				'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
 - 				'Accept-Charset': 'windows-1250,utf-8;q=0.7,*;q=0.7',
 - 				'Referer': ""
 - 			},
 - 			onload: function (result)
 - 			{
 - 				var resStatus = result.status;
 - 				var resHeaders = "";
 - 				
 - 				if (resStatus == 403 || resStatus == 404 || resStatus == 500) //not found/available
 - 				{
 - 					displayTheCheckedLink(link, 'adead_link');
 - 					return;
 - 				}
 -  
 - 				resHeaders = result.responseHeaders;
 -  
 - 				if (resHeaders.match(isDeadRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'adead_link');
 - 					return;
 - 				}
 -  
 - 				if (resHeaders.match(isAliveRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'alive_link');
 - 					return;
 - 				}
 - 				
 - 				if (resHeaders.match(ispremRegex))
 - 				{
 - 					displayTheCheckedLink(link, 'prem_link');
 - 					return;
 - 				}
 - 			},
 - 			onerror: function ()
 - 			{
 - 				displayTheCheckedLink(link, 'unava_link');
 - 			}
 - 		});
 - 	}
 -  
 - 	//Delinkfifies the <a> element object
 - 	function delinkifyLink(link)
 - 	{
 - 		var spanElm = document.createElement("span");
 - 		spanElm.className = link.className;
 - 		spanElm.innerHTML = link.innerHTML;
 -  
 - 		if (Display_tooltip_info)
 - 		{
 - 			spanElm.href = link.href;
 - 			spanElm.warlc_error = link.warlc_error;
 - 			
 - 			switch (link.className){
 - 			case "alive_link": spanElm.addEventListener("mouseover", displayTooltipInfo, false); break
 - 			case "adead_link": spanElm.addEventListener("mouseover", displayTooltipError, false); break;
 - 			case "unava_link": //reserved
 - 			case "prem_link": spanElm.addEventListener("mouseover", displayTooltipError, false); break;
 - 			default: 
 - 			}
 - 		}
 - 		
 - 		link.parentNode.replaceChild(spanElm, link);
 - 	}
 -  
 - 	//Assigns result status to the <a> element object and calls delinkifying eventually
 - 	//Possible result states: adead_link, alive_link, unava_link, prem_link
 - 	function displayTheCheckedLink(link, resultStatus)
 - 	{
 - 		link.className = resultStatus;
 - 		link.href = Ref_anonymize_service + link.href;
 - 		
 - 		if (Display_tooltip_info)
 - 		{
 - 			switch (resultStatus){
 - 			case "alive_link": link.addEventListener("mouseover", displayTooltipInfo, false); break
 - 			case "adead_link": link.addEventListener("mouseover", displayTooltipError, false); break;
 - 			case "unava_link": //reserved
 - 			case "prem_link": link.addEventListener("mouseover", displayTooltipInfo, false); break
 - 			default: 
 - 			}
 - 		}
 - 		
 - 		if (doNotLinkify)
 - 		{
 - 			delinkifyLink(link);
 - 		}
 - 		
 - 		cLinksProcessed++;
 -  
 - 		if (resultStatus == "alive_link")
 - 		{
 - 			cLinksAlive++;
 - 			return;
 - 		}
 -  
 - 		if (resultStatus == "adead_link")
 - 		{
 - 			cLinksDead++;
 - 			return;
 - 		}
 -  
 - 		if (resultStatus == "unava_link")
 - 		{
 - 			cLinksUnava++;
 - 		}
 - 		
 - 		if (resultStatus == "prem_link")
 - 		{
 - 			cLinksprem++;
 - 			return;
 - 		}
 - 	}
 -  
 -  
 - 	function initFileHosts()
 - 	{
 -  
 - 		function addObsoleteHost(linkRegex, xpathEx)
 - 		{
 - 			var host = new Array(2);
 - 			host[0] = linkRegex;
 - 			host[1] = xpathEx;
 - 			http_file_hosts_obsolete.push(host);
 - 		}
 -  
 - 		//obsolete file hosts init start
 - 		if (Obsolete_file_hosts)
 - 		{
 - 			addObsoleteHost("uloz\.cz\/show\/file","//a[contains(@href,'uloz.cz')]");
 - 			addObsoleteHost("storage\\.to\/get","//a[contains(@href,'storage.to')]");
 - 			addObsoleteHost("iskladka\\.cz\/download","//a[contains(@href,'iskladka.cz')]");
 - 			addObsoleteHost("file-rack\\.com\/files","//a[contains(@href,'file-rack.com')]");
 - 			addObsoleteHost("fast-load\\.net\/(\/)?index","//a[contains(@href,'fast-load.net')]");
 - 			addObsoleteHost("subory\\.sk\/download","//a[contains(@href,'subory.sk')]");
 - 			addObsoleteHost("bigandfree\\.com\/\\d+","//a[contains(@href,'bigandfree.com')]");
 - 			addObsoleteHost("fileop\\.com\/\\w+","//a[contains(@href,'fileop.com')]");
 - 			addObsoleteHost("mujsoubor\\.cz\/file\/","//a[contains(@href,'mujsoubor.cz')]");
 - 			addObsoleteHost("sendfile\\.to\/\\w+","//a[contains(@href,'sendfile.to')]");
 - 			addObsoleteHost("superfastfile\\.com\/\\w+","//a[contains(@href,'superfastfile.com')]");
 - 			addObsoleteHost("quickyshare\\.com\/\\w+","//a[contains(@href,'quickyshare.com/')]");
 - 			addObsoleteHost("duckload\\.com\/(?:d|play)","//a[contains(@href,'duckload.com')]");
 - 			addObsoleteHost("uploadstore\\.net\/\\w+","//a[contains(@href,'uploadstore.net')]");
 - 			addObsoleteHost("meinupload\\.com\/dl\/\\d+","//a[contains(@href,'meinupload.com/dl')]");
 - 			addObsoleteHost("dualshare\\.com\/\\w+","//a[contains(@href,'dualshare.com')]");
 - 			addObsoleteHost("2xupload\\.(?:to|de)\/file\/\\w+","//a[contains(@href,'2xupload.to') or contains(@href,'2xupload.de')]");
 - 			addObsoleteHost("oxedion\\.com\/index\\.php\/download\/\\w+","//a[contains(@href,'oxedion.com/index')]");
 - 			addObsoleteHost("uploadline\\.com\/\\d+","//a[contains(@href,'uploadline.com')]");
 - 			addObsoleteHost("dll\\.bz\/file\/\\d+","//a[contains(@href,'dll.bz/file')]");
 - 			addObsoleteHost("movieshare\\.in\/\\w+","//a[contains(@href,'movieshare.in')]");
 - 			addObsoleteHost("milledrive\\.com\/files\/\\d+","//a[contains(@href,'milledrive.com')]");
 - 			addObsoleteHost("quickupload\\.net\/\\w+","//a[contains(@href,'quickupload.net')]");
 - 			addObsoleteHost("safelink\\.in\/\\w+","//a[contains(@href,'safelink.in')]");
 - 			addObsoleteHost("pyramidfiles\\.com\/\\w+","//a[contains(@href,'pyramidfiles.com/')]");
 - 			addObsoleteHost("(?:cloudnator|shragle)\\.com\/files","//a[contains(@href,'cloudnator.com/files') or contains(@href,'shragle.com/files')]");
 - 			addObsoleteHost("batshare\\.com\/\\w+","//a[contains(@href,'batshare.com/')]");
 - 			addObsoleteHost("bitroad\\.net\/download","//a[contains(@href,'bitroad.net/download')]");
 - 			addObsoleteHost("metadivx\\.com\/\\w+","//a[contains(@href,'metadivx.com')]");
 - 			addObsoleteHost("filegaze\\.com\/\\w+","//a[contains(@href,'filegaze.com/')]");
 - 			addObsoleteHost("bulletupload\\.com\/\\w+","//a[contains(@href,'bulletupload.com/')]");
 - 			addObsoleteHost("sharefilehost\\.com\/\\w+","//a[contains(@href,'sharefilehost.com/')]");
 - 			addObsoleteHost("fireuploads\\.net\/\\w+","//a[contains(@href,'fireuploads.net/')]");
 - 			addObsoleteHost("divxlink\\.com\/\\w+","//a[contains(@href,'divxlink.com/')]");
 - 			addObsoleteHost("bzlink\\.us\/\\w+","//a[contains(@href,'bzlink.us/')]");
 - 			addObsoleteHost("filetechnology\\.com\/\\w+","//a[contains(@href,'filetechnology.com/')]");
 - 			addObsoleteHost("filecosy\\.com\/\\w+","//a[contains(@href,'filecosy.com/')]");
 - 			addObsoleteHost("fileserver\\.cc\/\\w+","//a[contains(@href,'fileserver.cc/')]");
 - 			addObsoleteHost("shafiles\\.me\/\\w+","//a[contains(@href,'shafiles.me/')]");
 - 			addObsoleteHost("xfileshare\\.eu\/\\w+","//a[contains(@href,'xfileshare.eu/')]");
 - 			addObsoleteHost("uploadboost\\.com\/\\w+","//a[contains(@href,'uploadboost.com/')]");
 - 			addObsoleteHost("uploadoz\\.com\/\\w+","//a[contains(@href,'uploadoz.com/')]");
 - 			addObsoleteHost("ihostia\\.com\/\\w+","//a[contains(@href,'ihostia.com/')]");
 - 			addObsoleteHost("shareupload\\.com\/\\w+","//a[contains(@href,'shareupload.com/')]");
 - 			addObsoleteHost("ovfile\\.com\/\\w+","//a[contains(@href,'ovfile.com/')]");
 - 			addObsoleteHost("stahuj\\.to\/\\w+","//a[contains(@href,'stahuj.to/')]");
 - 			addObsoleteHost("gigfiles\\.net\/\\w+","//a[contains(@href,'gigfiles.net/')]");
 - 			addObsoleteHost("vidhog\\.com\/\\w+","//a[contains(@href,'vidhog.com/')]");
 - 			addObsoleteHost("filelaser\\.com\/\\w+","//a[contains(@href,'filelaser.com/')]");
 - 			addObsoleteHost("holderfile\\.com\/\\w+","//a[contains(@href,'holderfile.com/')]");
 - 			addObsoleteHost("fileduct\\.(?:com|net)\/\\w+","//a[contains(@href,'fileduct.com/') or contains(@href,'fileduct.net')]");
 - 			addObsoleteHost("filefat\\.com\/\\w+","//a[contains(@href,'filefat.com/')]");
 - 			addObsoleteHost("restfile\\.com\/\\w+","//a[contains(@href,'restfile.com/')]");
 - 			addObsoleteHost("filemashine\\.com\\/download\/\\w+","//a[contains(@href,'filemashine.com/download')]");
 - 			addObsoleteHost("cloudnxt\\.net\/\\w+","//a[contains(@href,'cloudnxt.net/')]");
 - 			addObsoleteHost("uploadrack\\.com\/\\w+","//a[contains(@href,'uploadrack.com')]");
 - 			addObsoleteHost("teradepot\\.com\/\\w+","//a[contains(@href,'teradepot.com')]");
 - 			addObsoleteHost("dataup\\.to\/\\d+\/","//a[contains(@href,'dataup.to')]");
 - 			addObsoleteHost("upit\\.to\/file:\\d+","//a[contains(@href,'upit.to/file')]");
 - 			addObsoleteHost("badongo\\.(?:com|net)\/(?:\\w\\w\/|)(?:vid|cfile|file|pt)\/\\w+","//a[contains(@href,'badongo.com') or contains(@href,'badongo.net')]");
 - 			addObsoleteHost("driveway\\.com\/\\w+","//a[contains(@href,'driveway.com')]");
 - 			addObsoleteHost("eatlime\\.com\/download","//a[contains(@href,'eatlime.com/download')]");
 - 			addObsoleteHost("a2zuploads\\.com\/id\\w+","//a[contains(@href,'a2zuploads.com/id')]");
 - 			addObsoleteHost("friendlyfiles\\.net\/download\/\\w+\/","//a[contains(@href,'friendlyfiles.net/download')]");
 - 			addObsoleteHost("flyfile\\.us\/\\w+","//a[contains(@href,'flyfile.us')]");
 - 			addObsoleteHost("speedyshare\\.com\/\\w+","//a[contains(@href,'speedyshare.com')]");
 - 			addObsoleteHost("brontofile\\.com\/download","//a[contains(@href,'brontofile.com/download')]");
 - 			addObsoleteHost("uploadspace\\.eu\/\\w+","//a[contains(@href,'uploadspace.eu')]");
 - 			addObsoleteHost("fooget\\.com\/\\w+","//a[contains(@href,'fooget.com/')]");
 - 			addObsoleteHost("file-bit.net\/\\w+","//a[contains(@href,'file-bit.net/')]");
 - 			addObsoleteHost("keepfile\\.com\/\\w+","//a[contains(@href,'http://keepfile.com')]");
 - 			addObsoleteHost("piggyshare\\.com\/file\/\\w+","//a[contains(@href,'piggyshare.com')]");
 - 			addObsoleteHost("filecrown\\.com\/\\w+","//a[contains(@href,'filecrown.com')]");
 - 			addObsoleteHost("6giga\\.com\/\\w+","//a[contains(@href,'6giga.com')]");
 - 			addObsoleteHost("uploadjockey\\.com\/download\/\\w+","//a[contains(@href,'uploadjockey.com/download')]");
 - 			addObsoleteHost("bluehost\\.to\/dl=\\w+","//a[contains(@href,'bluehost.to')]");
 - 			addObsoleteHost("coolshare\\.cz\/stahnout\/\\w+","//a[contains(@href,'coolshare.cz/stahnout')]");
 - 			addObsoleteHost("filegu\\.ru\/f\/\\w+","//a[contains(@href,'filegu.ru/f')]");
 - 			addObsoleteHost("filebase\\.to\/files\/\\d+\/","//a[contains(@href,'filebase.to/files')]");
 - 			addObsoleteHost("kickload\\.com\/(?:file|get)\/","//a[contains(@href,'kickload.com/file') or contains(@href,'kickload.com/get')]");
 - 			addObsoleteHost("up-file\\.com\/files\/download\/\\w+\/","//a[contains(@href,'up-file.com/download')]");
 - 			addObsoleteHost("ezyfile\\.net\/\\w+","//a[contains(@href,'ezyfile.net/')]");
 - 			addObsoleteHost("k2files\\.com\/files","//a[contains(@href,'k2files.com/files')]");
 - 			addObsoleteHost("aiotool\\.net\/\\w+","//a[contains(@href,'aiotool.net/')]");
 - 			addObsoleteHost("xvideos\\.com\/files\/\\d+\/\\w+","//a[contains(@href,'xvideos.com/files')]");
 - 			addObsoleteHost("filebling\\.com\/dl\/\\d+\/\\d+\/\\w+","//a[contains(@href,'filebling.com/dl')]");
 - 			addObsoleteHost("loaded\\.it\/divx\/\\w+","//a[contains(@href,'loaded.it/divx')]");
 - 			addObsoleteHost("uploadcell\\.com\/\\w+\/\\w+","//a[contains(@href,'uploadcell.com')]");
 - 			addObsoleteHost("jakfile\\.com\/\\w+","//a[contains(@href,'jakfile.com/')]");
 - 			addObsoleteHost("uploadshare\\.cz\/download\/\\w+\/\\w+","//a[contains(@href,'uploadshare.cz/download')]");
 - 			addObsoleteHost("mangoshare\\.com\/\\w+","//a[contains(@href,'mangoshare.com')]");
 - 			addObsoleteHost("ugotfile\\.com\/file\/\\d+\/\\w+","//a[contains(@href,'ugotfile.com/file')]");
 - 			addObsoleteHost("filestab\\.com\/\\w+","//a[contains(@href,'filestab.com')]");
 - 			addObsoleteHost("dotavi\\.com\/\\w+\/.","//a[contains(@href,'dotavi.com/')]");
 - 			addObsoleteHost("crazyupload\\.com\/\\w+","//a[contains(@href,'crazyupload.com')]");
 - 			addObsoleteHost("gaiafile\\.com\/\\w+","//a[contains(@href,'gaiafile.com')]");
 - 			addObsoleteHost("sharejunky\\.com\/\\w+","//a[contains(@href,'sharejunky.com')]");
 - 			addObsoleteHost("fileho\\.com\/download\/\\d+","//a[contains(@href,'fileho.com/download')]");
 - 			addObsoleteHost("(?:bigandfree|BigAndFree)\\.com\/\\d+","//a[contains(@href,'bigandfree.com') or contains(@href,'BigAndFree.com')]");
 - 			addObsoleteHost("bigfile\\.in\/\\w+","//a[contains(@href,'bigfile.in')]");
 - 			addObsoleteHost("bigshare\\.eu\/download\\.php\\?id=","//a[contains(@href,'bigshare.eu/download.php')]");
 - 			addObsoleteHost("dahosting\\.org\/dl\/\\w+","//a[contains(@href,'dahosting.org/dl')]");
 - 			addObsoleteHost("digisofts\\.net\/\\w+","//a[contains(@href,'digisofts.net')]");
 - 			addObsoleteHost("file4save\\.com\/\\w+\/\\w+","//a[contains(@href,'file4save.com')]");
 - 			addObsoleteHost("filereactor\\.com\/\\w+","//a[contains(@href,'filereactor.com/')]");
 - 			addObsoleteHost("filechip\\.com\/\\w+","//a[contains(@href,'filechip.com')]");
 - 			addObsoleteHost("filescloud\\.com\/\\w+\/\\w+","//a[contains(@href,'filescloud.com')]");
 - 			addObsoleteHost("saveqube\\.com\/getfile\/\\w+","//a[contains(@href,'saveqube.com/getfile')]");
 - 			addObsoleteHost("www2\\.turboshare\\.de\/v\/\\d+","//a[contains(@href,'turboshare.de/v')]");
 - 			addObsoleteHost("z-upload\\.com\/\\w+","//a[contains(@href,'z-upload.com')]");
 - 			addObsoleteHost("youshare\\.com\/view\\.php","//a[contains(@href,'youshare.com/view')]");
 - 			addObsoleteHost("jiffyupload\\.com\/\\w+","//a[contains(@href,'jiffyupload.com')]");
 - 			addObsoleteHost("gigeshare\\.com\/preview\/\\w+","//a[contains(@href,'gigeshare.com')]");
 - 			addObsoleteHost("datenklo\\.net\/dl","//a[contains(@href,'datenklo.net')]");
 - 			addObsoleteHost("upload\\.dj\/download\\.php\\?id=\\w+","//a[contains(@href,'upload.dj/download.php')]");
 - 			addObsoleteHost("loadfiles\\.in\/\\w+\/","//a[contains(@href,'loadfiles.in')]");
 - 			addObsoleteHost("upit\\.to\/file:\\w+\/","//a[contains(@href,'upit.to/file')]");
 - 			addObsoleteHost("zshare\\.net\/(?:download|video|audio)\/\\w+","//a[contains(@href,'zshare.net/')]");
 - 			addObsoleteHost("refile\\.net\/f\/\\?\\w+","//a[contains(@href,'refile.net/f/')]");
 - 			addObsoleteHost("dsfileshare\\.com\/download","//a[contains(@href,'dsfileshare.com/download')]");
 - 			addObsoleteHost("sharesimple\\.net\/\\w{2}\/download","//a[contains(@href,'sharesimple.net')]");
 - 			addObsoleteHost("(?:s\\d+\\.|)4files\\.net\/\\d+","//a[contains(@href,'4files.net')]");
 - 			addObsoleteHost("odsiebie\\.com\/pokaz\/\\d+","//a[contains(@href,'odsiebie.com/pokaz')]");
 - 			addObsoleteHost("filenavi\\.com\/direct\/\\w+","//a[contains(@href,'filenavi.com/direct')]");
 - 			addObsoleteHost("3oof\\.com\/\\w+","//a[contains(@href,'3oof.com/')]");
 - 			addObsoleteHost("meshwaar\\.com\/\\w+","//a[contains(@href,'meshwaar.com')]");
 - 			addObsoleteHost("maxupload\\.com\/files\/\\w+","//a[contains(@href,'maxupload.com/files')]");
 - 			addObsoleteHost("share\\.cx\/videos\/\\d+","//a[contains(@href,'share.cx/videos')]");
 - 			addObsoleteHost("atserver\\.eu\/(?:\\w{2}\/|)download\/\\d+","//a[contains(@href,'atserver.eu')]");
 - 			addObsoleteHost("file2upload\\.net\/download\/\\d+","//a[contains(@href,'file2upload.net/download')]");
 - 			addObsoleteHost("filebling\\.com\/\\w+","//a[contains(@href,'filebling.com')]");
 - 			addObsoleteHost("turboshare\\.(?:eu|com)\/files","//a[contains(@href,'turboshare.') and contains(@href,'/files')]");
 - 			addObsoleteHost("rarhost\\.com\/download","//a[contains(@href,'rarhost.com/download')]");
 - 			addObsoleteHost("isharehd\\.com\/\\w+","//a[contains(@href,'isharehd.com')]");
 - 			addObsoleteHost("datenklo\\.net\/file\\.php\\?id=\\w+","//a[contains(@href,'datenklo.net/file.php')]");
 - 			addObsoleteHost("file2share\\.biz\/download\\.php\\?id=\\w+","//a[contains(@href,'file2share.biz/download.php')]");
 - 			addObsoleteHost("savefiles\\.net\/d\/\\w+\\.html","//a[contains(@href,'savefiles.net/d')]");
 - 			addObsoleteHost("bestsharing\\.com\/files\/\\w+","//a[contains(@href,'bestsharing.com/files')]");
 - 			addObsoleteHost("filecache\\.de\/\\d+","//a[contains(@href,'filecache.de/')]");
 - 			addObsoleteHost("i741\\.com\/files\/\\w+","//a[contains(@href,'i741.com/files')]");
 - 			addObsoleteHost("dataup\\.de\/\\d+","//a[contains(@href,'dataup.de')]");
 - 			addObsoleteHost("fofly\\.com\/\\w+","//a[contains(@href,'fofly.com')]");
 - 			addObsoleteHost("shareonall\\.com\/\\w+","//a[contains(@href,'shareonall.com')]");
 - 			addObsoleteHost("sexuploader\\.com\/(?:|..\/)\\?[d|v]=\\w{8}","//a[contains(@href,'sexuploader.com')]");
 - 			addObsoleteHost("mega(upload|video|rotic|porn)\\.com\/(?:|..\/)\\?[d|v|f]=\\w{8}","//a[contains(@href,'megaupload.com') or contains(@href,'megavideo.com') or contains(@href,'megaporn.com') or contains(@href,'megarotic.com')]");
 - 			addObsoleteHost("uploadhyper\\.com\/file\/","//a[contains(@href,'uploadhyper.com')]");
 - 			addObsoleteHost("filespawn\\.com\/file\/","//a[contains(@href,'filespawn.com')]");
 - 			addObsoleteHost("caizzii\\.com\/(?:download|\\?file=)","//a[contains(@href,'caizzii.com')]");
 - 			addObsoleteHost("volnyweb\\.cz\/files\/get\/[\\w-_]+","//a[contains(@href,'volnyweb.cz/files')]");
 - 			addObsoleteHost("gotupload\\.com\/\\w+","//a[contains(@href,'gotupload.com/')]");
 - 			addObsoleteHost("mooload\\.com\/new\/file\\.php\\?file=files\/\\d+\/\\d+","//a[contains(@href,'mooload.com/new/file')]");
 - 			addObsoleteHost("z\\d+\\.zupload\\.com\/download\\.php\\?file=getfile&filepath=\\d+","//a[contains(@href,'zupload.com/download')]");
 - 			addObsoleteHost("mytempdir\\.com\/\\d+","//a[contains(@href,'mytempdir.com/')]");
 - 			addObsoleteHost("usershare\\.net\/\\w+","//a[contains(@href,'usershare.net/')]");
 - 			addObsoleteHost("qshare\\.com\/get\/\\d+\/.","//a[contains(@href,'qshare.com/get')]");
 - 			addObsoleteHost("filescash\\.net\/file\/\\d+","//a[contains(@href,'filescash.net/file')]");
 - 			addObsoleteHost("metahyper\\.com\/\\w+","//a[contains(@href,'metahyper.com/')]");
 - 			addObsoleteHost("combozip\\.com\/\\w+","//a[contains(@href,'combozip.com/')]");
 - 			addObsoleteHost("anonstream\\.com\/get_\\w+","//a[contains(@href,'anonstream.com/get_')]");
 - 			addObsoleteHost("x7\\.to\/\\w+","//a[contains(@href,'x7.to/')]");
 - 			addObsoleteHost("uploadbox\\.com\/files\/\\w+","//a[contains(@href,'uploadbox.com/files')]");
 - 			addObsoleteHost("(?:flyupload\\.)?(?:enterupload|flyupload)\\.com\/[\\?\\w]+","//a[contains(@href,'enterupload.com/') or contains(@href,'flyupload.com/')]");
 - 			addObsoleteHost("filepoint\\.de\/dl\/\\w+","//a[contains(@href,'filepoint.de/dl')]");
 - 			addObsoleteHost("icushare\\.com\/\\w+","//a[contains(@href,'icushare.com/')]");
 - 			addObsoleteHost("oron\\.com\/\\w+","//a[contains(@href,'oron.com/')]");
 - 			addObsoleteHost("mystream\\.to\/file\\-\\d+","//a[contains(@href,'mystream.to/file')]");
 - 			addObsoleteHost("x-fs\\.com\/download\\.php\\?id=\\w+","//a[contains(@href,'x-fs.com/download')]");
 - 			addObsoleteHost("srapid\\.eu\/\\w+","//a[contains(@href,'srapid.eu/')]");
 - 			addObsoleteHost("shareshared\\.com\/\\w+","//a[contains(@href,'shareshared.com/')]");
 - 			addObsoleteHost("sosame\\.cz\/\\w+","//a[contains(@href,'sosame.cz/')]");
 - 			addObsoleteHost("s\\d+\\.filesdump\\.com\/file\/\\w+","//a[contains(@href,'filesdump.com/file')]");
 - 			addObsoleteHost("2-klicks\\.de\/\\?d=\\w+","//a[contains(@href,'2-klicks.de/?d=')]");
 - 			addObsoleteHost("silofiles\\.com\/file\/\\d+","//a[contains(@href,'silofiles.com/file')]");
 - 			addObsoleteHost("upfile\\.in\/\\w+","//a[contains(@href,'upfile.in/')]");
 - 			addObsoleteHost("filehook\\.com\/\\w+","//a[contains(@href,'filehook.com/')]");
 - 			addObsoleteHost("mojofile\\.com\/\\w+","//a[contains(@href,'mojofile.com/')]");
 - 			addObsoleteHost("cloudcache\\.cc\/\\w+","//a[contains(@href,'cloudcache.cc/')]");
 - 			addObsoleteHost("1hostclick\\.com\/\\w+","//a[contains(@href,'1hostclick.com/')]");
 - 			addObsoleteHost("4bytez\\.com\/\\w+","//a[contains(@href,'4bytez.com/')]");
 - 			addObsoleteHost("uploadking\\.com\/\\w+","//a[contains(@href,'uploadking.com/')]");
 - 			addObsoleteHost("nahraj\\.cz\/(?:content|down)\/\\w+","//a[contains(@href,'nahraj.cz/')]");
 - 			addObsoleteHost("megarapid\\.eu\/files\/\\d+","//a[contains(@href,'megarapid.eu/files')]");
 - 			addObsoleteHost("(?:fileserve|uploadstation)\\.com\/(?:file|list)\/\\w+","//a[contains(@href,'fileserve.com/') or contains(@href,'uploadstation.com/')]");
 - 			addObsoleteHost("uploadhere\\.com\/\\w+","//a[contains(@href,'uploadhere.com/')]");
 - 			addObsoleteHost("dualshare\\.com\/\\w+","//a[contains(@href,'dualshare.com/')]");
 - 			addObsoleteHost("yourfilehost\\.com\/media","//a[contains(@href,'yourfilehost.com/media')]");
 - 			addObsoleteHost("ftp2share\\.com\/file\/\\w+","//a[contains(@href,'ftp2share.com/file')]");
 - 			addObsoleteHost("storeandserve\\.com\/download\/\\d+","//a[contains(@href,'storeandserve.com/download')]");
 - 			addObsoleteHost("mountfile\\.com\/file(?:\/\\w+){2}","//a[contains(@href,'mountfile.com/file')]");
 - 			addObsoleteHost("save\\.am\/files\/\\w+","//a[contains(@href,'save.am/files')]");
 - 			addObsoleteHost("transitfiles\\.com\/dl\/\\w+","//a[contains(@href,'transitfiles.com/dl')]");
 - 			addObsoleteHost("smartuploader\\.com\/file\\.php\\?f=\\d+","//a[contains(@href,'smartuploader.com/file.php?=')]");
 - 			addObsoleteHost("skipfile\\.com\/\\w+","//a[contains(@href,'skipfile.com/')]");
 - 			addObsoleteHost("stahnu\\.to\/[\\w\\?]+","//a[contains(@href,'stahnu.to/')]");
 - 			addObsoleteHost("flyshare\.cz\/(?:stahni\/|)\\d+","//a[contains(@href,'flyshare.cz/')]");
 - 			addObsoleteHost("(?:ddlani\\.me|ddlanime\\.com)\/\\w+","//a[contains(@href,'ddlani.me/') or contains(@href,'ddlanime.com/')]");
 - 			addObsoleteHost("loadly\\.com\/\\w+","//a[contains(@href,'loadly.com/')]");
 - 			addObsoleteHost("groovefile\\.com\/\\w+","//a[contains(@href,'groovefile.com/')]");
 - 			addObsoleteHost("filezlot\\.com\/\\w+","//a[contains(@href,'filezlot.com/')]");
 - 			addObsoleteHost("shareator\\.(?:net|com)\/\\w+","//a[contains(@href,'shareator.')]");
 - 			addObsoleteHost("yabadaba\\.ru\/files\/","//a[contains(@href,'yabadaba.ru/files/')]");
 - 			addObsoleteHost("rapidhide\\.com\/download\\.php\\?file=\\w+","//a[contains(@href,'rapidhide.com/download.php')]");
 - 			addObsoleteHost("filejungle\\.com\/[fl]\/\\w+","//a[contains(@href,'filejungle.com/')]");
 - 			addObsoleteHost("kewlshare\\.com\/dl\/\\d+","//a[contains(@href,'kewlshare.com/dl')]");
 - 			addObsoleteHost("petandrive\\.com\/file\/\\w+","//a[contains(@href,'petandrive.com/file')]");
 - 			addObsoleteHost("onionshare\\.com\/\\w+","//a[contains(@href,'onionshare.com/')]");
 - 			addObsoleteHost("rapidable\\.com\/\\w+\/download\\.php\\?id=","//a[contains(@href,'rapidable.com/')]");
 - 			addObsoleteHost("filesdump\\.com\/file\/\\w+\/\\d+","//a[contains(@href,'filesdump.com/file')]");
 - 			addObsoleteHost("file2box\\.(?:net|com)\/\\w+","//a[contains(@href,'file2box.')]");
 - 			addObsoleteHost("(?:filesonic|sharingmatrix|wupload)(?:\\.\\w+){1,2}\/(?:file|folder)\/\\w+","//a[contains(@href,'filesonic.') or contains(@href,'sharingmatrix.com') or contains(@href,'wupload.')]");
 - 			addObsoleteHost("bloggerarticles\\.com\/\\w+","//a[contains(@href,'bloggerarticles.com/')]");
 - 			addObsoleteHost("mojedata\\.sk/","//a[contains(@href,'mojedata.sk/')]");
 - 			addObsoleteHost("sharpfile\\.com\/\\w+","//a[contains(@href,'sharpfile.com/')]");
 - 			addObsoleteHost("upgrand\\.com\/\\w+","//a[contains(@href,'upgrand.com/')]");
 - 			addObsoleteHost("nasdilej\\.cz\/\\w+","//a[contains(@href,'nasdilej.cz/')]");
 - 			addObsoleteHost("mediatack\\.cz\/stahuj/\\w+","//a[contains(@href,'mediatack.cz/stahuj/')]");
 - 			addObsoleteHost("share-it\\.to\/file/\\w+","//a[contains(@href,'share-it.to/file/')]");
 - 			addObsoleteHost("primeupload\\.com\/file/\\w+","//a[contains(@href,'primeupload.com/file/')]");    
 - 			addObsoleteHost("(?:uploads\\.glumbo|glumbouploads)\\.com\/\\w+","//a[contains(@href,'uploads.glumbo.com') or contains(@href,'glumbouploads.com')]");   
 - 			addObsoleteHost("filebeer\\.info\/\\w+","//a[contains(@href,'filebeer.info/')]");      
 - 			addObsoleteHost("baberepublic\\.com\/link\/\\w+","//a[contains(@href,'baberepublic.com/link/')]");      
 - 			addObsoleteHost("xtu\\.me\/\\w+","//a[contains(@href,'xtu.me/')]");   
 - 			addObsoleteHost("sharebase\\.de\/files\/\\w+","//a[contains(@href,'sharebase.de/files/')]");         
 - 			addObsoleteHost("filerobo\\.com\/\\w+","//a[contains(@href,'filerobo.com/')]");      
 - 			addObsoleteHost("filevelocity\\.com\/\\w+","//a[contains(@href,'filevelocity.com/')]");   
 - 			addObsoleteHost("filezpro\\.com\/\\w+","//a[contains(@href,'filezpro.com/')]");   
 - 			addObsoleteHost("file4sharing\\.com\/\\w+","//a[contains(@href,'file4sharing.com/')]");   
 - 			addObsoleteHost("cing\\.be\/\\w+","//a[contains(@href,'cing.be/')]");   
 - 			addObsoleteHost("ufile\\.eu\/\\w+","//a[contains(@href,'ufile.eu/')]"); 
 - 			addObsoleteHost("pigsonic\\.com\/\\w+","//a[contains(@href,'pigsonic.com/')]"); 
 - 			addObsoleteHost("fileupped\\.com\/\\w+","//a[contains(@href,'fileupped.com/')]");   
 - 			addObsoleteHost("sharerun\\.com\/\\w+","//a[contains(@href,'sharerun.com/')]");    
 - 			addObsoleteHost("rapidslnare\\.com\/\\w+","//a[contains(@href,'rapidslnare.com/')]");  
 - 			addObsoleteHost("monsteruploads\\.eu\/\\w+","//a[contains(@href,'monsteruploads.eu/')]"); 
 - 			addObsoleteHost("b9bb\\.com\/\\w+","//a[contains(@href,'b9bb.com/')]");   
 - 			addObsoleteHost("jamber\\.info\/\\w+","//a[contains(@href,'jamber.info/')]");     
 - 			addObsoleteHost("(?:megaftp|MegaFTP)\\.com\/\\w+","//a[contains(@href,'megaftp.com/') or contains(@href,'MegaFTP.com/')]");   
 - 			addObsoleteHost("desiupload\\.net\/\\?d=\\w+","//a[contains(@href,'desiupload.net/')]");   
 - 			addObsoleteHost("file27\\.com\/\\w+","//a[contains(@href,'file27.com/')]");    
 - 			addObsoleteHost("yastorage\\.com\/\\w+","//a[contains(@href,'yastorage.com/')]"); 
 - 			addObsoleteHost("filehost\\.ws\/\\w+","//a[contains(@href,'filehost.ws/')]");    
 - 			addObsoleteHost("copyload\\.com\/\\w+","//a[contains(@href,'copyload.com/')]"); 
 - 			addObsoleteHost("venusfile\\.com\/\\w+","//a[contains(@href,'venusfile.com/')]"); 
 - 			addObsoleteHost("aieshare\\.com\/\\w+","//a[contains(@href,'aieshare.com/')]"); 
 - 			addObsoleteHost("fileza\\.net\/\\w+","//a[contains(@href,'fileza.net/')]"); 
 - 			addObsoleteHost("filerose\\.com\/\\w+","//a[contains(@href,'filerose.com/')]"); 
 - 			addObsoleteHost("squillion\\.com\/\\w+","//a[contains(@href,'squillion.com/')]"); 
 - 			addObsoleteHost("fileprohost\\.com\/\\w+","//a[contains(@href,'fileprohost.com/')]"); 
 - 			addObsoleteHost("bitbonus\\.com\/download\/\\w+","//a[contains(@href,'bitbonus.com/')]");
 - 			addObsoleteHost("warserver\\.cz\/\\w+","//a[contains(@href,'warserver.cz/')]");
 - 			addObsoleteHost("uload\\.to\/\\w+","//a[contains(@href,'uload.to/')]");
 -       addObsoleteHost("sharedbit\\.net\/\\w+","//a[contains(@href,'sharedbit.net/')]");
 -       addObsoleteHost("megaload\\.it\/\\w+","//a[contains(@href,'megaload.it/')]");
 -       addObsoleteHost("filewinds\\.com\/\\w+","//a[contains(@href,'filewinds.com/')]");
 -       addObsoleteHost("uploadcore\\.com\/\\w+","//a[contains(@href,'uploadcore.com/')]");
 -       addObsoleteHost("syfiles\\.com\/\\w+","//a[contains(@href,'syfiles.com/')]");
 -       addObsoleteHost("eyesfile\\.com\/\\w+","//a[contains(@href,'eyesfile.com/')]");
 -       addObsoleteHost("hotfile\\.com\/\\w+","//a[contains(@href,'hotfile.com/')]");
 -       addObsoleteHost("superupl\\.com\/\\w+","//a[contains(@href,'superupl.com/')]");
 -       addObsoleteHost("oteupload\\.com\/\\w+","//a[contains(@href,'oteupload.com/')]");
 -       addObsoleteHost("henchfile\\.com\/\\w+","//a[contains(@href,'henchfile.com/')]");
 -       addObsoleteHost("HenchFile\\.com\/\\w+","//a[contains(@href,'HenchFile.com/')]");
 -       addObsoleteHost("filegag\\.com\/\\w+","//a[contains(@href,'filegag.com/')]");
 -       addObsoleteHost("filedefend\\.com\/\\w+","//a[contains(@href,'filedefend.com/')]");
 -       addObsoleteHost("hotfiles\\.ws\/\\w+","//a[contains(@href,'hotfiles.ws/')]");
 -       addObsoleteHost("share-rapid\\.com\/\\w+","//a[contains(@href,'share-rapid.com/')]");
 -       addObsoleteHost("rapids\\.cz\/\\w+","//a[contains(@href,'rapids.cz/')]");
 -       addObsoleteHost("share-credit\\.cz\/\\w+","//a[contains(@href,'share-credit.cz/')]");
 -       addObsoleteHost("share-central\\.cz\/\\w+","//a[contains(@href,'share-central.cz/')]");
 -       addObsoleteHost("share-ms\\.cz\/\\w+","//a[contains(@href,'share-ms.cz/')]");
 -       addObsoleteHost("share-net\\.cz\/\\w+","//a[contains(@href,'share-net.cz/')]");
 -       addObsoleteHost("srapid\\.cz\/\\w+","//a[contains(@href,'srapid.cz/')]");
 -       addObsoleteHost("share-rapid\\.cz\/\\w+","//a[contains(@href,'share-rapid.cz/')]");
 -       addObsoleteHost("wooupload\\.com\/\\w+","//a[contains(@href,'wooupload.com/')]");
 -       addObsoleteHost("megabitshare\\.com\/\\w+","//a[contains(@href,'megabitshare.com/')]");
 -       addObsoleteHost("uploking\\.com\/\\w+","//a[contains(@href,'uploking.com/')]");
 -       addObsoleteHost("esnips\\.com\/\\w+","//a[contains(@href,'esnips.com/')]");
 -       addObsoleteHost("uplly\\.com\/\\w+","//a[contains(@href,'uplly.com/')]");
 -       addObsoleteHost("ufox\\.com\/\\w+","//a[contains(@href,'ufox.com/')]");
 -       addObsoleteHost("clz\\.to\/\\w+","//a[contains(@href,'clz.to/')]");
 -       addObsoleteHost("cloudzer\\.net\/\\w+","//a[contains(@href,'cloudzer.net/')]");
 -       addObsoleteHost("cloudzer\\.com\/\\w+","//a[contains(@href,'cloudzer.com/')]");
 -       addObsoleteHost("extabit\\.com\/\\w+","//a[contains(@href,'extabit.com/')]");
 -       addObsoleteHost("uploadwaste\\.com\/\\w+","//a[contains(@href,'uploadwaste.com/')]");
 - 			addObsoleteHost("247upload\\.com\/\\w+","//a[contains(@href,'uploadwaste.com/')]");
 - 			addObsoleteHost("2download\\.de\/\\w+","//a[contains(@href,'2download.de/')]");
 - 			addObsoleteHost("4fastfile\\.com\/\\w+","//a[contains(@href,'4fastfile.com/')]");
 - 			addObsoleteHost("asixfiles\\.com\/\\w+","//a[contains(@href,'asixfiles.com/')]");
 - 			addObsoleteHost("berofile\\.com\/\\w+","//a[contains(@href,'berofile.com/')]");
 - 			addObsoleteHost("bigupload\\.com\/\\w+","//a[contains(@href,'bigupload.com/')]");
 - 			addObsoleteHost("cepzo\\.com\/\\w+","//a[contains(@href,'cepzo.com/')]");
 - 			addObsoleteHost("czshare\\.com\/\\w+","//a[contains(@href,'czshare.com/')]");
 - 			addObsoleteHost("clouds\\.to\/\\w+","//a[contains(@href,'clouds.to/')]");
 - 			addObsoleteHost("cobrashare\\.sk\/\\w+","//a[contains(@href,'cobrashare.sk/')]");
 - 			addObsoleteHost("coraldrive\\.net\/\\w+","//a[contains(@href,'coraldrive.net/')]");
 - 			addObsoleteHost("cyberlocker\\.ch\/\\w+","//a[contains(@href,'cyberlocker.ch/')]");
 - 			addObsoleteHost("darkport\\.org\/\\w+","//a[contains(@href,'darkport.org/')]");
 - 			addObsoleteHost("dark-uploads\\.com\/\\w+","//a[contains(@href,'dark-uploads.com/')]");
 - 			addObsoleteHost("davvas\\.com\/\\w+","//a[contains(@href,'davvas.com/')]");
 - 			addObsoleteHost("enigmashare\\.com\/\\w+","//a[contains(@href,'enigmashare.com/')]");
 - 			addObsoleteHost("erofly\\.cz\/\\w+","//a[contains(@href,'erofly.cz/')]");
 - 			addObsoleteHost("fastsonic\\.net\/\\w+","//a[contains(@href,'fastsonic.net/')]");
 - 			addObsoleteHost("filebox\\.com\/\\w+","//a[contains(@href,'filebox.com/')]");
 - 			addObsoleteHost("filecity\\.net\/\\w+","//a[contains(@href,'filecity.net/')]");
 - 			addObsoleteHost("filedap\\.com\/\\w+","//a[contains(@href,'filedap.com/')]");
 - 			addObsoleteHost("filedino\\.com\/\\w+","//a[contains(@href,'filedino.com/')]");
 - 			addObsoleteHost("filedownloads\\.org\/\\w+","//a[contains(@href,'filedownloads.org/')]");
 - 			addObsoleteHost("filefolks\\.com\/\\w+","//a[contains(@href,'filefolks.com/')]");
 - 			addObsoleteHost("fileking\\.co\/\\w+","//a[contains(@href,'fileking.co/')]");
 - 			addObsoleteHost("filemates\\.com\/\\w+","//a[contains(@href,'filemates.com/')]");
 - 			addObsoleteHost("files\\.to\/\\w+","//a[contains(@href,'files.to/')]");
 - 			addObsoleteHost("files2k\\.eu\/\\w+","//a[contains(@href,'files2k.eu/')]");
 - 			addObsoleteHost("filesector\\.cc\/\\w+","//a[contains(@href,'filesector.cc/')]");
 - 			addObsoleteHost("filesega\\.com\/\\w+","//a[contains(@href,'filesega.com/')]");
 - 			addObsoleteHost("filesend\\.net\/\\w+","//a[contains(@href,'filesend.net/')]");
 - 			addObsoleteHost("filestay\\.com\/\\w+","//a[contains(@href,'filestay.com/')]");
 - 			addObsoleteHost("filestrum\\.com\/\\w+","//a[contains(@href,'filestrum.com/')]");
 - 			addObsoleteHost("fileuplo\\.de\/\\w+","//a[contains(@href,'fileuplo.de/')]");
 - 			addObsoleteHost("fileupup\\.com\/\\w+","//a[contains(@href,'fileupup.com/')]");
 - 			addObsoleteHost("forunesia\\.com\/\\w+","//a[contains(@href,'forunesia.com/')]");
 - 			addObsoleteHost("freeuploads\\.fr\/\\w+","//a[contains(@href,'freeuploads.fr/')]");
 - 			addObsoleteHost("uploa\\.dk\/\\w+","//a[contains(@href,'uploa.dk/')]");
 - 			addObsoleteHost("getthebit\\.com\/\\w+","//a[contains(@href,'getthebit.com/')]");
 - 			addObsoleteHost("getzilla\\.net\/\\w+","//a[contains(@href,'getzilla.net/')]");
 - 			addObsoleteHost("goldfile\\.eu\/\\w+","//a[contains(@href,'goldfile.eu/')]");
 - 			addObsoleteHost("good\\.com\/\\w+","//a[contains(@href,'good.com/')]");
 - 			addObsoleteHost("grupload\\.com\/\\w+","//a[contains(@href,'grupload.com/')]");
 - 			addObsoleteHost("hellfile\\.com\/\\w+","//a[contains(@href,'hellfile.com/')]");
 - 			addObsoleteHost("hipfile\\.com\/\\w+","//a[contains(@href,'hipfile.com/')]");
 - 			addObsoleteHost("hitfile\\.com\/\\w+","//a[contains(@href,'hitfile.com/')]");
 - 			addObsoleteHost("hulkfile\\.eu\/\\w+","//a[contains(@href,'hulkfile.eu/')]");
 - 			addObsoleteHost("i-filez\\.com\/\\w+","//a[contains(@href,'i-filez.com/')]");
 - 			addObsoleteHost("ifile\\.ws\/\\w+","//a[contains(@href,'ifile.ws/')]");
 - 			addObsoleteHost("kupload\\.org\/\\w+","//a[contains(@href,'kupload.org/')]");
 - 			addObsoleteHost("duckfile\\.net\/\\w+","//a[contains(@href,'duckfile.net/')]");
 - 			addObsoleteHost("packupload\\.com\/\\w+","//a[contains(@href,'packupload.com/')]");
 - 			addObsoleteHost("terafile\\.com\/\\w+","//a[contains(@href,'terafile.com/')]");
 - 			addObsoleteHost("terafile\\.co\/\\w+","//a[contains(@href,'terafile.co/')]");
 - 			addObsoleteHost("fileom\\.com\/\\w+","//a[contains(@href,'fileom.com/')]");
 - 			addObsoleteHost("luckyshare\\.net\/\\w+","//a[contains(@href,'luckyshare.net/')]");
 - 			addObsoleteHost("lemuploads\\.com\/\\w+","//a[contains(@href,'lemuploads.com/')]");
 - 			addObsoleteHost("limelinx\\.com\/\\w+","//a[contains(@href,'limelinx.com/')]");
 - 			addObsoleteHost("maxshare\\.pl\/\\w+","//a[contains(@href,'maxshare.pl/')]");
 - 			addObsoleteHost("megarelease\\.org\/\\w+","//a[contains(@href,'megarelease.org/')]");
 - 			addObsoleteHost("megashare\\.com\/\\w+","//a[contains(@href,'megashare.com/')]");
 - 			addObsoleteHost("minus\\.com\/\\w+","//a[contains(@href,'minus.com/')]");
 - 			addObsoleteHost("mlfat4arab\\.com\/\\w+","//a[contains(@href,'mlfat4arab.com/')]");
 - 			addObsoleteHost("multishare\\.cz\/\\w+","//a[contains(@href,'multishare.cz/')]");
 - 			addObsoleteHost("nirafile\\.com\/\\w+","//a[contains(@href,'nirafile.com/')]");
 - 			addObsoleteHost("ok2upload\\.com\/\\w+","//a[contains(@href,'ok2upload.com/')]");
 - 			addObsoleteHost("peejeshare\\.com\/\\w+","//a[contains(@href,'peejeshare.com/')]");
 - 			addObsoleteHost("premiuns\\.org\/\\w+","//a[contains(@href,'premiuns.org/')]");
 - 			addObsoleteHost("przeklej\\.net\/\\w+","//a[contains(@href,'przeklej.net/')]");
 - 			addObsoleteHost("qkup\\.net\/\\w+","//a[contains(@href,'qkup.net/')]");
 - 			addObsoleteHost("rapidupload\\.sk\/\\w+","//a[contains(@href,'rapidupload.sk/')]");
 - 			addObsoleteHost("rockdizfile\\.com\/\\w+","//a[contains(@href,'rockdizfile.com/')]");
 - 			addObsoleteHost("rocketfile\\.net\/\\w+","//a[contains(@href,'rocketfile.net/')]");
 - 			addObsoleteHost("share-now\\.net\/\\w+","//a[contains(@href,'share-now.net/')]");
 - 			addObsoleteHost("share76\\.com\/\\w+","//a[contains(@href,'share76.com/')]");
 - 			addObsoleteHost("sharebees\\.com\/\\w+","//a[contains(@href,'sharebees.com/')]");
 - 			addObsoleteHost("sharefiles\\.co\/\\w+","//a[contains(@href,'sharefiles.co/')]");
 - 			addObsoleteHost("slingfile\\.com\/\\w+","//a[contains(@href,'slingfile.com/')]");
 - 			addObsoleteHost("sms4file\\.com\/\\w+","//a[contains(@href,'sms4file.com/')]");
 - 			addObsoleteHost("space4file\\.com\/\\w+","//a[contains(@href,'space4file.com/')]");
 - 			addObsoleteHost("tigershare\\.net\/\\w+","//a[contains(@href,'tigershare.net/')]");
 - 			addObsoleteHost("toucansharing\\.com\/\\w+","//a[contains(@href,'toucansharing.com/')]");
 - 			addObsoleteHost("ubuntuone\\.com\/\\w+","//a[contains(@href,'ubuntuone.com/')]");
 - 			addObsoleteHost("unextfiles\\.com\/\\w+","//a[contains(@href,'unextfiles.com/')]");
 - 			addObsoleteHost("upaj\\.pl\/\\w+","//a[contains(@href,'upaj.pl/')]");
 - 			addObsoleteHost("upfile\\.biz\/\\w+","//a[contains(@href,'upfile.biz/')]");
 - 			addObsoleteHost("uploadbin\\.net\/\\w+","//a[contains(@href,'uploadbin.net/')]");
 - 			addObsoleteHost("uploadic\\.com\/\\w+","//a[contains(@href,'uploadic.com/')]");
 - 			addObsoleteHost("uploadinc\\.com\/\\w+","//a[contains(@href,'uploadinc.com/')]");
 - 			addObsoleteHost("uploading4u\\.eu\/\\w+","//a[contains(@href,'uploading4u.eu/')]");
 - 			addObsoleteHost("uploadjet\\.net\/\\w+","//a[contains(@href,'uploadjet.net/')]");
 - 			addObsoleteHost("uploadorb\\.com\/\\w+","//a[contains(@href,'uploadorb.com/')]");
 - 			addObsoleteHost("upthe\\.net\/\\w+","//a[contains(@href,'upthe.net/')]");
 - 			addObsoleteHost("uptorch\\.com\/\\w+","//a[contains(@href,'uptorch.com/')]");
 - 			addObsoleteHost("vidbox\\.yt\/\\w+","//a[contains(@href,'vidbox.yt/')]");
 - 			addObsoleteHost("videozer\\.com\/\\w+","//a[contains(@href,'videozer.com/')]");
 - 			addObsoleteHost("vreer\\.com\/\\w+","//a[contains(@href,'vreer.com/')]");
 - 			addObsoleteHost("wallobit\\.com\/\\w+","//a[contains(@href,'wallobit.com/')]");
 - 			addObsoleteHost("zooupload\\.com\/\\w+","//a[contains(@href,'zooupload.com/')]");
 - 			addObsoleteHost("xerver\\.co\/\\w+","//a[contains(@href,'xerver.co/')]");
 - 			addObsoleteHost("privatefiles\\.com\/\\w+","//a[contains(@href,'privatefiles.com/')]");
 - 			addObsoleteHost("bitshare\\.com\/\\w+","//a[contains(@href,'bitshare.com/')]");
 - 			addObsoleteHost("asfile\\.com\/\\w+","//a[contains(@href,'asfile.com/')]");
 - 			addObsoleteHost("billionuploads\\.com\/\\w+","//a[contains(@href,'billionuploads.com/')]");
 - 			addObsoleteHost("\\*{7,100}\/[\\w\\d]+","//a[contains(@href,'*******/')]");
 - 			addObsoleteHost("filesaur\\.com\/\\w+","//a[contains(@href,'filesaur.com/')]");
 - 			addObsoleteHost("rapidshare\\.com\/\\w+","//a[contains(@href,'rapidshare.com/')]");
 - 			addObsoleteHost("rapidshare\\.ru\/\\w+","//a[contains(@href,'rapidshare.ru/')]");
 - 			addObsoleteHost("filesfrog\\.net\/\\w+","//a[contains(@href,'filesfrog.net/')]");
 - 			addObsoleteHost("4savefile\\.com\/\\w+","//a[contains(@href,'4savefile.com/')]");
 - 			addObsoleteHost("bayfiles\\.com\/\\w+","//a[contains(@href,'bayfiles.com/')]");
 - 			addObsoleteHost("bayfiles\\.net\/\\w+","//a[contains(@href,'bayfiles.net/')]");
 - 			addObsoleteHost("dodane\\.pl\/\\w+","//a[contains(@href,'dodane.pl/')]");
 - 			addObsoleteHost("dotsemper\\.com\/\\w+","//a[contains(@href,'dotsemper.com/')]");
 - 			addObsoleteHost("egofiles\\.com\/\\w+","//a[contains(@href,'egofiles.com/')]");
 - 			addObsoleteHost("epicshare\\.net\/\\w+","//a[contains(@href,'epicshare.net/')]");
 - 			addObsoleteHost("fiberupload\\.net\/\\w+","//a[contains(@href,'fiberupload.net/')]");
 - 			addObsoleteHost("filemonkey\\.in\/\\w+","//a[contains(@href,'filemonkey.in/')]");
 - 			addObsoleteHost("filemonster\\.net\/\\w+","//a[contains(@href,'filemonster.net/')]");
 - 			addObsoleteHost("filepom\\.com\/\\w+","//a[contains(@href,'filepom.com/')]");
 - 			addObsoleteHost("filesbb\\.com\/\\w+","//a[contains(@href,'filesbb.com/')]");
 - 			addObsoleteHost("fileshareup\\.com\/\\w+","//a[contains(@href,'fileshareup.com/')]");
 - 			addObsoleteHost("filevice\\.com\/\\w+","//a[contains(@href,'filevice.com/')]");
 - 			addObsoleteHost("gigaup\\.fr\/\\w+","//a[contains(@href,'gigaup.fr/')]");
 - 			addObsoleteHost("isavelink\\.com\/\\w+","//a[contains(@href,'isavelink.com/')]");
 - 			addObsoleteHost("loombo\\.com\/\\w+","//a[contains(@href,'loombo.com/')]");
 - 			addObsoleteHost("megafiles\\.se\/\\w+","//a[contains(@href,'megafiles.se/')]");
 - 			addObsoleteHost("migupload\\.com\/\\w+","//a[contains(@href,'migupload.com/')]");
 - 			addObsoleteHost("mydisc\\.net\/\\w+","//a[contains(@href,'mydisc.net/')]");
 - 			addObsoleteHost("nitrobits\\.com\/\\w+","//a[contains(@href,'nitrobits.com/')]");
 - 			addObsoleteHost("potload\\.com\/\\w+","//a[contains(@href,'potload.com/')]");
 - 			addObsoleteHost("redload\\.net\/\\w+","//a[contains(@href,'redload.net/')]");
 - 			addObsoleteHost("shareprofi\\.com\/\\w+","//a[contains(@href,'shareprofi.com/')]");
 - 			addObsoleteHost("sharesuper\\.info\/\\w+","//a[contains(@href,'sharesuper.info/')]");
 - 			addObsoleteHost("sinhro\\.net\/\\w+","//a[contains(@href,'sinhro.net/')]");
 - 			addObsoleteHost("speedfile\\.cz\/\\w+","//a[contains(@href,'speedfile.cz/')]");
 - 			addObsoleteHost("speedshare\\.org\/\\w+","//a[contains(@href,'speedshare.org/')]");
 - 			addObsoleteHost("storage.novoro\\.net\/\\w+","//a[contains(@href,'storage.novoro.net/')]");
 - 			addObsoleteHost("swankshare\\.com\/\\w+","//a[contains(@href,'swankshare.com/')]");
 - 			addObsoleteHost("swatupload\\.com\/\\w+","//a[contains(@href,'swatupload.com/')]");
 - 			addObsoleteHost("upafile\\.com\/\\w+","//a[contains(@href,'upafile.com/')]");
 - 			addObsoleteHost("uploadmachine\\.com\/\\w+","//a[contains(@href,'uploadmachine.com/')]");
 - 			addObsoleteHost("uploadsat\\.com\/\\w+","//a[contains(@href,'uploadsat.com/')]");
 - 			addObsoleteHost("upshared\\.com\/\\w+","//a[contains(@href,'upshared.com/')]");
 - 			addObsoleteHost("usefile\\.com\/\\w+","//a[contains(@href,'usefile.com/')]");
 - 			addObsoleteHost("yourfiles\\.to\/\\w+","//a[contains(@href,'yourfiles.to/')]");
 - 			addObsoleteHost("zomgupload\\.com\/\\w+","//a[contains(@href,'zomgupload.com/')]");
 - 			addObsoleteHost("~[\\w\\s~]*","//a[contains(@href,'//~') or contains(@href,'//www.~')]");
 - 			addObsoleteHost("filemup\\.com\/\\w+","//a[contains(@href,'filemup.com/')]");
 - 			addObsoleteHost("tuxfile\\.com\/\\w+","//a[contains(@href,'tuxfile.com/')]");
 - 			addObsoleteHost("ultramegabit\\.com\/\\w+","//a[contains(@href,'ultramegabit.com/')]");
 - 			addObsoleteHost("uploadto\\.us\/\\w+","//a[contains(@href,'uploadto.us/')]");
 -       addObsoleteHost("filecore\\.co\\.nz\/\\w+","//a[contains(@href,'filecore.co.nz/')]");
 - 			addObsoleteHost("fileshare\\.in\\.ua\/\\w+","//a[contains(@href,'fileshare.in.ua/')]");
 - 			addObsoleteHost("firedrive\\.com\/\\w+","//a[contains(@href,'firedrive.com/')]");
 - 			addObsoleteHost("putlocker\\.com\/\\w+","//a[contains(@href,'putlocker.com/')]");
 - 			addObsoleteHost("lumfile\\.com\/\\w+","//a[contains(@href,'lumfile.com/')]");
 -       addObsoleteHost("lumfile\\.se\/\\w+","//a[contains(@href,'lumfile.se/')]");
 -       addObsoleteHost("lumfile\\.eu\/\\w+","//a[contains(@href,'lumfile.eu/')]");
 - 			addObsoleteHost("shared\\.com\/\\w+","//a[contains(@href,'shared.com/')]");
 - 			addObsoleteHost("stahovadlo\\.cz\/\\w+","//a[contains(@href,'stahovadlo.cz/')]");
 - 			addObsoleteHost("dizzcloud\\.com\/\\w+","//a[contains(@href,'dizzcloud.com/')]");
 -       addObsoleteHost("ddlstorage\\.com\/\\w+","//a[contains(@href,'ddlstorage.com/')]");
 -       addObsoleteHost("dataport\\.cz\/\\w+","//a[contains(@href,'dataport.cz/')]");
 -       addObsoleteHost("daj\\.to\/\\w+","//a[contains(@href,'daj.to/')]");
 - 			addObsoleteHost("sockshare\\.com\/\\w+","//a[contains(@href,'sockshare.com/')]");
 - 			addObsoleteHost("2drive\\.net\/\\w+","//a[contains(@href,'2drive.net/')]");
 - 			addObsoleteHost("bl\\.st\/\\w+","//a[contains(@href,'bl.st/')]");
 - 			addObsoleteHost("uncapped-downloads\\.com\/\\w+","//a[contains(@href,'uncapped-downloads.com/')]");
 - 			addObsoleteHost("freakshare\\.net\/\\w+","//a[contains(@href,'freakshare.net/')]");
 - 			addObsoleteHost("freakshare\\.com\/\\w+","//a[contains(@href,'freakshare.com/')]");
 - 			addObsoleteHost("sharebeast\\.com\/\\w+","//a[contains(@href,'sharebeast.com/')]");
 - 			addObsoleteHost("tufiles\\.ru\/\\w+","//a[contains(@href,'tufiles.ru/')]");
 - 			addObsoleteHost("crisshare\\.com\/\\w+","//a[contains(@href,'crisshare.com/')]");
 - 			addObsoleteHost("ryushare\\.com\/\\w+","//a[contains(@href,'ryushare.com/')]");
 - 			addObsoleteHost("burnupload\\.com\/\\w+","//a[contains(@href,'burnupload.com') or contains(@href,'burnupload.ihiphop.com')]");
 - 			addObsoleteHost("down4files\\.com\/\\w+","//a[contains(@href,'down4files.com/')]");
 - 			addObsoleteHost("edoc\\.com\/\\w+","//a[contains(@href,'edoc.com/')]");
 - 			addObsoleteHost("migahost\\.com\/\\w+","//a[contains(@href,'migahost.com/')]");
 - 			addObsoleteHost("movreel\\.com\/\\w+","//a[contains(@href,'movreel.com/')]");
 - 			addObsoleteHost("newfileland\\.com\/\\w+","//a[contains(@href,'newfileland.com/')]");
 - 			addObsoleteHost("jumbofile\\.net\/\\w+","//a[contains(@href,'jumbofile.net/')]");
 - 			addObsoleteHost("krotix\\.net\/\\w+","//a[contains(@href,'krotix.net/')]");
 - 			addObsoleteHost("cramit\\.in\/\\w+","//a[contains(@href,'cramitin.net') or contains(@href,'cramit.in')]");
 - 			addObsoleteHost("netload\\.in\/\\w+","//a[contains(@href,'netload.in/')]")
 - 			addObsoleteHost("quickshare\\.cz\/\\w+","//a[contains(@href,'quickshare.cz/')]");
 - 			addObsoleteHost("filepost\\.com\/\\w+","//a[contains(@href,'filepost.com/')]");
 - 			
 - 			
 -         // obsolete start			
 - 		}
 - 		//obsolete file hosts init end
 - 		
 - 		//Add Host Example
 - 		
 - /*				if (GM_getValue("Check_datafile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"datafile\.com\/\\w+",
 - 			'var captchaPanel|<link href="/css/files_download.css"',
 - 			'ErrorCode|ErrorCode 0: Invalid Link|btn-orange" href="#"', 
 - 			'You are downloading another file at this moment|You exceeded your free|Site Maintenance',
 - 			'<style type="text/css">',
 - 			"//a[contains(@href,'datafile.com')]",
 - 			true); 
 - 		} */
 -  
 - 		function addFileHost(linkRegex, isAliveRegex, isDeadRegex, isUnavaRegex, ispremRegex, xpathEx, tryLoop)
 - 		{
 - 			var host = new Array(7);
 - 			host[0] = linkRegex;
 - 			host[1] = isAliveRegex;
 - 			host[2] = isDeadRegex;
 - 			host[3] = isUnavaRegex;
 - 			host[6] = ispremRegex;
 - 			host[4] = xpathEx;
 - 			tryLoop ? host[5] = true : host[5] = false;
 - 			http_file_hosts.push(host);
 - 		}
 - 		if (GM_getValue("Check_megafileupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"megafileupload\.com\/..\/file\/",
 - 			'downloadbtn',
 - 			'is not found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'megafileupload.com')]");		
 - 		}
 - 		if (GM_getValue("Check_demo_dot_ovh_dot_eu_links", false))
 - 		{
 - 			addFileHost(
 - 			"demo\\.ovh\\.eu\/\\w+\/\\w+",
 - 			'download\\.gif"',
 - 			'p_point">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'demo.ovh.eu')]");
 - 		}
 - 		if (GM_getValue("Check_xkeepfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"xkeepfile\.com\/\\w+",
 - 			'File has been found|Click here to download',
 - 			'File cannot be found|class="error">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'xkeepfile.com/') or contains(@href,'Gamesena.com/')]");
 - 		}
 - 		if (GM_getValue("Check_safelinking_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"safelinking\\.net\/p\/\\w+",
 - 			'color:green;"',
 - 			'color:(?:red|orange);"',
 - 			'color:(?:grey|brown);"',
 - 			'optional2--',
 - 			"//a[contains(@href,'safelinking.net/p/')]",
 - 			true);
 - 		}
 - 		if (GM_getValue("Check_fastshare_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"fastshare\\.cz\/\\d+\/\\w*",
 - 			'dwntable">',
 - 			'nebyla nalezena|nebola nájdená|nie została odnaleziona|color:red;font-weight:bold;border\\-style:dashed|<i class="fa fa-copyright"></i>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'fastshare.cz')]");
 - 		}
 - 		if (GM_getValue("Check_fastshare_dot_org_links", false))
 - 		{
 - 			addFileHost(
 - 			"[fF]ast[sS]hare\\.org\/download",
 - 			'Download ">',
 - 			'Diese Datei wurde wegen|wurde kein Dateiname',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'fastshare.org/download') or contains(@href,'FastShare.org/download')]");
 - 		}
 - 		if (GM_getValue("Check_partage_dash_facile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"partage-facile\.com\/\\w+",
 - 			'class="title"><strong>|colspan="2"',
 - 			'Page introuvable|class="alert-message',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'partage-facile.com')]");
 - 		}
 - 		if (GM_getValue("Check_rapidgator_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"rapidgator\\.net\/file\/\\w+",
 - 			'/download/AjaxStartTimer|not more than 1 file at a time|your hourly downloads limit|почасовой лимит скачиваний|limite horaire de téléchargements|límite de descargas en una hora',
 - 			'Error 404|File not found|Error 500|Файл не найден|ファイルが探せませんでした|Fichier non trouvé|Archivo no encontrado|Select your plan',
 - 			'optional--',
 - 			'can be downloaded by premium only|files up to 500 MB in free mode|files up to 1 GB in free mode',
 - 			"//a[contains(@href,'rapidgator.net/file')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_relink_dot_us_links", false))
 - 		{
 - 			addFileHost(
 - 			"relink\\.us\/(?:f\/\\w+|go\\.php\\?id=\\d+|view\\.php\\?id=\\d+)",
 - 			'online_detail\\.png" alt="Status',
 - 			'(?:offline|partially)_detail\\.png" alt="Status|File deleted',
 - 			'unknown_detail\\.png" alt="Status',
 - 			'optional2--',
 - 			"//a[contains(@href,'relink.us/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uploadstube_dot_de_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadstube\\.de\/download\\.php\\?file=\\d+",
 - 			'div id="dl"',
 - 			'Sie haben den Link falsch',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadstube.de/download.php?file=')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_flyfiles_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"flyfiles\\.net\/\\w+",
 - 			'download_button"|"Download file"',
 - 			'File not found!|Файл не найден',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'flyfiles.net/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_wikiupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"wikiupload\\.com\/\\w+",
 - 			'download-button">',
 - 			'Sorry, File not found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'wikiupload.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hostuje_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"hostuje\\.net\/file\\.php\\?id=\\w+",
 - 			'file\\.php">|Pobierz Plik',
 - 			'Podany plik nie zosta',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hostuje.net/file')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_gettyfile_dot_ru_links", false))
 - 		{
 - 			addFileHost(
 - 			"gettyfile\\.ru\/\\d+",
 - 			'download\\.gif border',
 - 			'<center><font size="3">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'gettyfile.ru/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_turbobit_dot_ru_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:turbob1t|failoobmenik|filesmail|firebit|dlbit|files\\.china\\-gsm|3aka4aem|file\\.piratski|mnogofiles|links-free|turbo-bit|turbosfiles)\\.\\w+\/\\w+",
 - 			'download\\-file">',
 - 			'col-1">\\s*<h1>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'turbobit.ru/')  or contains(@href,'filesmail.ru/') or contains(@href,'failoobmenik.ru/')"+
 - 			" or contains(@href,'firebit.in/') or contains(@href,'dlbit.net/') or contains(@href,'files.china-gsm.ru/') or contains(@href,'3aka4aem.ru/')"+
 - 			" or contains(@href,'file.piratski.ru/') or contains(@href,'mnogofiles.com/') or contains(@href,'links-free.ru/')"+
 - 			" or contains(@href,'turbo-bit.ru/') or contains(@href,'turbosfiles.ru/')]"
 - 			);
 - 		} 
 - 		if (GM_getValue("Check_data_dot_hu_links", false))
 - 		{
 - 			addFileHost(
 - 			"data\\.hu\/get\/\\d+\/",
 - 			'download_box_button',
 - 			'missing\\.php',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'data.hu/get')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filesmelt_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filesmelt\\.com\/dl\/\\w+",
 - 			'(Your download is ready|Download File)',
 - 			'Sorry, but your',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filesmelt.com/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_indowebster_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:files\\.)?indowebster\\.com\/download\/\\w+\/",
 - 			'premiumBtn"',
 - 			'errorMessage"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'indowebster.com/download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_superload_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"superload\\.cz\/dl\/\\w+",
 - 			'icon-download">',
 - 			'soubor nebyl nalezen',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'superload.cz/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hulkfile_dot_eu_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:w\\.hulkfile\\.com|hulkfile\\.eu)\/\\w+",
 - 			'op" value="download',
 - 			'class="err">|width:500px;text-align:left;">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hulkfile.')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_easybytez_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"easybytez\\.com\/\\w+",
 - 			'op" value="download',
 - 			'stop_error\\.gif',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'easybytez.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filestore_dot_com_dot_ua_links", false))
 - 		{
 - 			addFileHost(
 - 			"filestore\\.com\\.ua\/\\?d=\\w+",
 - 			'tdrow1>',
 - 			'class=warn',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filestore.com.ua/?d=')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_netkups_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"netkups\\.com\/\\?d=\\w+",
 - 			'submit">Continue',
 - 			'page">File not found|deleted due to inactivity',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'netkups.com/?d=')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_openfile_dot_ru_links", false))
 - 		{
 - 			addFileHost(
 - 			"openfile\\.ru\/(?:video\/|)\\d+",
 - 			'videobox_left">',
 - 			'blog_title">|not found on this server',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'openfile.ru/')]"
 - 			);
 - 		}
 -     	if (GM_getValue("Check_extmatrix_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"extmatrix\\.com\/files\/\\w+",
 - 			'div class="success"',
 - 			'div class="error"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'extmatrix.com/files')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_sendfiles_dot_nl_links", false))
 - 		{
 - 			addFileHost(
 - 			"sendfiles\\.nl\/download.aspx\\?ID=\\w+",
 - 			'content_lnkDownload',
 - 			'error\\.aspx\\?',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sendfiles.nl/download.aspx')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_yourfilestore_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"yourfilestore\\.com\/download\/\\d+\/",
 - 			'download_data">',
 - 			'may have been deleted|<h1>Sorry!<\/h1>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'yourfilestore.com/download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_nekaka_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"nekaka\\.com\/d\/[\\w-]+",
 - 			'downloadForm">',
 - 			'invalid file link',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'nekaka.com/d')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filebig_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"filebig\\.net\/files\/\\w+",
 - 			'downloadFile">',
 - 			'<p>File not found<\/p>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filebig.net/files')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_gamefront_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"files\\.filefront\\.com\/\/;\\d+;;",
 - 			'downloadLink">',
 - 			'File not found, you',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'files.filefront.com')]"
 - 			);
 -  
 - 			addFileHost(
 - 			"gamefront\\.com\/files\/\\d+",
 - 			'downloadLink">',
 - 			'File not found, you',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'gamefront.com/files')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hyperfileshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:download\\.|)hyperfileshare\\.com\/(?:download\\.php\\?code=|d\/)\\w+",
 - 			'dnlLnk"',
 - 			'already been deleted',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hyperfileshare.com/download') or contains(@href,'hyperfileshare.com/d')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hellupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"hellupload\\.com\/\\w+",
 - 			'<h3>Download File<br',
 - 			'id="podstrona">|AVOID_IE_BUG',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hellupload.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_free_dash_uploading_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"free\\-uploading\\.com\/\\w+",
 - 			'op" value="download',
 - 			'class="err">|width:500px;text-align:left;">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'free-uploading.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_fileape_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"fileape\\.com\/download\\-",
 - 			'button_dl\\.png',
 - 			'does not exist\\.',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'fileape.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uppit_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:uppit\\.com|up\\.ht)\/\\w+",
 - 			'op" value="download',
 - 			'class="err">|style="width:500px;text-align:left;"|fish-404\\.png"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'up.ht/') or contains(@href,'uppit.com/')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_nosupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"nosupload\\.com\/(?:\\?d=)?\\w+",
 - 			'op" value="download',
 - 			'>File Not Found<',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'nosupload.com')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filesin_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filesin\\.com\/\\w+\/download\\.html",
 - 			'download_area">',
 - 			'error_note">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filesin.com/')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_nowdownload_dot_ch_links", false))
 - 		{
 - 			addFileHost(
 - 			"nowdownload\\.ch\/dl\/\\w+",
 - 			'alert-success"',
 - 			'This file does not exist!',
 - 			'The file is being transfered',
 - 			'optional2--',
 - 			"//a[contains(@href,'nowdownload.ch/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_axifile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"axifile\\.com(?:\/\w(2))?\/\\??\\w+",
 - 			'Dbutton_big"',
 - 			'download\\-error\\.php',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'axifile.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hulkshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"hulkshare\.com\/\\w+",
 - 			'download\.sam\.png|This is a private file|id="filename',
 - 			'File does not exist|fingerprint protected copyright',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hulkshare.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_turbobit_dot_net_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"turbobit\\.(?:net|pl)\/download\/folder\/\\d+",
 - 			'col-1">\\s*<s',
 - 			'col-1">\\s*<h',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'turbobit.') and contains(@href,'download/folder')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_turbobit_dot_net_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"turbobit\\.(?:net|pl)",
 - 			'id="download-gate-info',
 - 			'afterWait()',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'turbobit.net')]"
 - 			);
 - 		}
 -     if (GM_getValue("Check_hitfile_dot_net_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"hitfile\\.net\/download\/folder\/\\d+",
 - 			'content">\\s*<s',
 - 			'content">\\s*<h',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'hitfile.net/download/folder')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_movshare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"movshare\\.net\\/video\\/\\w+",
 - 			'optional--"',
 - 			'no longer exists',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'movshare.net/video')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_plunder_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"plunder\.com\/\\w+",
 - 			'x\/download\\.gif',
 - 			'404 - File or directory not found.',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'plunder.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_mafiastorage_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"mafiastorage\\.com\/\\w+",
 - 			'op" value="download',
 - 			'class="err">|style="width:500px;text-align:left;"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'mafiastorage.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uploadspace_dot_pl_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadspace\.pl\/plik\\w+",
 - 			'Downloading .+? \\|',
 - 			'Downloading a file',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadspace.pl/plik')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uploadingit_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadingit\\.com\/file\/\\w+",
 - 			'downloadTitle">',
 - 			'deleteContent">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadingit.com/file')]"
 - 			);
 - 		}
 -    	if (GM_getValue("Check_rghost_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"rghost\.(?:net|ru)\/(?:|private\/)\\d+",
 - 			'download_link|btn large download',
 - 			'file is restricted|File is deleted|503 Service Unavailable',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'rghost.')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_xdisk_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"xdisk\\.cz\/(?:..\/)?download\\.php\\?id=\\w+",
 - 			'">Staženo:\\s*<\/span>',
 - 			'Soubor, který hledáte nenalezen',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'xdisk.cz/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_expressleech_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"expressleech\.com\/\\w+",
 - 			'src="/img/Download.gif"|var _gaq =',
 - 			'var rr =|403 Forbidden',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'expressleech.com')]");
 - 		}
 - 		if (GM_getValue("Check_2downloadz_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"2downloadz\.com\/\\w+",
 - 			'color="#848484|src="images/Download.png"|color:#238DCA',
 - 			'color="#006DCC|File error',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'2downloadz.com')]");
 - 		}
 - 		if (GM_getValue("Check_mightyupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"mightyupload\.com\/\\w+",
 - 			'background:#ccc;text-align|CONTENT="Download File"',
 - 			'style="background:#eee|var rr =|File Not Found',
 - 			'error-code">1010',
 - 			'optional2--',
 - 			"//a[contains(@href,'mightyupload.com')]");
 - 		}
 - 		if (GM_getValue("Check_anysend_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"anysend\.com\/\\w+",
 - 			'var openCalled=false;|content="noindex"',
 - 			'_trackPageview',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'anysend.com')]");
 - 		}
 - 		if (GM_getValue("Check_datafile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"datafile\.com\/\\w+",
 - 			'var captchaPanel', //|<link href="/css/files_download.css"',
 - 			'ErrorCode|ErrorCode 0: Invalid Link|btn-orange" href="#"', 
 - 			'You are downloading another file at this moment|You exceeded your free|Site Maintenance',
 - 			'; display:none;">|<a style="margin-top: auto; margin-bottom: auto;" class="get-premium-button" href="javascript:void(0)">', //<style type="text/css">
 - 			"//a[contains(@href,'datafile.com')]",
 - 			true); 
 - 		}
 - 		if (GM_getValue("Check_upstore_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"upstore\.net\/\\w+",
 - 			'style="margin-top: 20px">|style="text-align:center; margin: 20px 0 100px;">',
 - 			'File not found|onload="redirect|class="error">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'upstore.net')]");
 - 		}
 - 		if (GM_getValue("Check_upsto_dot_re_links", false))
 - 		{
 - 			addFileHost(
 - 			"upsto\.re\/\\w+",
 - 			'style="margin-top: 20px">|style="text-align:center; margin: 20px 0 100px;">',
 - 			'File not found|onload="redirect|class="error">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'upsto.re')]");
 - 		}
 - 		if (GM_getValue("Check_speedy_dot_sh_links", false))
 - 		{
 - 			addFileHost(
 - 			"speedy\.sh\/\\w+",
 - 			'bgcolor=#eeeeee|class="addthis',
 - 			'File not found|downloadfilenamenotfound>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'speedy.sh')]");
 - 		}
 - 		if (GM_getValue("Check_sanshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"sanshare\.com\/\\w+",
 - 			'SANSHARE_TOPBANNER|offset-1"><h3><b>Download File',
 - 			'offset-1"><b>File Not Found<|width:500px;text-align',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sanshare.com')]");
 - 		}
 - 		if (GM_getValue("Check_kingfiles_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"kingfiles\.net\/\\w+",
 - 			'method_free',
 - 			'var rr =|"description" CONTENT="Download File ">|<div style="width:500px;text-align:left;">|The file was removed by administrator',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'kingfiles.net')]");
 - 		}
 - 		if (GM_getValue("Check_uploadhero_dot_co_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadhero\\.co\/dl\/\\w+",
 - 			'class="nom_de_fichier"|Unlimited downloads|Estimated download time|Lien de téléchargement"',
 - 			'not available on our server|pas disponible sur nos serveurs|Le lien du fichier est incorrect',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadhero.co/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_secureupload_dot_eu_links", false))
 - 		{
 - 			addFileHost(
 - 			"secureupload\\.eu\/\\w+",
 - 			'Downloading',
 - 			'cannot be found|File Not Found|could not be found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'secureupload.eu')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_ge_dot_tt_links", false))
 - 		{
 - 			addFileHost(
 - 			"ge\.tt\/\\w+",
 - 			'downloads pic',
 - 			'is NOT the same as',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'ge.tt')]");
 - 		}
 -     if (GM_getValue("Check_filefactory_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filefactory\.com\/\\w+",
 - 			'div id="file_holder"|download.css',
 - 			'File Removed|Invalid Download Link|File Unavailable|Server Failed|Datei entfernt|This file has been removed|Invalid Download Link',
 - 			'Server Maintenance|temporarily overloaded',
 - 			'optional2--',
 - 			"//a[contains(@href,'filefactory.com')]");
 - 		}
 - 		if (GM_getValue("Check_filesflash_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"filesflash\.net\/\\w+",
 - 			'align:right">Filename:',
 - 			'class="msg">',
 - 			'optional--',
 - 			'optional2--',
 - 			
 - 			"//a[contains(@href,'filesflash.net')]");
 - 		}
 - 		if (GM_getValue("Check_rapidgator_dot_net_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"rapidgator\\.net\/folder\/\\w+",
 - 			'href="/folder/',
 - 			'class="empty|Folder not found|Carpeta no encontrada|Dossier non trouvé|Папка не найдена',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'rapidgator.net/folder')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_salefiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"salefiles\.com\/\\w+",
 - 			'<Title>Download|CONTENT="Download',
 - 			'font:15px Arial|background:#eee;',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'salefiles.com')]");
 - 		}
 - 		if (GM_getValue("Check_megairon_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"megairon\.net\/\\w+",
 - 			'border: 5px #ffeb90 solid;',
 - 			'CONTENT="Download File ">|var rr =',
 - 			'error-code">523',
 - 			'optional2--',
 - 			"//a[contains(@href,'megairon.net')]",
 - 			true);
 - 		}
 - 		if (GM_getValue("Check_datoid_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"datoid\.cz\/\\w+",
 - 			'btn-download|class="icon-download-large"',
 - 			'Stránka nenalezena|error-404|Soubor byl zablokován',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'datoid.cz')]");
 - 		}
 - 		if (GM_getValue("Check_stiahni_dot_si_links", false))
 - 		{
 - 			addFileHost(
 - 			"stiahni\.si\/\\w+",
 - 			'report_icon.png"|slow-download-button',
 - 			'none.png|deleted|<h2>Error 500</h2>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'stiahni.si')]");
 - 		}
 - 		if (GM_getValue("Check_cloudstor_dot_es_links", false))
 - 		{
 - 			addFileHost(
 - 			"cloudstor\.es\/\\w+",
 - 			'"btn_download"',
 - 			'404: Page Not Found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'cloudstor.es')]");
 - 		}
 - 		if (GM_getValue("Check_streamfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"streamfile\.com\/\\w+",
 - 			'class="btn',
 - 			'class="green-btn',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'streamfile.com')]");
 - 		}
 - 		if (GM_getValue("Check_eyesfile_dot_ca_links", false))
 - 		{
 - 			addFileHost(
 - 			"eyesfile\.ca\/\\w+",
 - 			'value="Get Link',
 - 			'var rr =',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'eyesfile.ca')]");
 - 		}
 - 		if (GM_getValue("Check_filemoney_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filemoney\.com\/\\w+",
 - 			'og:title',
 - 			'404 Not Found|<Title>FileMoney|File Not Found|class="err">DMCA</b>',
 - 			'error-code">1010',
 - 			'optional2--',
 - 			"//a[contains(@href,'filemoney.com')]");
 - 		}
 - 		if (GM_getValue("Check_uploadboy_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadboy\.com\/\\w+",
 - 			'width="740">|method_free',
 - 			'var rr =|background:#ffffff|not be found|file was removed',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadboy.com')]");
 - 		}
 - 		if (GM_getValue("Check_speedshare_dot_eu_links", false))
 - 		{
 - 			addFileHost(
 - 			"speedshare\.eu\/\\w+",
 - 			'favicon.png|color:#3d87c0|cross.png"',
 - 			'var rr =|File Not Found|style="background:#eee',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'speedshare.eu')]");
 - 		}
 - 		if (GM_getValue("Check_unlimitzone_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"unlimitzone\.com\/\\w+",
 - 			'name="method_free',
 - 			'var rr =|File Not Found|removed by administrator|class="err">|Файл не найден|Datei nicht gefunden|fichier non trouve|Dosya bulunamadД±|Nie znaleziono pliku|ไม่พบไฟล์ที่ต้องการ|Nie znaleziono pliku|Archive no Encontrado|ファイルが見つかりません。|File nem talГЎlhatГі|File tidak ditemukan|Bestand niet gevonden',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'unlimitzone.com')]");
 - 		}	
 - 		if (GM_getValue("Check_rioupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"rioupload\.com\/\\w+",
 - 			'sell.jpg',
 - 			'var rr =',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'rioupload.com')]");
 - 		}
 - 		if (GM_getValue("Check_rg_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"rg\.to\/\\w+",
 - 			'/download/AjaxStartTimer|not more than 1 file at a time|your hourly downloads limit|почасовой лимит скачиваний|limite horaire de téléchargements|límite de descargas en una hora',
 - 			'Error 404|File not found|Select your plan|Fichier non trouvé|Archivo no encontrado|ファイルが探せませんでした|Файл не найден',
 - 			'optional--',
 - 			'can be downloaded by premium only|files up to 500 MB in free mode',
 - 			"//a[contains(@href,'rg.to')]");
 - 		}
 - 		if (GM_getValue("Check_jumbofiles_dot_org_links", false))
 - 		{
 - 			addFileHost(
 - 			"jumbofiles\.org\/\\w+",
 - 			'H71C5.png|class="downloadtitle">',
 - 			'var swfu|ViewSourceBIN.png',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'jumbofiles.org')]");
 - 		}
 - 		if (GM_getValue("Check_fshare_dot_vn_links", false))
 - 		{
 - 			addFileHost(
 - 			"fshare\\.vn\/file\/\\w+",
 - 			'action="#download"|left; width: 330px;">|class="bt_down"',
 - 			'không tồn tại|class="color_red m_t_50"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'fshare.vn/file')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_spaceforfiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"spaceforfiles\.com\/\\w+",
 - 			'btn_slowspeed_b.jpg|value="download1|class="btn_blue',
 - 			'var rr =|AVOID_IE_BUG',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'spaceforfiles.com')]");
 - 		}
 - 		if (GM_getValue("Check_google_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"google\\.com\/file\/\\w+",
 - 			'content="!">|color:#2d2d2d',
 - 			'12pt; font-weight:|class="errorMessage"|F0F6FF',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'google.com/file')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_google_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"docs.google.com\/\\w+",
 - 			'content="!">|color:#2d2d2d',
 - 			'12pt; font-weight:|class="errorMessage"|F0F6FF|Error 404',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'docs.google.com')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_google_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"drive.google.com\/\\w+",
 - 			'content="!">|color:#2d2d2d|id="uc-download-link',
 - 			'12pt; font-weight:|class="errorMessage"|F0F6FF|Error 404',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'drive.google.com')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_up_dot_media1fire_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"up.media1fire\.com\/\\w+",
 - 			'class="addthis_|value="download',
 - 			'var rr =|AVOID_IE_BUG|<div style="width:500px;text-align:left;">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'up.media1fire.com')]");
 - 		}
 - 		if (GM_getValue("Check_depfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"depfile\.com\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|deleted by the owner|Invalid Link',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'depfile.com')]");
 - 		}
 - 		if (GM_getValue("Check_go4up_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"go4up\.com\/\\w+",
 - 			'style="width: 100%;">|value="Access|download_line|img/webbuttoned.gif">',
 - 			'<title>GO4UP|dmca',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'go4up.com')]");
 - 		}	
 - 		if (GM_getValue("Check_redbunker_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"redbunker\.net\/\\w+",
 - 			'name="method_free"',
 - 			'color="red">Unknow / Bilinmiyor<',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'redbunker.net')]");
 - 		}
 - 		if (GM_getValue("Check_divxpress_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"divxpress\.com\/\\w+",
 - 			'btn_download|logo.png"',
 - 			'AVOID_IE_BUG|var rr =',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'divxpress.com')]");
 - 		}
 - 		if (GM_getValue("Check_anafile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"anafile\.com\/\\w+",
 - 			'width="881" valign="top|color="#800080"|name="go"',
 - 			'style="width:500px;text-align:left;">|file was deleted|AVOID_IE_BUG',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'anafile.com')]");
 - 		}
 - 		if (GM_getValue("Check_uploadable_dot_ch_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadable\\.ch\/file\/\\w+",
 - 			'captcha.js"|payment.js"|class="btn_download"',
 - 			'<div class="icon_err">|<div class="errorBox">|"error_arrow">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadable.ch/file')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_arabloads_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"arabloads\.net\/\\w+",
 - 			'name="method_free"|name="method_premium"',
 - 				'background:#eee;font:15px Arial;">|AVOID_IE_BUG|Verdana;padding:3px;">Error|Not Found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'arabloads.net')]");
 - 		}
 - 		if (GM_getValue("Check_sharerepo_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"sharerepo\.com\/\\w+",
 - 			'name="method_free"',
 - 			'var public_on=|The file you were looking for could not be found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sharerepo.com')]");
 - 		}
 - 		if (GM_getValue("Check_sfshare_dot_se_links", false))
 - 		{
 - 			addFileHost(
 - 			"sfshare\.se\/\\w+",
 - 			'id="btn_download"|class="btn btn-primary txt-bold" value="',
 - 			'AVOID_IE_BUG|var rr =|style="width:500px;text-align:left;">|Reason for deletion|The file was removed',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sfshare.se')]");
 - 		}
 - 		if (GM_getValue("Check_files_dot_fm_links", false))
 - 		{
 - 			addFileHost(
 - 			"files\.fm\/\\w+",
 - 			'dl.png"|background-color: transparent',
 - 			'margin: 40px 40px|background: none;',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'files.fm')]");
 - 		}
 - 		if (GM_getValue("Check_koofile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"koofile\.com\/\\w+",
 - 			'value="download1">|name="method_free"',
 - 			'class="overview-content c_text-box ">|style="padding-top:3px;">|class="rt1 c">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'koofile.com')]");
 - 		}
 - 		if (GM_getValue("Check_vidxden_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"vidxden\\.com\/\\w+",
 - 			'Continue to Video"',
 - 			'No such file',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'vidxden.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_muchshare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"muchshare\\.net\/\\w+",
 - 			'id="btn_download"',
 - 			'File Not Found|width: 500px; text-align: left;',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'muchshare.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_daten_dash_hoster_dot_de_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:daten-hoster\\.de\/file\/\\w+|filehosting\\.org\/file\/\\w+|xtraupload\\.de\/\\?d=\\w+)",
 - 			'Details zur Datei|Details page',
 - 			'Jetzt hochladen|upload now',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'daten-hoster.de/file') or contains(@href,'filehosting.org/file') or contains(@href,'xtraupload.de')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_upload_dash_il_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:upload-il|przeslij)\.net\/(?:en|he|ar|ru|)\/?\\w+",
 - 			'downloadbtn"',
 - 			'DL_FileNotFound',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'upload-il.net') or contains(@href,'przeslij.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_fileflyer_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"fileflyer\.com\/view\/\\w+",
 - 			'(?:dwl|locked)btn"',
 - 			'error.gif"|link">Removed|removedlink">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'fileflyer.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filestore_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"filestore\.to\/\\?d=\\w+",
 - 			'"downloading"',
 - 			'Datei wurde nicht gefunden',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filestore.to')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_easy_dash_share_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:w\\d*\.|)(?:crocko|easy-share)\\.com\/.",
 - 			'fz24">Download|class="pl15">',
 - 			'msg-err"|the page you\'re looking for|1>400 Bad Request<|class="search_result">|Searching for file|Information is not available|name="keywords" content="">|<title>Crocko.com 404',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'easy-share.com') or contains(@href,'crocko.com')]"
 - 			);
 - 		}
 - /*		if (GM_getValue("Check_burnupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"burnupload\\.(?:com\/\\?d=|ihiphop\\.com\/download\\.php\\?id=)\\w+",
 - 			'File size:',
 - 			'file is not found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'burnupload.com') or contains(@href,'burnupload.ihiphop.com')]"
 - 			);
 - 		} */
 - 		if (GM_getValue("Check_datei_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"datei\\.to\/\\??\\w+",
 - 			'icon_downloaden\\.png|>Download starten<',
 - 			'Datei wurde nicht gefunden|icon_deleted.png',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'datei.to')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_yunfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 				"(?:yunfile|filemarkets)\\.com\/\\w+",
 - 			'<body class="body" id="body">|value="Slow Download"',
 - 			'<body class="body" >',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'yunfile.com') or contains(@href,'filemarkets.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uploadhero_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadhero\\.com\/dl\/\\w+",
 - 			'content-dl">',
 - 			'men_file_lost\\.jpg"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadhero.com/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_unibytes_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"unibytes\\.com\/[\\w\.]+",
 - 			'trying to download|пытаетесь загрузить файл|tes entrain de tlcharger',
 - 			'File not found|Файл не найден|',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'unibytes.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hellshare_dot_com_links", false)) //very old type of links
 - 		{
 - 			addFileHost(
 - 			"www\\.hellshare\\.com\/\\d+",
 - 			'tab\\-details"',
 - 			'list-purp-2"|not found on this server',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'www.hellshare.com')]"
 - 			);
 - 		}
 - /*		if (GM_getValue("Check_quickshare_dot_cz_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"quickshare\\.cz\/slozka-\\d+",
 - 			'Počet souborů: <strong>[1-9]',
 - 			'Počet souborů: <strong>0|Chyba! Taková složka neexistuje',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'quickshare.cz/slozka')]"
 - 			);
 - 		} */
 - 		if (GM_getValue("Check_filefactory_dot_com_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"filefactory\\.com\/f\/\\w+",
 - 			'folderFileList">',
 - 			'table class="items"|Pointer" class="red">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filefactory.com/f/')]"
 - 			); 
 - 		} 
 - 		if (GM_getValue("Check_netload_dot_in_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"netfolder\\.in\/\\w+",
 - 			'list" value="http',
 - 			'InPage_Error">|list" value=""',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'netfolder.in')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_load_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			'(?:www\\.|\\/)load\\.to\\/(?:\\w{10}\\/.|\\?d=\\w{10})',
 - 			'"download_table_left">Size',
 - 			'Can\'t find file',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'/load.to/') or contains(@href,'www.load.to/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_divshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"divshare\\.com\/download\/",
 - 			'download_new\.png',
 - 			'have been removed',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'divshare.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_euroshare_dot_eu_links", false))
 - 		{
 - 			addFileHost(
 - 			"euroshare\\.(?:eu|pl|sk|cz|hu)\/file\/\\d+",
 - 			'nazev-souboru">',
 - 			'<div id="obsah">\\s*<h1>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'euroshare.eu/file')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_files_dot_mail_dot_ru_links", false))
 - 		{
 - 			addFileHost(
 - 			'files\\.mail\\.ru/(?:\\w*)',
 - 			'fileList',
 - 			'errorMessage',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'files.mail.ru')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_megashares_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:d\\d+\.|)megashares\.com\/(?:dl|index\.php\\?d|\\?d\\d+=\\w+)",
 - 			'Filesize',
 - 			'Invalid|deleted|Could not download file',
 - 			'slots|scheduled maintenance',
 - 			'optional2--',
 - 			"//a[contains(@href,'megashares.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_narod_dot_ru_links", false))
 - 		{
 - 			addFileHost(
 - 			'narod\\.(?:yandex\\.|)ru\/disk\/',
 - 			'b-submit',
 - 			'b-download-virus-note|headCode">404<',
 - 			'Внутренняя ошибка сервиса',
 - 			'optional2--',
 - 			"//a[contains(@href,'narod.ru') or contains(@href,'narod.yandex.ru')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_rayfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"rayfile\\.com\/",
 - 			'FILEtitleTXT',
 - 			'blueRow',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'rayfile.com/') and contains(@href,'files')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filesmonster_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filesmonster\\.com\/download\\.php\\?id=\\w+",
 - 			'button_green_body"',
 - 			'error">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filesmonster.com/download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_usaupload_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			'usaupload\\.net\/d\/(?:\w*)',
 - 			'<strong>File size:</strong>',
 - 			'is not available',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'usaupload.net/d/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_sendspace_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'sendspace\\.com\/file\/\\w+',
 - 			'file_description',
 - 			'msg error"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sendspace.com/file')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_sendspace_dot_pl_links", false))
 - 		{
 - 			addFileHost(
 - 			'sendspace\\.pl\/file\/\\w+',
 - 			'download_file"',
 - 			'Podany plik nie',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sendspace.pl/file')]"
 - 			);
 - 		}
 -         if (GM_getValue("Check_uploading_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'uploading\\.com\/(?:files\/)?\\w+',
 - 			'free_method">',
 - 			'file_error">|error_404">|file not found|OOPS! Looks like file not found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploading.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_gigasize_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'gigasize\\.com\/get\\.php(?:\/\\d+|\\?d=\\w+)',
 - 			'fileId"',
 - 			'error">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'gigasize.com/get')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_good_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'good\\.net\/(?:_|dl)',
 - 			'Free Download',
 - 			'Not Found',
 - 			'Forbidden',
 - 			'optional2--',
 - 			"//a[contains(@href,'good.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_2shared_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'2shared\\.com\/(?:file|video|document|audio)\/\\w*',
 - 			'File size',
 - 			'File not found|is not valid|/images/important.gif',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'2shared.com/file/') or contains (@href,'2shared.com/audio/') or contains (@href,'2shared.com/document/') or contains (@href,'2shared.com/video/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_turboupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'turboupload\\.com\/\\w*',
 - 			'You have requested',
 - 			'File Not Found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'turboupload.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_gigapeta_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'gigapeta\\.com\/dl\/',
 - 			'Download file|Скачать файл| Herunterzuladen|Scarica il file|Cargar el fichero|Charger le fichier',
 - 			'404|page_error',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'gigapeta.com/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_veehd_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'veehd\.com\/video\/.*?',
 - 			'No sound|Download video',
 - 			'Featured Videos',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'veehd.com') and contains(@href,'video')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_vip_dash_file_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'(?:u\\d+\\.)?vip-file\\.com\/download.*?\/(?:.*?)\/(?:.*?)\\.html',
 - 			'fast_download_form">|submit_sms_download',
 - 			'<p style="text-align:center">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'vip-file.com/download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_letitbit_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			'(?:u\\d+\\.)?letitbit\\.net\/download\/\\w+',
 - 			'download\\-pnl ',
 - 			'color:#000">|Запрашиваемый файл не найден|страница не существует|File not found|',
 - 			'optional--',
 - 			'optional2--',
 - 				
 - 			"//a[contains(@href,'letitbit.net/download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_ifolder_dot_ru_links", false))
 - 		{
 - 			addFileHost(
 - 			'ifolder\.ru\/\\d+',
 - 			'file-info',
 - 			'ui-state-error',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'ifolder.ru')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_fileswap_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'fileswap\\.com\/dl\/\\w+',
 - 			'bttnDownloadLink"',
 - 			'rounded_block_error"',
 - 			'is temporary unavailable|disponible en estos momentos|vorläufig unerreichbar|Файл временно недоступен',
 - 			'optional2--',
 - 			"//a[contains(@href,'fileswap.com/dl')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filecloud_dot_io_links", false))
 - 		{
 - 			addFileHost(
 - 			'(?:s\\d+\\.)?filecloud\\.io\/\\w+',
 - 			'var __error         	=	0',
 - 			'FILES__DOESNT_EXIST|removed or did not exist',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filecloud.io/')]"
 - 			);
 - 			
 - 			addFileHost(
 - 			'ifile\\.it\/\\w+',
 - 			'var __error         	=	0',
 - 			'FILES__DOESNT_EXIST',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'ifile.it/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_solidfiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			'solidfiles\\.com\/d\/\\w+',
 - 			'id="download"|content="Download',
 - 			'>Not found<|<h2>404</h2>|Page not found|<h1>404</h1>|File not available|no longer available',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'solidfiles.com/d')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_shareflare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 				"(?:.\\.|)shareflare\\.net",
 - 			'download-pnl|<div class="premium-block">',
 - 			'File not found|ПоиŃĐş зеркала на фа|<div id="captcha"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'shareflare.net') and contains(@href,'download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_u18116681_dot_shareflare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"u18116681.shareflare\\.net",
 - 			'download-pnl|<div class="premium-block">',
 - 			'File not found|ПоиŃĐş зеркала на фа|<div id="captcha"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'shareflare.net') and contains(@href,'download')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uloz_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:uloz|ulozto|bagruj|zachowajto)\\.(to|cz|sk|net|pl)\/\\w",
 - 			'fileDownload">|fileSize">',
 - 			'grayButton deletedFile">|Stránka nenalezena|upload-button"|jako soukromý.',
 - 			'passwordProtectedFile">|frmaskAgeForm-disagree',
 - 			'optional2--',
 - 			"//a[contains(@href,'bagruj.cz') or contains(@href,'uloz.to') or contains(@href,'ulozto.') or contains(@href,'zachowajto.pl')]",
 - 			true
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hellspy_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"hellspy\.(?:com|cz|sk|hu|pl)\/\\w+",
 - 			'file\\-list-orderby|section-filedetail">',
 - 			'<\/span><\/h2>\\s*<p>|list-purp-2">|flash info sticky">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hellspy.')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_leteckaposta_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:leteckaposta\\.cz|sharegadget\\.com)\/\\d+",
 - 			'<body onload="">',
 - 			'neexistuje|not exist',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'leteckaposta.cz') or contains(@href,'sharegadget.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_stahovanizasms_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"stahovanizasms\\.cz\/\\w+",
 - 			'download\\.png>|font-size:11px><tr>',
 - 			'smaz.n u.ivatelem|font-size:11px><\/table>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'stahovanizasms.cz')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_share_dash_links_dot_biz_links", false))
 - 		{
 - 			addFileHost(
 - 			"share-links\\.biz\/\\w*",
 - 			'online\\.gif',
 - 			'(?:offline|parts)\\.gif',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'share-links.biz')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_4shared_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"4shared\\.com\/.+\/",
 - 			'<input type="hidden" class="jsSocialTwDefaultText" value=',
 - 			'class="warn\"|big red"|GetDataBack',
 - 			'Service Unavailable',
 - 			'optional2--',
 - 			"//a[contains(@href,'4shared.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_zippyshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 				"(?:www\\d+\.|)zippyshare\.com\/",
 - 			'download\.png|Download Now|images/download_small.png|id="dlbutton"',
 - 			'not exist|Status 404',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'zippyshare.com') and contains(@href,'file.html')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_mediafire_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"mediafire\.com\/",
 - 			'download_file_title|dlFileName|id="PLAY_downloadButton"',
 - 			'error\\.php\\?|error_msg_title|<title>Simple File Sharing|No files found',
 - 			'set to private',
 - 			'optional2--',
 - 			"//a[contains(@href,'mediafire.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uploaded_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			'(?:uploaded\\.(?:to|net)\/(?:.id|file|folder|f|410|404))|(?:ul\\.to\/)',
 - 			'<h2>Authentification</h2></li>|MB</small>|KB</small>|1,00 GB',
 - 			'box_red|Error: 404|Error: 410|fileList"><thead><tr><td colspan="2"><\/td><\/tr><\/thead><tbody>\\s*<tr>|<title>uploaded.net</title>',
 - 			'optional--',
 - 			'GB</small>',
 - 			"//a[contains(@href,'uploaded.to/') or contains(@href,'uploaded.net/') or contains(@href,'ul.to/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_ulozisko_dot_sk_links", false))
 - 		{
 - 			addFileHost(
 - 			"ulozisko\.sk\/",
 - 			'Detaily',
 - 			'neexistuje',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'ulozisko.sk')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_upnito_dot_sk_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:dl.\\.|)upnito\\.sk\/(download|subor|file)",
 - 			'download.php',
 - 			'notfound|upload\\-suborov\\.php"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'upnito.sk')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_box_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"box\.com\/\\w+",
 - 			'download-file-btn|id="download_button|preview-download',
 - 			'BIyMin.png| <div class="error_message|link has been removed',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'app.box.com')]");
 - 		} 
 - 		if (GM_getValue("Check_uptobox_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"uptobox\\.com\/\\w+",
 - 			'Create Download Link">|Lien de téléchargement',
 - 			'The file expired|The file was deleted|Fichier introuvable|not available in your country',
 - 			'Maintenance',
 - 			'optional2--',
 - 			"//a[contains(@href,'uptobox.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_sharecash_dot_org_links", false))
 - 		{
 - 			addFileHost(
 - 			"sharecash\\.org\/download\\.php\\?file=\\d+",
 - 			'FILE DOWNLOAD<',
 - 			'File Does Not Exist',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sharecash.org/download.php')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_depositfiles_dot_com_links", false)) //folders
 - 		{
 - 			addFileHost(
 - 			"depositfiles\\.com\/folders\/\\w+",
 - 			'<div class="progressContainer">',
 - 			'<div id="files" class="files">\\s*<\/div>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'depositfiles.com/folders')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_rapidfileshare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"rapidfileshare\\.net/\\w+",
 - 			'<div id="upload-header-bg">',
 - 			'<div style="width:500px;text-align:left;">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'rapidfileshare.net/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_stiahnito_dot_sk_links", false))
 - 		{
 - 			addFileHost(
 - 			"stiahnito\\.sk/",
 - 			'<span class="filesize right">',
 - 			'<ol class="list-purp-2">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'stiahnito.sk/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_rusfolder_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"rusfolder\\.(?:com|net)",
 - 			'"download-step-one-form"|Название: <b>|Файлы|Файлы в папке',
 - 			'"ui-state-error ui-corner-all"|File is removed|File not found|удален',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'rusfolder')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_fileover_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"fileover\\.net/\\d+",
 - 			'id="filesize"',
 - 			'Not found or deleted|The following file is unavailable',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'fileover.net/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_catshare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"catshare\\.net/\\w+",
 - 			'"icon-share',
 - 			'alert alert-error',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'catshare.net/')]"
 - 			);
 - 		}
 -         if (GM_getValue("Check_anonfiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"anonfiles\\.com/\\w+",
 - 			'"download_button"',
 - 			'<legend><b>404</b>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'anonfiles.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_mixturecloud_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"mixturecloud\\.com/media/\\w+",
 - 			'"btn icon i_globe gray share_150',
 - 			'"s_cross_close"></span> 404:',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'mixturecloud.com/media/')]"
 - 			);
 - 		}
 -     	if (GM_getValue("Check_akafile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"akafile\\.com\/\\w+",
 - 			'download1',
 - 			'File Not Found',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'akafile.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_creafile_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"creafile\\.net\/\\w+",
 - 			'downloadblock',
 - 			'errtitle',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'creafile.net/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_hugefiles_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"hugefiles\\.net\/\\w+",
 - 			'download1|class="btn-create-download" value="Create Download Link">',
 - 			'File Not Found|No such file with this filename|tyle="width:500px;text-align:left;">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'hugefiles.net/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_sendmyway_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"sendmyway\\.com\/\\w+",
 - 			'id="btn_download"',
 - 			'500px;text-align:left;"|<center><h3>',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'sendmyway.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_upload_dot_ee_links", false))
 - 		{
 - 			addFileHost(
 - 			"upload\\.ee\/\\w+",
 - 			'onmouseout="document.dllink.src',
 - 			'There is no such file.|File was deleted|Fail kustutati|Файл удалён|Такого файла нет',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'upload.ee/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_shareplace_dot_org_links", false))
 - 		{
 - 			addFileHost(
 - 			"shareplace\\.org\/\\?\\w+",
 - 			'Download-Link',
 - 			'Your requested file is not found|Select file to send',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'shareplace.org/?')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uploadc_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploadc\\.com\/\\w+",
 - 			'id="prebut"',
 - 			'File Not Found|This file has been removed due',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'uploadc.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_remixshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"remixshare\\.com\/\\w+",
 - 			'id="dl2"',
 - 			'<table class=\'failed\'><tr><td width=\'90%\'>|Sorry, die Datei konnte nicht gefunden werden',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'remixshare.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_exoshare_dot_com_links", false))
 - 		{            
 - 			addFileHost(
 - 			"exoshare\\.com\/download\\.php\\?uid=\\w+",
 - 			'Last Download :',
 - 			'img src="\\/404.jpg"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'exoshare.com/download.php')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_borncash_dot_org_links", false))
 - 		{                       
 - 			addFileHost(
 - 			"borncash\\.org\/download\/\\?a=\\w+",
 - 			'class="knop_1"',
 - 			'\/error\/er00',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'borncash.org/download/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_vidplay_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"vidplay\.net\/\\w+",
 - 			'solvemedia puzzle widget',
 - 			'File not found|AVOID_IE_BUG',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'vidplay.net')]");
 - 		}
 - 		if (GM_getValue("Check_storagon_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"storagon\.com\/\\w+",
 - 			'class="icon-cloud-download"></i>|content="Download Options',
 - 			'content="Download Downloads|class="error-container">|class="bigger-300 bolder">404<',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'storagon.com')]");
 - 		}
 - 		if (GM_getValue("Check_filedais_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filedais\.com\/\\w+",
 - 			'class="btn btn-info"|name="method_free"',
 - 			'style="width:500px;text-align:left;">|File Not Found|AVOID_IE_BUG',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'filedais.com')]");
 - 		}
 - 		if (GM_getValue("Check_up_dot_4share_dot_vn_links", false))
 - 		{
 - 			addFileHost(
 - 			"up.4share\.vn\/\\w+",
 - 			'<font size="2" face="Verdana">',
 - 			'font: 13px Tahoma; color: Brown',
 - 			'optional--',
 - 			'optional2--',
 -       "//a[contains(@href,'up.4share.vn')]");
 - 		}
 - 		if (GM_getValue("Check_share_dot_vnn_dot_vn_links", false))
 - 		{
 - 			addFileHost(
 - 			"share.vnn\.vn\/\\w+",
 - 			'"index,follow"|<div class="main" id="download-box">',
 - 			'<meta name="description" content="" />|<h1>Không tìm thấy file bạn yêu cầu</h1>',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'share.vnn.vn')]");
 - 		}
 - 		if (GM_getValue("Check_upfile_dot_vn_links", false))
 - 		{
 - 			addFileHost(
 - 			"upfile\.vn\/\\w+",
 - 			'download-timer',
 - 			'<meta name="description" content="Upload files|<meta name="description" content="Error "',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'upfile.vn')]");
 - 		}
 - 		if (GM_getValue("Check_aisfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"aisfile\.com\/\\w+",
 - 			'<h3 style="text-align:left;">|align=right><b>Filename:',
 - 			'<div style="width:500px;text-align:left;">|File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'aisfile.com')]");
 - 		}
 - 		if (GM_getValue("Check_usersfiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"usersfiles\.com\/\\w+",
 - 			'class="btn btn-success|id="btn_download"  class="btn"',
 - 			'<div style="width:500px;text-align:left;">|class="label label-inverse">|class="err">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'usersfiles.com')]");
 - 		}
 - 		if (GM_getValue("Check_pan_dot_baidu_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"pan.baidu\.com\/\\w+",
 - 			'target="_blank" title=|share-personal-info',
 - 			'share_notfound.png|background:#f9f9f9',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'pan.baidu.com')]");
 - 		}
 - 		if (GM_getValue("Check_yunpan_dot_cn_links", false))
 - 		{
 - 			addFileHost(
 - 			"yunpan\.cn\/\\w+",
 - 			'class="icon icon-download',
 - 			'content="360|http://p5.qhimg.com/t01d1c98667df9dc6cc.jpg',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'yunpan.cn')]");
 - 		}
 -         if (GM_getValue("Check_file_dash_upload_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 				"(?:en\\.|)file\\-upload\\.net\/download\\-\\d+\/\\w+",
 - 			'getElementById("downbild")|style.display',
 - 			'hochgeladene Datei nicht gefunden werden|has not been found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'file-upload.net')]");
 - 		}
 - 		if (GM_getValue("Check_gulfup_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"gulfup\.com\/",
 - 			'<!-- Downlod template -->|download.gif',
 - 			'<!-- Errors template -->|class="error">|<!-- form upload -->|[ رفع الملفات ]',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'gulfup.com')]");
 - 		}
 -         if (GM_getValue("Check_datafilehost_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"datafilehost\\.com\/(?:download-\\w+\\.html|d\/\\w+)",
 - 			'dldtable">',
 - 			'does not exist\\.',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'datafilehost.com')]");
 - 		}
 - 		if (GM_getValue("Check_dropbox_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"dropbox\.com\/s\/\\w+",
 - 			'default_content_download_button" class="freshbutton-blue">|content_download_button',
 - 			'>Nothing Here<|>Error (404)<',
 - 			'title>Dropbox - 509|Error (403)|Error: 429',
 - 			'optional2--',
 - 			"//a[contains(@href,'dropbox.com')]");
 - 		}
 - 		if (GM_getValue("Check_box_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"box\.net\/\\w+",
 - 			'download-file-btn|id="download_button',
 - 			'BIyMin.png| <div class="error_message',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'box.net')]");
 - 		}
 - 		if (GM_getValue("Check_fileband_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"fileband\.com\/\\w+",
 - 			'value="download1">|name="id" value=',
 - 			'<div style="width:500px;text-align:left;">|not be found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'fileband.com')]");
 - 		}
 - 		if (GM_getValue("Check_filedropper_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filedropper\.com\/\\w+",
 - 			'background:#ddd;|width:985px; ',
 - 			'background-color:#FFFFFF;|margin-left: -400px;',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'filedropper.com')]");
 - 		}
 - 		if (GM_getValue("Check_tropicshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"tropicshare\\.com\/files\/\\d+",
 - 			'MB</span>|GB</span>|KB</span>',
 - 			'>FNF<|size: </span>',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'tropicshare.com')]");
 - 		}
 - 		if (GM_getValue("Check_goldbytez_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"goldbytez\.com\/\\w+",
 - 			'<h2>Download</h2>|<center><h2>File: <font color="red">',
 - 			'<div style="width:500px;text-align:left;">|<h2>Error</h2>',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'goldbytez.com')]");
 - 		}
 - 		if (GM_getValue("Check_worldbytez_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"worldbytez\.com\/\\w+",
 - 			'<div class="download_type">',
 - 			'<div style="width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'worldbytez.com')]");
 - 		}
 - 		if (GM_getValue("Check_freefilehosting_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"freefilehosting\.net\/\\w+",
 - 			'Type: cbr|Type: rar|Type: jpg|Type: mkv|Type: avi|Type: mpg|Type: mpeg|Type: zip|Type: wmvType: bmpType: gifType: mp4Type: mp3',
 - 			'175px;" value="http://www.freefilehosting.net/"|Filename:  <br>',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'freefilehosting.net')]");
 - 		}
 - 		if (GM_getValue("Check_ziddu_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"ziddu\.com\/\\w+",
 - 			'downloads.ziddu.com|downloadfilelinkicon',
 - 			'errortracking.php|images/oops.png|fontfamilyverdana error',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'ziddu.com')]");
 - 		}
 - 		if (GM_getValue("Check_exclusiveloader_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"exclusiveloader\.com\/\\w+",
 - 			'style="padding-top:55px; padding-bottom:65px;">|<h2>Download</h2>',
 - 			'File Not Found|width:322px;text-align:left;" class="no_file">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'exclusiveloader.com')]");
 - 		}
 - 		if (GM_getValue("Check_sharerapid_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"sharerapid\.cz\/\\w+",
 - 			'value="Stáhnout"|soubor" style|Stahování je povoleno pouze pro přihlášené uživatele',
 - 			'error_div">|404 - Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'sharerapid.cz')]");
 - 		}
 - 		if (GM_getValue("Check_sdilej_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"sdilej\.cz\/\\w+",
 - 			'class="page-download"',
 - 			'<h2 class="red">|czshare.com|sponsored listings|This domain is for sale',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'sdilej.cz')]");
 - 		}
 - 		if (GM_getValue("Check_lafiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"lafiles\.com\/\\w+",
 - 			'<div id="pay_modes">',
 - 			'<b class="err"></b>',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'lafiles.com')]");
 - 		}
 - 		if (GM_getValue("Check_acefile_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"acefile\.net\/\\w+",
 - 			'align=right nowrap><b>',
 - 			'File Not Found|<div style="width:322px;text-align:left;" class="no_file">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'acefile.net')]");
 - 		}
 -    	if (GM_getValue("Check_megarapid_dot_cz_links", false))
 - 		{
 - 			addFileHost(
 - 			"megarapid\.cz\/\\w+",
 - 			'value="Stáhnout"|soubor" style|Stahování je povoleno pouze pro přihlášené uživatele',
 - 			'error_div">|404 - Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'megarapid.cz')]");
 - 		}
 -     if (GM_getValue("Check_yadi_dot_sk_links", false))
 - 		{
 - 			addFileHost(
 - 			"yadi\.sk\/\\w+",
 - 			'twitter:site|View and download',
 - 			'error code|Nothing found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'yadi.sk')]");
 - 		}
 - /*    if (GM_getValue("Check_imdb_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 		  "imdb\.com\/\\w+",
 - 			'imdb.com',
 - 			'404 Error',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'imdb.com')]");
 - 		} */
 - 		if (GM_getValue("Check_hitfile_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"hitfile\.net\/\\w+",
 - 			'class="download-file',
 - 			'style="width:16px;height:16px;border:0;|File not found|File was deleted or not found|Le fichier a été supprimé ou n|Файл не найден. Возможно он был удален',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'hitfile.net')]");
 - 		}
 - 		if (GM_getValue("Check_nitroflare_dot_com_links", true))
 - 		{
 - 			addFileHost(
 - 		  "nitroflare\.com\/\\w+",
 - 			'Report this file</a>|left;">1 GB<|KB</span>|left;">1.0',
 - 			'file has been removed|id="error" style="display|Probably deleted|file has been removed due to infringement',
 - 			'optional--',
 - 			'left;">1.1|left;">1.2|left;">1.3|left;">1.4|left;">1.5|left;">1.6|left;">1.7|left;">1.8|left;">1.9|left;">2.|',
 - 			"//a[contains(@href,'nitroflare.com')]");
 - 		}
 - 		if (GM_getValue("Check_up_dot_top4top_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 		  "up.top4top\.net\/\\w+",
 - 			'start Downlod template',
 - 			'start err template',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'up.top4top.net')]");
 - 		}
 - 		if (GM_getValue("Check_filejoker_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 		  "filejoker\.net\/\\w+",
 - 			'button id="regular-download">Slow|method_free" value="1|<div id="download" class="download0">|>Get Download Link<',
 - 			'File Not Found|class="not_found|<div id="download" class="not_found">|"err">DMCA Complaint<',
 - 			'optional--',
 - 			'id="download" class="premium-only">',
 - 			"//a[contains(@href,'filejoker.net')]");
 - 		}
 - 		if (GM_getValue("Check_free_dot_fr_links", false))
 - 		{
 - 			addFileHost(
 - 				"(?:dl.\\.|)free\\.fr",
 - 			'Valider et télé',
 - 			'Fichier inexistant|Fichier supprimé pour raison de copyright',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'dl.free.fr')]");
 - 		}
 - 		if (GM_getValue("Check_gboxes_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 		  "gboxes\.com\/\\w+",
 - 			'You have requested|color="red">http://www.gboxes.com',
 - 			'File Not Found|<div style="width:500px;text-align:left;">',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'gboxes.com')]");
 - 		}
 - 		if (GM_getValue("Check_led_dot_wf_links", false))
 - 		{
 - 			addFileHost(
 - 			"led\.wf\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'led.wf')]");
 - 		}
 - 		if (GM_getValue("Check_lan_dot_wf_links", false))
 - 		{
 - 			addFileHost(
 - 			"lan\.wf\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'lan.wf')]");
 - 		}
 - 		if (GM_getValue("Check_adlink_dot_wf_links", false))
 - 		{
 - 			addFileHost(
 - 			"adlink\.wf\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'adlink.wf')]");
 - 		}
 - 		if (GM_getValue("Check_click_dot_tf_links", false))
 - 		{
 - 			addFileHost(
 - 			"click\.tf\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'click.tf')]");
 - 		}
 - 		if (GM_getValue("Check_ssh_dot_tf_links", false))
 - 		{
 - 			addFileHost(
 - 			"ssh\.tf\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'ssh.tf')]");
 - 		}
 - 		if (GM_getValue("Check_ssh_dot_yt_links", false))
 - 		{
 - 			addFileHost(
 - 			"ssh\.yt\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'ssh.yt')]");
 - 		}
 - 		if (GM_getValue("Check_yep_dot_pm_links", false))
 - 		{
 - 			addFileHost(
 - 			"yep\.pm\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'yep.pm')]");
 - 		}
 - 		if (GM_getValue("Check_kyc_dot_pm_links", false))
 - 		{
 - 			addFileHost(
 - 			"kyc\.pm\/\\w+",
 - 			'logo_0.png|downloads.gif"|verifycode',
 - 			'border-color: #5D729B;|bgcolor="#778AAF"|Invalid Link|deleted by the owner',
 - 			'optional--',
 - 			'available only for Premium users',
 - 			"//a[contains(@href,'kyc.pm')]");
 - 		}
 - 		if (GM_getValue("Check_brupload_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"brupload\.net\/\\w+",
 - 			'Download Gratuito',
 - 			'<div style="width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'brupload.net')]");
 - 		}
 - 		if (GM_getValue("Check_cloudzilla_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"cloudzilla\.to\/\\w+",
 - 			'btn1" id="free_download|onclick="freeDownload|id="pwd_protected">',
 - 			'File not found|/imgs/broken.png',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'cloudzilla.to')]");
 - 		}
 -     if (GM_getValue("Check_fileparadox_dot_in_links", false))
 - 		{
 - 			addFileHost(
 - 			"fileparadox\.in\/\\w+",
 - 			'CONTENT="Download File|method_free_file',
 - 			'>File Not Found<|id="no_filedownload">|FILE NOT FOUND|The file does not exist',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'fileparadox.in')or contains(@href,'3files.net/')]");
 - 		}
 - 		if (GM_getValue("Check_clicknupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"clicknupload\.com\/\\w+",
 - 			'name="method_free',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'clicknupload.com')]");
 - 		}
 - 		if (GM_getValue("Check_clicknupload_dot_me_links", false))
 - 		{
 - 			addFileHost(
 - 			"clicknupload\.me\/\\w+",
 - 			'name="method_free',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'clicknupload.me')]");
 - 		}
 - 		if (GM_getValue("Check_ex_dash_load_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"ex-load\.com\/\\w+",
 - 			'name="method_free|<p>Download File:</p>',
 - 			'Folder Not Found|File Not Found|Error 404',
 - 			'optional--',
 -       'class="downprem wow bounceInLeft',
 - 			"//a[contains(@href,'ex-load.com')]");
 - 		}
 - 		if (GM_getValue("Check_hexupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"hexupload\.com\/\\w+",
 - 			'button" value="Free|type="submit" value=""',
 - 			'File Not Found|<div style="width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'hexupload.com')]");
 - 		}
 - 		if (GM_getValue("Check_wizupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"wizupload\.com\/\\w+",
 - 			'btn_download|class="downloadbtn"',
 - 			'>File Not Found<',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'wizupload.com')]");
 - 		}
 - 		if (GM_getValue("Check_filecloud_dot_cc_links", false))
 - 		{
 - 			addFileHost(
 - 			"filecloud\.cc\/\\w+",
 - 			'align="center"><input type="submit" name=',
 - 			'File Not Found|<Title>FileCloud - Premium Hosting Service<',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'filecloud.cc')]");
 - 		}
 - 		if (GM_getValue("Check_inclouddrive_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"inclouddrive\.com\/\\w+",
 - 			'initfreedownload',
 - 			'<title>Content Unavailable|The file you are trying to download is no longer available',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'inclouddrive.com')]");
 - 		}
 - 		if (GM_getValue("Check_radicalshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"radicalshare\.com\/\\w+",
 - 			'value="download1|name="method_free"',
 - 			'File Not Found<|<div style="width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'radicalshare.com')]");
 - 		}
 - 		if (GM_getValue("Check_sharemods_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"sharemods\.com\/\\w+",
 - 			'name="method_free"',
 - 			'File Not Found<',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'sharemods.com')]");
 - 		}
 - 		if (GM_getValue("Check_hostr_dot_co_links", false))
 - 		{
 - 			addFileHost(
 - 			"hostr\.co\/\\w+",
 - 			'method="get"',
 - 			'File not found<|error-page',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'hostr.co')]");
 - 		}
 - 		if (GM_getValue("Check_filepi_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filepi\.com\/\\w+",
 - 			'id="button_start">',
 - 			'File not found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'filepi.com')]");
 - 		}
 - 		if (GM_getValue("Check_tikfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"tikfile\.com\/\\w+",
 - 			'btn_download',
 - 			'File Not Found|file was removed|Reason for deletion',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'tikfile.com')]");
 - 		}
 - 		if (GM_getValue("Check_cloudsix_dot_me_links", false))
 - 		{
 - 			addFileHost(
 - 			"cloudsix\.me\/\\w+",
 - 			'name="method_free"',
 - 			'File Not Found|width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'cloudsix.me')]");
 - 		}
 - 		if (GM_getValue("Check_neodrive_dot_co_links", false))
 - 		{
 - 			addFileHost(
 - 			"neodrive\.co\/\\w+",
 - 			'btn1" id="free_download|onclick="freeDownload|id="pwd_protected">',
 - 			'File not found|/imgs/broken.png',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'neodrive.co')]");
 - 		}
 - 		if (GM_getValue("Check_chayfile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"chayfile\.com\/\\w+",
 - 			'name="method_free"',
 - 			'File Not Found|<h3>The file was removed by administrator</h3>',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'chayfile.com')]");
 - 		}
 - 		if (GM_getValue("Check_xfileload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"xfileload\.com\/\\w+",
 - 			'Filename:|Имя файла:|Dateiname:|nom de fichier :|اسم الملف:|Dosya AdД±|Nazwa:|Nombre de fichero:|NamaFile:|Bestandsnaam:|שם קובץ:"',
 - 			'The file you were looking for could not be found, sorry for any inconvenience.|Die von Ihnen angeforderte Datei konnte nicht gefunden werden..|le fichier que vous recherchiez ne pourrait pas etre trouve, désole pour aucun derangement|لم يتم إيجاد الملف المطلوب , عذراً للإزعاج|Istenen dosya bulunamadД±..|Plik ktorego szukasz nie zostal odnaleziony na naszych serwerach, przepraszamy.|El archivo que usted buscaba no podrнa ser encontrado, arrepentido para ningъn inconveniente.|File yang sedang anda cari tidak dapat ditemukan, maaf untuk ketidaknyamanan anda saat ini.|De bestand waar u naar zocht is niet gevonden, excuses voor het ongemak..|הקובץ שחיפשת לא נמצא.',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'xfileload.com')]");
 - 		}
 - 		if (GM_getValue("Check_rockfile_dot_eu_links", false))
 - 		{
 - 			addFileHost(
 - 			"rockfile\.eu\/\\w+",
 - 				'You have requested:|vous avez demandé|قد طلبت:|você solicitou:|Hai richiesto:|Sie haben angefordert:|Вы заказали:|Has solicitado',
 - 			'The file you were looking for could not be found, sorry for any inconvenience.|fa-chain-broken">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'rockfile.eu')]");
 - 		}
 - 		if (GM_getValue("Check_24uploading_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"24uploading\.com\/\\w+",
 - 			'File:|Download Speed:',
 - 			'<b>File Not Found</b>|file was removed',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'24uploading.com')]");
 - 		}
 - 		if (GM_getValue("Check_tusfiles_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"tusfiles\.net\/\\w+",
 - 			'i/icon/dll.png"|>Start download<br',
 - 			'no longer available<|i/ino.png"',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'tusfiles.net')]");
 - 		}
 - /*		if (GM_getValue("Check_jumbofile_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"jumbofile\.net\/\\w+",
 - 			'button" class="" value="Free',
 - 			'This File Was Deleted',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'jumbofile.net')]");
 - 		} */
 - 		if (GM_getValue("Check_ozofiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"ozofiles\.com\/\\w+",
 - 			'button" value="Free',
 - 			'File Not Found|width:500px;text-align:left;">|File Deleted',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'ozofiles.com')]");
 - 		}
 - 		if (GM_getValue("Check_loudupload_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"loudupload\.net\/\\w+",
 - 			'value="Get Links',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'loudupload.net')]");
 - 		}
 - 		if (GM_getValue("Check_rapidsonic_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(rapidsonic|fileparadox)\\.com\/\\w+",
 - 			'method_free" id="submit_btn|<h4><i class="icon_document_alt"></i>Download File</h4>',
 - 			'>File Not Found<|id="no_filedownload">|>FILE NOT FOUND<|file has been deleted|No such file with this filename|style="font-size:24px;color:#E70012">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'rapidsonic') or contains(@href,'3files.net/') or contains(@href,'fileparadox.com')]");
 - 		}
 - /*		if (GM_getValue("Check_krotix_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"krotix\.net\/\\w+",
 - 			'btn btn-warning|btn-free',
 - 			'pageErrors|This File has been removed',
 - 			'content="Scheduled Maintenance',
 -       'optional2--',
 - 			"//a[contains(@href,'krotix.net')]");
 - 		} */
 - 		if (GM_getValue("Check_userscloud_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"userscloud\.com\/\\w+",
 - 			'btn_download',
 - 			'>Server OFFLINE|background:#D3D3D3;border-bottom:1px solid #BBB;font:bold 13px Verdana;padding:3px;">|-chain-broken',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'userscloud.com')]");
 - 		}
 - 		if (GM_getValue("Check_kumpulbagi_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"kumpulbagi\.com\/\\w+",
 - 			'class="button download',
 - 			'internal server error',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'kumpulbagi.com')]");
 - 		}
 - 		if (GM_getValue("Check_faststore_dot_org_links", false))
 - 		{
 - 			addFileHost(
 - 			"faststore\.org\/\\w+",
 - 			'name="method_free',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'faststore.org')]");
 - 		}
 - 		if (GM_getValue("Check_prefiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"prefiles\.com\/\\w+",
 - 			'id="method_free',
 - 			'File not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'prefiles.com')]");
 - 		}
 - 		if (GM_getValue("Check_doraupload_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"doraupload\.com\/\\w+",
 - 			'btn_download|name="method_free',
 - 			'class="error-code|Could Not Be Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'doraupload.com')]");
 - 		}
 - 		if (GM_getValue("Check_openload_dot_io_links", false))
 - 		{
 - 			addFileHost(
 - 			"openload\.io\/\\w+",
 - 			'btn btn-primary|class="count">|secondsleftouter',
 - 			'class="jumbotron">|We are sorry',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'openload.io')]");
 - 		}
 - 		if (GM_getValue("Check_uploads_dot_xxx_links", false))
 - 		{
 - 			addFileHost(
 - 			"uploads\.xxx\/\\w+",
 - 			'downoadForFree',
 - 			'File not found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'uploads.xxx')]");
 - 		}
 - 		if (GM_getValue("Check_zxcfiles_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"zxcfiles\.com\/\\w+",
 - 			'class="downloadbtn',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'zxcfiles.com')]");
 - 		}
 -     if (GM_getValue("Check_up07_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"up07\.net\/\\w+",
 - 			'name="method_free',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'up07.net')]");
 - 		}
 - 		if (GM_getValue("Check_fileupload_dot_pw_links", false))
 - 		{
 - 			addFileHost(
 - 			"fileupload\.pw\/\\w+",
 - 			'value="Free"',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'fileupload.pw')]");
 - 		}
 - 		if (GM_getValue("Check_4upld_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"4upld\.com\/\\w+",
 - 			'alt="Download Now"|content="Download file">|btn-free-element',
 - 			'<title>Error|content="error|File not found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'4upld.com')]");
 - 		}
 - /*		if (GM_getValue("Check_newfileland_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"newfileland\.com\/\\w+",
 - 			'name="method_free',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'newfileland.com')]");
 - 		} */
 - 				if (GM_getValue("Check_swoopshare_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:.swoopshare)\\.com\/\\w+",
 - 			'Click below to start|Klicken Sie nachfolgend|Cliquez ci-après pour|Cliccate qui per iniziare|Klik hierna om het bestand|Haga ahora clic para iniciar la',
 - 			'<input type="file" name="f"',
 - 			'optional--',
 - 			'optional2--',
 - 			"//a[contains(@href,'swoopshare.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_cloudshares_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"cloudshares\.net\/\\w+",
 - 			'"method_free|"Low Speed Download|submit" name="go',
 - 			'Not Found|"width:500px;text-align:left;">|No such file exist',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'cloudshares.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_allmyvideos_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"allmyvideos\.net\/\\w+",
 - 			'Continue to Video',
 - 			'File Not Found|class="err">Removed for',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'allmyvideos.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_vodlocker_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"vodlocker\.com\/\\w+",
 - 			'Proceed to video',
 - 			'Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'vodlocker.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_vidbull_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"vidbull\.com\/\\w+",
 - 			'Verifying Video Request',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'vidbull.com')]");
 - 		}
 - 		if (GM_getValue("Check_novamov_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"novamov\.com\/\\w+",
 - 			'For version detection',
 - 			'file no longer exists',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'novamov.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filehoot_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filehoot\.com\/\\w+",
 - 			'Continue to watch',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'filehoot.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_stagevu_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"stagevu\.com\/\\w+",
 - 			'Video Info',
 - 			'No video with the provided',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'stagevu.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_cloudtime_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"cloudtime\.to\/\\w+",
 - 			'Download the video',
 - 			'no longer exists',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'cloudtime.to')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_streamin_dot_to_links", false))
 - 		{
 - 			addFileHost(
 - 			"streamin\.to\/\\w+",
 - 			'id="btn_download',
 - 			'Not Found|Copyright Infringement|File Deleted',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'streamin.to')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_videoweed_dot_es_links", false))
 - 		{
 - 			addFileHost(
 - 			"videoweed\.es\/\\w+",
 - 			'version detection',
 - 			'no longer exists',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'videoweed.es')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_nowvideo_dot_sx_links", false))
 - 		{
 - 			addFileHost(
 - 			"nowvideo\.sx\/\\w+",
 - 			'Download this video|value="submit">Continue',
 - 			'no longer exists',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'nowvideo.sx')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_thevideo_dot_me_links", false))
 - 		{
 - 			addFileHost(
 - 			"thevideo\.me\/\\w+",
 - 			'Upgrade your account|Proceed to video|class="btn btn-lg btn-dark">',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'thevideo.me')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_gorillavid_dot_in_links", false))
 - 		{
 - 			addFileHost(
 - 			"gorillavid\.in\/\\w+",
 - 			'Wait 5 seconds',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'gorillavid.in')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_thefile_dot_me_links", false))
 - 		{
 - 			addFileHost(
 - 			"thefile\.me\/\\w+",
 - 			'Choose free or',
 - 			'',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'thefile.me')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_vidzi_dot_tv_links", false))
 - 		{
 - 			addFileHost(
 - 			"vidzi\.tv\/\\w+",
 - 			'video-embed-modal row',
 - 			'File Not Found|file was deleted',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'vidzi.tv')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filenuke_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"filenuke\.com\/\\w+",
 - 			'Download File',
 - 			'Earn with us',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'filenuke.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_vidto_dot_me_links", false))
 - 		{
 - 			addFileHost(
 - 			"vidto\.me\/\\w+",
 - 			'Proceed to video',
 - 			'Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'vidto.me')]"
 - 			);
 - 		}
 - 				if (GM_getValue("Check_vidspot_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"vidspot\.net\/\\w+",
 - 			'Duration',
 - 			'Removed for',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'vidspot.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_sharesix_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"(?:sharesix\\.com|sharesix\\.net)\/\\w+",
 - 			'Download File',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'sharesix.com') or contains(@href,'sharesix.net/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_movpod_dot_in_links", false))
 - 		{
 - 			addFileHost(
 - 			"movpod\.in\/\\w+",
 - 			'Continue',
 - 			'File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'movpod.in')]"
 - 			);
 - 		}
 - /*		if (GM_getValue("Check_down4files_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"down4files\.com\/\\w+",
 - 			'down_table.png',
 - 			'style="color:#d33|Error</td>|width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'down4files.com')]"
 - 			);
 - 		} */
 - 		if (GM_getValue("Check_storefiles_dot_co_links", false))
 - 		{
 - 			addFileHost(
 - 			"storefiles\.co\/\\w+",
 - 			'btn_download',
 - 			'No such file|>Error<|mqmaintitle">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'storefiles.co')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_filehost_dot_pw_links", false))
 - 		{
 - 			addFileHost(
 - 			"filehost\.pw\/\\w+",
 - 			'name="method_free',
 - 			'>Error<|style="color:#d33;">|No such file|FILE NOT FOUND',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'filehost.pw')]"
 - 			);
 - 		}
 - 				if (GM_getValue("Check_inafile_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"inafile\.com\/\\w+",
 - 			'value="download1">|<h2>File: <font style="color:darkred">',
 - 			'<div style="width:500px;text-align:left;">|File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'inafile.com')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_uplea_dot_com_links", false))
 - 		{
 - 			addFileHost(
 - 			"uplea\.com\/\\w+",
 - 			'Download your file:|de votre fichier:|class="download-container|Téléchargement de votre fichier:',
 - 			'expired link|ou est invalide',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'uplea.com/dl')]",
 - 			true); 
 - 		}
 - 		if (GM_getValue("Check_toutbox_dot_fr_links", false))
 - 		{
 - 			addFileHost(
 - 			"toutbox\.fr\/\\w+",
 - 			'<div class="downloadFileFid">|class="downloadsCounter">/p>|class="filename"><a href=|img/webbuttoned.gif">',
 - 			'meta name="description" content="Toutbox.fr|redirect-userpage = "true"',
 - 			'Serviço temporariamente indisponível',
 -       'optional2--',
 - 			"//a[contains(@href,'toutbox.fr') or contains(@href,'go4up.com/')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_openload_dot_co_links", false))
 - 		{
 - 			addFileHost(
 - 			"openload\.co\/\\w+",
 - 			'id="downloadTimer">|button dlbutton',
 - 			'jumbotron{color|got deleted|center !important',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'openload.co')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_lolabits_dot_es_links", false))
 - 		{
 - 			addFileHost(
 - 			"lolabits\.es\/\\w+",
 - 			'Descargar:',
 - 			'<title>Archivos de usuario',
 - 			'Service Unavailable',
 -       'optional2--',
 - 			"//a[contains(@href,'lolabits.es')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_alfafile_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"alfafile\.net\/\\w+",
 - 			'id="slow_download_btn',
 - 			'class="error-box">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'alfafile.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_multiup_dot_org_links", false))
 - 		{
 - 			addFileHost(
 - 			"multiup\.org\/\\w+",
 - 			'<title>Download|<title>Télécharger|class="link-download btn"|<h5>DOWNLOAD</h5>|<h5>TÉLÉCHARGER</h5>',
 - 			'File not found|alert-error">|icon-white icon-warning-sign">|<title>Fichier introuvable',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'multiup.org')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_file_dot_al_links", false))
 - 		{
 - 			addFileHost(
 - 			"file\.al\/\\w+",
 - 			'method_free',
 - 			'style="width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'file.al')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_devilshare_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"devilshare\.net\/\\w+",
 - 			'<div class="large-12" id="download">',
 - 			'(Link: 0 Invalid)|File Not Found',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'devilshare.net')]"
 - 			);
 - 		}
 - 		if (GM_getValue("Check_dailyuploads_dot_net_links", false))
 - 		{
 - 			addFileHost(
 - 			"dailyuploads\.net\/\\w+",
 - 			'id="downloadBtnClickOrignal',
 - 			'<div style="width:500px;text-align:left;">',
 - 			'optional--',
 -       'optional2--',
 - 			"//a[contains(@href,'dailyuploads.net')]"
 - 			);
 - 		}
 -  
 - 	}
 - //start here
 -  
 - 	//hosts with direct download, so they must be requested for headers only
 - 	function initFileHostsHeadersOnly()
 - 	{
 - 		function addFileHostHeadersOnly(linkRegex, isAliveRegex, isDeadRegex, xpathEx, ispremRegex)
 - 		{
 - 			var host = new Array(5);
 - 			host[0] = linkRegex;
 - 			host[1] = isAliveRegex;
 - 			host[2] = isDeadRegex;
 - 			host[3] = xpathEx;
 - 			host[4] = ispremRegex;
 - 			http_file_hosts_headers_only.push(host);
 - 		}
 - 		if (GM_getValue("Check_uloziste_dot_com_links", false))
 - 		{
 - 			addFileHostHeadersOnly(
 - 			"(?:|files\\.)uloziste\\.com\/\\w+\/\\w+",
 - 			'Connection: Keep-Alive',
 - 			'Content-Length: 3857',
 - 			"//a[contains(@href,'uloziste.com')]"
 - 			)
 - 		}
 - 		if (GM_getValue("Check_adrive_dot_com_links", false))
 - 		{
 - 			addFileHostHeadersOnly(
 - 			"adrive\\.com\/public\/\\w+",
 - 			'Connection: keep-alive',
 - 			'orig_ref=deleted',
 - 			"//a[contains(@href,'adrive.com')]"
 - 			)
 - 		}
 - 		if (GM_getValue("Check_myupload_dot_dk_links", false))
 - 		{
 - 			addFileHostHeadersOnly(
 - 			"myupload\\.dk\/showfile\/\\w+",
 - 			'Expires:',
 - 			'squeeze1\\s+Vary',
 - 			"//a[contains(@href,'myupload.dk/showfile')]"
 - 			)
 - 		}
 - 	}
 - 	
 - 	
 - 	
 - 	
 - 	
 - 	//CustomRules
 - 	
 - 	//functions add...Host copied here
 - 	function addObsoleteHost(linkRegex, xpathEx)
 - 	{
 - 		var host = new Array(2);
 - 		host[0] = linkRegex;
 - 		host[1] = xpathEx;
 - 		http_file_hosts_obsolete.push(host);
 - 	}
 - 		
 - 	function addFileHost(linkRegex, isAliveRegex, isDeadRegex, isUnavaRegex, xpathEx, tryLoop, ispremRegex)
 - 	{
 - 		var host = new Array(7);
 - 		host[0] = linkRegex;
 - 		host[1] = isAliveRegex;
 - 		host[2] = isDeadRegex;
 - 		host[3] = isUnavaRegex;
 - 		host[4] = xpathEx;
 - 		tryLoop ? host[5] = true : host[5] = false;
 - 		host[6] = ispremRegex;
 - 		http_file_hosts.push(host);
 - 	}
 - 	
 - 	function addFileHostHeadersOnly(linkRegex, isAliveRegex, isDeadRegex, xpathEx, ispremRegex)
 - 	{
 - 		var host = new Array(5);
 - 		host[0] = linkRegex;
 - 		host[1] = isAliveRegex;
 - 		host[2] = isDeadRegex;
 - 		host[3] = xpathEx;
 - 		host[4] = ispremRegex;
 - 		http_file_hosts_headers_only.push(host);
 - 	}
 - 	
 - 	
 - 	//takes a fully built rules array and adds the rules to WARLC
 - 	function applyCustomRules(customRules)
 - 	{
 - 		if (!customRules) return;
 - 		var rules, r, i;
 - 		rules = customRules.rules;
 - 		for (i = 0 ; i < rules.length ; i++)
 - 		{
 - 			r = rules[i];
 - 			if (r.enabled)
 - 			{
 - 				switch (r.type)
 - 				{
 - 					case 'single':
 - 						addFileHost(r.urlregex, r.aliveregex, r.deadregex, r.unavaregex, r.premregex||'', r.xpath);
 - 						break;
 - 						
 - 					case 'headers':
 - 						addFileHostHeadersOnly(r.urlregex, r.aliveregex, r.deadregex, r.xpath, r.premregex);
 - 						break;
 - 						
 - 					case 'obsolete':
 - 						addObsoleteHost(r.urlregex, r.xpath)
 - 						break;
 - 				}
 - 			}
 - 		}
 - 	}
 -  
 -  
 - 	function initFileHostsCustom()
 - 	{
 - 		if (Custom_rules && Custom_rules_text)
 - 		{
 - 			var msg = '';
 - 			if (newVersion) 
 - 				msg = 'New version of W.A.R. Links Checker detected.\n\n';
 - 				else if ((now - last_custom_rules_nag) >= 60*24*60*60*1000)
 - 					msg = '60 or more days have passed since this notification.\n\n';
 - 			if (msg && /^\s*@customrule(?:_obsolete)?\s/mi.test(Custom_rules_text))
 - 			{
 - 				GM_setValue('last_custom_rules_nag', ''+new Date().getTime()); //reset nag
 - 				msg += 
 - 					'Either new version of W.A.R. Links Checker detected or 60 days passed since this notify.\n'+
 - 					'Please check that your custom rules haven\'t been built into WARLC.\n'+
 - 					'If not, please share them with us so they can be included in the next version! Built-in rules are always preferred.\n\n'+
 - 					'We apologize for this annoying notification, but there is a reason to this.\n'+
 - 					'Ideally, WARLC would check which of your custom rules have been included and disable them. '+
 - 					'Unfortunately, there is no easy way to do that, but we don\'t want everybody to just use their custom rules '+
 - 					'forever without ever checking if the built-in ones have been added/fixed. This is currently the only way '+
 - 					'to remind you that you should try built-in rules, report missing/non-working ones and share your custom rules.';
 - 				setTimeout(function(){alert(msg)},0);
 - 			}
 - 				
 - 			var customRules = parseCustomRules(Custom_rules_text);
 - 			if (customRules.warning || customRules.error) 
 - 				alert('There were ' + customRules.error + ' errors, ' + customRules.warning + ' warnings, ' + 
 - 					customRules.note + ' notes found during Custom Rules processing.\n' + customRules.rules.length + ' valid rules found.\n\n' + 
 - 					JSON.stringify(customRules.info, null, '  '));
 - 			applyCustomRules(customRules);
 - 				
 - 		}
 - 	}
 - //end of CustomRules processing
 -  
 -  
 -  
 - } //end of function start
 -  
 -  
 -  
 - function initClipBoardTools()
 - {
 - 	unsafeWindow.copyToClipboard = function(text)
 - 	{
 - 		try
 - 		{
 - 			this.netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
 -  
 - 			var str = Components.classes["@mozilla.org/supports-string;1"].
 - 			createInstance(Components.interfaces.nsISupportsString);
 - 			if (!str) return false;
 -  
 - 			str.data = text;
 -  
 - 			var trans = Components.classes["@mozilla.org/widget/transferable;1"].
 - 			createInstance(Components.interfaces.nsITransferable);
 - 			if (!trans) return false;
 -  
 - 			trans.addDataFlavor("text/unicode");
 - 			trans.setTransferData("text/unicode", str, text.length * 2);
 -  
 - 			var clipid = Components.interfaces.nsIClipboard;
 - 			var clip = Components.classes["@mozilla.org/widget/clipboard;1"].getService(clipid);
 - 			if (!clip) return false;
 -  
 - 			clip.setData(trans, null, clipid.kGlobalClipboard);
 - 		} catch (e) {
 - 			GM_log("Error copyToClipboard : " + e);
 - 			alert(e + "\n\nsigned.applets.codebase_principal_support must be set true in about:config")
 -         }
 - 	}
 - }
 -  
 -  
 -  
 - //CustomRules
 -  
 - function escapeRegex(str)
 - {
 - 	return str.replace(/[\-\[\]{}()*+?.,\\\^$|#]/g, "\\$&");
 - }
 -  
 -  
 - //called internally from parseCustomRules.
 - //expected: rule object with array fields baseurl, alivematch etc, everything must already be checked for input errors
 - //returns the rule object with string fields urlregex, xpath, aliveregex etc built from the arrays
 - function makeCustomRule(rule)
 - {
 - 	function makeMatchRegex(arrmatch)
 - 	{
 - 		return escapeRegex(arrmatch.join('\n'))
 - 			.replace(/  +/g, '\\s+') //two or more spaces to any whitespace
 - 			.replace(/\n/g,'|'); //join together
 - 	}
 - 	
 - 	if (rule.alivematch) rule.aliveregex = makeMatchRegex(rule.alivematch);
 - 	if (rule.deadmatch) rule.deadregex = makeMatchRegex(rule.deadmatch);
 - 	if (rule.unavamatch) rule.unavaregex = makeMatchRegex(rule.unavamatch);
 - 	if (rule.premmatch) rule.premregex = makeMatchRegex(rule.premmatch);
 - 	
 - 	if (rule.baseurl)
 - 	{
 - 		var i, m, urlregex = [], xpath = [], len = rule.baseurl.length;
 - 		for (i = 0 ; i < len ; i++)
 - 		{
 - 			m = rule.baseurl[i].match(/^([a-z0-9\.-]+)(?: +([a-z \.]+) +)?(\/.*)$/);
 - 			if (m[2]) //baseurl in the form:   example. com co.uk net /xxx
 - 			{
 - 				xpath = xpath.concat(m[2].replace(/([a-z\.]+)/g, m[1]+'$1'+m[3]).split(/\s+/));   //xpath = xpath.concat(['example.com/xxx', 'example.co.uk/xxx', 'example.net/xxx'])
 - 				urlregex.push(    (m[1] + '(?:'+ m[2].replace(/\s+/g,'|') + ')').replace(/\./g,'\\.')     + escapeRegex(m[3]) + '.');   //urlregex.push('example\\.(?:com|co\\.uk|net)/xxx.')
 - 			}
 - 			else //baseurl in the form:   example.com/xxx
 - 			{
 - 				xpath.push(m[0]);
 - 				urlregex.push(escapeRegex(m[0]) + '.');
 - 			}
 - 		} 
 - 		rule.xpath = "//a[contains(@href,'"   +   xpath.join("') or contains(@href,'")   +   "')]";
 - 		rule.urlregex = '(?:[a-z0-9\\.-]+\\.)?(?:' + urlregex.join('|') + ')';
 - 	}
 - 	
 - 	return rule;
 - }  //function makeCustomRule
 -  
 -  
 - /*
 - Takes a string containing custom link checking rules.
 - Returns an object with fields:
 -   info - contains notes, warnings and errors found during parsing
 -   rules - the array of custom rules
 -   note, warning, error - number of each of them found during parsing
 - Format of the input string:
 - One command per line. Command format: @keyword parameter
 - Keywords:
 -   @customrule, @customrule_obsolete, @customrule_headers - begin a new custom rule. Parameter: name of the rule
 -   @#customrule, @#customrule_obsolete, @#customrule_headers - begin and parse this custom rule, but don't use it. Parameter: name of the rule
 - These keywords can be multiple (any of them will work):
 -   @baseurl - constant part of the url. ( d123.example.com/d/?fileid -> example.com/d/? ) - used for both xpath and urlregex (will also match anything.example...)
 -   @alivematch, @deadmatch, @unavamatch - what to look for in the response. No regex, literal text is used with one exception: 2 or more spaces will match \s+
 -   @alivelink, @deadlink - example links
 - @baseurl is always required, @alivematch and @deadmatch are required except for obsolete. @unavamatch is ignored for obsolete. @*link is optional.
 - Lines starting with // and empty lines are ignored.
 - Invalid parameters generate errors and those lines are skipped.
 - Other lines generate warnings, but are otherwise ignored (also those before the first @customrule line or inside a rule with invalid name).
 - Example:
 - @customrule filehost
 - @baseurl    filehost.com/download/
 - @baseurl    filehost2. com net /d?=
 - @alivematch id="download">
 - @deadmatch  File not found
 - @deadmatch  File deleted
 - */
 - function parseCustomRules(rulesStr)
 - {
 - 	var linenum, customRules = {'info': [], 'rules': [], 'note': 0, 'warning': 0, 'error': 0};
 - 	
 - 	function addInfo(type, msg, ln){
 - 		customRules.info.push({'linenum':(ln===undefined ? linenum+1 : ln+1), 'type':type, 'msg':msg});
 - 		customRules[type]++;
 - 		}
 - 		
 - 	var lines = rulesStr.match(/^(.*)$/gm); //split into array of lines
 - 	if (!lines) return null;
 - 	lines.push('@#customrule _'); //to save the last rule
 - 	var m, linecount = lines.length;
 - 	var keyword, param, constr, rule, err;
 - 	
 - 	var TLD = '[a-z]{2,7}(?:\\.[a-z]{2,7})?';
 - 	var TLDorTLDlist = '(?:'+TLD+'| '+TLD+'(?: '+TLD+'){0,9} )'; //TLD or space-separated list of TLDs
 - 	var baseurlRE = new RegExp('^([a-z0-9-]{1,30}(?:\\.[a-z0-9-]{1,30}){0,2}\\.)'+TLDorTLDlist+'(/[^\'"\s\$]{0,50})$', 'i');
 - 	
 - 	var constraints = {
 - 		'baseurl': {
 - 			'single':   {'min': 1, 'max': 10, 'paramRE': baseurlRE},
 - 			'headers':  {'min': 1, 'max': 10, 'paramRE': baseurlRE},
 - 			'obsolete': {'min': 1, 'max': 10, 'paramRE': baseurlRE}},
 - 		'alivematch': {
 - 			'single':   {'min': 1, 'max': 10, 'paramRE': null},
 - 			'headers':  {'min': 1, 'max': 10, 'paramRE': null}},
 - 		'deadmatch': {
 - 			'single':   {'min': 1, 'max': 10, 'paramRE': null},
 - 			'headers':  {'min': 1, 'max': 10, 'paramRE': null}},
 - 		'unavamatch': {
 - 			'single':   {'min': 0, 'max': 10, 'paramRE': null}},
 - 		'alivelink': {
 - 			'single':   {'min': 0, 'max': 10, 'paramRE': null},
 - 			'headers':  {'min': 0, 'max': 10, 'paramRE': null}},
 - 		'deadlink': {
 - 			'single':   {'min': 0, 'max': 10, 'paramRE': null},
 - 			'headers':  {'min': 0, 'max': 10, 'paramRE': null},
 - 			'obsolete': {'min': 0, 'max': 10, 'paramRE': null}}
 - 		};
 - 		
 - 	for (linenum = 0 ; linenum < linecount ; linenum++)
 - 	{
 - 		//capturing groups:              1         23   4               5                                                                                  6
 - 		m = lines[linenum].match(/^\s*(?:(\/\/.*)|@((#?)(customrule)(?:_(headers|obsolete))?|baseurl|alivematch|deadmatch|unavamatch|alivelink|deadlink)\s+(.+))?$/i);
 - 		if (m)
 - 		{
 - 			if (m[1] || !m[2]) 
 - 				continue; // ignore empty lines and lines starting with //
 - 				
 - 			keyword = (m[4] || m[2]).toLowerCase();
 - 			param = m[6];
 - 			
 - 			if (keyword == 'customrule')
 - 			{
 - 				//save the current rule if all required fields are provided
 - 				if (rule) 
 - 				{
 - 					err = false;
 - 					$.each(constraints, function(kw, constraint){
 - 						var l, constr = constraint[rule.type];
 - 						if (constr)
 - 						{
 - 							l = rule[kw] ? rule[kw].length : 0;
 - 							if (l < constr.min || l > constr.max) 
 - 							{
 - 								addInfo('error', 'Required at least ' + constr.min + ' and at most ' + constr.max + ' @' + kw.toUpperCase() + ' command(s) for type ' + rule.type.toUpperCase() + '. Rule skipped.', linenum-1);
 - 								err = true;
 - 							}
 - 						}
 - 					});
 - 					if (!err)
 - 						customRules.rules.push(makeCustomRule(rule));
 - 				}
 - 				
 - 				//start a new rule
 - 				if (/^[\w\.-]{1,30}$/.test(param)) //valid name?
 - 				{
 - 					rule = {
 - 						'enabled': !m[3], 
 - 						'type': m[5] ? m[5].toLowerCase() : 'single', 
 - 						'name': param
 - 						}; 
 - 				}
 - 				else
 - 				{
 - 					addInfo('error', 'Invalid rule name. Cannot start a new rule definition.');
 - 					rule = null;
 - 				}
 - 			}
 - 			else //good line format, but keyword other than customrule
 - 			{ 
 - 				if (!rule)
 - 				{
 - 					addInfo('warning', 'Command outside @CUSTOMRULE definiton. Line skipped.'); 
 - 					continue;
 - 				}
 - 				
 - 				
 - 				if (constraints[keyword])
 - 				{
 - 					constr = constraints[keyword][rule.type];
 - 					if (constr)
 - 					{
 - 						if (constr.paramRE && !constr.paramRE.test(param))
 - 						{
 - 							addInfo('warning', 'Invalid @' + keyword.toUpperCase() + ' parameter. Line Skipped.');
 - 							continue;
 - 						}
 - 					}
 - 					else
 - 					{
 - 						addInfo('note', '@' + keyword.toUpperCase() + ' not applicable for type ' + rule.type.toUpperCase() + '. Line skipped.');
 - 						continue;
 - 					}
 - 				}
 - 				
 - 				//line OK, save
 - 				rule[keyword] ? rule[keyword].push(param) : rule[keyword] = [param];
 - 				
 - 			}
 - 		}  //if (m)
 - 		else
 - 			addInfo('warning', 'Unknown line format. Line skipped.');
 - 	}  //for loop
 - 	
 - 	return customRules;
 - }  //function parseCustomRules