blob: 4e5bca4b9d6c3175efdda401f9cda1fd74269c62 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.text.tests;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.source.Annotation;
import org.eclipse.jface.text.source.AnnotationModel;
import org.eclipse.jface.text.source.IAnnotationModel;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* @since 3.4
*/
public class AnnotationModelStressTest extends TestCase {
private static final String RANDOM_CONTENT= "UENTXRXNMRXSTNVZFACSMTQYVGOLEPGRXRH\n" +
"BCQCYH\n" +
"ZSJRPJZIVPLESNNZXJKZXKATUOPEB\n" +
"JDEGL\n" +
"PDGYPBQCHJCVBSKGBUMPBW\n" +
"NTUQFUTBSMMHAJBLDCIQSOMICATQRXDFHZBEHFPXNBQFXPCEBCHGUDEQUHQVWMVVROVCBOOPTUZFNSXZRXJLOJDTWYFYQHDVRKRYMITTMZFQRZNUQLNO\n" +
"HK\n" +
"QWHWVOKYKICEJKTDGALDXXNVBHVV\n" +
"QSHTSCUMBHWNNQLWSMKPWBYSLLPKNQGIQHIBNJJNQWZUDGNZNVCHYVIOQHQHKTUGCIARWSHTIGEZEHBHCIYSWXAUXWA\n" +
"JNGWEXGZACWDR\n" +
"ISVJN\n" +
"ZVIIXXFPFKOCSLESKVPAAPMQCSYOW\n" +
"TWPRIZUB\n" +
"MJMSRIMRLFAWUIDDX\n" +
"AYBHEVT\n" +
"DGWQBPQNVXUXEDCSIUIER\n" +
"WN\n" +
"JMXZFQUPSUOCTKLVOVHYUKKUBD\n" +
"X\n" +
"XVSLLHYFKIQTCXT\n" +
"KXTCYLQT\n" +
"DICOZRNMKGSSKJOODWFM\n" +
"OK\n" +
"QLGNOCOGGWFZQEZQOLHNCFCWYB\n" +
"JVWXRLOCYQRLAKTJOKVMHGUXCUT\n" +
"GZPWSPSSHXUF\n" +
"QORHKHPQUABXGQ\n" +
"CKUVQSZKHHRJWBTHLTB\n" +
"PMHB\n" +
"ARTDOBRPCC\n" +
"PK\n" +
"ADSASNKVKLVKDMHKDPLRFTXZLRKRE\n" +
"XEFSKKEKFGFHPXIHUXJKLCDTMXKJEVLRGQDNLFAMQBMZEANXHJNTAJTBYNYRXB\n" +
"LD\n" +
"SDPCIHNNNWBFEPBSZZVUJOUTUV\n" +
"HCAMQPJEHUOREIWUUIZHGRO\n" +
"NHLEZHZFIXRKFUCEATXXYRIGBYCMGIWETUUPQZ\n" +
"ZMWHXIFDRIZMKNQREA\n" +
"OCDP\n" +
"DYIPMHPXNH\n" +
"VJT\n" +
"RAUMTNTGEWKMPAHUKODZWMAHEVNGBHZMCRTTWSFQLTQPUFWITLLNMRKOE\n" +
"QWEDMVURBUPADIWNURQSVJVUCFYRVFQXARBBII\n" +
"CQSWJPFYDCTIDQPPB\n" +
"WCGGBTOULQUVUSDZYXWSLQZRZIWRJNPLSEXNIIMLGYMPSJKH\n" +
"IRCIHTCLGFRXHTFSMMQKWXEUIOAJMTHHEJZMJNZALAOL\n" +
"SDMOHBM\n" +
"BPFIXVUUHZJRQJXYTQJRDBNEVUDFO\n" +
"OSHWGOJCJEP\n" +
"KNAQLY\n" +
"ALVVYJ\n" +
"DOQQOOINMJAXGNZSBGHWJFOLZCHLRAIBMKVSY\n" +
"Z\n" +
"QTURPOEVPEXLJK\n" +
"WWAMWCOTAQUWCRRLFHDBOXIQSLWYYEDCEQLRDI\n" +
"JKZCPJ\n" +
"QVEIMJ\n" +
"CGBCQ\n" +
"DRDBKDG\n" +
"RUCHORL\n" +
"FFFZFJMOJ\n" +
"ZEIYFBKEFTOWJNDMKVVAUNKGIOUUHWONLUUJYWWWGWELKIUKTQ\n" +
"VT\n" +
"JYZGKQBFAOD\n" +
"DKSRELAUDWBZEZTDBBERCE\n" +
"FXLUAZSHBYUHRPCMWGPMWQIK\n" +
"NLADPOOKGASDQCHNGJQTORSTHROVMMENNJIVSW\n" +
"JGC\n" +
"L\n" +
"IM\n" +
"LLNUZP\n" +
"TIZY\n" +
"WXWGFHUKZGKSRSMETXGRDUUJCVNRZHPPJDPLOJOWMPHCGDDVYJTTZM\n" +
"KLBRTASATBDHZJ\n" +
"PM\n" +
"XZJSQCQWQ\n" +
"CIMEAWMSA\n" +
"UFWGVFSOUQFTNEEK\n" +
"LOQNFKKYKFTEIAQASFKUGYGRQHKKOWXPNOADPSWNQ\n" +
"QNYBKVOZGELUDWPBTWLSYVKZKIZGPD\n" +
"UCHJZERGLRPTLL\n" +
"KHYJZIOPAOFYTD\n" +
"ENWCEJP\n" +
"ZEHX\n" +
"HHOEHNATJ\n" +
"PYVTYHQMEBWOPNZTBXFKMZDZHGGAMIYMDEAL\n" +
"GQPNBRCMVEPQOCPDJKGHCJCYT\n" +
"SCHHWPBYZIHTXPKQRHWQUUWSNYWBBR\n" +
"RNFDOIUIEPRECATKQNHBZSRPGAEAJRUCNOJQTOPAXQYQAFMYHLXQLRUZTRRLWWHSF\n" +
"DPOPZOKBUXHFBLWYWTVVNDOZSGWCJCHZHGDXEJL\n" +
"CQDBKUKBNJEVG\n" +
"NQRGMKYUPKJABAWKVDLTVZWXFMLFPBJQQIHGXYPKIOTHOCOTVZHRDVTTLRGNYVTWXSIXAJSXXQVCG\n" +
"UD\n" +
"LKFCQCMIHOJOKPQYNOTPCFSGYNXPO\n" +
"BIMWQKREVNZBRKKKURHMUOGQM\n" +
"RZCJAVUU\n" +
"SBWWLPVOXVKEVMWVZQBMMHFDLCOUIXQPFUFGVQBTRRZJVN\n" +
"PYESJMBMUUPYEEGC\n" +
"NSYDUSFZ\n" +
"USJFOGTZRNUEZOYGCLRUDSECWMIYTADDHX\n" +
"SUYHOPWJUTFSSSMJ\n" +
"YYYTEZUSOTREIUCRFVVEQWJEUKYWJHGTXDLZQKWWQW\n" +
"NAV\n" +
"DVSEDJTGPAMMBFMEORNRKBBTBWJZRLJTJHG\n" +
"EY\n" +
"GMBLDOJZJJAOUCVNTYTOTKABC\n" +
"SVJQGGPUUJPVWQRJNWRWRDQMLTMKUTY\n" +
"X\n" +
"VTSUUTJRXQBIQINHANYGPWITDFAADJLTTHYBGAAPAUPKOQOCVDEYQLLMSWUIGJZBXCUHOJVAKRPHWWL\n" +
"Z\n" +
"ODXKPZTGZMXGEUSVWENBEPJTBZUHUZH\n" +
"EVYQRFJLMDVWWNZJCUGDZFVTKITEBVAHWBCSB\n" +
"NJDEYTKJGGBTKGHPJRISCJMHEMFBREBVRJVRPYLTQMMGLGGAQEMGBDL\n" +
"HVYS\n" +
"HLTENGQNYNOAIIILYSTDU\n" +
"VJIAGMFGVYL\n" +
"GAEWZNUPWNHIPBW\n" +
"QI\n" +
"MYJNARDHOWLXFEKD\n" +
"TZCGYVDRILNLZZJERKM\n" +
"GJCE\n" +
"EIJOJI\n" +
"ZAPZXBZLMKGA\n" +
"TKMVEATQIXCULZVZWPZEVVTE\n" +
"HVFBCDSCZCTYSFRIS\n" +
"LP\n" +
"RDNLFQOSOLTKNEBXQR\n" +
"AGRUUNFKYAHDUWZGTXZVUOZZAVZLQHKWULTHDRVMBAIIXAGOTMOEGKABHEEE\n" +
"DASOMFXI\n" +
"LVGDQZYIJGNYPZ\n" +
"POSFUWVZTIORFUJBGIREOMSOTFH\n" +
"QQGROZACVVZJDDCWBKKHGREYHKNNBYSKLKGJQIOFBCHOOBOQRCPN\n" +
"O\n" +
"XTAKMHUKVCYSCDFQ\n" +
"BTX\n" +
"AKTKCGLSPHAGYSGQMSPUO\n" +
"QNINNDCNBQC\n" +
"LBVK\n" +
"NYOOQEVTDFVDIV\n" +
"UXEVRZVAKWSOBXUC\n" +
"I\n" +
"DRGEOLAPRINXIDSREXGEFBRYVZJZ\n" +
"LUIZFHPYKOCNWKYFCSFAKWZ\n" +
"S\n" +
"HGVDCPXJLGQF\n" +
"BNT\n" +
"CGQBSJJNJB\n" +
"BVSEXHP\n" +
"GBRFRXGWGBHPQE\n" +
"JRPCXFXUDOAVDAOLNSNEWBXFXTMSLDTFUEBZHWMYRREDYGRHHJUQMWSM\n" +
"JGCFDKZSHRDBIMFPHMDAMHQUYTIIOMUVFELPSRWGRLIDGITQCCIR\n" +
"SARLPTMOBYOAUSGHMUVUKPUMOXFMDZQABAWKPFINLVJWYGCXIIF\n" +
"UJAYAVBIINRMRL\n" +
"ANK\n" +
"CMUMPO\n" +
"OQOHRKXEABJNHDPTYRVCZFJOJGJRVUCP\n" +
"WDZAUHWITGTMVBV\n" +
"CHFTCDEKZPORUVODFPEACIXOVXEFEPNUUKHALPLRGNJVIMALFEHQCPPTUPCUCQONZ\n" +
"XOLIAKJPYEGOPXEAQXNESNRKG\n" +
"ALA\n" +
"XOL\n" +
"XLMSCLJCFLYIJOOLJFHNXSYEKWXGFXS\n" +
"ZWKGKPMDDPLOGSPBHIYIDKITXUEGVOEJJIUXOUILLKUU\n" +
"XHQHGQYBBXMEINHXYEDEBUKVIWIYFHZRFRJXJOCYIZLC\n" +
"G\n" +
"CNDBWBB\n" +
"FWAWQSMH\n" +
"OSVILVFGJG\n" +
"LOMYIYB\n" +
"KLTUGTH\n" +
"EBMBVCRSGUDXYICFJPDWVQLH\n" +
"EYIECTYLOEASNNKGFQNHLPAOMUVIAVUADKNLTIEEQPS\n" +
"ZUKOGOEMRSOCAWKCDYWDXIZN\n" +
"GNVXBJDE\n" +
"ZLCYEVHLPMISUSENKKWX\n" +
"XNQWAVJWERXHIAOIRMUUQANGOJYWVVIZZEXLYNBTQXVGWHAFBDSZWYCMJJDUDPZLPUTFJFWDIES\n" +
"TVQZYMGSGBSPQUBMKHPBUAHVCXAZGCYHZBNSTIQGGPZICWGLKQAJXHVRRVDYUBYBXHVJASHZSYFBDQ\n" +
"JZ\n" +
"IPJOXVDQBWQUCEILGTGZLZYSEQWRGYNFECOGUKKMXMGQHDWPYDAPCS\n" +
"YNNMHHTHEPUUCPJXHBSDMCIHUOYIMDRWRTKXRSHE\n" +
"TCIEORBXJ\n" +
"BSD\n" +
"FJMJOVJM\n" +
"UGZYSX\n" +
"QDFVFLTG\n" +
"FDSYPULGCEPKPMCIEXUCICQCNRQOGVARBUWEUWRCTYBSGN\n" +
"VSINAZSNBJQAUWRMBXTJEUSGGX\n" +
"ZWSKYV\n" +
"UJDKMBSBQWYVUCIOXMJGXAUGJJVOCOYYFJCVXMM\n" +
"HQGQEHNEZF\n" +
"XIAMMPQUJYEMJQQRMOEVMSFQUYSMFCEKWAP\n" +
"NHDRSLPJTOT\n" +
"HNVXNWAYLJEPAOXYWGZZQVZRBAKHDEZU\n" +
"SMRA\n" +
"XXLSVZRYFBYNQIPVNHEGGDJATETLPODWQUPBIHEZEGWERNZ\n" +
"VEKXAUFWHHBHUTCSOGN\n" +
"ZVLWIAJWBWNV\n" +
"MKKKPCJHIZNMWVRFP\n" +
"H\n" +
"NYIZ\n" +
"FPGFLLPPZDLNEMIQOYMAYIGWT\n" +
"KOPPLHRFCGNXMFYCURFTPB\n" +
"ILBTPBP\n" +
"QJGML\n" +
"MRVOOFWP\n" +
"FFWOQGRAMETJGSZXL\n" +
"DAXJRNBWDOCMKMMTOUECYPZZDJFQSQVDROXMNPEWTQMRVYVAPBILTQHRTRFIMJYKREKTOVSGKKTLBGLBFRZZSRWCZZYZZLKAUBZJZV\n" +
"ABAUW\n" +
"BYWB\n" +
"FEGGFIZNDCLPCKOXWHVWWFQZJ\n" +
"XUZCXCOSHLNAYWZFHJWJKLPVIFBHKWLRLOXNJGNLLMFMCNRJYFAZPHDRG\n" +
"ADHUTFBIGJZGVEPGOPAATLWNH\n" +
"ITITCTYTEIBQQVFJHWYXWB\n" +
"YNPBFTUALLVUWUU\n" +
"QLSGH\n" +
"UGDTYR\n" +
"MHPTGDCVIMRUZAGG\n" +
"AM\n" +
"DCATIWDPIESPRODZDCAQAZUEOEDLN\n" +
"CBWEOLVJGTZTHGFRXOGKUFNSNJNWIJKASZVWLUOLMTESX\n" +
"EMCRYRPQWKLH\n" +
"FKZ\n" +
"VRZFHXYSTNFFTXEEPYXMVBNABSPHBEUOKOFDZDSWHXXUYHIAUDCJGJBOTISGV\n" +
"AXLTF\n" +
"R\n" +
"D\n" +
"RUDRUBAESELWFSURPACIFIAEJJWSZCPKEDUCVMHYMUEFXMS\n" +
"BKQGWCXUNWRAIXWVFEBKOUQJPTBIIKQJFMZORPOKTXVYRZGBWKDNKMQFJXDFWXG\n" +
"PNUURGXNFHQFXVE\n" +
"BNOLPYUIZALSWHEBRX\n" +
"YAORLAHSWKEVIFKFSSWILM\n" +
"JCCRLTGWWOQ\n" +
"XHTFDAGAINXYFXAJEDRS\n" +
"O\n" +
"UKJMSHVNOFT\n" +
"WUWZVWFG\n" +
"FCIMJNG\n" +
"AHAERLEHTFJPW\n" +
"FNXRCQ\n" +
"JEF\n" +
"VSRDKGIXTKLCCATHUTJMZURMOSYAETJZQUQFKYDGZJKEBERWJDFNONJBIHXGIMYEQENGGLZXAFKCNJGZBCPHIULHPTY\n" +
"XBBGFAKBVHCXUBJZPKENODDGMJSLZRUPKUPCSTRRDYURGUSSTT\n" +
"HYRGZYXDOGQKFRFAMLTZSEAAZXSOGDTRICMVUNXWHGZOHMBQ\n" +
"FBIZFVDKE\n" +
"NRBQKIDPADW\n" +
"HGQBDHEVZQTYTVVASKLSWOYJLCE\n" +
"SDETOTELNDTZOUVYFNIEEFOWRHZEWMASAKXASIRBSWOSHMVBMUGCUZQJYUFPOYVFSTSWZRYMBCWERIDONUBFXDOZIGBBSNAHJX\n" +
"UQWRQLNYXFXHDADOXECPXSYWFBYEBVHWMNBPMRVMRQDBTITZEEQEQNUEELYQDKOVSAIKQFMAHUWN\n" +
"OWZOQJNFGC\n" +
"WDNNZXTVWRZOEMNI\n" +
"KCBDTI\n" +
"APOJIMEFJ\n" +
"PNUMBQQMXHDAC\n" +
"ZCWQCMCQS\n" +
"QNMCBMAEYICXXK\n" +
"RKSTMZCRQAVHYLYLAIOTW\n" +
"DRZRP\n" +
"FCNHUCM\n" +
"GCAPBEPSDTJDBIUMGKCABZGCOVPUX\n" +
"CLKFNHFTLVGQDVB\n" +
"HQW\n" +
"OBIXQUITWUXRGLNOXVFNXHQCNQYIZ\n" +
"SHIBOGKOY\n" +
"BRQKHNEM\n" +
"FBAHZSWSBYTCJDEZJFUNS\n" +
"XKABNJVYZQHJBJEKIGAREDBTETKXJRRZRLPXXNFNBDH\n" +
"N\n" +
"NUEHERNOV\n" +
"MYQKXWKLIXVUTXGAHXACEHJRTIRFUMYBGJVIYWMYNCAATHYJQMLTIDVOODMZXAQ\n" +
"IURPSBLEMZUDL\n" +
"OAFRTCPR\n" +
"PMTJYMEZRFPJFRSXJEZD\n" +
"TAHXGL\n" +
"MTWUWXKPQHNJAMSOMCWQDPPBF\n" +
"EFZJZSOHLYDMACNMBJVWLUK\n" +
"EVSBDKVLLBG\n" +
"PGHJQQMAMCGYEFTJNI\n" +
"SKELHFQTGQXWKNSTFIODLWWHXHDUWTEUWHGYEKKWUNTPGZIG\n" +
"GAVQRELOVJLPDZRIMU\n" +
"JCIEEERMQZ\n" +
"MEPVMTCMZYUUXLKQMLUXHYESBXAGASLGZXDUVI\n" +
"XNXIYHRGILCXYBRDNNZENREWDHWRXOFQXLZKDUYCZEGC\n" +
"KLVUZVFAQLUDVXN\n" +
"RBROVXLUNJKN\n" +
"EXPTEOAQ\n" +
"KXDRYHDOMJXRGVEJYFHETWMELGNSZNKQ\n" +
"UKIFTXGUOWFJIYYU\n" +
"WYPFFWPUQRFLECYJYTUUHLXHRBCINYXFSNQQOPX\n" +
"OFYHXVQFTDEAHHMLRLYTPUEQ\n" +
"VVCZQUOABHWWLCWFTWKTXARWCZQKMR\n" +
"GUGRCMNUFNCVGPDCWF\n" +
"SBIGRUMNMDWDEZWICTBECBSGLBEPAOKCEQSPA\n" +
"MUNTHXQUKTDVSLAANSYXHVJXUQBORNJGZQY\n" +
"IXECGCYTXUAHCVBHNUAVVVDTBRGXGCZDXZXAPMEDD\n" +
"GGZ\n" +
"YYBDXEPG\n" +
"VKPOIRMDLPWXVYNKALQGDVHFFLIVYRFNVYJTBZUDH\n" +
"NZLZULXZQCGR\n" +
"CUM\n" +
"UTS\n" +
"EPYRMEH\n" +
"JVDSALRVZ\n" +
"UNI\n" +
"BWTIXCCS\n" +
"IMTIWBOCUAFKGARFHWQXFA\n" +
"QZGMYBKZINLADVSTYQNKPIEBUTGTLBRQ\n" +
"THHRMODKDMGFZJYS\n" +
"PNMHCPTAAUJ\n" +
"YAO\n" +
"ODUHPUZWHBDGQSUPHRVDWRFKZBMZJSCEDVMWXWNAD\n" +
"JSBWOJVVDMXCVDQQCJZMEKHETMCVVI\n" +
"ROHTSGDIQSHGCFEGWVQXXINJKSKDKOCUVVZWKJCUHIO\n" +
"BLQVP\n" +
"LAUMVLNSFXTGFRS\n" +
"VJIV\n" +
"PWU\n" +
"GCAXGYZNLN\n" +
"BZFQKORNIFTDYMYUMYIFPWR\n" +
"BTUPGQTWXNFMWDGGNZUSPAMFVASGLBCYQITUDBRD\n" +
"SYNMB\n" +
"QAFRCADBDUJJWDPSXOKZZQTCLVPSQSBZVTTZRXDXSJRXBOAHODIYOYLCQEOAQDT\n" +
"JGPOEHNGWGISNZFWFOITSUNEUBJV\n" +
"BZNNMLZTLVCJZZXZSLQGACLNRHTQO\n" +
"TCDNYYLBCEVRXDLNGNNBNMLR\n" +
"D\n" +
"NZXSOCPFGRAWKZOQCGJQYTL\n" +
"GTOLLNGHGJYRMCTSOUGONHUUTHPPTAU\n" +
"TWJW\n" +
"SNZRMIREGZSCKCBM\n" +
"XQKVMY\n" +
"VNETEMMRQSBRPAJDQCYWUKQDMIBENK\n" +
"HECALWUGVJPCDHYBNEOJQECBUOHTBNRWFZSHULZVZFDZANUJRUDWZRZGPLPTPQVMXUSSSFKBI\n" +
"CDZYXUMWXLUIQBGKNVNXMHBOIS\n" +
"NKPFXTL\n" +
"FEMMVHUAQHJUGCHSWCCMQTQPSMTG\n" +
"B\n" +
"UBWQZCSQPOAQOJGSLDATZKZDX\n" +
"N\n" +
"QXRSUQBYAHDYWXSHKWQNRXBFCSBPPBQTDZAPCKHSOARXV\n" +
"NX\n" +
"LLHWVVCWQHHWHFFCPQGSDHJQFGUEIPTJDJ\n" +
"XSQPLBPWJJUSDEORJMLPFTRVQQWVPRWLHZAMIWGIKFHOEVCGN\n" +
"ABZAB\n" +
"CIF\n" +
"YEYWGZEEOFNUU\n" +
"HKKAIWVAIZAHUKJWTGTLGX\n" +
"LSJ\n" +
"SZNBOHVRUUNNNOQZQBKDRXXEKPCFAVKMEEN\n" +
"DGFTKMTFFYS\n" +
"RYPFU\n" +
"V\n" +
"TCJBFMXWYLFXFWVSSIHVANRMSOUZTJJQWRZ\n" +
"NPKZGKPZJMIQ\n" +
"DIEC\n" +
"ERLGSJBIT\n" +
"SZCXZNYSMRTAMEPAOPVXQENTXOKUAESZFEWPVFCVZKDWQTCHHOZX\n" +
"WGZPBDYZOZSHFNIIYRESYHBNUDVBUJKDANGAKG\n" +
"LF\n" +
"NWVESANGTA\n" +
"NRNOPGRAIDSNQRGNHMC\n" +
"EFD\n" +
"CYWAZCDALXTPQWZTURESLFYQBFBXYIROKRNLFYNGRRRBLDVDPFEMATQU\n" +
"N\n" +
"UXZDIMTAADLIL\n" +
"MW\n" +
"KGEEPHWZHCMESGWGDFWYYJZAJL\n" +
"JMZ\n" +
"QWXOVHFUSUBVMORKZEAR\n" +
"TMLEJIWNCAIRHYN\n" +
"ILFSRUKGUNBFDECQKORVRSKEHADJPXBOFUKQ\n" +
"XMXWAFPJHQJBOVYIOGYOCXXXELDKXKTEMQNRUSQUBXRQBBTBAJGFKBOJENN\n" +
"NPLJIFIHZLJTLGVMAFQRRVHOWUAARWAU\n" +
"CSQMHXTMMMGUFQWJEHRQXCYVSHKWYZXFDOYBGETKGEOROWSCUOXS\n" +
"JASNM\n" +
"UJOVWRLOID\n" +
"PITSSCBMIFHFZBFBEYVOAK\n" +
"YEEEYHDE\n" +
"WSPKNGNZNYPPYYTK\n" +
"LMNHUQZRXWVGZHV\n" +
"OOCGYPLGJPFAOKWXTESIDZXKQUBCWK\n" +
"CVRQW\n" +
"S\n" +
"FGKKJL\n" +
"QWHTTHVZQGTYOBZEUXOHTXSYSCOOZJQAPWDEQEALZTLNZK\n" +
"RVMLXFWYWTH\n" +
"LCOOOP\n" +
"AXOHOGTA\n" +
"IIOSCPFXMWHFQMKFNANVRGAMPTFIJCZBNTANHLHCJGISOVWYOC\n" +
"NA\n" +
"ZPCKGOYYYYMLQTUCHRQTUNECDTLGHSSSRZFMCZICSLJAXPRQFC\n" +
"EULMGJMKZTHCBNISDBEAXRYOBAODBCBVYOXKDRSVHMHSVSDEWEVWWPSIUPMYGJKXDMNADUMZMOMNWOTJ\n" +
"FXBWSHXWNUOHBDTPQSCKVCPJN\n" +
"EZBRQQICQZSYESO\n" +
"F\n" +
"LHNW\n" +
"RZPUTPTEEPITYWVHBTOWGYZL\n" +
"NKNBTQDEUEIMSGG\n" +
"BWDSOJYVYCLTVBTTRVY\n" +
"UMDKJHCHNGUMTFFQIAOMTFXJMJEJUJSORORTKTHTFPYWHSOXXSKEWHOXULBQQQDRLSQNN\n" +
"R\n" +
"ATHC\n" +
"EOVJPDROSNRNMWGWMVUUTBVXTNOSPWVFTHIHVMKZWSHIX\n" +
"HDBGFFW\n" +
"IBRFSJYTMEZJMULJTGITLSTITGTLYCKJVTSXMMOZ\n" +
"CKGRVGQFBWBEMDTMNUDENL\n" +
"IUL\n" +
"HKOYCXYKLIQDAIMU\n" +
"UZDFWIXUWIB\n" +
"UZOKBHXLNVGJBBIXFOAHADJDNGPNSRCJT\n" +
"G\n" +
"ADS\n" +
"JHHAINBCVAAOTOODRJHNIHBSM\n" +
"SQXXAFQQUEJABJYKGDZKPRTYBIWLJQREJPVCPFCS\n" +
"GRJWNYPXZKIFWYOHCCXXFJIRQAWDLLDPGFZZTO\n" +
"XSKSCESBMBYMWHBTNVYVPOUUVOFWCDAUKMWBIPZS\n" +
"RBJ\n" +
"JKQNGDNRCUNXSPHHHAZVLJGWQFUGEDQSCWAAJLBNLCS\n" +
"RFSIJTEYLV\n" +
"QWWCPTYNRGEKAGCFXRGAYLYOHRCRD\n" +
"YDPGYZF\n" +
"HDDRLGRRDDWMCNR\n" +
"DQ\n" +
"SF\n" +
"FLOFGHQFSIR\n" +
"OEWOFZQZ\n" +
"KQMUIHLNAMPEVCMEUKYASKOXWEQCJBLWKQMYFVBAMYCNZLRDCYKALCTARWQUFWOJKXYZM\n" +
"RLCWZXUHKBDWZZIM\n" +
"N\n" +
"ADMVJ\n" +
"EJWG\n" +
"BA\n" +
"UMYCUTOSGLEKXQZDQNNUGQLWHMYGLSL\n" +
"ZEHAWKMBTMIRFLNLGXHAYMYJRZOCGWGPASQPOMBLSVSKUJZHDVVCL\n" +
"PMAJOJUFEFFTYFSHNMDIQDQG\n" +
"HRXLBAIECHSAAQLLMGBJF\n" +
"PSMVIEGUPEYENLBHBJLEUGEKE\n" +
"XMPWWPYLQG\n" +
"BJMUXGEBNIYJKUVREVBVRLWI\n" +
"PSHAHWUEMXSLAHHENDKANMQZBLKGMKZMBUOVOGTEFMHUIT\n" +
"CLCH\n" +
"XBL\n" +
"SZRZRKVUACBYNYMYKCPRDABOMVTH\n" +
"JECJQSUFZBRJCPXUGMKFRXSCT\n" +
"KZXLYZVXZWVZQLMKAXIFWNQODERRKNZDTZFPPA\n" +
"FMIXQCHBOOQPOQRSVUZEJQQFXQWYFLTUSBHPTUTTOFDYHLXVSOVTABLXIJWJCHZASUSQIIVHBXCJKKCYMJOMJMFRDEHW\n" +
"T\n" +
"IHHMQQAJYSYRSGKA\n" +
"UKMRWKCRFRGVPOYHRCHDWPNKJLBVVCCIPYKOVAA\n" +
"QZPFLHKQWNVCNVDYZA\n" +
"XGAMXNDJITANAWDC\n" +
"FRMOU\n" +
"ECFNMRCVCISCOR\n" +
"FDVREMMIZGLV\n" +
"WTHKAXBYL\n" +
"OVSHPRONNCZBESLKGV\n" +
"UNSSNPBKGX\n" +
"TUUVTNLTRKL\n" +
"ARTYPHRWI\n" +
"CDR\n" +
"CKL\n" +
"IVKGDBLCYYDRRLXYFM\n" +
"KILMYNCYPDYZCLCJG\n" +
"ZB\n" +
"VIWZE\n" +
"ZBKHXGRVTVRBKHIORDBBAAEHB\n" +
"DVPTQCICEWAZU\n" +
"ZFMVHMXINPHSGPQOTPMJYYUHNWANTLWPZOXJQGJ\n" +
"FSDFPLRVDZ\n" +
"AIH\n" +
"FZOALCZOCTX\n" +
"EBHQDKST\n" +
"EM\n" +
"GOLMARGNZMQTYETJBUIH\n" +
"BMU\n" +
"RZ\n" +
"UOCNOYRMX\n" +
"VLXVMEZNPYWU\n" +
"ZESRONJUWOEMLRY\n" +
"N\n" +
"OJBTFZXKSIXWSTQBFWAROGSKWOLRRFNNGECLEOFSXUEBQLMKIIGKFPHTFYZUJTVTHPZVJJF\n" +
"WVWGJICHMHRKGYMMQSQBEBWFNMC\n" +
"BWYNAFZSKLGDUOYHLWST\n" +
"IJXPHHKMNNXOU\n" +
"ZAYRDWKZPNHYLIP\n" +
"STEKYFRJCTT\n" +
"QIXDZNRSHKTAOBAH\n" +
"HCRIBCYAHPDREZTKPLYZOOWZHWYBQZJOSUOWDYKDESRH\n" +
"WIVO\n" +
"YNWMB\n" +
"LRNGED\n" +
"HTWJQCZHLNIJYOHYEO\n" +
"A\n" +
"ZIGDANAWN\n" +
"PTSLAUXIXIAC\n" +
"SYTOKKHHCFYGHBRPQLKEOTLQQRQZVVX\n" +
"DQZYUPODVV\n" +
"SBXGGDDAGENOVMJQZANQZ\n" +
"VCKFZIIPZFPQKQDGLLC\n" +
"ANBZSMZINCRORBLELLXKIWFKDNSBYQCV\n" +
"VWBGCGXWQVWOC\n" +
"YNJM\n" +
"JZLSNKWGDWDLAPSPBSLIMSTIQIEXFOGYVPSZDTAGBLVNILPJVSM\n" +
"HHYLCVQRFOBJCUSOWVOFJIDAVWQIRHYIHGUIFFZQWKHPTAOUQFMTIPTLSBHEPJRZDERRGNJJJYINNHAFMYGHGWSVGRXNVKLXIGV\n" +
"BEBXZXRVMNFTEF\n" +
"XXOKDENGQGH\n" +
"L\n" +
"BVM\n" +
"VYNGZYQPUP\n" +
"TW\n" +
"AM\n" +
"HBFSAR\n" +
"HTADVEFTMXEYDDATGFRQTDQEIGHGDYVUJYP\n" +
"WF\n" +
"XVQAHNLMSYBOPHOHKTJK\n" +
"GDSCQHOFGAHLNIM\n" +
"FTZOLNKDPVEOZIVCFJFZOJLMGIIOWFDEWIAQRT\n" +
"NZOFRHWDTMEDJKQMNTWNTOHOITKDJ\n" +
"XTZQKGKLPSJWDCJZTBVQKSRWOBGVMMWBGYVGJXLKOGQAEJQBMQFBHDHQTOIOHLCOAAODGOAZQZK\n" +
"QZYBJEARPTWICQTVPXWUFEPHIMRWFCLAZNSO\n" +
"JWJXGJIZPDNWQNBDJQUVAIUURFHWTMKCAVKGHZHQH\n" +
"BLRUZFGVP\n" +
"TTCLTJNLGEBMQCW\n" +
"EOBPYCAWBOFMORPOWCNJMQSWNFRGRLRIBHP\n" +
"VLAMFNYJOMJF\n" +
"AQLAPTZJBOR\n" +
"R\n" +
"PV\n" +
"OMJPI\n" +
"XSQDYAWOWHVITUASFCXUREPAJTDTVPRY\n" +
"XMIYJXHRVCDDFR\n" +
"KOLVLDHBERNMTGSBHTAELVGFJFQQMTEHPDHWTFZTAXXRRDIU\n" +
"AWVP\n" +
"HGSZDJIFKDFTSU\n" +
"JI\n" +
"QAOCUMYFWUJJNTW\n" +
"VSRQBJUQQDFZIRKTJVBFI\n" +
"VTJVYPGADE\n" +
"WROBCQAMISFJLTPDIFJLBMGFHVTPRIDPUSNR\n" +
"RTJOXQJXBZXKQDPAAC\n" +
"TTPCFEMYJYFNCWU\n" +
"LPTWNTAEKKEYUFHLUUO\n" +
"NNSHUEUOUZYFSYMKGPSSRNLTIRWVXYYOGSJXIQLBPAFESTN\n" +
"SVJDEGFMWEBNLIMNCHOYIZUBBLDMICVDFYAQFEU\n" +
"K\n" +
"QZQLS\n" +
"ACQFKU\n" +
"PHM\n" +
"TVNDJOYYI\n" +
"OKICUJERAYIJOCMNLXMRZDBKXUJWAGDNXSNSSV\n" +
"TZWNGNHFWOELEGAU\n" +
"VDVVABKAVPZQVLEO\n" +
"SNNLM\n" +
"TVKKJAYDSKVNXALBFJCFJFNPEBBRCQFMZQJFDIJCXPDENCBDZEELUCTPLQL\n" +
"XEBG\n" +
"ZUPRHHHXLDX\n" +
"XDOXJXMMELSEBRPOWFGXWYTPOUAQWDHCIWAXVHCMTQS\n" +
"AUUZGJOJOSE\n" +
"OVQOIFRV\n" +
"JXSUKCTYKUTN\n" +
"LLCZP\n" +
"KNITGEARCUZIXBAVJSYJBC\n" +
"NFL\n" +
"ERWJSZHNMAXDCM\n" +
"YPFWBXMSP\n" +
"IPEYWIIFGJLGXZZM\n" +
"YXVWZAC\n" +
"UM\n" +
"IVWUDYZT\n" +
"YNYWQEDF\n" +
"QBTGBES\n" +
"IFLRJBVILGUAV\n" +
"VHENAQLCDKIBPORJJKLAFLDTAPG\n" +
"PJQHCRZYFDXVSRLJTGFHVFISKGUULKNZOMOKJWFCSVBVRPKTLH\n" +
"QX\n" +
"OVDCUILFECRMAGVAZCGZWLAT\n" +
"SEP\n" +
"OUFQN\n" +
"NLJANQJNNFFUFMWJWCPTGN\n" +
"IMVLDDEKP\n" +
"CTBNZFLSZVXMFPFQE\n" +
"FHRNBURCB\n" +
"PDLLMZDC\n" +
"VWRPPDJDWPKRNV\n" +
"UWPHABG\n" +
"LZHCBMBIO\n" +
"GNBRLZNZSWNB\n" +
"GNZACPJPWLLU\n" +
"EALARWIQYBLUYPWSFGEZIDAKNRWRKKEFITBRHUMDEVSYLMVIUYTBAQAJRBTQHXEPAMOLXO\n" +
"TXJAAINXDZA\n" +
"TEIVEAO\n" +
"HIBCAX\n" +
"Q\n" +
"ALCTNSNWMRGEVADUHUDVTARJGWD\n" +
"AHICDFJYTJELDBDYRQJNBWHNJBDUWUYYT\n" +
"WLFJJBLSAOBPGQJBTXTXZAYWJGS\n" +
"BIUALEOHDNWFRLFIRCQL\n" +
"ZTUOEOTZRLFFRZZIKBYOKD\n" +
"TXICJHKASBWPVPTDTILNCGNYG\n" +
"DFK\n" +
"VHN\n" +
"YDGRUJAAMLUC\n" +
"HRFZPNEOABIREGQXISBCZCIMYECEHSPSAJALA\n" +
"BGFGJSJCJBLMAZKBRTZTVUPWCRSXEJBGEZTOQCYMOJWOEVEDLXTATZL\n" +
"DLBQNE\n" +
"JAHZMEKJLOBCFEBJKGPUIWVIK\n" +
"LBEBAUBMRV\n" +
"VPVUVMBQRD\n" +
"QMZLSRHMITTHAFYXMBWMZXLNLDWJKHOSLTHFKFXUIDNRNSOWAVLNPXUVNKNDIXOXNDGBKIYS\n" +
"ZBMLJHFQEAXCDPQDSUFVSBDCLXNTUALHKOPTKYZTAMEEKUJEQCSIJWIWCUAWZIUFELBCJEKNBOERQYKJUOHDNLDEB\n" +
"LCLFUTZCFBBLGNULWQQYJVFBNMOZI\n" +
"EBHGAI\n" +
"JPIDOTMQSHYT\n" +
"BCHG\n" +
"WWADZILYMYJMQQKEYEHVMJOWXPNS\n" +
"YJSCWWNVTWYODOSXNQBEGMCHYUOHFZLTMEEIYTKI\n" +
"XNXINKKXFSENMAX\n" +
"GNJHLZKF\n" +
"BIGAVOWATBSMVCZPRGVQCNWQNLCDQWOTMDKYCBUFCXULYJMPGL\n" +
"TQTTXYFLCXQMHOIXPUZBSVKIVKM\n" +
"LATJPOJXFSXTQYU\n" +
"NWPZRLZQFEKPCJVKWYUEGTQJPUYOPMZJQLCLR\n" +
"XGZ\n" +
"WBRZOJUNGXQN\n" +
"OAGQRFWSOIYFSJOMXDMVKMCNXPHADBPVGYNNEJMTJBTGRTCFVHEFP\n" +
"FJFJYZQWQMNYOKYBYBKIYVXAESBLXAEMCNLGAGDOVNRXZWNH\n" +
"JCUCQHLCD\n" +
"NQOBRAUR\n" +
"RYWNHAFCFQINQ\n" +
"UTRJIHZLSITQXYVMQY\n" +
"DQYBEHOYJDZJHARZFDGXECNUMPRVXBNNW\n" +
"TPYLXBAKXKJYSPOCBDMWDFNLDJZSTMOAG\n" +
"AHQFQDZGUIDHOLWQYZLJRIVBWGQ\n" +
"BWDQM\n" +
"ZCUC\n" +
"OGSAKIHTDUBQXFEXECLF\n" +
"QJAEHVDCQQANUKEHDRQILQWEAVWXOGZCEERDYN\n" +
"C\n" +
"KDGYXTSAB\n" +
"ZXTMAMRJWWCYOUSNXLBSA\n" +
"ZWDOBHUHXWA\n" +
"VKXDJFCJBPYJNPFFYBZAPWYMSESZBUJLUUAQDQKCVALSJSCHHCSGCHI\n" +
"CNAMVEPS\n" +
"SDFPBWJEAZDQQRTQRDUAMKIBULZFMNKUNDYLJ\n" +
"P\n" +
"VEEW\n" +
"VTGWVGIBNUTJOEGB\n" +
"YWWLAJ\n" +
"RWNRBFJDRX\n" +
"MYFN\n" +
"FTPFVOYEQHR\n" +
"RAG\n" +
"TO\n" +
"LQOVTAHNBABJAQKNBCHHX\n" +
"SZZBZITFBIIZEYDBSYIKYJUEVBSMCWHRKTMILXYQYYCYWPGJSPMBPCJNDLAOBBPHCWVHAFXSUJSKFFDUNWYPAN\n" +
"RHDPHLRFVEMMYFIZWYICJQZKHZX\n" +
"YFZUKLPITEFZACKCDDPIOCUFSTEVRD\n" +
"LTITPNSIAJEHUJYEJSVJGBT\n" +
"SLPWQUKNQGYBVIGUMB\n" +
"LRLONFQHZGTHYYVWZQLVUSQTFUWHJNASPFNGVBJKPR\n" +
"LEMAFKWZFZWJMFVPPIUEZUDLHLJSXHTNGDRIROVO\n" +
"DI\n" +
"FLHSSPRUFZR\n" +
"IIRQTODXIGMBRAQSQSMIVDHBAPZKCYPFQDSTXKYYN\n" +
"SFNEGBGBEXAT\n" +
"XCVRFNDBNXQRMVDSZIGPOHGMBA\n" +
"EEOESCLGWWCWHJWBUYSODZUAYATN\n" +
"JOIK\n" +
"HFQWTNZGPARTFRPCY\n" +
"MWINOFYNEHLFXCAGTGNYTBRN\n" +
"LYLXABDDWDAIMKRMIHI\n" +
"DLQOUXODWNDRSENRYVOOICP\n" +
"TC\n" +
"QMI\n" +
"MHXHEHZZBKUO\n" +
"DPXBI\n" +
"EUVFZVUGRNEMNSBHHHFAQTIUPOXLKVMG\n" +
"WASCSLAFIONIWATAXTFYRZWUKPHDLRFIOI\n" +
"XUNEHA\n" +
"QZPITHNO\n" +
"QDPVEM\n" +
"ZRB\n" +
"ZG\n" +
"NEUOXP\n" +
"XTSWDUSDFNOXSUSYX\n" +
"EJQISYECXPGEERICEPWRU\n" +
"WAGNEPWHUIJJHQMUAGNHMYOIKQBHOHS\n" +
"T\n" +
"RMZYBBXQZPNQMHXBCXKJBNVFDTTPGJPJBRLFVUMMCSKWRJSGPCVREOPWGSTERWVUXZSHODQIHOOAYTSUJFRGURDFNCXEZCBLUOJBTGRPMTCLMQBI\n" +
"PDRTQBKJEXMBHOOSWCF\n" +
"RMMEEVMZCKGIXAERGXBRXPPLBLKWYW\n" +
"FBEXNARCGNLS\n" +
"FW\n" +
"TQQCUJJZZLCDSLUQETEYFQBWWZWTE\n" +
"ENRJUD\n" +
"NJLQSEEFBTDJRYDXKIXGVOBQUSL\n" +
"MEONVFJEFKTUDZKPNGFZZJGVCHVEB\n" +
"VFXYEWSBYQJTWFAICT\n" +
"EOBGFVSOGHJBH\n" +
"MQQSMWQK\n" +
"HLOKZCDPNVTIWLEPBNJEEANPLELTAPNHBTJQ\n" +
"XLFWHOI\n" +
"IZFLTKXAYYWSELSY\n" +
"LRNAEGMLUCVEMBQPL\n" +
"CNORPULYJAOTZYKFQNQMDTSCRGXQZYGDTPOHSQVSILKRAIFOXKEZRDZQNRU\n" +
"GSFTXYVTIIYTSWGLG\n" +
"HEHKDSWSDZAQGXULRWXYWIVJQGXCOIIJGBWENWGMWWOTTFYOJNRGZ\n" +
"ZOOBEOHYH\n" +
"FTAKEZVVHYOIMGNKNHJNIWDOPQA\n" +
"SJR\n" +
"FUPPUXXEIUJXNAONEEGNRHNXYWHKRGFYMSFYGBMABZYRZZHZPOXNJXA\n" +
"UQMYPJYXNOZDEHFSTZDWZVWSX\n" +
"JZVGWUOYUPPFZ\n" +
"HHCAOCAIWXM\n" +
"RZXWLBFWPWNSITSPWJNBTIATOKHXKYUCBRQCGNRMMKBCCXIUGNZCCHJ\n" +
"UFA\n" +
"HCSSETIDVGLDEKRROPMZZYHG\n" +
"JVAJG\n" +
"HOHZZONMSTEIDMDYJM\n" +
"WH\n" +
"UEBAFWOQMRHQDFDFXZYWWPWAEMTRVPYWGDAGMESTWREMEJRCTSVBALLVYQTJRDDQF\n" +
"GJOIO\n" +
"PNYNOXAJUNBBBCTFYPPJXUXMMF\n" +
"WUQMSLARIKYCCLZNXDJ\n" +
"YB\n" +
"DBEQUHQZWSB\n" +
"OK\n" +
"UNZNCPEFNBQKYHV\n" +
"NXKYSEECJQ\n" +
"JNXAQHK\n" +
"GWHNZCLROTCKQRRCFCRGZILFEUPLOQOXVGHYCDFZKHSXKTPZPJOGUUEF\n" +
"KXVZBQKUIVUQEICJDXWDSOGWCMEI\n" +
"WXYJINVRMSYMTMBWWI\n" +
"HZIMQCZWGMXTZGLJA\n" +
"EBDFFBORWLOWJVWXKGVNAYIQKOTHHTBVRFL\n" +
"OMQNHKXNM\n" +
"UFYXYXZEUSEDGURXM\n" +
"BTNLUSOCITXZHYGOCLCNEDBPAKDTKEYGTBNGCLSHFEIGAEOTNDW\n" +
"G\n" +
"Q\n" +
"XTBOXZQTCF\n" +
"MXROBAKZWHCKXLKREOMEGMANJNQGSRQ\n" +
"LOZICPRWXEXBGTZTUUOKHRTHMYQEAWTBLNTVSWWFZTGZZNTIGVZDCOLOFFTUI\n" +
"QSZPKXZSUORWIHBYBNPKCBDWWIEEMEEVXHQJKWLMURAMYLSVWEOBQTYZSWQQAXVCWAZNLDZKQYCAEMYTJ\n" +
"HYDESOOQKJEEUAUZKYIKY\n" +
"QLKMLZCLWXNWDMKDKQTGWOJHXVFQ\n" +
"HWAQHABXRWTVLLVQRTJLQTGRFTYVDSNULWJAKYVQMGSPKLRCFCQKJEZRHULCCKYOXVLLGOKEHBZEWMGHENENIIPBFSBKKADOIPMEYKKEMSDOHSTQYUATDFTVBMROJKE\n" +
"PJXDFFVNJACVMYDXTAPGDBQMDIYNM\n" +
"WVWS\n" +
"PAHNGCPTSKEBGGJDTTVFPAF\n" +
"NLFQ\n" +
"SUUKTALIRDTNXENTNPXBPWYUYASERZUF\n" +
"QEXQTQTVDBRMMLVYBOKWZZJZXYBIRHVW\n" +
"CBOHLDGPGJH\n" +
"IF\n" +
"ABAYULLMFHXQCZIGLTOLAPKYE\n" +
"NFPDMAGHASUWEMPPSHZLXJLCLHVVGIQVRZHUPPMDOQKCVADBLYKROIWJCHFIZ\n" +
"MITGUGZ\n" +
"GIQLWTMDNMXCVBRIHXSUTSQOBATHXTBBU\n" +
"VAQBCUSZWNRYQO\n" +
"HDAEQAAK\n" +
"FEXODZIBJSXU\n" +
"ZVO\n" +
"U\n" +
"W\n" +
"VRCDPAEIWKFCSTYGDCTGQSBZ\n" +
"IJWMRIQCQVRRHGBTFDDDO\n" +
"MX\n" +
"XVLHBXJSOUAWMYO\n" +
"YUNSCRZUATVH\n" +
"JXWIXQIXHFGTKTQBGQTDZXFMWMAHWNWMUPXBDM\n" +
"JFZHLOSOSULNFAWQTBWBQERADCVOEAGCHQJLEUNA\n" +
"MIH\n" +
"GYMRRDVPIOMUPTQLBCIZJIVTELVNIRUDVFPPRRUGOVGAMMIWBDYNM\n" +
"PMU\n" +
"V\n" +
"ILTRVOM\n" +
"PFORJR\n" +
"WPURWTO\n" +
"PJLEKIUPXO\n" +
"VQWUC\n" +
"IMZKVJKWCACHVDXWMGAXPSRFDV\n" +
"EYQKXTRDGAJULGRYWXUSSIZR\n" +
"DSNWYPDISGMEYNNYGLOAEMCULBNVZMQUPFERYI\n" +
"YGBCADMALTINTHAXIXMWJ\n" +
"LBJNDX\n" +
"XTZUVAQCBXWARVKOLMICEITJNHYPHDCTJTHEZEJMXFCWJCRPQINJCGVJJEVMR\n" +
"JAYMBCJPXAYHQFFMFLELY\n" +
"DMPXURXNVHGFGZSUKUYDLCA\n" +
"EQG\n" +
"VDIXHLWHYWPZHUTIHKIVWEWDSWPJZZQHPHADMKQKOCNYUDV\n" +
"QHXZP\n" +
"VGNJCYVUUACVPDID\n" +
"LLGGLK\n" +
"KGHB\n" +
"KSASSTBZEVPNNVETBFWEQORBNVSCZVMIVAEACOLBCFFNBRKKVUCHUEQDWR\n" +
"IHHXG\n" +
"UGDELBR\n" +
"ILXCLBZBEQZH\n" +
"Y\n" +
"DCMZIUADUCCWHKOOVKXIACYWBTSWWCYDWINHTL\n" +
"QEHP\n" +
"GTBWOYSAAMJKFBYJPA\n" +
"LIIXTRTREGONTV\n" +
"GYFBQZUMZMXHXT\n" +
"BIGF\n" +
"QIUTFDUOSIQOVRBPNGSYDHNQ\n" +
"EIWCYCAINPZMGMTSIYAHVMPBSYXDNHWGRKGRASGDTXUJBTGQIG\n" +
"FUCYJLLRMVQSQMNOGDKVCPRXDVJQFPLVXP\n" +
"S\n" +
"I\n" +
"GRAHBJDNFZQTZIEXTNMFUUBJRIMU\n" +
"A\n" +
"IXHDGGRBQQ\n" +
"C\n" +
"Z\n" +
"DHHHFTLGSFVEBKIAQXBFBHBE\n" +
"VKVL\n" +
"MQYIQHTBUKCYWEZBHUTARRYFLAPGVQJKQIJLNIGWRGASQCRZQUZVRFXK\n" +
"ITISVHLZZKTO\n" +
"BQQN\n" +
"USQ\n" +
"KDCW\n" +
"VJHK\n" +
"JFQLTLQABHYZGPRRMTAKKKGVZUKKQZXZCHHTXPBKH\n" +
"IOW\n" +
"ZRSYJU\n" +
"QLCULISYLZQHWINZE\n" +
"TPWJAHTIMQHG\n" +
"FMWQGS\n" +
"J\n" +
"CKVPOWIBUGPVSIJBAMMMWUSJXXROLIXWUFFFOGDOBFYNYZEZSKSWLDZFYIYHFVQNXSTDQ\n" +
"GCVDFNM\n" +
"ZL\n" +
"XPXILYGXIDCFPSIMNVQMWTKFV\n" +
"MHS\n" +
"JWCAIKLHFDVVPDPR\n" +
"VIGQFTOEFOOTL\n" +
"RTH\n" +
"VABHIEEBDS\n" +
"NYXBVNVRRXNJ\n" +
"HAEUONDNTVVTHLYXLIANJUUHBEYWUOZTXHAVL\n" +
"KGIUROHFINGHDONUOOSVYTSJUIREYKKVDWKU\n" +
"ODFHVAHQEIFLZHGXCWRWGBVOH\n" +
"LS\n" +
"XZWYXCBUUERNVJBNKQZOCVIICJCZZSD\n" +
"CLMFS\n" +
"NWBKXLZONKC\n" +
"UEWHNBXSALZSSGPPBGBZWSHHGUCPSNDTLMFR\n" +
"THVKU\n" +
"PBBIDK\n" +
"KHADIIN\n" +
"HOPOLBAG\n" +
"SRZXQZ\n" +
"PPKZHAMLTBHWVXEQCCZBWAQYJCGPPFGAIRAANSMGQP\n" +
"NYEHHNHPIEEFBLGHMYHFDSCUW\n" +
"CHWGMZFWRPMVVXDLMFQOPYTCREUCXA\n" +
"BVUCGFBQSBQNELFAYLGAHEPBXPSFKUHTNYQGEMWBLIIKKJHHYEXMDLTKJMRWHCOQHADGNEYAASLGXQUWEZ\n" +
"EXBYSMMKVCPVDGLQOPLDPMEJEEPBLLJNRIQC\n" +
"LEVZAA\n" +
"GDKTECIRKOYPYPEUTGKUFEVDTFRDAANHIFBUHSMJS\n" +
"UIGZGPXOJUHVRXAKWQJIMGWQCXWKSGJVVKB\n" +
"ONINVJQWQLPHHC\n" +
"P\n" +
"XSAXFKRSK\n" +
"EBCB\n" +
"UW\n" +
"MNVVOWWUKKZBGFBTNWNXB\n" +
"LMISOCHFPVQNBRX\n" +
"QBOQHOYCXJYSAACTVFNWRTAJHHUUESJOXNCSSYUAP\n" +
"MHDDAZPYJRGRGPS\n" +
"KUABSL\n" +
"AYFLFBEXAOMN\n" +
"GGFHTEL\n" +
"UICDHJUNUZNAMVS\n" +
"JIOUIMY\n" +
"ZDTLHZAJ\n" +
"O\n" +
"EHZBFMOMHTRPWCSJACPOEWDHFORXEXXAQRXSRFMBCGOEDGFJIGBQZOUNW\n" +
"WFZXVOTIR\n" +
"M\n" +
"AIZDPVMMAIBPXUDZQMMMWGOKIQNFSXJZWFRNRFMMORHIBLEXKU\n" +
"JGJGEDNFBNSEAPZLHPTPJARVLAVSCWEWUIFIGKZNNXNVZBTFMYPT\n" +
"ICSLQKLOTFXWTHIQZICSERWNKT\n" +
"CUHGNGFXEXUVINDRFENIDZQSXSQCONLWNIPYPBWDHCSHTONERHJFLBFZPJPDJDIDEAWTXWDKUYLDJSVTIHUP\n" +
"WALMCBK\n" +
"YQSFQ\n" +
"DLRKGMHEGTMGFZQNGJQTBEPFTFKEKXUSOTFVTWWDJBKVWYSUURQOVFYCBBWCQYSGXZMNURXCMMDEWYPKNF\n" +
"TJTZSEUBVDXKJPVSRXSUJBAKSSPGQUUOGKSRYBNUTSFCZSADKMCPMUWU\n" +
"WWUTG\n" +
"KQTCYIGBG\n" +
"DERFWFFDNHVXHBHCRRXAFKKEJBVIOYZVLBKIYQDHTIMUFFVBPNCFVVZV\n" +
"EDMOZYZOUIDFAVVTQJ\n" +
"OFRUPXVBOKMCJUKZWVRFCWIGD\n" +
"BMNTUPH\n" +
"ELQMGMQIAQYOTWFYZWFKVYWJAIHFRMVEBCZSEUSTZIYHSOQH\n" +
"YUWTDRZATJNES\n" +
"WCNKVBREYOAHIZVTJALMSZTUKGWNWNFQVLXWCGN\n" +
"DKBI\n" +
"PNKMFRXEYGDFRPSYCULYNNBHZZAQNWWUOIY\n" +
"WAJIDZZQYDPVMLDPOKRJTWFOALN\n" +
"LPQCNYAMRVZC\n" +
"DPZLHPNNFGTUOIDPUJM\n" +
"HFKUAWMYCQQJD\n" +
"XCBQLYE\n" +
"INCGXMJ\n" +
"LSNZNSBJFQEAIO\n" +
"VYMTYEINVDNUKZXXWTU\n" +
"NVTWMURC\n" +
"OZZRRODQNFYZ\n" +
"UALSWKOIHHZGMI\n" +
"PSNBLQZGNZAXYAGXCKFGZJQDPORLPNCPKS\n" +
"WUPXRHSAZNWTJDDGNLESSOD\n" +
"NFFWMGVLWREACY\n" +
"YUDTTHWSGYEWWVDZIUFMGVYDLQUQWLWJNNLH\n" +
"NEAMGEJZUE\n" +
"OTIILKF\n" +
"KY\n" +
"KWKTKGWYDLE\n" +
"FYESHIOCAKQ\n" +
"IAAJ\n" +
"BRZLWZ\n" +
"PAQZTDQECDPWZZSSZFAYZBWGYIDPYOQR\n" +
"FQAWT\n" +
"URPTGIMYDMGBYBVLZUGJPYPWTVRJVFHOXJAXBEKSEXLNTIBTPLPPLANV\n" +
"ZEQDGUJSCMNDDDJYVUYKJHVSGGSPXLWUZRTIOITQUEJXKJMWVHSEVNLLVW\n" +
"COXMGQLXEVBMK\n" +
"YTNLCCOAV\n" +
"NXEGH\n" +
"FRAFQRA\n" +
"GVPCSPY\n" +
"QGKHMJKILOA\n" +
"TKMMRDMLQKIIGCXJISTZ\n" +
"GUOLCJZCDCKIBDSQF\n" +
"OTSTASNITZPBLWGOTZMKNZHPIFMHPM\n" +
"XLYBGARCKEGKVOQQDMHKTGAFIWFVWVKFHWFTBQBWSBATG\n" +
"RRWBGOALIKDYILODGWTQQOVXQTCRZTJXMBXDICRMRDRSWIHVCLZKMUYUVQXGFLPSGRORGNYQ\n" +
"WQKIEJBO\n" +
"TTEXXVXLNGUKMCKYZOMWRIJJGJULUDHCMVMMCISEFPXFMLCPTFRVZUOQTGFWINKZSJK\n" +
"JR\n" +
"QCFKDZMWAKHPGJSLZDMUEGMMQQME\n" +
"RGXHCG\n" +
"PMVNARGBQRIDASCECGTLC\n" +
"RPEL\n" +
"ZGYLLLZFCASEVIVCNYJQEAVXYZKA\n" +
"J\n" +
"QPMFLMRHKQ\n" +
"KRSMZXOVVPSVNAIGKPWRZOPBYNLAIJBAFCGOUFTKPFJZAHCPDXOESBJBDEZP\n" +
"XAOVPWLJJHIJOQABB\n" +
"HJRQRECZYIJBBTDSUSTIDKKU\n" +
"ZSPX\n" +
"IMKFZYEW\n" +
"KMLV\n" +
"PPHUPYMEFZRFQFTUPMAIJQYJEWVFOARH\n" +
"RMBY\n" +
"WBLOWHHZSPRTBCLWSYIHJULVSX\n" +
"LTLFGS\n" +
"WPLPFAXAKNBHRBVQVZJKHCMVTFZMDLJQSVFUWSBJQMFMHYGCGYNFIUBMAGLEQZ\n" +
"JCAZMNLUHJJO\n" +
"T\n" +
"AUPHLHQXVRT\n" +
"TUDELJLONPVW\n" +
"QLCIETGUJK\n" +
"CLJCKCAF\n" +
"ZPVAVJFHPHUVDFUDSO\n" +
"MFRFNCOXREU\n" +
"OYRHJNR\n" +
"D\n" +
"AGQOQCOMCZW\n" +
"BXZSQRBJNOJXLGGSCPMWTDQELGHCDQKJZDMNZYSDDDUOVTPPQVZZNANWD\n" +
"AMHF\n" +
"QQ\n" +
"CDERFKM\n" +
"UVHQVYNTACROYTSWCBOCDGXJXBZCWHFCC\n" +
"HWKELNWUEEHZXST\n" +
"XZXDSLOEA\n" +
"DZV\n" +
"RJTXRZTSVTNGHONDUFXTEPHDQPKBKYNYQGWLPZXO\n" +
"ZCLHQZVPAQSUJKZMKCQXVZLHMDUJ\n" +
"LEERGXFGQSSXKJXAAZGQONFBQABN\n" +
"XUUCARSWMTARXDWWGZWGI\n" +
"KYXFZINSNOKRCYVQHMMU\n" +
"MKXYVIDRFNGDSAFSHMSEHFLV\n" +
"IHYONIEGRBZGJVFGTGURITMMQLNUZQ\n" +
"EBNVYCTJWWHQJMVMNEQBTLFPGJEAKDGOXTQECMKF\n" +
"EANLUJMOPNXVO\n" +
"SAVS\n" +
"ECMOABEQRPLLAXOWUFOLHTPWEVXOJPAYA\n" +
"BZDPWVMHHZXOKTNESLUDPQLEOTGDBFZLMYTAMYUOTVBUQJVRHQSMG\n" +
"ECQPKBXVRSSVKUCMN\n" +
"BINKMQWRPAJGWFHQUFBHDPTCV\n" +
"CZBSPTHWICUIYBGJNFRZGNYYNSXDQYDROBSFHJRJYXERVYQEX\n" +
"BVCOYDQIICGTVPZXRAIR\n" +
"JPXVKZHRDIQJTFH\n" +
"WUYLJXNIQIMJPUIOOOAVOMJ\n" +
"VTRPDYUXBYCTZY\n" +
"XBW\n" +
"KMFEPXDJRSZRARZKCFCNZKDRNMKIMKVDQBVTSFFUBPTSAVYMKJSOGEFR";
private static final AnnotationData[] RANDOM_ANNOTATIONS= new AnnotationData[] { new AnnotationData(507, 230, 1), new AnnotationData(11323, 55, 0), new AnnotationData(12543, 96, 0),
new AnnotationData(9964, 112, 2), new AnnotationData(579, 137, 1), new AnnotationData(15508, 198, 2), new AnnotationData(3356, 93, 1), new AnnotationData(5225, 6, 2),
new AnnotationData(11802, 284, 2), new AnnotationData(7848, 21, 2), new AnnotationData(10495, 145, 1), new AnnotationData(1535, 292, 0), new AnnotationData(12764, 271, 0),
new AnnotationData(15459, 123, 0), new AnnotationData(16169, 257, 2), new AnnotationData(13281, 341, 1), new AnnotationData(19166, 120, 1), new AnnotationData(9609, 233, 1),
new AnnotationData(3722, 340, 0), new AnnotationData(19716, 275, 1), new AnnotationData(13248, 250, 0), new AnnotationData(6448, 211, 2), new AnnotationData(8842, 148, 1),
new AnnotationData(11547, 196, 2), new AnnotationData(18927, 170, 0), new AnnotationData(8090, 297, 1), new AnnotationData(13277, 35, 0), new AnnotationData(19728, 273, 2),
new AnnotationData(1588, 66, 0), new AnnotationData(18918, 229, 0), new AnnotationData(9612, 77, 0), new AnnotationData(18190, 76, 1), new AnnotationData(10394, 172, 2),
new AnnotationData(12487, 231, 2), new AnnotationData(10682, 54, 2), new AnnotationData(3282, 301, 2), new AnnotationData(12463, 60, 1), new AnnotationData(4559, 1, 1),
new AnnotationData(6410, 220, 2), new AnnotationData(8130, 204, 2), new AnnotationData(18661, 254, 0), new AnnotationData(2642, 96, 1), new AnnotationData(13073, 278, 2),
new AnnotationData(19146, 4, 2), new AnnotationData(2522, 85, 2), new AnnotationData(12263, 125, 2), new AnnotationData(2604, 302, 1), new AnnotationData(7486, 47, 2),
new AnnotationData(1145, 228, 1), new AnnotationData(17901, 71, 2), new AnnotationData(4136, 138, 0), new AnnotationData(19645, 78, 1), new AnnotationData(6926, 291, 2),
new AnnotationData(16744, 182, 0), new AnnotationData(15026, 190, 2), new AnnotationData(3117, 149, 0), new AnnotationData(4617, 256, 1), new AnnotationData(14922, 322, 2),
new AnnotationData(19220, 256, 0), new AnnotationData(13670, 30, 1), new AnnotationData(12068, 238, 0), new AnnotationData(5376, 268, 1), new AnnotationData(5979, 180, 1),
new AnnotationData(7452, 138, 2), new AnnotationData(1470, 227, 0), new AnnotationData(14450, 76, 1), new AnnotationData(13798, 338, 2), new AnnotationData(8151, 301, 2),
new AnnotationData(12707, 183, 1), new AnnotationData(9916, 291, 2), new AnnotationData(9158, 69, 1), new AnnotationData(11105, 220, 1), new AnnotationData(16739, 179, 0),
new AnnotationData(11748, 0, 1), new AnnotationData(5507, 173, 2), new AnnotationData(3268, 52, 1), new AnnotationData(11149, 322, 1), new AnnotationData(757, 63, 1),
new AnnotationData(6172, 261, 2), new AnnotationData(8939, 122, 0), new AnnotationData(11583, 276, 0), new AnnotationData(4199, 7, 1), new AnnotationData(4116, 67, 1),
new AnnotationData(4743, 198, 1), new AnnotationData(13967, 262, 1), new AnnotationData(8108, 204, 2), new AnnotationData(8661, 100, 2), new AnnotationData(2235, 136, 2),
new AnnotationData(9681, 67, 0), new AnnotationData(15860, 207, 0), new AnnotationData(2866, 285, 2), new AnnotationData(1394, 243, 0), new AnnotationData(13853, 272, 0),
new AnnotationData(18326, 240, 2), new AnnotationData(3562, 272, 2), new AnnotationData(16451, 45, 1), new AnnotationData(12428, 25, 0), new AnnotationData(18576, 347, 0),
new AnnotationData(10099, 311, 1), new AnnotationData(10561, 318, 0), new AnnotationData(17486, 184, 2), new AnnotationData(18452, 111, 2), new AnnotationData(17302, 197, 0),
new AnnotationData(11999, 11, 2), new AnnotationData(16035, 125, 2), new AnnotationData(5473, 7, 0), new AnnotationData(2245, 33, 1), new AnnotationData(17191, 281, 2),
new AnnotationData(7895, 244, 1), new AnnotationData(7730, 20, 0), new AnnotationData(14552, 308, 2), new AnnotationData(4749, 343, 1), new AnnotationData(7267, 78, 1),
new AnnotationData(11701, 129, 0), new AnnotationData(5887, 101, 1), new AnnotationData(4906, 63, 0), new AnnotationData(20054, 54, 0), new AnnotationData(18436, 64, 2),
new AnnotationData(18117, 192, 1), new AnnotationData(18539, 251, 2), new AnnotationData(4710, 135, 2), new AnnotationData(13974, 330, 2), new AnnotationData(17034, 10, 0),
new AnnotationData(4382, 296, 0), new AnnotationData(11551, 271, 2), new AnnotationData(16006, 119, 0), new AnnotationData(15193, 308, 0), new AnnotationData(16057, 82, 1),
new AnnotationData(4085, 40, 2), new AnnotationData(20603, 96, 0), new AnnotationData(4603, 216, 2), new AnnotationData(6648, 62, 2), new AnnotationData(13682, 157, 1),
new AnnotationData(460, 268, 2), new AnnotationData(10741, 118, 0), new AnnotationData(14373, 130, 1), new AnnotationData(4450, 46, 1), new AnnotationData(7694, 27, 1),
new AnnotationData(20185, 79, 0), new AnnotationData(8849, 234, 0), new AnnotationData(13354, 302, 1), new AnnotationData(9838, 141, 0), new AnnotationData(13007, 202, 0),
new AnnotationData(5011, 194, 0), new AnnotationData(1612, 282, 0), new AnnotationData(14987, 232, 2), new AnnotationData(8592, 145, 2), new AnnotationData(11226, 89, 0),
new AnnotationData(4175, 105, 2), new AnnotationData(20119, 278, 2), new AnnotationData(10674, 96, 1), new AnnotationData(19096, 70, 0), new AnnotationData(10820, 260, 0),
new AnnotationData(1490, 33, 2), new AnnotationData(9710, 246, 0), new AnnotationData(4774, 262, 1), new AnnotationData(9509, 184, 2), new AnnotationData(9580, 94, 0),
new AnnotationData(10250, 274, 1), new AnnotationData(11795, 72, 2), new AnnotationData(9086, 124, 2), new AnnotationData(3144, 256, 1), new AnnotationData(3078, 3, 0),
new AnnotationData(16129, 4, 0), new AnnotationData(13782, 2, 1), new AnnotationData(14056, 267, 1), new AnnotationData(15460, 32, 0), new AnnotationData(16158, 271, 1),
new AnnotationData(14797, 202, 2), new AnnotationData(7654, 108, 2), new AnnotationData(17232, 11, 1), new AnnotationData(5936, 69, 2), new AnnotationData(12156, 224, 2),
new AnnotationData(9376, 243, 1), new AnnotationData(10375, 155, 1), new AnnotationData(7524, 270, 1), new AnnotationData(19415, 86, 0), new AnnotationData(15004, 0, 1),
new AnnotationData(3241, 44, 0), new AnnotationData(5870, 147, 1), new AnnotationData(11908, 84, 1), new AnnotationData(10962, 135, 0), new AnnotationData(16480, 232, 2),
new AnnotationData(9087, 256, 1), new AnnotationData(9177, 29, 1), new AnnotationData(1361, 232, 0), new AnnotationData(18433, 128, 0), new AnnotationData(13207, 183, 1),
new AnnotationData(6067, 236, 1), new AnnotationData(9325, 33, 1), new AnnotationData(15416, 326, 1), new AnnotationData(7642, 69, 1), new AnnotationData(15250, 67, 0),
new AnnotationData(4193, 191, 0), new AnnotationData(6492, 143, 1), new AnnotationData(5780, 325, 1), new AnnotationData(1004, 254, 2), new AnnotationData(9125, 278, 0),
new AnnotationData(775, 170, 1), new AnnotationData(394, 174, 2), new AnnotationData(4758, 245, 0), new AnnotationData(1512, 59, 0), new AnnotationData(16855, 237, 0),
new AnnotationData(2427, 291, 2), new AnnotationData(8298, 126, 1), new AnnotationData(1359, 112, 2), new AnnotationData(19885, 164, 2), new AnnotationData(15405, 121, 0),
new AnnotationData(19041, 269, 2), new AnnotationData(1549, 27, 2), new AnnotationData(14797, 95, 2), new AnnotationData(4266, 315, 2), new AnnotationData(12285, 250, 0),
new AnnotationData(7023, 322, 0), new AnnotationData(34, 54, 1), new AnnotationData(16318, 183, 0), new AnnotationData(11181, 112, 0), new AnnotationData(12135, 9, 2),
new AnnotationData(3483, 191, 2), new AnnotationData(7828, 233, 2), new AnnotationData(14974, 44, 1), new AnnotationData(6178, 142, 0), new AnnotationData(13803, 217, 1),
new AnnotationData(4305, 53, 1), new AnnotationData(19931, 322, 1), new AnnotationData(18458, 125, 2), new AnnotationData(2383, 87, 1), new AnnotationData(11321, 139, 0),
new AnnotationData(18220, 141, 1), new AnnotationData(8807, 43, 1), new AnnotationData(9557, 281, 1), new AnnotationData(3605, 38, 2), new AnnotationData(17498, 37, 0),
new AnnotationData(10975, 218, 1), new AnnotationData(2965, 10, 2), new AnnotationData(18540, 16, 1), new AnnotationData(6038, 329, 1), new AnnotationData(6993, 90, 0),
new AnnotationData(6764, 259, 0), new AnnotationData(6006, 271, 0), new AnnotationData(11150, 21, 2), new AnnotationData(4290, 2, 2), new AnnotationData(14409, 70, 0),
new AnnotationData(16235, 115, 0), new AnnotationData(11806, 73, 2), new AnnotationData(12756, 196, 1), new AnnotationData(13812, 298, 0), new AnnotationData(13988, 3, 1),
new AnnotationData(3563, 340, 2), new AnnotationData(8846, 91, 0), new AnnotationData(12761, 223, 0), new AnnotationData(18922, 74, 1), new AnnotationData(10392, 239, 1),
new AnnotationData(10022, 259, 0), new AnnotationData(12405, 106, 0), new AnnotationData(14903, 156, 1), new AnnotationData(7025, 100, 0), new AnnotationData(6695, 91, 1),
new AnnotationData(16475, 160, 2), new AnnotationData(3385, 58, 1), new AnnotationData(14617, 298, 2), new AnnotationData(3306, 277, 2), new AnnotationData(19950, 114, 1),
new AnnotationData(19146, 155, 2), new AnnotationData(11723, 270, 1), new AnnotationData(1399, 289, 0), new AnnotationData(13509, 326, 2), new AnnotationData(9680, 130, 1),
new AnnotationData(18714, 213, 2), new AnnotationData(15486, 91, 1), new AnnotationData(14865, 302, 2), new AnnotationData(18573, 225, 1), new AnnotationData(20630, 66, 2),
new AnnotationData(20088, 265, 2), new AnnotationData(16020, 321, 2), new AnnotationData(20154, 124, 2), new AnnotationData(7117, 42, 1), new AnnotationData(9014, 199, 2),
new AnnotationData(6123, 249, 2), new AnnotationData(6344, 323, 1), new AnnotationData(15013, 206, 2), new AnnotationData(1807, 275, 1), new AnnotationData(57, 86, 1),
new AnnotationData(17569, 323, 0), new AnnotationData(15800, 255, 1), new AnnotationData(4574, 284, 1), new AnnotationData(12061, 236, 1), new AnnotationData(15026, 342, 0),
new AnnotationData(13539, 25, 0), new AnnotationData(6193, 313, 1), new AnnotationData(5976, 170, 1), new AnnotationData(2498, 95, 0), new AnnotationData(9585, 258, 1),
new AnnotationData(17557, 23, 0), new AnnotationData(1055, 116, 2), new AnnotationData(9305, 307, 1), new AnnotationData(3352, 185, 0), new AnnotationData(506, 143, 1),
new AnnotationData(11455, 226, 1), new AnnotationData(903, 196, 2), new AnnotationData(7310, 84, 0), new AnnotationData(9677, 126, 2), new AnnotationData(12557, 167, 2),
new AnnotationData(15338, 27, 1), new AnnotationData(15884, 215, 1), new AnnotationData(7942, 340, 2), new AnnotationData(19590, 251, 2), new AnnotationData(3370, 174, 1),
new AnnotationData(14622, 315, 0), new AnnotationData(4790, 265, 1), new AnnotationData(16442, 61, 1), new AnnotationData(10425, 279, 1), new AnnotationData(5193, 219, 1),
new AnnotationData(5952, 152, 1), new AnnotationData(2685, 272, 0), new AnnotationData(8373, 33, 2), new AnnotationData(5624, 102, 0), new AnnotationData(17427, 221, 2),
new AnnotationData(17151, 331, 2), new AnnotationData(10206, 41, 0), new AnnotationData(17622, 232, 0), new AnnotationData(6605, 131, 1), new AnnotationData(14329, 146, 0),
new AnnotationData(11144, 80, 2), new AnnotationData(9455, 103, 0), new AnnotationData(18051, 163, 0), new AnnotationData(5087, 328, 2), new AnnotationData(18506, 116, 1),
new AnnotationData(12746, 192, 2), new AnnotationData(13550, 17, 1), new AnnotationData(11022, 39, 1), new AnnotationData(10260, 181, 0), new AnnotationData(18305, 244, 2),
new AnnotationData(13407, 348, 0), new AnnotationData(6499, 194, 0), new AnnotationData(11320, 164, 1), new AnnotationData(2114, 135, 1), new AnnotationData(5810, 49, 0),
new AnnotationData(18224, 331, 2), new AnnotationData(16850, 172, 1), new AnnotationData(9429, 128, 1), new AnnotationData(8544, 322, 1), new AnnotationData(20207, 54, 2),
new AnnotationData(238, 235, 0), new AnnotationData(18490, 242, 2), new AnnotationData(16299, 268, 1), new AnnotationData(3114, 169, 2), new AnnotationData(12041, 150, 2),
new AnnotationData(8067, 66, 1), new AnnotationData(16573, 319, 0), new AnnotationData(11436, 81, 0), new AnnotationData(2366, 141, 1), new AnnotationData(10587, 202, 0),
new AnnotationData(4877, 125, 2), new AnnotationData(1337, 13, 1), new AnnotationData(10858, 120, 1), new AnnotationData(18017, 194, 1), new AnnotationData(1679, 17, 1),
new AnnotationData(10894, 24, 2), new AnnotationData(2270, 178, 1), new AnnotationData(20328, 328, 0), new AnnotationData(12282, 129, 1), new AnnotationData(2674, 168, 2),
new AnnotationData(20408, 134, 2), new AnnotationData(9761, 223, 1), new AnnotationData(12424, 212, 2), new AnnotationData(706, 341, 0), new AnnotationData(137, 30, 0),
new AnnotationData(11207, 31, 2), new AnnotationData(20090, 289, 1), new AnnotationData(6950, 100, 0), new AnnotationData(5093, 75, 2), new AnnotationData(12545, 236, 2),
new AnnotationData(15886, 43, 1), new AnnotationData(18070, 49, 1), new AnnotationData(20155, 11, 1), new AnnotationData(7477, 19, 2), new AnnotationData(610, 69, 1),
new AnnotationData(14056, 148, 1), new AnnotationData(476, 217, 2), new AnnotationData(14189, 143, 1), new AnnotationData(3222, 145, 0), new AnnotationData(8499, 325, 1),
new AnnotationData(7854, 170, 1), new AnnotationData(15178, 252, 1), new AnnotationData(11936, 318, 0), new AnnotationData(12138, 209, 2), new AnnotationData(10594, 128, 1),
new AnnotationData(15703, 223, 1), new AnnotationData(12733, 274, 2), new AnnotationData(20437, 156, 1), new AnnotationData(7673, 317, 1), new AnnotationData(1282, 136, 2),
new AnnotationData(20538, 108, 0), new AnnotationData(19384, 218, 2), new AnnotationData(7701, 72, 1), new AnnotationData(8225, 38, 0), new AnnotationData(15373, 170, 1),
new AnnotationData(177, 155, 0), new AnnotationData(17321, 261, 0), new AnnotationData(13051, 261, 2), new AnnotationData(16184, 203, 2), new AnnotationData(7109, 200, 0),
new AnnotationData(625, 326, 2), new AnnotationData(12610, 126, 1), new AnnotationData(4659, 223, 1), new AnnotationData(1032, 168, 0), new AnnotationData(18393, 145, 2),
new AnnotationData(14825, 107, 2), new AnnotationData(4093, 289, 1), new AnnotationData(140, 150, 0), new AnnotationData(6426, 99, 1), new AnnotationData(3685, 186, 0),
new AnnotationData(5423, 121, 0), new AnnotationData(1399, 140, 2), new AnnotationData(20619, 190, 2), new AnnotationData(8850, 232, 0), new AnnotationData(6516, 170, 1),
new AnnotationData(11227, 133, 1), new AnnotationData(13300, 25, 0), new AnnotationData(14280, 337, 1), new AnnotationData(6748, 142, 1), new AnnotationData(1768, 114, 0),
new AnnotationData(8514, 322, 2), new AnnotationData(3284, 212, 1), new AnnotationData(9113, 326, 1), new AnnotationData(4408, 343, 2), new AnnotationData(17098, 187, 1),
new AnnotationData(793, 179, 0), new AnnotationData(6599, 296, 0), new AnnotationData(9524, 65, 2), new AnnotationData(12288, 336, 0), new AnnotationData(18500, 48, 0),
new AnnotationData(3819, 264, 0), new AnnotationData(3567, 35, 2), new AnnotationData(20119, 121, 1), new AnnotationData(20082, 308, 1), new AnnotationData(2130, 124, 0),
new AnnotationData(8278, 271, 0), new AnnotationData(2307, 8, 0), new AnnotationData(8676, 312, 1), new AnnotationData(15894, 312, 2), new AnnotationData(12017, 194, 1),
new AnnotationData(1938, 202, 2), new AnnotationData(9054, 340, 0), new AnnotationData(4472, 179, 0), new AnnotationData(15253, 70, 0), new AnnotationData(184, 173, 1),
new AnnotationData(11870, 337, 1), new AnnotationData(479, 293, 1), new AnnotationData(5927, 104, 2), new AnnotationData(8316, 237, 1), new AnnotationData(6787, 46, 1),
new AnnotationData(14727, 68, 2), new AnnotationData(2547, 134, 1), new AnnotationData(9609, 79, 0), new AnnotationData(8500, 117, 1), new AnnotationData(8768, 4, 2),
new AnnotationData(9365, 68, 1), new AnnotationData(2377, 129, 0), new AnnotationData(19153, 147, 2), new AnnotationData(2739, 104, 0), new AnnotationData(11088, 237, 2),
new AnnotationData(731, 96, 2), new AnnotationData(14406, 334, 0), new AnnotationData(4525, 109, 1), new AnnotationData(20213, 202, 0), new AnnotationData(16889, 40, 0),
new AnnotationData(16698, 275, 2), new AnnotationData(14688, 193, 2), new AnnotationData(5702, 41, 0), new AnnotationData(7150, 192, 2), new AnnotationData(19368, 333, 2),
new AnnotationData(18078, 17, 2), new AnnotationData(11240, 67, 2), new AnnotationData(4559, 110, 1), new AnnotationData(16377, 177, 1), new AnnotationData(20203, 122, 1),
new AnnotationData(18778, 261, 1), new AnnotationData(1570, 152, 2), new AnnotationData(16818, 57, 0), new AnnotationData(7301, 335, 1), new AnnotationData(9455, 196, 0),
new AnnotationData(7679, 166, 0), new AnnotationData(262, 165, 2), new AnnotationData(7004, 0, 2), new AnnotationData(14291, 281, 2), new AnnotationData(7351, 98, 0),
new AnnotationData(15261, 324, 2), new AnnotationData(19187, 225, 0), new AnnotationData(8944, 123, 0), new AnnotationData(14867, 214, 1), new AnnotationData(4996, 218, 2),
new AnnotationData(15585, 182, 2), new AnnotationData(8042, 23, 0), new AnnotationData(10712, 80, 2), new AnnotationData(9166, 287, 1), new AnnotationData(7388, 114, 1),
new AnnotationData(5745, 274, 0), new AnnotationData(2159, 61, 2), new AnnotationData(252, 213, 1), new AnnotationData(3289, 119, 2), new AnnotationData(17838, 30, 1),
new AnnotationData(19984, 332, 2), new AnnotationData(12651, 231, 0), new AnnotationData(19455, 172, 1), new AnnotationData(14104, 87, 1), new AnnotationData(13722, 106, 1),
new AnnotationData(2758, 131, 1), new AnnotationData(9092, 260, 0), new AnnotationData(15945, 294, 2), new AnnotationData(10977, 60, 1), new AnnotationData(7236, 331, 0),
new AnnotationData(4000, 129, 0), new AnnotationData(11, 15, 2), new AnnotationData(13010, 33, 2), new AnnotationData(17772, 98, 1), new AnnotationData(17987, 184, 0),
new AnnotationData(18725, 18, 2), new AnnotationData(17933, 239, 2), new AnnotationData(15105, 282, 2), new AnnotationData(2921, 141, 1), new AnnotationData(16003, 344, 2),
new AnnotationData(10027, 268, 1), new AnnotationData(17635, 50, 1), new AnnotationData(8332, 348, 0), new AnnotationData(8682, 84, 0), new AnnotationData(5491, 323, 0),
new AnnotationData(12156, 39, 1), new AnnotationData(16020, 258, 2), new AnnotationData(12387, 285, 0), new AnnotationData(2672, 172, 2), new AnnotationData(832, 314, 0),
new AnnotationData(10665, 296, 2), new AnnotationData(2989, 35, 0), new AnnotationData(15566, 76, 1), new AnnotationData(6284, 319, 2), new AnnotationData(13509, 127, 0),
new AnnotationData(10872, 190, 2), new AnnotationData(5336, 98, 1), new AnnotationData(12384, 183, 0), new AnnotationData(9889, 199, 1), new AnnotationData(165, 55, 1),
new AnnotationData(3083, 260, 0), new AnnotationData(15205, 72, 0), new AnnotationData(2223, 220, 0), new AnnotationData(16808, 3, 1), new AnnotationData(17064, 7, 1),
new AnnotationData(12484, 297, 2), new AnnotationData(13585, 171, 0), new AnnotationData(19371, 296, 1), new AnnotationData(13535, 162, 0), new AnnotationData(20129, 86, 1),
new AnnotationData(8253, 337, 1), new AnnotationData(17790, 43, 1), new AnnotationData(6749, 23, 0), new AnnotationData(17260, 187, 2), new AnnotationData(6963, 100, 1),
new AnnotationData(8443, 179, 1), new AnnotationData(2420, 221, 2), new AnnotationData(6445, 52, 1), new AnnotationData(19790, 13, 2), new AnnotationData(7262, 17, 1),
new AnnotationData(17724, 260, 2), new AnnotationData(15153, 222, 2), new AnnotationData(16029, 268, 0), new AnnotationData(1328, 85, 2), new AnnotationData(18142, 270, 2),
new AnnotationData(3654, 338, 0), new AnnotationData(5491, 75, 2), new AnnotationData(4952, 169, 2), new AnnotationData(17864, 186, 1), new AnnotationData(12239, 281, 1),
new AnnotationData(4033, 21, 1), new AnnotationData(5345, 35, 1), new AnnotationData(4237, 4, 0), new AnnotationData(2799, 143, 1), new AnnotationData(897, 341, 0),
new AnnotationData(17410, 200, 2), new AnnotationData(6657, 203, 0), new AnnotationData(14231, 106, 1), new AnnotationData(11190, 113, 1), new AnnotationData(12474, 280, 2),
new AnnotationData(17703, 58, 0), new AnnotationData(19309, 287, 2), new AnnotationData(18632, 52, 2), new AnnotationData(12928, 269, 2), new AnnotationData(12541, 10, 1),
new AnnotationData(5523, 114, 1), new AnnotationData(14980, 100, 0), new AnnotationData(10902, 120, 1), new AnnotationData(13145, 36, 1), new AnnotationData(20469, 147, 1),
new AnnotationData(2583, 160, 1), new AnnotationData(9702, 198, 1), new AnnotationData(8753, 96, 1), new AnnotationData(2854, 4, 0), new AnnotationData(3881, 185, 1),
new AnnotationData(17561, 181, 1), new AnnotationData(16071, 263, 1), new AnnotationData(14216, 31, 1), new AnnotationData(16287, 220, 1), new AnnotationData(1460, 305, 1),
new AnnotationData(11832, 135, 2), new AnnotationData(11757, 182, 1), new AnnotationData(15532, 174, 1), new AnnotationData(5245, 235, 1), new AnnotationData(20545, 165, 1),
new AnnotationData(12962, 97, 2), new AnnotationData(8406, 162, 0), new AnnotationData(17415, 204, 1), new AnnotationData(19411, 32, 2), new AnnotationData(8409, 152, 2),
new AnnotationData(13917, 333, 2), new AnnotationData(3441, 118, 2), new AnnotationData(14431, 217, 0), new AnnotationData(17039, 70, 1), new AnnotationData(11456, 168, 0),
new AnnotationData(17733, 291, 2), new AnnotationData(6774, 93, 2), new AnnotationData(13728, 189, 2), new AnnotationData(11746, 152, 0), new AnnotationData(3552, 54, 1),
new AnnotationData(17976, 183, 2), new AnnotationData(16536, 277, 2), new AnnotationData(4854, 73, 1), new AnnotationData(8640, 202, 0), new AnnotationData(11940, 330, 1),
new AnnotationData(17635, 289, 2), new AnnotationData(17542, 67, 0), new AnnotationData(9819, 27, 1), new AnnotationData(2256, 62, 2), new AnnotationData(5791, 215, 2),
new AnnotationData(14661, 29, 1), new AnnotationData(20548, 226, 1), new AnnotationData(13791, 106, 2), new AnnotationData(18771, 250, 1), new AnnotationData(11892, 131, 2),
new AnnotationData(16370, 164, 2), new AnnotationData(2820, 334, 2), new AnnotationData(5557, 114, 1), new AnnotationData(10162, 316, 2), new AnnotationData(4821, 26, 1),
new AnnotationData(4286, 185, 2), new AnnotationData(6799, 312, 2), new AnnotationData(17571, 319, 2), new AnnotationData(5922, 34, 2), new AnnotationData(15501, 17, 1),
new AnnotationData(6924, 320, 0), new AnnotationData(2706, 290, 1), new AnnotationData(4766, 345, 0), new AnnotationData(4641, 316, 1), new AnnotationData(17764, 236, 1),
new AnnotationData(7691, 12, 2), new AnnotationData(15270, 255, 1), new AnnotationData(19553, 203, 2), new AnnotationData(13605, 276, 1), new AnnotationData(20040, 206, 0),
new AnnotationData(16374, 248, 1), new AnnotationData(16599, 338, 2), new AnnotationData(17547, 13, 2), new AnnotationData(11015, 71, 1), new AnnotationData(1132, 15, 2),
new AnnotationData(8657, 328, 1), new AnnotationData(1405, 132, 0), new AnnotationData(12750, 116, 1), new AnnotationData(10263, 59, 1), new AnnotationData(9896, 252, 0),
new AnnotationData(20152, 256, 2), new AnnotationData(14356, 30, 1), new AnnotationData(9432, 250, 1), new AnnotationData(15794, 148, 0), new AnnotationData(9463, 40, 2),
new AnnotationData(648, 122, 0), new AnnotationData(12017, 27, 0), new AnnotationData(16437, 254, 2), new AnnotationData(2731, 321, 0), new AnnotationData(20421, 233, 1),
new AnnotationData(14631, 339, 2), new AnnotationData(8526, 11, 1), new AnnotationData(14868, 218, 2), new AnnotationData(9156, 74, 0), new AnnotationData(12710, 223, 0),
new AnnotationData(19298, 113, 0), new AnnotationData(13193, 87, 0), new AnnotationData(14232, 26, 0), new AnnotationData(2634, 52, 1), new AnnotationData(20401, 159, 0),
new AnnotationData(16666, 321, 1), new AnnotationData(10593, 261, 1), new AnnotationData(11861, 342, 1), new AnnotationData(17073, 194, 0), new AnnotationData(8159, 150, 0),
new AnnotationData(11131, 68, 1), new AnnotationData(7210, 135, 0), new AnnotationData(17912, 308, 2), new AnnotationData(18945, 244, 0), new AnnotationData(10681, 283, 1),
new AnnotationData(19913, 264, 2), new AnnotationData(17155, 260, 1), new AnnotationData(19260, 71, 2), new AnnotationData(3142, 137, 2), new AnnotationData(18468, 92, 1),
new AnnotationData(10397, 136, 2), new AnnotationData(10234, 218, 1), new AnnotationData(16817, 168, 2), new AnnotationData(17704, 3, 2), new AnnotationData(18710, 121, 2),
new AnnotationData(11879, 251, 0), new AnnotationData(15850, 325, 1), new AnnotationData(12972, 99, 1), new AnnotationData(9761, 42, 2), new AnnotationData(16226, 226, 1),
new AnnotationData(18423, 108, 1), new AnnotationData(11876, 160, 1), new AnnotationData(13820, 333, 2), new AnnotationData(14249, 297, 1), new AnnotationData(1297, 42, 1),
new AnnotationData(1747, 63, 0), new AnnotationData(14431, 18, 2), new AnnotationData(18157, 328, 1), new AnnotationData(11831, 197, 0), new AnnotationData(5009, 168, 1),
new AnnotationData(12542, 104, 1), new AnnotationData(13070, 316, 1), new AnnotationData(13173, 37, 1), new AnnotationData(13744, 136, 2), new AnnotationData(14964, 347, 0),
new AnnotationData(14231, 25, 0), new AnnotationData(11613, 55, 0), new AnnotationData(5279, 11, 1), new AnnotationData(15427, 332, 1), new AnnotationData(16100, 65, 1),
new AnnotationData(15250, 42, 2), new AnnotationData(5283, 197, 0), new AnnotationData(8046, 12, 0), new AnnotationData(484, 72, 1), new AnnotationData(18099, 163, 2),
new AnnotationData(15932, 51, 1), new AnnotationData(8315, 1, 2), new AnnotationData(19176, 233, 1), new AnnotationData(3104, 266, 1), new AnnotationData(19768, 244, 0),
new AnnotationData(5312, 308, 2), new AnnotationData(3354, 80, 1), new AnnotationData(7899, 278, 0), new AnnotationData(18072, 307, 2), new AnnotationData(18679, 170, 1),
new AnnotationData(9683, 11, 1), new AnnotationData(17851, 266, 0), new AnnotationData(12749, 115, 0), new AnnotationData(8662, 102, 1), new AnnotationData(19788, 246, 0),
new AnnotationData(16452, 184, 2), new AnnotationData(36, 103, 2), new AnnotationData(9297, 112, 1), new AnnotationData(7466, 63, 1), new AnnotationData(20640, 92, 2),
new AnnotationData(14706, 109, 0), new AnnotationData(18678, 185, 0), new AnnotationData(2621, 269, 1), new AnnotationData(11278, 195, 0), new AnnotationData(13695, 85, 1),
new AnnotationData(9969, 261, 2), new AnnotationData(16161, 184, 1), new AnnotationData(980, 252, 0), new AnnotationData(16875, 245, 0), new AnnotationData(9517, 125, 2),
new AnnotationData(3280, 232, 0), new AnnotationData(8474, 66, 2), new AnnotationData(4239, 217, 2), new AnnotationData(17830, 264, 1), new AnnotationData(13829, 215, 2),
new AnnotationData(9003, 36, 1), new AnnotationData(8964, 26, 0), new AnnotationData(18972, 39, 0), new AnnotationData(66, 234, 1), new AnnotationData(5314, 345, 0),
new AnnotationData(12207, 84, 0), new AnnotationData(6232, 4, 1), new AnnotationData(2422, 39, 0), new AnnotationData(17112, 15, 1), new AnnotationData(19809, 315, 1),
new AnnotationData(7343, 312, 2), new AnnotationData(6224, 134, 2), new AnnotationData(16788, 113, 1), new AnnotationData(9654, 334, 1), new AnnotationData(19611, 260, 1),
new AnnotationData(16241, 56, 1), new AnnotationData(8140, 267, 0), new AnnotationData(16417, 142, 0), new AnnotationData(16331, 194, 0), new AnnotationData(20352, 44, 2),
new AnnotationData(6477, 116, 1), new AnnotationData(11115, 228, 1), new AnnotationData(9387, 200, 2), new AnnotationData(18207, 141, 2), new AnnotationData(17578, 349, 0),
new AnnotationData(11019, 217, 1), new AnnotationData(9321, 317, 1) };
private static final class AnnotationData {
public final int offset;
public final int length;
public int annotationNumber;
public Annotation annotation;
public Position position;
public AnnotationData(int offset, int length, int annotationNumber) {
this.offset= offset;
this.length= length;
this.annotationNumber= annotationNumber;
}
}
private Document fDocument;
private AnnotationModel fAnnotationModel;
private AnnotationModel fInnerModel1;
private AnnotationModel fInnerModel2;
public static Test suite() {
return new TestSuite(AnnotationModelStressTest.class);
}
@Override
protected void setUp() throws Exception {
fDocument= new Document(RANDOM_CONTENT);
fAnnotationModel= new AnnotationModel();
fInnerModel1= new AnnotationModel();
fAnnotationModel.addAnnotationModel("model1", fInnerModel1);
fInnerModel2= new AnnotationModel();
fAnnotationModel.addAnnotationModel("model2", fInnerModel2);
fAnnotationModel.connect(fDocument);
}
@Override
protected void tearDown() throws Exception {
fAnnotationModel.disconnect(fDocument);
fDocument= null;
fAnnotationModel= null;
fInnerModel1= null;
fInnerModel2= null;
}
private IAnnotationModel getModel(int number) {
switch (number) {
case 0:
return fAnnotationModel;
case 1:
return fInnerModel1;
case 2:
return fInnerModel2;
default:
break;
}
return null;
}
private void assertRemove(ArrayList<AnnotationData> added) {
AnnotationData first= added.remove(0);
IAnnotationModel model= getModel(first.annotationNumber);
assertTrue(model.getPosition(first.annotation) == first.position);
model.removeAnnotation(first.annotation);
assertTrue(model.getPosition(first.annotation) == null);
}
private void assertAdd(AnnotationData data, ArrayList<AnnotationData> added) {
Annotation annotation= new Annotation(false);
Position position= new Position(data.offset, data.length);
IAnnotationModel model= getModel(data.annotationNumber);
model.addAnnotation(annotation, position);
assertTrue(model.getPosition(annotation) == position);
data.annotation= annotation;
data.position= position;
added.add(data);
}
private void assertExist(ArrayList<AnnotationData> added) {
for (int i= 0, size= added.size(); i < size; i++) {
AnnotationData data= added.get(i);
IAnnotationModel model= getModel(data.annotationNumber);
assertTrue(model.getPosition(data.annotation) == data.position);
}
ArrayList<Annotation> annotations= getAllAnnotations();
assertEquals(added.size(), annotations.size());
for (int i= 0, size= annotations.size(); i < size; i++) {
Annotation annotation= annotations.get(i);
AnnotationData data= getAnnotationData(added, annotation);
assertNotNull(data);
assertTrue(fAnnotationModel.getPosition(annotation) == data.position);
}
}
private void assertExistNew(ArrayList<AnnotationData> added) {
for (int i= 0, size= added.size(); i < size; i++) {
AnnotationData data= added.get(i);
IAnnotationModel model= getModel(data.annotationNumber);
assertTrue(model.getPosition(data.annotation) == data.position);
}
ArrayList<Annotation> annotations= getAllAnnotationsNew();
assertEquals(added.size(), annotations.size());
for (int i= 0, size= annotations.size(); i < size; i++) {
Annotation annotation= annotations.get(i);
AnnotationData data= getAnnotationData(added, annotation);
assertNotNull(data);
assertTrue(fAnnotationModel.getPosition(annotation) == data.position);
}
}
private AnnotationData getAnnotationData(ArrayList<AnnotationData> datas, Annotation annotation) {
for (int i= 0, size= datas.size(); i < size; i++) {
AnnotationData data= datas.get(i);
if (data.annotation == annotation)
return data;
}
return null;
}
private ArrayList<Annotation> getAllAnnotations() {
ArrayList<Annotation> result= new ArrayList<>();
Iterator<Annotation> iterator= fAnnotationModel.getAnnotationIterator();
while (iterator.hasNext()) {
result.add(iterator.next());
}
return result;
}
private ArrayList<Annotation> getAllAnnotationsNew() {
ArrayList<Annotation> result= new ArrayList<>();
Iterator<Annotation> iterator= fAnnotationModel.getAnnotationIterator(0, fDocument.getLength(), true, true);
while (iterator.hasNext()) {
result.add(iterator.next());
}
return result;
}
public void testStressTestPlainOld() throws Exception {
ArrayList<AnnotationData> added= new ArrayList<>();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExist(added);
}
}
public void testStressTestPlainNew() throws Exception {
ArrayList<AnnotationData> added= new ArrayList<>();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExistNew(added);
}
}
public void testStressTestMoveOld() throws Exception {
ArrayList<AnnotationData> added= new ArrayList<>();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
Random ran= new Random(4711);
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
fDocument.replace(ran.nextInt(fDocument.getLength() - 1), 0, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExist(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExist(added);
}
}
public void testStressTestMoveNew() throws Exception {
ArrayList<AnnotationData> added= new ArrayList<>();
int i= 0;
while (i < 20) {
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
Random ran= new Random(4711);
while (i < RANDOM_ANNOTATIONS.length) {
assertRemove(added);
fDocument.replace(ran.nextInt(fDocument.getLength() - 1), 0, "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz");
AnnotationData data= RANDOM_ANNOTATIONS[i];
assertAdd(data, added);
assertExistNew(added);
i++;
}
while (added.size() > 0) {
assertRemove(added);
assertExist(added);
}
}
}